Pembaca yang terhormat! Seperti yang pernah kami janjikan, berikut adalah catatan yang mungkin bermanfaat (semoga saja) tentang Cara Mengevaluasi Perangkat Lunak Pengenalan Wajah, atas nama tim riset rekayasa perangkat lunak dan biometrik kami.

Pendahuluan

Pengenalan wajah dengan jaringan neural baru-baru ini mendapat banyak perhatian dari sektor bisnis dan pemerintah, karena jelas akan membawa berbagai keuntungan.
Kami di NtechLab banyak mendapatkan pertanyaan, permintaan tes, dan proyek percontohan berdasarkan teknologi mutakhir dan teknik pengenalan wajah kami.

Tolok ukur algoritme perangkat lunak pengenalan wajah bisa menjadi proses rumit yang memiliki banyak potensi ‘celah' atau kekurangan. Kami menemukan bahwa terkadang orang-orang mengalami kesulitan mewujudkan tujuan dan ide mereka ke dalam persyaratan perangkat lunak. Akibatnya, mereka memilih alat yang tidak tepat untuk menyelesaikan tugas yang ada, dan potensi manfaatnya tidak terealisasi.

Kami memutuskan untuk memublikasikan memo ini dengan tujuan membantu pelanggan agar lebih melek dengan banyak bahasa pemrograman dan angka mentah seputar metode dan teknik teknologi pengenalan wajah yang akurat.
Tujuan kami adalah menjelaskan konsep inti dengan cara yang sederhana dan ringkas, serta untuk menjembatani antara pola pikir bisnis dan teknis yang nantinya akan menghasilkan keputusan berbasis data yang lebih baik dan pemahaman yang tepat tentang perangkat lunak pengenalan wajah dalam skenario penggunaan di dunia nyata.

Pemanfaatan dari teknologi pengenalan wajah

Istilah «pengenalan wajah» mungkin mencakup sejumlah tugas yang terpisah, seperti mendeteksi wajah manusia dalam foto atau streaming video, pengenalan jenis kelamin, perkiraan usia, mengidentifikasi seseorang di beberapa gambar, dan memverifikasi apakah dua foto yang berbeda adalah orang yang sama.
Dalam catatan terakhir ini, kita akan fokus pada dua tugas terakhir, yaitu sebagai fungsi identifikasi dan verifikasi.

Salah satu cara umum untuk mengatasi masalah ini adalah dengan mengekstrak deskriptor yang dibuat secara khusus, yang sering disebut vektor karakteristik, dari citra wajah. Identifikasi kemudian dapat direduksi menjadi pencarian yang disebut «kecocokan terdekat», dan verifikasi dapat dilakukan dengan beberapa aturan keputusan sederhana. Sebagai kombinasi, keduanya dapat mengidentifikasi seseorang dalam suatu foto atau menentukan apakah orang tersebut tidak ada dalam kumpulan foto yang telah disiapkan. Prosedur seperti ini disebut «identifikasi set-terbuka» (Gambar 1).

Untuk mengukur kemiripan antara dua wajah, seseorang dapat menggunakan fungsi jarak dalam ruang vektor karakteristik. Jarak Euclidean dan kosinus adalah dua fungsi yang paling umum digunakan, tetapi banyak juga pendekatan lain dengan kompleksitas yang berbeda. Fungsi jarak tertentu biasanya tersedia sebagai bagian dari perangkat lunak pengenalan wajah. Pendekatan untuk tujuan identifikasi dan verifikasi berbeda dari segi hal hasil yang diharapkan, dan metrik kinerja yang berbeda digunakan untuk mengevaluasi algoritme pengenalan wajah. Detail metrik dan makna praktisnya dijelaskan di bagian selanjutnya. Selain metrik tersebut, set data dengan label yang sesuai juga harus tersedia.

Gbr. 1: Tugas pengenalan wajah. Baris bagian atas adalah identifikasi set terbuka (dengan subjek target kemungkinan tidak ada dalam data), baris kedua adalah identifikasi set tertutup (set data berisi subjek target), dan baris ketiga adalah verifikasi sepasang gambar.

Evaluasi

Set Data

Hampir semua metode pengenalan wajah modern banyak menggunakan pembelajaran mesin (atau pembelajaran mendalam) di seluruh prosesnya.
Sistem ini dilatih pada set data berukuran besar yang berisi gambar berlabel, dan kualitas serta sifat set data tersebut berpengaruh besar pada kinerja algoritme.
Makin baik sumber datanya, makin tinggi kecocokan yang dapat dideteksi oleh perangkat lunak.

Cara alami untuk meneliti dan mengukur secara kuantitatif apakah algoritme yang berbeda untuk pengenalan wajah memenuhi harapan dan seberapa tinggi keakuratannya adalah dengan melakukan pengujian pada set data yang dimiliki.
Sangat penting untuk memilih set data yang sesuai untuk pengujian.
Idealnya, kita memiliki set data terpisah untuk tujuan pengujian, yang harus semirip mungkin dengan skenario penggunaan.

Ini berarti kita harus berusaha meniru semaksimal mungkin jenis kameranya, kondisi pembuatan film, usia, jenis kelamin dari orang-orang yang muncul dalam set data pengujian. Mengadopsi set data yang mirip dengan data sebenarnya yang akan diproses oleh perangkat lunak dapat membuat hasil pengujian lebih tepercaya dan tepat. Tidak ada salahnya untuk menginvestasikan waktu dan biaya untuk mengumpulkan dan memberi label set data yang paling dekat dengan suatu kasus bisnis, tetapi dalam hal ini akan sulit dilakukan, karena kita harus menggunakan set data publik dari wajah banyak orang.

Tolok ukur pengenalan wajah publik yang umum meliputi LFW dan MegaFace.
Set data LFW hanya berisi 6.000 pasang wajah, sehingga tidak cocok untuk banyak aplikasi praktik: kita tidak dapat menggunakannya untuk mengukur tingkat kesalahan yang cukup rendah, ini akan kami tunjukkan di bagian selanjutnya. Set data MegaFace berisi lebih banyak gambar dan sesuai untuk menguji aplikasi pengenalan wajah dalam skala besar. Sesi pelatihan dan pengujian dari set data ini tersedia secara gratis, jadi kita harus berhati-hati saat menggunakannya untuk pengujian, alasannya akan yang dibahas di bagian berikutnya.

Pilihan lainnya adalah menggunakan hasil tes yang disediakan oleh pihak ketiga yang tepercaya. Tes ini dilakukan oleh personel yang terampil menangani set data pribadi, sehingga kualitasnya dapat diandalkan. Salah satu contohnya adalah NIST Face Recognition Vendor Test (FRVT) Ongoing (kelemahan dari pendekatan ini adalah kumpulan data penguji mungkin tidak cocok dengan skenario penggunaan Anda.)

Overfitting

Sebelumnya sudah kita bahas, bahwa pembelajaran mesin dan penginderaan komputer adalah komponen utama dari teknik deteksi wajah dan metode pengenalan wajah modern. Salah satu fenomena umum (dan menyedihkan) yang terkait dengan pembelajaran mesin disebut «overfitting», ini terjadi ketika perangkat lunak memiliki kinerja yang baik pada data yang dilatihnya tetapi kehilangan keunggulan ini pada set data baru.

Untuk mengilustrasikan konsep ini dengan contoh konkret: misalnya pelanggan menginginkan sistem yang membuka pintu hanya untuk orang-orang tertentu, melalui verifikasi wajah. Untuk tujuan ini, pelanggan mengumpulkan foto orang-orang yang akan diberi akses masuk, kemudian melatih algoritme agar mampu membedakan orang-orang ini dengan orang lain. Setelah pengujian lapangan berjalan dengan baik dan sistem diterapkan ke dalam produksi, penghematan dari otomatisasi titik akses tersebut dapat diinvestasikan ke tujuan bisnis lainnya.

Tiba-tiba, sistem gagal memberikan akses untuk karyawan baru. Perangkat lunak sudah bisa mengenali karyawan lama, tetapi tidak ada yang mengujinya pada data karyawan baru. Ini adalah contoh overfitting yang kami lebih-lebihkan, tetapi seperti itulah gambaran yang dimaksud dari konsep overfitting.

Metodologi deteksi overfitting tidak sesederhana itu; pertimbangkan skenario di mana perangkat lunak pengenalan wajah dilatih pada set data yang sebagian besar terdiri dari orang-orang dari satu etnis tertentu. Ketika perangkat lunak biometrik ini digunakan di wilayah multinasional, akurasi pengenalan wajah sistem kemungkinan besar akan menurun. Hal yang umum dalam beberapa contoh di atas adalah harapan yang terlalu tinggi pada kemampuan perangkat lunak karena pengujian yang tidak tepat. Kelemahan dari kinerja utama terletak pada data yang digunakan untuk melatihnya, dan bukan pada data yang akan ditemuinya nanti di dunia nyata.

Jadi bagaimana kita bisa menghindari situasi ini? Kuncinya: jangan menggunakan set data pelatihan perangkat lunak untuk tujuan pengujian. Cara paling aman dan tercepat untuk melakukan riset adalah memiliki set data pengujian lain yang tidak terlihat oleh vendor perangkat lunak. Jika Anda akan menguji set data publik, pastikan vendor tidak menggunakannya selama pelatihan dan kalibrasi. Tanyakan kepada mereka sumber data apa yang mereka gunakan untuk pelatihan, lalu pilih set data yang tidak muncul dalam daftar peringkat mereka. Periksa set data sebelum pengujian, dan pertimbangkan apa persamaannya dengan data yang akan dihadapi perangkat lunak pada tahap produksi.

Metrik

Setelah set data pengujian dipilih, kita harus mempertimbangkan pilihan metrik pengujian yang sesuai. Metrik adalah fungsi praktis yang menggunakan output perangkat lunak (baik identifikasi atau verifikasi) untuk menghasilkan satu nomor yang digunakan sebagai ukuran dari keseluruhan kinerja sistem pada set data yang diberikan. Satu nomor ini akan memudahkan pengambil keputusan untuk membandingkan vendor secara kuantitatif dan menyajikan hasil pengujian secara ringkas. Di bagian ini, kita akan membahas metrik yang biasa digunakan dalam pengenalan wajah, dan signifikansinya untuk bisnis.

Verifikasi

Verifikasi wajah dapat dipahami sebagai keputusan biner: ya, apakah dua foto adalah orang yang sama, ataukah foto tersebut tidak ada kecocokan. Untuk memahami metrik yang digunakan untuk verifikasi, ada baiknya meluangkan waktu untuk mempelajari sumber kesalahan dari kasus berikut ini.

Kita punya dua prediksi «terima» atau «tolak» dari perangkat lunak dan dua hasil aktual «terima» atau «tolak», sehingga mudah untuk melihat bahwa ada 4 kemungkinan hasil secara total:

Gbr. 2 Jenis kesalahan. Warna latar belakang mengacu pada nilai kebenaran dasar (biru adalah «terima» dan kuning adalah «tolak»), warna kotak pada foto mengacu pada keputusan algoritme (artinya sama, biru adalah «terima» dan kuning adalah «tolak»)"reject")

Dari hasil di atas, dua adalah benar dan dua lainnya memiliki sebutan yang berbeda.
Kesalahan Tipe I disebut sebagai «terima palsu», «positif palsu», dan «kecocokan palsu», sedangkan Tipe II disebut «tolak palsu», «negatif palsu», dan «ketidakcocokan palsu».

Tabel 1. Kolom mewakili keputusan algoritme (biru terima, kuning tolak) dan baris mewakili kebenaran dasar dalam skema warna yang sama. Keputusan yang benar dari algoritme memiliki latar belakang hijau, sedangkan keputusan yang salah dikodekan dengan warna merah.

Ketika kita menambahkan jumlah kesalahan dalam set data dan membaginya dengan ukuran set data, akan diperoleh tingkat terima palsu (false accept rate/FAR) dan tingkat tolak palsu (false reject rate/FRR). Dalam skenario keamanan, «positif palsu» berhubungan dengan membiarkan masuk untuk orang yang salah, sementara «negatif palsu» berarti menolak akses masuk untuk orang yang benar. Kesalahan ini dipisahkan karena masing-masing memiliki konsekuensi biaya bisnis yang berbeda. Kembali ke contoh keamanan, kesalahan negatif palsu mungkin memerlukan petugas sekuriti memeriksa ulang ID Karyawan. Tidak sengaja membiarkan penyusup masuk dapat menyebabkan konsekuensi yang jauh lebih buruk.

Mengingat bahwa biaya kesalahan berbeda di antara berbagai aplikasi dan skenario penggunaan, vendor perangkat lunak pengenalan wajah sering kali menyediakan cara tercepat untuk menyesuaikan algoritme guna meminimalkan jenis kesalahan tertentu.
Untuk mencapai tujuan ini, algoritme mungkin mengeluarkan nilai kontinu yang mencerminkan tingkat keyakinannya, sebagai lawan dari keputusan biner ya/tidak.
Pengguna dapat menetapkan ambang batas untuk meminimalkan tingkat kesalahan tertentu. Nilai ini dapat disebut keyakinan, kemiripan, atau kepastian, tetapi kita akan menyebutnya sebagai keyakinan di sini untuk memudahkan.

Untuk mengilustrasikan konsep ini: pertimbangkan set data kecil yang terdiri dari 3 foto berikut. Foto 1 dan 2 adalah orang yang sama, sedangkan foto 3 adalah orang lain.
Perangkat lunak akan mengeluarkan nilai keyakinan berikut untuk masing-masing dari 3 pasangan yang mungkin:

Tabel 2. Contoh nilai keyakinan untuk tiga foto di atas

Kami telah memilih nilai sedemikian rupa sehingga tidak mungkin untuk mendapatkan semua pasangan nilai dengan benar pada ambang batas berapa pun. Memilih ambang batas di bawah 0,6 akan menghasilkan dua terima palsu (satu untuk pasangan 2−3, satu lagi untuk pasangan 1−3). Kita jelas bisa melakukan lebih baik dari itu.

Memilih apa pun antara 0,6 dan 0,85 akan membuat pasangan 1−3 sebagai tolak benar, sehingga 1−2 akan menjadi terima benar dan 2−3 sebagai terima palsu. Rentang 0,85−0,9 akan mengubah 1−2 menjadi tolak palsu. Ambang batas di atas 0,9 akan menghasilkan dua tolak benar (1−3 dan 2−3) dan satu tolak palsu (1−2). Oleh karena itu, dua nilai ambang batas yang paling menarik adalah 0,6−0,85, yang menghasilkan satu terima palsu (2−3) dan ambang batas di atas 0,9 (yang menghasilkan tolak palsu dari pasangan 1−2). Contoh ini menunjukkan bagaimana pelanggan dapat mengukur risikonya tergantung pada biaya dari setiap kesalahan, dan meminimalkannya dengan memilih ambang batas yang sesuai. Rentang untuk ambang batas agak longgar untuk skenario spesifik ini karena set datanya sangat kecil dan nilai kepastian diambil dengan cara ini. Untuk set data nyata yang lebih besar, kita dapat menetapkan batasan yang jauh lebih ketat pada ambang batas tingkat terima/tolak. Vendor sering memberikan beberapa nilai default ambang batas pada beberapa FAR tetap, dan nilai ini dihitung sebelumnya dengan cara yang sama seperti yang telah kami jelaskan di atas.

Salah satu keuntungan dari penurunan FAR adalah peningkatan jumlah pasangan foto positif yang diperlukan untuk mengukur ambang batas secara akurat.
Kita membutuhkan setidaknya 1.000 pasang untuk mengukur FAR=0,001, dan FAR=10−6 membutuhkan lebih dari 1 juta pasang. Mengumpulkan set data sebesar ini merupakan tantangan tersendiri, sehingga pelanggan yang tertarik dengan FAR yang sangat rendah dapat mempertimbangkan tolok ukur publik seperti NIST Face Recognition Vendor Test (FRVT) atau MegaFace. Ingat, kita harus menangani set data ini dengan hati-hati, karena set data pelatihan dan pengujian tersedia secara gratis dan kemungkinan dapat terjadi overfitting (lihat di atas).

Kurva ROC

Jenis kesalahan berbeda dalam hal biaya, dan pelanggan memiliki sarana untuk mengontrol keseimbangan antara jenis kesalahan. Untuk melakukannya, kita harus mempelajari berbagai nilai ambang batas. Ini bisa sangat melelahkan.
Salah satu mekanisme praktis yang digunakan dalam visualisasi kinerja algoritme pada sejumlah nilai FAR yang berbeda disebut kurva karakteristik operasi penerima (receiver operating characteristic/ROC). Mari kita lihat bagaimana kita dapat menghitung dan menganalisis kurva ROC.

Nilai keyakinan (dan juga ambang batas) dapat berupa sejumlah nilai dalam interval tetap. Dengan kata lain, nilai ini memiliki batas atas dan bawah; mari kita asumsikan bahwa interval ini adalah 0−1. Sekarang kita dapat melakukan banyak evaluasi dengan nilai ambang batas yang berbeda, mulai dari 0 dan meningkatkan ambang batas dengan jumlah tetap hingga sama dengan 1. Untuk setiap nilai ambang batas, kita mencatat FAR dan tingkat terima benar (true accept rate/TAR) (bisa juga menggunakan misalnya nilai FAR dan FRR). Kita kemudian memplot setiap titik sehingga FAR sesuai dengan koordinat X dan TAR sesuai dengan koordinat Y.

Gbr 3. Contoh kurva ROC

Sangat mudah untuk melihat bahwa titik pertama memiliki koordinat 1 dan 1. Dengan ambang batas 0, kita menerima semua pasangan dan tidak menolak pasangan apa pun.
Demikian pula, titik terakhir adalah 0 dan 0. Dengan ambang batas 1, kita tidak menerima pasangan apa pun dan menolak semua pasangan. Dengan dua titik ini sudah ditetapkan, kurva biasanya akan cembung ke atas. Bisa kita lihat bahwa kurva terburuk ada di titik pada diagonal plot dan sesuai dengan tebakan acak. Di sisi lain, kurva terbaik yang mungkin membentuk segitiga dengan titik (0,0), (0,1), dan (1,1). Ini jarang terlihat dalam praktiknya pada set data yang cukup besar.

Gbr 4. Kurva mirip ROC dari peringkat NIST Face Recognition Vendor Test

Kita juga dapat menghitung dan memplot kurva mirip ROC dengan metrik/kesalahan yang berbeda pada setiap sumbu. Sebagai contoh, perhatikan Gambar 4. Di sini penyelenggara NIST FRVT memilih untuk memplot tingkat ketidakcocokan palsu (False non-match rate/FRR) sebagai fungsi dari tingkat kecocokan palsu (false match rate/FAR). Dalam hal ini, kurva berkinerja terbaik lebih rendah dan lebih dekat ke kiri, yang sesuai dengan FRR dan FAR yang lebih rendah. Variasi tersebut tidak akan membingungkan pembaca, yang sudah mengetahui jenis kesalahan, hanya memang perlu waktu untuk membaca dan memahami nama sumbunya.

Plot ini memudahkan untuk melihat seberapa baik kinerja algoritme pada FAR yang dipilih; kita hanya perlu menemukan titik yang cocok pada kurva dan nilai TAR yang sesuai. Ada juga cara untuk mengekspresikan «kelebihan» dari kurva ROC dalam satu angka; cukup menghitung area di bawah kurva dengan nilai terbaik 1, dan tebakan acak yang sesuai dengan 0,5. Angka ini disebut ROC AUC (Area Under Curve).
Perlu dicatat bahwa meskipun ROC AUC membuat asumsi implisit bahwa jenis kesalahan yang berbeda memiliki biaya yang sama, namun ini tidak selamanya benar dalam aplikasi praktiknya. Kita sebaiknya mempelajari bentuk kurva, memberikan perhatian khusus pada nilai-nilai FAR yang sesuai dengan kebutuhan bisnis.

Identifikasi

Tugas lain yang dilakukan dalam metodologi pengenalan wajah adalah identifikasi, yang pada dasarnya mencoba untuk menemukan orang tertentu di antara sejumlah foto wajah. Hasilnya diurutkan berdasarkan nilai keyakinan, dengan item yang paling meyakinkan akan muncul di urutan teratas algoritme. Bergantung pada apakah diketahui atau tidak bahwa orang yang menjadi target berada dalam set tersebut, identifikasi dapat dibagi menjadi dua subkategori: identifikasi set tertutup (orang tersebut ada di dalam set) dan identifikasi set terbuka (orang tersebut mungkin atau mungkin tidak) berada di dalam set).

Metrik yang tepercaya dan dapat diinterpretasikan untuk mengukur identifikasi set tertutup adalah akurasi. Singkatnya, akurasi mengukur rata-rata berapa kali subjek target muncul di antara hasil pencarian.

Mari kita lihat bagaimana cara kerjanya dalam praktiknya. Seperti biasa, kita mulai dengan menentukan persyaratan bisnis. Bayangkan kita memiliki halaman web dengan hingga 10 hasil pencarian dapat ditampilkan. Oleh karena itu, kita harus mengukur berapa kali orang yang tepat ditemukan di antara sepuluh hasil pencarian teratas.
Ini disebut akurasi N Teratas, dan dalam skenario spesifik ini, N sama dengan 10.

Untuk setiap contoh riset, kita menyisihkan foto target dari orang tertentu untuk ditemukan dan kumpulan galeri yang akan kita telusuri, yang berisi setidaknya satu foto lain dari orang yang sama. Kemudian kita mengambil sepuluh hasil pencarian teratas dan memeriksa apakah orang yang menjadi target ada di antara hasil pencarian tersebut. Untuk mendapatkan nilai akurasi, tentukan jumlah percobaan ketika orang tersebut ditemukan, kemudian dibagi dengan jumlah total percobaan.

Quality assessment of face recognition algorithms
Gbr 5. Contoh hasil identifikasi. Dalam hal ini, subjek target muncul di posisi 2, jadi akurasi 1 Teratas adalah 0 sedangkan peringkat 2 Teratas dan seterusnya adalah 1

Identifikasi set terbuka terdiri dari pengambilan foto yang paling mendekati sebagai subjek target, kemudian memutuskan apakah memang benar orang tersebut ada atau tidak berdasarkan nilai keyakinan. Identifikasi set terbuka dapat dilihat sebagai superposisi dari identifikasi dan verifikasi set tertutup, dan semua diskusi tentang evaluasi tugas verifikasi berlaku di sini. Jelas bahwa seseorang dapat melakukan identifikasi set terbuka dengan memverifikasi foto target dengan setiap gambar lain di set pencarian. Alasan orang menggunakan identifikasi set tertutup di sini adalah efisiensi; beberapa perangkat lunak pengenalan wajah sudah dilengkapi dengan algoritme pencarian tercepat yang mampu menelusuri jutaan vektor karakteristik dalam waktu milidetik. Melakukan banyak verifikasi yang berbeda akan memakan lebih banyak waktu.

Studi kasus

Untuk mengilustrasikan topik di atas, mari kita lihat beberapa contoh bagaimana kita dapat mengevaluasi perangkat lunak pengenalan wajah manusia untuk kasus penggunaan dalam praktiknya.

Toko retail

Kita asumsikan toko retail ingin meningkatkan program loyalitasnya dan menyingkirkan para pencuri dengan memanfaatkan sistem biometrik. Kedua tugas tersebut hampir sama, masih menyangkut pengenalan wajah yang akurat. Tujuan dari proyek ini adalah deteksi dini dan pengenalan pelanggan setia atau pencuri, idealnya ini dilakukan di pintu masuk toko, dengan membandingkan foto wajah dan melaporkan kepada staf penjualan atau petugas sekuriti sesuai kebutuhan, yang juga akan membantu meningkatkan layanan toko.

Misalkan ada 100 orang dalam daftar pelanggan setia. Ini dapat dilihat sebagai contoh identifikasi set terbuka. Setelah mempertimbangkan biaya, departemen pemasaran memutuskan setiap hari mereka hanya metolerir: hanya satu kesalahan bahwa pengunjung salah diidentifikasi sebagai pelanggan setia. Dengan asumsi bahwa toko kedatangan rata-rata 1.000 pengunjung setiap hari, masing-masing harus dicocokkan dengan daftar 100 pelanggan setia. FAR yang diperlukan dapat diperkirakan sebagai 1/(1000*100) = 10−5, yang setara dengan kurang lebih satu pelanggan per hari salah diidentifikasi sebagai pelanggan setia.

Setelah tingkat kesalahan ditetapkan, kita harus mempertimbangkan untuk memilih set data yang tepat untuk pengujian. Salah satu tindakan yang baik adalah memasang kamera di lokasi yang diinginkan (vendor pengenalan wajah dapat membantu merekomendasikan perangkat dan lokasinya). Dengan mencocokkan transaksi dari pemegang kartu loyalitas dengan foto dari kamera dan memfilter hasilnya secara manual, karyawan toko dapat membuat set data untuk pasangan positif. Tidak ada salahnya juga menambahkan sekelompok foto pengunjung acak (satu gambar per orang). Jumlah fotonya kira-kira harus sama dengan jumlah rata-rata harian pengunjung toko. Dengan menggabungkan foto pelanggan setia dan foto pengunjung acak, kita dapat membuat set data uji dari pasangan positif dan negatif.

Seribu pasangan positif sudah cukup untuk tingkat deteksi yang diinginkan. Pasangan negatif dapat dihasilkan dengan menggabungkan pelanggan setia yang berbeda dan pengunjung acak. Sangat mudah untuk mendapatkan sebanyak 100.000 pasangan negatif dengan cara ini.

Langkah selanjutnya adalah menjalankan (atau meminta vendor untuk menjalankan) perangkat lunak pengenalan wajah dan memperoleh skor keyakinan antara semua pasangan foto dalam set data. Setelah siap, Anda dapat memplot kurva ROC untuk memastikan bahwa jumlah pelanggan setia (TAR) yang dikenali dengan benar pada FAR=10−5 memenuhi target bisnis Anda.

E-gate bandara

Bandara modern melayani puluhan juta penumpang setiap tahun, ini berarti sekitar 300.000 orang lolos pemeriksaan kontrol ID setiap hari. Mengotomatisasi kontrol akses ini dapat menghemat banyak biaya untuk bandara. (Di sisi lain, biaya yang dikeluarkan karena membiarkan seorang penyusup masuk juga sangat tinggi, dan manajemen bandara ingin menkan risiko ini menjadi serendah mungkin.) FAR 10^-7 kelihatannya masuk akal dalam kasus ini. Ini akan menghasilkan rata-rata 10 penyusup per tahun.
Dengan asumsi FRR=0,1 pada titik ini, yang sesuai dengan hasil NtechLab pada set data foto visa pada FAR ini, maka akan menghasilkan 10x lebih cepat dibandingkan pemeriksaan ID manual.

Ini memerlukan set data berisi 10−7 foto. Sayangnya, pengumpulan dan pelabelan set data sebesar ini memakan banyak biaya dan dapat menimbulkan masalah privasi.
Hal ini mungkin menyebabkan proyek semacam itu menjadi investasi jangka panjang yang terlalu mahal untuk beberapa perusahaan. Dalam kasus ini, pilihan yang masuk akal adalah bekerja sama dengan lembaga penegak hukum atau lembaga pemerintah lainnya untuk mendapatkan set data untuk pengujian. Anda dapat mempelajari laporan NIST FRVT, yang menetapkan foto visa sebagai salah satu set data pengujiannya. Manajemen bandara harus memilih vendor berdasarkan evaluasi set data ini dan arus penumpang di bandara tertentu.

Pemasaran Email Tertarget

Sejauh ini kita telah melihat contoh di mana FAR yang rendah menjadi perhatian utama, tetapi tidak hanya berhenti di situ. Bayangkan sebuah iklan di pusat perbelanjaan yang dilengkapi dengan kamera video. Mal ini memiliki program loyalitas dan ingin mengenali pelanggan yang berhenti untuk melihat iklan, mengirim email tertarget dengan diskon dan penawaran yang dipersonalisasi berdasarkan hal yang menarik minat mereka.

Katakanlah biaya pemeliharaan sistem ini adalah USD10 per hari, dan ada 1.000 pelanggan yang datang setiap harinya. Departemen pemasaran memperkirakan bahwa satu email tertarget tersebut akan menghasilkan USD0,0105. Kita ingin mencapai target pelanggan sebanyak mungkin tanpa mengganggu orang lain. Agar investasi iklan dapat terbayar, akurasi target harus sama dengan biaya stan dibagi dengan kelipatan orang-orang yang lewat dan nilai email. Untuk contoh ini, akurasinya = 10 / (1000 * 0, 0105) = 95%. Seseorang dapat memperoleh set data yang mirip dengan contoh «Toko retail», mengukur akurasi seperti yang dijelaskan di bagian «Identifikasi», dan berdasarkan hasilnya, memutuskan apakah perangkat lunak yang diuji akan dapat memenuhi target bisnis.

Pertimbangan praktis

Dukungan video

Dalam bagian ini, kami telah membahas pemrosesan gambar wajah tanpa berfokus pada streaming video. Video dapat dilihat sebagai serangkaian gambar foto berturut-turut, sehingga metrik dan pendekatan pengujian yang berfungsi untuk gambar foto juga berfungsi untuk video. Perlu dicatat bahwa memproses streaming video jauh lebih mahal secara komputasi dan memiliki batasan tambahan pada semua komponen mekanisme pengenalan wajah. Mengukur waktu eksekusi algoritme saat menangani data video. Penghitungan waktu tersebut mudah dilakukan dan tidak dijelaskan dalam dokumen ini.

Kesalahan umum

Di bagian ini, kami ingin membuat daftar masalah umum yang muncul selama pengujian perangkat lunak pengenalan wajah dan memberikan pedoman solusi untuk memperbaikinya.

PENGUJIAN PADA SET DATA YANG TIDAK MEMADAI

Kita harus mempertimbangkan dengan cermat ketika memilih set data yang sesuai untuk mengevaluasi manfaat sistem pengenalan wajah.
Salah satu masalah utama yang perlu dipertimbangkan adalah ukuran set datanya.
Ukuran set data harus dipilih sesuai dengan tujuan bisnis dan nilai FAR/TAR tertentu yang digunakan.
Set data kecil dari beberapa orang yang dikumpulkan di kantor akan memberikan gambaran umum tentang cara menggunakan waktu eksekusi tolok ukur perangkat lunak, atau mencoba kasus penggunaan khusus yang lebih rumit.
Tetapi set data berukuran kecil tidak cukup membantu untuk memperkirakan akurasi algoritme secara keseluruhan.
Oleh karena itu, kita harus menggunakan set data yang cukup besar untuk mengevaluasi akurasinya.

HANYA MENGGUNAKAN SATU AMBANG BATAS UNTUK PENGUJIAN

Terkadang orang menguji perangkat lunak pengenalan wajah pada satu nilai ambang batas tetap (biasanya default) dan hanya mempertimbangkan satu jenis kesalahan. Ini bukan cara yang baik untuk dilakukan karena nilai ambang batas default bervariasi antara vendor yang menggunakan FAR atau TAR yang berbeda. Maka, harus selalu dipertimbangkan antara kedua metrik ini untuk nilai ambang batas yang ditetapkan.

MEMBANDINGKAN HASIL PADA SET DATA YANG BERBEDA

Set data bisa jadi berbeda dalam hal ukuran, kualitas, dan kompleksitasnya, sehingga hasil perangkat lunak pengenalan wajah manusia tidak berbanding lurus dengan set data. Ada kasus yang ‘tidak sengaja' menolak algoritme yang lebih unggul hanya karena diuji pada set data yang lebih menantang daripada milik kompetitor.

MENGANDALKAN SATU SET DATA

Kita harus mencoba menguji algoritme pada beberapa set data. Menggunakan satu set data publik untuk evaluasi adalah ide yang buruk karena kita tidak dapat memastikan bahwa vendor perangkat lunak pengenalan wajah tidak menggunakan set data ini untuk pelatihan atau penyesuaian algoritme. Dalam hal ini, pengujian kemungkinan akan melebih-lebihkan akurasi algoritme. Untungnya, situasi ini dapat dihindari dengan membandingkan kinerja pada beberapa set data yang berbeda.

Kesimpulan

Dalam memo ini, kami telah membahas secara singkat tentang komponen utama dan mekanisme evaluasi algoritme pengenalan wajah: set data, tugas, metrik yang sesuai, dan skenario umum.

Tentunya, ada lebih banyak faktor lain, dan banyak skenario harus ditangani secara terpisah (tim NtechLab akan dengan senang hati membantu Anda).
Namun, kami yakin bahwa setelah Anda membaca catatan ini, Anda akan memiliki pemahaman yang baik tentang konsep-konsep utama, dapat merencanakan pengujian perangkat lunak, menafsirkan hasilnya secara bermakna, dan mengukur pro dan kontra dari berbagai algoritme dalam upaya mencapai berbagai tujuan bisnis.