Anda juga dapat membaca versi yang diterjemahkan dari file ini dalam bahasa Cina 简体中文版 atau dalam bahasa Korea 한국어 atau dalam bahasa Jepang 日本語.
Kenali dan manipulasi wajah dari Python atau dari baris perintah dengan perpustakaan pengenalan wajah paling sederhana di dunia.
Dibangun menggunakan pengenalan wajah DLIB yang canggih yang dibangun dengan pembelajaran yang mendalam. Model ini memiliki akurasi 99,38% pada wajah berlabel di benchmark liar.
Ini juga menyediakan alat baris perintah face_recognition
sederhana yang memungkinkan Anda melakukan pengenalan wajah pada folder gambar dari baris perintah!
Temukan semua wajah yang muncul dalam gambar:
import face_recognition
image = face_recognition . load_image_file ( "your_file.jpg" )
face_locations = face_recognition . face_locations ( image )
Dapatkan lokasi dan garis besar mata, hidung, mulut, dan dagu setiap orang.
import face_recognition
image = face_recognition . load_image_file ( "your_file.jpg" )
face_landmarks_list = face_recognition . face_landmarks ( image )
Menemukan fitur wajah sangat berguna untuk banyak hal penting. Tetapi Anda juga dapat menggunakannya untuk hal-hal yang benar-benar bodoh seperti menerapkan make-up digital (pikirkan 'Meitu'):
Kenali siapa yang muncul di setiap foto.
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 )
Anda bahkan dapat menggunakan perpustakaan ini dengan perpustakaan Python lainnya untuk melakukan pengakuan wajah real-time:
Lihat contoh ini untuk kode.
Demo notebook Jupyter bersama yang dikendalikan pengguna (tidak didukung secara resmi):
Pertama, pastikan Anda memiliki DLIB yang sudah diinstal dengan binding Python:
Kemudian, pastikan Anda telah menginstal CMake:
brew install cmake
Akhirnya, pasang modul ini dari PYPI menggunakan pip3
(atau pip2
untuk Python 2):
pip3 install face_recognition
Atau, Anda dapat mencoba perpustakaan ini dengan Docker, lihat bagian ini.
Jika Anda mengalami masalah dengan instalasi, Anda juga dapat mencoba VM yang telah dikonfigurasi sebelumnya.
pkg install graphics/py-face_recognition
Meskipun Windows tidak didukung secara resmi, pengguna yang bermanfaat telah memposting instruksi tentang cara menginstal perpustakaan ini:
Saat Anda menginstal face_recognition
, Anda mendapatkan dua program baris perintah sederhana:
face_recognition
- kenali wajah dalam foto atau folder penuh untuk foto.face_detection
- temukan wajah dalam foto atau folder penuh untuk foto. face_recognition
Command Line Tool Perintah face_recognition
memungkinkan Anda mengenali wajah dalam foto atau folder penuh untuk foto.
Pertama, Anda perlu memberikan folder dengan satu gambar dari setiap orang yang sudah Anda kenal. Seharusnya ada satu file gambar untuk setiap orang dengan file yang dinamai menurut siapa yang ada di gambar:
Selanjutnya, Anda memerlukan folder kedua dengan file yang ingin Anda identifikasi:
Kemudian di dalam Anda cukup jalankan perintah face_recognition
, lewat di folder orang -orang yang dikenal dan folder (atau gambar tunggal) dengan orang yang tidak dikenal dan itu memberi tahu Anda siapa yang ada di setiap gambar:
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
Ada satu baris dalam output untuk setiap wajah. Data dipisahkan dengan nama file dan nama orang yang ditemukan.
unknown_person
adalah wajah pada gambar yang tidak cocok dengan siapa pun di folder Anda yang dikenal.
face_detection
Perintah face_detection
memungkinkan Anda menemukan lokasi (koordinates piksel) dari setiap wajah dalam suatu gambar.
Cukup jalankan perintah face_detection
, meneruskan folder gambar untuk memeriksa (atau satu gambar):
$ face_detection ./folder_with_pictures/
examples/image1.jpg,65,215,169,112
examples/image2.jpg,62,394,211,244
examples/image2.jpg,95,941,244,792
Ini mencetak satu baris untuk setiap wajah yang terdeteksi. Koordinat yang dilaporkan adalah koordinat wajah atas, kanan, bawah dan kiri (dalam piksel).
Jika Anda mendapatkan beberapa kecocokan untuk orang yang sama, mungkin orang -orang di foto Anda terlihat sangat mirip dan nilai toleransi yang lebih rendah diperlukan untuk membuat perbandingan wajah lebih ketat.
Anda dapat melakukannya dengan parameter --tolerance
. Nilai toleransi default adalah 0,6 dan angka yang lebih rendah membuat perbandingan wajah lebih ketat:
$ 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
Jika Anda ingin melihat jarak wajah yang dihitung untuk setiap kecocokan untuk menyesuaikan pengaturan toleransi, Anda dapat menggunakan --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
Jika Anda hanya ingin mengetahui nama orang -orang di setiap foto tetapi tidak peduli dengan nama file, Anda bisa melakukan ini:
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/ | cut -d ' , ' -f2
Barack Obama
unknown_person
Pengenalan wajah dapat dilakukan secara paralel jika Anda memiliki komputer dengan beberapa inti CPU. Misalnya, jika sistem Anda memiliki 4 core CPU, Anda dapat memproses sekitar 4 kali lebih banyak gambar dalam jumlah waktu yang sama dengan menggunakan semua inti CPU Anda secara paralel.
Jika Anda menggunakan Python 3.4 atau yang lebih baru, lewati dalam parameter --cpus <number_of_cpu_cores_to_use>
:
$ face_recognition --cpus 4 ./pictures_of_people_i_know/ ./unknown_pictures/
Anda juga dapat meneruskannya --cpus -1
untuk menggunakan semua inti CPU di sistem Anda.
Anda dapat mengimpor modul face_recognition
dan kemudian dengan mudah memanipulasi wajah hanya dengan beberapa baris kode. Itu sangat mudah!
API Docs: https://face-fecognition.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!
Lihat contoh ini untuk mencobanya.
Anda juga dapat ikut serta ke model deteksi wajah berbasis pembelajaran yang agak lebih akurat.
Catatan: Akselerasi GPU (melalui Perpustakaan CUDA NVIDIA) diperlukan untuk kinerja yang baik dengan model ini. Anda juga ingin mengaktifkan dukungan CUDA saat mengaduk 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!
Lihat contoh ini untuk mencobanya.
Jika Anda memiliki banyak gambar dan GPU, Anda juga dapat menemukan wajah dalam batch.
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.
Lihat contoh ini untuk mencobanya.
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!" )
Lihat contoh ini untuk mencobanya.
Semua contoh tersedia di sini.
Jika Anda ingin membuat Executable mandiri yang dapat berjalan tanpa perlu menginstal python
atau face_recognition
, Anda dapat menggunakan PyInstaller. Namun, ini membutuhkan beberapa konfigurasi khusus untuk bekerja dengan perpustakaan ini. Lihat masalah ini untuk bagaimana melakukannya.
face_recognition
Jika Anda ingin mempelajari cara kerja lokasi dan pengakuan, alih -alih bergantung pada perpustakaan kotak hitam, baca artikel saya.
Karena face_recognition
tergantung pada dlib
yang ditulis dalam C ++, mungkin sulit untuk menggunakan aplikasi yang menggunakannya ke penyedia hosting cloud seperti Heroku atau AWS.
Untuk membuat segalanya lebih mudah, ada contoh Dockerfile dalam repo ini yang menunjukkan cara menjalankan aplikasi yang dibangun dengan face_recognition
dalam wadah Docker. Dengan itu, Anda harus dapat menggunakan layanan apa pun yang mendukung gambar Docker.
Anda dapat mencoba gambar Docker secara lokal dengan menjalankan: docker-compose up --build
Ada juga beberapa gambar Docker prebuilt.
Pengguna Linux dengan GPU (driver> = 384.81) dan NVIDIA-Docker diinstal dapat menjalankan contoh pada GPU: Buka file Docker-Compose.yml dan uncomment the dockerfile: Dockerfile.gpu
dan runtime: nvidia
LINE.
Jika Anda mengalami masalah, silakan baca bagian Kesalahan Umum Wiki sebelum mengajukan masalah GitHub.