
Teknologi dan model untuk sistem visi komputer masa depan kami dibuat dan ditingkatkan secara bertahap di berbagai proyek perusahaan kami - di Mail, Cloud, dan Search. Dimasak seperti keju atau cognac yang enak. Setelah kami menyadari bahwa jaringan saraf kami menunjukkan hasil pengakuan yang sangat baik, dan memutuskan untuk menggabungkannya menjadi satu produk b2b - Visi - yang sekarang kami gunakan sendiri dan menawarkan untuk menggunakan Anda.
Hari ini, teknologi visi komputer kami pada platform Mail.Ru Cloud Solutions bekerja dengan sukses dan memecahkan masalah praktis yang sangat kompleks. Ini didasarkan pada sejumlah jaringan saraf yang dilatih pada set data kami dan berspesialisasi dalam memecahkan masalah yang diterapkan. Semua layanan berputar pada kapasitas server kami. Anda dapat mengintegrasikan API Visi publik ke dalam aplikasi Anda di mana semua fitur layanan tersedia. APInya cepat - berkat GPU server, waktu respons rata-rata dalam jaringan kami adalah 100 ms.
Di bawah potongan, ada cerita rinci dan banyak contoh Visi.
Sebagai contoh layanan di mana kita sendiri menggunakan teknologi pengenalan wajah yang disebutkan di atas, kita dapat mengutip
Acara . Salah satu komponennya adalah dudukan Vision photo, yang kami pasang di berbagai konferensi. Jika Anda pergi ke tempat foto seperti itu, mengambil gambar dengan kamera internal dan memasukkan surat Anda, sistem akan segera menemukan di antara sejumlah foto yang diambil oleh fotografer konferensi biasa, dan jika diinginkan, kirimkan foto yang ditemukan kepada Anda melalui surat. Dan ini bukan tentang pemotretan yang dipentaskan - Vision mengenali Anda bahkan di latar belakang kerumunan pengunjung. Tentu saja, mereka tidak dikenali oleh foto yang berdiri sendiri, mereka hanya tablet di tatakan gelas yang indah yang hanya memotret tamu di kamera built-in mereka dan mengirimkan informasi ke server, di mana semua keajaiban pengenalan terjadi. Dan kami telah berulang kali mengamati betapa mengejutkan efektivitas teknologi bahkan di antara spesialis dalam pengenalan gambar. Di bawah ini kita akan berbicara tentang beberapa contoh.
1. Model Pengenalan Wajah Kami
1.1. Jaringan saraf dan kecepatan pemrosesan
Untuk pengakuan, kami menggunakan modifikasi dari model jaringan saraf ResNet 101. Rata-rata Pooling pada akhirnya digantikan oleh lapisan yang sepenuhnya terhubung, mirip dengan bagaimana hal itu dilakukan di ArcFace. Namun, ukuran representasi vektor adalah 128, bukan 512. Set pelatihan kami berisi sekitar 10 juta foto dari 273.593 orang.
Model ini bekerja sangat cepat berkat arsitektur konfigurasi server yang dipilih dengan cermat dan komputasi GPU. Dibutuhkan 100 ms untuk mendapatkan respons dari API di jaringan internal kami - ini termasuk deteksi wajah (deteksi wajah di foto), pengenalan, dan mengembalikan PersonID dalam respons API. Dengan volume besar data yang masuk - foto dan video - akan membutuhkan lebih banyak waktu untuk mentransfer data ke layanan dan menerima tanggapan.
1.2. Penilaian efektivitas model
Tetapi menentukan efisiensi jaringan saraf adalah tugas yang sangat beragam. Kualitas pekerjaan mereka tergantung pada set data mana model dilatih dan apakah mereka dioptimalkan untuk bekerja dengan data tertentu.
Kami mulai mengevaluasi keakuratan model kami dengan uji verifikasi LFW yang populer, tetapi terlalu kecil dan sederhana. Setelah mencapai akurasi 99,8%, itu tidak lagi berguna. Ada kompetisi yang bagus untuk mengevaluasi model pengakuan - Megaface di atasnya kami secara bertahap mencapai 82% peringkat 1. Uji megaface terdiri dari sejuta foto - pengacau - dan model tersebut harus dapat membedakan ribuan foto selebriti dengan baik dari dataset Facescrub dari pengalih perhatian. Namun, setelah menyelesaikan tes Megaface kesalahan, kami menemukan bahwa pada versi yang dibersihkan kami mencapai akurasi 98% peringkat 1 (foto selebriti umumnya cukup spesifik). Oleh karena itu, mereka membuat tes identifikasi terpisah, mirip dengan Megaface, tetapi dengan foto-foto orang "biasa". Lebih lanjut meningkatkan akurasi pengenalan pada dataset mereka dan melangkah jauh ke depan. Selain itu, kami menggunakan uji kualitas pengelompokan, yang terdiri dari beberapa ribu foto; Ini mensimulasikan markup wajah di cloud pengguna. Dalam hal ini, kelompok adalah kelompok individu yang serupa, kelompok untuk setiap orang yang dapat dikenali. Kami memeriksa kualitas pekerjaan pada kelompok nyata (benar).
Tentu saja, model apa pun memiliki kesalahan pengenalan. Tetapi situasi seperti itu sering diselesaikan dengan menyelaraskan ambang batas untuk kondisi tertentu (untuk semua konferensi kami menggunakan ambang yang sama, dan, misalnya, untuk ACS kita harus secara signifikan meningkatkan ambang batas sehingga ada lebih sedikit false positive). Sebagian besar peserta konferensi diakui oleh foto Visi kami dengan benar. Terkadang seseorang melihat pratinjau yang dipangkas dan berkata: "Sistem Anda salah, ini bukan saya." Lalu kami membuka seluruh foto, dan ternyata pengunjung ini benar-benar ada di dalam foto, hanya saja mereka tidak mengambilnya, tetapi orang lain, hanya seorang pria yang secara tidak sengaja muncul di latar belakang di zona buram. Selain itu, jaringan saraf sering kali mengenali dengan benar bahkan ketika bagian dari wajah tidak terlihat, atau seseorang berdiri di profil, atau bahkan setengah wajah. Sistem dapat mengenali seseorang, bahkan jika orang tersebut jatuh ke bidang distorsi optik, katakanlah, ketika memotret dengan lensa sudut lebar.
1.3. Menguji contoh dalam situasi sulit
Di bawah ini adalah contoh pengoperasian jaringan saraf kita. Di pintu masuk, foto dikirimkan, yang harus dia tandai menggunakan PersonID - pengidentifikasi unik untuk orang tersebut. Jika dua atau lebih gambar memiliki pengidentifikasi yang sama, maka, menurut model, foto-foto ini menunjukkan satu orang.
Segera, kami mencatat bahwa selama pengujian kami memiliki akses ke berbagai parameter dan ambang model yang dapat kami konfigurasi untuk mencapai hasil tertentu. API publik dioptimalkan untuk akurasi maksimum pada kasus-kasus umum.
Mari kita mulai dengan yang paling sederhana, dengan pengenalan wajah di wajah.

Yah, itu terlalu mudah. Kami menyulitkan tugas, menambah jenggot dan beberapa tahun.

Seseorang akan mengatakan bahwa ini tidak terlalu sulit, karena dalam kedua kasus wajah terlihat secara keseluruhan, algoritma ini memiliki banyak informasi tentang wajah. Oke, ubah profil Tom Hardy. Tugas ini jauh lebih rumit, dan kami menghabiskan banyak upaya untuk solusi yang berhasil dengan mempertahankan tingkat kesalahan yang rendah: kami memilih satu set pelatihan, memikirkan arsitektur jaringan saraf, mengasah fungsi kehilangan, dan memperbaiki pemrosesan awal foto.

Mari kita pakai topi padanya:

Ngomong-ngomong, ini adalah contoh situasi yang sangat sulit, karena wajah sangat tertutup di sini, dan di gambar bawah ada juga bayangan dalam yang menyembunyikan mata. Dalam kehidupan nyata, orang sangat sering mengubah penampilan mereka dengan bantuan kacamata gelap. Lakukan hal yang sama dengan Tom.

Baiklah, mari kita coba mengunggah foto dari berbagai usia, dan kali ini kita akan memberikan pengalaman pada aktor lain. Mari kita ambil contoh yang jauh lebih kompleks ketika perubahan terkait usia diucapkan secara khusus. Situasi ini tidak terlalu mengada-ada, itu terjadi setiap saat ketika Anda perlu membandingkan foto di paspor Anda dengan wajah pembawa. Bagaimanapun, foto pertama macet di paspor ketika pemiliknya berumur 20 tahun, dan oleh 45 orang bisa sangat banyak berubah:

Apakah Anda berpikir bahwa spesialisasi utama pada misi yang tidak mungkin tidak banyak berubah seiring bertambahnya usia? Saya pikir bahkan beberapa orang akan menggabungkan foto atas dan bawah, bocah laki-laki itu telah banyak berubah selama bertahun-tahun.

Jaringan saraf dihadapkan dengan perubahan penampilan jauh lebih sering. Misalnya, kadang-kadang wanita dapat sangat mengubah citra mereka dengan bantuan kosmetik:

Sekarang mari kita semakin menyulitkan tugas ini: biarkan bagian wajah yang berbeda dicakup dalam foto yang berbeda. Dalam kasus seperti itu, algoritma tidak dapat membandingkan seluruh sampel. Namun, Visi menangani situasi seperti itu dengan baik.

Ngomong-ngomong, ada banyak wajah di foto, misalnya, lebih dari 100 orang bisa masuk dalam gambar umum aula. Ini adalah situasi yang sulit untuk jaringan saraf, karena banyak wajah dapat berbeda diterangi, seseorang di luar zona ketajaman. Namun, jika foto diambil dengan resolusi dan kualitas yang memadai (setidaknya 75 piksel per persegi yang menutupi wajah), Vision akan dapat mengidentifikasi dan mengenalinya.

Keunikan melaporkan foto dan gambar dari kamera pengintai adalah bahwa orang sering kabur karena mereka keluar dari bidang ketajaman atau bergerak pada saat itu:

Juga, intensitas pencahayaan dapat sangat bervariasi dari gambar ke gambar. Ini juga sering berubah menjadi batu sandungan, banyak algoritma mengalami kesulitan besar dalam memproses gambar yang terlalu gelap dan terlalu terang, belum lagi perbandingan yang tepat. Biarkan saya mengingatkan Anda bahwa untuk mencapai hasil seperti itu, Anda perlu menetapkan ambang batas dengan cara tertentu, kemungkinan ini belum tersedia untuk umum. Untuk semua klien, kami menggunakan jaringan saraf yang sama, ia memiliki ambang yang cocok untuk sebagian besar tugas praktis.

Baru-baru ini, kami meluncurkan versi baru model yang mengenali wajah Asia dengan akurasi tinggi. Sebelumnya, ini adalah masalah besar, yang bahkan disebut "ras pembelajaran mesin" (atau "jaringan saraf"). Jaringan saraf Eropa dan Amerika mengenali wajah-wajah Europeoid dengan baik, dan segalanya jauh lebih buruk dengan yang Mongoloid dan Negroid. Mungkin di Cina yang sama, situasinya justru sebaliknya. Ini semua tentang set data pelatihan yang mencerminkan tipe orang dominan di negara tertentu. Namun, situasinya berubah, hari ini masalah ini jauh dari akut. Visi tidak memiliki kesulitan dengan perwakilan dari berbagai ras.

Pengenalan wajah hanyalah salah satu dari banyak aplikasi teknologi kami, Visi dapat diajarkan untuk mengenali apa pun. Misalnya, nomor mobil, termasuk dalam kondisi sulit untuk algoritma: pada sudut yang tajam, angka kotor dan sulit dibaca.

2. Kasus penggunaan praktis
2.1. Kontrol akses fisik: ketika dua lewat sama
Dengan bantuan Visi dimungkinkan untuk menerapkan sistem akuntansi untuk kedatangan dan keberangkatan karyawan. Sistem tradisional yang didasarkan pada kartu elektronik memiliki kelemahan yang jelas, misalnya, Anda dapat melewati dua lencana bersama. Jika sistem kontrol akses (ACS) dilengkapi dengan Visi, ia akan dengan jujur mencatat siapa yang datang dan pergi ketika.
2.2. Pelacakan waktu
Kasus penggunaan untuk Visi ini terkait erat dengan yang sebelumnya. Jika kami melengkapi sistem kontrol akses dengan layanan pengenalan wajah kami, ia tidak hanya akan dapat melihat pelanggaran kontrol akses, tetapi juga mencatat tinggal aktual karyawan di gedung atau di fasilitas. Dengan kata lain, Visi akan membantu untuk secara jujur mempertimbangkan siapa dan berapa banyak yang datang untuk bekerja dan pergi bersamanya, dan siapa yang bahkan bolos, bahkan jika rekan-rekannya menutupinya di depan atasannya.
2.3. Analitik video: pelacakan orang dan keamanan
Dengan melacak orang yang menggunakan Visi, Anda dapat secara akurat menilai paten sebenarnya dari area perbelanjaan, stasiun kereta api, persimpangan, jalan-jalan, dan banyak tempat umum lainnya. Pelacakan kami juga dapat sangat membantu dalam mengontrol akses, misalnya, ke gudang atau tempat kantor penting lainnya. Dan tentu saja, melacak orang dan wajah membantu menyelesaikan masalah keamanan. Tertangkap seseorang mencuri dari toko Anda? Tambahkan ke PersonID, yang mengembalikan Visi, dalam daftar hitam perangkat lunak analitik video Anda, dan waktu berikutnya sistem akan segera memperingatkan keamanan jika jenis ini muncul lagi.
2.4. Dalam perdagangan
Bisnis ritel dan berbagai layanan tertarik pada pengakuan antrian. Menggunakan Visi, Anda dapat mengenali bahwa ini bukan kerumunan orang yang acak, melainkan antrian, dan menentukan panjangnya. Dan kemudian sistem menginformasikan orang-orang yang bertanggung jawab tentang antrian untuk memahami situasi: apakah ini masuknya pengunjung dan karyawan tambahan perlu dipanggil, atau seseorang meretas dengan tanggung jawab pekerjaan mereka.
Tugas menarik lainnya adalah pemisahan karyawan perusahaan di aula dari pengunjung. Biasanya, sistem belajar untuk memisahkan benda-benda dalam pakaian tertentu (kode berpakaian) atau dengan beberapa fitur khas (syal tanda tangan, lencana di dada, dan sebagainya). Ini membantu untuk menilai kehadiran secara lebih akurat (sehingga karyawan sendiri tidak "menyelesaikan" statistik orang-orang di aula).
Dengan menggunakan pengenalan wajah, Anda dapat mengevaluasi audiens Anda: berapa loyalitas pengunjung, yaitu, berapa banyak orang yang kembali ke institusi Anda dan dengan frekuensi berapa. Hitung berapa banyak pengunjung unik mendatangi Anda dalam sebulan. Untuk mengoptimalkan biaya menarik dan mempertahankan, Anda dapat mengetahui dan perubahan kehadiran tergantung pada hari dalam seminggu dan bahkan waktu dalam sehari.
Pemberi waralaba dan perusahaan jaringan dapat memesan penilaian kualitas branding dari berbagai outlet ritel dari foto: keberadaan logo, tanda, poster, spanduk dan sebagainya.
2.5. Di transportasi
Contoh lain keamanan melalui analitik video adalah mengidentifikasi barang yang tertinggal di ruang bandara atau stasiun kereta api. Visi dapat dilatih untuk mengenali benda-benda dari ratusan kelas: furnitur, tas, koper, payung, berbagai jenis pakaian, botol dan sebagainya. Jika sistem analitik video Anda mendeteksi objek tanpa pemilik dan mengenalinya menggunakan Visi, ia mengirimkan sinyal ke layanan keamanan. Tugas serupa terkait dengan deteksi otomatis situasi non-standar di tempat-tempat umum: seseorang jatuh sakit, atau seseorang merokok di tempat yang salah, atau orang itu jatuh ke rel, dan sebagainya - semua pola sistem analisis video ini dapat dikenali melalui Visi API.
2.6. Alur kerja
Aplikasi Visi lain yang menarik di masa depan yang sedang kami kembangkan adalah pengenalan dokumen dan penguraian otomatisnya ke dalam basis data. Alih-alih mengemudi secara manual (atau bahkan lebih buruk, memasuki) seri, angka, tanggal penerbitan, nomor rekening, detail bank, tanggal dan tempat lahir dan banyak data formal lainnya, Anda dapat memindai dokumen dan mengirimnya secara otomatis melalui saluran aman melalui API. di cloud, di mana sistem akan on the fly, dokumen-dokumen ini akan dikenali, diuraikan dan akan mengembalikan respons dengan data dalam format yang diinginkan untuk entri otomatis ke dalam basis data. Today Vision sudah mengetahui cara mengklasifikasikan dokumen (termasuk dalam PDF) - itu membedakan paspor, SNILS, TIN, akta kelahiran, akta nikah dan lainnya.
Tentu saja, semua situasi ini jaringan saraf tidak mampu menangani di luar kotak. Dalam setiap kasus, model baru dibangun untuk pelanggan tertentu, banyak faktor, nuansa dan persyaratan diperhitungkan, set data dipilih, pengaturan pelatihan-pengujian diulang.
3. Skema kerja API
"Gerbang masuk" Visi untuk pengguna adalah REST API. Di pintu masuk, ia dapat mengambil foto, file video, dan siaran dari kamera jaringan (stream RTSP).
Untuk menggunakan Visi, Anda harus
mendaftar di Cloud Solutions Mail.ru dan mendapatkan token akses (client_id + client_secret). Otentikasi pengguna dilakukan menggunakan protokol OAuth. Sumber data di badan permintaan POST dikirim ke API. Dan sebagai tanggapan, klien menerima hasil pengakuan dari API dalam format JSON, dan responsnya terstruktur: berisi informasi tentang objek yang ditemukan dan koordinatnya.

Contoh tanggapan{ "status":200, "body":{ "objects":[ { "status":0, "name":"file_0" }, { "status":0, "name":"file_2", "persons":[ { "tag":"person9" "coord":[149,60,234,181], "confidence":0.9999, "awesomeness":0.45 }, { "tag":"person10" "coord":[159,70,224,171], "confidence":0.9998, "awesomeness":0.32 } ] } { "status":0, "name":"file_3", "persons":[ { "tag":"person11", "coord":[157,60,232,111], "aliases":["person12", "person13"] "confidence":0.9998, "awesomeness":0.32 } ] }, { "status":0, "name":"file_4", "persons":[ { "tag":"undefined" "coord":[147,50,222,121], "confidence":0.9997, "awesomeness":0.26 } ] } ], "aliases_changed":false }, "htmlencoded":false, "last_modified":0 }
Jawabannya memiliki parameter kedahsyatan yang menarik - ini adalah "kesejukan" bersyarat dari wajah dalam foto, dengan itu kita memilih bidikan wajah terbaik dari urutan. Kami melatih jaringan saraf untuk memprediksi kemungkinan gambar akan seperti di jejaring sosial. Semakin baik gambar dan semakin halus wajah, semakin besar keangkerannya.
API Visi menggunakan konsep seperti ruang. Ini adalah alat untuk membuat set wajah yang berbeda. Contoh ruang adalah daftar hitam dan putih, daftar pengunjung, karyawan, pelanggan, dll. Untuk setiap token dalam Visi, Anda dapat membuat hingga 10 ruang, di setiap ruang bisa ada hingga 50 ribu PersonID, yaitu hingga 500 ribu untuk satu token . Selain itu, jumlah token per akun tidak terbatas.
Hari ini, API mendukung metode deteksi dan pengenalan berikut:
- Kenali / Set - definisi dan pengenalan wajah. Secara otomatis menetapkan PersonID untuk setiap wajah unik, mengembalikan PersonID dan koordinat wajah yang ditemukan.
- Hapus - hapus PersonID tertentu dari basis data orang.
- Truncate - membersihkan seluruh ruang dari PersonID, berguna jika digunakan sebagai tes dan Anda perlu mengatur ulang pangkalan untuk produksi.
- Deteksi - definisi objek, adegan, plat nomor, atraksi, antrian, dll. Mengembalikan kelas objek yang ditemukan dan koordinatnya
- Deteksi dokumen - mendeteksi jenis dokumen tertentu dari Federasi Rusia (membedakan paspor, snls, penginapan, dll.).
Selain itu, kami akan segera menyelesaikan pekerjaan pada metode untuk OCR, menentukan jenis kelamin, usia dan emosi, serta menyelesaikan tugas-tugas perdagangan, yaitu, untuk secara otomatis mengontrol tampilan barang di toko. Anda dapat menemukan dokumentasi API lengkap di sini:
https://mcs.mail.ru/help/vision-api4. Kesimpulan
Sekarang melalui API publik Anda dapat mengakses pengenalan wajah dalam foto dan video, itu mendukung definisi berbagai objek, plat nomor, atraksi, dokumen, dan seluruh adegan. Skenario Aplikasi - Laut. Ayo, uji layanan kami, tetapkan tugas yang paling sulit untuk itu. 5.000 transaksi pertama gratis. Ini mungkin merupakan "bahan yang hilang" untuk proyek Anda.
Akses ke API dapat diperoleh secara instan saat mendaftar dan terhubung ke
Visi . Semua pengguna Habra - kode promosi untuk transaksi tambahan. Tulis di alamat email pribadi tempat akun itu didaftarkan!