Pencarian wajah tidak membandingkan gambar. Ia mengubah setiap wajah menjadi deretan angka dengan panjang tetap — sebuah vektor — lalu membandingkan vektor-vektor itu. Dua foto orang yang sama, diambil terpaut bertahun-tahun di ruangan berbeda, menghasilkan vektor yang letaknya berdekatan meski kedua gambar itu hampir tidak berbagi piksel sama sekali.

Memahami empat tahapnya memberi tahu Anda persis mengapa sebagian tangkapan layar langsung berhasil sementara yang lain gagal berapa kali pun Anda mencoba ulang.

Apa yang terjadi di tahap satu, deteksi?

Deteksi menjawab pertanyaan yang lebih sempit daripada dugaan orang: di bagian mana dari gambar ini ada wajah, dan di mana lima titik kuncinya?

Detektor memindai gambar dan mengembalikan, untuk setiap wajah yang ditemukannya, sebuah kotak pembatas ditambah lima koordinat titik acuan — mata kiri, mata kanan, ujung hidung, sudut mulut kiri, sudut mulut kanan. Untuk tahap ini kami memakai YuNet. Belum ada apa pun yang menyangkut identitas; ini murni geometri.

Kalau deteksi gagal, semua yang di hilirnya ikut gagal. Dan deteksi gagal karena alasan yang tidak ada hubungannya dengan kualitas gambar dalam pengertian biasa: tangan menutupi mulut, wajah menyamping penuh, atau wajah yang lebih kecil daripada ukuran minimum detektor.

Apa yang terjadi di tahap dua, penyelarasan?

Penyelarasan memakai lima titik acuan tadi untuk membengkokkan wajah ke posisi kanonis — mata pada satu garis mendatar, pada koordinat tetap, dengan skala tetap.

Langkah inilah yang membuat kepala miring dan kepala menghadap lurus menjadi bisa dibandingkan. Setiap wajah yang masuk ke encoder tiba dalam pose yang sama, ukuran yang sama, dipotong pada area yang sama. Perhatikan apa yang dibuang pemotongan itu: sebagian besar rambut, pakaian, latar belakang, ruangannya. Semua itu bukan bagian dari sinyal identitas.

Ini juga menjelaskan satu kekesalan yang umum. Kalau titik acuannya sedikit meleset — misalnya karena satu mata tertutup — penyelarasan membengkokkan wajah secara keliru, dan vektor yang dihasilkan salah dengan cara yang tampak seperti jawaban yang meyakinkan.

Apa yang terjadi di tahap tiga, pengodean?

Jaringan encoder mengubah wajah yang sudah diselaraskan menjadi vektor berisi 512 angka. Untuk ini kami memakai ArcFace. Vektor itulah deskripsi matematis dari wajah tersebut.

Tujuan pelatihannyalah yang membuatnya berguna: jaringan dilatih agar vektor dari identitas yang sama mengelompok rapat dan vektor dari identitas berbeda saling menjauh. Ia tidak dilatih untuk menggambarkan rupa sebuah wajah; ia dilatih untuk menggambarkan siapa wajah itu.

Tahap Masukan Keluaran Gagal ketika
Deteksi (YuNet) Gambar utuh Kotak + 5 titik acuan Wajah tertutup, terlalu kecil, sudut ekstrem
Penyelarasan Kotak + titik acuan Potongan wajah terstandarisasi Titik acuannya tidak akurat
Pengodean (ArcFace) Potongan terselaraskan Vektor 512 angka Potongannya merosot, buram, atau terkompresi berat
Pembandingan Vektor Daftar berperingkat dengan skor Tidak pernah — ia selalu mengembalikan sesuatu

Baris terakhir itu yang penting, dan pantas mendapat bagiannya sendiri.

Apa yang terjadi di tahap empat, pembandingan?

Pembandingan mengukur kemiripan kosinus antara vektor Anda dan setiap vektor di dalam indeks, lalu mengembalikan yang paling dekat secara berurutan.

Kemiripan kosinus berjalan dari 0 sampai 1 dan menggambarkan sudut antara dua vektor. Pada data kami, ambang yang dikalibrasi untuk cuplikan video adalah 0.40. Di atasnya, sepasang vektor diperlakukan sebagai kemungkinan orang yang sama; di bawahnya, hasilnya adalah derau yang kebetulan paling dekat.

Poin terakhir itu adalah hal yang paling sering disalahpahami tentang pencarian vektor: ia tidak pernah mengembalikan kekosongan. Minta sepuluh wajah terdekat dan ia memberi Anda sepuluh, bahkan ketika orang yang benar sama sekali tidak ada di dalam indeks. Skor adalah satu-satunya hal yang membedakan jawaban sungguhan dari orang asing terdekat yang tersedia. Daftar berperingkat tanpa skor tidak bisa dibaca.

Mengapa indeks yang menentukan apa yang bisa ditemukan?

Karena pembandingan hanya bisa memeringkat apa yang sudah dikodekan. Indeks bukan pencarian atas web; ia himpunan vektor tetap yang dihitung di muka.

Indeks kami memuat 241,792 wajah, dan 2,333 di antaranya tertaut ke aktris bernama, diambil dari sampul dan cuplikan di 106 situs (indeks kami, cuplikan 2026-08). Dua akibatnya langsung mengikuti:

  • Wajah yang ada di dalam indeks tetapi tidak pernah ditautkan ke sebuah nama akan kembali sebagai identitas tanpa nama. Itu lazim — data aktris serupa kami saja memuat 7,004 rujukan ke identitas yang tidak punya nama.
  • Wajah yang sama sekali tidak pernah diindeks tidak bisa dikembalikan pada skor berapa pun. Alatnya tetap akan menunjukkan tebakan terdekatnya.

Batasan yang perlu disebut: sumber kami terkonsentrasi. 2,246 dari 2,333 aktris bernama punya citra representatif yang berasal dari satu situs saja. Karena itu cakupannya mencerminkan apa yang diterbitkan sumber-sumber tersebut, bukan keluaran penuh industri.

Apa bedanya dengan pencarian gambar terbalik?

Pencarian gambar terbalik mencari salinan dari gambar Anda secara utuh. Pencarian wajah mencari identitas yang sama di berbagai gambar berbeda. Keduanya gagal dan berhasil dalam kondisi yang berlawanan.

Pencarian gambar terbalik Pencarian wajah
Membandingkan Sidik jari gambar utuh Vektor wajah
Butuh gambar persis itu ada di internet Ya Tidak
Terbantu oleh pemotongan ke wajah Tidak — malah memburuk Ya — itulah masukannya
Tahan terhadap pencahayaan dan pose berbeda Buruk Memang dirancang begitu
Berfungsi pada bingkai yang Anda tangkap sendiri Tidak Ya

Kalau sebuah alat justru jadi lebih buruk saat Anda memotong ke wajah, alat itu bukan sedang melakukan pencarian wajah. Itu diagnosis satu langkah yang andal.

Pertanyaan terkait


Cara tercepat memahami alurnya adalah dengan melihatnya berjalan. Unggah satu bingkai di sini: deteksi dan penyelarasan terjadi di peramban Anda, hanya area wajah yang sudah dipotong beserta lima titik acuannya yang dikirim untuk dibandingkan, dan gambar aslinya tidak pernah meninggalkan perangkat Anda.