Kinect dan OpenKinect

Mainan baru minggu ini: Kinect 😀

Dalam waktu singkat setelah produk baru dari microsoft ini diluncurkan, seseorang sudah berhasil membuat aplikasi yang dapat mengendalikan Kinect! Sementara di tempat lain di eropa, dalam waktu hanya 3 jam setelah peluncuran Kinect di Eropa, seseorang yang lain lagi juga telah berhasil membuat aplikasi sejenis yang juga dapat mengendalikan Kinect dan mengambil video yang ditangkap oleh Kinect. Walau kedua aplikasi/pustaka memiliki fungsi yang sama, yang kedua memiliki lisensi terbuka sehingga juga memenangkan kontes yang diselenggarakan oleh Adafruit, yaitu kontes membuat pustaka terbuka untuk Kinect. Pustaka ini dapat diunduh dengan bebas langsung di repositori kodenya: https://github.com/OpenKinect/libfreenect

Setelah saya mendapat pinjaman Kinect dari supervisor saya, saya juga langsung nyoba2 OpenKinect. Ternyata OpenKinect dapat bekerja dengan sangat baik, saya hanya perlu mengkompilasinya dan contoh yg disertakan dapat langsung dijalankan.

$ git clone git://github.com/OpenKinect/libfreenect.git
$ mkdir build
$ cd build
$ cmake ../libfreenect
$ make
$ sudo cp ../libfreenect/platform/linux/udev/51-kinect.rules /etc/udev/rules.d/
$ ./bin/glview

Apa sih yang unik dari Kinect ini? Kinect, selain memiliki sebuah kamera berwarna, memiliki kamera yang dapat digunakan untuk memetakan ruangan dalam ruang 3 dimensi. Hal ini dapat dilakukan karena kamera ini dapat memberikan informasi kedalaman/jarak/depth untuk setiap titik yang dipantau oleh kamera. Dengan informasi kedalaman ini, gambar yang ditangkap bukan lagi hanya gambar 2 dimensi, melainkan 3 dimensi. Operasi “memutar” gambar dalam ruang 3 dimensi juga dapat dilakukan. Contohnya ada pada video berikut.

Dengan informasi kedalaman ini, objek-objek yang tertangkap oleh kamera juga dapat dibedakan satu sama lain dengan membandingkan informasi kedalaman yang ada. Hal ini berguna untuk memisahkan objek-objek penting dan tidak penting, tergantung keperluan yang ada. Contoh aplikasi dari teknik ini dicontohkan oleh video berikut. Dalam video ini, objek tangan dapat dikenali dengan mudah dan dipisahkan dari latar belakang dan objek lain yang ada. Objek tangan ini lalu digunakan sebagai pemandu untuk melakukan transformasi objek 3 dimensi virtual yang dibuat oleh komputer.

Kinect Object Manipulation from Dominick D'Aniello on Vimeo.

Saya sendiri baru mencoba untuk membuat “point cloud” dari titik-titik yang ada dan meletakkannya dalam ruang 3 dimensi. Inilah hasilnya 😀

Salah satu kemungkinan pengembangan lebih lanjut dari point cloud ini adalah scanner 3 dimensi. Dengan meletakkan sebuah objek di depan Kinect lalu memutarnya sehingga seluruh bagian terekam, objek (virtual) yang sama dapat kita tampilkan di komputer dan juga dapat kita olah dengan bantuan aplikasi seperti Blender.

Sekian dulu cerita tentang Kinect dan OpenKinect dari saya.. nantikan perkembangan selanjutnya di lain waktu =D

3 thoughts on “Kinect dan OpenKinect”

Leave a Reply