DeepFace menyederhanakan proses implementasi pengenalan wajah dengan menyediakan fungsi-fungsi siap pakai untuk verifikasi, pencarian, dan analisis wajah. Dengan dukungan untuk berbagai model dan metrik similaritas, pustaka ini menawarkan fleksibilitas dan akurasi yang tinggi untuk berbagai aplikasi pengenalan wajah.
Dalam pustaka DeepFace, terdapat 3 fungsi utama yang dapat Anda gunakan, yaitu: verify, analyze dan represent.
1. VERIFY
Fungsi ini digunakan untuk memverifikasi apakah dua gambar wajah berasal dari individu yang sama.
Endpoint
http://127.0.0.1:5005/verify
Body Params
{
"img1": "...",
"img2": "...",
"model_name": "VGG-Face", //"Facenet",
"detector_backend": "mtcnn",
"distance_metric": "cosine" // "euclidean"
}
Parameter | Tipe Data | Deskripsi |
---|---|---|
img1 | str atau np.ndarray | Jalur atau base64 atau array numpy dari gambar pertama yang akan dibandingkan. |
img2 | str atau np.ndarray | Jalur atau base64 atau array numpy dari gambar kedua yang akan dibandingkan. |
model_name | str | Nama model pengenalan wajah yang akan digunakan. Opsi yang tersedia: 'VGG-Face', 'Facenet', 'OpenFace', 'DeepFace', 'DeepID', 'ArcFace', 'Dlib', 'SFace', 'GhostFaceNet'. |
detector_backend | str | Metode deteksi wajah yang akan digunakan. Opsi yang tersedia: 'opencv', 'ssd', 'dlib', 'mtcnn', 'retinaface', 'mediapipe'. |
distance_metric | str | Metrik jarak yang digunakan untuk membandingkan wajah. Opsi yang tersedia: 'cosine', 'euclidean', 'euclidean_l2'. |
enforce_detection | bool | Jika True, menghasilkan kesalahan jika tidak ada wajah yang terdeteksi dalam gambar. |
align | bool | Jika True, gambar wajah akan disejajarkan sebelum analisis untuk meningkatkan akurasi. |
expand_percentage | int | Persentase perluasan area deteksi wajah untuk menangkap lebih banyak konteks sekitar wajah. |
normalization | str | Metode normalisasi yang akan diterapkan pada gambar. Opsi yang tersedia: 'base', 'raw', 'Facenet', 'Facenet2018', 'VGGFace', 'VGGFace2', 'ArcFace'. |
silent | bool | Jika True, menonaktifkan output log selama proses. |
threshold | float | Nilai ambang batas untuk menentukan apakah dua wajah dianggap sama berdasarkan metrik jarak yang dipilih. |
anti_spoofing | bool | Jika True, mengaktifkan deteksi anti-spoofing untuk memastikan bahwa gambar yang dianalisis adalah wajah asli dan bukan gambar atau video palsu. |
Response
{
"detector_backend": "mtcnn",
"distance": 0.7719593473951658,
"facial_areas": {
"img1": {
"h": 310,
"left_eye": [
691,
392
],
"right_eye": [
577,
391
],
"w": 247,
"x": 505,
"y": 254
},
"img2": {
"h": 325,
"left_eye": [
685,
345
],
"right_eye": [
574,
345
],
"w": 244,
"x": 498,
"y": 209
}
},
"model": "VGG-Face",
"similarity_metric": "cosine",
"threshold": 0.68,
"time": 4.15,
"verified": false
}
Variabel | Tipe Data | Deskripsi |
---|---|---|
detector_backend | String | Metode deteksi wajah yang digunakan, dalam kasus ini menggunakan "mtcnn". |
distance | Float | Jarak atau perbedaan antara dua wajah yang dibandingkan, semakin kecil nilainya semakin mirip. |
facial_areas | Object | Menyimpan koordinat area wajah dari dua gambar (`img1` dan `img2`). |
facial_areas.img1 | Object | Informasi tentang wajah yang terdeteksi di gambar pertama (`img1`). |
facial_areas.img2 | Object | Informasi tentang wajah yang terdeteksi di gambar kedua (`img2`). |
facial_areas.img1.h | Integer | Tinggi area wajah yang terdeteksi pada `img1`. |
facial_areas.img1.w | Integer | Lebar area wajah yang terdeteksi pada `img1`. |
facial_areas.img1.x | Integer | Posisi horizontal (X) dari area wajah dalam `img1`. |
facial_areas.img1.y | Integer | Posisi vertikal (Y) dari area wajah dalam `img1`. |
facial_areas.img1.left_eye | Array [x, y] | Koordinat mata kiri dalam `img1`. |
facial_areas.img1.right_eye | Array [x, y] | Koordinat mata kanan dalam `img1`. |
facial_areas.img2.h | Integer | Tinggi area wajah yang terdeteksi pada `img2`. |
facial_areas.img2.w | Integer | Lebar area wajah yang terdeteksi pada `img2`. |
facial_areas.img2.x | Integer | Posisi horizontal (X) dari area wajah dalam `img2`. |
facial_areas.img2.y | Integer | Posisi vertikal (Y) dari area wajah dalam `img2`. |
facial_areas.img2.left_eye | Array [x, y] | Koordinat mata kiri dalam `img2`. |
facial_areas.img2.right_eye | Array [x, y] | Koordinat mata kanan dalam `img2`. |
model | String | Model deep learning yang digunakan untuk membandingkan wajah, dalam hal ini "VGG-Face". |
similarity_metric | String | Metode perhitungan kesamaan wajah, dalam kasus ini menggunakan "cosine similarity". |
threshold | Float | Ambang batas kesamaan wajah agar dianggap sama. |
time | Float | Waktu eksekusi dalam detik untuk melakukan perbandingan wajah. |
verified | Boolean | Apakah wajah dalam dua gambar dianggap sama (`true` jika sama, `false` jika tidak). |
Posting Komentar