shanren7/real_time_face_recognition

running train your classifier.ipynb

Closed this issue · 0 comments

I don't understand why there are only 145 samples in the output. I hope someone can help me ,

``
data=load_data(data_dir)
keys=[]
for key in data.iterkeys():
keys.append(key)
print('foler:{},image numbers:{}'.format(key,len(data[key])))

``train_x=[]
train_y=[]

for x in data[keys[0]]:
bounding_boxes, _ = detect_face.detect_face(x, minsize, pnet, rnet, onet, threshold, factor)
nrof_faces = bounding_boxes.shape[0]#number of faces

for face_position in bounding_boxes:
    face_position=face_position.astype(int)
    #print(face_position[0:4])
    cv2.rectangle(x, (face_position[0], face_position[1]), (face_position[2], face_position[3]), (0, 255, 0), 2)
    crop=x[face_position[1]:face_position[3],
         face_position[0]:face_position[2],]

    crop = cv2.resize(crop, (96, 96), interpolation=cv2.INTER_CUBIC )

    #print(crop.shape)
    
    crop_data=crop.reshape(-1,96,96,3)
    #print(crop_data.shape)
    
    emb_data = sess.run([embeddings], 
                        feed_dict={images_placeholder: np.array(crop_data), phase_train_placeholder: False })[0]
    
    
    train_x.append(emb_data)
    train_y.append(0)

print(len(train_x))

for y in data[keys[1]]:
bounding_boxes, _ = detect_face.detect_face(y, minsize, pnet, rnet,
onet, threshold, factor)
nrof_faces = bounding_boxes.shape[0]#number of faces

for face_position in bounding_boxes:
    face_position=face_position.astype(int)
    #print(face_position[0:4])
    cv2.rectangle(y, (face_position[0], face_position[1]), (face_position[2], face_position[3]), (0, 255, 0), 2)
    crop=y[face_position[1]:face_position[3],
         face_position[0]:face_position[2],]

    crop = cv2.resize(crop, (96, 96), interpolation=cv2.INTER_CUBIC )

    crop_data=crop.reshape(-1,96,96,3)
    #print(crop_data.shape)
    
    emb_data = sess.run([embeddings], 
                        feed_dict={images_placeholder: np.array(crop_data), phase_train_placeholder: False })[0]
    
    
    train_x.append(emb_data)
    train_y.append(1)

print(len(train_x))
print('搞完了,样本数为:{}'.format(len(train_x)))