{!-- ra:00000000000003ec0000000000000000 --}Mesin Pencari Wajah 🔍 Lokal: Panduan Praktis Membangun Sistem Pengenalan Identitas Visual - SWANTE ADI KRISNA
cross
Hit enter to search or ESC to close
Mesin Pencari Wajah 🔍 Lokal: Panduan Praktis Membangun Sistem Pengenalan Identitas Visual
16
August 2024

Mesin Pencari Wajah 🔍 Lokal: Panduan Praktis Membangun Sistem Pengenalan Identitas Visual

  • 1
  • 16 August 2024

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 🔧FungsiTeknologi
Query FaceWajah referensi yang dicariGambar input pengguna
Target PoolKumpulan gambar untuk dicariDirektori lokal
Embedding ModelMenghasilkan representasi vektorInsightface, ONNX
Similarity MetricMengukur kemiripanCosine Similarity
ThresholdBatas minimum kecocokanNilai konfigurasi (≈0.5)
Bounding BoxLokasi wajah dalam gambarKoordinat piksel
OutputDaftar kecocokan terurutPath, 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

Download PDF tentang Implementasi Mesin Pencari Waj (telah di download 2 kali)
Penulis
Swante Adi Krisna
Penikmat musik Ska, Reggae dan Rocksteady sejak 2004. Gooners sejak 1998. Blogger dan ai paruh waktu sejak 2014. Graphic Designer autodidak sejak 2001. Website Programmer autodidak sejak 2003. Woodworker autodidak sejak 2024. Sarjana Hukum Pidana dari salah satu Perguruan Tinggi Negeri di Surakarta. Magister Hukum Pidana di bidang cybercrime dari salah satu Perguruan Tinggi Swasta di Surakarta. Magister Kenotariatan di bidang hukum teknologi, khususnya cybernotary dari salah satu Perguruan Tinggi Negeri di Surakarta. Bagian dari Keluarga Besar Kementerian Pertahanan Republik Indonesia.