Jaringan saraf dilatih untuk mengenali wajah dalam video berdasarkan satu sampel foto. Bagaimana kami mengajarkan jaringan saraf untuk mengenali gaun dan sepatu

Peneliti HSE telah mengusulkan metode baru untuk mengenali orang dalam video menggunakan jaringan saraf dalam. Pendekatan ini tidak memerlukan sejumlah besar foto; pendekatan ini dapat meningkatkan akurasi pengenalan secara signifikan dibandingkan dengan analog yang diketahui sebelumnya, meskipun hanya tersedia satu foto bagian depan seseorang. Hasil karyanya dipublikasikan dalam artikel “Analisis Fuzzy dan Jaringan Neural Konvolusi Mendalam dalam Pengenalan Diam-ke-video” dan “Identifikasi Wajah Tanpa Kendala Menggunakan Kemungkinan Jarak Maksimum Antara Fitur Jauh yang Tersedia”.

Sistem pengenalan wajah telah mengalami perkembangan pesat selama beberapa tahun terakhir. Teknologi verifikasi dan identifikasi serupa saat ini digunakan di berbagai bidang – mulai dari perang melawan terorisme hingga jejaring sosial dan aplikasi seluler.

Pengakuan bisa terjadi dengan cara yang berbeda, tapi masuk akhir-akhir ini Hasil terbaik ditunjukkan oleh jaringan saraf ultra-presisi. Pada saat yang sama, semakin banyak sampel gambar yang ditampilkan jaringan saraf, semakin baik kinerjanya. Selama proses pembelajaran, sistem mengidentifikasi fitur-fitur utama dan membangun hubungan di antara fitur-fitur tersebut, lalu menggunakan pengetahuan yang diperoleh untuk mengenali gambar yang tidak diketahui.

Semakin banyak kumpulan foto yang digunakan untuk melatih jaringan saraf tersedia secara gratis. Untuk data yang dikontrol (dengan posisi yang sama dalam bingkai, pencahayaan, dll.), keakuratan algoritme telah lama mencapai hasil yang sebanding dengan manusia. Namun mencapai akurasi tinggi dalam mengenali data video yang dikumpulkan dalam kondisi tidak terkendali dengan pencahayaan, sudut, dan ukuran yang bervariasi masih sulit dilakukan.

“Jaringan dapat mengenali dengan akurasi 100%, misalnya, seorang aktor terkenal (jumlah gambarnya di jaringan mencapai jutaan). Tapi ini tidak berarti sama sekali bahwa ketika mentransfer pengetahuan yang terkumpul di jaringan saraf, ia mengadaptasi dan mengenali seseorang yang hanya tersedia satu foto sebagai sampel,” jelas profesor departemen tersebut. sistem Informasi dan teknologi dari Sekolah Tinggi Ekonomi Universitas Riset Nasional di Nizhny Novgorod Andrey Savchenko.

Untuk mengatasi permasalahan tersebut, peneliti HSE menggunakan teori himpunan fuzzy dan teori probabilitas. Mereka mengembangkan algoritme yang secara signifikan dapat meningkatkan akurasi (sebesar 2-6% dibandingkan eksperimen yang dilakukan sebelumnya) dalam mengidentifikasi wajah dari video secara real time dengan jumlah gambar terbatas. Solusi ini bekerja dengan arsitektur jaringan saraf VGGFace, VGGFace2, ResFace, dan LightCNN.

Sebagai dasar pengujian, para peneliti menggunakan beberapa kumpulan data tradisional untuk mengevaluasi metode pengenalan wajah video - IJB-A (IARPA Janus Benchmark A) dan YTF (YouTube Faces). Kumpulan ini mencakup gambar orang-orang terkenal (aktor, politisi, tokoh masyarakat) yang tersedia untuk umum, yang dikumpulkan dari sumber terbuka dalam kondisi yang tidak terkendali di waktu yang berbeda. Algoritme tersebut seharusnya mengenali wajah di video YouTube, menggunakan sampel beberapa foto orang yang sama dari kumpulan data lain - LFW (Labeled Faces in the Wild). LFW menggunakan resolusi yang lebih tinggi dan foto diambil pada waktu yang berbeda, mulai dari tahun 1970an hingga 2010an.

Cara kerja pendekatan ini adalah dengan menggunakan informasi tentang bagaimana foto referensi saling berhubungan, yaitu seberapa dekat atau jauh jaraknya satu sama lain. Hubungan (jarak dalam model matematika) antara orang-orang yang serupa lebih kecil, dan antara orang-orang yang berbeda lebih besar. Mengetahui perbedaan orang satu sama lain memungkinkan sistem memperbaiki kesalahan dalam proses pengenalan bingkai video.

“Algoritma ini mengevaluasi seberapa dekat satu frame dengan satu orang, dan frame lainnya dengan orang lain. Kemudian dia membandingkan betapa miripnya kedua orang tersebut satu sama lain. Kemudian dia menambahkan orang ketiga dan menilai siapa yang lebih dekat dengannya - orang pertama atau kedua. Berdasarkan kedekatan ini, sekali lagi sistem ini memperbaiki kesalahan pengenalan,” kata Profesor Savchenko.

Algoritma ini sekarang telah diimplementasikan untuk komputer desktop dengan Python, yang memungkinkan Anda menemukan dan mengelompokkan wajah orang berbeda di album foto, memperkirakan tahun lahir, jenis kelamin, dan parameter lainnya. Sebuah prototipe aplikasi Android telah dikembangkan yang mendeteksi usia dan jenis kelamin orang dalam foto dan video. Analisis galeri foto memungkinkan untuk secara otomatis menilai tingkat aktivitas sosial pengguna dan menyoroti teman dekat dan kerabatnya. Untuk ponsel pintar masa kini Aplikasi prototipe memproses 15 frame per detik. Peneliti mengklaim berkat algoritma yang dikembangkan, pengenalan wajah bisa lebih akurat.

Bacaan Reshetnev. 2017

PENYELESAIAN MASALAH PENGENALAN WAJAH DAN KELUARGA MENGGUNAKAN CONVOLUTIONAL NEURAL NETWORKS

D.V. Plotnikov*, E.A.Sopov

Siberia universitas negeri Sains dan Teknologi dinamai Akademisi M.F. Reshetnev Federasi Rusia, 660037, Krasnoyarsk, jalan. mereka. gas. "Pekerja Krasnoyarsk", 31

bentuk elektronik: [dilindungi email]

Sebuah studi eksperimental tentang efisiensi jaringan saraf konvolusional dalam memecahkan masalah pengenalan wajah manusia dan ekspresi wajah telah dilakukan.

Kata kunci: jaringan saraf konvolusional, pengenalan wajah, pengenalan ekspresi wajah.

PENYELESAIAN TUGAS PENGENALAN WAJAH DAN EKSPRESI WAJAH MENGGUNAKAN JARINGAN SARAF KONVOLUSIONAL

D.V. Plotnikov*, E.A.Sopov

Universitas Sains dan Teknologi Negeri Siberia Reshetnev 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Federasi Rusia Email: [dilindungi email]

Makalah ini melakukan penelitian eksperimental kinerja jaringan saraf konvolusional yang dioperasikan dengan tugas pengenalan wajah dan wajah.

Kata Kunci: convolutional neural network, pengenalan wajah, pengenalan ekspresi wajah.

Perkenalan. Kebutuhan manusia untuk mengembangkan teknologi pengenalan wajah sudah ada sejak lama. Saat ini, algoritme semacam itu dapat diterapkan di banyak bidang - sistem keamanan, verifikasi, dll. Tentu saja, algoritme tersebut terus ditingkatkan dan menunjukkan hasil yang lebih baik. Salah satu algoritme tersebut adalah jaringan saraf konvolusional, yang karena strukturnya dan algoritme yang digunakan di dalamnya, mampu bekerja dengan aliran gambar dan video apa pun.

Makalah ini menganalisis efektivitas CNN dengan berbagai tugas pengenalan, yaitu pengenalan wajah dan ekspresi wajah manusia. Karena setiap tugas pengenalan memiliki fitur unik(ini mungkin: jumlah contoh pelatihan dan pengujian, dimensi, jumlah kelas, dll.), pertanyaan berikut muncul: apakah selalu mungkin untuk mendapatkan algoritma efisiensi tinggi (CNN) hanya dengan menggunakan konfigurasi klasik? Dan apakah peningkatan hyperparameter model selalu menghasilkan peningkatan efisiensi?

Tugas tes berikut dipilih: “The ORL Database of Faces” dan “The Facial Expression Recognition 2013”.

Basis Data "Basis Data ORL Wajah". Tugas tes pertama adalah soal pengenalan wajah. Basis data terdiri dari 400 foto dari empat puluh orang berbeda (Gbr. 1). Semua foto disajikan dalam skala abu-abu. Sampel tes dibentuk sebagai berikut: Anda perlu memilih satu foto setiap orang secara acak. Algoritme yang dikembangkan harus, berdasarkan 360 foto pelatihan, mengklasifikasikan 40 foto sisanya, yaitu mengidentifikasi orang-orang yang digambarkan di dalamnya.

Database "Pengenalan Ekspresi Wajah 2013". Tugas tes kedua adalah masalah mengenali emosi. Basis data adalah kumpulan gambar orang-orang dengan ekspresi wajah berbeda. Orang dalam gambar mungkin marah, jijik, takut, bahagia, sedih, terkejut atau tenang.

Beras. 1. Contoh foto yang diambil dari The ORL Database of Faces

Metode matematika pemodelan, manajemen dan analisis data

Beras. 2. Contoh foto yang diambil dari database “The Facial Expression Recognition 2013”

Struktur jaringan saraf konvolusional untuk bekerja dengan “The ORL Database of Faces”

Parameter Lapisan nomor lapisan

Jumlah inti Ukuran inti Fungsi aktivasi

1 Lapisan konvolusional 1 20 5x5 Garis singgung hiperbolik

3 Lapisan konvolusional 2 50 5x5 Garis singgung hiperbolik

Ukuran konvolusi Fungsi konvolusi

2 Downsampling layer 1 2x2 Fungsi maksimal

4 Downsampling layer 2 2x2 Fungsi maksimal

Jumlah fungsi aktivasi neuron

5 Lapisan terhubung penuh 1 500 Garis singgung hiperbolik

6 Lapisan terhubung penuh 2 40 Garis singgung hiperbolik

Struktur 1 Struktur 2

Beras. 3. Dinamika efisiensi pelatihan CNN (Struktur 1 dan Struktur 2)

Sampelnya terdiri dari 28.709 contoh pelatihan dan 7.178 contoh tes. Setiap gambar memiliki resolusi 48x48 piksel.

Hasil percobaan. Basis Data "Basis Data ORL Wajah". Prinsip pengoperasian CNN dapat ditemukan di.

Selama pekerjaan, struktur lain juga digunakan untuk bekerja dengan database "The ORL Database of Faces". Namun, ternyata cara-cara tersebut tidak efektif. Di satu sisi, konfigurasi yang lebih kompleks dan intensif komputasi tidak menunjukkan hasil yang lebih baik. Dan struktur yang lebih sederhana tidak dapat dilatih sama sekali. Dengan demikian, kerangka kerja terlatih terbaik mencapai efisiensi klasifikasi sebesar 97,5%.

Database "Pengenalan Ekspresi Wajah 2013". Karena dimensi soal ini relatif besar, maka diputuskan untuk memperkecil dimensinya (menjadi 28x28). Dalam hal ini, gambar dengan dimensi yang lebih kecil akan diumpankan ke masukan jaringan saraf. Praktek telah menunjukkan bahwa waktu pelatihan CNN dengan gambar masukan 48x48 piksel 4 kali lebih lama dibandingkan dengan gambar masukan 28x28 piksel. Selain itu, dinamika pembelajaran jaringan hampir tidak berubah.

Tahap selanjutnya adalah menguji hipotesis bahwa nilai hyperparameter CNN mempengaruhi kecepatan

pelatihan. Untuk mengatasi masalah ini, dua struktur digunakan: Struktur 1 - identik dengan yang digunakan untuk bekerja dengan database “The ORL Database of Faces”.

Struktur 2 adalah Struktur 1 dengan nilai hyperparameter yang ditingkatkan (sekarang jumlah kernel lapisan konvolusional pertama = 50, lapisan konvolusional kedua = 125) (Gbr. 3).

Pada Gambar. 3: sumbu x - iterasi pelatihan jaringan, sumbu y - akurasi pelatihan. Terlihat pada iterasi 125, Struktur 1 mencapai tingkat stagnasi, sedangkan Struktur 2 terus meningkatkan akurasi pengenalan.

Kesimpulan. Hasil penelitian menunjukkan bahwa untuk memecahkan masalah pengenalan wajah (atau emosi) manusia yang berbeda, penggunaan struktur klasik yang sama mungkin tidak efektif. Penting untuk melanjutkan dari tujuan dan mencari kompromi antara efisiensi dan daya komputasi perangkat keras, karena waktu berjalan CNN sangat sensitif terhadap dimensi data masukan, dan hasilnya tidak selalu bergantung pada dimensi data masukan. sampel pelatihan. Saat bekerja dengan struktur yang kompleks, prapemrosesan data dan penyempurnaan jaringan.

Arah ini akan menjadi objek penelitian lebih lanjut.

PewemHeecKye umeHUH. 2017

1. Pengenalan wajah: pendekatan jaringan saraf konvolusional / S. Lawrence, C. L. Giles, Ah Chung Tsoi, dan A. D. Back // IEEE Trans. Jaringan Syaraf. 1997. Jil. 8, No.1.Hal.98-113.

2. Krizhevsky A., Sutskever I., Hinton G. E. Klasifikasi ImageNet dengan Deep Convolutional Neural Networks, Adv. Informasi Saraf. Proses. sistem. 2012.Hal.1-9.

3. LeCun Y., Boser B., Denker JS dkk. Propagasi Balik Diterapkan pada Pengenalan Kode Pos Tulisan Tangan. Komputasi Neural. 1989. Nomor 1 (4). Hal.541-551.

4. Lin M., Chen Q., Yan S. Jaringan Dalam Jaringan. persiapan arXiv. 2013:10.

5. Sopov E., Ivanov I. Merancang teknologi yang efisien untuk analisis gambar konteks dalam dialog HCI menggunakan algoritma genetika pencarian kebaruan yang dapat dikonfigurasi sendiri. Robot Otomatis Kontrol Informatika (ICINCO), 2014. Konferensi Int ke-11. 2014. Nomor 2. Hal.832-839.

© nn0THHK0B fl. B., ConoB EA, 2017

Mencari baju menggunakan foto dari ponselmu itu untuk perempuan, katamu. Ini bukan untuk spesialis TI yang serius, kata Anda. Dan secara umum, dimanakah teknologi yang sangat ilmiah, dan dimanakah mmm... dunia fashion dan glamor vanilla?

Ketika pada tahun 11 kami menjadi penduduk cluster IT Skolkovo dan beberapa saat kemudian menandatangani kontrak dengan Odnoklassniki untuk mengembangkan program komputer yang kompleks untuk mendeteksi wajah, kami juga berpikiran sama. Misalnya, kami akan bekerja di bidang ilmiah keren sepanjang hidup kami, tidak ada yang manis-manis untuk Anda.

Namun beberapa waktu kemudian, dengan mempelajari statistik dunia tentang penelusuran visual, perdagangan online dan seluler, tren umum di pasar ritel global, kami menyadari bahwa minat bisnis dalam pengenalan seluler atas pakaian, sepatu, dan aksesori (dalam tim kami menyebutnya kata umum fashion ) berkembang pesat.

Mari kita ilustrasikan.

Beberapa angka

Industri pakaian, fesyen, dan barang mewah merupakan pasar yang sangat menjanjikan. Pemasar dan pemodal di McKinsey mengatakan dalam studi mereka bahwa industri pakaian jadi global akan mengalami pertumbuhan dua digit antara tahun 2014 dan 2020. Selain itu, pertumbuhan akan terjadi karena pasar negara berkembang (Rusia, tentu saja, juga berlaku di sini) dan sebagian besar karena pembeli Asia (tingkat urbanisasi di Tiongkok sekarang 10 kali lebih cepat dibandingkan proses serupa di Inggris pada abad ke-19).

Jika kita hanya berbicara tentang pasar pakaian wanita, maka dalam 12 tahun ke depan pertumbuhannya akan lebih dari 50% di seluruh dunia (menurut studi McKinsey - Unleashing Fashion Growth City by City).

Pakaiannya sudah disortir. Kami menyadari bahwa pasar sedang berkembang, yang berarti terdapat peluang untuk pengembangan teknologi. Bagus.

Selanjutnya, kami mulai mempelajari tren belanja online. Kami melihat ke Amerika. Pada tahun 2015, 205 juta orang Amerika (dari populasi 325 juta - yaitu lebih dari 60%) setidaknya sekali mencari barang di Internet, membandingkan harga, atau membeli sesuatu secara online. Diperkirakan pada tahun 2019 angka ini akan mencapai 224 juta.

Tren serupa juga terjadi secara global: sebuah studi pada Konferensi Perdagangan dan Pembangunan PBB menyatakan bahwa pada tahun 2018, sekitar 1,623 miliar orang di seluruh dunia akan membeli barang dan jasa secara online (dibandingkan dengan 1,039 miliar pada tahun 2013).

Pada saat yang sama, menarik untuk dicatat bahwa segmen perdagangan seluler (yaitu pembelian yang dilakukan dari perangkat seluler) juga meningkat. Di Amerika saja, menurut perkiraan eMarketer, pendapatan ritel seluler akan mencapai $130,12 miliar pada tahun 2018 (dari $56,67 miliar pada tahun 2014)—lebih dari dua kali lipat.

Tren global menuju “mobilisasi” belanja online juga terlihat jelas. Goldman Sachs menerbitkan laporan yang menyatakan bahwa dalam 5 tahun segmen m-commerce dalam hal jumlah pengguna akan tumbuh 5 kali lipat: dari 379 juta pengguna pada tahun 2013 menjadi lebih dari 1 miliar pembeli pada tahun 2018 (perlu dicatat bahwa laporan tersebut tidak memperhitungkan pembelian online di segmen "Perjalanan").

Pakaian, harus dikatakan, menurut penelitian Nielsen, adalah kategori yang paling sering dibeli secara online. Hanya buku, perlengkapan kantor, dan musik yang bersaing dengannya.

Intinya, inilah yang terjadi: saat ini, pasar akses Internet telah mencapai titik jenuhnya, pertumbuhan pengguna telah melambat secara signifikan (diproyeksikan sebesar 5-10% pada tahun-tahun berikutnya). Pertumbuhan pasar ponsel pintar juga menuju nol.

Misalnya saja menonton presentasi pidato Mark Zuckerberg di konferensi Facebook F8.

Artinya, pasar Internet dan ponsel pintar telah menjadi komoditas, barang konsumsi, dan bagian dari kehidupan sehari-hari. Namun pembelian melalui perangkat seluler merupakan pola perilaku baru yang memberikan ruang bagi pengembangan teknologi baru.

Semua fakta ini menjadi dasar bagi kami untuk memikirkan bagaimana kami dapat menerapkan teknologi jaringan saraf kami dan melakukan sesuatu yang menarik dan perlu di bidang ini. Jadi, pada tahun 2014, kami mulai mengembangkan sistem pengenalan pakaian bergerak.

Bagaimana dan mengapa mengajarkan sistem untuk mengenali gaun?

Ide pengenalan seluler itu sederhana: pengguna melihat beberapa item fesyen yang disukainya (pada seseorang di jalan, di etalase toko, atau di sampul majalah), mengambil fotonya. perangkat seluler, unggah foto ke instalasi aplikasi seluler, yang mengenali produk dalam gambar dan memilih produk serupa dari berbagai macam toko. Barangnya tentunya bisa langsung dibeli. Semua.

Dengan kata lain, ekspektasi pengguna terhadap layanan dapat direduksi menjadi tiga langkah: melihat - memotret - membeli.

Untuk mengembangkan dan membangun sistem seperti itu, kami harus memproses lebih dari 30.000.000 gambar, memahami perbedaan antara pullover dan jumper (ada juga sweater dan kardigan, dan semuanya berbeda), sepatu bot derby dan biksu, wol dan tas jinjing tas, dan buka "kunstkamera" kami, sewa manekin, merasa seperti perancang busana muda (yah, tidak terlalu muda, oke) - dan banyak lagi. Tapi hal pertama yang pertama.

Kami memutuskan untuk membangun sistem pengenalan seluler jaringan saraf adalah inti dari teknologi pembelajaran mendalam. Jaringan meniru kerja neuron di otak manusia dalam hal pembelajaran dan koreksi kesalahan: jaringan belajar secara mandiri (dengan data pelatihan yang cukup) dan bertindak berdasarkan pengalaman sebelumnya, membuat semakin sedikit kesalahan dengan setiap pembelajaran baru.

Neuron adalah elemen komputasi terpisah dari suatu jaringan; setiap neuron terhubung ke neuron lapisan jaringan sebelumnya dan berikutnya. Ketika file gambar, video, atau audio diterima sebagai masukan, file tersebut diproses secara berurutan oleh semua lapisan jaringan. Bergantung pada hasilnya, jaringan dapat mengubah konfigurasinya (parameter setiap neuron).

Untuk tugas kita, jaringan saraf bagus karena, dengan jumlah data pelatihan yang diperlukan, jaringan saraf dapat belajar mengenali hampir semua jenis objek.

Langkah 1: Pelajari segala sesuatu tentang fashion

Jadi, dari sudut pandang teknologi, sistem harus bekerja dalam urutan berikut: analisis foto yang dimuat oleh sistem - menyorot area yang berpotensi mengandung produk - menentukan kategori produk - memisahkan objek dari latar belakang - membuat sidik jari digital dari gambar produk - mencari produk serupa dalam kategori tertentu.

Poin pertama dalam rencana R&D adalah terciptanya klasifikasi fashion yang benar, lengkap dan akurat.

Kami memutuskan untuk memulai dengan klasifikasi sepatu. Dan bagi wanita, bagi kami tampaknya hal itu lebih mudah (kami seharusnya segera membuat tanda salib, dasar bodoh yang naif). Kami memahami: agar sistem dapat mengenali kategori dengan benar, kami memerlukan klasifikasi detail jenis sepatu wanita. Mereka menggunakan Wikipedia, kamus penjelasan, situs toko sepatu online, dan gambar dari Google seperti ini:

Sejalan dengan pencarian gambar berdasarkan kategori dan penandaan, kami membuat folder internal “Kunstkamera”, yang mulai diisi ulang dengan contoh sepatu yang tidak biasa (atau bahkan benar-benar aneh), beberapa di antaranya ingin segera “tidak dilihat”. Misalnya, kami memiliki pameran berikut:

Kami, tentu saja, tidak mengambil gambar seperti itu untuk melatih jaringan. Ini untuk diri saya sendiri - “hanya untuk tertawa” (c).

Dan kami menyadari bahwa ada sepatu unisex. Misalnya, kategori sepatu seperti espadrilles, moccasins, atau Woodland bisa sangat mirip tampilannya - baik untuk pria maupun wanita.

Secara total, kami mengklasifikasikan 10 kategori sebagai unisex.

Jadi, secara total, kami mengidentifikasi kurang dari 100 kategori sepatu, setelah itu kami menyimpulkan tantangan apa yang harus kami hadapi pada langkah ini.

Pertama- Ini adalah klasifikasi tersendiri. Kategori mana yang harus kami soroti? Apakah ukurannya terlalu kecil? Atau sebaliknya, diperbesar secara berlebihan?

Di sini kami dibantu oleh struktur katalog klien akhir kami - toko online. Kami mengambil kategorisasi mereka sebagai dasar, membawanya ke bentuk yang dapat memenuhi persyaratan kami (menjadi universal untuk toko-toko Rusia dan Amerika, tidak terlalu umum dan tidak terlalu rinci).

Kedua– kontroversi dalam mengklasifikasikan beberapa barang ke dalam kategori tertentu. Misalnya, apa ini? Sepatu bot atau sepatu kets?

Secara lahiriah, tentu saja, terlihat seperti sepatu bot pergelangan kaki, tetapi di situs beberapa toko online, sepatu tersebut diklasifikasikan sebagai sepatu kets. Bagaimana Anda tahu di kategori mana klien ingin mencari sepatu bot serupa?

Ketiga– detail pengklasifikasi. Terkadang saya harus menjadi "membosankan" dan lebih dari itu pencarian yang tepat sorot kategori tambahan yang tidak selalu berkorelasi dengan kategori toko (jangan bingung dengan filter pencarian!) untuk mencapai hasil pengenalan yang lebih baik.

Beginilah cara kami mendapatkan sepatu bot wedge, sepatu bot tumit stiletto, sepatu bot hak lebar, sepatu bot bulu, dll.

Keempat– kesulitan dalam memilih gambar ke dalam beberapa kategori. Ada suatu masa ketika, misalnya, gambar sepatu perahu hanya dapat ditemukan di sumber asing - sepatu ini belum banyak tersedia di toko kami.

DAN terakhir. Kami tidak memahami bagaimana neuron berperilaku dalam menentukan bahan sepatu. Artinya, apakah jaringan untuk sepatu bot kulit tinggi akan mencari sepatu bot kulit secara khusus atau akankah hasil pencarian berisi semua sepatu bot dengan bentuk yang serupa, tetapi bahan yang berbeda?

Akibatnya, kami tidak tahu apakah harus memisahkan kategori berdasarkan bahan: sepatu kulit, sepatu suede, sepatu berbahan kain, dll.

Untuk pengujian, kami membuat 2 kategori: “Sepatu bot suede” dan “Sepatu bot kulit” (tentu saja, tumpang tindih dengan kategori lain - sepatu bot tinggi, sepatu bot wedge, dan lainnya). Jaringan mengenalinya dengan benar. Namun pada akhirnya, kami tidak membagi semua jenis sepatu berdasarkan bahannya ke dalam kategori yang tidak tumpang tindih - hal itu tidak diperlukan. Namun dua kategori “yang terbentuk secara historis” ini dibiarkan. Pekerjaan yang tepat mereka tidak ikut campur.

Secara umum, setelah kami menyiapkan pengklasifikasi sepatu, kami mulai menganggap diri kami sebagai campuran Alexander Vasiliev, Vyacheslav Zaitsev, dan Valentin Yudashkin.

Korespondensi internal kami

Kemudian, dengan menggunakan prinsip yang sama, kami mulai membedakan tas wanita dan pria, lalu pakaian wanita dan pria.

Langkah 2: Latih jaringan saraf untuk membedakan biksu dari sepatu pantofel, dan pullover dari pelompat

Jadi, kami telah mengidentifikasi kategori fesyen yang akan digunakan oleh sistem kami. Sekarang kita perlu melatih jaringan saraf untuk mengenali kategori dalam sebuah foto: yaitu, menentukan lokasi objek yang diinginkan dalam gambar dan mengklasifikasikannya dengan benar.

Untuk melatih jaringan saraf agar mengenali satu kategori, hal pertama yang perlu Anda lakukan adalah memilih dan mengunggah ke dalam jaringan (kami menyebut proses ini “memberi makan jaringan”) sejumlah besar gambar: dari seribu hingga beberapa ratus ribu.

Artinya, untuk mengajarkan sistem mengenali kategori “Sepatu hak tinggi”, Anda perlu mengunduh dua atau lebih ribu gambar sepatu hak tinggi yang berbeda dari Internet. Prinsipnya sederhana: lebih banyak data pelatihan berarti kinerja jaringan yang lebih baik (pengenalan yang lebih akurat).

Pengunduhan gambar untuk pelatihan dilakukan setengah secara otomatis oleh algoritma internal kami, setengah lagi secara manual. Setelah itu, rangkaian foto diperiksa untuk memastikan tidak ada duplikat atau gambar acak yang tidak pantas. Selanjutnya semua file diberi nama yang seragam dan format (ekstensi) yang sama.

Dan kemudian bagian tersulit dimulai: menandai produk dalam gambar secara manual. Karyawan kami menggambar bingkai di sekeliling produk di foto dan menentukan kategorinya.

Misalnya:

Hal ini diperlukan agar sistem dapat memahami: sebenarnya apa yang ada di dalam persegi panjang adalah produk dari kategori tertentu. Pekerjaan penandaan memakan waktu paling lama: tugasnya melelahkan dan tidak berjalan sangat cepat. Jika Anda mengukur jam kerja yang dihabiskan untuk menandai dalam cangkir kopi, maka hasilnya akan lebih dari satu ton minuman yang menyegarkan.

Dengan apa kamu bertarung?

Pada tahap penandaan, kurangnya pengalaman dan pandangan jauh ke depan menjadi bumerang: setelah mengidentifikasi kategori tas dan pakaian baru, kami harus menandai ulang foto sepatu yang telah ditandai sebelumnya menjadi produk baru. Karena kurangnya penandaan untuk kategori baru, sistem menemukan pakaian, tetapi yakin bahwa sistem tersebut salah dan menambahkan produk yang ditemukan ke “latar belakang”.

Artinya, jika kita terlebih dahulu mengidentifikasi semua kemungkinan kategori sepatu, pakaian, dan aksesori (membawa pengklasifikasi ke bentuk seperti sekarang) dan baru kemudian menandai gambar di Semua kategori sekaligus, maka kita akan menghemat banyak sumber daya.

Hambatan lainnya adalah beberapa karyawan terlibat dalam penandaan. Dan kebetulan setiap orang memiliki pemahamannya masing-masing tentang pakaian mana yang termasuk dalam kategori tertentu (kami menulis tentang kasus kontroversial di atas). Oleh karena itu, ditunjuk seorang karyawan yang bertanggung jawab yang menerima foto-foto yang diberi markup dari rekan-rekannya dan memeriksa ulang semua folder dan gambar untuk kebenaran penandaannya.

Ini adalah tampilan pengklasifikasi mode kami menggunakan sepatu wanita sebagai contoh (salah satu halaman):

Jaringan saraf kini banyak digunakan untuk pemrosesan dan pengenalan gambar, dalam sistem pengenalan suara, analisis video, dan keamanan cerdas. Jaringan menciptakan musik ( Jukedeck). Waktunya tidak lama lagi ketika bot jaringan saraf akan muncul, menggantikan kecerdasan manusia dalam sejumlah aktivitas (misalnya, di pusat panggilan yang memberi nasihat kepada klien tentang masalah-masalah dasar).

Secara umum, harus dikatakan bahwa banyak orang yang terlibat dalam jaringan. Inilah hiu pasar Internet: "Yandex"(misalnya, fitur terbaru mereka untuk Auto.ru - mengenali merek dan model mobil dari sebuah gambar), Microsoft(melayani Apa-Dog.net, mengidentifikasi ras anjing dari foto), Mail.ru Dan Facebook(sebuah divisi dari Riset AI Facebook), dan, tentu saja, Google. Namun mereka juga merupakan startup muda (hanya mereka yang mempunyai cukup dana untuk daya komputasi).

Jaringan dipelajari dengan tekun di universitas teknik di seluruh dunia, khususnya di MIPT Mungkin sekarang Anda juga ingin terlibat dalam jaringan. Dingin!

Kemudian kami akan segera menyuarakan dua poin yang perlu Anda persiapkan.

Mari kita katakan sekali lagi bahwa bagian penting dari teknologi ini adalah data pelatihan. Ini adalah “tetapi” yang pertama. Agar jaringan berhasil membedakan satu jenis objek, perlu mengumpulkan beberapa ribu contoh objek tersebut yang akan dijadikan tempat pelatihan. Seringkali jumlah benda mencapai ratusan. Basis data pelatihan akhir dapat berjumlah ratusan ribu atau jutaan objek.

Oleh karena itu, mempersiapkan pangkalan adalah proses yang sangat memakan waktu. Terkadang startup mendatangi kami dan berkata, kami ingin melakukan pengenalan seperti Pinterest, dengan tautan ke produk dari Amazon. “Keren,” kata kami, “kita bisa mengaturnya. Namun Anda memerlukan banyak gambar untuk setiap produk agar jaringan dapat berfungsi. Bisakah kita mengumpulkannya? Setelah ini, karena suatu alasan, pelanggan menghilang ke luar angkasa.

Meskipun perlu diketahui bahwa berbagai teknologi untuk akselerasi pembelajaran kini mulai bermunculan. Misalnya, rangkaian gambar terlatih yang tersedia untuk umum GambarNet; jaringan saraf terlatih yang dapat mengenali gambar dan tidak memerlukan persiapan jaringan yang lama untuk pengoperasiannya.

Kemajuan juga terlihat di sisi perangkat keras - ada kartu video berkinerja tinggi yang memungkinkan Anda melatih dan menggunakan jaringan beberapa ratus kali lebih cepat.

Dan kedua, menyimpan dan memproses data dalam jumlah besar memerlukan daya komputasi dan dana infrastruktur yang besar. Untuk pelatihan dan pengoperasian jaringan, diperlukan kartu dengan memori minimal 3-4 GB, dan untuk beberapa arsitektur diperlukan 11 gigs. Kartu tersebut tidak murah: satu proyek kecil memerlukan kartu senilai sekitar 100.000 rubel. Ditambah lagi, itu membutuhkan banyak hal ruang disk di bawah data itu sendiri.

Oleh karena itu, teknologi jaringan saraf berkembang luas dan permintaannya sangat besar. Di Internet Anda dapat menemukan banyak literatur dan penelitian tentang topik ini; bahkan kode program untuk jaringan pun tersedia. Artinya, di satu sisi, teknologi tersebut tampaknya tersedia secara umum, namun, di sisi lain, saat ini teknologi tersebut masih kompleks dan kurang dipahami. Perusahaan-perusahaan besar secara teratur mengadakan segala macam kompetisi untuk mendapatkan algoritma terbaik, dan seringkali pertarungannya hanya untuk sepersepuluh dan seperseratus keakuratan algoritma.

Jadi, dengan makalah kami tentang pengenalan seluler di bidang fashion, kami berhasil mencapai final KDD, konferensi terbesar di dunia dalam bidang Penemuan Pengetahuan dan Penambangan Data. Teks laporan tersedia di tautan.

Kami terus berupaya mengembangkan teknologi.

Pengenalan wajah  adalah masalah mendasar dalam bidang visi komputer dan merupakan langkah kunci menuju pembuatan aplikasi yang dapat mengenali dan membedakan orang dari wajahnya. Metode pengenalan wajah telah dipelajari secara aktif selama 20 tahun terakhir, yang selama ini akurat dan akurat metode yang efektif bekerja dalam kondisi tertentu.

Namun, teknik pengenalan wajah modern telah mencapai hasil yang mengesankan ketika bekerja dengan gambar wajah berukuran sedang dan besar efisiensi bekerja dengan gambar kecil tidak memuaskan. Kesulitan utama dalam mengenali wajah kecil (misalnya berukuran 10x10 piksel) adalah kurangnya detail wajah untuk membedakannya dari latar belakang. Masalah lainnya adalah itu metode modern Pengenalan wajah dibangun berdasarkan jaringan saraf konvolusional dan menggunakan peta fitur konvolusional dengan tingkat pengambilan sampel yang rendah dan langkah yang besar untuk mewakili wajah (8, 16, 32), yang kehilangan informasi dan terlalu tidak akurat untuk mendeskripsikan gambar berukuran kecil .

Untuk mengatasi kesulitan-kesulitan ini dalam perjalanan menuju pengenalan wajah yang lebih baik, diusulkan jaringan saraf konvolusional universal berdasarkan jaringan saraf permusuhan generatif klasik. Ini terdiri dari dua subnet: generator Dan diskriminator.

Generator menggunakan jaringan saraf SRN (jaringan resolusi super) untuk meningkatkan resolusi. Tidak seperti peningkatan resolusi bilinear, SRN tidak menambahkan artefak ke dalamnya gambar yang dihasilkan dan meningkatkan kualitasnya karena faktor penskalaan yang besar. Meskipun demikian, ketika menggunakan SRN dan jaringan saraf canggih lainnya, para peneliti mendapat manfaat besar gambar buram tidak ada bagian kecil. Hal ini disebabkan oleh resolusi gambar masukan yang sangat rendah.

Jaringan saraf yang “ditingkatkan” digunakan untuk memulihkan detail yang hilang pada gambar yang dihasilkan dan membuat gambar resolusi tinggi yang akurat untuk tugas klasifikasi RN (jaringan penyempurnaan). Gambar akhir dan gambar nyata dilewatkan melalui diskriminator yang menentukan apakah kedua gambar itu nyata atau dibuat, dan apakah gambar tersebut memperlihatkan wajah atau tidak. Masukan menyebabkan generator membuat gambar dengan fitur wajah yang lebih akurat.

Arsitektur jaringan saraf

Pertama, mari kita lihat struktur generatornya. Ini terdiri dari dua bagian — Jaringan saraf SRN dan jaringan saraf perbaikan. Jaringan saraf pertama meningkatkan resolusi gambar masukan. Karena gambar wajah kecil kurang detail dan juga karena pengaruh kehilangan akar rata-rata kuadrat, gambar yang dihasilkan oleh jaringan saraf pertama biasanya buram. Oleh karena itu, jaringan saraf kedua digunakan untuk menyempurnakan gambar ini. Sebagai akibat cabang klasifikasi untuk pengenalan wajah ditambahkan ke diskriminator, yang memungkinkan diskriminator mengklasifikasikan wajah dan objek lain, serta membedakan antara gambar yang dihasilkan dan gambar nyata.

Arsitektur Generator dan Diskriminator

Generator

Jaringan saraf generator yang ditingkatkan memiliki arsitektur jaringan saraf konvolusional. Setelah setiap lapisan konvolusional, kecuali yang terakhir, normalisasi (normalisasi batch) dan aktivasi ReLU dilakukan.

Jaringan saraf SRN di generator meningkatkan resolusi fragmen gambar yang dipilih sebanyak 4 kali lipat. Fragmen yang dihasilkan menjadi buram jika wajah jauh dari kamera atau bergerak. Meningkatkan jaringan saraf memproses fragmen ini dan menghasilkan gambar yang lebih detail, di mana diskriminator dapat dengan mudah mengenali wajah.

Diskriminator

Diskriminator menggunakan jaringan saraf sebagai jaringan saraf utama VGG19, yang lapisan subsamplingnya telah dihapus untuk menghilangkan berbagai operasi pengurangan resolusi. Selain itu, semua lapisan yang terhubung penuh (yaitu f c6, f c7, f c8) diganti dengan dua lapisan yang terhubung penuh paralel fcGAN dan fcclc. Gambar dengan resolusi yang ditingkatkan dipasok ke input. Cabang fcGAN memberikan probabilitas bahwa gambar masukan adalah nyata, dan cabang fcclc memberikan probabilitas bahwa gambar masukan berisi wajah.

Fungsi kerugian

Kehilangan per piksel: Masukan generator adalah gambar kecil yang buram, bukan noise acak. Cara alami untuk membuat gambar keluaran generator mendekati gambar asli adalah dengan menggunakan kesalahan akar rata-rata kuadrat per piksel, yang dihitung sebagai:

di mana ILR dan IHR masing-masing menunjukkan fragmen kecil buram (resolusi rendah) dan gambar beresolusi tinggi (resolusi tinggi), G1 — jaringan saraf SNR, G2 — meningkatkan jaringan saraf, w  - Parameter pembangkit.

Kerugian kompetitif: Untuk mencapai hasil yang lebih realistis, kerugian adversarial diperkenalkan, yang didefinisikan sebagai:

Kerugian yang merugikan memaksa jaringan saraf untuk menghasilkan detail frekuensi tinggi yang lebih tajam untuk “menipu” Diskriminator.

Kerugian klasifikasi: Untuk membuat gambar yang dipulihkan oleh generator lebih mudah dikenali, kerugian klasifikasi diperkenalkan. Rumus penghitungan kerugian klasifikasi adalah sebagai berikut:

Kerugian klasifikasi digunakan karena dua alasan. Pertama, mereka mengizinkan Diskriminator untuk menentukan apakah gambar asli dan gambar yang dihasilkan berisi wajah atau tidak. Dan kedua, mereka merangsang Generator untuk membuat gambar yang lebih detail.

Fungsi tujuan: kerugian permusuhan dan klasifikasi dimasukkan dalam kerugian perusahaan per piksel. Jaringan saraf permusuhan generatif dapat dilatih menggunakan fungsi tujuan. Untuk perilaku gradien yang lebih baik, fungsi kerugian Generator G dan Diskriminator D dimodifikasi sebagai berikut:


Persamaan pertama terdiri dari kerugian adversarial, root mean square, dan klasifikasi, yang membuat gambar yang direkonstruksi serupa dengan gambar resolusi tinggi nyata pada tingkat detail frekuensi tinggi, piksel, dan semantik. Fungsi kerugian diskriminator D pada persamaan kedua menambahkan kerugian klasifikasi untuk menentukan apakah wajah terdapat dalam gambar resolusi tinggi. Dengan menambahkan kerugian klasifikasi, gambar yang direkonstruksi Generator menjadi lebih realistis dibandingkan hasil yang dioptimalkan menggunakan kerugian adversarial dan root mean square.