abrari , 08:29:34, 19/04/2016
KALKULASI OBJEK BERGERAK SECARA REAL-TIME BERBASIS OBJECT TRACKING DENGAN METODE FRAME DIFFERENCING
LUTFI MUZAQI
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2016
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Kalkulasi Objek Bergerak Secara Real-time Berbasis Object Tracking dengan Metode Frame Differencing adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, April 2016 Lutfi Muzaqi NIM G64110068
ABSTRAK LUTFI MUZAQI. Kalkulasi Objek Bergerak Secara Real-time Berbasis Object Tracking dengan Metode Frame Differencing . Dibimbing oleh MUHAMMAD ASYHAR AGMALARO. Teknik Object Tracking merupakan salah satu teknik yang berguna di bidang Computer Vision. Salah satu kebutuhan yang penting adalah penggunaan Object Tracking secara real-time. Pada penelitian ini akan dilakukan penghitungan objek secara terkomputerisasi dengan memanfaatkan teknik object tracking. Objek akan diletakkan pada alat penggerak dan direkam pergerakannya. Pergerakan objek akan diproses secara real-time dengan menggunakan metode frame differencing untuk mendapatkan citra foreground. Metode Frame Differencing dapat membedakan objek dengan latar belakangnya. Kalkulasi dilakukan dengan memperhatikan pergerakan objek. Setiap objek yang melewati garis penghitung akan menambah jumlah hitungan. Akurasi hasil kalkulasi dihitung dengan nilai precision dan recall. Hasil terbaik dari penelitian ini didapat saat interval waktu peletakan objek sebesar 2 detik. Akurasi menghasilkan nilai precision dan recall sebesar 100% dan RMSE sebesar 0 dengan kemiringan alat penggerak yang landai. Pada kemiringan curam, nilai precision, recall dan RMSE berturut-turut sebesar 85%, 56,67% dan 2,71. Kata kunci: Frame Differencing, Kalkulasi Objek, Object Tracking.
ABSTRACT LUTFI MUZAQI. Real-time Moving Object Calculation Based on Object Tracking with Frame Differencing Method. Supervised by MUHAMMAD ASYHAR AGMALARO. Object Tracking is one of the most useful technique in the field of Computer Vision. One of the most important task is how to process the Object Tracking method in real time. This research will be conducted in a computerized object calculation. Object will be placed on a mover to be recorded. The movement of the object will be processed in real-time with frame differencing method to obtain a foreground image. Frame Differencing could distinguish the object from its background. Calculation performed by considering the movement of the object. When an object passes the counter line, the counter increases. Accuracy of calculation measured by precision and recall. The best result from this research is obtained when the time interval of the object placement is 2 seconds. Accuracy produces 100% on precision and recall and 0 on RMSE when the mover is steep. When the mover was set to be sloping, accuracy produces 85% on precision , 56,67% on recall and 2,71 on RMSE. . Keywords: Frame Differencing, Object Calculation, Object Tracking
KALKULASI OBJEK BERGERAK SECARA REAL-TIME BERBASIS OBJECT TRACKING DENGAN METODE FRAME DIFFERENCING
LUTFI MUZAQI
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2016
Penguji: 1 Aziz Kustiyo, SSi, MKom 2 Toto Haryanto, SKom, MSi
Judul Skripsi : Kalkulasi Objek Secara Real-time Berbasis Object Tracking dengan Metode Frame Differencing Nama : Lutfi Muzaqi NIM : G64110068
Disetujui oleh
Muhammad Asyhar Agmalaro, SSi, MKom Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi, MKom Ketua Departemen
Tanggal Lulus:
setelah pengesahan lembar kosong
PRAKATA Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga karya ini berhasil diselesaikan.. Penulis menyampaikan ungkapan terima kasih kepada Abdurrachman A. Rasjid dan R. Siti Zakiah selaku ayah dan ibu serta atas segala doa, motivasi, kasih, dan sayang yang tiada henti-henti kepada penulis serta ucapan terima kasih sebesar-besarnya kepada Bapak Muhammad Asyhar Agmalaro, Ssi, MKom selaku pembimbing yang senantiasa tulus memberikan bimbingan dan motivasi kepada penulis selama menyusun karya ini. Terima kasih tak lupa saya sampaikan juga kepada: 1 Bapak Toto Haryanto Skom MSi dan Bapak Aziz Kustiyo SSi MKom sebagai dosen penguji. 2 Sahabat-sahabat satu pembimbing, yaitu Dede Nur Fitriansyah dan Timotius Devin yang selalu mendukung dan membantu pada saat kegiatan penelitian. 3 Muhammad Fajar Aria Wijaya, Agum Aditama, Erwansyah Adriantama, dan M. Zahid Rausyanfikri selaku teman-teman bermain yang selalu menerangi kegelapan dan selalu ada dalam keadaan baik atau buruk. 4 Iis Saisaria Romadona, untuk motivasi, doa, dan perhatian sehingga penulis dapat menyelesaikan penelitian ini. 5 Ahmad Fauzi, Tri Ardini, dan Fikri Ardiansyah, untuk setiap dukungan kepada penulis untuk bisa selalu lebih baik lagi. 6 Teman-teman Ilmu Komputer angkatan 48 dan seluruh teman-teman yang tidak dapat disebutkan satu per satu. Akhirnya penulis berharap seluruh kegiatan penelitian ini dapat berguna khususnya bagi diri penulis sendiri dan umumnya bagi kemajuan Institut Pertanian Bogor dan Bangsa Indonesia.
Bogor, April 2016 Lutfi Muzaqi
setelah prakata lembar kosong
DAFTAR ISI DAFTAR TABEL
gambar
DAFTAR GAMBAR
lampiran
vi vi
PENDAHULUAN
1
Latar Belakang
1
Perumusan Masalah
1
Tujuan Penelitian
2
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
TINJAUAN PUSTAKA
2
Object Tracking
2
Metode Frame Differencing
2
METODE PENELITIAN
3
Data Penelitian
3
Tahapan Penelitian
3
Lingkungan Pengembangan
6
HASIL DAN PEMBAHASAN
7
Akuisisi Citra
7
Implementasi dan Representasi Frame Differencing
8
Implementasi Algoritme Kalkulasi
14
Evaluasi
17
SIMPULAN DAN SARAN
18
Simpulan
18
Saran
18
DAFTAR PUSTAKA
19
kalau cuma satu tabel nggak usah pakai daftar
DAFTAR TABEL 1 Hasil evaluasi percobaan dengan perlakuan landai dan curam
17
DAFTAR GAMBAR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Tahapan penelitian Ilustrasi tahapan akuisisi citra Diagram alir implementasi Frame Differencing pada citra Alat penggerak, tripod dan kamera Potongan Source Code pengambilan gambar benerin juga di dalam tulisan Tahapan implementasi Frame Differencing Ilustrasi subtraksi 2 buah frame Ilustrasi thresholding dari difference Image Ilustrasi proses Smoothing pada citra Ilustrasi penangkapan objek saat tidak ada gerakan pada frame Ilustrasi penangkapan objek saat ada pergerakan pada frame Ilustrasi penangkapan objek dengan kondisi dua objek Ilustrasi penangkapan objek saat kamera bergerak Ilustrasi penentuan posisi spasial objek pada frame Skenario objek berhasil dikalkulasi Skenario objek tidak dikalkulasi
4 4 5 7 7 8 10 10 11 12 13 13 14 15 16 17
DAFTAR LAMPIRAN 1 Hasil percobaan dengan kemiringan curam 2 Hasil percobaan dengan kemiringan landai
20 20
PENDAHULUAN
setelah et al titik! benerin semuanya
Latar Belakang Teknik Object Tracking merupakan salah satu task yang penting dan diminati dalam bidang Computer vision. Faktor-faktor pendukung seperti komputer dan kamera yang semakin canggih menyebabkan penerapan object tracking menjadi semakin mudah. Beberapa penerapan teknik object tracking adalah traffic monitoring, navigasi kendaraan, dan pengenalan dan kalkulasi objek. Teknik ini dapat menjadi kompleks dengan melihat beberapa faktor, antara lain derau pada citra, bentuk objek yang kompleks, dan kebutuhan pemrosesan secara real-time (Yilmaz et al 2006). Penerapan teknik object tracking dapat dilakukan dalam kegiatan sehari-hari. Salah satu kegiatan tersebut adalah otomatisasi penghitungan objek. Hal ini disebabkan kegiatan penghitungan objek dengan kuantitas yang banyak memerlukan waktu dan tenaga yang besar. Sebagai contoh, objek yang dirasa memerlukan penghitungan secara otomatis karena kuantitasnya yang besar adalah objek berupa mutiara. Selama ini penghitungan dan pengklasifikasian jumlah mutiara yang diproduksi perharinya oleh petani budidaya mutiara masih dilakukan secara manual (Yanlong et al 2010). Hal ini dapat menyebabkan kemungkinan salah penghitungan akibat faktor human error dan ketidapastian dalam penjumlahan mutiara. Kesalahan ini dapat berpengaruh pada nilai produksi di sektor pembudidayaan mutiara sehingga masih sangat jauh di bawah target untuk memenuhi permintaan pasar di Indonesia maupun permintaan ekspor ke mancanegara. Oleh karena itu, otomatisasi dengan menggunakan object tracking diharapkan dapat mengatasi keterbatasan teknologi dalam pemenuhan produksi mutiara dengan salah satunya yaitu memudahkan kegiatan penghitungan jumlah objek mutiara. Penelitian oleh Prabhakar et al (2012) melakukan identifikasi pergerakan objek pada citra secara real-time. Segmentasi citra dilakukan dengan metode frame differencing. Metode tersebut memeriksa perbedaan antar frame dengan memperhatikan perubahan pada daerah pixel tertentu. Pada penelitian ini, akan dilakukan kalkulasi objek secara real-time dengan menggunakan frame differencing dan objek yang dapat digerakkan. Objek tersebut akan di-track pergerakannya pada video webcam dan setiap hasil track yang melewati suatu sensor akan diidentifikasi sebagai pertambahan objek. Sensor untuk mengidentifikasi objek dibuat dengan menggunakan sebuah counterline (garis penghitung) pada frame video yang diproses. Hasil akhir yang diharapkan adalah objek tersebut berhasil dikalkulasi dan didapatkan akurasi penghitungannya.
Perumusan Masalah Berdasarkan latar belakang di atas, maka perumusan masalah dalam penelitian ini adalah: 1 Bagaimana cara melakukan segmentasi citra pada citra bergerak secara realtime. 2 Bagaimana cara melakukan kalkulasi objek pada citra bergerak secara realtime.
2
Tujuan Penelitian Tujuan dari penelitian ini adalah melakukan kalkulasi objek dengan menggunakan metode Frame Differencing.
Manfaat Penelitian Manfaat penelitian ini adalah untuk mengurangi kesalahan yang dapat terjadi saat kalkulasi objek masih dilakukan secara manual oleh kemampuan manusia. Ruang Lingkup Penelitian 1 2 3 4
Ruang lingkup penelitian ini, ialah: Ukuran frame yang digunakan 640X480 pixel. Objek bergerak berbentuk seperti mutiara yang digunakan adalah kelereng. Lintasan objek bergerak menggunakan pipa paralon yang di belah dua. Ketinggian lintasan dibuat 14 cm untuk ketinggian landai dan 28 cm untuk ketinggian curam.
TINJAUAN PUSTAKA Object Tracking Secara sederhana tracking dapat didefinisikan sebagai penentuan lintasan suatu objek yang bergerak pada suatu bidang. Hal ini menandakan sebuah tracker akan memiliki informasi atau penanda pada objek yang di-track selama objek tersebut bergerak. Selain itu, informasi yang dimiliki oleh tracker juga bisa berupa bentuk, area, dan orientasi dari objek. Hal tersebut disesuaikan dengan domain dari tracking yang digunakan. Pada object tracking, sebuah objek dapat didefinisikan sebagai sesuatu yang akan dianalisis. Contohnya adalah mobil di jalan raya, ikan di akuarium, dan kapal di lautan. Objek-objek tersebut akan bisa dianalisis dengan melakukan tracking pada domain masing-masing. Objek dapat direpresentasikan berdasarkan bentuk dan kemunculannya. Beberapa cara representasi objek yang umum digunakan antara lain: points, primitive geometric shapes, object silhouette and contour, articulated shape model, dan skeletal model. Sementara itu representasi fitur objek yang paling umum adalah probability densities of object appearances, templates, active appearance models, dan multiview appearances models(Yilmaz et al 2006).
Metode Frame Differencing Metode Frame Differencing digunakan untuk mendeteksi sebuah objek dari citra video. Dibutuhkan 2 buah frame yaitu existing frame dan reference frame untuk video nggak perlu miring perbaiki semua
3
spacing paragraf nol
mendeteksi objek. Metode ini mengadopsi metode Pixel-based Difference. Metode ini merupakan metode yang umum digunakan untuk mendeteksi objek bergerak. (Singla 2014) Metode ini digunakan untuk mendapatkan objek dengan membandingkan 2 buah frame dalam interval waktu tertentu. Pembandingan dilakukan dengan melakukan subtraction antar frame dengan fully differential subtraction seperti digambarkan pada persamaan 1.
Dk = |fk - fk-3| (Alex dan Wahi 2014)
(1)
Dk pada persamaan 1 adalah selisih absolut dari Fk dan Fk-3. Fk adalah frame yang diambil pada waktu k. Sehingga pada persamaan tersebut Dk adalah hasil selisih absolut antara frame saat ini dengan frame pada tiga satuan waktu sebelumnya. Algoritme Frame Differencing I Ambil Fi sebagai input. II Ambil Fi-3 dari image buffer.. cek mana yg harus miring! III Lakukan Operasi Frame Differencing pada kedua frame tersebut. DIFFi = Fi-3 - Fi IV Operasi thresholding dan Morfologi (a) Thresholding I 255; F >T Fbin= 0 ; selainnya (b) Morfologi Fmor = morphology(Fbin) V Penentuan Center Of Gravity(COG) objek dengan menemukan kontur pada Fmor menggunakan rectangular box. VI Semua informasi centroid disimpan dalam global array dan ulangi semua tahapan untuk frame selanjutnya
Algoritme 1 Algoritme Frame Differencing pada penelitian Prabhakar et al (2012)
METODE PENELITIAN Data Penelitian Data yang akan digunakan dalam penelitian ini adalah objek bergerak yang ditangkap secara real-time oleh kamera.
Tahapan Penelitian Tahapan yang dilakukan pada penelitian ini dapat dilihat pada Gambar 1.
jadikan di paragraf saja misalnya algoritme blablabla sebagai berikut:
4
Akuisisi Citra
Implementasi dan Representasi Frame Differencing
Evaluasi
Implementasi Algoritme Kalkulasi
Gambar 1 Tahapan penelitian
Akuisisi Citra
spacing paragraf
Akuisisi citra dilakukan dengan mengambil frame video secara real-time. Tahapan ini dimulai dengan merangkai alat yang akan digunakan. Alat yang dipersiapkan adalah objek, seperangkat alat penggerak, tripod, dan kamera. Objek akan digerakkan pada alat penggerak dan kamera akan merekam pergerakan kelereng dengan sudut pengambilan 45 derajat dari arah samping. Gambar 2 mengilustrasikan tahapan akuisisi citra beserta alat yang digunakan. Nilai a adalah sudut kemiringan lintasan dari sumbu vertikal. Nilai b adalah ketinggian ujung lintasan. Pada penelitian ini ketinggian lintasan dibedakan menjadi dua, yakni 14 cm dan 28 cm dan disebut sebagai kemiringan landai dan curam secara berturut-turut. Panjang lintasan diilustrasikan dengan huruf c.
Gambar 2 ilustrasi tahapan akuisisi citra Implementasi dan Representasi Algorime Frame Differencing Pada gambar 3 digambarkan diagram alir implementasi Frame Differencing. Pada tahap akuisisi citra, telah didapatkan citra bergerak dengan objek yang akan diproses. Proses selanjutnya adalah memisahkan objek dari background-nya. Citra yang telah didapat akan diproses dengan algoritme Frame Differencing untuk mendapatkan objek yang diinginkan.
5
Input kamera live
Capture 2 Frames
fi-1
fi
Frame Subtraction
Thresholding awal
Blur/Smoothing
Thresholding akhir
Objek Foreground Gambar 3 Diagram alir implementasi Frame Differencing pada citra Pada penelitian ini dilakukan proses subtraction antara Fi dengan Fi-1. Hal ini disebabkan oleh besarnya perpindahan objek saat dijalankan pada setiap satuan waktu. Besarnya perpindahan tersebut menyebabkan perbedaan posisi objek pada Fi dengan Fi-1 juga besar. Dengan demikian perbedaan satu buah frame akan mampu membedakan posisi objek.
spacing paragraf
Hasil dari subtraction adalah region dari citra yang dianggap sebagai objek. Setelah didapatkan citra hasil subtraction, dilakukan proses binarization dengan melakukan thresholding pada citra. Proses thresholding dilakukan dengan parameter 20. Penentuan nilai 20 tersebut dilakukan dengan persepsi bahwa intensitas warna lintasan dengan objek cukup berbeda. Sehingga nilai tersebut sudah mampu untuk membedakan antara objek dengan latar belakangnya. Selanjutnya dilakukan Smoothing dengan normalized box filter (blur). Terakhir, Thresholding akhir dilakukan pada citra untuk mendapat citra biner dari hasil smoothing. Implementasi Algoritme Kalkulasi Hasil akhir dari tahapan sebelumnya adalah citra objek foreground. Setelah objek diakuisisi, proses pertama yang dilakukan adalah menemukan kontur dari objek tersebut. Pencarian kontur objek dilakukan untuk mendapatkan posisi spasial
6
objek dalam citra. Setelah kontur ditemukan, centroid atau titik tengah objek dicari dengan menentukan titik tengah dari kontur. Titik tengah objek digunakan sebagai penanda posisi spasial objek. Posisi objek akan berpengaruh pada proses kalkulasi. Tahap Implementasi kalkulasi dilakukan dengan melihat posisi spasial objek relatif terhadap citra. Posisi spasial objek menjadi parameter penting dalam proses kalkulasi. Posisi objek yang terdeteksi dibandingkan dengan posisi garis penghitung yang dibuat secara vertikal di bagian tengah citra. Posisi garis penghitung akan berfungsi sebagai sensor. Warna garis akan berubah dan nilai penghitung akan bertambah saat objek melewatinya. Evaluasi Hasil penelitian berupa jumlah objek yang telah berhasil dikalkulasikan. Evaluasi akan dilakukan terhadap hasil kalkulasi tersebut. Evaluasi untuk kalkulasi dilakukan dengan membandingkan kalkulasi secara manual dengan kalkulasi dengan sistem. Nilai precision dan recall dan root square mean error (RMSE) akan digunakan sebagai nilai mutu dari hasil kalkulasi. Penentuan nilai Precision, recall dan RMSE dilakukan menggunakan persamaan (2) dan (3). True Positive Precision = Confidence = Predicted Positive True Positive Recall = Sensitivity = Real Positive (Powers 2011)
RMSE =
1 n
∑ni=1 e2i (Chai 2014)
(2) (3)
Lingkungan Pengembangan Spesifikasi perangkat keras, perangkat lunak yang digunakan untuk penelitian ini adalah sebagai berikut: Perangkat lunak: 1 Sistem operasi Windows 8.1 2 Bahasa pemrograman C++ akhiri titik semua 3 Library OpenCV 2.4.11 4 Editor Microsoft Visual Studio Community 2013 Perangkat keras: 1 Processor Intel Core i3 akhiri titik 2 RAM 4 GB 3 Hardisk berkapasitas 500 GB 4 Layar LCD HD 14 inci 5 Kamera Microsoft Lifecam Studio dengan pengaturan 30 fps.
koma
7
HASIL DAN PEMBAHASAN Akuisisi Citra Tahap akuisisi citra dilakukan dengan mengumpulkan data dan merangkai alat perekam. Rangkaian alat perekam dibuat secara sederhana. Alat perekam meliputi alat penggerak, tripod dan kamera. Alat penggerak digunakkan untuk menggerakkan objek untuk direkam. Kamera perekam dan tripod diletakkan di bagian samping atas alat penggerak. Kamera yang digunakan adalah Microsoft Lifecam. Objek akan direkam dan berjalan secara horizontal pada frame kamera. Sampel data dan seperangkat alat perekam dapat dilihat pada Gambar 4.
Gambar 4 Alat penggerak, tripod dan kamera
kotak jangan lebih margin
Pengambilan rekaman pergerakan objek dilakukan menggunakan fungsi VideoCapture pada library opencv. Proses pengambilan gambar dimulai dengan mengaktifkan kamera perekam. Kamera yang digunakan harus aktif dan terhubung dengan program yang dijalankan. Jika ada kesalahan pada saat mengaktifkan kamera, program akan menampilkan pesan error. Hasil dari tahapan ini adalah rekaman citra secara langsung. Potongan source code dalam mengaktifkan kamera dapat dilihat pada Gambar 5. 1 2 3 4 5 6 7
VideoCapture capture; capture.open(1); If (!capture.isOpened()){ cout << “ERROR ACQUIRING VIDEO FEED\n”; getchar(); Return -1; }
Gambar 5 Potongan Source Code pengambilan gambar
8
Implementasi dan Representasi Frame Differencing Pada tahapan ini dilakukan pemisahan objek dari latar belakangnya. Objek yang berada di dalam citra akan dipisahkan untuk diproses selanjutnya. Algoritme Frame Differencing membandingkan setiap pixel pada dua buah frame. Bagian pixel yang berubah akan dianggap sebagai objek dan yang tidak berubah dianggap sebagai latar. Implementasi Frame Differencing Frame 1
Difference image Subtract ini gambar full english?
Thresholding
Frame 2 Thresholding Smoothing
Final Image
Blurred Image
Prethreshold Image
Gambar 6 Tahapan implementasi Frame Differencing Gambar 6 mengilustrasikan tahapan implementasi algoritme Frame Differencing dan memperlihatkan hasil dari tiap tahapan. Proses tersebut dimulai dengan mengambil dua buah frame. Kemudian dilakukan proses differencing pada kedua buah frame tersebut. Hasil dari tahapan tersebut kemudian di-threshold untuk mendapatkan citra prethreshold. Proses smoothing dilakukan untuk mendapatkan citra dengan objek yang lebih baik. Proses terakhir adalah thresholding pada citra untuk mendapat citra akhir yang akan diproses lebih lanjut. Implementasi algoritme Frame differencing dilakukan dengan menggunakan fungsi-fungsi pada library opencv pada bahasa C++. Algoritme tahapan ini dapat dilihat pada algoritme 1.
9
Algoritme Untuk Implementasi Metode Frame Differencing I Ambil dua buah frame sebagai F(i) dan F(i-1). II Konversi kanal F(i) dan F(i-1) ke kanal grayscale Misal y adalah nilai pixel dalam kanal grayscale F(i)rgb → Y = 0.299 R + 0.587 G + 0.114 B →F(i)y III Operasi Frame Differencing dilakukan pada kedua buah frame menghasilkan sebuah frame hasil D(i) D(i) = | F(i) - F(i-1) | IV Operasi thresholding dan Smoothing dilakukan pada D(i) dengan parameter thresholding = 20 dan ukuran kernel = 10. Misal y(i,j) adalah nilai pixel pada D(i), untuk i=1 sampai N dan j=1 sampai M lakukan (c) Thresholding I teliti lagi, ada beberapa 255; y(i,j) >20 yang harusnya miring y(i,j) = tapi nggak miring 0 ; selainnya (d) Smoothing y(i,j) = ∑k,l y(i+k, j+l)h(k,l) dengan h(k,l) adalah kernel filter (e) Thresholding II 255; y(i,j) >20 y(i,j) = 0 ; selainnya V Penentuan objek dengan menemukan kontur pada D(i). Misal O(i) adalah objek yang terdapat pada D(i) dan y(k,l)adalah pixel pada D(i) dengan k dan l adalah posisi spasial pada D(i), untuk k=1 sampai M dan l=1 sampai N lakukan Jika y(k,l) = 255 y(k,l) ∈ O(i) VI Penentuan nilai spasial objek dengan metode bounding box untuk mencari nilai tengah objek. Misal x(i) adalah nilai titik penanda objek dalam O(i) Untuk setiap y(k) ∈ O(i) max(y(k)) – min (y(k)) x(i) = 2
Algoritme 2 Implementasi Frame Differencing antara
algoritme tidak diberi caption, cukup diberi paragraf pengantar
Pada Algoritme diatas dapat dilihat proses pembandingan antar 2 frame. Proses pertama adalah pembacaan 2 buah frame dan masing masing frame dikonversi ke dalam kanal grayscale. Operasi frame differencing dilakukan dengan membandingkan setiap pixel pada kedua buah frame. Operasi tersebut menjalankan metode fully differential pada pembandingan kedua frame sehingga akan dihasilkan sebuah citra hasil subtraction. Citra tersebut memisahkan antara objek yang bergerak dengan latar belakangnya. Ilustrasi dapat dilihat pada Gambar 7.
10
Frame 1
Difference Image Subtract
Frame 2 Operasi Frame Differencing dilakukan pada kedua buah frame menghasilkan sebuah frame hasil D(i) D(i) = | F(i) - F(i-1) | Gambar 7 Ilustrasi subtraksi 2 buah frame Selanjutnya dilakukan thresholding awal untuk mendapatkan citra biner. Proses ini mengubah warna objek yang bergerak menjadi putih dan latarnya menjadi hitam. Ilustrasi thresholding dapat dilihat pada Gambar 8. Thresholding
Difference Image
Prethreshold Image Thresholding I 255; y(i,j) >20 y(i,j) = 0 ; selainnya
Gambar 8 Ilustrasi thresholding dari difference Image Proses selanjutnya adalah smoothing untuk mengurangi noise pada citra. Proses memanfaarkan fungsi blur. Proses smoothing dilakukan tengan teknik Box Filter. Pada percobaan ini ukuran kernel diatur sebesar 10. Pengaturan tersebut diasumsikan sudah cukup untuk melakukan proses smoothing.
11 Setelah dilakukan smoothing maka dilakukan thresholding akhir pada citra. Pada proses ini dapat dilihat fungsi threshold kembali digunakan. Seluruh parameter yang digunakan pada proses ini sama seperti pada proses thresholding sebelumnya. Ilustrasi akhir objek dapat dilihat pada Gambar 9. Citra pada Gambar 9 akan diperbesar agar hasil smoothing dapat terlihat lebih jelas.
Smoothing
Smoothing y(i,j) = ∑k,l y(i+k, j+l)h(k,l) dengan h(k,l) adalah kernel filter
Gambar 9 Ilustrasi proses Smoothing pada citra Hasil akhir dari tahapan ini berbentuk citra biner dengan objek yang sudah dipisahkan dari latar belakangnya. Objek yang bergerak berwarna putih dan latarnya berwarna hitam. Walaupun pada citra objek sudah terpisah dari latarnya, posisi dan kontur objek belum dapat ditentukan. Sehingga dilakukan pencarian kontur untuk menentukan posisi objek. Representasi Frame Differencing Algoritme Frame Differencing dapat menemukan objek bergerak pada dua buah frame yang berderetan. Hal tersebut terjadi karena perubahan intensitas pixel pada kedua frame. Perubahan intensitas tersebut dipengaruhi oleh adanya gerakan. Hasil percobaan pada penelitian ini menemukan beberapa kondisi yang direpresentasikan pada gambar-gambar berikut. Tidak ada gerakan pada frame Saat tidak ada gerakan pada kedua frame maka akan menghasilkan output berupa gambar biner yang berwarna hitam. Hal ini disebabkan oleh hasil subtraksi dari dua buah frame yang sama. Hasil subtraksi tersebut bernilai 0 untuk semua pixel. Hal tersebut dapat dilihat pada Gambar 10.
12
Frame 1
Difference Image
Frame 2
Final Image
Gambar 10 Ilustrasi penangkapan objek saat tidak ada gerakan pada frame Ada gerakan pada frame Saat ada gerakan, algoritme akan menangkap objek dengan memperhatikan perbedaan intensitas pada dua buah frame. Hasil subtraksi frame akan menunjukkan bagian yang memiliki intensitas lebih besar dari 0 adalah bagian yang dianggap sebagai objek. Pada citra biner, objek adalah bagian pada citra yang berwarna putih. Penjelasan tersebut dapat dilihat pada Gambar 11. Pada Gambar 11 terlihat objek yang ditangkap berada pada sisi kanan atas dari frame. Penangkapan objek tersebut dilakukan berdasarkan proses subtraksi dari frame 1 dan frame 2. Kondisi tersebut adalah kondisi ideal karena pada frame 1 objek belum ada dan pada frame 2 objek yang diinginkan ada. Hal ini membuat proses subtraksi antar frame menjadi baik dan hasil penangkapan objek relatif bagus. Sementara itu terdapat juga kondisi dimana hasil deteksi objek menjadi dua objek. Kondisi ini terjadi saat objek yang diinginkan telah ada pada frame 1 tetapi masih ada pada frame 2. Hal tersebut membuat hasil subtraksi kedua buah frame tidak menghasilkan satu buah objek. Hal ini disebabkan pada kedua frame terdapat perbedaan intensitas pixel pada kedua bagian yang terdapat objek. Sehingga kedua objek tersebut akan terkena dampak dari subtraksi. Hal tersebut menyebabkan hasil yang didapat adalah citra biner dengan dua buah objek. Gambar 12 mengilustrasikan kondisi tersebut.
13
Frame 1
Difference Image
Frame 2
Final Image
Gambar 11 Ilustrasi penangkapan objek saat ada pergerakan pada frame
Frame 1
Frame 2
Difference Image
Final Image
Gambar 12 Ilustrasi penangkapan objek dengan kondisi dua objek
14
Kondisi pada Gambar 12 tersebut menyebabkan kesalahan pendeteksian objek. Hasil dari deteksi objek adalah dua buah objek. Hal ini menyebabkan region objek yang dideteksi menjadi lebih besar. Namun, kesalahan pendeteksian objek tersebut tidak membuat objek yang didapat menjadi tidak valid. Objek yang didapat tetap bisa dideteksi untuk keperluan penelitian ini. Hal tesebut disebabkan oleh tidak adanya analisis lebih jauh mengenai bentuk objek yang didapat. Penelitian ini dibatasi hanya untuk menghitung jumlah objek yang terdeteksi dengan mengesampingkan bentuk dan tampilan dari objek. Oleh karena itu kondisi pendeteksian dua objek masih dapat dianggap sebagai kondisi yang baik. Kondisi lain yang menyebabkan kesalahan penangkapan objek adalah adanya pergerakan pada kamera perekam dan autofocus pada kamera. Dengan bergeraknya kamera, maka frame akan berubah secara signifikan. Hal ini menyebabkan perubahan intensitas pada hampir semua pixel atau suatu bagian yang cukup besar pada frame. Sehingga objek yang didapat menjadi tidak valid. Hal tersebut dapat dilihat pada Gambar 13.
Frame 1
Difference Image
Frame 2
Final Image
Gambar 13 Ilustrasi penangkapan objek saat kamera bergerak Implementasi Algoritme Kalkulasi Implementasi algoritme kalkulasi dibagi menjadi dua bagian. Bagian pertama adalah penentuan posisi spasial objek pada frame. Posisi spasial objek diperlukan untuk proses kalkulasi. Informasi posisi spasial objek mempengaruhi kalkulasi karena proses penambahan terjadi saat posisi objek melewati garis penghitung.
15 Proses yang terjadi pada saat objek melewati garis dibahas pada bagian kedua yaitu bagian implementasi algoritme. Penentuan Posisi Spasial Objek Tahapan penentuan posisi spasial objek dimulai dengan mencari kontur objek dari frame. Fungsi findcontour digunakan untuk mencari kontur objek. Kontur objek dicari untuk mendapatkan boundary dari objek yang dideteksi. Hasil dari pencarian kontur objek adalah vector dari nilai titik-titik terluar dari objek. Selanjutnya dilakukan penggambaran objek dari titik-titik kontur yang didapat. Penggambaran objek dilakukan dengan pendekatan dengan bentuk persegi. Titiktitik kontur objek akan menjadi acuan untuk menggambar persegi. Bentuk persegi digunakan untuk mendapatkan posisi spasial dari objek. Posisi spasial objek ditandai oleh titik tengah dari bentuk persegi tersebut. Nilai posisi spasial dari objek dimasukkan ke dalam variabel x dan y. Nilai (x,y) sebuah objek menandakan posisi spasial objek pada frame. Ilustrasi penentuan posisi spasial objek pada frame dapat dilihat pada Gambar 14.
x(i) =
max(y(k)) – min (y(k)) 2
Gambar 14 Ilustrasi penentuan posisi spasial objek pada frame Implementasi Algoritme I
II
Algoritme Untuk Implementasi Penghitungan Objek Misal x(i) adalah titik penanda objek pada waktu ke i dan H adalah himpunan objek yang benar dan R adalah himpunan objek yang berada di posisi sebelah kanan garis penghitung (a) Jika x(i) - x(i-1) dan x(i-1) - x(i-2) ∈ bilangan negatif H(x(i)) ← TRUE (b) Jika x(i) > 320 R(x(i)) ← TRUE Misal L adalah penghitung objek Untuk setiap H(x(i)) ← TRUE Jika R(x(i)) ← TRUE dan x(i) < 320 L←L+1 Algoritme 3 Implementasi kalkulasi
16
spacing paragraf
Pada algoritme tersebut himpunan H(x) akan diisi objek yang dideteksi sebagai objek sebenarnya. Objek akan dianggap sebagai anggota H(x) saat objek tersebut cenderung bergerak ke arah kiri dalam dua kali gerakan. Hal tersebut dapat dilihat dari posisi spasial objek yang dinotasikan dengan x(i). Penentuan objek yang termasuk anggota H(x) dilakukan dengan melihat x(i) dibandingkan dengan x(i-1) sebanyak dua iterasi. Saat sebuah objek dideteksi dan arah objek tetap, maka objek tersebut akan masuk ke H(x). Hal ini menandakan objek tersebut merupakan objek yang dicari. Selain himpunan H(x), dilakukan juga penentuan himpunan R(x). Himpunan R(x) diisi oleh objek-objek yang berada pada sebelah kanan dari garis penghitung. Hal tersebut digunakan untuk menandai objek pada saat penghitungan dilakukan. Penghitungan objek dilakukan dengan memperhatikan semua objek pada anggota H(x) dan R(x). Objek akan dihitung saat objek tersebut berada pada sebelah kiri tetapi pada iterasi sebelumnya termasuk anggota H(x) dan R(x). Setiap ada objek yang memenuhi kondisi tersebut maka variabel L akan bertambah.Hasil akhir dari proses kalkulasi dilakukan dengan me-retrieve nilai variabel tersebut. Ilustrasi proses kalkulasi dengan beberapa skenario dapat dilihat pada Gambar 15 dan Gambar 16 .
Frame 1
Frame 2
Frame 3
Gambar 15 Skenario objek berhasil dikalkulasi Gambar 15 mengilustrasikan proses kalkulasi dengan scenario objek berhasil dikalkulasi. Pada ilustrasi tersebut, gerakan objek berhasil menambah jumlah hitungan. Objek pertama kali dideteksi pada frame 1 dan posisi objek berada di sebelah kanan garis penghitung. Proses tersebut belum mempengaruhi penambahan objek pada himpunan H(x). Himpuan lain yang dipengaruhi adalah R(x). Objek tersebut masuk ke R(x) karena posisi spasial objek berada di sebelah kanan garis penghitung. Pada frame 2, posisi objek yang dideteksi masih berada di sebelah kanan garis penghitung. Namun posisi objek saat ini berada di sebelah kiri objek sebelumnya. Hal ini menandakan objek yang dideteksi memiliki kemungkinan sama dengan objek yang dideteksi sebelumnya. Proses tersebut mempengaruhi penambahan objek pada H(x) dan R(x). Pada pendeteksian objek di frame 3, posisi objek berada di sebelah kiri garis penghitung. Hal ini menandakan garis penghitung telah dilewati objek dan berpengaruh terhadap penambahan nilai penghitung jika memenuhi kondisi yang ditetapkan. Pada skenario ini, semua kondisi untuk penghitungan berhasil dipenuhi. Objek tersebut berada pada himpunan H(x) dan R(x). Dengan dipenuhinya semua kondisi tersebut maka nilai penghitung bertambah menjadi 1.
17
Frame 1
Frame 2
Gambar 16 Skenario objek tidak dikalkulasi Pada Gambar 16, diilustrasikan skenario objek yang tidak berhasil dikalkulasi. Pada ilustrasi tersebut, nilai hitungan tidak bertambah. Secara umum, hal tersebut terjadi karena posisi objek yang dideteksi tidak melewati garis penghitung. Selain itu posisi objek pada frame 2 berada di sebelah kanan objek pada frame 1 yang membuat objek tersebut didefinisikan bukan objek. Pada frame 1 dan frame 2, posisi kedua objek berada di sebelah kanan garis penghitung. Namun posisi objek cenderung bergerak ke arah sebelah kanan. Maka objek tersebut tidak dapat dimasukkan ke H(x). Dengan demikian, nilai hitungan tidak bertambah karena objek yang dideteksi dianggap bukan objek Evaluasi Evaluasi kalkulasi dilakukan dengan menghitung nilai precision dan recall dari hasil kalkulasi. Percobaan dilakukan dengan 30 sampel kelereng. Interval peletakan kelereng dan ketinggian alat penggerak digunakan sebagai parameter perlakuan pada percobaan. Interval peletakan kelereng dicoba sebanyak tiga jenis, yaitu 3 ,2 , dan 1 detik. Ketinggian alat penggerak dibedakan menjadi landai dan curam. Hasil percobaan pada kemiringan curam dan landai dapat dilihat pada Lampiran 1 dan 2. Tabel 1 Hasil evaluasi percobaan dengan perlakuan landai dan curam Landai
Curam
Interval (detik)
Precision
Recall
RMSE
Precision
Recall
RMSE
1
100%
96,67%
0,98
80,95%
56,67%
2,71
2
100%
100%
0
85%
56,67%
2,71
3
90,90%
100%
0
25,93%
46,67%
2,73
Tabel 1 menunjukkan nilai precision, recall dan RMSE dari percobaan yang dilakukan. Nilai precision terbesar terjadi pada saat interval 1 dan 2 detik. Sementara itu nilai recall paling besar sebesar 100% terjadi pada saat interval 2 dan 3 detik. Nilai RMSE terkecil didapatkan pada saat interval 2 dan 3 detik. Nilai terbaik tersebut didapatkan pada saat ketinggian landai. Pada saat interval lebih besar, nilai precision berkurang. Hal ini disebabkan total waktu percobaan menjadi lebih lama sehingga kesalahan penghitungan yang terjadi lebih banyak. Sementara itu saat interval lebih kecil, nilai recall berkurang. Hal tersebut disebabkan adanya objek
desimal pake titik!
18
spacing
yang tidak terdeteksi akibat jarak sebuah objek dengan objek setelahnya cenderung dekat. Hal ini menyebabkan adanya dua atau lebih objek yang terdeteksi sebagai satu objek. Nilai RMSE berbanding terbalik dengan recall. Hal ini disebabkan oleh nilai error akan lebih besar saat ada data kelereng yang tidak terambil. Dengan demikian nilai RMSE akan semakin besar saat nilai recall berkurang. Pada percobaan dengan ketinggian yang curam pada alat penggerak, terlihat nilai precision dan recall relatif lebih kecil dan nilai RMSE lebih besar. Hal ini disebabkan oleh kecepatan objek yang tinggi saat digerakkan. Pada kecepatan yang tinggi, objek menjadi lebih sulit untuk dideteksi. Akibatnya beberapa objek tidak dapat dikalkulasi saat dijalankan. Hal tersebut menyebabkan akurasi kalkulasi menjadi lebih buruk.
SIMPULAN DAN SARAN Simpulan Penelitian ini berhasil melakukan kalkulasi dengan menggunakan frame differencing. Berdasarkan hasil kalkulasi yang dilakukan, didapat nilai akurasi terbaik precision, recall dan RMSE berturut-turut sebesar 100%, 100% dan 0 untuk ketinggian landai. Pada ketinggian curam nilai akurasi precision, recall dan RMSE berturut-turut sebesar 85%, 56,67% dan 2,71. Hasil terbaik didapat saat percobaan dilakukan dengan interval waktu sebesar 2 detik dan ketinggian alat penggerak yang landai. Hal ini menandakan kondisi tersebut adalah yang paling ideal untuk melakukan kalkulasi. Saran Penelitian ini memiliki kekurangan pada penggunaan alat penggerak yang terlalu sederhana. Banyak kesalahan perhitungan disebabkan oleh gerakan pada alat penggerak. Selain itu penggunaan algoritme frame differencing yang digunakan belum mampu mendeteksi dua atau lebih objek yang berjalan bersamaan. Saran untuk penelitian ini adalah memperbaiki kualitas alat penggerak sehingga kesalahan perhitungan dapat diminimalisasi. Perbaikan pada algoritme yang digunakan juga dapat dilakukan untuk menghasilkan citra yang lebih baik. Selain itu tahapan pemrosesan citra juga dapat diperbaiki dengan mencoba tahapan smoothing menjadi operasi morfologi. Dengan demikian proses thresholding dapat dikurangi hanya menjadi satu kali.
19
DAFTAR PUSTAKA Alex DS dan Wahi A. 2014. BSFD : Background subtraction frame difference algorithm for moving object detection and extraction. Journal of Theoretical and Applied Information Technology [Internet]. [diunduh 2015 Jan 11];60: Tersedia pada : http://www.jatit.org/volumes/Vol60No3/20Vol60No3.pdf Chai, T dan Draxler, R R. 2014. Root mean square error (RMSE) or mean absolute error (MAE)? – Arguments against avoiding RMSE in the literature. Geosci. Model Dev. [Internet]. [diunduh 2016 Apr 10]. Tersedia pada: http://www.geosci-model-dev.net/7/1247/2014/gmd-7-1247-2014.pdf. Powers, David M W. 2011. Evaluation: from precision, recall and f-measure to ROC, informedness, markedness & correlation. Journal of Machine Learning Technologies. [Internet]. [diunduh 2016 Apr 10]. Tersedia pada: http://www.bioinfo.in/contents.php?id=51. Prabhakar N, Vaithiyanathan V, Sharma AP, Singh A, Singhal P. 2012. Object tracking using frame differencing and template matching. Research Journal of Applied Sciences, Engineering and Technology 4(24) [Internet]. [diunduh 2015 Jul 4]: 5497-5501. Tersedia pada: http://maxwellsci.com/print/rjaset/v4-54975501.pdf Singla N. 2014. Motion Detection Based on Frame Difference Method.International Journal of Information & Computation Technology [Internet]. [diunduh 2015 Ags 14] Tersedia pada: http://ijcttjournal.org/Volume4/issue-6/IJCTTV4I6P177.pdf Yanlong C, Huawen Z, Jiangxin Y, Yuanfeng H. 2010. Automatic shape grading of pearl using machine vision based measurement system. Key engineering material [Internet]. [diunduh 2015 Jan 11];437: Tersedia pada : http://www.ets.ifmo.ru/tomasov/konferenc/AutoPlay/Docs/Volume%203/6_40 .pdf Yilmaz A, Javed O, Shah M. 2006. Object Tracking: A survey. ACM Comput. Surv. 38, 4, Article 13[Internet]. [diunduh 2015 Jul 4] Tersedia pada: http://www.ppgia.pucpr.br/~alceu/pdi/Video%20Segmentation%20and%20Tr acking/Yilmaz.pdf
rujuk sebagai jurnal, bukan internet
jurnal, bukan internet
jurnal, bukan internet
sda
sda
sda
download PDF di internet bukan berarti referensi itu dari internet, tapi itu kan jurnal yang ada versi cetaknya. rujuk sebagai jurnalnya, bukan download-annya.
20
Lampiran 1 Hasil percobaan dengan kemiringan curam Interval (detik)
Kemiringan Curam Objek Uji
Objek Tereteksi
Noise
1
30
17
4
2
30
17
3
3
30
14
40
Lampiran 2 Hasil percobaan dengan kemiringan landai Interval (detik)
Kemiringan Landai Objek Uji
Objek Tereteksi
Noise
1
30
29
0
2
30
30
0
3
30
30
3
21
RIWAYAT HIDUP
Penulis dilahirkan di Bogor, Jawa Barat pada tanggal 13 Juni 1994. Penulis adalah anak satu-satunya dari pasangan Ahmad Drajat dan R. Siti Zakiah. Selama menempuh pendidikan hingga kuliah di Institut Pertanian Bogor, Penulis dibiayai oleh Wali bernama Abdurrachman A. Rasjid. Penulis menempuh awal pendidikan di Taman Kanak-kanak Al-Quran Al Falah pada tahun 1998 hingga 1999. Penulis melanjutkan pendidikan sekolah dasar pada tahun 1999 hingga 2005 di SD Negeri Cempaka Putih Barat 09 pagi Jakarta Pusat. Kemudian penulis melanjutkan pendidikan Sekolah Menengah Pertama di SMPN 216 Jakarta dari tahun 2005 hingga 2008. Penulis menempuh pendidikan Sekolah Menengah Atas di SMAN 68 Jakarta pada tahun 2008 hingga 2011. Penulis melanjutkan pendidikan perguruan tinggi di Institut Pertanian Bogor, Fakultas Matematika dan Ilmu Pengetahuan Alam, Departemen Ilmu Komputer dari tahun 2011 hingga 2016.