Sistem Antar Muka Senapan Pada Game First Person Shooter Menggunakan Deteksi Gerak Obyek Berbasis Computer Vision VIALLI HARDI Jurusan Sistem Komputer,Fakultas Ilmu Komputer dan Teknologi Informasi-Universitas Gunadarma, Margonda Raya 1 Depok 16424 telp (21) 78881112, 7863788 hvialli@yahoo.com Abstrak Game FPS (First Person Shooter) pada platform PC (Personal Computer) yang ada pada saat ini masih menggunakan media mouse dan keyboard dalam kontrol game FPS, sehingga kebebasan gerak kurang interaktif dan kurang efesien. Media kontrol game FPS yang menggunakan senapan hanya digunakan pada platform konsol seperti pada XBOX Kinect, PS3 Move dan Nintendo wii. Dalam beberapa tahun terakhir computer vision dikembangkan kedalam sebuah game dengan teknik pengolahan citra melalui web-camera untuk menangkap setiap gerakan. Berkaitan dengan hal tersebut maka dibuatlah sebuah kontrol game FPS untuk platform PC. Penelitian ini bertujuan untuk merancang dan membangun sebuah alat pengendali game FPS melalui sebuah web-camera (motion tracking) dan Arduino Leonardo, untuk mendeteksi arah gerakan senapan yang dikendalikan pemain, agar pemain bergerak lebih interaktif dalam memainkan game FPS. Kata Kunci : FPS, Computer vision, web-camera, motion tracking, Arduino Leonardo 1. Pendahuluan Teknologi computer vision saat ini berkembang dengan sangat pesat. Perkembangan ini ditunjang oleh kemajuan teknologi mikroprosesor dan perkembangan mikroelektronik seperti web-camera dan digital camera. Salah satu teknologi computer vision adalah motion tracking (Deteksi Gerak). Game FPS pada platform PC masih menggunakan media mouse dan keyboard dalam kontrol game FPS. Media kontrol game FPS yang menggunakan media senapan hanya digunakan pada platform konsol seperti pada XBOX Kinect, PS3 Move dan Nintendo wii. Oleh karena itu dibutuhkan suatu media kontrol game untuk platform PC yang interaktif dan menarik dalam penggunaannya. Dengan menggunakan teknologi computer vision memungkinkan ruang gerak pemain menjadi lebih luas dalam mengendalikan sebuah game. Memanfaatkan sebuah web-camera untuk menangkap setiap gerakan, dan sebuah obyek untuk pembacaan gerakan yang ditangkap oleh web-camera. Analog thumb digunakan untuk navigasi gerak lebih efesien agar pemain bebas menggerakan game FPS kesegala arah. Pemain dapat mengendalikan gerak game menggunakan senapan sungguhan sehingga game terasa seperti nyata. Perangkat lunak yang digunakan dalam pembangunan sistem motion tracking kendali game FPS merupakan software berlisensi open source. Pembangunan sistem dilakukan menggunakan pemrograman perangkat lunak open source IDE Code Blocksdan library OpenCV. Sedangkan, pemrograman perangkat keras menggunakan IDE arduino. Penelitian ini bertujuan untuk merancang dan membangun sebuah alat pengendali game FPS melalui sebuah webcamera (motion tracking) untuk platform PC, untuk mendeteksi arah gerakan senapan yang dikendalikan pemain, agar pemain
bergerak lebih interaktif dalam memainkan game FPS. 1.2 Metode Penelitian Pada bagian ini dilakukan pengumpulan mengenai informasi-informasi yang berkaitan dengan motion tracking seperti : a. Studi Pustaka, yaitu mengambil beberapa data yang berasal dari berbagai sumber seperti buku, jurnal, artikel dan internet dimana isi dari sumber-sumber tersebut dijadikan referensi dan acuan dalam penulisan akhir ini. b. Analisis kebutuhan, yaitu melakukan pembuatan simulasi alat, percobaanpercobaan dan pengambilan data terhadap beberapa alat seperti analog thumb dan push button. c. Konsultasi, yaitu bertanya kepada beberapa personal yang ahli dalam bidangnya masing-masing. dan biasanya dinyatakan dalam bilangan bulat positif, yaitu atau 1 bergantung pada sistem yang digunakan. Format nilai piksel sama dengan format citra keseluruhan. Pada kebanyakan sistem pencitraan, nilai ini biasanya berupa bilangan bulat positif juga. Citra digital dinyatakan dengan matriks berukuran N x M dapat dilihat pada Gambar 2.2 dan Ilustrasi sistem koordinat piksel dilihat pada Gambar 2.3. Gambar 2.2 Matriks Citra Digital MxN [4] 2. Tinjauan Pustaka 2.1 Computer Vision Computer vision pada hakekatnya meniru sistem visual manusia (human vision), dimana manusia melihat objek dengan mata lalu diteruskan ke otak untuk di intepretasikan sehingga manusia dapat mengetahui apa yang tampak dalam penglihatannya dan apa yang harus dikerjakan. Computer vision merupakan proses otomatis yang mengintegrasikan proses visual seperti akusisi gambar, pengolahan gambar, analysis, recognition dan membuat keputusan serta melakukan aksi tertentu, misalnya memandu robot, mengontrol peralatan, memantau proses manufaktur [1]. 2.2 Pengolahan Citra Digital Citra digital dinyatakan dengan matriks berukuran N x M (baris/ tinggi = N, kolom/ lebar = M). Setiap titik memiliki koordinat Gambar 2.3 Koordinat Citra Digital [4] 2.3 Motion Tracking Dalam computer vision diperlukan suatu proses dimana komputer dapat mengikuti pergerakan objek yang ditentukan dan dengan sumber citra berupa video baik dari disk ataupun real time berasal dari input kamera. Identifikasi dilakukan untuk menemukan object of interest dari satu frame yang merupakan subsequent dari suatu video [6]. Tracking merupakan istilah untuk melacak atau mencari suatu objek pada suatu citra, dalam prosesnya ada sesuatu yang penting yang terjadi pada objek tersebut dalam citra, ketika citra tersebut merupakan frame yang merupakan subsequent dari suatu video yaitu motion.
Motion merupakan pergerakan atau arah pergerakan yang terlihat dilakukan objek atau yang terjadi terhadap objek akibat pergantian frame. Tujuan dari Motion tracking adalah untuk mendeteksi dan melacak obyek bergerak melalui urutan gambar seperti yang diilustrasikan pada Gambar 2.4 diantisipasi akan disimpan dan yang dibawah nilai threshold akan diturunkan menjadi dengan sebuah pixel x1 operasi untuk tiap-tiap pixel adalah If (x1 < threshold)x1= ; else x1= 1; Untuk contoh hasil dari threshold dapat dilihat pada gambar 2.6 Gambar 2.6 Contoh Hasil Threshold pada Obyek Warna Biru 2.5 Model Warna HSV Gambar 2.4 Tracking Obyek Melalui Urutan Video [6] Teknik tracking yang digunakan menggunakan teknik blob detection. Blob detection digunakan untuk memfilter obyek, mengeksrak obyek dan mendapatkan dimensi obyek yang sudah dipisahkan oleh latar belakang hitam dengan memberi pelebelan pada obyek yang terdeteksi. Model warna HSV mendefinisikan warna dalam terminologi Hue, Saturation dan Value. Hue menyatakan warna sebenarnya, seperti merah, violet, dan kuning. Hue digunakan untuk membedakan warna-warna dan menentukan kemerahan (redness), kehijauan (greeness), dsb, dari cahaya. Hue berasosiasi dengan panjang gelombang cahaya. Saturation menyatakan tingkat kemurnian suatu warna, yaitu mengindikasikan seberapa banyak warna putih diberikan pada warna. Value adalah atribut yang menyatakan banyaknya cahaya yang diterima oleh mata tanpa memperdulikan warna. Gambar 2.5 Deteksi Obyek Warna pada Teknik Blob [7] 2.4 Thresholding Operasi pengambangan (thresholding) digunakan untuk mengubah citra dengan format skala keabuan yang mempunyai kemungkinan nilai lebih dari 2, ke citra biner, yang hanya memiliki 2 buah nilai ( atau 1). Pada threshold pixel dengan nilai lebih tinggi dari nilai threshold yang Gambar 2.7 Model Warna HSV [9]
3. Perancangan Sistem 3.1 Rancangan Sistem Sebelum sistem diimplementasikan, terebih dahulu dibuat sistematika rancangan pada keseluruhan sistem. Alat pendeteksi dan kontrol terbagi kedalam dua bagian, vision dan HID (human interface device). Pada bagian masukan terdiri dari Web-camera yang digunakan sebagai alat pendeteksi obyek adalah web-camera Logitech c17 dengan 3 fps (frame per second) dan obyek yang dideteksi berupa warna RGB. Gambar 3.1 Rancangan Sistem Rancangan sistem pada Gambar 3.1, merupakan keseluruhan perancangan untuk mengimplementasikan tugas akhir ini. Dimana pada tahap awal user adalah pemain yang akan mengendalikan arah gerakan senapan (navigasi). Pada senapan diberi obyek yang berupa warna RGB dan analog analog thumb untuk kontrol navigasi. Web-camera akan mendeteksi adanya obyek berupa warna RGB. Setalah mendeteksi adanya obyek warna RGB, setelah itu warna RGB tersebut akan diterima oleh komputer melalui web-camera untuk proses segmentasi menjadi warna HSV dan dikonversi menjadi warna threshold. Proses segmentasi dan konversi diolah menggunakan fungsi-fungsi pada library OpenCV. Kontrol navigasi analog thumb akan menghasilkan data koordinat x,y. Data koordinat akan diterima dan diproses oleh Arduino Leonardo. Data yang diolah arduino berupa karakter keyboard akan dikirim ke komputer melalui komunikasi serial untuk menggerakan navigasi pada game FPS. 3.1 Perancangan Berdasarkan Fungsi Dasar Secara umum perancangan sistem yang akan dibuat dapat dilihat pada Gambar 3.2. Gambar 3.2 Blok Diagram Bagian proses, PC (personal computer) menerima dua data berbeda, yaitu data berupa hasil deteksi dan data virtual key code. Masing-masing data diolah dengan proses yang berbeda. Proses pertama menggunakan perangkat lunak Code::block untuk compiler dan library OpenCV untuk pengolahan data vision. Proses kedua hasil dari analog thumb berupa koordinat x,y diproses di Arduino dan dikirm ke PC berupa karakter keyboard. Hasil keluaran yang dihasilkan dari pengolahan data vision berupa informasi posisi koordinat x,y dan pergerakan pointer mouse. 3.2 Proses Pengambilan Data Pada proses ini web-camera akan meng-capture obyek warna dan akan diolah di library OpenCV. Untuk mencari daerah warna yang di capture digunakan metode color detection, metode ini bertujuan untuk mendeteksi warna yang dituju, dan membuang seluruh gambar yang tidak dimiliki oleh warna yang dituju. Jika warna yang dideteksi adalah warna kuning maka, web-camera akan mendeteksi lokasi warna kuning dengan membuang semua gambar yang tidak memiliki warna kuning.
Untuk proses pengambilan data dilakukan di OpenCV. Dalam penggunaana library OpenCV dengan menggunakan bahasa pemrogramman C++, diperlukan beberapa library yang di include untuk menghubungkan antara sistem yang dibangun dengan library opencv. 3.3 Segmentasi Warna Setelah web-camera terkoneksi dengan library OpenCV, langkah proses berikutnya adalah proses segmentasi warna. Proses ini dilakukan dengan cara mengklasifikasi berdasarkan warna obyek. Dalam pengambilan obyek warna melingkupi proses konversi warna RGB ke HSV (Hue Saturation Value), threshold, filter, dan smoothing. Gambar 3.13 Flowchart Deteksi Obyek Blob 4.1 Pengujian Pada bagian ini dilakukan pengujian terhadap program, pengujian ini didasarkan pada parameter-parameter yang telah ditentukan. Parameter-parameter ini meliputi keakuratan serta sensitivitas pengujian yang dilakukan meliputi : Gambar 3.11 Flowchart Proses Segmentasi Warna 3.3.1 Deteksi Obyek Blob Dalam mendapatkan posisi koordinat x,y dari proses deteksi obyek tidak semua warna diklasifikasi. Hanya warna HSV yang nilai parameternya ditetapkan. flowchart pada proses deteksi obyek blob dapat dilihat pada Gambar 3.13 Pengujian dengan mengukur hasil nilai HSV dengan menggunakan beberapa obyek warna. Pengujian terhadap fps (frame per second) pada web-camera dengan mengkukur kecepatan motion tracking pada obyek warna Pengujian terhadap arah motion tracking obyek warna berdasarkan pada sudut arah senapan pada game FPS. Pengujian dengan mengukur tingkat keakuratan nilai analog pada analog thumb. 4.1.1 Pengujian Deteksi Warna HSV Pengujian ini dilakukan dengan cara mengukur nilai HSV dari obyek warna RGB, warna yang digunakan adalah warna biru, hijau, merah, dan kuning. Hasil dari nilai HSV akan dikonversi menjadi threshold,
dan dijadikan parameter untuk motion tracking pada obyek warna. Nilai HSV Obyek Warna Merah Hijau Biru Kuning h1=; h2=23; s1=128; s2=245; v1=; v2=168; Tabel 4.1 Nilai HSV h1=45; h2=71; s1=34; s2=255; v1=; v2=255; h1=91; h2=152; s1=98; s2=255; v1=; v2=255; h1=24; h2=4; s1=41; s2=255; v1=133; v2=255; 4.1.2 Pengujian Kecepatan Motion Tracking Obyek Warna Pada pengujian ini dilakukan untuk menguji kemampuan sensitifitas frame per second (fps) web-camera dalam melakukan motion tracking pada obyek warna. Pengujian terhadap motion tracking ini dilakukan dengan cara melakukan pergerakan obyek warna dari posisi ke posisi lain. Tabel 4.2 Pengujian Kecepatan Motion tracking Pengujian Diam Sedang Cepat 1 Terdeteksi Terdeteksi Terdeteksi 2 Terdeteksi Terdeteksi Delay 1s 3 Terdeteksi Terdeteksi Delay 1s 4 Terdeteksi Terdeteksi Terdeteksi 5 Terdeteksi Terdeteksi Terdeteksi 6 Terdeteksi Delay 1s Delay 1s Rata-rata 1% 83,3% 5% Tabel 4.3 Pengujian Posisi Motion tracking obyek warna Pengujian o (normal) 3 o 45 o 9 o 1 Terdeteksi Terdeteksi Gagal Gagal 2 Terdeteksi Terdeteksi Gagal Gagal 3 Terdeteksi Delay 1s Gagal Gagal 4 Terdeteksi Delay 2s Gagal Gagal 5 Terdeteksi Gagal Gagal Gagal 6 Terdeteksi Gagal Gagal Gagal Rata-rata 1% 33,33% % % 4.1.4 Pengujian motion tracking pada Game FPS Pengujian dilakukan dengan menguji sensitifitas dan akurasi motion tracking pada obyek warna yang dideteksi oleh webcamera ke dalam game FPS berdasarkan sudut arah senapan. Warna background saat melakukan pengujian motion tracking tidak boleh memiliki kemiripan dangan obyek warna. Warna background yang digunakan pada motion tracking memiliki kemiripan dengan warna obyek warna, maka hasil motion tracking tidak akurat dan menghasilkan beberapa threshold dan area titik point pada obyek warna. Pada Gambar 4.1 merupakan hasil pengujian pada warna background memiliki kemiripan warna dengan obyek. 4.1.3 Pengujian Posisi Motion Tracking Obyek Warna Pengujian terakhir pada motion tracking ini dilakukan dengan beberapa variasi posisi sudut searah jarum jam yang dibentuk oleh obyek warna pada senapan, diantaranya o (normal), 3 o, 45 o dan 9 o. Masing-masing posisi dilakukan dalam waktu selama 1 menit setiap 1 posisi. Gambar 4.1 Pengujian motion tracking pada background dan obyek warna.
dalam game FPS dengan nilai konstan (nilai tetap). 4.1.6 Pengujian Push Button Gambar 4.2 Pengujian arah motion tracking pada game FPS Pengujian push button ini dilakukan dengan menekan button, dan melihat hasil keluaran pada serial monitor arduino Tujuan dari pengujian ini adalah untuk mengetahui kemampuan pengiriman dan penerimaan data. Pengujian pada arah motion tracking pada game FPS dilakukan dengan mencoba 4 arah, arah atas, bawah, kanan, kiri. Hasil pengujian pada Gambar 4.2 diatas, didapatkan hasil sesuai dengan arah yang ditentukan. 4.1.5 Pengujian Analog thumb dan Push Button Pengujian dilakukan dengan menguji analog thumb ke 8 arah, yaitu arah atas, bawah, kiri, kanan, kiri-atas, kiri-bawah, kanan-atas, dan kanan-bawah. Sedangkan pada push button dilakukan pengujian menggunakan karakter teks pada serial monitor. Push button terdiri dari 2 buah button, button 1 untuk jump (lompat) pada karakter dan button 2 untuk trigger (pelatuk) pada senapan. Sumbu X Y Tengah 487 536 Tabel 4.4 Nilai Analog Thumb Atas 487 Bawah 487 123 Kiri 536 Arah Kanan 123 536 Kiri-Atas Kiri-bawah 123 Kanan-Atas 123 Hasil pengujian data diatas dijadikan acuan untuk nilai setiap pergerakan arah karakter Kanan-Bawah 123 123 Gambar 4.3 Karakter Push Button Berdasarkan pengujian pada push button yang dilakukan dapat diketahui bahwa arduino dapat mengirim karakter dengan baik tanpa ada loss dan delay. 5.1 Kesimpulan Telah dirancang sebuah sebuah kendali senapan yang mampu berinteraksi dengan game FPS (First Person Shooter) pada platfrom PC. Alat ini menggunakan prinsip motion tracking dengan mendeteksi obyek warna. Dari hasil penelitian yang telah dilakukan motion tracking pada obyek warna, bekerja cukup baik dalam prosesnya. Bekerja sesuai yang diharapkan dapat mendeteksi pergerakan titik target pada obyek warna dengan cepat. Sistem mampu menangkap obyek warna dengan baik pada kecepatan 1-2 detik. Nilai warna HSV yang didapatkan menjadi parameter pada masing-masing warna yang berbeda dan menjadi acuan untuk setiap warna. Cahaya menjadi salah satu faktor yang mempengaruhi kualitas hasil dari proses yang terjadi didalam sistem. Semakin baik pencahayaannya (cahaya membelakangi web-camera) maka proses komputasi pendeteksian obyek warna akan semakin baik. Warna background yang
digunakan pada motion tracking tidak boleh memiliki kemiripan dengan obyek warna. Pada analog thumb menghasilkan nilai analog yang akurat sehingga pada pergerakan arah didapatkan nilai yang tetap/konstan, sehingga sistem pada analog thumb menghasilkan nilai sensitifitas dan akurasi yang baik. 5.2 Saran Dalam pembangunan sistem berteknologi computer vision yang menggunakan teknik motion tracking disarankan menggunakan web-camera yang khusus untuk teknik motion tracking, seperti PS3 eye sehingga akan memperkecil pengaruh noise dari hasil deteksi obyek. Penambahan fungsi pada HSV dengan menggunakan metode segmentasi dengan menseleksi pada warna RGB agar pemasukan nilai integer tidak dilakukan secara manual. Membuat tampilan GUI, agar program menjadi lebih user friendly. Sistem yang dibuat masih menggunakan sistem built-in USB, untuk pengembangan lebih lanjut digunakan sistem WiFi sehingga tidak membutuhkan koneksi menggunakan kabel USB. DAFTAR PUSTAKA [1] Albert Pujol, at All, "Real Time Pharmaceutical, Product Recognition Using. [2] Universitas Binus, Introduction to computer vision system, revisi 1. 25. [3] Tim Morris (24), Computer Vision and Image Processing, Palgrave Macmillan. [4] Suhendra, Adang. Catatan Kuliah Pengantar Pengolahan Citra, Universitas Gunadarma. [5] Nalwan, Agustinus, Pemrograman Animasi dan Game Profesional, Elex Media Komputindo, Jakarta, 1998. [6] Labian,Wauthier, Motion Tracking Project Synopsis,, university of california, Berkeley. [7] Anonim, Code::Block, http://www.codeblocks.org/index.php (diakses 3 juli 1:9 AM) [8] Gunanto, S.G. (29). Segmentasi warna bagian tubuh manusia pada citra 2D, Proceeding SENTIA. [9] Jeong, Sangoh, Histogram-Based Color Image Retrieval, Psych221/EE362 Project Report. Mar.15, 21. [1] Anonim, thumb stick, https://www.sparkfun.com/search/result s?term= thumb+ stick&what=products (diakses 3 juli 11:11 PM) [11] Arifianto, Deni, Funatik. Ari, Anti Gaptek Hardware Komputer. Jakarta. Kawan Pustaka 29 [12] Anonim, Arduino, http://arduino.cc (diakses 3 juli 6:28 AM) [13] Anonim, Arduino Leonardo with Headers, https://www.sparkfun.com/ products/11286 (diakses 23 Juli 11.3 PM) [14] Atmel, 8-bit AVR microcontroller with 32KByte In-System Programable of flash, Atmel Inc, USA, Februari 21. [15] G. Bradski, Kehler, Adrian, Learning OpenCV First, ed. New Yourk: O'Relly, 28. [16] Fadlisyah, Computer Vision dan Pengolahan Citra: Andi, 27. [17] Anonim, Blob library for OpenCV, http://code.google.com/p/cvblob/ (diakses 23 juli 12:18 PM)