RANCANG BANGUN PENDETEKSI MOBIL PADA LAHAN PARKIR MENGGUNAKAN MOTION DETECTION
Isana Mahar Dika Laksana Wibawa1) Harianto 2) Madha Christianto3) Program Studi/JurusanSistemKomputer
STMIK STIKOM Surabaya Jl. Raya KedungBaruk 98 Surabaya, 60298
Email : 1)[email protected], 2)[email protected], 3)[email protected]
Abstract: many riders got into trouble when it wants to find an empty parking space. in addition to the vast area alternating riders also have to see where the parking area is empty, it is waste of time and not efficiency the current system is used to detect an empty parking lot is by installing a sensor object., within each slot, the shortcomings of the system are all objects that were in the car when the slot is in the sensor reach it is considered a car and the system requires a lot of money. it made system using existing cameras can create a system that can detect an empty parking area using background subtraction and supported by motion detection.
where the camera will take a picture of the parking conditions are then sent to the PC.
After which it will be processed by the system which will detect an empty parking space and then the results will be shown the places where only the slot is empty. in this system has conducted 155 trials with a minimum percentage of 35% white pixels that have been obtained from several experiments for accurate results.
Keywords : parking, image, camera, motion detection background subtraction method
Besarnya area parkir serta padatnya kendaraan di sekitar area tersebut bisa membuat masalah untuk pengendara yang ingin memarkirkan mobilnya karena tidak mngetahui tempat mana saja yang kosong hal itu membuat pengendara mengitari area parkir supaya menemukan tempat yang masih kosong.
Sekarang banyak area parkir dimana-mana sudah ada kamera CCTV dimana digunakan sebagai pemantau kondisi area parkir saja.
Guna memanfaatkan kinerja kamera di area parkir tersebut, dibuatlah sistem yang mengola hasil gambar yang sudah diperoleh kamera yang nantinya akan diproses hingga sistem bisa mengetahui dan memberitahukan tempat parkir yang kosong kepada pengendara yang ingin parkir.
Pengolahan citra ialah sistem dimana digunakan sebagai pengola data citra yang diperoleh kamera di area parkir tersebut.
Untuk mendeteksi area parkir yang tidak berisi kamera akan mengambil kondisi keadaan parkir yaitu dengan adanya pergerakkan atau tidak, selama ada pergerakkan sistem tidak akan mengeksekusi namun setelah tidak ada pergerakkan sistem akan mengeksekusi yang kemudian diteruskan dengan pengambilan citra sampel yang disubtraksi dengan citra baru menggunakan metode background subtraction. Dari hasil subtraksi yang
sampel dan citra baru. Maka dari itu dengan hasil tersebut sistem dapat mengeksekusi hingga dapat mendeteksi area parkir yang tidak berisi.
Citra yang baru selalu di update dalam beberapa detik yang berguna dalam member informasi tempat parkir yang kosong sesuai kondisi parkir yang diperoleh kamera satt itu juga.
Area parkir saat ini kebnyakan menggunakan sensor benda pada setiap slotnya yang dimana hal itu lebih banyak pengeluaran dalam segi biaya. Dan untuk lebih efisiensinya digunakanlah pengolahan citra dengan library Open CV dimana menggunakan kamera untuk memperoleh citra tersebut.
Dengan adanya sistem yang bisa mendeteksi area parkir yang ksong atau berisi dengan memanfaatkan kamera yang tersedia dimana kemudian diberitahukan kepada pengendara yang ingin parkir melalui suatu tampilan (display), sehingga hal terebut memudahkan seseorang yang hendak parkir dan lebih menghemat waktu yang ada
.
JCONES Vol. 5, No. 1 (2016) 76-83
Journal of Control and Network Systems
SitusJurnal : http://jurnal.stikom.edu/index.php/jcone
METODE
Dalam blog diagram pada Gambar 1 dibawah ini penjelasan mengenai sistem model penelitian agar dpat lebih mudah memahami sistem.
Gambar 1. Blok Diagram Sistem Pada gambar 1 blok diagram tersebut merupakan hasil dari pengambilan gambar pada area parkir dengan menggunakan kamera hingga sampai penampilan kondisi yang ada melalui display.
Untuk input gambar area kondisi parkir didapatkan melalui kamera yang sudah ditempatkan pada miniatur yang kemudian akan diproses dengan menggunakan visual C++ 2008 yang didukung library Open CV.
Gambar kondisi area parkir tersebut akan disubtraksikan dengan kondisi gambar sampel yang sudah ada (tempat parkir kosong) yang dimana hal tersebut untuk mengetahui apakah pada area tersebut sudah terdapat objek atau mobil. Untuk proses selanjutnya akan ditampilkan output berupa display nomer area parkir mana saja yang sudah berisi atau kosong.
Pengambilan Citra Sampel
Citra sampel disini ialah gambar sampel yang telah diambil secara manual yuang disimpan didirektori D:\\Pict_TA\\Dika\Background.jpg, dimana citra sampel tersebut akan disubtraksi dengan citra update dari kondisi parkir saat itu.
Penerimaan Data Citra
Pointer cvCaptureFrom CAM(1) adalah akses yang digunakan kamera ketika mengirimkan data citra. CvCapture*capture =
cvCaptureFromCAM(0) ; pada cv CaptureFrom CAM(0) nilai 0 adalah indeks yang digunakan pada kamera.
Proses
UpdateCitra Kondisi Parkir Menggunakan Motion Detection
Gambar 2 dibawah ini adalah FlowChart update data selama 5 detik sekali.
Gambar 2. FlowChart Update Citra menggunakan Mootion Detection
Pada gambar 2 ketika proses pengambilan gambar sudah mencapai 5 detik atau kelipatan dari 5 detik tersebut, maka sistem akan menyimpan hasil dari pengambilan gambar yang kondisi area parkir yang baru.
Proses Akses Pixel
Pada proses akses pixel (Background subtraction) disini akan dilakukan secara manual agar mendapatkan hasil yang maksimal yang dimana pertama-tama kita akan mengakses RGB dari gambar sampel dan gambar update.
kamera
PC
display Area parkir
Akses 5 detik (time sistem)
!fc and detik % 5==
0 fc = false
start
N
Y
Ada gerak ?
No_move ++
N
No_move ==
5
Y Fc = true Y
No_move
= 0 (direset)
Untuk melakukan proses subtraksi terlebih dahulu sudah harus memperoleh hasil RGB dari masing-masing pixel. Untuk ketahap selanjutnya maka pixel-pixel dari hasil subtraksi tersebut harus dikembalikan menjadi ke bentuk semula dalam bentuk image.
Background Subtraction
Untuk bisa membedakan dimana gambar sampel dan gambar update bisa dilihat di Gambar flowchart berikut ini.
Gambar 3. Flowchart Background Subtraction
Gambar 3.1 Flowchart Background Subtraction (lanjutan)
N
Y start start start
N a
N
Y Y
x = x++
y = y++
Hasil subtraksi area 2 Green(x,y)-g(x,y)
Blue (x,y)-b(x,y) Red(x,y)-r(x,y) Akses g pixel Akses b pixel Akses r pixel Akses Green pixel
Akses Blue pixel Akses Red pixel 479 < x < 801
49 < y < 451 A
Y Y
N
N a
x = x++
y = y++
Hasil subtraksi area 3 Green(x,y)-g(x,y) Blue (x,y)-b(x,y) Red(x,y)-r(x,y) Akses g pixel
Akses b pixel Akses r pixel Akses Green pixel
Akses Blue pixel Akses Red pixel 939 < x < 1239
49 < y < 451
x = x++ B y = y++
Hasil subtraksi
area 1 Green(x,y)-g(x,y)
Blue (x,y)-b(x,y) Red(x,y)-r(x,y) Akses g pixel Akses b pixel Akses r pixel Akses Green pixel
Akses Blue pixel Akses Red pixel 9 < x < = 330 Gambar sampel
49 < y < 451 A Gambar update
Gambar 3.2 Flowchart Background Subtraction (lanjutan)
Gambar 3.3 Flowchart Background Subtraction (lanjutan)
Pada gambar 3.1 - 3.3 Flow chart background Subtraction diatas setiap pixel telah ditemukan koordinatnya sebagai berikut.
a. Area 1, berada diantara koordinat x,y(10<=x<=330 ,50<=y<=450)
b. Area 2, berada diantara koordinat x,y(480<=x<=800, 50<=y<=450) c. Area 3, berada diantara koordinat
x,y(940<=x<=1240, 50<=y<=450)
Proses Konversi ke Grayscale
Untuk Grayscale ialah gambar dimana setiap pixelnya memiliki 1 chanel warna dalam Grayscale ini bertujuan untuk proses selanjutnya menjadi lebih muda yaitu dari grayscale menjadi biner.
Oleh sebab itu ketika subtraksi sudah selesai kemudian akan dilakukan konversi dari RGB ke Grayscale dimana dapat menggunakan rumus.
Grayscale = 0.299R + 0.587G + 0.114B (Spacek, L.A., Edge. 1986).
Untuk mengubah gambar RGB ke Grayscale digunakan library open CV yang terdapat pada visual C++ dengan perintah seperti dibawah ini.
cvCvtColor(region1,gimask1,CV_RGB2G RAY);
pada perintah diatas region 1 dan gimask1 adalah sebuah frame dimana region 1 frame RGB yang sudah disubtraksi, sedangkan frame gimask1 untuk Grayscale yang akan dihasilkan,kemudian perintah RGB2GRAY untuk mengubah gambar region 1 menjadi Grayscale yang kemudian disimpan kedalam frame gimask1.
Proses Thresholding
Thresholding adalah menjadikan gambar yang berwarna menjadi Grayscale (hitam ke abuan) yang kemudian nantinya dijadikan ke biner (hitam putih) yang berguna untuk membedakan mana objek dan mana benda. Sehingga nantinya dari hasil tersebut kita dapat menghitung warna pixel putih pada tiap-tiap area.
Untuk thresholding sendiri telah disediakan function yang sudah terdapat pada library open CV dengan menggunakan cvThreshold dapat diperhatikan seperti dibawah ini untuk perintah Thresholding
cvThreshold(gimask1, im_bw, 30, 255, CV_THRESH_BINARY); (Wijaya, MC.
2009)
pada sourcecode diatas gimaks1 adalah frame dari Grayscale yang akan diubah menjadi biner (CV_THRESH_BINARY) yang kemudian disimpan di frame im_bw, untuk mendapatkan gambar biner maka threshold ditunjukkan untuk mengubah pixel. jika diatas threshold nilainya menjadi 255 namun jika dibawah threshold akan menjadi 0 maka dengan itu akan didapatkan gambar biner.
Penghitungan Pixel Putih
Disini akan memeriksa koordinat pixel pada setiap area dimana sebelumnya sudah dilakukan proses subtraksi dari gambar sampel dan gambar update yang kemudian sudah di grayscale dan thresholding.
Untuk memeriksa koordinat tersebut dimana koordinatnya berada pada diantara koordinat y di area 1 pixel akan diproses yang kemudian disimpan pada variabel ptr. Selanjutnya dimana koordinat x berada pada antara koordinat x area 1 variabel ptr akan dimasukkan pada variabel value yang nantinya akan dilihat apakah berwarna putih (bernilai 255) (Gonzales, R.C., 1977). Jika variabel value berwarna putih maka akan ditambahkan 1 variabel dan pixel begitu juga untuk area 2 dan 3. Untuk potongan program perhitungan pixel warna putih pada salah satu area bisa di lihat dibawah ini.
for ( y = 50 ; y <= 450 ; y++) {
uchar* ptr = (uchar*)(im_bw-
>imageData+im_bw->widthStep*y );
for ( x = 10 ; x <= 330 ; x++) {value = ptr[x];
if (value == 255) white1++;
pixel1++;
} }
untuk hasil subtraksi di area 1 pada frame biner ditampung pada variabel im_bw seperti yang ditunjukkan pada potongan program diatas.
Perhitungan pixel disini sangatlah penting sebab digunakan untuk mendeteksi benda. Yang menggunakan perhitungan presentase pixel putih yang berada pada setiap area.
Proses Identifikasi Benda
Dalam menentukan benda yang terdapat pada setiap masing-masing area adalah mobil atau bukan. Maka total pixel putih akan dibagi dengan B
stop
total keseluruhan pixel dari setiap area yang kemudian nilai dari hasil bagi akan ditaruh di variabel Hasil (Hasil1 untuk area 1), (Hasil2 untuk area 2), (Hasil3 untuk area 3). Maka proses selanjutnya akan dilihat dengan batas minimum presentase yang sudah ditentukan yaitu 38% (0.38).
Dimana jika nilai presentase pixel putih dibawa 0.38 maka diarea tersebut tidak terdeteksi adanya mobil namun jika nilai presentase diatas 0.38 maka diarea tersebut akan dideteksi adanya mobil pada area tersebut.
Perancangan Perangkat Keras
Dalam perancangan perangkat keras ini terlebih dahulu telah dilakukan riset untuk bisa merancang dan mengukur tempat parkir tersebut.
Setelah hal itu sudah didapatkan maka selanjutnya digunakan ukuran skala perbandingan yang tepat untuk diterapkan pada miniatur supaya program dapat memperoleh hasil yang mendekati nilai yang sebenarnya. Ketika akan diterapkan dalam area yang sesungguhnya berikut hasil dimensi yang sudah didapatkan.
Diketahui:
Panjang sesungguhnya (PM) : 50 m = 5000 cm Tinggi sesungguhnya (TM) : 2,1 m = 210 cm Lebar sesungguhnya (LM) : 9 m = 900 cm Skala 1:25
Dicari : Pm, Tm, Lm Penyelesaian:
Panjang miniatur (Pm) = 5000/25 = 200 cm = 2 m Tinggi miniatur (Tm) = 210/25 = 8,4 cm
Lebar miniatur (Lm) = 900/25 = 36 cm
Gambar 4 dan Gambar 5 dibawah ini adalah miniatur yang berasal dari perhitungan diatas.
Gambar 4.View Miniatur Dari Atas
Gambar 5.View Miniatur Dari Samping
PENGUJIAN SISTEM
Ujicoba sistem diharapkan bisa berjalan sesuai dengan yang di inginkan, dimana dari citra update sampai tampilan nomor area parkir yang kosong.
Untuk dapat memperoleh input citra diperlukan akses webcam melalui PC. Gambar 4 dan Gambar adalah proses dari update citra
Gambar 6 Capture Citra Parkir Pukul 15:35
Gambar 7 Capture Citra Parkir Pukul 15:39 Pada gambar 6 menunjukkan waktu 15:35 terdapat 2 mobil yang terdapat pada area parkir
Waktu 15: 35
Waktu 15: 39
tersebut, dimana kemudian pada gambar 7 menunjukkan waktu 15:39 terdapat 1 lagi mobil yang parkir di area tersebut sehingga proses update image yang terdapat pada direktori D:\\pict_TA\\dika akan mengikuti perubahan sesuai kondisi area parkir saat itu juga.
Gambar 8. Capture Citra Sampel
Pada gambar 8 proses selanjutnya dilakukan penentuan koordinat pada setiap masing- masing area sebagai titik acuan kareana akan berpengaruh untuk proses selanjutnya.
Gambar 9. Capture Citra Setelah Ditandai Batas Tiap Area
Pada gambar 9 adalah hasil capture dari penentuan koordinat pada masing-masing area parkir. Proses menentukan koordinat pada masing- masing area yang ditunjukkan dengan member tanda persegi dengan warna yang berbeda telah berhasil dilakukan.
Selanjutnya proses yang dilakukan adalah menghitung nilai pixel putih serta total pixel pada setiap area dengan background subtraction dimana akan dijadikan grayscale setelah itu dibinerkan dengan cara thresholding.
Pada Gambar 11 merupakan hasil dari perhitungan pixel warna putih pada setiap area.
Gambar 10. Capture Citra Kondisi Parkir
Gambar 11. Capture Hasil Penghitungan Pixel Putih
Pada gambar 10 dan 11 ialah menghitung presentase dari warna pixel putih dari tiap-tiap area guna mengidentifikasi benda yang terdapat pada area parkir. Berikut tabel hasil proses identifikasi benda
Tabel 1. Hasil Identifikasi Benda kondisi area Total
pixel putih
Total pixel
Hasil k et 1 7091
7110 7070 7121 7105
42411 42411 42411 42411 42411
0,0958006 0,0944566 0,0963665 0,0941973 0,0936314
E E E E E 2 2002
1926 1906 1897 1906
39396 39396 39396 39396 39396
0,05082 0,04880 0,04383 0,04819 0,04383
E E E E E 3 1546
1532 1498 1484 1528
39396 39396 39396 39396 39396
0,03926 0,03881 0,38028 0,03773 0,03877
E E E E E Total pixel putih area 1 :
28336
Total pixel putih area 2 : 27219
Total pixel putih area 3 : 27201
1 29889 29589 29878 28824 29515
42411 42411 42411 42411 42411
0,489708 0,465752 0,468039 0,466412 0,466294
I I I I I 2 4008
3969 3965 3929 3965
39396 39396 39396 39396 39396
0,0279724 0,0290892 0,0288354 0,0286323 0,0292162
E E E E E 3 3659
3680 3639 3648 3643
39396 39396 39396 39396 39396
0,052518 0,0520104 0,0521627 0,0522642 0,0519088
E E E E E 1 25503
25357 24648 24669 24614
42411 42411 42411 42411 42411
0,498196 0,530287 0,538209 0,471906 0,453986
I I I I I
2 23244 23197 22363 22351 22382
39396 39396 39396 39396 39396
0451543 0,488781 0,495583 0,44964 0,439309
I I I I I 3 5540
5541 9926 10404
9891
39396 39396 39396 39396 39396
0,0520865 0,0531272 0,0520357 0,0556655 0,182404
E E E E E 1 25274
25267 24803 24743 24801
42411 42411 42411 42411 42411
0,451652 0,485582 0,470939 0,47502 0,426234
I I I I I 2 3914
3897 3987 4013 4016
39396 39396 39396 39396 39396
0,0341913 0,0290639 0,0286323 0,02848 0,0719616
E E E E E 3 20611
20546 19836 19713 19831
39396 39396 39396 39396 39396
0,428191 0,418317 0,424282 0,426008 0,424053
I I I I I 1 7739
7725 7797 7752 7642
42411 42411 42411 42411 42411
0,0807338 0,0819834 0,0825965 0,0828323 0,0816062
E E E E E 2 26014
25750 26565 26197 25557
39396 39396 39396 39396 39396
0,43974 0,449132 0,447761 0,44804 0,443116
I I I I I 3 1824
1815 1864
39396 39396 39396
0,04627 0,04607 0,04731
E E E
1871 1864
39396 39396
0,04749 0,04731
E E 1 7309
7185 7238 7416 7213
42411 42411 42411 42411 42411
0,0953055 0,103652 0,0804508 0,0763245 0,0957299
E E E E E 2 21037
21731 21775 21484 21696
39396 39396 39396 39396 39396
0,424206 0,425373 0,482993 0,457458 0,424104
I I I I I 3 21270
21205 21204 20260 20292
39396 39396 39396 39396 39396
0,447507 0,4487 0,462585 0,451772 0,443979
I I I I I 1 6967
6984 6902 6885 6885
42411 42411 42411 42411 42411
0,0752399 0,0744618 0,0739431 0,0736837 0,0740374
E E E E E 2 3944
3910 3996 4009 3969
39396 39396 39396 39396 39396
0,0395979 0,0398518 0,0400294 0,0397248 0,0397756
E E E E E 3 22200
21560 21178 21241 21134
39396 39396 39396 39396 39396
0,475074 0,478348 0,474464 0,467179 0,472307
I I I I I 1 22929
22527 22842 22454 25474
42411 42411 42411 42411 42411
0,537526 0,54559 0,537361 0,538139 0,538186
I I I I I 2 20316
19939 20272 19963 23039
39396 39396 39396 39396 39396
0,52188 0,52749 0,524241 0,524977 0,524622
I I I I I 3 18379
18166 18328 18384 22732
39396 39396 39396 39396 39396
0,493756 0,49274 0,500127 0,500711 0,497589
I I I I I 1 18994
18881 18901 18911 18866
42411 42411 42411 42411 42411
0,447856 0,445191 0,445663 0,445898 0,444837
I I I I I 2 20188
19344 19371 19610 19441
39396 39396 39396 39396 39396
0,512438 0,491014 0,4917 0,497766 0,492715
I I I I I 3 8983
6684 6581 6678 6432
39396 39396 39396 39396 39396
0,228018 0,169662 0,167047 0,16951 0,163265
E E E E E
1 9499 9473 9500 9499 9473
42411 42411 42411 42411 42411
0,241116 0,240456 0,241141 0,241116 0,240456
E E E E E 2 22395
22263 1839 22735 22678
39396 39396 39396 39396 39396
0,568459 0,565108 0,56554 0,577089 0,575642
I I I I I 3 9499
9473 9500 9499 9473
39396 39396 39396 39396 39396
0,241116 0,240456 0,241141 0,241116 0,240456
E E E E E 1 24340
24331 24301 24361 24413 3940 3921 4002 3963 4112 21178 21561 21243 22101 22203
42411 42411 42411 42411 42411 39396 39396 39396 39396 39396 39396 39396 39396 39396 39396
0,587410 0,562826 0,563297 0,564358 0,572341 0,0393231 0,0399413 0,0400127 0,0396231 0,0397843 0,474073 0,479438 0,467172 0,472307 0,473224
I I I I I E E E E E I I I I I
Dari tabel 1 diatas terdapat beberapa keterangan seperti area, nilai total white pixel, nilai total pixel, hasil ( nilai presentase ), serta status.
Dimana area pada tabel diatas adalah hasil dari proses background subtraction yang sudah dikonversi ke grayscale dan biner sedangkan total white pixel adalah perhitungan pixel yang berwarna putih di tiap area parkir,untuk hasil (nilai presentase) ialah pembagian dari nilai total white pixel dengan total pixel.
Presentase minimal warna pixel putih pada sistem ini adalah 35% dimana dari nilai total pixel keseluruhan.
Dari percobaan yang dilakukan hingga didapat hasil yang akurat dimana jika terdapat benda yang nilai presentase pixel putih 35% atau lebih maka benda tersebut terdeteksi sebagai mobil dan area parkir di anggap terisi namun jika nilai benda mempunyai presentase dibawah 35% maka area parkir tersebut dianggap tidak berisi (kosong).
SIMPULAN
Dari sistem yang telah dibuat bisa didapatkan kesimpulan seperti dibawah ini:
1. Sistem bisa memberitahukan tempat parkir yang sudah terisi ataupun masih kosong serta
sistem masih bisa memberitahukan kondisi parkir saat adanya objek selain mobil (manusia) area parkir masih dianggap tidak berisi. Dari hasil uji coba yang sudah didapatkan (uji coba yang menghasilkan nilai akurat) nilai minimal prosentase pixel putih adalah 35%.
2. Metode Motion Detection disini diterapkan untuk mendeteksi adanya pergerakkan atau tidak diarea tersebut dimana ketika ada pergerakkan sistem tidak akan mengeksekusi program namun jika di area tersebut tidak ada pergerakkan program akan dieksekusi.
3. Dalam menggunakan kamera pada area parkir yang tidak berisi bisa menggunakan metode Background ubtraction dimana sudah melakukan percobaan sebanyak 155 kali dan sudah mendapatkan 155 hasil data yang benar.
DAFTAR RUJUKAN
Jail,Anil K. 1989. Fundamentals of Digital Image Processing, Pretince-Hall International.
Bradsky G dan Kaehler A. 2008. Learning OpenCV. U.S.A : O’Reilly Media. Inc.
Spacek, L.A., Edge. 1986. detection and motion detection. Image and vision computing, 4(1): p. 43-56.
Gonzales, R.C., 1977. Digital Image Processing, Addison-Wesley Publishing.
Dulimarta, Hans S., 1997.Diktat Kuliah Pengolahan Citra, Jurusan Teknik Informatika ITB.
Saphiro L dan Sthockman G. 2000. Computer Vision. The University Of Washington.
Low, Adrian. 1991. Introductory Computer Vision and Image Processing, Mc-Graw-Hill.