2
(X)
_
Xw
(2.10)
dan
c = (I(X) -[(X))I(X)
(x,)w
.
(2.11)
Selanjutnya, untuk melakukan deteksi digunakan metode
template matching. Template matching adalah sebuah
teknik untuk menemukan sebuah area dari sebuah citra
yang menyerupai atau sama persis dengan sebuah template
(patch). Untuk bekerja dengan template matching
dibutuhkan dua buah gambar / citra.Yang pertama adalah
gambar sumber sebagai tempat pencarian, dan yang kedua
adalah gambar template sebagai bagian / potongan yang
ingin dicari.
III. PERANCANGAN DAN IMPLEMENTASI
A. Kerangka Perancangan Program
Setelah membuat perencanaan terhadap apa yang akan
dibuat pada tugas akhir ini, maka dibuatlah sebuah kerangka
besar program yang nantinya akan berubah menjadi sebuah
framework yang dapat digunakan untuk membuat object
tracking robot. Framework yang dimaksudkan agar tiap robot
dapat terintegrasi dengan mudah dengan sistem object
tracking yang dibuat dalam tugas akhir ini.
Sebelum melangkah lebih jauh, untuk program object
tracking dibuat sesederhana mungkin dan mudah dimengerti.
Secara garis besar, apa yang di inginkan dalam tugas akhir ini
adalah seperti dalam gambar berikut:
Gambar 3.1 kerangka besar sistem integrasi
Dari diagram framework di atas, yang menjadi domain dari
pembahasan tugas akhir ini adalah setengah bagian pertama.
Dan untuk mengintegrasikan sistem dengan robot maka harus
disesuaikan dengan jenis robot.
Algoritma pelacak yang dibuat merupakan penyederhanaan
dari metode TLD.Penyederhanaan dilakukan agar program
dapat tepat sasaran dan menghilangkan fungsi-fungsi yang
tidak diperlukan dalam pengembangan framework object
tracking ini. Diagram alir program dapat dilihat sebagai
berikut:
Gambar 3.2 diagram alir program object tracking
Dari proses diatas, inisialisasi adalah dengan mendefinisikan
sendiri objek yang dimaksud.
Gambar 3.3 diagram alir proses inisialisasi
Dalam implementasinya dengan OpenCV, kamera akan terus
bekerja hingga program selesai.
B. Deteksi
Deteksi yang digunakan disini adalah dengan
mengaplikasikan algoritma Template matching.Template
matching diaplikasikan dengan menggunakan normalized
correlation coefficient.Dalam library OpenCV, fungsi
template matching sudah tersedia dan dapat diatur dengan
parameter-parameter yang diinginkan.
Dalam menggunakan metode ini, digunakan beberapa
preprocessing, pertama harus disediakan sebuah tempat untuk
menampung hasil dari metode ini. Dengan membuat sebuah
mask dengan properti CV_32FC1 yang artinya memiliki
kedalaman 32bit, float, dan 1 channel.
Setelah itu dilakukan template matching dengan normalized
correlation coefficient.
Dengan gray adalah citra hasil preprocessing, templ adalah
citra hasil yang didefinisikan pada inisialisasi.Setelahnya
masih harus dilakukan normalisasi terhadap hasil yang
didapatkan.
Normalisasi dilanjutkan dengan mencari dua buah nilai
yaitu nilai minimum dan nilai maksimum dari hasil deteksi.
Pada metode normalizes correlation coefficient digunakan
nilai maksimum sebagai titik dimana template yang sesuai
ditemukan.
C. Pelacakan
Tahap pertama dalam melakukan pelacakan adalah dengan
memberikan fitur kepada objek yang ingin dilacak. Pemberian
fitur ini dilakukan dengan menggunakan metode Shi-Tomasi
yaitu good features to track. Fitur ini akan memberikan titik-
titik yang dapat di lacak sehingga selanjutnya bisa diproses
dengan metode Lucas-Kanade.
Setelah melalui metode Shi-Tomasi, dilanjutkan dengan
melihat pergerakan oleh citra yang telah dideksi
fiturnya.Digunakan metode Lucas-Kanade estimation of
optical flow yang dapat menganalisis pergerakan suatu
objek.Selanjutnya adalah mengaplikasikan forward-backward
error yaitu dengan mengaplikasikan kembali metode Lucas-
Kanade terhadap hasil sebelumnya.
D. Belajar
Proses terakhir dalam membuat sebuah program object
tracking adalah proses belajar (learning). Proses ini
merupakan gabungan dari dua proses sebelumnya. Proses ini
melihat tingkat akurasi dari hasil tracking dan detection.
J ika ditetapkan ambang batas suatu patch diterima sebagai
proses belajar dengan nilai 0,5. Lalu bila pada saat t tingkat
akurasi adalah 0,6 dan pada t+1 tingkat akurasi meningkat
menjadi 0,7 maka tidak akan masuk ke dalam proses belajar.
Sedangakan bila pada t+2 tingkat akurasi mencapai 0,55,
sistem langsung akan menyimpan patch untuk dijadikan
sebagai referensi baru. Hal ini dilakukan selain untuk
menghemat memori, juga untuk meningkatkan tingkat
kepercayaan object tracking ini.
E. Pengolahan Output
Output yang dihasilkan pada proses object tracking dengan
metode TLD adalah lokasi dimana objek yang kita lacak. Dari
data tersebut dapat diketahui beberapa data yang bisa diolah
lebih lanjut.Yang pertama adalah titik tengah dari objek yang
dilacak, yang kedua besar relatif objek yang dilacak. Yang
ketiga adalah besar perpindahan objek tiap frame relatif dari
citra kamera.
Titik tengah objek yang dilacak menjadi perlu untuk
membandingkan posisi pada saat t dan t+1.Dengan data ini,
dapat diketahui arah dari pergerakan objek.Dengan
menggunakan phytagoras, didapatkan sudut pergerkan objek.
doubl e mi nVal , maxVal ;
cv: : Poi nt mi nLoc, maxLoc, mat chLoc;
cv: : mi nMaxLoc( r esul t , &mi nVal , &maxVal , &mi nLoc, &ma
cv: : Mat ( ) ) ;
cv: : nor mal i ze( r esul t , r esul t , 0, 1,
cv: : NORM_MI NMAX, - 1, cv: : Mat ( ) ) ;
cv: : mat chTempl at e( gr ay, t empl , r esul t ,
CV_TM_CCORR_NORMED) ;
r esul t . cr eat e( r esul t _col s, r esul t _r ows,
CV_32FC1) ;
Gambar 3.4 phytagoras untuk mencari sudut
J ika P
1
(x,y) merupakan titik tengah objek pada t, dan P
2
(x,y)
adalah titik tengah objek pada t+1. Maka (x,y) bisa diperoleh
dan merupakan jarak vertikal dan horisontal dari titik P
1
dan
P
2
. Selain dengan metode perhitungan tadi, sudut juga dicari
dengan cara melihat arah pergerakan benda terhadap titik
tengah kamera. Karena yang akan menjadi input bagi robot
adalah pergerkana terhadap kamera. Sedngkan pergerakan
terhadap posisi sebelumnya dilakukan untuk mencari nilai
pembanding yang akan berguna sebagai referensi terhadap
kecepatan dan logika fuzzy.
Setelah mengetahui sudut, yang diperlukan setelahnya
adalah jarak antara P
1
dan P
2
.
Gambar 3.5 D1 jarak antara titik pada t dan t+1
D
1
dapat diperoleh dengan dua cara. Pertama adalah dengan
memanfaatkan x dan y, maupun dari sudut yang diperoleh
dari proses sebelumnya. Keduanya tentu akan menghasilkan
nilai yang sama.
Salah satu tujuan dari mencari jarak adalah untuk
menentukan kecepatan robot. Kecepatan benda yang akan
dilacak tentu tidak konstan. Oleh karena itu, jarak perpindahan
tiap frame dianalisa untuk menentukan berapa cepat tidaknya
gerakan robot.Dan untuk menjembatani keperluan itu,
digunakanlah fuzzy logic.
F. Logika Fuzzy
Pengaplikasian logika fuzzy disini lebih kepada mencari
kecepatan gerak robot.Setelah mengetahui arah gerak,
pertanyaan selanjutnya adalah berapa kecepatan yang
digunakan untuk mengikuti objek yang sedang dilacak.
Dengan logika fuzzy dilakukan pendekatan melalu rule atau
peraturan. Namun sebelumnya harus ditentukan variable
linguistik dan merbership function terlebih dahulu.
J ika kita menentukan input adalah jarak dan nilai dari jarak
tersebut adalah dekat, sedang, dan jauh. Kita bisa
membuatnya dapat grafik berikut.
Gambar 3.6membership function dari jarak
Setelah itu rules dibuat untuk mengatur kecepatan. Dalam
contoh sederhana yang ada dalam tugas akhir ini adalah:
Tentu tiap robot mempunyai spesifikasi sendiri.Oleh sebab
itu dalam tugas akhir ini hanya menyediakan tempat bagi
pengembang robot untuk membuat keluaran dari fuzzy yang
diinginkan.Sedangkan masukan dari fuzzy dapat berupa data-
data yang bisa diambil langsung dari hasil pelacakan objek.
IV. PENGUJ IAN DAN ANALISIS
A. Parameter Pengujian dan Keberhasilan
Parameter pengujian program adalah menggunakan sebuah
kamera yang akan melacak bola pingpong yang diletakkan
dan digerakkan pada lantai datar. Kamera mampu
menghasilkan video dengan resolusi 640x480 dan akan
diproses pada resolusi yang sama.
Pengujian dilakukan dua tahap, pertama adalah pengujian
permodul. Pengujian permodul dilakukan terhadap beberapa
poin penting dari metode TLD diantanya Shi-Tomasi, Lucas-
Kanade, background subtraction, dan template
matching.Kemudian dilakukan pengujian terhadap sistem
seluruhnya dengan melihat output secara keseluruhan yaitu
sudut dan jarak pergerakan benda. Perhitungan sudut yang
dilakukan ada dua, yang pertama adalah sudut pergerakan
objek terhadap posisi objek sebelumnya dan yang kedua sudut
pergerakan objek terhadap titik tengah kamera.
B. Pengujian Per Modul
1) Good features to track Shi-Tomasi
Gambar 4.7 hasil good features to track Shi-Tomasi
I F j ar ak I S dekat THEN kecepat an r endah
I F j ar ak I S sedang THEN kecepat an sedang
I F j ar ak I S j auh THEN kecepat an t i nggi
Gambar 4.8hubungan jumlah fitur dengan jarak
Pengujian ini bertujuan untuk melihat hubungan antara
jarak dengan jumlah fitur. Untuk itu, pada percobaan
pertama dilakukan pengukuran pada jarak 40 cm dan
percobaan kedua pada jarak 100 cm. Hasil dari percobaan
dapat dilihat pada tabel di bawah ini.
Objek J arak 1 Fitur 1 J arak 2 Fitur 2
Bola Pingpong 40 cm 57 100 cm 8
Lukisan 40 cm 374 100 cm 147
Kotak DVD 40 cm 91 100 cm 63
Tabel 1 hubungan jarak, objek, dan fitur
dari tabel di atas dapat dilihat bahwa fitur berbanding
terbalik dengan jarak.
2) Estimation of Optical Flow
Pengujian modul inidilakukan dengan menggerakkan bola
setelah dideteksi fiturnya.
Gambar 4.3 hasil pelacakan dengan estimation of optical flow
Pada gambar di atas dapat terlihat aliran bola yang
bergerak dari awal mula garis putih hingga berada di
posisi gambar. Pada proses ini pencahayaan sangat
penting untuk tidak berubah karena akan menghilangkan
fitur-fitur yang sudah di lacak.
3) Background Subtraction
Pengujian ini dilakukan dengan menghilangkan
background yang cenderung statis dan hanya
memunculkan objek yang sudah ditentukan, dalam hal
ini bola pingpong.
Gambar 4.4 hasil background subtraction pada bola
Citra bola adalah yang dilingkari dengan warna
merah.Sedangkan warna hitam adalah lantai yang
homogen. Pada bidang yang homogen, bola relatif
mudah ditemukan, akan tetapi dalam ruang dengan
background yang tidak homogen, objek akan semakin
sulit untuk dideteksi.
Gambar 4.5 deteksi background subtraction dalam ruang
4) Template Matching
njdkbwpada uji coba template matching, berbeda dari
sebelumnya, digunakan sebuah foto dankemudian
dibandingkan dengan foto yang lainnya. Sebagai
template adalah citra sebuah bola tanpa latar belakang
yang banyak.
Gambar 4.9 bola pingpong
Lalu sebagai gambar yang akan dicari, digunakan
sebuah bola yang sedang berada di lantai. Bola tersebut
berada pada titik (93, 244).
Gambar 4.10 bola pada permukaan datar homogen
Hasil deteksi dengan menggunakan template matching
didapat dalam citra CV_32FC1, yaitu kedalaman 32 bit,
float, dan satu channel.
Gambar 4.11 hasil deteksi dengan template matching
Bagian yang di tandai merah adalah titik dimana
template ditemukan, yaitu pada titik (86, 238). Pengujian
ini menggunakan normalized correation coefficien
(CV_TMCCOEFF_NORMED) sehingga nilai titik (86,
238) merupakan nilai maksimum dari lokasi
ditemukannya template. Dibandingkan dengan metode
lain, nilai dari normalized coefficient correlation yang
paling mendekati kebenaran dalam deteksi template.
Metode Template Matching Posisi Kesalahan posisi
CV_TM_SQDIFF (509, 306) (+416, +62)
CV_TM_SQDIFF_NORMED 509, 304 (+416, +60)
CV_TM_CCORR 513, 282 (+420, +38)
CV_TM_CCORR_NORMED 416, 51 (+323, -193)
CV_TM_CCOEFF 79, 235 (-14, -9)
CV_TM_CCOEFF_NORMED 86, 238 (-7, -6)
Tabel 2 tabel perbandingan metode template matching
C. Pengujian Menyeluruh
Pengujian ini dilakukan terhadap sebuah program utuh
yang sudah tidak dalam bentuk modul dan sudah disatukan
dalam fungsi-fungsi.Pada program yang telah jadi, yang
tampak hanyalah sebuah benda yang di lacak dan bounding
box yang selalu mengikuti kemanapun objek yang diikuti
bergerak selama objek tersebut masih ada di dalam jangkauan
kamera.
1) Pengujian tracking bola pada lantai
Dalam pengujian ini, sama seperti sebelumnya,
digunakan bola pingpong dengan kamera 1,3 MP. Bola
pingpong diletakkan di atas lantai yang bermotif coklat.
Gambar 4.12 melacak bola yang bergerak pada lantai
Pada gambar di atas menunjukkan bola yang sedang
dilacak keberadaannya dengan program yang sudah
dibuat.Selain itu, program ini juga dapat memberikan
arah gerak dan jarak perpindahan tiap frame dari bola
tersebut.Hal ini dapat dilihat pada gambar di bawah.
Gambar 4.13 hasil perhitungan sudut dan jarak pada pelacakan
bola
Hasil perhitungan sudut dan jarak dipakai untuk
keperluan tracking dengan menggunakan robot.Metode
pehitungan di atas berdasarkan hasil pelacakan titik
tengan dari objek yang kemudian dihitung dengan
menggunakan phytagoras.
2) Frame rate
Percobaan ini menguji besaran frame rate pada berbagai
skema pelacakan. Yang pertama adalah pelacakan
terhadap bagian dari suatu benda.Dalam skema ini, frame
rate cukup kecil berkisar antara 2-5 frame per second.
Hal ini disebabkan karena adanya kontur yang sama pada
area tepi bounding box dengan area di luarnya.
Gambar 4.14 melacak bagian mata dari lukisan dengan frame rate
rata-rata 4 fps
Berikut adalah tabel perbandingan dari barbagai skema
pelacakan dengan frame rate rata-rata yang dihasilkan:
Objek Frame rate (fps)
Wajah manusia dalamruangan 12
Bola pingpong satu warna pada lantai homogen 7
Bagian mata dari wajah pada lukisan 4
Buku yang sedang dipegang 9
Tabel 3 frame rate berbagai skema pelacakan
Semakin tinggi tingkat kekontrasan objek dengan
lingkungannya, semakin tinggi frame rate yang
didapatkan. Dengan frame rate yang tinggi, akan
semakin dapat melacak pergerkan objek dengan
kecepatan tinggi.
3) Pengujian kecepatan maksimum pelacakan bola
pingpong
Bentuk bola pingpong yang kecil mengharuskan jarak
antara kamera dan bola tidak terlalu jauh. Dalam
pengujian ini, digunakan jarak yang relatif tetap yaitu 40
cm. Pada jarak ini kecepatan maksimum yang bisa
dilacak adalah 0,5m/s. Dengan frame rate rata-rata pada
pelacakan bola pingpong adalah 7 frame per second.
Dengan diketaui 30 cm jarak pada lintasan terlihat
sebagai 610 piksel pada frame. Maka dalam satu frame,
bola dapat menempuh jarak maksimum agar masih dapat
dilacak sebesar
u,S
7
1uu = 7,1428S7 cm
atau bila dikonversi ke dalam piksel di layar adalah
7,1428S7
Su
61u = 14S pikscl
145 piksel merupakan pembulatan ke bawah yang masih
merupakan jarak aman perpindahan bola tiap frame.sa
4) Fuzzy logic
Setelah dilakukan pengujian terhadap kecepatan
maksimum dari sebuah bola, maka dapat didefinisikan
nilai dari jarak pada implementasi fuzzy logic. Nilai
maksimum adalah 145. J ika nilai tersebut didistribusikan
pada nilai dari J arak, maka akan didapatkan