Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Teknologi dan model untuk sistem visi komputer masa depan kami dibuat dan ditingkatkan secara bertahap dan dalam berbagai proyek perusahaan kami - di Mail, Cloud, Search. Mereka matang seperti keju atau cognac yang enak. Suatu hari kami menyadari bahwa jaringan saraf kami menunjukkan hasil yang sangat baik dalam pengenalan, dan kami memutuskan untuk menggabungkannya menjadi satu produk b2b - Vision - yang sekarang kami gunakan sendiri dan tawarkan kepada Anda untuk digunakan.

Saat ini, teknologi visi komputer kami pada platform Mail.Ru Cloud Solutions berhasil bekerja dan memecahkan masalah praktis yang sangat kompleks. Hal ini didasarkan pada sejumlah jaringan saraf yang dilatih pada kumpulan data kami dan berspesialisasi dalam memecahkan masalah terapan. Semua layanan berjalan pada fasilitas server kami. Anda dapat mengintegrasikan Vision API publik ke dalam aplikasi Anda, yang melaluinya semua kemampuan layanan tersedia. API-nya cepat - berkat GPU server, waktu respons rata-rata dalam jaringan kami adalah 100 ms.

Lanjut ke kucing, ada cerita detail dan banyak contoh karya Vision.

Sebagai contoh layanan di mana kami sendiri menggunakan teknologi pengenalan wajah yang disebutkan di atas, kami dapat mengutip Acara. Salah satu komponennya adalah photo stand Vision yang kami pasang di berbagai konferensi. Jika Anda mendekati tempat foto tersebut, ambil foto dengan kamera internal dan masukkan email Anda, sistem akan segera menemukan di antara rangkaian foto tersebut foto-foto yang diambil oleh staf fotografer konferensi, dan, jika diinginkan, akan mengirimkan foto-foto yang ditemukan kepada Anda melalui email. Dan kita tidak berbicara tentang pemotretan potret yang dipentaskan—Vision mengenali Anda bahkan di latar belakang kerumunan pengunjung. Tentu saja, bukan stan foto itu sendiri yang dikenali, ini hanyalah tablet di stan indah yang hanya mengambil foto tamu dengan kamera internalnya dan mengirimkan informasi ke server, tempat semua keajaiban pengenalan terjadi. Dan kita telah melihat lebih dari sekali betapa mengejutkannya efektivitas teknologi ini bahkan di kalangan spesialis pengenalan gambar. Di bawah ini kita akan membahas beberapa contoh.

1. Model Pengenalan Wajah kami

1.1. Jaringan saraf dan kecepatan pemrosesan

Untuk pengenalan, kami menggunakan modifikasi model jaringan saraf ResNet 101. Rata-rata Pooling di bagian akhir digantikan oleh lapisan yang terhubung sepenuhnya, serupa dengan yang dilakukan di ArcFace. Namun, ukuran representasi vektornya adalah 128, bukan 512. Set pelatihan kami berisi sekitar 10 juta foto dari 273 orang.

Model ini berjalan sangat cepat berkat arsitektur konfigurasi server dan komputasi GPU yang dipilih dengan cermat. Diperlukan waktu mulai dari 100 ms untuk menerima respons dari API di jaringan internal kami - ini termasuk deteksi wajah (mendeteksi wajah di foto), mengenali, dan mengembalikan PersonID dalam respons API. Dengan data masuk dalam jumlah besar - foto dan video - akan memerlukan lebih banyak waktu untuk mentransfer data ke layanan dan menerima respons.

1.2. Menilai efektivitas model

Namun menentukan efisiensi jaringan saraf adalah tugas yang sangat ambigu. Kualitas pekerjaannya bergantung pada kumpulan data tempat model dilatih dan apakah model tersebut dioptimalkan untuk bekerja dengan data tertentu.

Kami mulai mengevaluasi keakuratan model kami dengan uji verifikasi LFW yang populer, namun tes ini terlalu kecil dan sederhana. Setelah mencapai akurasi 99,8%, tidak berguna lagi. Ada kompetisi yang bagus untuk mengevaluasi model pengenalan - Megaface, di mana kami secara bertahap mencapai 82% peringkat 1. Tes Megaface terdiri dari sejuta foto - pengalih perhatian - dan model tersebut harus mampu membedakan dengan baik beberapa ribu foto selebriti dari Facescrub kumpulan data dari distraktor. Namun, setelah menyelesaikan pengujian kesalahan Megaface, kami menemukan bahwa dengan versi yang telah diselesaikan, 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 orang “biasa”. Kemudian kami meningkatkan akurasi pengenalan pada kumpulan data kami dan melangkah lebih jauh. Selain itu, kami menggunakan uji kualitas pengelompokan yang terdiri dari beberapa ribu foto; itu mensimulasikan penandaan wajah di cloud pengguna. Dalam hal ini, cluster adalah kelompok individu yang serupa, satu kelompok untuk setiap orang yang dapat dikenali. Kami memeriksa kualitas pekerjaan pada kelompok nyata (benar).

Tentu saja, kesalahan pengenalan terjadi pada model apa pun. Namun situasi seperti ini sering kali diselesaikan dengan menyempurnakan ambang batas untuk kondisi tertentu (untuk semua konferensi kami menggunakan ambang batas yang sama, namun, misalnya, untuk sistem kontrol akses kami harus meningkatkan ambang batas secara signifikan sehingga terdapat lebih sedikit kesalahan positif). Sebagian besar pengunjung konferensi dikenali dengan benar oleh booth foto Vision kami. Terkadang seseorang melihat pratinjau yang dipotong dan berkata, "Sistem Anda melakukan kesalahan, bukan saya." Kemudian kita buka foto tersebut secara keseluruhan, dan ternyata memang ada pengunjung yang ada di dalam foto tersebut, hanya saja bukan kita yang memotretnya, melainkan orang lain, kebetulan orang tersebut berada di background dalam zona blur. Selain itu, jaringan saraf sering kali mengenali dengan benar bahkan ketika bagian wajah tidak terlihat, atau orang tersebut berdiri di profil, atau bahkan setengah menoleh. Sistem dapat mengenali seseorang meskipun wajahnya berada dalam area distorsi optik, misalnya saat memotret dengan lensa sudut lebar.

1.3. Contoh pengujian dalam situasi sulit

Di bawah ini adalah contoh cara kerja jaringan saraf kami. Foto dikirimkan ke masukan, yang harus dia beri label menggunakan PersonID - pengidentifikasi unik seseorang. Jika dua gambar atau lebih memiliki ID yang sama, maka menurut modelnya, foto tersebut menggambarkan orang yang sama.

Mari kita segera perhatikan bahwa saat pengujian, kita memiliki akses ke berbagai parameter dan ambang batas model yang dapat kita konfigurasikan untuk mencapai hasil tertentu. API publik dioptimalkan untuk akurasi maksimum pada kasus umum.

Mari kita mulai dengan hal paling sederhana, yaitu pengenalan wajah menghadap ke depan.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Ya, itu terlalu mudah. Mari kita memperumit tugas, menambah janggut dan beberapa tahun.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Beberapa orang akan mengatakan bahwa ini juga tidak terlalu sulit, karena dalam kedua kasus tersebut seluruh wajah terlihat, dan banyak informasi tentang wajah tersedia untuk algoritme. Oke, mari ubah Tom Hardy menjadi profil. Masalah ini jauh lebih kompleks, dan kami menghabiskan banyak upaya untuk menyelesaikannya dengan sukses sambil mempertahankan tingkat kesalahan yang rendah: kami memilih set pelatihan, memikirkan arsitektur jaringan saraf, mengasah fungsi kerugian, dan meningkatkan pra-pemrosesan. foto.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Mari kita beri hiasan kepala padanya:

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Ngomong-ngomong, ini adalah contoh situasi yang sangat sulit, karena wajahnya sangat tertutup, dan di foto bawah juga ada bayangan dalam yang menyembunyikan matanya. Dalam kehidupan nyata, seringkali orang mengubah penampilannya dengan bantuan kacamata hitam. Mari kita lakukan hal yang sama dengan Tom.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Oke, mari kita coba memasukkan foto-foto dari berbagai usia, dan kali ini kita akan bereksperimen dengan aktor yang berbeda. Mari kita ambil contoh yang jauh lebih kompleks, di mana perubahan terkait usia sangat terlihat jelas. Situasinya tidak terlalu mengada-ada, cukup sering terjadi ketika Anda perlu membandingkan foto di paspor dengan wajah pemiliknya. Lagi pula, foto pertama ditambahkan ke paspor ketika pemiliknya berusia 20 tahun, dan pada usia 45 tahun seseorang dapat banyak berubah:

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Menurut Anda, apakah spesialis utama dalam misi mustahil tidak banyak berubah seiring bertambahnya usia? Saya pikir bahkan beberapa orang akan menggabungkan foto atas dan bawah, anak laki-laki itu telah banyak berubah selama bertahun-tahun.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Jaringan saraf lebih sering mengalami perubahan tampilan. Misalnya, terkadang wanita dapat mengubah citranya secara drastis dengan bantuan kosmetik:

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Sekarang mari kita buat tugas ini lebih rumit lagi: misalkan bagian wajah yang berbeda dicakup dalam foto yang berbeda. Dalam kasus seperti ini, algoritme tidak dapat membandingkan seluruh sampel. Namun, Vision menangani situasi seperti ini dengan baik.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Ngomong-ngomong, bisa ada banyak wajah dalam sebuah foto; misalnya, lebih dari 100 orang bisa muat dalam satu foto umum sebuah aula. Ini adalah situasi yang sulit untuk jaringan saraf, karena banyak wajah dapat disinari secara berbeda, beberapa di antaranya tidak fokus. Namun, jika foto diambil dengan resolusi dan kualitas yang memadai (setidaknya 75 piksel per persegi menutupi wajah), Vision akan dapat mendeteksi dan mengenalinya.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Keunikan foto-foto reportase dan gambar-gambar dari kamera pengintai adalah bahwa orang sering kali menjadi kabur karena tidak fokus atau sedang bergerak pada saat itu:

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Selain itu, intensitas pencahayaan dapat sangat bervariasi dari satu gambar ke gambar lainnya. Hal ini juga sering kali menjadi batu sandungan; banyak algoritme mengalami kesulitan besar dalam memproses gambar yang terlalu gelap dan terlalu terang dengan benar, apalagi mencocokkannya secara akurat. Izinkan saya mengingatkan Anda bahwa untuk mencapai hasil ini, Anda perlu mengonfigurasi ambang batas dengan cara tertentu; fitur ini belum tersedia untuk umum. Kami menggunakan jaringan saraf yang sama untuk semua klien; jaringan ini memiliki ambang batas yang sesuai untuk sebagian besar tugas praktis.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Kami baru-baru ini meluncurkan model versi baru yang mengenali wajah orang Asia dengan akurasi tinggi. Ini dulunya adalah masalah besar, yang bahkan disebut rasisme “pembelajaran mesin” (atau “jaringan saraf”). Jaringan saraf Eropa dan Amerika mengenali wajah Kaukasia dengan baik, namun dengan wajah Mongoloid dan Negroid, situasinya jauh lebih buruk. Mungkin, di Tiongkok situasinya justru sebaliknya. Ini semua tentang kumpulan data pelatihan yang mencerminkan tipe orang dominan di negara tertentu. Namun, situasinya berubah; saat ini masalah tersebut tidak begitu akut. Penglihatan tidak menjadi masalah bagi orang-orang dari ras yang berbeda.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Pengenalan wajah hanyalah salah satu dari banyak penerapan teknologi kami; Penglihatan dapat dilatih untuk mengenali apa pun. Misalnya pelat nomor, termasuk dalam kondisi sulit algoritma: sudut tajam, kotor dan pelat nomor sulit terbaca.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

2. Kasus penggunaan praktis

2.1. Kontrol akses fisik: ketika dua orang menggunakan pass yang sama

Dengan bantuan Vision, Anda dapat menerapkan sistem pencatatan kedatangan dan keberangkatan karyawan. Sistem tradisional berdasarkan tiket elektronik memiliki kelemahan yang jelas, misalnya, Anda dapat melewati dua orang dengan menggunakan satu lencana. Jika sistem kontrol akses (ACS) dilengkapi dengan Vision, sistem ini akan mencatat dengan jujur ​​siapa yang datang/pergi dan kapan.

2.2. Pelacakan waktu

Kasus penggunaan Vision ini terkait erat dengan kasus penggunaan Vision sebelumnya. Jika Anda melengkapi sistem akses dengan layanan pengenalan wajah kami, sistem ini tidak hanya dapat mendeteksi pelanggaran kontrol akses, namun juga mencatat keberadaan sebenarnya karyawan di gedung atau fasilitas. Dengan kata lain, Vision akan membantu Anda dengan jujur ​​memperhitungkan siapa yang datang bekerja dan pulang pada jam berapa, dan siapa yang bolos kerja sama sekali, bahkan jika rekan-rekannya melindunginya di depan atasannya.

2.3. Analisis Video: Pelacakan dan Keamanan Orang

Dengan melacak orang menggunakan Vision, Anda dapat menilai secara akurat lalu lintas sebenarnya di area perbelanjaan, stasiun kereta api, lorong, jalan raya, dan banyak tempat umum lainnya. Pelacakan kami juga dapat sangat membantu dalam mengontrol akses, misalnya ke gudang atau gedung kantor penting lainnya. Dan tentu saja, melacak orang dan wajah membantu memecahkan masalah keamanan. Menangkap seseorang mencuri dari toko Anda? Tambahkan PersonID miliknya, yang dikembalikan oleh Vision, ke daftar hitam perangkat lunak analisis video Anda, dan lain kali sistem akan segera memperingatkan keamanan jika jenis ini muncul lagi.

2.4. Dalam perdagangan

Bisnis ritel dan berbagai jasa tertarik pada pengenalan antrian. Dengan bantuan Vision, Anda dapat mengenali bahwa ini bukanlah kerumunan orang secara acak, melainkan antrian, dan menentukan panjangnya. Lalu sistem memberi tahu mereka yang bertanggung jawab tentang antrian sehingga mereka dapat mengetahui situasinya: apakah ada masuknya pengunjung dan pekerja tambahan perlu dipanggil, atau ada yang malas melakukan tugas pekerjaannya.

Tugas menarik lainnya adalah memisahkan karyawan perusahaan di aula dari pengunjung. Biasanya, sistem dilatih untuk memisahkan objek dengan pakaian tertentu (dress code) atau dengan ciri khas tertentu (syal bermerek, lencana di dada, dan sebagainya). Hal ini membantu menilai kehadiran dengan lebih akurat (sehingga karyawan tidak “menggembungkan” statistik orang-orang di aula hanya dengan kehadiran mereka).

Dengan menggunakan pengenalan wajah, Anda juga dapat mengevaluasi audiens Anda: apa loyalitas pengunjung, berapa banyak orang yang kembali ke tempat Anda dan berapa frekuensinya. Hitung berapa banyak pengunjung unik yang datang kepada Anda per bulan. Untuk mengoptimalkan biaya daya tarik dan retensi, Anda juga dapat mengetahui perubahan lalu lintas tergantung pada hari dalam seminggu dan bahkan waktu.

Pemberi waralaba dan perusahaan rantai dapat memesan penilaian foto terhadap kualitas branding berbagai gerai ritel: keberadaan logo, tanda, poster, spanduk, dan sebagainya.

2.5. Dengan transportasi

Contoh lain dalam memastikan keamanan menggunakan analisis video adalah mengidentifikasi barang-barang terbengkalai di aula bandara atau stasiun kereta api. Penglihatan dapat dilatih untuk mengenali objek dari ratusan kelas: perabot, tas, koper, payung, berbagai jenis pakaian, botol, dan sebagainya. Jika sistem analisis video Anda mendeteksi objek tanpa pemilik dan mengenalinya menggunakan Vision, sistem tersebut akan mengirimkan sinyal ke layanan keamanan. Tugas serupa dikaitkan dengan deteksi otomatis situasi yang tidak biasa di tempat umum: seseorang merasa sakit, atau seseorang merokok di tempat yang salah, atau seseorang terjatuh di rel, dan seterusnya - semua pola ini dapat dikenali oleh sistem analisis video. melalui Visi API.

2.6. Aliran dokumen

Aplikasi Vision masa depan menarik lainnya yang sedang kami kembangkan adalah pengenalan dokumen dan penguraian otomatisnya ke dalam database. Daripada memasukkan secara manual (atau lebih buruk lagi, memasukkan) seri, nomor, tanggal penerbitan, nomor rekening, rincian bank, tanggal dan tempat lahir dan banyak data formal lainnya yang tak ada habisnya, Anda dapat memindai dokumen dan secara otomatis mengirimkannya melalui saluran aman melalui API ke cloud, tempat sistem akan mengenali dokumen-dokumen ini dengan cepat, menguraikannya, dan mengembalikan respons dengan data dalam format yang diperlukan untuk masuk secara otomatis ke dalam database. Saat ini Vision sudah mengetahui cara mengklasifikasikan dokumen (termasuk PDF) - membedakan antara paspor, SNILS, NPWP, akta kelahiran, akta nikah dan lain-lain.

Tentu saja, jaringan saraf tidak mampu menangani semua situasi ini secara langsung. Dalam setiap kasus, model baru dibangun untuk pelanggan tertentu, banyak faktor, nuansa dan persyaratan diperhitungkan, kumpulan data dipilih, dan iterasi pelatihan, pengujian, dan konfigurasi dilakukan.

3. Skema operasi API

“Gerbang masuk” Vision bagi pengguna adalah REST API. Ia dapat menerima foto, file video, dan siaran dari kamera jaringan (aliran RTSP) sebagai masukan.

Untuk menggunakan Vision, Anda memerlukan register di layanan Solusi Cloud Mail.ru dan menerima token akses (client_id + client_secret). Otentikasi pengguna dilakukan menggunakan protokol OAuth. Data sumber di badan permintaan POST dikirim ke API. Dan sebagai tanggapan, klien menerima hasil pengenalan dari API dalam format JSON, dan responsnya terstruktur: berisi informasi tentang objek yang ditemukan dan koordinatnya.

Dengan janggut, kacamata hitam dan profil: situasi sulit untuk penglihatan komputer

Contoh jawaban

{
   "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 berisi parameter keangkeran yang menarik - ini adalah "kesejukan" bersyarat dari sebuah wajah dalam sebuah foto, dengan bantuannya kami memilih bidikan wajah terbaik dari urutannya. Kami melatih jaringan saraf untuk memprediksi kemungkinan sebuah foto akan disukai di jejaring sosial. Semakin bagus kualitas fotonya dan semakin banyak senyum di wajahnya, semakin besar kehebatannya.

API Vision menggunakan konsep yang disebut ruang. Ini adalah alat untuk membuat kumpulan wajah yang berbeda. Contoh spasi adalah daftar hitam putih, daftar pengunjung, karyawan, klien, dll. Untuk setiap token di Vision, Anda dapat membuat hingga 10 ruang, setiap ruang dapat berisi hingga 50 ribu PersonID, yaitu hingga 500 ribu per token. Apalagi jumlah token per akun tidak dibatasi.

Saat ini API mendukung metode deteksi dan pengenalan berikut:

  • Kenali/Atur - deteksi dan pengenalan wajah. Secara otomatis menetapkan PersonID untuk setiap orang unik, mengembalikan PersonID dan koordinat orang yang ditemukan.
  • Hapus - menghapus PersonID tertentu dari database orang.
  • Truncate - menghapus seluruh ruang dari PersonID, berguna jika digunakan sebagai ruang pengujian dan Anda perlu mengatur ulang database untuk produksi.
  • Deteksi - deteksi objek, pemandangan, pelat nomor, landmark, antrian, dll. Mengembalikan kelas objek yang ditemukan dan koordinatnya
  • Deteksi dokumen - mendeteksi jenis dokumen tertentu dari Federasi Rusia (membedakan paspor, SNILS, nomor identifikasi pajak, dll.).

Kami juga akan segera menyelesaikan pengerjaan metode OCR, penentuan jenis kelamin, usia dan emosi, serta penyelesaian masalah merchandising, yaitu pengendalian otomatis tampilan barang di toko. Anda dapat menemukan dokumentasi API lengkap di sini: https://mcs.mail.ru/help/vision-api

4. Kesimpulan

Sekarang, melalui API publik, Anda dapat mengakses pengenalan wajah di foto dan video; identifikasi berbagai objek, pelat nomor, landmark, dokumen, dan seluruh pemandangan didukung. Skenario aplikasi - laut. Ayo, uji layanan kami, atur tugas yang paling rumit. 5000 transaksi pertama gratis. Mungkin itu akan menjadi “bahan yang hilang” untuk proyek Anda.

Anda dapat langsung mengakses API setelah registrasi dan koneksi. Visi. Semua pengguna Habra menerima kode promosi untuk transaksi tambahan. Silakan tuliskan kepada saya alamat email yang Anda gunakan untuk mendaftarkan akun Anda!

Sumber: www.habr.com

Tambah komentar