Teknologi pengenalan wajah kini dapat dibangun secara lokal menggunakan Python dan pustaka (library) sederhana, memungkinkan siapa saja mencari semua instance (kejadian) wajah tertentu dalam kumpulan gambar pribadi tanpa mengandalkan layanan cloud eksternal.1 Alex Martinelli, pengembang dari Becoming Human: Artificial Intelligence Magazine, menerbitkan panduan komprehensif pada 16 Agustus 2024 yang menjelaskan bagaimana membangun face search engine (mesin pencari wajah) lokal dengan pendekatan bertahap. Sistem ini memanfaatkan konsep embeddings (representasi vektor) dan metrik kemiripan untuk mencocokkan identitas wajah secara efektif.
Konsep Dasar dan Mekanisme Kerja
Tujuan utamanya? Menemukan semua kemunculan wajah kueri (query) dalam sekumpulan foto. Berbeda dengan pencarian yang mengharuskan kecocokan eksak, sistem ini mengurutkan hasil berdasarkan skor kemiripan.1 Semakin tinggi skor, semakin besar kemungkinan kecocokan.
Embeddings adalah representasi yang dipelajari dari input dalam bentuk daftar angka bernilai riil—vektor berdimensi N. Vektor ini menangkap fitur paling esensial dari input sambil mengabaikan aspek yang tidak relevan; ia adalah representasi yang didistilasi dan dipadatkan.1 Model machine learning (pembelajaran mesin) dilatih untuk mempelajari representasi tersebut. Dalam konteks pengenalan wajah, kita membutuhkan model yang dilatih untuk memaksimalkan pencocokan identitas: foto orang yang sama harus cocok dan memiliki representasi yang sangat dekat. Sementara itu, semakin berbeda identitas wajah, semakin berbeda (atau jauh) embeddings yang terkait.
Metrik Kemiripan untuk Perbandingan Vektor
Setelah memiliki embeddings, kita dapat membandingkannya menggunakan metrik jarak seperti cosine similarity (kemiripan kosinus) atau Euclidean distance (jarak Euclidean). Metrik ini mengukur seberapa "dekat" dua vektor dalam ruang vektor.1 Jika ruang vektor terstruktur dengan baik—artinya model embedding efektif—ini akan setara dengan mengetahui seberapa mirip dua wajah. Teknologi serupa juga diterapkan dalam berbagai konteks, seperti verifikasi identitas eKYC yang menekankan pentingnya pengenalan wajah untuk verifikasi identitas yang cepat, aman, dan andal.2
| Komponen 🔧 | Fungsi | Teknologi |
|---|---|---|
| Query Face | Wajah referensi yang dicari | Gambar input pengguna |
| Target Pool | Kumpulan gambar untuk dicari | Direktori lokal |
| Embedding Model | Menghasilkan representasi vektor | Insightface, ONNX |
| Similarity Metric | Mengukur kemiripan | Cosine Similarity |
| Threshold | Batas minimum kecocokan | Nilai konfigurasi (≈0.5) |
| Bounding Box | Lokasi wajah dalam gambar | Koordinat piksel |
| Output | Daftar kecocokan terurut | Path, skor, koordinat |
Implementasi Praktis dengan Python
Martinelli merekomendasikan penggunaan pustaka Insightface yang populer, yang menawarkan model embeddings wajah (juga dikenal sebagai model pengenalan) di atas berbagai utilitas terkait wajah lainnya.1 Pilihan pustaka ini menyederhanakan proses karena menangani pengunduhan, inisialisasi, dan menjalankan model yang diperlukan.
Langkah pertama adalah menginstal pustaka yang diperlukan. Disarankan menggunakan virtual environment (lingkungan virtual): pip install numpy==1.26.4 pillow==10.4.0 insightface==0.7.3.1 Skrip dapat dijalankan di command-line (baris perintah) dengan memberikan argumen yang diperlukan, misalnya: python run_face_search.py -q "./query.png" -t "./face_search".
Alur Kerja Skrip Pencarian
Argumen kueri harus menunjuk ke gambar yang berisi wajah kueri, sementara argumen target harus menunjuk ke direktori yang berisi gambar untuk dicari. Anda juga dapat mengontrol similarity-threshold (ambang batas kemiripan) untuk memperhitungkan kecocokan, dan resolusi minimum yang diperlukan untuk wajah yang akan dipertimbangkan.1
Skrip memuat wajah kueri, menghitung embedding-nya, lalu melanjutkan untuk memuat semua gambar di direktori target dan menghitung embeddings untuk semua wajah yang ditemukan. Cosine similarity kemudian digunakan untuk membandingkan setiap wajah yang ditemukan dengan wajah kueri. Kecocokan dicatat jika skor kemiripan lebih besar dari threshold yang diberikan.1 Di akhir, daftar kecocokan dicetak, masing-masing dengan jalur gambar asli, skor kemiripan, dan lokasi wajah dalam gambar (yaitu, koordinat bounding box wajah).
Nilai kemiripan—dan karenanya threshold—akan sangat bergantung pada embeddings yang digunakan dan sifat data. Dalam kasus ini, banyak kecocokan yang benar dapat ditemukan di sekitar nilai kemiripan 0.5.1 Selalu ada kompromi antara presisi (kecocokan yang dikembalikan benar; meningkat dengan threshold lebih tinggi) dan recall (semua kecocokan yang diharapkan dikembalikan; meningkat dengan threshold lebih rendah).
Aplikasi dan Pengembangan Masa Depan
Solusi dasar ini cukup akurat dan dapat dijalankan secara langsung (on the fly), tetapi tidak memberikan performa optimal. Mencari dari sekumpulan gambar besar akan lambat dan, yang lebih penting, semua embeddings akan dihitung ulang untuk setiap kueri.1 Pengembangan lebih lanjut melibatkan penggunaan vector database (basis data vektor) untuk mengoptimalkan antarmuka dan kueri. Industri fotografi pernikahan, misalnya, telah mengadopsi teknologi serupa dengan pencarian wajah berbasis AI yang mendefinisikan ulang pengalaman galeri online.3
Teknologi pengenalan wajah juga berkembang dalam konteks regulasi dan keamanan. Australia, misalnya, akan memeriksa usia pengguna yang masuk ke akun mesin pencari mereka di Google dan Microsoft berdasarkan regulasi keselamatan online.4 Sementara itu, pendekatan identity-preserving face anonymization (anonimisasi wajah yang melestarikan identitas) dikembangkan untuk melindungi privasi sambil mempertahankan utilitas pengenalan.5
Kesimpulan
Membangun mesin pencari wajah lokal kini dapat diakses oleh pengembang dengan pengetahuan Python dasar. Dengan memanfaatkan embeddings, metrik kemiripan, dan pustaka seperti Insightface, siapa pun dapat mengimplementasikan sistem pengenalan wajah yang fungsional tanpa bergantung pada infrastruktur cloud. Meskipun solusi dasar memiliki keterbatasan performa, ia menawarkan fondasi solid untuk pengembangan lebih lanjut dengan vector databases dan optimasi lainnya. Pendekatan ini memberdayakan individu dan organisasi untuk mengelola data visual mereka dengan kontrol penuh atas privasi dan keamanan.
Daftar Pustaka
- Martinelli, Alex. "Building a Local Face Search Engine — A Step by Step Guide." Becoming Human: Artificial Intelligence Magazine, 16 Agustus 2024. https://becominghuman.ai/building-a-local-face-search-engine-a-step-by-step-guide-ec34751a2715
- "Importance of face recognition for eKYC identity verification?" Finextra, 19 Januari 2025. https://www.finextra.com/blogposting/27667/importance-of-face-recognition-for-ekyc-identity-verification
- "Pic-Time Reinvents the Wedding Gallery With Upgraded AI-Driven Face, Object, and Narrative Search." News Observer, 19 November 2025. https://www.newsobserver.com/press-releases/article312975800.html
- "Australians Face Search Engine Age Checks." MediaPost, 1 Juli 2025. https://www.mediapost.com/publications/article/407092/australians-face-search-engine-age-checks-by-end-o.html
- "NDSS 2025 – A Key-Driven Framework For Identity-Preserving Face Anonymization." Security Boulevard, 21 November 2025. https://securityboulevard.com/2025/11/ndss-2025-a-key-driven-framework-for-identity-preserving-face-anonymization/

