Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

王林
王林ke hadapan
2023-04-14 14:55:032052semak imbas

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

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.

Penyelidik utama:

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.

Projek sumber terbuka utama:

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.

API/SDK perisian utama:

  • muka++. Face++.com ialah platform perkhidmatan awan yang menyediakan pengesanan muka percuma, pengecaman muka, analisis atribut muka dan perkhidmatan lain. Face++ ialah platform awan teknologi muka baharu yang dimiliki oleh Beijing Megvii Technology Co., Ltd. Dalam pertandingan kuda hitam, Face++ memenangi kejohanan tahunan dan telah menerima pelaburan Lenovo Star.
  • skybiometri. Ia terutamanya termasuk pengesanan muka, pengecaman muka dan pengumpulan wajah.

Pangkalan data imej pengecaman muka utama:

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:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

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:

  • Teknologi Hanwang: Teknologi Hanwang terutamanya melakukan pengesahan pengecaman muka, yang digunakan terutamanya dalam sistem kawalan akses, sistem kehadiran, dsb.
  • iFlytek: Dengan sokongan pasukan Profesor Tang Xiaoou di Universiti China Hong Kong, iFlytek telah membangunkan teknologi pengecaman muka berdasarkan proses Gaussian – muka Gussian Kadar pengecaman teknologi ini pada LFW ialah 98.52%. . , kadar pengiktirafan semasa DEEPID2 syarikat pada LFW telah mencapai 99.4%.
  • Sichuan University Zhisheng: Sorotan penyelidikan semasa syarikat ialah pengecaman muka 3D, dan ia telah berkembang kepada perindustrian kamera muka penuh 3D dan sebagainya.
  • SenseTime: Ia terutamanya sebuah syarikat yang berdedikasi untuk menerajui kejayaan dalam teknologi teras "pembelajaran mendalam" kecerdasan buatan dan penyelesaian industri untuk kecerdasan buatan dan analisis data besar. Ia kini terlibat dalam pengecaman muka, pengecaman teks , dan pengecaman badan manusia, pengecaman kenderaan, pengecaman objek, pemprosesan imej dan arah lain mempunyai daya saing yang kuat. Dalam pengecaman muka, terdapat 106 mata utama muka untuk pengecaman.

Proses pengecaman muka

Pengecaman muka terbahagi kepada empat bahagian: pengesanan muka (pengesanan muka), penentukuran muka (penjajaran muka), pengesahan muka (pengesahan muka), pengenalan muka (face identification).

Pengesanan muka:

Kesan muka dalam imej dan bingkaikan hasilnya dengan bingkai segi empat tepat. Dalam openCV, terdapat pengelas Harr yang boleh digunakan secara langsung.

Penjajaran muka:

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, 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:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

Pengenalan/pengecaman muka:

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.

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

Menurut pengenalan empat konsep di atas, kita dapat memahami bahawa pengecaman muka terutamanya merangkumi tiga modul bebas yang besar:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

Kami membahagikan langkah di atas secara terperinci dan mendapatkan rajah proses berikut:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

Klasifikasi pengecaman muka

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.

Kaedah pengecaman berasaskan imej:

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.

Kaedah pengecaman masa nyata berdasarkan video:

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.

DeepFace

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=1

DeepFace 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 DeepFace

1 Proses asas pengecaman muka

pengesanan muka -> penjajaran muka -> pengesahan muka -> pengenalan muka

2. . Pengesanan muka

2.1 Teknologi sedia ada:

pengelas haar:

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).

  • Mula-mula pilih 6 titik rujukan, 2 pusat mata, 1 titik hidung dan 3 titik pada mulut.
  • Gunakan SVR untuk mempelajari mata penanda aras melalui ciri LBP.

Kesannya adalah seperti berikut:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

3. Penjajaran muka (penjajaran muka)

Penjajaran 2D:

  • Pangkas imej Dikesan dalam dua dimensi, skala, putar dan terjemahkan imej ke dalam enam lokasi utama. Potong bahagian muka.

Penjajaran 3D:

  • Cari model 3D dan gunakan model 3D ini untuk memangkas muka 2D menjadi muka 3D. 67 titik asas, kemudian triangulasi Delaunay, menambah segi tiga pada kontur untuk mengelakkan ketakselanjaran.
  • Tukar muka segi tiga kepada bentuk 3D
  • Muka segi tiga menjadi jala segi tiga 3D dengan kedalaman
  • Membelokkan jala segi tiga supaya Bahagian hadapan muka menghadap ke hadapan
  • Muka yang terakhir diluruskan

Kesannya adalah seperti berikut:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

Penjajaran 2D di atas sepadan dengan (b) Gambar, Penjajaran 3D sepadan dengan (c) ~ (h).

4 Pengesahan muka

4.1 Teknologi sedia ada

LBP && Bayesian bersama:

Melalui dua kaedah gabungan LBP berdimensi tinggi dan Bayesian Bersama.

  • Kertas: Wajah Bayesian Disemak Semula: Formulasi Bersama

Siri DeepID:

Gabungan tujuh model Bayesian bersama menggunakan SVM, ketepatan Mencapai 99.15%

  • Kertas: Pembelajaran Mendalam Perwakilan Wajah oleh Pengenalpastian Bersama-Pengesahan

4.2 Kaedah dalam artikel

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

Dalam kertas, rangkaian saraf dalam (DNN) dilatih melalui tugas pengecaman muka berbilang kelas. Struktur rangkaian ditunjukkan dalam rajah di atas.

Parameter struktur:

Selepas penjajaran 3D, imej yang terbentuk adalah semua imej 152×152, yang dimasukkan ke dalam struktur rangkaian di atas Parameter struktur adalah seperti berikut:

  • Penukaran: 32 11×11×3 biji lilitan
  • pengumpulan maks: 3×3, langkah=2
  • Penukaran: 16 biji lilitan 9×9
  • Local-Conv: 16 9×9 convolution kernel Local bermakna parameter kernel convolution tidak dikongsi
  • Local-Conv: 16 7×7 convolution kernel , parameter tidak dikongsi
  • Local-Conv: 16 5×5 konvolusi kernel, parameter tidak dikongsi
  • Tersambung sepenuhnya: 4096 dimensi
  • Softmax: 4030 dimensi

Ekstrak ciri peringkat rendah:

Prosesnya adalah seperti berikut:

  • Peringkat pra-pemprosesan: masukkan muka 3 saluran, dan lakukan pembetulan 3D, dan kemudian Dinormalkan kepada 152*152 piksel saiz - 152*152*3.
  • Melalui lapisan lilitan C1: C1 mengandungi 32 penapis 11*11*3 (iaitu kernel lilitan), menghasilkan 32 Peta ciri - 32*142*142*3.
  • Melalui lapisan undian maksimum M2: saiz tetingkap gelongsor M2 ialah 3*3, saiz langkah gelongsor ialah 2, dan tiga saluran ditinjau secara bebas.
  • Melalui lapisan lilitan lain C3: C3 mengandungi 16 biji lilitan 3 dimensi 9*9*16.

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.

Lapisan seterusnya:

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.

Lapisan atas:

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:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

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:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

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:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

Penormalan:

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:

  • Mula-mula normalkan setiap dimensi, iaitu, bagi setiap dimensi dalam vektor hasil, bahagikan dimensi dengan keseluruhan Nilai maksimum pada set latihan.
  • Setiap vektor adalah L2 dinormalkan.

2. Pengesahan

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:

  • Semua nilai adalah negatif
  • Sangat jarang
  • Nilai unsur ciri semuanya berada di antara selang [0, 1]

Formula pengiraan jarak khi kuasa dua adalah seperti berikut:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

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

3.1 Set Data

  • Set Data Klasifikasi Wajah Sosial(SFC): 4.4M muka/4030 orang
  • LFW: 13323 muka/5749 orang
  • terhad: hanya ya/tidak Teg
  • tidak terhad: pasangan latihan lain juga boleh diperolehi
  • tanpa diawasi: tidak dilatih di LFW
  • Youtube Face(YTF): 3425video/1595 orang

hasil pada LFW:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

hasil pada YTF:

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

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 ciri wajah dalam gambar

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 wajah dalam gambar

Kenali siapa yang muncul dalam foto

Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

Langkah Pasang

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.

Menggunakan Antara Muka Baris Perintah

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: Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

Modul Python

Anda boleh melengkapkan operasi pengecaman muka dengan memperkenalkan pengecaman_muka: Sistem pengecaman muka Python dengan kadar pengecaman luar talian sehingga 99%, sumber terbuka~

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.py

Kenali wajah dalam gambar dan beritahu nama

Sila rujuk contoh ini: https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py

Python contoh kod

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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam