face_recognition
command line tool
that letsFind all the faces that appear in a picture:
import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_locations = face_recognition.face_locations(image)
Get the locations and outlines of each person's eyes, nose, mouth and chin.
import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)
Recognize who appears in each photo.
import face_recognition
known_image = face_recognition.load_image_file("biden.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")
biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
results = face_recognition.compare_faces([biden_encoding], unknown_encoding)
You can even use this library with other Python libraries to do real-time face recognition:
See this example for the code.
First, make sure you have dlib already installed with Python bindings:
Then, install this module from pypi using pip3
(or pip2
for
Python 2):
pip3 install face_recognition
While Windows isn't officially supported, helpful users have posted instructions on how to install this library:
face_recognition
, you get a simple command-line
programface_recognition
that you can use to recognize faces in aNext, you need a second folder with the files you want to identify:
face_recognition
, passing in
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
unknown_person
is a face in the image that didn't match anyone
in--tolerance
parameter. The default
tolerance
$ face_recognition --tolerance 0.54 ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
--show-distance true
:
$ face_recognition --show-distance true ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama,0.378542298956785
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person,None
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/ | cut -d ',' -f2
Barack Obama
unknown_person
If you are using Python 3.4 or newer, pass in a
--cpus <number_of_cpu_cores_to_use>
parameter:
$ face_recognition --cpus 4 ./pictures_of_people_i_know/ ./unknown_pictures/
You can also pass in --cpus -1
to use all CPU cores in your system.
face_recognition
module and then easily
manipulateAPI Docs: https://face-recognition.readthedocs.io.
import face_recognition
image = face_recognition.load_image_file("my_picture.jpg")
face_locations = face_recognition.face_locations(image)
# face_locations is now an array listing the co-ordinates of each face!
You can also opt-in to a somewhat more accurate deep-learning-based face detection model.
dlib
.
import face_recognition
image = face_recognition.load_image_file("my_picture.jpg")
face_locations = face_recognition.face_locations(image, model="cnn")
# face_locations is now an array listing the co-ordinates of each face!
import face_recognition
image = face_recognition.load_image_file("my_picture.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)
# face_landmarks_list is now an array with the locations of each facial feature in each face.
# face_landmarks_list[0]['left_eye'] would be the location and outline of the first person's left eye.
import face_recognition
picture_of_me = face_recognition.load_image_file("me.jpg")
my_face_encoding = face_recognition.face_encodings(picture_of_me)[0]
# my_face_encoding now contains a universal 'encoding' of my facial features that can be compared to any other picture of a face!
unknown_picture = face_recognition.load_image_file("unknown.jpg")
unknown_face_encoding = face_recognition.face_encodings(unknown_picture)[0]
# Now we can see the two face encodings are of the same person with `compare_faces`!
results = face_recognition.compare_faces([my_face_encoding], unknown_face_encoding)
if results[0] == True:
print("It's a picture of me!")
else:
print("It's not a picture of me!")
All the examples are available here.
Find and recognize unknown faces in a photograph based on photographs of known people
Compare faces by numeric face distance instead of only True/False matches
Recognize faces in live video using your webcam - Faster Version (Requires OpenCV to be installed)
Recognize faces in a video file and write out new video file (Requires OpenCV to be installed)
Run a web service to recognize faces via HTTP (Requires Flask to be installed)
Recognize faces with a K-nearest neighbors classifier
How Face Recognition Works
face_recognition
depends on dlib
which is written in
C++, it can be tricky to deploy an appface_recognition
in a Docker
container. With that, you should be able to deployIssue: Illegal instruction (core dumped)
when using
face_recognition or running examples.
dlib
is compiled with SSE4 or AVX support, but your CPU
is too old and doesn't support that.dlib
after making the code change
outlined
here.Issue:
RuntimeError: Unsupported image type, must be 8bit gray or RGB image.
when running the webcam examples.
Solution: Your webcam probably isn't set up correctly with OpenCV. Look here for more.
Issue: MemoryError
when running pip2 install face_recognition
pip2 --no-cache-dir install face_recognition
to avoid the
issue.Issue:
AttributeError: 'module' object has no attribute 'face_recognition_model_v1'
Solution: The version of dlib
you have installed is too old. You
need version 19.7 or newer. Upgrade dlib
.
Issue:
Attribute Error: 'Module' object has no attribute 'cnn_face_detection_model_v1'
Solution: The version of dlib
you have installed is too old. You
need version 19.7 or newer. Upgrade dlib
.
Issue: TypeError: imread() got an unexpected keyword argument 'mode'
Solution: The version of scipy
you have installed is too old. You
need version 0.17 or newer. Upgrade scipy
.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。