• Tidak ada hasil yang ditemukan

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.

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

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 videowebcam. 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 = get(vidobj,'VideoResolution');

imWidh = 1280; imHeight = 720;

nBands = get(vidobj,'NumberOfBands');

hImage=image(zeros(imHeight,imWidh,nBands),

'parent',handles.axes1);

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';

triggerconfig(vidobj,'manual');

vidRes = get(vidobj,'VideoResolution');

imWidh = 1280; imHeight = 720;

nBands = get(vidobj,'NumberOfBands');

hImage=image(zeros(imHeight,imWidh,nBands), 'parent',handles.axes1); start(vidobj); pause(1); Image = getsnapshot(vidobj); trigger(vidobj); stop(vidobj) delete(vidobj) axes(handles.axes1); imshow(Image); axison handles.Image=Image; guidata(hObject,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=double(handles.Image); r1=r/255; r2 =1-r1; r3=bboxg(r2); j=('Cropping'); set(handles.text1,'string',j); axes(handles.axes2); imshow(r3); axison 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=imresize(r4,[64,64]); k=('Resizing'); set(handles.text2,'string',k); axes(handles.axes3); imshow(r5); axison handles.r5=r5; guidata(hObject,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=double(handles.r5); r7=abs(dct2(r6)); r7(1,1)=0; l=('Hasil Transformasi DCT'); set(handles.text3,'string',l); axes(handles.axes4); imshow(r7/max(r7(:))); handles.r7=r7; axison guidata(hObject,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; loadx64ciri2a; case 3 w=3; loadx64ciri3a; case 4 w=4; loadx64ciri4a; case 5 w=5; loadx64ciri5a; case 6 w=6; loadx64ciri6a; case 7 w=7; loadx64ciri7a; case 8 w=8; loadx64ciri8a; case 9 w=9; loadx64ciri9a; case 10 w=10; loadx64ciri10a; end handles.w=w; handles.z=z; r7=handles.r7; r8=r7(1:w,1:w); m=('Hasil window'); set(handles.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 axes(handles.axes5); imshow(r8/max(r8(:))); axison r9=r8(:); handles.t=r9; guidata(hObject,handles);

Tabel 4.1. (Lanjutan) Citra UkuranWindow UkuranWindow Hasil Window

Window =4x4

Window =5x5

Window =6x6

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

g(n)=jarakc(y,z(:,n));

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]=sort(g,'ascend'); % x urut naik (fungsi

jarak)

kn=x2(1:k); % Pilih k nearest

neighbour

hk=ceil(kn/m); % Penentuan kelas-kelas

yang terpilih

x3=mode(hk); % 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';

(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=r10(x3);

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 III(L5).

delete(figure(camera)); figure(camera);

4.2. Penentuan Hasil Pengujian Program Pengenalan Citra Terhadap

Tingkat Pengenalan Citra Rambu Larangan Lalu Lintas

Penentuan hasil nilai parameter dilakukan setelah melakukan pengujian pada program pengenalan citra rambu larangan lalu lintas. Pada program pengenalan rambu larangan lalu lintas ini ada satu proses yang akan dilakukan untuk pengujian program adalah sebagai berikut: Proses pertama pengujian secara real time yaitu melakukan pengujian parameter pengenalan rambu larangan pada lalu lintas dengan ukuran window

dan K-Nearest Neighbor (K-NN) dimana nilai K-Nearest Neighbor (K-NN) adalah dengan kelas k=1, k=3, k=5 dan k=7 yang akan digunakan dalam proses pengenalan rambu larangan lalu lintas. Dalam pengujian secara real time pengguna menggunakan data masukan yang meliputi variasi rotasi -10o, -5o, 0o, 5o, 10o dan variasi skala 90%, 95%, 100%, 105%, 110%. Variasi skala tidak dimasukan dalam database untuk proses pengujian yang akan membandingkan dengan nilai rotasi dalam database. Pengujian secara real time

dilakukan dengan data masukan secara langsung menggunakan potongan gambar rambu larangan lalu lintas jenis cetak, ketika pengguna meletakkan potongan tersebut di fixture

saat itu juga webcam akan mengambil gambar potongan yang kemudian dari hasil webcam

akan tertampil menjadi keluaran dari proses pengenalan citra. Proses pengujian parameter ini bertujuan untuk mencari nilai dari setiap parameter yang akan menghasilkan tingkat pengenalan yang terbaik.

4.2.1. Pengujian Parameter Pengenalan Rambu larangan Lalu Lintas

Dokumen terkait