• Tidak ada hasil yang ditemukan

Kata kunci: Game simulation,microsotxna, OpenCV, Deteksi Citra, Game 3D

N/A
N/A
Protected

Academic year: 2021

Membagikan "Kata kunci: Game simulation,microsotxna, OpenCV, Deteksi Citra, Game 3D"

Copied!
5
0
0

Teks penuh

(1)

Abstrak – OpenCV merupakan Library yang didesain untuk komputasional yang efisien dan lebih fokus pada aplikasi real-time. Microsoft XNA adalah sebuah framework menggunakan bahasa C# yang didukung physics engine. Simulasi Pergerakan Robot 3D dengan komando deteksi citra merupakan aplikasi yang dibangun menggunakan Microsoft XNA dan menggunakan engine TorqueX dan Library OpenCV dengan Wrapper EmguCV. Menggunakan perintah tangan yang dideteksi oleh webcam, sehingga dapat mengontrol pergerakan robot 3D secara real-time. Didukung juga dengan grafis 3D sehingga membuat simulasi menjadi lebih menarik.

Simulasi Pergerakan Robot 3D dengan Komando Deteksi Citra Pergerakan

Tangan dengan Opencv dan Microsoft XNA

Niko Purwanto Putra

Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Email : [email protected]

Uji coba yang dilakukan terhadap Simulasi Pergerakan Robot 3D dengan Komando Deteksi Citra dilakukan melalui beberapa skenario. Uji coba ini berhasil mendeteksi posisi tangan sehingga Simulasi Robot 3D dapat dikontrol dengan deteksi citra tangan. Perpindahan jeda waktu antara perubahan gerakan tangan yang bisa dideteksi oleh aplikasi relative sangat kecil dengan satuan microsecond.

Kata kunci: Game simulation ,MicrosotXNA, OpenCV, Deteksi Citra, Game 3D

1. Pendahuluan

Trend terhadap kontrol game maupun simulasi secara akhir – akhir ini berkembang sangat pesat. Pertama kali pengontrolan menggunakan sebuah joystick kemudian ditemukan pengontrolan yang membuat interaksi antara user menjadi lebih realistik, dengan ditemukannya dance pad yang digunakan untuk game dance-dance revolution, pistol yang digunakan untuk game jurasic park. Kemudian ditemukannya touch screen pada game-game yang berjalan pada Nintendo DS. Wiimote untuk game yang berjalan pada console nintendoWii. Selanjutnya ditemukan sebuah inovasi baru dalam pengontrolan sebuah game yaitu dengan deteksi citra. Game – game deteksi citra mulai bermunculan dari yang sederhana sampai dengan yang kompleks seperti game 3D.

Opencv adalah library pengolah citra dengan menggunakan bahasa C. Microsoft XNA adalah framework yang menggunakan bahasa C#. Karena XNA menggunakan bahasa C# dan Opencv dibuat menggunakan bahasa C maka library

Opencv tidak dapat dijalankan kedalam XNA. Untuk mengatasi hal tersebut maka dibutuhkan sebuah wrapper yang disebut EmguCV. Wrapper ini dibuat oleh GPL sebuah pengembang open source.

Microsoft XNA adalah sebuah framework

yang berjalan pada C#. Dengan adanya dukungan

physics engine pada XNA maka sangatlah tepat apabila kita memberikan sebuah hokum – hokum fisika dengan menggunakan software tersebut. Dengan adanya dukungan dari engine yang lain seperti TorqueX 3D maka pembangunan sebuah aplikasi menjadi lebih mudah dan cepat. Karena

engine tersebut dapat berjalan pada C#.

2. Dasar Teori

Bagian ini akan menjelaskan dasar-dasar teori yang menyusun makalah ini yaitu :

2.1.OpenCV

OpenCV adalah open source library

komputer vision yang yang dibangun oleh Intel dan diciptakan untuk domain open source pada tahun 2002. Mempunyai banyak algoritma dan contoh untuk pengolah citra dam komputer vision.[1]

Pembangunan deteksi tangan menjadi lebih kompleks selama mempunyai variabel yang bagus. Disamping gambar training positif juga harus mempunyai rectangular. Kenyataannya tidak signifikan seperti gambar training positif mata dan hidung. Bagaimanapun juga gambar rectangular menyesuaikan untuk memilih wilayah tangan termasuk angka yang penting untuk pixel background, menurut banyaknya variabel tergantung dari postur tangan, yang mana mempengaruhi gambar training positif dan membuat training lebih sulit. Disisi lain, kita mencoba mengatasi variabel tangan dengan membangun detector menggunakan gambar tangan didalam pose yang berbeda dan juga membangun detector yang spesifik untuk setiap postur tangan, keduanya dengan hasil yang buruk. Akhirnya deteksi tangan kanan dan tangan kiri disempurnakan hanya dalam posisi frontal dengan 3192 dan 3217 gambar positif training selanjutnya 2256 dan 2278 negatif training dari database.[3]

2.2.EmguCV

EmguCV adalah cross platfrom .net wrapper untuk Library intel OpenCV pengolah citra. Yang memperbolehkan fungsi OpenCV dipanggil didalam .net bahasa yang cocok seperti C#, VB, VC++,ironPython dan lain-lain. Wrapper

(2)

dapat dicompile dalam MonoDevelop dan dapat berjalan pada Linux atau Mac OS X.[5]

2.3.Framework Microsoft XNA

Platform XNA dan kemampuan untuk membuat aplikasi pada Xbox360 menjadi kemajuan yang sangat nyata pada dunia pemrograman game. Sebelum XNA, hal tersebut menjadi rumit dan sangat menguras uang untuk pelajar, hobby pembuat software atau pembuat game yang independent untuk memperoleh development kit yang memuaskan untuk sebagian besar platform console. Dengan direleasenya XNA game studio, peraturan dasar telah berubah. Tiba-tiba setiap orang dengan PC yang mempunyai kartu grapich dapat menggunakan platform XNA untuk menciptakan game tidak hanya untuk windows tetapi juga untuk Xbox360.[6]

2.4.Torque X 3D

Pertama dalam sejarah, Pengusaha besar pabrik game console telah menciptakan platform game yang mewah untuk semua orang yang tertarik untuk menciptakan game console. Sekarang semua orang dapat menciptakan game untuk console Xbox360 tanpa publikasi kontrak atau sulit dan mahal untuk mendapatkan versi developer untuk console. Framework Microsoft’s XNA adalah library gratis dan seperangkat tools untuk membuat game untuk windows dan game console Xbox360. Semua orang dapat mendownload tool untuk membuat game dan join kedalam Xbox Creator Club untuk membuat game pada Xbox360. Framework Torque X membuat pembangunan game menjadi lebih mudah, dengan framework

game engine yang kaya dan seperangkat design tool yang hebat.[9]

3. Metodologi

Bagian ini akan membahas tentang desain perangkat lunak dari aplikasi ”Simulasi Pergerakan Robot 3D dengan Komando Deteksi Citra Pergerakan Tangan dengan Opencv dan Microsoft XNA”. Pembahasan desain meliputi analisis kebutuhan, perancangan aplikasi dan implementasi. Pengembang-pengembang game 3D sekarang mulai membangun game maupun simulasi yang dikendalikan oleh deteksi citra secara realtime pada webcam PC. Untuk menghubungkan kontrol game dengan deteksi citra yang ada pada game atau simulasi tersebut dapat diimplementasikan menggunakan OpenCV dan Framework Microsoft XNA

3.1 Analisis

Berikut merupakan uraian kebutuhan fungsional dari aplikasi ” Simulasi Pergerakan Robot 3D dengan Komando Deteksi Citra Pergerakan Tangan dengan Opencv dan Microsoft XNA” :

1. Memulai simulasi robot 3D 2. Melihat bantuan pada help screen 3. Melihat credit screen

4. Keluar dari simulasi robot 3D

5. Mengontrol robot simulasi dengan tangan 3.2 Perancangan

Berikut perancangan dari Aplikasi 3.2.1 Deteksi Citra Tangan

Obyek yang nantinya akan dideteksi adalah citra tangan. Dalam pendeteksian citra tangan pertama kali adalah mendeteksi warna kulit tangan terlebih dahulu, kemudian mendeteksi kontur tangan selanjutnya adalah mendeteksi jari – jari tangan. Untuk flowchart dapat dilihat pada gambar 3.1. S ta rt D e te k s i w a rn a k u lit Y C rC b _ m in , Y C rC b _ m a x , T e rd e te k s i k o n tu r b a ru S im p a n k o n tu r b a ru c a ri S ta rt P o in t d a ri ta n g a n C a ri d e p th p o in t d a ri ta n g a n C a ri S ta rtD e p th L in e F in is h Y a C a ri k o n tu r ta n g a n H itu n g ja ri y a n g te rd e te k s i C a ri k o n v e k s ity T id a k M e m e n u h i u k u ra n ja ri Y a T id a k

Gambar 3.1 Deteksi Citra Tangan

3.2.1.1 Proses Deteksi Citra

Proses dalam pendeteksian citra tangan sebagai berikut:

1 Mendeteksi warna kulit dengan memanggil fungsi deteksi kulit dengan range warna YcrCb_min sampai dengan YcrCb_max.

2 Mencari kontur kulit dengan memanggil fungsi FindContours kemudian disimpan didalam memory.

3 Kontur yang terdeksi diberikan terhadap variabel. Apabila dideteksi kontur kulit yang baru maka kontur tersebut adalah nilai yang baru dari variabel.

(3)

4 Kemudian mencari konveksity dari kontur yang terdeteksi

Selanjutnya dengan menggunakan fungsi convexitydefects mencari jari-jari tangan

3.2.2 Use Case Display Sistem

Memulai Simulasi

Melihat Bantuan Aplikasi User

Melihat Kontributor Aplikasi

Gambar 3.2 Use Case Display Sistem

3.2.3 Use Case kontrol Robot Simulasi

Mengontrol Robot Maju

Mengontrol Robot Mundur

Mengontrol Robot Hadap Kiri

Mengontrol Robot Hadap Kanan User

Mengontrol Robot Diam

Gambar 3.3 Use Case kontrol Robot Simulasi

3.3 Implementasi

Berikut implementasi Aplikasi 3.3.1 Lingkungan Pembangunan Aplikasi

Aplikasi ini dibangun dengan menggunakan perangkat keras notebook dengan spesifikasi prosesor Intel(R) Core(TM) Duo CPU T6600 2,20GHz, memori 4 GB dan harddisk sebesar 150 GB. Sistem operasi dan beberapa tools

yang digunakan dalam membangun aplikasi ini adalah :

• Sistem operasi Microsoft Windows VISTA

• Framework Microsoft XNA • Microsoft Visual Studio 2008 SP1 • Game Engine TorqueX 3D • OpenCV dengan wrapper emguCV 3.3.2 Implementasi Deteksi Citra

Deteksi Citra Tangan menggunakan library OpenCv. Pendeteksian tergantung terhadap pencahayaaan yang baik. Untuk pertama kali yang dideteksi adalah warna kulit pada tangan. YCrCb_min dan YCrCb_max adalah range warna untuk warna kulit seperti dibawah ini.

Kemudian mencari kontur telapak tangan. Pertama kali yang dicari adalah kontur dari tangan apabila kontur dari tangan dideteksi maka kontur tangan tersebut dimasukkan kedalam variabel Result. Jika dideteksi terdapat kontur yang lebih besar maka kontur yang besar menjadi variabel yang selanjutnya. Selanjtnya kontur terbesar dimasukkan kedalam fungsi convexhull.untuk mencari konveksity. Jika konveksity sudah ditemukan maka langkah selanjutnya adalah mencari defect dengan fungsi convexitydefect, bersamaan dengan itu maka informasi startpoint depthpoint juga diketahui Untuk pseudocode dapat dilihat berikut ini.

Selanjutnya dari startpoint dan depthpoint dicari startdepthline yang sesuai dengan jari-jari tangan.

Ycc YCrCb_min =(0, 131, 80)

Ycc YCrCb_max =(255, 185, 135)

Deteksi kulit(gambar yg terdeteksi,

YCrCb_min,YCrCb_max)  

While kontur terdeteksi 

result1 = kontur(kulit) 

If result1 > result2 

Then Result2=result1 

kontur terbesar = kontur 

if kontur terbesar =! Null 

then hull = kontur <‐convexhull 

defect =   kontur terbesar   <‐ convexitydefect <‐ simpan 

storage 

defectarray= defect.toarray 

for i=0 to defect.total do

startpoint = defectarray <‐ startpoint 

depthpoint = defectarray <‐ depthpoint 

startdepthline=garis(startpoint to depthpoint)  if (startpoint<centerbox or  depthpoint<centerbox)&&(startpoint<depthpoint)  &&(sudutconvex>centerbox /6.5)  fingernum++  3.3.3 Implementasi Simulasi 3D

Implementasi Simulasi 3D yang terdiri dari intro, Main Menu Screen,Help Screen, Credit Screen, Play screen.

3.3.4 Implementasi Pengontrolan secara Realtime

Untuk pengontrolan Robot 3D pada waktu Posisi tangan terdeteksi 3 maka variable rotX diberi value sebesar 0.5 bertipe float maka movemnet robot akan rotasi ke kanan. sebaliknya pada waktu Posisi tangan terdeteksi 4 maka variable rotX dikasih value sebesar -0.5 ertipe float maka movemnet robot akan rotasi ke kiri. Pada waktu Posisi tangan terdeteksi 1 maka variable ma dikasih value sebesar 0.5 ertipe float maka movemnet robot akan berjalan maju karena dikalikan dengan vector Forward. Sebaliknya Pada waktu Posisi tangan terdeteksi 2 maka variable ma dikasih value sebesar -0.5 ertipe float maka movemnet robot akan berjalan mundur karena bernilai negatif. Pseudocode dapat dilihat berikut ini.

YCrCb_min = new Ycc(0, 131, 80); YCrCb_max = new Ycc(255, 185, 135);

(4)

4. Uji Coba dan Evaluasi

Bab ini membahas pengujian dari aplikasi perangkat lunak yang sudah dibuat.

4.1 Lingkungan Pelaksanaan Uji Coba

Aplikasi ini diuji dengan menggunakan perangkat keras notebook dengan spesifikasi prosesor Intel(R) Core(R)2 Duo CPU T6600 2,20Hz, memori 4 GB dan harddisk sebesar 150 GB.

Uji coba aplikasi ini dilakukan dengan menggunakan satu komputer, spesifikasi komputer adalah :

• Menggunakan OS Windows Vista • Processor Intel Pentium Core 2 Duo

@2.20Ghz · RAM 4GB 4.2 Uji Coba Fungsional

Tabel 4.1 Uji Coba Kontrol Robot

Test Case ID Scenario / Condition Posisi Tangan Result RB 1 Scenario 1 – komando Posisi tangan angka 1. Angka 1 Player bergerak maju. RB 2 Scenario 2 – komando Posisi tangan angka 2. Angka 2 Player bergerak mundur. RB 3 Scenario 3– komando Posisi tangan angka 3 Angka 3 Player hadap kekanan. RB 4 Scenario 4 – komando Posisi tangan angka 4. Angka 4 Player hadap kekiri. RB 5 Scenario 5 – komando Posisi tangan angka 5. Angka 5 Player Diam

Berikut gambar hasil uji coba aplikasi :

If tangan posisi satu terdeteksi then Render teks Perintah “Maju”

Updete input <- vel = ((forward * 0.5f) + (right * 0)) * _moveSpeed; Update camera

If tangan posisi dua terdeteksi then Render teks Perintah “Mundur”

Updete input < vel = ((forward * -0.5f) + (right * 0)) * _moveSpeed; Update camera

If tangan posisi tiga terdeteksi then Render teks Perintah “Mundur”

Updete input <- player Angle = (player Angle - (turn Speed * dt * 0.5f)) % (2.0f * (float)Math.PI) Update camera

If tangan posisi empat terdeteksi then

Render teks Perintah “Mundur”

Updete input <- player Angle = (player Angle (turn Speed * dt * -0.5f)) % (2.0f * (float)Math.PI) Update camera

Posisi tangan satu

Gambar 4.1 Posisi Tangan satu

Posisi tangan dua

Gambar 4.2 Posisi Tangan dua

Posisi tangan tiga

Gambar 4.3 Posisi Tangan tiga

Posisi tangan empat

(5)

[2] Gary Bradski, Adrian Kaebler. Computer vision with the OPENCV library,O’REILLY . september 2008.

Posisi tangan lima

[3] D.gonzales-Ortega,FJ Diaz- Pernas,M.Martinez-Zarzuela,M.Anton-Rodriguez.Real-Time hands, face and facial features detection and tracking: Application to cognitive rehabilitation test monitoring. Journal of Network and Computer Applications, 4 Februari 2010

Gambar 4.5 Posisi Tangan lima

[4] Intoduction to programming with OpenCV. http:// www.cs.iit.edu

/~agam/cs512/lect-notes/opencv-intro/index.html. diakses tanggal 6 Maret 2010.

4.3 Uji Coba NonFungsional

Tabel 4.2 Uji Coba Waktu Deteksi Citra

ID Condition Posisi Tangan

Result

RD 1

Posisi tangan angka 1.

Angka 1 0.0027 millisecond RD

2

Posisi tangan angka 2.

Angka 2 0.0022 millisecond RD

3

Posisi tangan angka 3

Angka 3 0.0016 millisecond RD

4

Posisi tangan angka 4.

Angka 4 0.0011 millisecond RD

5

Posisi tangan angka 5.

Angka 5 0.0016 millisecond

[5] EmguCV

http://www.emgu.com/wiki/index.php/ Main_Page. diakses tanggal 8 Maret 2010. [6] Stephen Cawood dan Pat McGee.

Microsoft XNA Game Studio Creator’s Guide,Mc Graw Hill. 2009.

[7] Resource for XNA Game Developers. http://xnaresources.com/. diakses tanggal 4 Maret 2010.

[8] Chad Carter . Microsoft XNA Game Studio 3.0 UNLEASHED .SAMS, Juli 2009. 5. Kesimpulan

Berdasarkan hasil pengamatan selama proses perancangan, implementasi, dan uji coba perangkat lunak didalam tugas akhir ini, dapat diambil kesimpulan sebagai berikut:

[9] John Kanalakis.The complete guide to Torque X,GC Press.2008.

1. Didalam uji coba ini OpenCV dapat mendeteksi posisi tangan sehingga Simulasi Robot 3D dapat dikontrol dengan deteksi citra tangan.

2. Pengontrolan dilakukan secara Real Time dalam arti gerakan tangan yang dideteksi dapat direspon dalam waktu sekitar 1,1 sampai 2,7 mikrosecond.

3. Perpindahan jeda waktu antara perubahan gerakan tangan yang bisa dideteksi oleh aplikasi relative sangat kecil dengan satuan microsecond.

6. Daftar Pustaka

[1] Easy to use Wrapper (DLL) for Intel’s

OpenCV Library . http://www.codeproject.com/KB/cs/Intel_

OpenCV.aspx. diakses tanggal 3 Maret 2010.

Referensi

Dokumen terkait

Berangkat dari penjelasan di atas, maka tujuan penelitian ini adalah menganalisis pengaruh manajemen aset yang terdiri dariinventarisasi aset, legal audit aset,

untuk penunjuk fasilitas atau objek wisata, dan sign yang terdapat di Pondok Halimun sangat berbeda satu dengan yang lain atau tidak konsisten, tidak berada

Fungsi Akuntansi bertugas untuk mencatat semua penerimaan kas perusahaan berdasarkan bukti penerimaan kas dari fungsi kas ke jurnal penerimaan kas untuk melaporkan

MPO dari penelitian ini mempunyai nilai sensitivitas diagnostik 88,88%, spesifisitas diagnostik 69,23%, nilai ramal negatif 75% dan nilai ramal positif 85,71% sehingga MPO tidak

Hasil : Terdapat 76 subjek penelitian. Prevalensi penyakit kardiovaskular adalah 63,2%. Terdapat hubungan yang bermakna antara status merokok, frekuensi napas dan modifikasi

Penelitian ini bertujuan mempelajari pengaruh pemberian pakan pada itik dengan sistem pemeliharaan intensif (terkurung) dan semi intensif (terkurung + digembalakan

Ada responden yang mengatakan setuju yakni sebanyak 2 responden atau 2.3%, untuk responden yang mengatakan setuju yakni responden yang sudah golongan menengah

Dari hasil pengambilan data di taman perpustakaan UM kita dapat mengetahui kontur lingkungan dan anomaly potensial pada daerah tersebut, sekalipun nilai data