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.
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.
Proses pengesanan muka
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.
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.
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.
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.
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.
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.
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.
Modul pengesanan dalam SSH
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.
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.
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).
Kehilangan kontrastif memperkenalkan dua isyarat dan melatih rangkaian melalui dua isyarat. Ungkapan untuk mengenal pasti isyarat adalah seperti berikut:
Ungkapan untuk mengesahkan isyarat adalah seperti berikut:
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:
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.
(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.
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:
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:
Selain itu, penulis juga mengemukakan beberapa titik eksperimen semasa pusingan:
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.
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.
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.
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.
(4) Pengubahsuaian lanjut kepada kaedah sampel dan kehilangan tiga kali ganda
Kertas Rujukan : Perkara Pensampelan dalam Pembelajaran Penyertaan Mendalam
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:
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:
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.
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:
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.
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:
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:
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:
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:
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:
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.
Oleh itu, pengarang menormalkan ciri semasa proses pengoptimuman. Fungsi kehilangan yang sepadan juga adalah seperti berikut:
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:
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:
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.
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.
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.
Penjelasan pelaksanaan algoritma pengecaman muka
Algoritma pengecaman muka yang kami gunakan dalam ini artikel Model terutamanya terdiri daripada dua bahagian:
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.
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.
run_face_detection_train.sh
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
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
run_face_recognition_train.sh
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
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
run_generate_data_base.sh
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
Skrip yang dihasilkan oleh pustaka asas:
run_face_recognition.sh
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
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:
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:
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:
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:
Halaman untuk muat naik>
Jika anda merasa sukar untuk memahami dokumentasi produk, anda boleh mencuba tarik/. pengalaman tolak imej pada halaman SWR:
Berikut membimbing pelanggan tentang cara untuk menolak imej tempatan ke awan ke gudang:
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,
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":
dalam persekitaran docker tempatan, gunakan arahan log masuk docker sementara yang dijana untuk log masuk, dan gunakan arahan berikut untuk memuat naik imej:
Gunakan kerja latihan Awan Huawei untuk latihan
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.
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:
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.
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!