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.