Object Tracking Berbasis Background Substraction dan Kalman

advertisement
Object Tracking Berbasis Background Substraction dan Kalman Filter
Nasrulloh Ratu B.S.L
Deby Faisol Akbar
115060800111076
115060800111065
[email protected]
[email protected]
Abstrak
Dalam proses pendeteksian objek bergerak terdapat berbagai macam metode yang
digunakan. Beberapa diantaranya yang sering digunakan adalah background substraction dan
Kalman filter. Kedua metode ini memiliki fungsi yang berbeda terhadap pengolahan citra.
Penelitian ini berusaha untuk memadukan kedua metode ini untuk membantu dalam object
tracking pada video. Hasil yang didiperoleh adalah dengan metode subtraction objek berhasi
ditracking, dan dengan penambahan metode Kalman filter, estimasi pergerakan objek dapat
dilakukan.
Kata kunci: object tracking, Kalman filter, Substraction background.
I.
Pendahuluan
Dewasa ini perkembangan teknologi sudah
sangat pesat dan mencakup banyak bidang.
Salah satunya yang mendapat perhatian
cukup serius adalah pengolahan citra
digital. Di bidang ini tidak hanya citra
pada sebuah gambar yang diproses
melainkan mencakup video juga. Salah
satu hal pemrosesan pada video yang
berkembang dengan pesat saat ini adalah
object tracking. Pada penelitian kali ini
kami mengangakat tema pemrosesan citra
pada video yaitu object tracking. Disini
kami
akan
menggunaan
metode
background substraction yang merupakan
pengenalan objek dengan melakukan
pengolahan terhadap citra obek dan citra
background selain itu kami juga
menggunakan metode Kalman filter yang
merupakan algoritma estimator yang
berfungsi untuk menentukan estimasi state
berdasarkan state sebelumnya. Video yang
kami gunakan disini menggunakan video
objek yang kami
rekam sendiri
menggunakn perangkat perakam video.
II.
Tinjauan Pustaka
A. Matlab
Matlab adalah sebuah bahasa dengan
kemampuan tinggi untuk melakukan
komputasi
teknis.
Bahasa
ini
menggabungkan komputasi, visualisasi,
dan pemrograman dalam satu kesatuan
yang mudah digunakan. Pemakaian matlab
meliputi:
1.
2.
3.
4.
5.
6.
Matematika komputasi
Pengembangan algoritma
Akuisisi data
Pemodelan, simulasi, dan prototype
Grafik saintifik, dan enginering
Perluasan pemakaian seperti GUI
Matlab adalah sistem interaktif yang
mempunyai basis data array yang tidak
membutuhkan dimensi. Ini memungkinkan
kita dapat menyelesaikan banyak masalah
komputasi teknis, khususnya yang
berkaitan dengan formulasi matrik dan
vektor.
B. Subctraction
Detection
Method
Motion
Pemrosesan citra biasanya dapat
diartikan sebagai pemrosesan gambar
digital. dari sebuah gambar dapat
dilakukan berbagai macam images
prosessing, begitu pula dengan video.
Karena pada dasarnya terdiri atas beberapa
gambar yang saling berganti atau biasa
disebut frame. Biasanya dalam 1 detik
pada sebuah video terdapat 12 frame atau
gambar yang sequen beganti. Hal ini
berlangsung secara cepat sehingga kita
mungkin tidak menyadarinya. Pada proyek
ini akan dibahas pemrosesan pada video,
yaitu tracking objek bergerak. Penelitian
dalam segmentasi, estimasi dan tracking
objek bergerak pada video banyak
mendapat perhatian dalam beberapa tahun
belakangan ini. Tracking objek bergerak
merupakan suatu hal penting dalam sistem
video, misalnya pada olah raga, lalu lintas,
dll.
Beberapa metode telah digunakan
untuk mendeteksi objek bergerak secara
otomatis. Metode-metode ini dapat
diklasifikasikan dalam 3 kategor besar
yaitu: 1. Background substraction, 2.
Temporal different based, dan 3.
Pendekata berbasis kemungkinan. Tiaptiap metode memiliki kelebihan dan
kekurangan masing-masing.
Pokok proses dalam background
substraction
based
adalah
dengan
melakukan subtraksi terhadap gambar saat
ini dengan gambar sebelumnya. Kemudian
hasil substraksi akan dianalisa untuk
menemukan pergerakan objek. Namun
metode ini memiliki kekurangan yaitu jika
terdapat noise yang cukup besar maka
objek yang ditracking tidak akan dikenali.
C. Kalman Filter
Kalman filter merupakan estimator
rekursif. Ini berarti bahwa hanya estimasi
state dari langkah waktu sebelumnya dan
pengukuran saat ini yang dibutuhkan untuk
menghitung estimasi kondisi saat ini.
dengan demikian, tidak ada riwayat
pengamatan atau perkiraan diperlukan.
Kalman filter memiliki dua fitur khas.
Salah satunya adalah model matematika
yang dijelaskan dalam hal konsep statespace. Konsep lain adalah bahwa solusi
dihiutng secara rekursif. Biasanya kalman
filter digambarkan dengan model state
sistem dan model pengukuran. Model
state-space dijelaskan sebagai model state
sistem dan model pengukuran seperti yang
ditunjukkan pada persamaan 1 dan 2:
s(t) = O(t-1)s(t-1)+w(t)
z(t) = H(t)s(t)+v(t)
(1)
(2)
Dimana O(t-1) dan H(t) merupakan
state matrix transisi dan matrix
pengukuran secara berturut-turut. w(t) dan
v(t) merupakan noise gaussian white
dengan rata-rata nol. Kalman filter
memiliki 2 fase yaitu: langkah prediksi dan
langkah koreksi. Langkah prediksi
bertanggung jawab untuk memproyeksikan
ke depan kondisi saat ini, memperoleh
prior estimasi state S(t-). Tugas langkah
koreksi adalah untuk umpan balik. Ini
menggabungkan pengukuran aktual ke
dalam sebuah prior estimasi untuk
mendapatkan estimasi improved posterior
S(t+) . Yang mana sesuai dengan
persamaan 3.
S+(t) = S-(t) + k(t) [ z(t) - H(t) S-(t)
Yang mana k(t) pembobotan
dideskripsikan pada persamaan 4.
k(t) =
( )
( ) ( )( )
( ) ( )
( )
(3)
dan
(4)
Dalam (4), p(-t) adalah prior kovarian
kesalahan estimasi. Hal ini akan
didefinisikan pada persamaan (5).
P-(t) = E [e-(t) e- (t)T]
(5)
Dimana e-(t) = s(t) – s-(t) adalah prior
kesalahan estimasi. Selain itu, kovarian
error estimasi didefinisikan seperti
ditunjukkan dalam persamaan 6.
P+(t) = E[e+(t) e+(t)T]
(6)
Dimana e+(t) = s(t) – s+(t) adalah posterior
estimasi error.
Langkah presikdi dan langkah koreksi
dilaksanakan secara berulang seperti
ditunjukkan oleh persamaan 7,8,9,10, dan
11.
Langkah prediksi:
s-(t) = O(t-1) s+(t-1)
(7)
+
T
p (t) = O(t-1) p (t+1) O(t-1) + Q(t-1)
(8)
langkah koreksi:
k(t) = p-(t) H(t)T [H(t)p-(t) H(t)T+ R(t)] -1
(9)
+
s (t) = s-(t) k(t)[z(t) – H(t) s-(t)]
(10)
+
p (t)=[1-k(t)H(t)] p-(t)
(11)
Siklus prediksi-koreksi ini terus
berulang-ulang. Pada persamaan 9
perhitungan error R(t) dan perolehan
Kalman k(t) berada pada rasio terbalik.
Semakin kecil R(t), perolekan k(t) bobot
semakin besar. Dalam hal ini, pengukuran
yang lebih dipercaya sedangkan hasil
prediksi kurang. Namun sebagai priori
estimasi error p-(t) mendekati nol,
perolehan k(t) bobot sisa kurang berat.
Penghitungan aktual adalah kurang
dipercaya dan kurang, sedangkan hasil
prediksi lebih dipercaya lagi dan lagi.
III.
Pembahasan
A. Motion Detection
Untuk mendeteksi objek bergerak, kita
memilih background gambar dari gambar
sequence pertama. Kemudian masingmasing gambar dalam proses dikurangi
oleh gambar latar belakang. Secata teoritis,
daerah nol dalam hasil pengurangan adalah
lokasi dari gerak objek. Bagaimanapun
juga, ada beberapa hal yang lain yang
muncul dalam percobaan ini yang dapat
menjadikan perubahan background secara
keseluruhan pada percobaan ini. Beberapa
hal tersebut antara lain adalah: noises.
Perubahan cahaya dan gerakan
bayangan benda. Beberapa hal ini dapat
menyebabkan video traking menjadi
terlihat mengalami gangguan oleh karena
itu diperlukan sebuah video dengan
background tetap dan memiliki kontras
warna yang cukup baik. Metode yang kami
usung terdiri dari dua tahap utama yaitu:
deteksi objek dan pelacakan objek.
B. Background substraction
Background substraksi pada dasarnya
dihitung dengan mengambil perbedaan
intensitas citra dengan background gambar
tersebut. Dalam tulisan ini, langkah
pertama yang kami lakukan adalah dengan
menyimpan tiap frame pada variabel ke
variabel. Kemudian menghitung perbedaan
absolut masing-masing komponen warna
secara
terpisah.
Kemudian
kami
menghitung rata-rata dari tiga komponen
warna tadi untuk mendapat hasil
pengurangan background. Penghitungan
tersebut dirumuskan sebagai berikut:
A(x,y,c)=abs(Xn(x,y,c)-X0(x,y,c));
semua x,y,c
untuk
B(x,y)=(A(x,y,1)+A(x,y,2)+A(x,y,3))/3;
dimana
Xn dan X0 adalah citra dan background
citra masing-masing, x dan y adalah
koordinat persegi panjang, dan c adalah
indeks warna: 1 untuk merah, 2 untuk
hijau, dan 3 untuk biru. B(x,y) adalah hasil
subtraksi.
C. Deteksi Objek
Setelah mendapatkan region, maka
langkah selanjutnya adalah dengan
memberikan label pada region-region yang
didapatkan sebelunya. Dari sini tiap-tiap
region akan ditandai, kami menggunakan
fungsi “regionprops” pada matlab untuk
operasi ini. Untuk mendapatkan objek
bergerak kami menggunakan bubble sort
untuk mendapatkan region terbesar. Jadi,
dari region-region yang telah ditandai tadi
akan dilakukan sorting, dari sorting ini
akan diambil region terbesar. Berikut
adalah operasi bubble sort yang
digunakan:
for nn = 1:MM
if markimg(nn).Area >
markimg(1).Area
tmp = markimg(1);
markimg(1)=
markimg(nn);
markimg(nn)= tmp;
end
end
xwidth = bb(3);
ywidth = bb(4);
cc = markimg(1).Centroid;
centroidx(i)= cc(1);
centroidy(i)= cc(2);
bb disini adalah bounding box ,
xcorner dan ycorner adalah titik x
dimana sudut bounding box dibuat,
sedangkan xwidth dan ywidth
merupakan lebar dan tinggi bounding box.
Ukuran dari bounding box akan terus
berubah-ubah menyesuaikan dari ukuran
objek yang ditrak. Bounding box ini akan
terus muncul pada setiap objek pada tiaptiap frame yang akan terus bergantian.
Sehingga, akan nampak sebuah video yang
didalamnya terdapat objek yang sedang di
trak.
E. Kalman Filter 2D
Rumus umum yang berlaku pada
kalman filter 2D adalah:
X (t + 1) = F X (t) + W (t), W ~ N (0, Q),
Y (t) = HX (t) + V (t), V ~ N (0, R)
Menggerakan partikel pada subjek
kecepatan konstan terhadap gannguan acak
pada lintasannya. Posisi baru (x1, x2)
adalah posisi lama ditambah kecepatan
(DX1, dx2) ditambah noise w.
D. Objek Tracking
Dari tiap region yang telah ditandai
pada citra yang terdapat pada tiap frame,
akan membentuk sebuah objek ditandai
oleh sebuah box. Ukuran box akan
berubah sesuai dengan region objek,
seperti yang terlihat pada kode berikut:
bb = markimg(1).BoundingBox;
xcorner = bb(1);
ycorner = bb(2);
Dalam penghintungan posisi partikel
Menggunakn persamaan
F. Hasil Percobaan
Metode kami adalah pemrograman
dengan bahasa Matlab. Sedangkan video
yang kami gunakan disini adalah dengan
video yang kami buat sendiri melalui
perangkat perekam video.
Pada gambar 1 merupakan citra dari
background gambar. Gambar 2 merupakan
screenshot dari video dengan objek yang
sudah ditrak, nampak sebuah objek yang
berada dalam kotak berwarna biru.
Sedangkan gambar 3 dan 4 berturut-turut
merupakan gambar dari screenshot dari
video traking yang di dalamnya sudah
diterapkan, kotak biru merupakan kotak
traking objek sedang kotak berwarna
merah merupakan kotak dari kalman filter.
Gambar 1. Background citra
Gambar 2. Traking objek
Gambar 3. Kalman filter
IV.
Daftar pustaka
1. W.L. Khong, W.Y. Kow, H.T. Tan,
H.P. Yoong, K.T.K. Teo, Kalman
Filtering Based Object Tracking in
Surveillance Video System, School
of Engineering and Information
Technology
Universiti Malaysia Sabah.
2. Kleinbauer, Rachel. (November
2004).
Kalman
Filtering
Implementation
in
Matlab.
Helsinki; Helsinki University of
Technology.
3. Amrullah, Y. Roslyn. Pengenalan
Benda di Jalan Raya dengan
Metode Kalman Filter.
4. 2D Target Tracking Using Kalman
Filter.
http://www.mathworks.com/matlabc
entral/fileexchange/14243-2d-targettracking-using-kalmanfilter/content/target%20tracking%20u
sing%20kalman/kalman.m. Diakses:
tanggal 16 januari 2014.
Download