Mobile Robotics + Face Recognition
Dua keywords diatas adalah topik dari Tugas Akhir / Skripsi yang sedang saya kerjakan. Ide awalnya adalah memanfaatkan LEGO Mindstorm NXT yang dipinjamkan oleh ADE - Microsoft Indonesia dan mengubahnya menjadi sesuatu yang bermanfaat. 
Pencarian Ide dimulai setelah saya mendapati bahwasanya saya harus mencari pembimbing Tugas Akhir. Saya mencari Dosen-dosen yang kira-kira related dengan kedua topik tersebut, dan akhirnya saya bertemu Bpk. Burhanuddin Dirgantara, Ir. MT yang jg sebagai dosen mata kuliah "Artificial Intelligence" di Jurusan Teknik Elektro STT Telkom. Setelah diskusi beberapa saat, beliau menyanggupi untuk menjadi Pembimbing I Tugas Akhir yang saya kerjakan. Sementara, untuk Pembimbing II, Jurusan Teknik Elektro STT Telkom memberikan keleluasaan kepada mahasiswa untuk mencari pembimbing tidak hanya dari Dosen, melainkan dari praktisi industri, tentunya dengan beberapa ketentuan salah satu contohnya : minimal pendidikan S1. Dan Alhamdulillahnya Zeddy Iskandar (http://geeks.netindonesia.net/blogs/zeddy ), bersedia menjadi Pembimbing Tugas Akhir II.
Ide yang diusulkan oleh Pak Burhan adalah menciptakan sesuatu yang "WOW". Karena LEGO NXT merupakan paket robot platform yang sudah jadi (dalam artian microprocessor dan microcontroller sudah embedded dengan sistem minimun, bluetooth, sensor, memory dan lain-lainnya sehingga kita tidak perlu lagi untuk solder sana-sini). So, tantangan yang Pak Burhan berikan adalah bukan bagaimana cara untuk membuat robot nya tetapi bagaimana cara mengontrol robot dengan feature-feature tambahan yang bermanfaat. Lalu beliau mengeluarkan ide bagaimana kalo robotnya dibuat "Autonomous"=maksudnya adalah robot tersebut berfikir dan bekerja sesuai dengan program yang ditanamkan di processornya tanpa ada campur tangan manusia, seperti remote control scenario. Lalu beliau mengusulkan juga, kalau misalkan robotnya diberikan kemampuan tambahan, seperti "Vision" bisa nggak? tegasnya. Akhirnya tercetuslah Ide "Autonomous Mobile Robotics with Face Recognition Capability"
Resource Requirement
Hampir 1 bulan setelah topik tersebut di setujui... saat ini saya sudah mendapati urutan proses yang harus dilakukan agar bisa melakukan kemampuan Face Recognition. Sebagai gambaran, untuk mewujudkan ide diatas...saya menggunakan Hardware dan Software dibawah ini untuk mendukung Tugas Akhir, antara lain :
- Robotics Hardware : LEGO NXT KIT (Brick, Technic, Sensor, Cable, Battery, Bluetooth, etc)
- Vision Hardware : CCTV Wireless Camera + Receivernya, Grandtek USB 2.0 Capture / Capture Digitizer
- Software : LEGO Mindstorm Software, Roborealm NXT API, Intel Open CV SDK, Verilook SDK + bahasa pemrograman yang digunakan pada masing-masing SDK tersebut. (Note : saat ini saya belum mengetahui secara pasti metoda mana yang paling efektif untuk face recognition dengan menggunakan software-software diatas, perkembangannya akan saya tulis di blogs ini)
Process Step :
Metoda yang digunakan untuk face recognition / pengenalan wjah sangat banyak, tentunya setiap metoda mempunyai kelebihan dan kekurangannya masing-masing. Tapi satu hal yang pasti yaitu, proses awal yang berlaku berkaitan dengan proses pengenalan wajah adalah capture (pengambilan gambar), analysis (analisa gambar), dan face comparer (perbandingan gambar wajah dengan database wajah). Saya menggunakan camera CCTV dan konsekuensinya adalah gambar yang dianalisa adalah berdasarkan gambar bergerak (motion video/surveillance video) yang mana menggunakan metoda yang berbeda jika kita menganalisa gambar diam (still image)
Adapun secara detailnya proses pengenalan wajah dijelaskan sebagai berikut :
- Deteksi Wajah : Algoritma dan program untuk mengenali wajah bekerja berdasarkan input gambar video dari CCTV wireless camera. Software pengenal wajah tersebut akan mencari bagian / area pada gambar video yang memuat wajah. Jike didapati adanya wajah pada video tersebut, maka software akan langsung memprosesnya. Untuk mendukung proses ini, algoritma yang digunakan adalah : Multi Scale Algorithm. pemilihan algoritma ini karena cukup efektif untuk mendeteksi shape / suatu bentuk objek dari input video beresolusi rendah (low resolution video) seperti yang dihasilkan oleh CCTV Wireless Camera
- Penentuan Letak Wajah : Ketika software sudah berhasil mengetahui bahwa pada gambar video tersebut terdapat wajah, maka yang dilakukan selanjutnya adalah mengenali beberapa bagian dari wajah, contohnya posisi kepala, posisi hidung, dll Diusahakan pada proses ini, gambar wajah tidak lebih 35 derajat pada posisi lurus dari camera. Agar mudah untuk mendeteksinya, karena asumsi kamera adalah wajah yang ingin dikenali berada pada posisi lurus dihadapannya (straight forward position), dan jika wajah yang ingin dikenali ternyata posisi mukanya menghadap ke samping, sehingga akan sulit untuk dianalisa letak dari bagian-bagian wajahnya.
- Normalisasi Gambar : Ukuran gambar dari objek wajah disesuaikan dengan suatu standar tertentu agar dapat didaftarkan dan dipetakan sesuai dengan representasi data yang digunakan dalam database. Proses ini tidak menghiraukan letak wajah dan jarak wajah dari kamera saat proses capture.
- Representasi : Sistem menterjemahkan data-data yang didapat dari proses sebelumnya, lalu mengubahnya ke dalam deretan kode unik. Proses ini dimungkinkan untuk memudahkan perbandingan wajah, dengan membandingkan antara wajah satu dengan lainnya yang berbeda secara kode.
- Matching : Data wajah yang didapat berupa kode, lalu dibandingkan dengan data wajah yang ada di database. Sederhananya proses ini membandingkan kode wajah yang ingin dikenali dengan kode wajah yang sudah tersimpan di database.
Desain Awal Mobile Robot :
