第1关:人脸检测
'''****************BEGIN****************'''
image_path = './step1/image/children.jpg'
image = face_recognition.load_image_file(image_path)
face_locations = face_recognition.face_locations(image)
'''**************** END ****************'''
for face_location in face_locations:
'''****************BEGIN****************'''
top, right, bottom, left = face_location
cv2.rectangle(image, (left, top), (right, bottom), (0, 255, 0), 2)
'''**************** END ****************'''
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
cv2.imwrite("./step1/out/children.jpg", image_rgb)
第2关:人脸特征点获取
'''****************BEGIN****************'''
image = face_recognition.load_image_file("./step2/image/laugh.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)
print(face_landmarks_list)
'''**************** END ****************'''
for face_landmarks in face_landmarks_list:
'''****************BEGIN****************'''
for facial_feature in face_landmarks.keys():
for pt_pos in face_landmarks[facial_feature]:
cv2.circle(image, pt_pos, 1, (255, 0, 0), 2)
'''**************** END ****************'''
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
cv2.imwrite("./step2/out/laugh.jpg", image_rgb)
第3关:人脸识别
'''****************BEGIN****************'''
known_image_path = "./step3/known_image/cyx1.jpg"
known_image_cyz = face_recognition.load_image_file(known_image_path)
unknown_image_1_path = "./step3/unknown_image/cyx2.jpg"
unknown_image_2_path = "./step3/unknown_image/wlh.jpg"
unknown_image_1 = face_recognition.load_image_file(unknown_image_1_path)
unknown_image_2 = face_recognition.load_image_file(unknown_image_2_path)
'''**************** END ****************'''
'''****************BEGIN****************'''
cyz_encoding = face_recognition.face_encodings(known_image_cyz)[0]
unknown_encoding_1 = face_recognition.face_encodings(unknown_image_1)[0]
unknown_encoding_2 = face_recognition.face_encodings(unknown_image_2)[0]
'''**************** END ****************'''
'''****************BEGIN****************'''
face1_result = face_recognition.compare_faces([cyz_encoding], unknown_encoding_1, tolerance=0.5)
face2_result = face_recognition.compare_faces([cyz_encoding], unknown_encoding_2, tolerance=0.5)
'''**************** END ****************'''
return face1_result, face2_result
第4关:人脸识别绘制并展示
'''****************BEGIN****************'''
known_image_c_path = "./step4/known_image/Caocao.jpg"
known_image_xy_path = "./step4/known_image/XunYu.jpg"
known_image_smy_path = "./step4/known_image/SiMayi.jpg"
known_image_zch_path = "./step4/known_image/ZhangChunhua.jpg"
known_image_cc = face_recognition.load_image_file(known_image_c_path)
known_image_xy = face_recognition.load_image_file(known_image_xy_path)
known_image_smy = face_recognition.load_image_file(known_image_smy_path )
known_image_zch = face_recognition.load_image_file( known_image_zch_path)
'''**************** END ****************'''
'''****************BEGIN****************'''
caocao_encoding = face_recognition.face_encodings(known_image_cc)[0]
xy_encoding = face_recognition.face_encodings(known_image_xy)[0]
zys_encoding = face_recognition.face_encodings(known_image_smy)[0]
cyz_encoding = face_recognition.face_encodings(known_image_zch)[0]
'''**************** END ****************'''
'''****************BEGIN****************'''
'''**************** END ****************'''
'''****************BEGIN****************'''
unknown_image_1_path = "./step4/unknown_image/Caocao.jpg"
unknown_image_2_path = "./step4/unknown_image/Cuple.jpg"
unknown_image_3_path = "./step4/unknown_image/ZhangChunhua.jpg"
unknown_image_4_path = "./step4/unknown_image/XunYu.jpg"
unknown_image_5_path = './step4/unknown_image/A.jpg'
unknown_image_1 = face_recognition.load_image_file(unknown_image_1_path)
unknown_image_2 = face_recognition.load_image_file(unknown_image_2_path)
unknown_image_3 = face_recognition.load_image_file(unknown_image_3_path)
unknown_image_4 = face_recognition.load_image_file(unknown_image_4_path)
unknown_image_5 = face_recognition.load_image_file(unknown_image_5_path)
'''**************** END ****************'''
'''****************BEGIN****************'''
'''**************** END ****************'''
for frame in unknown_faces:
'''****************BEGIN****************'''
face_locations = face_recognition.face_locations(frame)
face_encodings = face_recognition.face_encodings(frame, face_locations)
'''**************** END ****************'''
for face_encoding in face_encodings:
'''****************BEGIN****************'''
match = face_recognition.compare_faces(
known_faces, face_encoding, tolerance=0.5)
'''**************** END ****************'''
'''****************BEGIN****************'''
'''**************** END ****************'''
for (top, right, bottom, left), name in zip(face_locations, face_names):
'''****************BEGIN****************'''
cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)
cv2.rectangle(frame, (left, bottom - 25),
(right, bottom), (0, 0, 255), cv2.FILLED)
font = cv2.FONT_HERSHEY_DUPLEX
cv2.putText(frame, name, (left + 6, bottom - 6),
font, 0.5, (255, 255, 255), 1)
'''**************** END ****************'''
print(frame[left+6, bottom-6])
print(frame[left, bottom])
image_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
path = './step4/out/' + name + str(face_locations[0][0]) + '.jpg'
cv2.imwrite(path, image_rgb)