def process(): sess = tf.Session() # read pnet, rnet, onet models from align directory and files are det1.npy, det2.npy, det3.npy pnet, rnet, onet = mtcnn_detect.create_mtcnn(sess, 'models') cropped_im = [] save_im = [] directory = "./dataImg/" + inputValue + "/" if not os.path.exists(directory): os.makedirs(directory) for i in range(len(im_arr)): frame = im_arr[i] bounding_boxes, _ = mtcnn_detect.detect_face(frame, minsize, pnet, rnet, onet, threshold, factor) nrof_faces = bounding_boxes.shape[0] if nrof_faces == 1: det = bounding_boxes[:, 0:4] img_size = np.asarray(frame.shape)[0:2] cropped = [] scaled = [] scaled_reshape = [] bb = np.zeros((nrof_faces, 4), dtype=np.int32) for i in range(nrof_faces): emb_array = np.zeros((1, embedding_size)) bb[i][0] = det[i][0] bb[i][1] = det[i][1] bb[i][2] = det[i][2] bb[i][3] = det[i][3] cropped = frame[bb[i][1]:bb[i][3], bb[i][0]:bb[i][2], :] cropped = cv2.resize(cropped, (image_size, image_size), interpolation=cv2.INTER_CUBIC) save_im.append(cropped) #cropped = prewhiten(cropped) #cropped = flip(cropped, False) cropped_im.append(cropped) print(directory) for i in range(len(save_im)): cv2.imwrite(directory + str(i) + '.jpg', save_im[i]) print('Extracted: %d' % len(cropped_im)) calSVM(cropped_im, inputValue)
from scipy import misc import time from scipy.spatial import distance from keras.models import load_model import pickle import facenet # some constants kept as default from facenet minsize = 20 threshold = [0.6, 0.7, 0.7] factor = 0.709 margin = 44 image_size = 160 sess = tf.Session() # read pnet, rnet, onet models from align directory and files are det1.npy, det2.npy, det3.npy pnet, rnet, onet = mtcnn_detect.create_mtcnn(sess, 'models') with tf.Graph().as_default(): with tf.Session() as sess: np.random.seed(seed=1324) facenet.load_model('./models') images_placeholder = tf.get_default_graph().get_tensor_by_name( "input:0") embeddings = tf.get_default_graph().get_tensor_by_name("embeddings:0") phase_train_placeholder = tf.get_default_graph().get_tensor_by_name( "phase_train:0") embedding_size = embeddings.get_shape()[1] emb_array = np.zeros((1, embedding_size)) (model, class_names) = pickle.load(open('svm_classifier.pkl', 'rb')) frame = cv2.imread('.datas/1.jpg')