You can also read a translated version of this file in Chinese 简体中文版 or in Korean 한국어 or in Japanese 日本語
Nhận dạng và thao tác khuôn mặt từ Python hoặc từ dòng lệnh với thư viện nhận dạng khuôn mặt đơn giản nhất thế giới
Được xây dựng bằng cách sử dụng công nghệ nhận dạng khuôn mặt tiên tiến nhất của dlib được xây dựng bằng học sâu. Mô hình có độ chính xác 99. 38% trên tiêu chuẩn Khuôn mặt được dán nhãn trong Wild
Điều này cũng cung cấp một công cụ dòng lệnh
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]5 đơn giản cho phép bạn thực hiện nhận dạng khuôn mặt trên một thư mục hình ảnh từ dòng lệnh
Đặc trưng
Tìm khuôn mặt trong ảnh
Tìm tất cả các khuôn mặt xuất hiện trong ảnh
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_locations = face_recognition.face_locations[image]
Tìm và thao tác với các đặc điểm khuôn mặt trong ảnh
Nhận vị trí và đường viền của mắt, mũi, miệng và cằm của mỗi người
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]
Tìm các đặc điểm trên khuôn mặt cực kỳ hữu ích cho nhiều thứ quan trọng. Nhưng bạn cũng có thể sử dụng nó cho những thứ thực sự ngớ ngẩn như trang điểm kỹ thuật số [hãy nghĩ đến 'Meitu']
Nhận dạng khuôn mặt trong ảnh
Nhận ra ai xuất hiện trong mỗi bức ảnh
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]
Bạn thậm chí có thể sử dụng thư viện này với các thư viện Python khác để thực hiện nhận dạng khuôn mặt theo thời gian thực
Xem ví dụ này để biết mã
Trình diễn trực tuyến
Bản demo máy tính xách tay Jupyter được chia sẻ do người dùng đóng góp [không được hỗ trợ chính thức].
Cài đặt
Yêu cầu
- Trăn 3. 3+ hoặc Python 2. 7
- macOS hoặc Linux [Windows không được hỗ trợ chính thức, nhưng có thể hoạt động]
Tùy chọn cài đặt
Cài đặt trên Mac hoặc Linux
Trước tiên, hãy đảm bảo rằng bạn đã cài đặt dlib với các liên kết Python
- Cách cài đặt dlib từ nguồn trên macOS hoặc Ubuntu
Sau đó, đảm bảo rằng bạn đã cài đặt cmake
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]6
Cuối cùng, cài đặt mô-đun này từ pypi bằng cách sử dụng
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]7 [hoặc
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]8 cho Python 2]
pip3 install face_recognition
Ngoài ra, bạn có thể thử thư viện này với Docker, xem
Nếu bạn gặp sự cố khi cài đặt, bạn cũng có thể dùng thử máy ảo được cấu hình sẵn
Cài đặt trên bo mạch Nvidia Jetson Nano
- Hướng dẫn cài đặt Jetson Nano
- Hãy làm theo hướng dẫn trong bài viết một cách cẩn thận. Hiện tại có một lỗi trong thư viện CUDA trên Jetson Nano sẽ khiến thư viện này bị lỗi âm thầm nếu bạn không làm theo hướng dẫn trong bài viết để nhận xét một dòng trong dlib và biên dịch lại nó
Cài đặt trên Raspberry Pi 2+
- Hướng dẫn cài đặt Raspberry Pi 2+
Cài đặt trên FreeBSD
________số 8
Cài đặt trên Windows
Mặc dù Windows không được hỗ trợ chính thức nhưng những người dùng hữu ích đã đăng hướng dẫn về cách cài đặt thư viện này
Cài đặt hình ảnh Máy ảo được định cấu hình sẵn
- Tải xuống hình ảnh máy ảo được cấu hình sẵn [dành cho VMware Player hoặc VirtualBox]
Cách sử dụng
Giao diện dòng lệnh
Khi bạn cài đặt
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]5, bạn sẽ nhận được hai chương trình dòng lệnh đơn giản
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]
5 - Nhận dạng khuôn mặt trong ảnh hoặc thư mục đầy ảnhimport 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]
1 - Tìm khuôn mặt trong ảnh hoặc thư mục chứa đầy ảnh
Công cụ dòng lệnh import face_recognition
image = face_recognition.load_image_file["your_file.jpg"]
face_landmarks_list = face_recognition.face_landmarks[image]
5
Lệnh
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]5 cho phép bạn nhận dạng khuôn mặt trong ảnh hoặc thư mục chứa đầy ảnh
Trước tiên, bạn cần cung cấp một thư mục có một hình ảnh của mỗi người mà bạn đã biết. Nên có một tệp hình ảnh cho mỗi người với các tệp được đặt tên theo người trong ảnh
Tiếp theo, bạn cần một thư mục thứ hai chứa các tệp bạn muốn xác định
Sau đó, bạn chỉ cần chạy lệnh
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]5, chuyển vào thư mục của những người đã biết và thư mục [hoặc một hình ảnh] với những người chưa biết và nó sẽ cho bạn biết ai là người trong mỗi hình ảnh
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_locations = face_recognition.face_locations[image]5
Có một dòng trong đầu ra cho mỗi khuôn mặt. Dữ liệu được phân tách bằng dấu phẩy với tên tệp và tên của người được tìm thấy
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]5 là khuôn mặt trong ảnh không khớp với bất kỳ ai trong danh mục những người đã biết của bạn
Công cụ dòng lệnh 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]
1
Lệnh ________ 31 cho phép bạn tìm vị trí [tọa độ pixel] của bất kỳ khuôn mặt nào trong ảnh
Chỉ cần chạy lệnh
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]1, chuyển vào một thư mục hình ảnh để kiểm tra [hoặc một hình ảnh]
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]0
Nó in một dòng cho mỗi khuôn mặt đã được phát hiện. Các tọa độ được báo cáo là tọa độ trên, phải, dưới và trái của khuôn mặt [tính bằng pixel]
Điều chỉnh dung sai / độ nhạyNếu bạn nhận được nhiều kết quả trùng khớp cho cùng một người, thì có thể những người trong ảnh của bạn trông rất giống nhau và cần có giá trị dung sai thấp hơn để so sánh khuôn mặt chặt chẽ hơn
Bạn có thể làm điều đó với tham số
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]9. Giá trị dung sai mặc định là 0. 6 và các số thấp hơn giúp so sánh khuôn mặt chặt chẽ hơn
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]2
Nếu bạn muốn xem khoảng cách khuôn mặt được tính cho mỗi lần khớp để điều chỉnh cài đặt dung sai, bạn có thể sử dụng
pip3 install face_recognition0
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]4Thêm ví dụ
Nếu bạn chỉ muốn biết tên của những người trong mỗi bức ảnh nhưng không quan tâm đến tên tệp, bạn có thể làm điều này
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]5Tăng tốc nhận diện khuôn mặt
Nhận dạng khuôn mặt có thể được thực hiện song song nếu bạn có máy tính có nhiều lõi CPU. Ví dụ: nếu hệ thống của bạn có 4 lõi CPU, bạn có thể xử lý số lượng hình ảnh gấp khoảng 4 lần trong cùng một khoảng thời gian bằng cách sử dụng song song tất cả các lõi CPU
Nếu bạn đang sử dụng Python 3. 4 hoặc mới hơn, chuyển vào tham số
pip3 install face_recognition1
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]0
Bạn cũng có thể chuyển vào
pip3 install face_recognition2 để sử dụng tất cả các lõi CPU trong hệ thống của mình
Mô-đun Python
Bạn có thể nhập mô-đun
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]5 và sau đó dễ dàng thao tác với các mặt chỉ bằng một vài dòng mã. Nó siêu dễ dàng
Tài liệu API. https. //nhận dạng khuôn mặt. đọcthedocs. io
Tự động tìm tất cả các khuôn mặt trong một hình ảnhimport face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]1
Xem ví dụ này để thử
Bạn cũng có thể chọn tham gia mô hình nhận diện khuôn mặt dựa trên học sâu chính xác hơn một chút
Ghi chú. Tăng tốc GPU [thông qua thư viện CUDA của NVidia] là cần thiết để có hiệu suất tốt với kiểu máy này. Bạn cũng sẽ muốn kích hoạt hỗ trợ CUDA khi tuân thủ
pip3 install face_recognition4
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]2
Xem ví dụ này để thử
Nếu bạn có nhiều hình ảnh và GPU, bạn cũng có thể tìm thấy các khuôn mặt theo lô
Tự động định vị các đặc điểm khuôn mặt của một người trong ảnhimport face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]3
Xem ví dụ này để thử
Nhận dạng khuôn mặt trong hình ảnh và xác định họ là aiimport face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]4
Xem ví dụ này để thử
Ví dụ mã Python
Tất cả các ví dụ có sẵn ở đây
Phát hiện khuôn mặt
- Tìm khuôn mặt trong ảnh
- Tìm khuôn mặt trong ảnh [sử dụng deep learning]
- Tìm khuôn mặt trong hàng loạt hình ảnh với GPU [sử dụng học sâu]
- Làm mờ tất cả các khuôn mặt trong video trực tiếp bằng webcam của bạn [Yêu cầu phải cài đặt OpenCV]
Đặc điểm khuôn mặt
- Xác định các đặc điểm khuôn mặt cụ thể trong một bức ảnh
- Trang điểm kỹ thuật số [xấu khủng khiếp]
Nhận dạng khuôn mặt
- Tìm và nhận ra những khuôn mặt không quen biết trong một bức ảnh dựa trên ảnh của những người đã biết
- Xác định và vẽ các hộp xung quanh mỗi người trong ảnh
- So sánh khuôn mặt theo khoảng cách khuôn mặt số thay vì chỉ đối sánh Đúng/Sai
- Nhận dạng khuôn mặt trong video trực tiếp bằng webcam của bạn - Phiên bản đơn giản / chậm hơn [Yêu cầu cài đặt OpenCV]
- Nhận dạng khuôn mặt trong video trực tiếp bằng webcam của bạn - Phiên bản nhanh hơn [Yêu cầu cài đặt OpenCV]
- Nhận dạng khuôn mặt trong tệp video và ghi ra tệp video mới [Yêu cầu cài đặt OpenCV]
- Nhận dạng khuôn mặt trên Raspberry Pi với máy ảnh
- Chạy dịch vụ web nhận dạng khuôn mặt qua HTTP [Yêu cầu cài đặt Flask]
- Nhận dạng khuôn mặt với bộ phân loại K-hàng xóm gần nhất
- Đào tạo nhiều hình ảnh cho mỗi người sau đó nhận dạng khuôn mặt bằng SVM
Tạo một tệp thực thi độc lập
Nếu bạn muốn tạo một tệp thực thi độc lập có thể chạy mà không cần cài đặt
pip3 install face_recognition5 hoặc
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]5, bạn có thể sử dụng PyInstaller. Tuy nhiên, nó yêu cầu một số cấu hình tùy chỉnh để hoạt động với thư viện này. Xem vấn đề này để biết cách thực hiện
Bài báo và Hướng dẫn bao gồm import face_recognition
image = face_recognition.load_image_file["your_file.jpg"]
face_landmarks_list = face_recognition.face_landmarks[image]
5
- Bài viết của tôi về cách thức hoạt động của Nhận dạng khuôn mặt. Nhận dạng khuôn mặt hiện đại với Deep Learning
- Bao gồm các thuật toán và cách chúng thường hoạt động
- Nhận dạng khuôn mặt với OpenCV, Python và học sâu của Adrian Rosebrock
- Bao gồm cách sử dụng nhận dạng khuôn mặt trong thực tế
- Nhận dạng khuôn mặt Raspberry Pi của Adrian Rosebrock
- Bao gồm cách sử dụng cái này trên Raspberry Pi
- Phân cụm khuôn mặt với Python của Adrian Rosebrock
- Bao gồm cách tự động nhóm ảnh dựa trên người xuất hiện trong mỗi ảnh bằng cách học không giám sát
Cách thức hoạt động của tính năng Nhận dạng khuôn mặt
Nếu bạn muốn tìm hiểu cách hoạt động của vị trí và nhận dạng khuôn mặt thay vì phụ thuộc vào thư viện hộp đen, hãy đọc bài viết của tôi
Hãy cẩn thận
- Mô hình nhận dạng khuôn mặt được đào tạo trên người lớn và không hoạt động tốt trên trẻ em. Nó có xu hướng trộn lẫn trẻ em khá dễ dàng bằng cách sử dụng ngưỡng so sánh mặc định là 0. 6
- Độ chính xác có thể khác nhau giữa các nhóm dân tộc. Vui lòng xem để biết thêm chi tiết
Triển khai lên Máy chủ đám mây [Heroku, AWS, v.v.]
Vì
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]5 phụ thuộc vào
pip3 install face_recognition4 được viết bằng C++ nên có thể khó triển khai ứng dụng sử dụng nó cho nhà cung cấp dịch vụ lưu trữ đám mây như Heroku hoặc AWS
Để làm cho mọi thứ dễ dàng hơn, có một Dockerfile ví dụ trong kho lưu trữ này cho biết cách chạy một ứng dụng được tạo bằng
import face_recognition image = face_recognition.load_image_file["your_file.jpg"] face_landmarks_list = face_recognition.face_landmarks[image]5 trong bộ chứa Docker. Cùng với đó, bạn sẽ có thể triển khai cho bất kỳ dịch vụ nào hỗ trợ hình ảnh Docker
Bạn có thể thử hình ảnh Docker cục bộ bằng cách chạy.
pkg install graphics/py-face_recognition1
Ngoài ra còn có một số hình ảnh Docker dựng sẵn
Người dùng Linux có GPU [trình điều khiển >= 384. 81] và Nvidia-Docker đã cài đặt có thể chạy ví dụ trên GPU. Mở docker-compose. yml và bỏ ghi chú các dòng
pkg install graphics/py-face_recognition2 và
pkg install graphics/py-face_recognition3
Đang có những vấn đề?
Nếu bạn gặp sự cố, vui lòng đọc phần Lỗi thường gặp của wiki trước khi gửi vấn đề lên github