Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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')