35
BAB IV HASIL DAN PEMBAHASAN
Dalam bab ini akan dilakukan tentang analisi dan pembahasan mengenai hasil pengujian sistem program yang telah dirancang. Pada uji coba yang dilakukan pada
penulisan ini untuk mengetahui apakah sistem bekerja dengan baik atau tidak. Pada pengujian akan diperoleh hasil pengujian berupa data-data. Pengujian yang dilakukan
menggunakan 38 gambar rambu larangan lalu lintas.
4.1. Pengujian dan Tampilan Program Pengenalan Secara Real Time
Rambu Larangan Pada Lalu Lintas Menggunakan DCT dan Jarak Canberra
Pengujian dan tampilan program menggunakan perangkat keras dan perangkat lunak sebagai berikut:
a. Processor : AMD E2-2000 APU with Radeon™ HD Graphics 1,75 GHz
b. RAM: 4.00 GB
c. Matlab : 7.10.0a
Dalam tampilan antarmuka program “PENGENALAN SECRATA REAL TIME
RAMBU LARANGAN LALU LINTAS” terdapat 7 push button, 1 pop up menu, 5 axes, 1 edit text, dan 4 static text.
Masing-masing dari bagian membentuk suatu kesatuan yang akan digunakan untuk program “PENGENALAN SECRATA REAL TIME RAMBU
LARANGAN LALU LINTAS”.
Langkah-langkah untuk menjalankan program pengenalan seperti di bawah ini: a.
Mengklik dua kali pada icon Matlab pada layar desktop dengan gambar icon seperti pada gambar 4.1.
Gambar 4.1.Icon Matlab R2010a
b. Setelah klip icon Matlab, akan tampli tampilan utama softwer Matlab seperti gambar
4.2.
Gambar 4.2. Tampilan Awal Matlab R2010a c.
Muncul tampilan awal, kemudian mengantikan current directory sesuai dengan directory
dimana program yang akan dipakai disimpan, setelah itu ketik guide kamera pada command window maka akan muncul tampilan jendela utama program
pengenalan seperti pada gambar 4.3. Klik run untuk menjalankan program.
Gambar 4.3. Tampilan Jendela Utama Pengenalan d.
Setelah klik run, akan muncul tampil tampilan GUI pengenalan rambu larangan lalu lintas seperti pada gambar 4.4.
Director y
Guide
Run
Gambar 4.4.Tampilan Utama Jendela Pengenalan Rambu Larangan Lalu Lintas
e. Selanjutnya, memilih dan tekan tamboluntuk tampilan sesuai dengan fungsi dari
bagiannya masing-masing. 1.
Tombol ON, berfungsi untuk menampilkan video webcam. 2.
Tombol capture, berfungsi untuk mencuplikan gambar dari video. 3.
Tombol proses, berfungsi untuk menjalan perintah program cropping dan resizing.
4. Tombol ekstraksi ciri, berfungsi untuk menampilkan hasil tranformasi DCT.
5. Tombol pop-up menu, berfungsi untuk menampilkan ukuran window.
6. Tombol pengenalan, berfungsi untuk menampilkan hasil keluaran yang
berupa teks. 7.
Tombol reset, berfungsi untuk me-reset ulang jika user ingin melakukan pengenalan baru.
8. Tombol selesai, berfungsi untuk keluar dari proses pengenalan.
Berikut adalah cara untuk menampilkan program utama pengenalan rambu larangan lalu lintas sebagai berikut:
1. Langkah pertama user menekan tombol ON untuk mengaktifkan video webcam,
untuk mencuplikan gambar dari video yang akan digunakan untuk proses selanjutnya, tombol ON menjalankan program sebagai berikut :
1 2
8 3
4
7 5
6
Setelah menekan tombol ON, video citra yang dicuplikan seperti pada, axes 1 dapat dilihat pada gambar 4.5.
Gambar 4.5. Tampilan Tombol ON Program di atas adalah program untuk menaktifkan webcam. Perintah imaqhwinfo
adalah program untuk menampilkan informasi yang disimpankan oleh webcam dan informasi yang ditampil akan diinisialisasi dalam program. Proses ini bertujuan untuk agar
webcam dengan softwere Matlab bisa berkomunikasi. Informasi yang akan ditampilkan
oleh program adalah webcam, adaptor camera, jenis warna, port dan resolusi piksel. Perintah preview adalah program untuk menampilkan video saat video ON dengan
inisialisasi yang telah digunakan.
imaqhwinfo; info = imaqhwinfo
winvideo ;
vidobj =videoinput winvideo
,1, RGB24_1280x720
; vidRes = getvidobj,
VideoResolution ;
imWidh = 1280; imHeight = 720;
nBands = getvidobj, NumberOfBands
; hImage=imagezerosimHeight,imWidh,nBands,
parent ,handles.axes1;
previewvidobj,hImage;
2. Langkah kedua tekan tombol capture untuk mencuplikan gambar yang telah direkam
dan tombol capture digunakan untuk menjalankan program seperti berikut:
Program pada tombol capture hampir sama dengan program pada tombol ON tapi pada tombol capture menambahkan program grayscale yang akan berfungsi untuk menjadikan
gambar yang capture berupa menjadi keabu-abuan. Program getsnapshot adalah untuk dicuplikan citra pada saat webcam keadaan kamera webcam ON. Gambar yang dicuplikan
dijalankan dengan menggunakan handles dan tampilan pada axes 1. Handles
adalah sebuah inisialisasi yang digunakan untuk dapat dipanggil dalam file figure
maupum file m. Gambar 4.6 merupakan tampilan dari warna keabu-abuan, proses ini yang akan digunakan untuk program selanjutnya.
imaqhwinfo; vidobj =videoinput
winvideo ,1,
RGB24_1280x720 ;
vidobj.FramesPerTrigger = 1; vidobj.ReturnedColorspace =
grayscale ;
triggerconfigvidobj, manual
; vidRes = getvidobj,
VideoResolution ;
imWidh = 1280; imHeight = 720;
nBands = getvidobj, NumberOfBands
; hImage=imagezerosimHeight,imWidh,nBands,
parent ,handles.axes1;
startvidobj; pause1;
Image = getsnapshotvidobj; triggervidobj;
stopvidobj deletevidobj
axeshandles.axes1; imshowImage;
axis on
handles.Image=Image; guidatahObject,handles;
Gambar 4.6. Tampilan Dari Tombol Capture 3.
Langkah ketiga tekan tombol proses untuk menjalankan proses pengenalan yang sudah capture. Pada tombol proses terdapat program cropping dan resizing.
Sebelum di cropping dan resizing hasil yang di capture dinormalisasikan dengan cara membagi hasil dari capture dengan 255 nilai maksimun dari citra grayscale. Hasil
citra yang telah dicuplikan adalah citra grayscale yang nilai dari 0 sampai dengan 255. Pada proses cropping menggunakan perintah program bbox untuk memotong
gambar yang tidak dibutuhkan untuk pengenalan. Cropping yang dilakukan secara automatic
dengan cara pada gambar rambu diberi garis hitam tebal. Program cropping adalah sebagai berikut:
r=doublehandles.Image; r1=r255;
r2 =1-r1; r3=bboxgr2;
j= Cropping
; sethandles.text1,
string ,j;
axeshandles.axes2; imshowr3;
axis on
handles.r3=r3;
Program imresize adalah untuk melakukan ukuran resizing yang akan digunakan dan pada proses resizing citra ini ukuran yang digunakan disesuaikan dengan ukuran dari
DCT. Jika ukuran dari DCT 64x64, maka ukuran resizing adalah 64x64. Gambar di bawah adalah hasil pencuplikan dari proses cropping dan resizing yang di tampilkan pada axes 2
dan axes 3 seperti pada gambar 4.7.
Gambar 4.7. Tampilan Proses Cropping dan Resizing Hasil resizing yang diperoleh akan digunakan untuk proses selanjutnya. Program
yang digunakan untuk proses resizing ini sebagai berikut:
4. Langkah keempat tekan tombol ekstraksi ciri untuk menampilkan hasil DCT dari
gambar yang sudah di capture. Perintah program di bawah adalah perintah untuk menjalankan proses ekstraksi ciri. Citra masukan sebelum ekstraksi ciri adalah hasil
dari preprocessing dari hasil resizing.
r4=handles.r3; r5=imresizer4,[64,64];
k= Resizing
; sethandles.text2,
string ,k;
axeshandles.axes3; imshowr5;
axis on
handles.r5=r5; guidatahObject,handles;
Hasil dari proses resizing dengan berikan variabel handles.r5, seperti yang ditampilkan pada axes 4. Hasil dari DCT disesuaikan dengan hasil dengan hasil dari
resizing . Dari hasil resizing akan ditransformasikan dengan menggunakan DCT 2 D yang
diberi nama r7. Hasil transformasiakan ditampilkan dengan menggunakan handles.axes seperti pada axes 4. Selanjutnya dengan menbuka hasil r7 untuk ditampilkan. Kemudian
hasil ekstraksi ciri ditampilkan dengan menggunakan imshow dan terlebih dahulu di inisialisasikan dengan menggunakan handles.axes dapat dilihat pada gambar 4.8.
Gambar 4.8. Hasil Transformasi Dari DCT 5.
Langkah kelima tekan pada pop-up menu adalah untuk menampilkan ukuran window yang akan digunakan.
r6=doublehandles.r5; r7=absdct2r6;
r71,1=0; l=
Hasil Transformasi DCT ;
sethandles.text3, string
,l; axeshandles.axes4;
imshowr7maxr7:; handles.r7=r7;
axis on
guidatahObject,handles;
Perintah program di atas adalah proses untuk pemelihan atau megeluarkan database
yang akan digunakan untuk membandingkan dengan salah satu citra masukan rambu larangan lalu lintas menggunakan perhitungan jarak.
case 2
w=2; load
x64ciri2a ;
case 3
w=3; load
x64ciri3a ;
case 4
w=4; load
x64ciri4a ;
case 5
w=5; load
x64ciri5a ;
case 6
w=6; load
x64ciri6a ;
case 7
w=7; load
x64ciri7a ;
case 8
w=8; load
x64ciri8a ;
case 9
w=9; load
x64ciri9a ;
case 10
w=10; load
x64ciri10a ;
end handles.w=w;
handles.z=z;
r7=handles.r7; r8=r71:w,1:w;
m= Hasil window
; sethandles.text4,
string ,m;
Lanjutan program
Proses penguluaran database pembanding disesuaikan dengan variasi dari pop-up menu
yang telah ditentukan atau dipilih oleh user. Perintah program diatas merupakan perintah program untuk tampilan ukuran window. Kemudian bagian kiri atas dari hasil
DCT akan diambil sebagian ekstraksi ciri sebagai ukuran window. Proses ambil sebagian kiri atas dari hasil DCT ketika user menekan tombol pop-up menu. Ukuran window yang
digunakan adalah 2x2, 3x3, 4x4,5x5,6x6,7x7,8x8, 9x9 dan 10x10. Dengan semakin besar ukuran window maka semakin kecil tampilan ekstraksi cirri. Tampilan di bawah
merupakan ukuran window yang dapat dilihat pada tabel 4.1. Tabel 4.1. Citra Ukuran Window
UkuranWindow Hasil Window
Window=2x2
Window=3x3
axeshandles.axes5;
imshowr8maxr8:; axis
on r9=r8:;
handles.t=r9; guidatahObject,handles;
Tabel 4.1. Lanjutan Citra UkuranWindow
UkuranWindow Hasil Window
Window =4x4
Window =5x5
Window =6x6
Window =7x7
Tabel 4.1. Lanjutan Citra UkuranWindow
Ukuran Window Hasil Window
Window =8x8
Window =9x9
Window =10x10
6. Langkah keenam tekan tombol pengenalan untuk mengetahui hasil rambu larangan
lalu lintas yang melalui tahap capture, preprocessing dan ekstraksi ciri dan hasil tersebut berupa dalam bentuk teks.
Perintah program di atas adalah proses untuk menhitung jarak masukan dengan citra dari database. Perhitungan pembanding menggunakan jarak Canberra sebagai
pembanding citra masukan dengan database. Perintah program perhitungan jarak g seperti diatas. Proses selanjutnya adalah nilai dari perhitungan jarak g tersebut dimasukan
ke dalam metode pembandingan yaitu metode K-Nearest Neighbour K-NN, dimana
for n=1:190
gn=jarakcy,z:,n; end
metode K-Nearest Neighbor K-NN akan membandingkan citra masukan database dengan 38 citra rambu larangan lalu lintas dan membuat kelas yang akan dipilih. Perintah
program K-Nearest Neighbor K-NN sebagai berikut:
g; k=3;
k pada knn m=5;
Jumlah sampel per kelas
[x1,x2]=sortg, ascend
; x urut naik fungsi
jarak kn=x21:k;
Pilih k nearest neighbour
hk=ceilknm; Penentuan kelas-kelas
yang terpilih x3=modehk;
Pilih kelas yang paling sering muncul
r10={ gbr 1. Berhenti
; gbr 2. Prioritas atas lalu lintas dari depan
; gbr 3. Beri kesempatan
; gbr 4. Prioritas bagi lalu lintas dari depan
; gbr 5. Dilarang beriringan kurang dari jarak yang
ditentukan ;
gbr 6. Dilarang membunyikan isyarat suara ;
gbr 7. Dilarang mendahului kendaraan lain ;
gbr 8. Pejalan kaki dilarang masuk ;
gbr 9. Kendaraan bermotor dengan roda empat atau lebih dilarang masuk
; gbr 10. Kendaraan bermotor dengan roda tiga
dilarang masuk ;
gbr 11. Sepeda dilarang masuk ;
gbr 12. Becak dan kereta roda tiga dilarang masuk
; gbr 13. Dilarang masuk
; gbr 14. Gerobak dorong dilarang masuk
; gbr 15. Troktor dengan kereta temple dilarang
masuk ;
gbr 16. Mesin kerja dilarang masuk ;
gbr 17. Mobil gerobak dilarang masuk ;
gbr 18. Dilarang membelok ke kanan ;
gbr 19. Semua kendaraan bermotor dilarang masuk ;
gbr 20. Dilarang parkir ;
gbr 21. Dilarang membelok ke kiri ;
gbr 22. Oto bus dilarang masuk ;
Lanjutan Program
Perintah program di atas adalah inisialiasi keluaran teks dari 38 rambu larangan lalu lintas.
Variabel r10 adalah inisialisasi 38 rambu larangan lalu lintas. Nilai yang paling minimum akan dipanggil sesuai dengan nama yang telah diinisialisasi. Kemudian nilai
gbr 23. Ditutup untuk semua kendaraan dari kedua arah
; gbr 24. Semua kendaraan tidak bermotor dilarang
masuk ;
gbr 25. Perintah berhenti ;
gbr 26. Sepeda motor dilarang masuk ;
gbr 27. Dilarang membalik ;
gbr 28. Mobil gerobak dengan kereta gandengan dilarang masuk
gbr 29. Silang datar dengan satu jalur rel ;
gbr 30. Gerobak dan dokar dilarang masuk ;
gbr 31. Kendaraan bermotor panjang dan muatan melebihi batas dilaran masuk
; gbr 32. Kendaraan yang seluruh tingginya termasuk
muatan melebihi ukuran yang ditentukan dilarang masuk
; gbr 33. Kendaraan tidak bermotor yang seluruh
panjang termasuk muatan melebihi ukuran dilarang masuk
; gbr 34. Kendaraan yang bobot dan muatan melebihi
tonase yang ditentukan dilarang masuk ;
gbr 35. Kendaraan yang seluruh lebar termasuk muatan melebihi ukuran yang ditentukan dilarang
masuk ;
gbr 36. Dilarang berhenti ;
gbr 37. Batas kecepatan maksimal yang ditentukan
; gbr 38. Kendaraan yang bobot pada satu sumbu
melebihi tonase yang ditentukan dilarang masuk };
Penentuan keluaran nilai minimum r11=r10x3;
sethandles.text5, string
,r11;
yang paling minimum akan ditampilkan ke dalam file figure dengan menggunakan perintah set
. Berikut perintah program mencari nilai paling minimum. Perintah program di atas adalah mencari nilai paling minimum dari 38 nilai rambu larangan lalu lintas yang telah
diinisialisasi. Tampilan hasil pengenalan salah satu citra rambu larangan lalu lintas setelah mengklik tombol pengenalan pada GUI. Dari hasil pengujian, tombol-tombol sudah
bekerja dengan baik dapat dilihat pada gambar 4.9.
Gambar 4.9. Tampilan Setelah Menekan Tombol Pengenalan 7.
Langkah ketujuh tekan tombol reset untuk melakukan pengenalan baru. Perintah program pengenalan reset sebagai berikut:
8. Langkah kedelapan tekan tombol selesai apabila pengguna ingin keluar dari program
pengenalan rambu larangan lalu lintas. Perintah program pada tombol selesai sebagai berikut:
Pengujian program pengenalan secara real time rambu larangan pada lalu lintas menggunakan discrete consine transform dan jarak Canberra, tombol yang ada pada
tampilan utama program dapat bekerja sesuai dengan perancangan yang dibuat dalam bab sebelumnya. Listing program utama keseluruhan terlampir pada lampiran IIIL5.
deletefigurecamera; figurecamera;
deletefigurecamera;
4.2. Penentuan Hasil Pengujian Program Pengenalan Citra Terhadap