##coding=utf-8
import face_recognition
from PIL import Image
def detect_faces_in_image(file_stream1, file_stream2):
code1 = face_recognition.face_encodings(face_recognition.load_image_file(file_stream1))[0]
code2 = face_recognition.face_encodings(face_recognition.load_image_file(file_stream2))[0]
if len(code1) > 0 and len(code2) > 0:
match_results = face_recognition.face_distance([code1], code2)
print(match_results)
# print(match_results[0])
if match_results[0] > 0.6:
result = "不是同一个人"
else:
result = "同一个人"
return result
def face_compare_method(file_stream1, file_stream2):
code1 = face_recognition.face_encodings(face_recognition.load_image_file(file_stream1))[0]
code2 = face_recognition.face_encodings(face_recognition.load_image_file(file_stream2))[0]
if len(code1) > 0 and len(code2) > 0:
match_results = face_recognition.compare_faces([code1], code2)
print(match_results)
if match_results[0] == False:
result = "1"##不是同一个人
else:
result = "0"##同一个人
return result
def face_location_method(file_stream1):
image = face_recognition.load_image_file(file_stream1)
face_locations = face_recognition.face_locations(image, number_of_times_to_upsample=0, model="cnn")
print("I found {} face(s) in this photograph.".format(len(face_locations)))
for face_location in face_locations:
# Print the location of each face in this image
top, right, bottom, left = face_location
print("A face is located at pixel location Top: {}, Left: {}, Bottom: {}, Right: {}".format(top, left, bottom,
right))
# You can access the actual face itself like this:
face_image = image[top:bottom, left:right]
pil_image = Image.fromarray(face_image)
pil_image.show()