Rumah > Peranti teknologi > AI > Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

WBOY
Lepaskan: 2023-04-09 13:21:06
ke hadapan
1370 orang telah melayarinya

Kata Pengantar

Anda mungkin pernah melihat "Mission: Impossible 4" arahan Brad Bird dan dibintangi oleh Tom Cruise? Di stesen kereta api yang sesak, hanya memerlukan sekelip mata untuk dikenali oleh komputer dan segera diikuti oleh ejen wanita cantik yang bertemu dengannya adalah pembunuh maut, dan telefon bimbit berbunyi dengan bunyi penggera, dan si cantik itu; nama dan maklumat sudah dipaparkan di atasnya. Ini ialah algoritma pengecaman muka yang ingin diperkenalkan oleh artikel ini dan cara menggunakan platform AI awan awam untuk melatih model.

Sebagai salah satu teknologi yang lebih awal matang dan dilaksanakan secara meluas dalam bidang kecerdasan buatan, tujuan pengecaman muka adalah untuk menentukan identiti wajah dalam gambar dan video. Daripada pengecaman muka untuk membuka kunci dan membayar pada telefon mudah alih, kepada kawalan pengecaman muka dalam bidang keselamatan, dsb., teknologi pengecaman muka mempunyai pelbagai aplikasi. Wajah adalah ciri semula jadi bagi setiap orang Ciri ini adalah unik dan tidak boleh ditiru dengan mudah, sekali gus menyediakan prasyarat yang diperlukan untuk pengenalan identiti.

Penyelidikan mengenai pengecaman muka bermula pada tahun 1960-an Dengan peningkatan berterusan teknologi komputer dan teknologi pengimejan optik, dan kebangkitan teknologi rangkaian saraf dalam beberapa tahun kebelakangan ini, terutamanya Kejayaan besar konvolusi. rangkaian saraf dalam pengecaman dan pengesanan imej telah banyak meningkatkan prestasi sistem pengecaman muka. Dalam artikel ini, kami mulakan dengan butiran teknikal teknologi pengecaman muka dan memberi anda pemahaman awal tentang proses pembangunan teknologi pengecaman muka Pada separuh kedua artikel, kami akan menggunakan imej tersuai platform ModelArts untuk menunjukkan kepada anda cara menggunakan sumber pengkomputeran Awan awam boleh melatih model pengecaman muka yang boleh digunakan dengan cepat.

Teks

Sama ada ia berdasarkan pemprosesan imej tradisional dan teknologi pembelajaran mesin, atau menggunakan teknologi pembelajaran mendalam, prosesnya adalah sama. Seperti yang ditunjukkan dalam Rajah 1, sistem pengecaman muka termasuk empat pautan asas: pengesanan muka, penjajaran, pengekodan dan pemadanan. Oleh itu, bahagian ini mula-mula memberikan gambaran keseluruhan sistem pengecaman muka berdasarkan pemprosesan imej tradisional dan algoritma pembelajaran mesin, supaya kita dapat melihat konteks pembangunan keseluruhan algoritma pembelajaran mendalam dalam bidang pengecaman muka.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Proses pengesanan muka

Algoritma pembelajaran mesin tradisional

Seperti yang dinyatakan sebelum ini, pengecaman muka Tujuannya adalah untuk tentukan identiti wajah dalam imej, jadi kita perlu mengesan wajah dalam imej terlebih dahulu, sebenarnya, langkah ini akhirnya menjadi masalah pengesanan sasaran. Algoritma pengesanan sasaran imej tradisional terutamanya terdiri daripada tiga bahagian, penjanaan bingkai cadangan, kejuruteraan ciri dan klasifikasi Idea pengoptimuman termasuk siri algoritma RCNN yang terkenal juga berdasarkan tiga bahagian ini.

Langkah pertama ialah menjana bingkai cadangan Idea paling mudah untuk langkah ini ialah memotong sekumpulan bingkai untuk dikesan dalam gambar, dan kemudian mengesan sama ada terdapatnya. sasaran dalam bingkai Jika ia wujud, maka kedudukan bingkai dalam imej asal ialah kedudukan sasaran dikesan Oleh itu, lebih besar liputan sasaran dalam langkah ini, lebih baik strategi penjanaan bingkai. Strategi penjanaan kotak cadangan biasa termasuk tetingkap gelongsor, Carian Terpilih, Prim Rawak, dsb., yang menjana sejumlah besar kotak calon, seperti yang ditunjukkan dalam rajah di bawah.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Selepas memperoleh sejumlah besar bingkai calon, bahagian terpenting seterusnya dalam algoritma pengesanan muka tradisional ialah kejuruteraan ciri. Kejuruteraan ciri sebenarnya menggunakan pengalaman pakar jurutera algoritma untuk mengekstrak pelbagai ciri daripada wajah dalam adegan berbeza, seperti ciri tepi, ciri morfologi bentuk, ciri tekstur, dll. Teknologi algoritma khusus termasuk LBP, Gabor, Haar, SIFT, dsb. Pengekstrakan ciri algoritma menukar imej muka yang diwakili oleh matriks dua dimensi kepada perwakilan pelbagai vektor ciri.

Selepas mendapatkan vektor ciri, anda boleh mengelaskan ciri tersebut melalui pengelas pembelajaran mesin tradisional untuk menentukan sama ada ia adalah muka, seperti melalui adaboost, lata, SVM, hutan rawak, dsb. tunggu. Selepas pengelasan oleh pengelas tradisional, kawasan muka, vektor ciri, keyakinan pengelasan, dll. boleh diperolehi. Dengan maklumat ini, kami boleh melengkapkan penjajaran muka, perwakilan ciri dan pengecaman padanan muka.

Ambil kaedah tradisional, kaedah HAAR+AdaBoost klasik sebagai contoh Dalam peringkat pengekstrakan ciri, ciri haar mula-mula digunakan untuk mengekstrak banyak ciri mudah daripada imej. Ciri-ciri Haar ditunjukkan dalam rajah di bawah. Untuk memenuhi pengesanan muka dengan saiz yang berbeza, piramid Gaussian biasanya digunakan untuk mengekstrak ciri Haar daripada imej resolusi berbeza.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Kaedah pengiraan ciri Haar adalah untuk menolak kawasan hitam daripada jumlah piksel dalam kawasan putih, jadi nilai yang diperoleh adalah berbeza di kawasan muka dan bukan muka. Secara amnya, dalam proses pelaksanaan khusus, ia boleh dilaksanakan dengan cepat melalui kaedah rajah integral. Secara amnya, dalam imej latihan yang dinormalkan kepada 20*20, bilangan ciri Haar yang tersedia ialah kira-kira 10,000 Oleh itu, dengan skala ciri ini, algoritma pembelajaran mesin boleh digunakan untuk pengelasan dan pengenalpastian.

Selepas mendapatkan ciri Haar, anda boleh menggunakan Adaboost untuk pengelasan Algoritma Adaboost ialah kaedah yang menggabungkan berbilang kaedah pengelasan lemah untuk membentuk kaedah pengelasan kuat yang baharu. Berdasarkan pengelas lata dan ambang pemilihan ciri terlatih, pengesanan muka boleh diselesaikan.

Seperti yang dapat dilihat daripada kaedah di atas, algoritma pembelajaran mesin tradisional ialah algoritma berasaskan ciri, jadi ia memerlukan sejumlah besar pengalaman pakar jurutera algoritma untuk melaksanakan kejuruteraan ciri dan pelarasan parameter Kesan algoritma Tidak begitu baik juga. Selain itu, sangat sukar untuk reka bentuk tiruan menjadi teguh kepada keadaan perubahan yang berbeza dalam persekitaran yang tidak terhad. Dalam algoritma imej yang lalu, jurutera menggunakan kaedah pemprosesan imej yang lebih tradisional untuk mengekstrak sejumlah besar ciri berdasarkan pemandangan sebenar dan pengalaman pakar, dan kemudian melakukan pembelajaran statistik pada ciri yang diekstrak Dengan cara ini, prestasi keseluruhan algoritma adalah sangat Bergantung pada adegan kehidupan sebenar dan pengalaman pakar, kesannya tidak begitu baik untuk adegan tanpa kekangan dengan kategori besar seperti muka dan ketidakseimbangan serius sampel dalam setiap kategori. Oleh itu, dengan kejayaan besar pembelajaran mendalam dalam pemprosesan imej dalam beberapa tahun kebelakangan ini, teknologi pengecaman muka juga berdasarkan pembelajaran mendalam, dan telah mencapai keputusan yang sangat baik.

Aplikasi pembelajaran mendalam dalam bidang pengecaman muka

Dalam sistem pengecaman muka pembelajaran mendalam, masalah dibahagikan kepada masalah pengesanan sasaran dan Masalah klasifikasi, dan masalah pengesanan sasaran pada dasarnya adalah masalah klasifikasi dan masalah regresi dalam pembelajaran mendalam Oleh itu, dengan kejayaan penerapan rangkaian saraf konvolusi dalam klasifikasi imej, kesan sistem pengecaman muka telah dipertingkatkan dengan pesat Hasilnya, sejumlah besar syarikat algoritma visual telah dilahirkan, dan pengecaman muka telah digunakan untuk semua aspek kehidupan sosial.

Malah, menggunakan rangkaian saraf untuk pengecaman muka bukanlah idea baru Pada tahun 1997, penyelidik mencadangkan kaedah yang dipanggil berdasarkan pengesanan muka, kedudukan mata dan pendekatan rangkaian saraf kepada pembuatan keputusan yang berkemungkinan. PDBNN pengecaman muka ini dibahagikan kepada sub-rangkaian yang bersambung sepenuhnya untuk setiap subjek latihan untuk mengurangkan bilangan unit tersembunyi dan mengelakkan overfitting. Para penyelidik melatih dua PBDNN secara berasingan menggunakan ciri ketumpatan dan kelebihan, dan kemudian menggabungkan output mereka untuk mendapatkan keputusan pengelasan akhir. Walau bagaimanapun, disebabkan kekurangan kuasa pengkomputeran dan data yang serius pada masa itu, algoritma itu agak mudah, jadi algoritma tidak mencapai hasil yang sangat baik. Dengan kematangan teori perambatan balik dan rangka kerja kuasa pengkomputeran hanya pada tahun ini, keberkesanan algoritma pengecaman muka telah mula dipertingkatkan dengan banyaknya.

Dalam pembelajaran mendalam, sistem pengecaman muka yang lengkap turut merangkumi empat langkah yang ditunjukkan dalam Rajah 1. Langkah pertama dipanggil algoritma pengesanan muka, yang pada asasnya ialah algoritma pengesanan sasaran. Langkah kedua dipanggil penjajaran muka, yang pada masa ini berdasarkan penjajaran geometri mata utama dan penjajaran muka berdasarkan pembelajaran mendalam. Langkah ketiga ialah perwakilan ciri Dalam pembelajaran mendalam, melalui idea rangkaian klasifikasi, beberapa lapisan ciri dalam rangkaian klasifikasi diekstrak sebagai perwakilan ciri wajah, dan kemudian imej muka standard diproses dengan cara yang sama, dan akhirnya melalui perbandingan Kaedah pertanyaan melengkapkan keseluruhan sistem pengecaman muka. Berikut ialah gambaran ringkas tentang pembangunan algoritma pengesanan muka dan pengecaman muka.

Pengesanan Muka

Selepas kejayaan besar pembelajaran mendalam dalam klasifikasi imej, ia dengan cepat digunakan untuk masalah pengesanan muka Pada mulanya, kebanyakan idea untuk menyelesaikan masalah ini adalah Berdasarkan invarian skala rangkaian CNN, imej diskalakan pada skala yang berbeza, dan kemudian disimpulkan dan diramalkan secara langsung maklumat kategori dan lokasi. Di samping itu, disebabkan regresi kedudukan langsung setiap titik dalam peta ciri, ketepatan bingkai muka yang diperolehi adalah agak rendah Oleh itu, sesetengah orang telah mencadangkan strategi pengesanan kasar hingga halus berdasarkan pengelas berbilang peringkat kepada mengesan wajah Sebagai contoh, kaedah utama ialah CNN, DenseBox dan MTCNN untuk menamakan beberapa.

MTCNN ialah kaedah berbilang tugas yang menggabungkan pengesanan kawasan muka dan pengesanan titik kunci muka buat pertama kali Seperti Cascade CNN, ia juga berdasarkan rangka kerja lata, tetapi The idea keseluruhan adalah lebih bijak dan munasabah MTCNN secara amnya dibahagikan kepada tiga bahagian: PNet, RNet dan ONet Struktur rangkaian ditunjukkan dalam rajah di bawah.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Pertama, rangkaian PNet mengubah saiz imej input sebagai input, ia terus melalui dua lapisan konvolusi dan mengembalikan klasifikasi muka dan bingkai pengesanan muka. Selepas memangkas muka yang dikesan secara kasar daripada imej asal, lakukan pengesanan muka sekali lagi pada input R-Net. Akhir sekali, muka yang diperoleh akhirnya dimasukkan ke dalam O-Net, dan hasil keluaran O-Net yang diperoleh adalah hasil pengesanan muka akhir. Proses keseluruhan MTCNN adalah agak mudah dan boleh digunakan dan dilaksanakan dengan cepat Walau bagaimanapun, MTCNN juga mempunyai banyak kelemahan. Termasuk latihan tugasan berbilang peringkat memakan masa, dan menyimpan sejumlah besar hasil perantaraan memerlukan sejumlah besar ruang penyimpanan. Di samping itu, memandangkan rangkaian yang diubah suai secara langsung melakukan regresi kotak sempadan pada titik ciri, kesan pada pengesanan muka sasaran kecil tidak begitu baik. Di samping itu, semasa proses inferens, untuk memenuhi keperluan pengesanan muka saiz yang berbeza, rangkaian perlu mengubah saiz imej muka kepada saiz yang berbeza, yang secara serius menjejaskan kelajuan inferens.

Dengan perkembangan bidang pengesanan sasaran, semakin banyak bukti eksperimen membuktikan bahawa lebih banyak kesesakan dalam pengesanan sasaran terletak pada semantik rangkaian asas yang rendah tetapi ketepatan kedudukan yang agak tinggi dan rangkaian peringkat tinggi semantik Oleh kerana percanggahan ketepatan kedudukan tinggi tetapi ketepatan kedudukan rendah, strategi berasaskan sauh dan strategi gabungan rentas lapisan juga menjadi popular dalam rangkaian pengesanan sasaran, seperti siri Faster-rcnn, SSD dan yolo yang terkenal. Oleh itu, algoritma pengesanan muka semakin menggunakan sauh dan keluaran berbilang saluran untuk memenuhi kesan pengesanan muka dengan saiz yang berbeza Algoritma yang paling terkenal ialah struktur rangkaian SSH.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Seperti yang dapat dilihat daripada rajah di atas, rangkaian SSH sudah mempunyai kaedah untuk memproses output lapisan rangkaian yang berbeza, yang boleh dilengkapkan dengan hanya satu pas inferens Proses pengesanan muka yang berlainan saiz dipanggil Peringkat Tunggal. Rangkaian SSH juga agak mudah, ia hanya melakukan pengiraan cawangan dan output pada lapisan konvolusi VGG yang berbeza. Selain itu, ciri peringkat tinggi ditambah sampel, dan Eltwise Sum dilakukan dengan ciri peringkat rendah untuk melengkapkan gabungan ciri ciri peringkat rendah dan tinggi. Selain itu, rangkaian SSH juga mereka bentuk modul pengesanan dan modul konteks Modul konteks, sebagai sebahagian daripada modul pengesanan, mengguna pakai struktur permulaan untuk mendapatkan lebih banyak maklumat kontekstual dan medan penerimaan yang lebih besar.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Modul pengesanan dalam SSH

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Modul konteks dalam modul pengesanan dalam SSH

SSH menggunakan lilitan 1×1 untuk mengeluarkan keputusan cawangan regresi dan klasifikasi akhir Ia tidak menggunakan lapisan yang bersambung sepenuhnya, jadi ia boleh memastikan input gambar yang berbeza saiz boleh mendapatkan hasil output, iaitu. juga responsif. Trend kaedah reka bentuk konvolusi sepenuhnya pada masa itu. Malangnya, rangkaian tidak mengeluarkan titik mercu tanda Selain itu, struktur konteks tidak menggunakan struktur piramid ciri yang lebih popular. Tulang belakang VGG16 juga agak cetek Dengan kemajuan berterusan teknologi pengoptimuman wajah lebih matang. Oleh itu, akhirnya, saya ingin memperkenalkan kepada anda rangkaian Retinaface, yang digunakan secara meluas dalam algoritma pengesanan muka semasa.

Retinaface dicadangkan oleh Google pada asasnya berdasarkan struktur rangkaian RetinaNet dan menggunakan teknologi piramid ciri untuk mencapai gabungan maklumat berbilang skala dan memainkan peranan penting dalam mengesan kecil. objek. Struktur rangkaian ditunjukkan di bawah.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Seperti yang anda boleh lihat daripada rajah di atas, rangkaian tulang belakang Retinaface ialah rangkaian neural convolutional biasa, dan kemudian menambah struktur piramid ciri dan Modul Konteks modul , menyepadukan lagi maklumat kontekstual dan menyelesaikan pelbagai tugas termasuk pengelasan, pengesanan, regresi titik mercu tanda dan peningkatan kendiri imej.

Oleh kerana intipati pengesanan muka ialah tugas pengesanan sasaran, arah pengesanan sasaran masa hadapan juga digunakan pada arah pengoptimuman muka. Pada masa ini, masih sukar untuk mengesan sasaran kecil dan sasaran tersumbat dalam pengesanan sasaran Selain itu, kebanyakan rangkaian pengesanan semakin banyak digunakan di bahagian hujung Oleh itu, pemampatan model rangkaian dan pecutan semula berdasarkan bahagian akhir adalah lebih mencabar untuk algoritma jurutera Pemahaman dan aplikasi algoritma pengesanan pembelajaran mendalam.

Pengecaman Muka

Masalah pengecaman muka pada asasnya adalah masalah klasifikasi, iaitu setiap orang dikelaskan dan dikesan sebagai kelas, tetapi banyak masalah akan timbul dalam proses permohonan sebenar. Pertama, terdapat banyak kategori wajah Jika anda ingin mengenal pasti semua orang di bandar, terdapat hampir 100,000 kategori Selain itu, terdapat sangat sedikit sampel berlabel yang tersedia untuk setiap orang, dan akan terdapat banyak data ekor panjang . Berdasarkan masalah di atas, rangkaian klasifikasi CNN tradisional perlu diubah suai.

Kami tahu bahawa walaupun rangkaian konvolusi dalam adalah model kotak hitam, ia boleh mencirikan ciri-ciri gambar atau objek melalui latihan data. Oleh itu, algoritma pengecaman muka boleh mengekstrak sejumlah besar vektor ciri muka melalui rangkaian konvolusi, dan kemudian melengkapkan proses pengecaman muka berdasarkan pertimbangan persamaan dan perbandingan dengan perpustakaan asas Oleh itu, bolehkah rangkaian algoritma menjana ciri yang berbeza untuk muka yang berbeza ? Menjana ciri yang serupa untuk muka yang sama akan menjadi tumpuan tugasan jenis ini, iaitu, bagaimana untuk memaksimumkan jarak antara kelas dan meminimumkan jarak dalam kelas.

Dalam pengecaman muka, rangkaian tulang belakang boleh menggunakan pelbagai rangkaian saraf konvolusi untuk menyelesaikan kerja pengekstrakan ciri, seperti resnet, permulaan dan rangkaian neural konvolusi klasik lain sebagai tulang belakang reka bentuk dan pelaksanaan lapisan terakhir fungsi kehilangan. Sekarang mari kita menganalisis pelbagai fungsi kehilangan dalam algoritma pengecaman muka berdasarkan pembelajaran mendalam daripada dua idea.

Idea 1: pembelajaran metrik, termasuk kehilangan kontrastif, kehilangan tiga kali ganda dan kaedah pensampelan

Idea 2: pengelasan berasaskan margin, termasuk softmax dengan pusat loss, sphereface, normface, AM-sofrmax(cosface) dan arcface.

1. Metrik Larning

(1) Kehilangan Kontrastif

Salah satu aplikasi pertama idea pembelajaran metrik dalam pembelajaran mendalam ialah DeepID2. Penambahbaikan DeepID2 yang paling penting ialah rangkaian yang sama melatih pengesahan dan klasifikasi pada masa yang sama (dengan dua isyarat pengawasan). Antaranya, kehilangan kontras diperkenalkan dalam lapisan ciri kehilangan pengesahan.

Kehilangan kontrastif bukan sahaja mempertimbangkan pengecilan jarak bagi kategori yang sama, tetapi juga mempertimbangkan pemaksimum jarak bagi kategori yang berbeza, dan meningkatkan ketepatan pengecaman muka dengan menggunakan sepenuhnya maklumat label daripada sampel latihan. Oleh itu, fungsi kehilangan pada asasnya menjadikan foto orang yang sama cukup dekat dalam ruang ciri, dan orang yang berbeza berada cukup jauh dalam ruang ciri sehingga mereka melebihi ambang tertentu. (Bunyi macam triplet
loss).

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Kehilangan kontrastif memperkenalkan dua isyarat dan melatih rangkaian melalui dua isyarat. Ungkapan untuk mengenal pasti isyarat adalah seperti berikut:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Ungkapan untuk mengesahkan isyarat adalah seperti berikut:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Berdasarkan isyarat ini, DeepID2 tidak menggunakan satu gambar sebagai unit semasa latihan, tetapi menggunakan Image Pair sebagai unit Setiap kali dua gambar dimasukkan, ia adalah 1 untuk yang sama Jika mereka bukan orang yang sama, ia adalah -1.

(2) Kehilangan tiga kali ganda daripada FaceNet

Artikel ini berasal dari 15 tahun yang lalu FaceNet Google juga merupakan kerja aliran air dalam bidang pengecaman muka. Ia mencadangkan rangka kerja penyelesaian bersatu untuk kebanyakan masalah yang dihadapi, iaitu masalah seperti pengecaman, pengesahan dan carian semuanya boleh dilakukan dalam ruang ciri Apa yang perlu difokuskan ialah cara memetakan muka dengan lebih baik ke ruang ciri. .

Berdasarkan DeepID2, Google telah meninggalkan lapisan klasifikasi, Kehilangan Klasifikasi dan menambah baik Kehilangan Kontrastif kepada Kehilangan Tiga Tiga, untuk satu tujuan sahaja: untuk mempelajari ciri yang lebih baik.

Terus siarkan fungsi kehilangan Triplet Loss Input bukan lagi Image Pair, tetapi tiga imej (Triplet), iaitu Anchor Face, Negative Face dan Positive Face. Anchor dan Positive Face adalah orang yang sama, dan Negative Face adalah orang yang berbeza. Kemudian fungsi kehilangan Triplet loss boleh dinyatakan sebagai:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Penjelasan intuitif formula ini ialah: dalam ruang ciri, jarak antara Anchor dan Positif adalah lebih kecil daripada jarak antara Anchor dan Negatif dan melebihi satu Margin Alpha. Perbezaan intuitif antaranya dan kehilangan kontras ditunjukkan dalam rajah di bawah.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

(3) Masalah dengan pembelajaran Metrik

Dua di atas fungsi kehilangan mempunyai kesan yang sangat baik dan selaras dengan kognisi objektif orang Ia telah digunakan secara meluas dalam projek sebenar, tetapi kaedah ini masih mempunyai beberapa kelemahan.

  • Latihan model bergantung pada sejumlah besar data, dan proses pemasangan sangat perlahan. Oleh kerana kedua-dua kehilangan kontras dan kehilangan triplet adalah berdasarkan pasangan atau triplet, sejumlah besar sampel positif dan negatif perlu disediakan, dan adalah mustahil untuk melintasi semua kemungkinan kombinasi sampel untuk masa yang lama semasa latihan. Terdapat blog di Internet mengatakan bahawa ia mengambil masa sebulan untuk menyelesaikan pemasangan pada set data Asia 10,000 orang dan kira-kira 500,000 imej.
  • Mod sampel mempengaruhi latihan model. Sebagai contoh, untuk kehilangan tiga kali ganda, muka anchor, muka negatif dan muka positif mesti diambil secara rawak semasa proses latihan Persampelan sampel yang baik boleh mempercepatkan kelajuan latihan dan penumpuan model, tetapi sukar untuk mencapai keputusan yang sangat baik semasa persampelan rawak. proses.
  • Kekurangan melombong kembar tiga keras, yang juga menjadi masalah dalam kebanyakan latihan model. Sebagai contoh, dalam bidang pengecaman muka, negatif keras mewakili orang yang serupa tetapi berbeza, manakala positif keras mewakili orang yang sama tetapi postur, ekspresi, dsb. Pembelajaran dan pemprosesan khas contoh keras adalah penting untuk meningkatkan ketepatan model pengecaman.

2 Pelbagai helah untuk memperbetulkan kekurangan Pembelajaran Metrik

(1 ) Finetune

Kertas rujukan: Deep Face Recognition

Dalam kertas "Deep Face Recognition", Dalam Untuk mempercepatkan latihan kehilangan tiga kali ganda, saya mula-mula menggunakan softmax untuk melatih model pengecaman muka, kemudian mengalih keluar lapisan klasifikasi peringkat atas, dan kemudian menggunakan kehilangan tiga kali ganda untuk memperhalusi lapisan ciri model itu juga mencapai hasil yang sangat baik sambil mempercepatkan latihan. Kaedah ini juga merupakan kaedah yang paling biasa digunakan semasa melatih kehilangan tiga kali ganda.

(2) Pengubahsuaian Kehilangan Tiga Tiga

Kertas rujukan: Dalam Mempertahankan Kehilangan Tiga Kali Tiga untuk Pengenalan Semula Orang

Penulis menyatakan kekurangan Triplet loss. Untuk triplet yang diperlukan untuk latihan kehilangan Triplet, sauh(a), positif(p), dan negatif(n) perlu dipilih secara rawak daripada set latihan. Disebabkan oleh daya penggerak fungsi kehilangan, kemungkinan besar kombinasi sampel yang sangat mudah akan dipilih, iaitu sampel positif yang sangat serupa dan sampel negatif yang sangat serupa Jika rangkaian terus belajar pada sampel mudah, ia akan hadkan kebolehnormalan rangkaian. Oleh itu, saya duduk dan mengubah suai kehilangan tiga kali ganda dan menambah helah baharu Sebilangan besar eksperimen telah membuktikan bahawa kaedah yang dipertingkat ini berfungsi dengan baik.

Semasa latihan kehilangan triplet facenet yang disediakan oleh Google, sebaik sahaja set kembar tiga B dipilih, data akan disusun dalam kumpulan 3 mengikut tertib, jadi terdapat 3B gabungan kesemuanya , tetapi imej 3B ini sebenarnya mempunyai seberapa banyak gabungan kembar tiga yang sah, dan menggunakan hanya 3B adalah membazir.

Dalam kertas kerja ini, penulis mencadangkan kehilangan TriHard Idea teras adalah untuk menambah pemprosesan contoh keras berdasarkan kehilangan tiga kali ganda: untuk setiap kumpulan latihan, Pilih pejalan kaki P dengan ID secara rawak. , dan setiap pejalan kaki memilih K gambar yang berbeza secara rawak, iaitu, satu kelompok mengandungi gambar P×K. Kemudian untuk setiap imej a dalam kelompok, kita boleh memilih sampel positif yang paling sukar dan sampel negatif yang paling sukar untuk membentuk triplet dengan a. Mula-mula, kami mentakrifkan set gambar dengan ID yang sama seperti A dan set gambar yang selebihnya dengan ID yang berbeza sebagai B. Kemudian kehilangan TriHard dinyatakan sebagai:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

di manakah parameter ambang yang ditetapkan secara buatan. Kehilangan TriHard akan mengira jarak Euclidean antara a dan setiap gambar dalam kelompok dalam ruang ciri, dan kemudian pilih sampel positif p yang paling jauh (paling tidak sama) daripada a dan sampel negatif n yang paling hampir (paling serupa) dengan a . Kira kerugian triplet. di mana d mewakili jarak Euclidean. Cara lain untuk menulis fungsi kehilangan adalah seperti berikut:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Selain itu, penulis juga mengemukakan beberapa titik eksperimen semasa pusingan:

  • Jarak Euclidean selepas punca kuasa dua tidak sebaik Euclidean sebenar jarak selepas punca kuasa dua Jarak (sebabnya akan disebut secara ringkas kemudian)
  • mencadangkan fungsi kehilangan Margin Lembut untuk menggantikan ungkapan Margin Lembut yang asal boleh menjadikan fungsi kehilangan lebih lancar dan menghalang fungsi daripada menumpu pada At bad local, ia boleh mempercepatkan penumpuan algoritma ke tahap tertentu.
  • Persampelan Keras Kelompok yang Diperkenalkan

Kaedah ini lebih baik daripada kehilangan tiga kali ganda tradisional selepas mengambil kira contoh yang sukar.

(3) Pengubahsuaian kepada kaedah kehilangan dan sampel

Kertas rujukan: Pembelajaran Metrik Dalam melalui Lifted Pembenaman Ciri Berstruktur

Kertas kerja ini mula-mula mencadangkan bahawa kaedah triplet sedia ada tidak dapat memanfaatkan sepenuhnya kumpulan latihan latihan SGD kumpulan mini, dan secara kreatif menggunakan vektor berpasangan. ditukar kepada matriks jarak
berpasangan, dan kemudian fungsi kehilangan berstruktur baharu telah direka bentuk, yang mencapai hasil yang sangat baik. Seperti yang ditunjukkan dalam rajah di bawah, ia adalah gambar rajah pensampelan bagi tiga kaedah pembenaman kontras, pembenaman tiga kali ganda dan pembenaman berstruktur terangkat.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Secara intuitif, pembenaman berstruktur yang ditarik balik melibatkan lebih banyak mod klasifikasi Untuk mengelakkan kesukaran latihan yang disebabkan oleh jumlah data yang besar, penulis berdasarkan A ini fungsi kehilangan berstruktur diberikan. Seperti yang ditunjukkan di bawah.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

di mana P ialah set sampel positif dan N ialah set sampel negatif. Dapat dilihat bahawa berbanding dengan fungsi kehilangan di atas, fungsi kehilangan ini mula mempertimbangkan masalah set sampel. Walau bagaimanapun, tidak semua tepi negatif antara pasangan sampel membawa maklumat yang berguna Maksudnya, tepi negatif antara pasangan sampel secara rawak membawa maklumat yang sangat terhad.

Melalui fungsi kehilangan berstruktur di atas, kita dapat melihat bahawa dalam pengiraan akhir fungsi kehilangan, pasangan keras yang paling serupa dan paling kurang serupa (iaitu, maks dalam fungsi kehilangan ) dianggap Penggunaan), yang bersamaan dengan menambah maklumat
jiran yang sukar kepada kumpulan mini latihan semasa proses latihan dengan cara ini, data latihan boleh mencari sampel negatif keras dan positif keras dengan kebarangkalian yang tinggi. dan sebagai latihan Dengan kemajuan berterusan, latihan sampel keras juga akan mencapai tujuan memaksimumkan jarak antara kelas dan meminimumkan jarak antara kelas.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Seperti yang ditunjukkan dalam rajah di atas, apabila melakukan pembelajaran metrik, artikel ini tidak memilih pasangan sampel secara rawak, tetapi menggabungkan berbilang jenis sampel mereka yang sukar dibezakan antara mereka. Di samping itu, artikel itu juga menyebut bahawa proses mencari maksimum atau mencari negatif yang paling sukar akan menyebabkan rangkaian menumpu kepada optimum setempat yang buruk, saya rasa ia mungkin disebabkan oleh kesan pemangkasan maksimum, yang menjadikan kecerunan lebih curam atau mempunyai terlalu banyak ketakselanjaran kecerunan. Penulis menambah baik lagi kehilangan
fungsi dan menerima pakai sempadan atas licin, yang ditunjukkan dalam formula berikut.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

(4) Pengubahsuaian lanjut kepada kaedah sampel dan kehilangan tiga kali ganda

Kertas Rujukan : Perkara Pensampelan dalam Pembelajaran Penyertaan Mendalam

  • Pengubahsuaian kaedah pensampelan

Artikel itu menegaskan negatif Oleh kerana jarak sauh sampel adalah kecil, jika terdapat bunyi bising, maka kaedah pensampelan ini akan mudah dipengaruhi oleh bunyi bising, menyebabkan model runtuh semasa latihan. FaceNet pernah mencadangkan kaedah perlombongan negatif separa keras Kaedah yang dicadangkan adalah untuk menjadikan sampel sampel tidak terlalu keras. Walau bagaimanapun, menurut analisis penulis, sampel harus sama rata dalam sampel, jadi keadaan persampelan terbaik harus dalam sampel negatif yang tersebar sama rata, termasuk sampel keras, separa keras, dan mudah, jadi Penulis mencadangkan kaedah persampelan baru Jarak persampelan berwajaran.

Sebenarnya, kami mengambil sampel semua sampel secara berpasangan dan mengira jaraknya Akhirnya, kami mendapat hubungan berikut antara taburan jarak pasangan titik:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Kemudian mengikut jarak yang diberikan, kebarangkalian persampelan boleh diperolehi melalui fungsi songsang bagi fungsi di atas, dan perkadaran persampelan yang diperlukan untuk setiap jarak ditentukan berdasarkan kebarangkalian ini. Memandangkan sauh, kebarangkalian pensampelan contoh negatif adalah seperti berikut:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Memandangkan sampel latihan berkorelasi kuat dengan kecerunan latihan, penulis juga diplotkan Hubungan antara jarak persampelan, kaedah persampelan dan varians kecerunan data ditunjukkan dalam rajah di bawah. Seperti yang dapat dilihat daripada rajah, sampel yang diambil melalui kaedah perlombongan negatif keras semuanya berada di kawasan varians tinggi Jika terdapat bunyi bising dalam set data, pensampelan akan mudah dipengaruhi oleh bunyi bising, yang membawa kepada keruntuhan model. Sampel sampel secara rawak cenderung tertumpu di kawasan varians rendah, menjadikan kerugian sangat kecil, tetapi pada masa ini model itu sebenarnya tidak dilatih dengan baik. Julat pensampelan perlombongan negatif separa keras adalah sangat kecil, yang berkemungkinan menyebabkan model bertumpu sangat awal dan kerugian berkurangan dengan sangat perlahan, tetapi sebenarnya model itu belum dilatih dengan baik pada masa ini dan kaedah yang dicadangkan dalam artikel ini boleh dicapai dalam Sampel secara sama rata merentas keseluruhan set data.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

  • Pengubahsuaian kepada fungsi kehilangan

Pengarang memerhati konservatif kehilangan dan Masalah yang ditemui semasa kehilangan tiga kali ganda ialah fungsi kehilangan adalah sangat lancar apabila sampel negatif sangat keras, yang bermaksud bahawa kecerunan akan menjadi sangat kecil Untuk latihan, kecerunan kecil bermakna sampel yang sangat keras tidak dapat dilatih sepenuhnya, dan rangkaian Maklumat berkesan sampel keras tidak dapat diperoleh, jadi kesan sampel keras akan menjadi lebih teruk. Jadi jika kehilangan sekitar sampel keras tidak begitu lancar, iaitu terbitan yang sering digunakan dalam pembelajaran mendalam ialah 1 (seperti relu), maka mod keras akan menyelesaikan masalah kehilangan kecerunan. Di samping itu, fungsi kehilangan juga mesti melaksanakan kehilangan tiga kali ganda untuk mengambil kira kedua-dua sampel positif dan negatif, dan mempunyai fungsi reka bentuk margin, iaitu menyesuaikan diri dengan pengagihan data yang berbeza. Fungsi kehilangan adalah seperti berikut:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Kami memanggil jarak antara sampel sauh dan sampel positif sebagai jarak pasangan positif; dan sampel negatif Jarak antara mereka ialah jarak antara pasangan negatif. Parameter beta dalam formula mentakrifkan had antara jarak antara pasangan positif dan jarak antara pasangan negatif Jika jarak Dij antara pasangan positif lebih besar daripada beta, kerugian akan meningkat atau jika jarak Dij antara negatif pasangan lebih kecil daripada beta, kerugian akan meningkat. A mengawal selang pemisahan sampel apabila sampel adalah pasangan positif, yij ialah 1, dan apabila sampel adalah pasangan negatif, yij ialah -1. Rajah di bawah menunjukkan keluk fungsi kehilangan.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Dari gambar di atas, anda dapat melihat mengapa kecerunan itu hilang apabila ia sangat keras, kerana apabila ia hampir dengan titik 0, ia adalah biru Garis menjadi lebih licin dan licin, dan kecerunan menjadi lebih kecil dan lebih kecil. Selain itu, pengarang juga telah mengoptimumkan tetapan, menambah bias sampel, bias kategori dan parameter hiper, mengoptimumkan lagi fungsi kehilangan, dan boleh mengubah suai nilai secara automatik mengikut proses latihan.

3. Klasifikasi Berdasarkan Margin

Pengkelasan berasaskan margin bukan seperti pembelajaran metrik yang mengira kerugian secara langsung dalam lapisan ciri Untuk mengenakan sekatan intuitif yang kuat pada ciri, kami masih menganggap pengecaman muka sebagai tugas klasifikasi untuk latihan Dengan mengubah suai formula softmax
, kami secara tidak langsung melaksanakan sekatan margin pada lapisan ciri, menjadikan ciri akhir yang diperolehi oleh rangkaian lebih. diskriminatif.

(1) Kehilangan pusat

Kertas rujukan: Pendekatan Pembelajaran Ciri Diskriminasi untuk Pengecaman Wajah Dalam

Artikel dari ECCV 2016 ini terutamanya mencadangkan Loss baharu: Center Loss untuk membantu Softmax Loss dalam latihan menghadapi, untuk memampatkan kategori yang sama bersama-sama dan akhirnya memperoleh lebih banyak ciri diskriminasi. Kehilangan pusat bermaksud: menyediakan pusat kategori untuk setiap kategori dan meminimumkan jarak antara setiap sampel dalam kumpulan min dan pusat kategori yang sepadan, untuk mencapai tujuan mengurangkan jarak antara kelas. Rajah di bawah menunjukkan fungsi kehilangan yang meminimumkan jarak antara sampel dan pusat kelas.

ialah pusat kategori yang sepadan dengan setiap sampel dalam setiap kelompok Seperti dimensi ciri, ia dinyatakan dengan jarak Euclidean sebagai jarak manifold berdimensi tinggi. Oleh itu, berdasarkan softmax, fungsi kehilangan pusat kehilangan ialah:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Pemahaman peribadi mengenai kehilangan pusat adalah seperti menambah pengelompokan kepada fungsi kehilangan Sebagaimana latihan berlangsung, sampel secara sedar dikelompokkan di tengah-tengah setiap kelompok untuk memaksimumkan lagi perbezaan antara kelas. Tetapi saya berpendapat bahawa untuk ciri dimensi tinggi, jarak Euclidean tidak mencerminkan jarak pengelompokan, jadi pengelompokan mudah itu tidak dapat mencapai hasil yang lebih baik dalam dimensi tinggi.

(2) L-Softmax

Tujuan Softmax asal adalah untuk mendarabkan vektor bersama-sama Diubah menjadi hubungan antara modul vektor dan sudut, iaitu, atas dasar ini, L-Softmax berharap untuk menambah pembolehubah integer positif m, anda boleh lihat:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

membolehkan sempadan keputusan yang dihasilkan untuk mengekang ketidaksamaan di atas dengan lebih ketat, menjadikan jarak dalam kelas lebih padat dan jarak antara kelas lebih dibezakan. Oleh itu, berdasarkan formula di atas dan formula softmax, formula L-softmax boleh diperolehi sebagai:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Disebabkan cos adalah fungsi berkurangan, jadi darab dengan m akan menjadikan hasil dalam lebih kecil Akhirnya, dengan latihan, jarak antara kelas itu sendiri akan meningkat. Dengan mengawal saiz m, anda boleh melihat perubahan dalam jarak dalam dan antara kelas Graf dua dimensi ditunjukkan seperti berikut:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Pengarang ingin memastikan bahawa jarak antara Dalam proses perambatan dan inferens, sudut antara vektor kategori dapat memenuhi proses margin dan memastikan penurunan secara monoton, jadi bentuk fungsi baru dibina:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Sesetengah orang melaporkan bahawa sukar untuk melaraskan parameter L-Softmax, dan parameter m perlu dilaraskan berulang kali untuk mencapai hasil yang lebih baik.

(3) Normface

Kertas rujukan: NormFace: L2 Hypersphere Embedding for Face Verification

Kertas kerja ini adalah artikel yang sangat menarik. Artikel itu menunjukkan bahawa walaupun sphereface bagus, ia tidak cantik. Dalam fasa ujian, muka sfera mengukur kesamaan dengan nilai kosinus antara ciri, iaitu sudut digunakan sebagai ukuran kesamaan. Tetapi terdapat juga masalah semasa proses latihan Berat tidak dinormalkan Apabila kehilangan
fungsi berkurangan semasa proses latihan, ia akan menjadikan modul berat lebih besar, jadi arah pengoptimuman sfera. fungsi kehilangan tidak Ia tidak begitu ketat Malah, sebahagian daripada arah pengoptimuman adalah untuk meningkatkan panjang ciri. Beberapa blogger menjalankan eksperimen dan mendapati bahawa apabila m meningkat, skala koordinat juga terus meningkat, seperti yang ditunjukkan dalam rajah di bawah.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Oleh itu, pengarang menormalkan ciri semasa proses pengoptimuman. Fungsi kehilangan yang sepadan juga adalah seperti berikut:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Di mana W dan f ialah kedua-dua ciri ternormal, dan hasil darab dua titik ialah nilai kosinus sudut. Parameter s diperkenalkan kerana sifat matematiknya, yang memastikan rasional saiz kecerunan Terdapat penjelasan yang agak intuitif dalam kertas asal, yang bukan fokus. s boleh ditukar menjadi parameter yang boleh dipelajari atau parameter super Pengarang kertas memberikan banyak nilai yang disyorkan, yang boleh didapati dalam kertas. Malah, jarak Euclidean yang dinormalkan dan jarak kosinus dalam FaceNet disatukan.

4. AM-softmax/CosFace

Kertas rujukan: Additive Margin Softmax for Face Verification

CosFace: Kehilangan Kosinus Margin Besar untuk Pengecaman Wajah Dalam

Melihat kertas di atas, anda akan mendapati bahawa terdapat sedikit Satu perkara yang hilang, iaitu, margin, atau margin bermakna kurang, jadi AM-softmax memperkenalkan margin berdasarkan normalisasi. Fungsi kehilangan adalah seperti berikut:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Secara intuitif, nisbah -m lebih kecil, jadi nilai fungsi kehilangan lebih besar daripada Normface, jadi ada perasaan margin. m ialah hiperparameter yang mengawal penalti Semakin besar m, semakin kuat penalti. Perkara yang baik tentang kaedah ini ialah ia mudah untuk menghasilkan semula, tidak terdapat banyak helah pelarasan parameter, dan kesannya sangat baik.


(1) ArcFace

Berbanding dengan AM-softmax, The Perbezaan terletak pada cara Arcface memperkenalkan margin Fungsi kehilangan:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Adakah ia kelihatan sama seperti AM-softmax pada pandangan pertama? Perhatikan bahawa m berada di dalam kosinus. Artikel tersebut menunjukkan bahawa sempadan antara ciri yang diperoleh berdasarkan pengoptimuman formula di atas adalah lebih unggul dan mempunyai tafsiran geometri yang lebih kukuh.

Walau bagaimanapun, adakah terdapat sebarang masalah dengan memperkenalkan margin dengan cara ini? Fikirkan dengan teliti sama ada cos(θ+m) mestilah lebih kecil daripada cos(θ)?

Akhir sekali, kami menggunakan gambar dalam artikel untuk menjelaskan masalah ini, dan juga membuat ringkasan bahagian Pengelasan berasaskan Margin dalam bab ini.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Gambar ini berasal dari Arcface Abcissa ialah θ, iaitu sudut antara ciri dan pusat kelas bahagian eksponen pengangka bagi fungsi kerugian (Tidak kira s), semakin kecil nilainya, semakin besar fungsi kerugian.

Selepas membaca begitu banyak kertas pengecaman muka berasaskan klasifikasi, saya percaya anda juga mempunyai perasaan bahawa semua orang nampaknya membuat kekecohan tentang fungsi kehilangan, atau lebih spesifik, semua orang sedang membincangkan Cara mereka bentuk lengkung Target logit-θ dalam rajah di atas.

Keluk ini bermaksud bagaimana anda ingin mengoptimumkan sampel yang menyimpang daripada sasaran, atau dengan kata lain, berapa banyak hukuman yang perlu anda berikan berdasarkan tahap penyelewengan daripada sasaran. Dua perkara untuk diringkaskan:

1. Sebagai contoh, fungsi kehilangan Sphereface boleh memenuhi keperluan bahawa jarak maksimum dalam kelas adalah lebih kecil daripada jarak minimum antara kelas apabila m=3 atau 4. Pada masa ini, nilai fungsi kerugian adalah sangat besar, iaitu logit sasaran adalah sangat kecil. Tetapi ini tidak bermakna ia boleh digeneralisasikan kepada sampel di luar set latihan. Mengenakan kekangan yang terlalu kuat akan mengurangkan prestasi model dan menjadikan latihan sukar untuk berkumpul.

2. Adalah penting untuk memilih jenis sampel yang hendak dioptimumkan. Artikel Arcface menunjukkan bahawa memberikan terlalu banyak hukuman kepada sampel θ∈[60°, 90°] boleh menyebabkan latihan tidak bertumpu. Mengoptimumkan sampel untuk θ ∈ [30°, 60°] boleh meningkatkan ketepatan model, manakala sampel yang terlalu mengoptimumkan untuk θ∈[0°, 30°] tidak akan membawa peningkatan yang ketara. Bagi sampel dengan sudut yang lebih besar, mereka menyimpang terlalu jauh daripada sasaran, dan pengoptimuman paksa berkemungkinan mengurangkan prestasi model.

Ini juga menjawab soalan yang ditinggalkan di bahagian sebelumnya Lengkung di belakang Arcface dalam gambar di atas semakin meningkat, yang tidak relevan malah bermanfaat. Kerana mungkin tiada faedah dalam mengoptimumkan sampel keras dengan sudut yang besar. Ini adalah sama seperti strategi separa keras untuk pemilihan sampel dalam FaceNet.

Klasifikasi berasaskan margin Bacaan lanjutan

1. Pendekatan pembelajaran ciri diskriminatif untuk pengecaman muka dalam [14] yang dicadangkan oleh

Kehilangan pusat diganti dan ditimbang dan disepadukan ke dalam kehilangan softmax asal. Dengan mengekalkan pusat kelas angkasa Euclidean, jarak antara kelas dikurangkan dan kuasa diskriminasi ciri dipertingkatkan.

2. Kehilangan softmax margin besar untuk rangkaian neural konvolusi [10]

Artikel pengarang sfera muka sebelum ini, pemberat tidak normal, margin diperkenalkan dalam kehilangan softmax. Ia juga melibatkan butiran latihan Sphereface.

Gunakan ModelArts untuk melatih model muka

Penjelasan pelaksanaan algoritma pengecaman muka

Algoritma pengecaman muka yang kami gunakan dalam ini artikel Model terutamanya terdiri daripada dua bahagian:

  1. Bahagian pertama ialah model algoritma pengesanan muka, yang mengecam muka dalam gambar dan mengembalikan maklumat kedudukan muka;
  2. Bahagian kedua ialah model algoritma perwakilan ciri muka, juga dipanggil model pengecaman. Bahagian ini membenamkan imej wajah yang dipangkas ke dalam vektor dimensi tetap, dan kemudian menggunakan vektor untuk membandingkan dengan perpustakaan asas untuk melengkapkan keseluruhan proses pengecaman muka.

Seperti yang ditunjukkan dalam rajah di bawah, keseluruhan proses pelaksanaan algoritma dibahagikan kepada bahagian luar talian dan dalam talian Sebelum setiap pengecaman orang yang berbeza, latihan pertama kali digunakan Algoritma menjana pangkalan data asas standard muka dan menyimpan data pangkalan data asas pada modelarts. Kemudian semasa setiap proses inferens, input imej akan melalui model pengesanan muka dan model pengecaman muka untuk mendapatkan ciri wajah, dan kemudian berdasarkan ciri ini, ciri yang mempunyai pasangan kesamaan tertinggi akan dicari dalam perpustakaan asas untuk diselesaikan. proses pengecaman muka.

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Dalam proses pelaksanaan, kami menggunakan algoritma berdasarkan Retinaface+resnet50+arcface untuk melengkapkan pengekstrakan ciri imej muka, dengan Retinaface sebagai model pengesanan, resnet50+arcface digunakan sebagai model pengekstrakan ciri.

Dalam imej, terdapat dua skrip untuk menjalankan latihan, yang masing-masing sepadan dengan latihan pengesanan muka dan latihan pengecaman muka.

  • Skrip latihan untuk pengesanan muka ialah:
run_face_detection_train.sh
Salin selepas log masuk

Arahan permulaan skrip ini ialah

<span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">sh</span> run_face_detection_train.sh data_path model_output_path
Salin selepas log masuk

di mana model_output_path ialah laluan keluaran model, data_path ialah laluan input set latihan pengesanan muka dan struktur laluan imej input adalah seperti berikut:

detection_train_data/train/images/label.txtval/images/label.txttest/images/label.txt
Salin selepas log masuk
  • Skrip latihan untuk pengecaman muka ialah:
run_face_recognition_train.sh
Salin selepas log masuk

Arahan permulaan skrip ini ialah

<span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">sh</span> run_face_recognition_train.sh data_path model_output_path
Salin selepas log masuk

Antaranya, model_output_path ialah laluan keluaran model, data_path ialah laluan input set latihan pengesanan muka, dan struktur laluan imej input adalah seperti berikut:

recognition_train_data/cele.idxcele.lstcele.recproperty
Salin selepas log masuk
  • Skrip yang dihasilkan oleh perpustakaan asas :
run_generate_data_base.sh
Salin selepas log masuk

Arahan permulaan skrip ini ialah:

<span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">sh</span> run_generate_data_base.sh data_path detect_model_path recognize_model_path db_output_path
Salin selepas log masuk

Skrip yang dihasilkan oleh pustaka asas:

  • Arahan permulaan skrip ini ialah:
run_face_recognition.sh
Salin selepas log masuk

di mana data_path ialah laluan input imej ujian, db_path ialah laluan pustaka asas, detect_model_path ialah laluan input model pengesanan, recogn_model_path ialah laluan input bagi model pengecaman

<span style="color: rgb(111, 66, 193); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">sh</span> run_generate_data_base.sh data_path db_path detect_model_path recognize_model_path
Salin selepas log masuk

Proses Latihan

Huawei Cloud ModelArts mempunyai fungsi kerja latihan, yang boleh digunakan untuk latihan model dan pengurusan parameter dan versi latihan model. Fungsi ini membantu tertentu kepada pembangun yang terlibat dalam pembangunan berulang berbilang versi. Terdapat beberapa imej dan algoritma pratetap dalam tugas latihan Pada masa ini, terdapat imej pratetap untuk rangka kerja yang biasa digunakan (termasuk Caffe, MXNet, Pytorch, TensorFlow) dan imej enjin cip Ascend (Ascend-Powered-Engine).

Dalam artikel ini, berdasarkan ciri imej tersuai ModelArts, kami akan memuat naik imej lengkap yang telah kami nyahpepijat secara setempat dan menggunakan sumber GPU Huawei Cloud untuk melatih model.

Kami mahu menggunakan ModelArts pada Huawei Cloud untuk melengkapkan model pengecaman muka berdasarkan data selebriti biasa di tapak web. Dalam proses ini, memandangkan rangkaian pengecaman muka ialah struktur rangkaian yang direka oleh jurutera sendiri, ia perlu dimuat naik melalui imej tersuai. Oleh itu, keseluruhan proses latihan muka dibahagikan kepada sembilan langkah berikut:

  1. Bina persekitaran Docker tempatan
  2. Muat turun imej asas daripada Huawei Cloud
  3. Bina imej tersuai mengikut untuk keperluan anda Persekitaran
  4. Import data latihan ke imej tersuai
  5. Import perpustakaan asas pengecaman muka ke imej tersuai
  6. Import model pra-latihan kepada imej tersuai
  7. Muat naik imej tersuai ke SWR
  8. Gunakan Huawei Cloud kerja latihan untuk latihan
  9. Gunakan Huawei Cloud untuk kerja inferens

Bina persekitaran Docker tempatan

Persekitaran Docker boleh dibina pada komputer tempatan, atau anda boleh membeli pelayan awan elastik pada Huawei Cloud untuk membina persekitaran Docker. Rujuk dokumentasi rasmi Docker untuk keseluruhan proses:

https://docs.docker.com/engine/install/binaries/#install-static-binaries

Muat turun imej asas daripada Huawei Cloud

URL penerangan tapak web rasmi:

https://support.huaweicloud .com/engineers -modelarts/modelarts_23_0085.html#modelarts_23_0085__section19397101102

Kita perlu menggunakan persekitaran MXNet untuk latihan Pertama, kita perlu memuat turun imej asas Huawei yang sepadan awan. Arahan muat turun yang diberikan di laman web rasmi adalah seperti berikut:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Penjelasan arahan ini terdapat dalam spesifikasi imej asas latihan pekerjaan.

https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0217.html

Mengikut keperluan skrip kami, saya menggunakannya ialah imej cuda9:

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Pegawai juga menyediakan kaedah lain iaitu menggunakan fail docker. Fail docker imej asas juga terdapat dalam spesifikasi imej asas kerja latihan. Anda boleh merujuk kepada fail docker:

https://github.com/huaweicloud/ModelArts-Lab/tree/master/docs/custom_image/custom_base

Bina persekitaran imej tersuai mengikut keperluan anda sendiri

Oleh kerana saya malas, saya masih tidak menggunakan Dockerfile untuk membina imej itu sendiri. Saya mengambil pendekatan lain!

Oleh kerana keperluan kami adalah cuda 9 dan beberapa pakej pergantungan ular sawa yang berkaitan dengan mengandaikan bahawa imej rasmi menyediakan cuda 9, kami boleh mengikuti tutorial ini dan menambahkannya pada skrip latihan. txt. Penyelesaian yang mudah, cekap dan pantas untuk keperluan anda! ! ! Berikut ialah tutorial~~~

https://support.huaweicloud.com/modelarts_faq/modelarts_05_0063.html

Muat naik imej tersuai kepada SWR

Tutorial tapak web rasmi:

  • https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0085.html #modelarts_23_0085__section19397101102
  • https://support.huaweicloud.com/usermanual-swr/swr_01_0011.html

Halaman untuk muat naik>

Jika anda merasa sukar untuk memahami dokumentasi produk, anda boleh mencuba tarik/. pengalaman tolak imej pada halaman SWR: Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Berikut membimbing pelanggan tentang cara untuk menolak imej tempatan ke awan ke gudang: Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Langkah kedua ialah untuk menarik imej tersebut. mengikut dokumentasi produk. Dalam langkah ini, anda perlu menamakan semula imej setempat kepada nama imej yang dikenali di awan. Lihat penjelasan di bawah untuk butiran:

Langkah keempat ialah menolak imej, Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Apabila anda mahir dalam empat langkah ini, anda boleh meninggalkan tutorial ini dan menggunakan klien untuk memuat naik. Log masuk menggunakan klien dan muat naik. Log masuk pelanggan boleh menggunakan arahan log masuk docker sementara untuk menjana. Halaman ini berada dalam "Imej Saya" -> "Muat Naik Pelanggan" -> "Jana Perintah Log Masuk Docker Sementara": Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

dalam persekitaran docker tempatan, gunakan arahan log masuk docker sementara yang dijana untuk log masuk, dan gunakan arahan berikut untuk memuat naik imej: Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Gunakan kerja latihan Awan Huawei untuk latihan

Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Huawei Cloud ModelArts menyediakan pekerjaan latihan untuk pengguna melatih model. Terdapat imej pratetap dan imej tersuai yang boleh dipilih dalam kerja latihan. Imej pratetap termasuk kebanyakan rangka kerja di pasaran Apabila tiada keperluan khas, ia juga sangat mudah untuk menggunakan imej rangka kerja ini untuk latihan. Ujian ini masih menggunakan imej tersuai. Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Dalam imej tersuai, anda bukan sahaja perlu mengkonfigurasi persekitaran anda sendiri dalam imej, tetapi jika anda mengubah cara kerja latihan bermula, anda juga perlu mengubah suai permulaan latihan skrip. Terdapat skrip permulaan "run_train.sh" dalam laluan /home/work/ imej rasmi yang diambil daripada tapak web rasmi Huawei Cloud ModelArts Skrip permulaan yang disesuaikan perlu diubah suai berdasarkan skrip ini. Perkara utama yang perlu diberi perhatian ialah “dls_get_app”, iaitu arahan yang berkaitan dengan memuat turun daripada OBS. Bahagian lain diubah suai mengikut skrip latihan anda sendiri.


Jika anda perlu memuat naik hasil latihan atau model ke OBS, anda perlu merujuk kepada arahan "dls_get_app" ditambah "dls_upload_model". Dalam latihan kami, skrip yang dimuat naik adalah seperti berikut: Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Apabila menyahpepijat tugas latihan, anda boleh menggunakan V100 satu jam percuma pada masa ini. Salah satu perkara yang lebih baik tentang kerja latihan ModelArts ialah ia memudahkan pengurusan versi kami. Versi akan merekodkan semua parameter yang dihantar ke dalam skrip latihan melalui parameter yang dijalankan Anda juga boleh menggunakan perbandingan versi untuk membandingkan parameter. Satu lagi perkara yang mudah ialah ia boleh diubah suai berdasarkan versi tertentu, yang mengurangkan langkah memasukkan semula semua parameter dan menjadikan penyahpepijatan lebih mudah. Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel

Selepas latihan selesai dalam kerja latihan, model juga boleh digunakan dalam talian dalam ModelArts.

Postskrip

Pada masa ini, pengoptimuman algoritma pengecaman muka telah mencapai tempoh kesesakan, tetapi pada peringkat teknikal, persamaan struktur muka dan postur muka , umur perubahan, perubahan pencahayaan dalam persekitaran yang kompleks, penyekat hiasan muka, dan lain-lain masih menghadapi banyak masalah Oleh itu, menyelesaikan pelbagai masalah dalam pengecaman muka berdasarkan penyepaduan teknologi algoritma berbilang masih mempunyai pasaran yang besar dalam keselamatan dan Internet. Selain itu, dengan penambahbaikan pembayaran muka secara beransur-ansur, sistem pengecaman muka juga digunakan di bank, pusat membeli-belah, dan lain-lain. Oleh itu, isu keselamatan dan isu anti-serangan pengecaman muka juga merupakan isu yang perlu diselesaikan, seperti keceriaan. pengesanan, pengecaman muka 3D, dsb. tunggu.

Akhir sekali, pengecaman muka ialah projek yang agak matang dalam pembelajaran mendalam, dan perkembangannya berkait rapat dengan pembangunan teknikal pembelajaran mendalam itu sendiri Pada masa ini, dalam banyak pengoptimuman, kelemahan terbesar pembelajaran mendalam ialah terdapat tiada teori matematik yang sepadan Prestasi yang dipertingkatkan oleh sokongan dan pengoptimuman juga sangat terhad, jadi penyelidikan tentang algoritma pembelajaran mendalam itu sendiri juga menjadi tumpuan masa depan.

Atas ialah kandungan terperinci Fahami trend pembangunan teknologi algoritma pengecaman muka dalam satu artikel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan