Optimasi VNFaceObservation untuk deteksi posisi wajah

Muhammad Alfiansyah
2 min readNov 25, 2023

--

Code ini ternyata tidak relevan kerena AVCapturePhotoCaptureDelegate menimbulkan suara Camera Capture setiap kali mengcapture muka.

Photo by Joe Gadd on Unsplash

Shiiiiitttttttt happen again tadi malam. Liveness SDK yang dibuat selalu dapat result failed terus ….why ???

https://stackoverflow.com/questions/55022279/vision-framework-providing-inexact-roll-and-yaw-values

Ternyata VNFaceObservation tidak memberikan value Roll, Yaw dan Pitch yang akurat.

Jadi ketika auto capture, kamera tidak mengcapture wajah dengan benar. Hasil capture yang diambil posisi wajah belum sepenuhnya menghadap kedepan dan blur.

Ditambah lagi tidak tau kenapa yang biasanya berhasil dengan gambar yang seperti itu jadi sering gagal, mungkin ada update dari sisi Backend kami jadi mengharuskan gambar yang di ambil kualitasnya bagus.

Oke kembali ke riset lagi …pada awalnya kita hanya menggunakan AVCaptureVideoDataOutputSampleBufferDelegate untuk mendapatkan image buffer yang biasa digunakan untuk relatime face observation dan face landmark.

Kemudian pada captureOutput kita ubah sampleBuffer menjadi image dan video. Tapi ternyata implementasi ini tidak optimal untuk melakukan Capture Image.

Jadi Riset dimulai kembali, cara terbaik untuk melakukan face capture adalah dengan imlementasi AVCapturePhotoCaptureDelegate.

Disini kita mengimplement AVCaptureVideoDataOutputSampleBufferDelegate untuk video recording dan AVCapturePhotoCaptureDelegate untuk capture foto.

Cara nya tidak sulit tinggal implementasi AVCapturePhotoCaptureDelegate seperti berikut

Oke setelah itu kita masih ada satu problem, yaitu ketidakakuratan Roll, Yaw dan Pitch dari VNFaceObservation. Untuk ini kita perlu kalkulasi secara manual dengan VNFaceLandmarks2D.

  1. Detect Face Front dengan Roll, Yaw dan Pitch
  2. Menghitung jarak mata sehingga kita bisa menambah akurasi ketika Roll, Yaw dan Pitch tidak akurat

Next

Hal ini sebenernya juga bisa dilakukan untuk menghitung senyum tipis dan senyum dengan memperlihatkan gigi.

--

--