Pada masa lalu, pengecaman muka terutamanya merangkumi teknologi dan sistem seperti pengumpulan imej muka, pra-pemprosesan pengecaman muka, pengesahan identiti dan carian identiti. Kini pengecaman muka telah diperluaskan secara perlahan kepada pengesanan pemandu, penjejakan pejalan kaki dan juga penjejakan objek dinamik dalam ADAS.
Dapat dilihat bahawa sistem pengecaman muka telah dibangunkan daripada pemprosesan imej mudah kepada pemprosesan video masa nyata. Selain itu, algoritma telah berubah daripada kaedah statistik tradisional seperti Adaboots dan PCA kepada kaedah pembelajaran mendalam seperti CNN dan RCNN dan pengubahsuaiannya. Kini sebilangan besar orang telah mula mengkaji pengecaman muka 3D, dan projek jenis ini kini disokong oleh ahli akademik, industri dan negara.
Pertama, mari kita lihat status penyelidikan semasa. Seperti yang dapat dilihat daripada trend pembangunan di atas, hala tuju penyelidikan utama semasa ialah menggunakan kaedah pembelajaran mendalam untuk menyelesaikan pengecaman muka video.
Seperti berikut: Profesor Shan Shiguang dari Institut Teknologi Pengkomputeran, Akademi Sains China, Profesor Li Ziqing dari Institut Biometrik, Akademi Sains China, Profesor Su Guangda dari Universiti Tsinghua, dan Profesor Tang Xiaoou dari Universiti Cina Hong Kong, Ross B. Girshick, dsb.
Enjin pengecaman muka SeeetaFace. Enjin itu dibangunkan oleh kumpulan penyelidik pengecaman muka yang diketuai oleh penyelidik Shan Shiguang dari Institut Teknologi Pengkomputeran, Akademi Sains China. Kod ini dilaksanakan berdasarkan C++ dan tidak bergantung pada mana-mana fungsi perpustakaan pihak ketiga Lesen sumber terbuka ialah BSD-2 dan boleh digunakan secara percuma oleh ahli akademik dan industri.
Pangkalan data imej muka yang lebih baik pada masa ini didedahkan termasuk LFW (Wajah Berlabel di Alam Liar) dan YFW (Muka YouTube di Alam Liar) ). Set data percubaan semasa pada asasnya diperoleh daripada LFW, dan ketepatan pengecaman muka imej semasa telah mencapai 99%. Berikut ialah ringkasan pangkalan data imej wajah sedia ada:
Terdapat lebih banyak syarikat yang melakukan pengecaman muka di China, dan aplikasinya juga sangat meluas. Antaranya, Hanwang Technology mempunyai bahagian pasaran tertinggi. Arah penyelidikan dan status semasa syarikat utama adalah seperti berikut:
Pengecaman muka terbahagi kepada empat bahagian: pengesanan muka (pengesanan muka), penentukuran muka (penjajaran muka), pengesahan muka (pengesahan muka), pengenalan muka (face identification).
Kesan muka dalam imej dan bingkaikan hasilnya dengan bingkai segi empat tepat. Dalam openCV, terdapat pengelas Harr yang boleh digunakan secara langsung.
Betulkan postur wajah yang dikesan untuk menjadikan wajah sebagai "positif" yang mungkin, ketepatan pengecaman muka dapat dipertingkatkan. Kaedah pembetulan termasuk pembetulan 2D dan pembetulan 3D Kaedah pembetulan 3D boleh membolehkan pengecaman muka sisi yang lebih baik.
Apabila melakukan pembetulan muka, terdapat satu langkah untuk mengesan lokasi titik ciri Lokasi titik ciri ini adalah terutamanya lokasi seperti bahagian kiri hidung, bahagian bawah lubang hidung, kedudukan anak mata. bahagian bawah bibir atas, dsb. Selepas mengetahui kedudukan titik ciri ini, lakukan ubah bentuk dipacu kedudukan, dan muka boleh "diperbetulkan". Seperti yang ditunjukkan dalam rajah di bawah:
Berikut ialah teknologi yang dibangunkan oleh MSRA pada 2014: Pengesanan dan Penjajaran Muka Lata Bersama (ECCV14). Artikel ini secara langsung melakukan pengesanan dan penjajaran dalam 30ms.
Pengesahan muka, pengesahan muka adalah berdasarkan padanan pasangan, jadi jawapan yang diterima ialah "ya" atau "tidak". Dalam operasi khusus, imej ujian diberikan, dan kemudian padanan pasangan dilakukan satu demi satu Jika padanan berjaya, ia bermakna imej ujian dan muka yang dipadankan adalah wajah orang yang sama.
Kaedah ini (sepatutnya) secara amnya digunakan dalam sistem tebuk masuk pengimbasan muka di pejabat kecil Kaedah operasi khusus adalah kira-kira proses berikut: masukkan foto muka pekerja satu demi satu di luar talian (orang yang masuk oleh pekerja Biasanya terdapat lebih daripada satu muka). Selepas kamera menangkap imej apabila pekerja meleret muka untuk mendaftar masuk, ia mula-mula melakukan pengesanan muka melalui kaedah yang dinyatakan di atas, kemudian melakukan pembetulan muka, dan kemudian melakukan pengesahan muka. . Sebaik sahaja keputusan perlawanan adalah "Ya" ”, menunjukkan bahawa orang yang mengimbas muka adalah milik pejabat ini dan pengesahan wajah selesai pada langkah ini.
Apabila memasuki wajah pekerja secara offline, kita boleh memadankan wajah dengan nama orang tersebut, supaya setelah pengesahan wajah berjaya, kita boleh tahu siapa orang tersebut.
Kelebihan sistem yang disebutkan di atas adalah kos yang rendah untuk dibangunkan dan sesuai untuk pejabat kecil, ia tidak boleh disekat semasa tangkapan, dan ia juga memerlukan postur muka yang agak lurus (kami memiliki sistem ini, tetapi belum mengalaminya). Rajah berikut memberikan penjelasan skematik:
Pengenalan muka atau Pengecaman muka, pengecaman muka adalah seperti berikut Seperti yang ditunjukkan dalam rajah , apa yang ingin dijawab ialah "Siapa saya?" Berbanding dengan padanan pasangan yang digunakan dalam pengesahan muka, ia menggunakan lebih banyak kaedah pengelasan dalam peringkat pengecaman. Ia sebenarnya mengklasifikasikan imej (muka) selepas melakukan dua langkah sebelum ini iaitu pengesanan muka dan pembetulan muka.
Menurut pengenalan empat konsep di atas, kita dapat memahami bahawa pengecaman muka terutamanya merangkumi tiga modul bebas yang besar:
Kami membahagikan langkah di atas secara terperinci dan mendapatkan rajah proses berikut:
Kini, dengan perkembangan pengecaman muka teknologi, teknologi pengecaman muka terbahagi terutamanya kepada tiga kategori: pertama, kaedah pengecaman berasaskan imej, kedua, kaedah pengecaman berasaskan video, dan kaedah pengecaman muka tiga dimensi ketiga.
Proses ini ialah proses pengecaman imej statik, terutamanya menggunakan pemprosesan imej. Algoritma utama termasuk PCA, EP, kaedah kernel, Bayesian Framwork, SVM, HMM, Adaboot dan algoritma lain. Tetapi pada tahun 2014, pengecaman muka mencapai kejayaan besar menggunakan teknologi pembelajaran Dalam, yang diwakili oleh 97.25% muka dalam dan 97.27% muka dalam. Walau bagaimanapun, set latihan muka dalam ialah 4 juta set Pada masa yang sama, Gussian oleh Tang Xiaoou Universiti Cina Hong Kong Set latihan muka ialah 2w.
Proses ini boleh dilihat dalam proses pengesanan pengecaman muka, yang bukan sahaja memerlukan mencari kedudukan dan saiz muka dalam video, tetapi juga perlu menentukan Korespondensi antara bingkai antara muka yang berbeza.
Kertas rujukan (maklumat):
1. DeepFace: Menutup Jurang kepada Prestasi Peringkat Manusia dalam Pengesahan Muka
2. http://blog.csdn.net/zouxy09/article/details/8781543
3. Blog terbitan rangkaian saraf konvolusi. http://blog.csdn.net/zouxy09/article/details/9993371/
4. Nota mengenai Rangkaian Neural Konvolusi
5
6. Catatan blog DeepFace: http://blog.csdn.net/Hao_Zhang_Vision/article/details/52831399?locationNum=2&fps=1DeepFace telah dicadangkan oleh FaceBook, diikuti oleh DeepID dan FaceNet. . Selain itu, DeepFace boleh dilihat dalam DeepID dan FaceNet, jadi DeepFace boleh dikatakan sebagai asas kepada CNN dalam pengecaman muka Pada masa ini, pembelajaran mendalam juga telah mencapai keputusan yang sangat baik dalam pengecaman muka. Jadi di sini kita mula belajar daripada DeepFace. Dalam proses pembelajaran DeepFace, bukan sahaja kaedah yang digunakan oleh DeepFace akan diperkenalkan, malah algoritma utama lain yang sedang digunakan dalam langkah ini akan diperkenalkan untuk memberikan penerangan ringkas dan menyeluruh tentang pengecaman muka imej sedia ada. teknologi. Rangka kerja asas DeepFace1 Proses asas pengecaman mukapengesanan muka -> penjajaran muka -> pengesahan muka -> pengenalan muka 2. . Pengesanan muka 2.1 Teknologi sedia ada:Pengesanan muka telah pun mempunyai pengelas haar yang boleh digunakan terus dalam opencv, berdasarkan algoritma Viola-Jones.
Algoritma Adaboost (pengelas lata):
1. Kertas rujukan: Pengesanan muka Masa Nyata Teguh.
2. Rujukan blog Cina: http://blog.csdn.net/cyh_24/article/details/39755661
3 /s/blog_7769660f01019ep0.html
2.2 Kaedah yang digunakan dalam artikel
Artikel ini menggunakan kaedah pengesanan muka berdasarkan titik pengesanan (Fiducial Point Detector).
Kesannya adalah seperti berikut:
Penjajaran 2D:
Penjajaran 3D:
Penjajaran 2D di atas sepadan dengan (b) Gambar, Penjajaran 3D sepadan dengan (c) ~ (h).
4.1 Teknologi sedia ada
Melalui dua kaedah gabungan LBP berdimensi tinggi dan Bayesian Bersama.
Siri DeepID:
Gabungan tujuh model Bayesian bersama menggunakan SVM, ketepatan Mencapai 99.15%
4.2 Kaedah dalam artikel
Dalam kertas, rangkaian saraf dalam (DNN) dilatih melalui tugas pengecaman muka berbilang kelas. Struktur rangkaian ditunjukkan dalam rajah di atas.
Selepas penjajaran 3D, imej yang terbentuk adalah semua imej 152×152, yang dimasukkan ke dalam struktur rangkaian di atas Parameter struktur adalah seperti berikut:
Prosesnya adalah seperti berikut:
Rangkaian 3 lapisan di atas adalah untuk mengekstrak ciri peringkat rendah, seperti ciri tepi ringkas dan ciri tekstur. Lapisan undian Maks menjadikan rangkaian konvolusi lebih teguh kepada transformasi tempatan. Jika input ialah muka yang diperbetulkan, ia menjadikan rangkaian lebih mantap kepada ralat pelabelan kecil.
Walau bagaimanapun, lapisan undian sedemikian akan menyebabkan rangkaian kehilangan beberapa maklumat mengenai struktur terperinci muka dan lokasi tepat tekstur kecil. Oleh itu, kertas itu hanya menambah lapisan undian Maks selepas lapisan konvolusi pertama. Lapisan sebelumnya ini dipanggil tahap prapemprosesan adaptif hadapan. Walau bagaimanapun, untuk banyak pengiraan, di mana ini perlu, lapisan ini mempunyai parameter yang sangat sedikit. Mereka hanya mengembangkan imej input ke dalam set ciri tempatan yang mudah.
L4, L5 dan L6 semuanya adalah lapisan yang disambungkan secara setempat Sama seperti lapisan konvolusi menggunakan penapis, set lapisan yang berbeza dilatih dan dipelajari pada setiap kedudukan ciri imej. Memandangkan kawasan yang berbeza mempunyai sifat statistik yang berbeza selepas pembetulan, andaian kestabilan spatial rangkaian konvolusi tidak dapat diwujudkan.
Sebagai contoh, kawasan antara mata dan kening mempamerkan penampilan yang sangat berbeza dan sangat berbeza berbanding dengan kawasan antara hidung dan mulut. Dalam erti kata lain, dengan menggunakan imej yang diperbetulkan input, struktur DNN disesuaikan.
Penggunaan lapisan sambungan tempatan tidak menjejaskan beban pengiraan semasa pengekstrakan ciri, tetapi ia menjejaskan bilangan parameter latihan. Hanya kerana terdapat perpustakaan muka berlabel yang begitu besar, kami mampu membeli tiga lapisan besar yang disambungkan secara tempatan. Unit keluaran lapisan sambungan tempatan dipengaruhi oleh tampung input yang besar, dan penggunaan (parameter) lapisan sambungan tempatan boleh dilaraskan sewajarnya (tiada pemberat dikongsi)
Sebagai contoh, output bagi Lapisan L6 dipengaruhi oleh 74* Kesan tampalan input 74*3, pada muka yang diperbetulkan, adalah sukar untuk mempunyai sebarang perkongsian parameter statistik antara tampalan besar tersebut.
Akhir sekali, dua lapisan teratas rangkaian (F7, F8) disambungkan sepenuhnya: setiap unit output disambungkan kepada semua input. Kedua-dua lapisan ini boleh menangkap korelasi antara ciri di kawasan yang jauh dalam imej muka. Sebagai contoh, korelasi antara kedudukan dan bentuk mata serta kedudukan dan bentuk mulut (bahagian ini juga mengandungi maklumat) boleh diperolehi daripada kedua-dua lapisan ini. Output lapisan pertama F7 yang disambungkan sepenuhnya ialah vektor ekspresi ciri muka asal kami.
Dari segi ekspresi ciri, vektor ciri ini sangat berbeza daripada perihalan ciri berasaskan LBP tradisional. Kaedah tradisional biasanya menggunakan perihalan ciri tempatan (histogram pengiraan) dan berfungsi sebagai input kepada pengelas.
Output lapisan terakhir F8 yang disambungkan sepenuhnya memasuki K-way softmax (K ialah bilangan kategori), yang menjana taburan kebarangkalian label kategori. Biarkan Ok mewakili keluaran ke-k bagi imej input selepas melalui rangkaian, iaitu, kebarangkalian label kelas keluaran k boleh dinyatakan dengan formula berikut:
Matlamat latihan adalah untuk memaksimumkan keluaran yang betul Kebarangkalian kelas (id muka). Ini dicapai dengan meminimumkan kehilangan entropi silang bagi setiap sampel latihan. Biarkan k mewakili label kategori yang betul bagi input yang diberikan, maka kehilangan entropi silang ialah:
Dengan mengira kecerunan kehilangan entropi silang L pada parameter dan menggunakan kaedah pengurangan kecerunan stokastik untuk meminimumkan kehilangan entropi silang.
Kecerunan dikira dengan perambatan balik standard ralat. Menariknya, ciri yang dihasilkan oleh rangkaian ini sangat jarang. Lebih daripada 75% elemen ciri peringkat atas ialah 0. Ini disebabkan terutamanya oleh penggunaan fungsi pengaktifan ReLU. Fungsi tak linear ambang lembut ini digunakan dalam semua lapisan konvolusi, lapisan bersambung setempat dan lapisan bersambung sepenuhnya (kecuali lapisan terakhir F8), menghasilkan ciri yang sangat tidak linear dan jarang selepas lata keseluruhan.
Sparsity juga berkaitan dengan penggunaan regularization dropout, yang menetapkan elemen ciri rawak kepada 0 semasa latihan. Kami hanya menggunakan keciciran dalam lapisan F7 yang bersambung sepenuhnya Disebabkan set latihan yang besar, kami tidak menemui overfitting yang ketara semasa proses latihan.
Memandangkan imej I, ekspresi cirinya G(I) dikira melalui rangkaian suapan hadapan bagi setiap lapisan L boleh dianggap sebagai satu siri fungsi:
Pada peringkat terakhir, kami menormalkan elemen ciri kepada 0 hingga 1 untuk mengurangkan sensitiviti ciri kepada perubahan pencahayaan. Setiap elemen dalam vektor ciri dibahagikan dengan nilai maksimum yang sepadan dalam set latihan. Kemudian lakukan normalisasi L2. Memandangkan kami menggunakan fungsi pengaktifan ReLU, sistem kami kurang invarian dengan skala imej.
Untuk vektor keluaran 4096-d:
2.1 Jarak Chi-square
Dalam sistem ini, vektor ciri DeepFace yang dinormalkan adalah konsisten dengan ciri berasaskan histogram tradisional (seperti LBP ) mempunyai persamaan berikut:
Formula pengiraan jarak khi kuasa dua adalah seperti berikut:
2.2 Rangkaian Siam
Akhir-ke- pembelajaran metrik akhir juga disebut dalam artikel Kaedah, setelah pembelajaran (latihan) selesai, rangkaian pengecaman muka (sehingga F7) digunakan semula pada dua gambar input, dan kedua-dua vektor ciri yang diperoleh digunakan secara langsung untuk meramalkan sama ada kedua-duanya gambar input adalah milik orang yang sama. Ini dibahagikan kepada langkah-langkah berikut:
a Kira perbezaan mutlak antara dua ciri;
3. Penilaian Eksperimen
hasil pada LFW:
hasil pada YTF:
Kaedah DeepFace yang terbesar dan kaedah seterusnya Perbezaannya ialah DeepFace menggunakan kaedah penjajaran sebelum melatih rangkaian saraf. Makalah ini percaya bahawa sebab rangkaian saraf boleh berfungsi ialah apabila muka dijajarkan, ciri kawasan muka ditetapkan pada piksel tertentu Pada masa ini, rangkaian saraf konvolusi boleh digunakan untuk mempelajari ciri tersebut.
Model dalam artikel ini menggunakan kaedah pengecaman muka terkini berdasarkan pembelajaran mendalam dalam dlib kotak alat C++ Berdasarkan tahap penanda aras perpustakaan ujian data muka luar Labeled Faces in the Wild, ia telah mencapai ketepatan. sebanyak 99.38%.
Lagi algoritma
http://www.gycc.com/trends/face%20recognition/overview/
dlib : http://dlib.net/Pustaka ujian data Wajah Berlabel di Alam Liar: http://vis-www.cs.umass.edu/lfw/
Model ini menyediakan alat baris perintah pengenalan_muka yang ringkas Membolehkan pengguna untuk terus menggunakan folder gambar untuk operasi pengecaman muka melalui arahan.
Tangkap semua wajah dalam satu gambar
Cari dan proses ciri wajah dalam gambar
Cari kedudukan dan garisan setiap mata, hidung, mulut dan dagu seseorang.
import pengecaman_muka
imej = pengecaman_muka.load_image_file("fail_anda.jpg")
lokasi_muka = pengecaman_muka.lokasi_muka(imej)
Ia menangkap ciri muka mempunyai kegunaan yang sangat penting Sudah tentu, ia juga boleh digunakan untuk solekan digital gambar (seperti Meitu Xiu Xiu)
solekan digital: https://github.com/ageitgey/face_recognition / blob/master/examples/digital_makeup.py
Kenali siapa yang muncul dalam foto
Kaedah ini menyokong Python3/python2 Kami hanya mengujinya pada macOS dan Linux Kami tidak tahu sama ada ia boleh digunakan untuk Windows.
Pasang modul ini menggunakan pip3 pypi (atau pip2 Python 2)
Nota penting: Mungkin terdapat masalah semasa menyusun dlib, anda boleh memasangnya dari sumber (bukan pip) dlib ke betulkan ralat, sila lihat manual pemasangan Cara memasang dlib dari sumber
https://gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf
Lengkapkan pemasangan dengan memasang dlib secara manual dan menjalankan pip3 install face_recognition.
Apabila anda memasang face_recognition, anda boleh mendapatkan program baris arahan ringkas yang dipanggil face_recognition, yang boleh membantu anda mengecam foto atau folder foto semua wajah.
Pertama, anda perlu menyediakan folder yang mengandungi foto, dan anda sudah tahu siapa orang dalam foto itu Setiap orang mesti mempunyai fail foto, dan nama fail itu perlu dinamakan sempena nama orang itu . ;
Kemudian anda perlu menyediakan folder lain yang mengandungi foto wajah yang anda ingin kenali
Seterusnya, anda hanya perlu menjalankan perintah pengenalan_muka, dan program boleh menghantar fail bagi wajah yang dikenali Folder mengenal pasti siapa orang dalam foto wajah yang tidak dikenali itu; orang, dipisahkan dengan koma.
Jika anda hanya ingin mengetahui nama orang dalam setiap foto tetapi bukan nama fail, anda boleh melakukan perkara berikut:
Modul Python
Anda boleh melengkapkan operasi pengecaman muka dengan memperkenalkan pengecaman_muka:
Dokumentasi API: https://face-recognition.readthedocs.io.Mengecam semua wajah dalam gambar secara automatik Sila rujuk contoh ini: https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.pySila rujuk contoh ini: https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py
Semua contoh ada di sini.
https://github.com/ageitgey/face_recognition/tree/master/examples
·Cari wajah dalam gambar
https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py · 识别照片中的面部特征Identify specific facial features in a photograph https://github.com/ageitgey/face_recognition/blob/master/examples/find_facial_features_in_picture.py · 使用数字美颜Apply (horribly ugly) digital make-up https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py ·基于已知人名找到并识别出照片中的未知人脸Find and recognize unknown faces in a photograph based on photographs of known people https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.pypython人脸
Baiklah, itu sahaja perkongsian hari ini~
Atas ialah kandungan terperinci Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!