Open mouth detection atau deteksi mulut terbuka adalah salah satu contoh pengembangan dari face detection. Dan biasanya menjadi bagian dari liveness detection.
Alhamdulillah kali ini masih diberi kesempatan untuk ekperimen seputar ML on Mobile Device. Salah satu yang menjadi objek ekperimen saya saat ini adalah Google ML Kit.

Open Mouth Detection di Google ML kit

Jika anda meng-enable-kan option FaceDetectorOptions.CONTOUR_MODE_ALL, maka anda dapat mengakses semua titik kontur wajah yang terdeteksi.

Gambar dibawah ini menunjukkan semua titik kontur wajah yang dihasilkan oleh Google ML Kit – Face Detection.

Kemudian kumpulan titik-titik yang jumlahnya ada 9 titik pada UPPER_LIP_BOTTOM dan bisa kita tampung dalam List seperti ini.

Begitu juga dengan LOWER_LIP_TOP.

Menghitung Lebar Mulut

Salah satu cara termudah menghitung lebar mulut adalah menghitung jarak antara UPPER_LIP_BOTTOM (bibir atas bagian bawah) dan LOWER_LIP_TOP (bibir bawah bagian atas).

Hitung menggunakan formula/rumus jarak 2 titik.

d = √[(x2 − x1)2 + (y2 − y1)2]

Jika UPPER_LIP_BOTTOM dan LOWER_LIP_TOP memiliki 9 titik, maka kita asumsikan titik tengahnya ada di indek ke 4, sehingga, koordinat (x, y) yg diambil adalah index ke 4.

Lalu tinggal implementasikan rumusnya.

Agar bisa di-reusable, bisa dibuat method seperti ini

Berikut contoh hasilnya pada real time face detection.

Selamat mencoba.

Referensi:
https://developers.google.com/ml-kit/vision/face-detection
https://www.cuemath.com/geometry/distance-between-two-points/