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 100 Depok 16424 telp (021) 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 opensource IDE Code Blocksdan library OpenCV. Sedangkan, pemrograman perangkat keras menggunakan IDE arduino.
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, percobaan-percobaan 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.
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
dan biasanya dinyatakan dalam bilangan bulat positif, yaitu 0 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]
Gambar 2.3 Koordinat Citra Digital [4]
2.3 Motion Tracking
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
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.
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 (0 atau 1). Pada threshold pixel dengan nilai lebih tinggi dari nilai threshold yang
diantisipasi akan disimpan dan yang dibawah nilai threshold akan diturunkan menjadi 0 dengan sebuah pixel x1 operasi untuk tiap-tiap pixel adalah
If (
x
1 < threshold)
x1
=0 ; 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
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.
3. Perancangan Sistem 3.1 Rancangan Sistem
Sebelum sistem diimplementasikan, terebih dahulu dibuat sistematika rancangan pada keseluruhan 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.
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 c170 dengan 30 fps (frame per second) dan obyek yang dideteksi berupa warna RGB.
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.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
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 :
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
dan dijadikan parameter untuk motion tracking pada obyek warna.
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 100% 83,3% 50%
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 0o (normal), 30o , 45o dan 90o. Masing-masing posisi dilakukan dalam waktu selama 1 menit setiap 1 posisi.
Tabel 4.3 Pengujian Posisi Motion tracking obyek warna
Pengujian 0o (normal) 30o 45o 90o 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 100% 33,33% 0% 0%
4.1.4 Pengujian motion tracking pada Game FPS
Pengujian dilakukan dengan menguji sensitifitas dan akurasi motion tracking pada obyek warna yang dideteksi oleh web-camera 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.
Gambar 4.1
Gambar 4.2
Pengujian arah motion tracking pada game FPS
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 thumbdan
PushButton
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.
Tabel 4.4 Nilai Analog Thumb
S
Hasil pengujian data diatas dijadikan acuan untuk nilai setiap pergerakan arah karakter
dalam game FPS dengan nilai konstan (nilai tetap).
4.1.6 Pengujian Push Button
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.
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.
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. 2005.
[3] Tim Morris (2004), “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 30 juli 10:09 AM)
[8] Gunanto, S.G. (2009). “Segmentasi
warna bagian tubuh manusia pada citra 2D”, Proceeding SENTIA.
[9] Jeong, Sangoh, “Histogram-Based
Color Image Retrieval”,
Psych221/EE362 Project Report. Mar.15, 2001.
[10] Anonim, “thumb stick”, https://www.sparkfun.com/search/result s?term= thumb+ stick&what=products (diakses 30 juli 11:11 PM)
[11] Arifianto, Deni , “Funatik. Ari, Anti Gaptek Hardware Komputer”. Jakarta. Kawan Pustaka 2009
[12] Anonim, “Arduino”, http://arduino.cc (diakses 30 juli 6:28 AM)
[13] Anonim, “Arduino Leonardo with Headers” , https://www.sparkfun.com/ products/11286 (diakses 23 Juli 11.30 PM)
[14] Atmel, “8-bit AVR microcontroller with 32KByte In-System Programable of flash” , Atmel Inc, USA, Februari 2010.
[15] G. Bradski, Kehler, Adrian, “Learning OpenCV First”, ed. New Yourk: O'Relly, 2008.
[16] Fadlisyah, Computer Vision dan Pengolahan Citra: Andi, 2007.