Senin, 23 November 2009

Pelacakan dan Estimasi Pose Video Wajah 3 Dimensi

 

Pendahuluan

Pelacakan wajah merupakan bagian penting dalam memecahkan berbagai permasalahan termasuk dalam pengenalan wajah, analisa/ pengenalan ekspresi wajah, video konferensi, dan lain-lain. Kemampuan melacak wajah juga memberikan konstribusi yang cukup besar terhadap interaksi manusia dan komputer. Salah satu penerapannya adalah pelacakan wajah untuk menggerakkan mouse sehingga user tidak perlu menggunakan tangan, cukup dengan gerakan wajah saja misalnya. Tapi tentu saja untuk keperluan ini, diperlukan kamera sebagai input. Pelacakan pergerakan wajah dengan wire frame 3 dimensi ini menggunakkan model wire frame wajah yang merupakan kumpulan titik koordinat dalam 3 dimensi untuk mengestimasi pose dari hasil pelacakan pergerakan wajah yang didapat dari kamera ataupun file video. Pelacakan disini menggunakan metode Lucas-Kanade Optical Flow. Proses pelacakan disini adalah mendapatkan optical flow dari fitur-fitur image sequence (t dan t+1) yang koresponden.

 

Sistem Pelacakan & Estimasi Pose

Sistem keseluruhan dapat dilihat pada gambar 1 dan dapat dibagi menjadi 5 bagian utama yaitu:

1. Pengambilan frame oleh kamera atau file AVI. Pengambilan frame gambar ini menggunakan Microsoft DirectShow untuk mendapatkan frame yang real time (± 30 frame/s).

2. Menampilkan obyek wire frame 3D ke layar. Obyek wire frame yang berupa kumpulan titik koordinat dalam 3D ditampilkan di layer untuk menunjukkan transformasi pergerakan wajah.

3. Pemilihan fitur untuk pelacakan. Pemilihan fitur yang dimaksud disini adalah menentukkan titik-titik pada wajah yang akan dilacak pergerakkannya (memilih daerah yang mudah di lacak yaitu daerah yang memiliki nilai eigen tinggi. Misal: daerah pojok).

4. Pelacakan pergerakan fitur. Melacak pergerakan dari titik-titik yang telah dipilih sehingga diketahui perubahan letaknya.

5. Perhitungan transformasi obyek/estimasi pose. Melakukan perhitungan terhadap perubahan

gerakan wajah berdasarkan informasi titiktitik hasil pelacakan dengan obyek 3D sehingga dapat diketahui besar transformasinya (rotasi dan translasi terhadap sumbu x, y, dan z).

 

Pengambilan Frame Video – DirectShow

Modul ini bertujuan untuk melakukan pengambilan gambar yang berasal dari kamera atau dari file video. Dalam proses ini terdiri dari dua sub program, yang pertama adalah proses untuk menerima input baik dari kamera atau dari file video dan yang kedua adalah proses untuk melakukan pengambilan gambar (grabbing) dari input tersebut.

 

Transformasi 3D dan Proyeksi 3D ke 2D

Pada transformasi 3D ini digunakan matrik yang merupakan gabungan dari rotasi dan translasi x, y, dan z. Aturan yang digunakan untuk menggabungkan transformasi ini disebut aturan Roll-Pitch-Yaw (RPY). Translasi XYZ untuk menempatkan koordinat origin yang kemudian diikuti rotasi terhadap 3 koordinat axis dengan urutan: Z, Y, X. Bagian rotasi dikombinasikan sebagai berikut:

[R] = [R(z)][R(y)][R(x)]

Model 3D Wire Frame Wajah

Model wire frame wajah yang didapat dari Candide [3] terdiri dari 113 titik tetapi hanya digunakan 18 titik saja yang ada di daerah alis (6 titik), mata (4 titik), hidung (4 titik), dan mulut (4 titik). Pengurangan jumlah titik ini dimaksudkan untuk mempermudah pelacakan karena wire frame yang asli terlalu kompleks sehingga jarak antar titik sangat kecil bahkan jika dilihat secara 2 dimensi ada titik yang bertumpuk. Ke-18 titik ini dianggap dapat mewakili pergerakan wajah secara keseluruhan dan merupakan fitur dalam pelacakan. Sedangkan wire frame yang asli 113 titik digunakan untuk menampilkan animasi dari estimasi pose hasil pelacakan pergerakan wajah.

 

Pelacakan Fitur Metode Lucas-Kanade [1]

Misal I dan J adalah image 1 channel (gray). I(x) = I(x,y) dan J(x) = J(x,y) adalah nilai grayscale dari kedua image pada lokasi x = [x y]T , dimana x dan y adalah koordinat pixel image. Image I disebut sebagai image yang pertama dan image J adalah image kedua. Untuk memudahkan pemahaman, image I dan J adalah fungsi diskrit (array) dan koordinat vector pojok kiri atas adalah [ ]T 0 0 . Misal nx dan ny adalah lebar dan tinggi dari kedua image, maka koordinat vektor pixel pada kanan bawah adalah [ ]T nx - 1 n y - 1 . Misalkan titik [ ]T

u = ux u y ada pada image pertama. Tujuan dari pelacakan fitur adalah untuk menemukan lokasi [ ]T v = u + d = ux + dx uy + d y pada image kedua J agar I(u) dan J(v) mirip.

 

Estimasi Pose

Garis besar dari metode Fully Projective yang digunakan disini Pertama-tama model wajah berupa titik-titik fitur 3D (vektor p) ditransformasikan dengan matrik transformasi R dengan persamaan 6:

[ x|, y|, z  ] R p | T = × . (6)

[d |x , d |y , d |z ]= -[rx × t, ry × t, rz × t ] (7)

 

Hasil-Hasil Percobaan

Sistem dibangun menggunakan bahasa pemrograman Microsoft Visual C++, dengan memanfaatkan software library Intel OpenSource Computer Vision (OpenCV). Sistem diuji coba dengan video yang diambil dari webcam. Pengujian sistem disini terdiri dari pengujian terhadap akurasi dan ketangguhan pelacakan, ketepatan dalam mengestimasi pose, dan pengaruh jumlah fitur terhadap pelacakan dan estimasi pose. Akurasi disini berhubungan dengan ketepatan dalam pelacakan. Ketangguhan berhubungan dengan kemampuan melacak dalam berbagai intensitas cahaya dan kecepatan gerakan.

 

Kesimpulan

1. Sistem pelacakan pergerakan wajah dengan wire frame 3D dapat berjalan dengan baik selama fitur inisial memiliki nilai pojok yaitu suatu daerah yang memiliki tingkat lekukan yang jika dikalikan dengan gradiennya akan meningkat menjadi pangkat 3 dari maximum nilai daerah sekitarnya.

2. Sistem pelacakan pergerakan wajah dengan wire frame 3D tidak menangani occluding area (daerah yang menggangu pelacakan) sehingga menyebabkan keterbatasan dalam gerakan untuk mendapatkan hasil pelacakan

yang baik.

3. Sistem pelacakan pergerakan wajah dengan wire frame 3D dapat dilakukan secara realtime (30 frames/second) dengan menggunakan Microsoft® DirectShow®, Intel Performance Library dan Open Source Computer

Vision Library.

4. Algoritma pelacakan Lucas-Kanade dari Open Source Computer Vision Library disini melacak berdasarkan image brightness. Jika daerah yang dilacak terkena sinar yang terlalu tinggi atau terlalu gelap sehingga daerah yang dilacak tidak jelas maka algoritma pelacakan

tidak akan mendapatkan hasil yang baik. Oleh karena itu dipilih fitur yang merupakan daerah pojok untuk memudahkan pelacakan. Demikian pula jika gerakan cepat maka image akan terlihat kabur sehingga fitur yang dilacak hilang.

5. Algoritma Fully Projective yang mengestimasi pose dari hasil pelacakan berjalan sesuai dengan harapan selama hasil pelacakan baik. Ini dapat dilihat dari hasil animasi yang menampilkan posisi yang hampir sama

 

 

 

Tidak ada komentar:

Posting Komentar