Kalkulasi Objek Bergerak Secara Real-Time Berbasis Object Tracking Dengan Metode Frame Differencing

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 dilakukan penghitungan objek secara
terkomputerisasi dengan memanfaatkan teknik object tracking. Objek diletakkan
pada alat penggerak dan direkam pergerakannya. Pergerakan objek 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 conducted in a computerized object calculation.
Object placed on a mover to be recorded. The movement of the object 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

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

DAFTAR ISI
DAFTAR GAMBAR

vi


DAFTAR LAMPIRAN

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

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
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
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
(Cao 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
Ruang lingkup penelitian ini, ialah:
1 Ukuran frame yang digunakan 640X480 pixel.
2 Objek bergerak berbentuk seperti mutiara yang digunakan adalah kelereng.
3 Lintasan objek bergerak menggunakan pipa paralon yang di belah dua.
4 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

3
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. Dengan demikian, Dk adalah hasil selisih absolut antara
frame saat ini dengan frame pada tiga satuan waktu sebelumnya. Algoritme frame
differencing dapat diilustrasikan sebagai berikut:
Algoritme Frame Differencing
I
Ambil Fi sebagai input.
II Ambil Fi-3 dari image buffer..
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 contour pada
Fmor menggunakan rectangular box.
VI Semua informasi centroid disimpan dalam global array dan ulangi semua
tahapan untuk frame selanjutnya

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.

4

Akuisisi Citra

Implementasi dan
Representasi Frame
Differencing

Evaluasi

Implementasi
Algoritme Kalkulasi

Gambar 1 Tahapan penelitian

Akuisisi Citra
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.
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. Dengan demikian, 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
objek dalam citra. Setelah kontur ditemukan, centroid atau titik tengah objek dicari

6

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
Predicted Positive
True Positive
Recall = Sensitivity =
(Powers 2011)
Real Positive

Precision = Confidence =

1

RMSE = √ ∑ni=1 e2i (Chai dan Draxler 2014)
n

(2)
(3)

Lingkungan Pengembangan

Spesifikasi perangkat keras, perangkat lunak yang digunakan untuk penelitian
ini sebagai berikut:
Perangkat lunak:
1 Sistem operasi Windows 8.1.
2 Bahasa pemrograman C++.
3 Library OpenCV 2.4.11.
4 Editor Microsoft Visual Studio Community 2013.
Perangkat keras:
1 Processor Intel Core i3.
2 RAM 4 GB.
3 Hardisk berkapasitas 500 GB.
4 Layar LCD HD 14 inci.
5 Kamera Microsoft Lifecam Studio dengan pengaturan 30 fps.

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
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 20
y(i,j) = {
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 contour 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
xi =
2

Pada algoritme di atas dapat dilihat proses pembandingan antara 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. Oleh karena itu 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

Difference Image

Frame 2

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.
Hal tersebut menyebabkan objek yang didapat menjadi tidak valid. Ilustrasi 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

16

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

18

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, Wahi A. 2014. BSFD: background subtraction frame difference algorithm
for moving object detection and extraction. Journal of Theoretical and Applied
Information Technology. 60:623-628.
Cao YL, Zheng HW, Yang JX, He YF. 2010. Automatic shape grading of pearl using
machine vision based measurement. Key Engineering Material. 437:389-392.
doi:10.4028/www.scientific.net/kem.437.389.
Chai T, Draxler RR. 2014. Root mean square error (RMSE) or mean absolute error
(MAE)? – arguments against avoiding RMSE in the literature. Geosci. Model
Dev.. 7(3):1247-1250. doi:10.5194/gmd-7-1247-2014.
Powers DMW. 2011. Evaluation: from precision, recall, and f-measure to ROC,
informedness, markedness & correlation. Journal of Machine Learning
Technologies. 2:37-63.
Prabhakar N, Vaithoyanathan 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):5497-5501.
Singla N. 2014. Motion detection based on frame difference method. International
Journal of Information & Computation Technology. 4:1559-1565.
Yilmaz A, Javed O, Shah M. 2006. Object tracking : A survey. ACM Computing
Surveys. 38:13.

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.