pengenalan secara real time rambu lalu lintas … filesistem pengenalan rambu-rambu lalu lintas ini...
TRANSCRIPT
i
TUGAS AKHIR
PENGENALAN SECARA REAL TIME RAMBU LALU
LINTAS PERINGATAN MENGGUNAKAN EKSTRAKSI
CIRI WAVELET HAAR DAN FUNGSI JARAK CHI SQUARE
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh :
IGNATIUS AGUNG NUGROHO
NIM : 105114019
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
FINAL PROJECT
REAL TIME RECOGNITION OF WARNING TRAFFIC
SIGNS USING WAVELET HAAR
FEATURE EXTRACTION AND CHI SQUARE DISTANCE
FUNCTION
Presented As Partial Fulfillment Of The Requirement
To Obtain The Sarjana Teknik Degree
In Electrical Engineering Study Program
Oleh :
IGNATIUS AGUNG NUGROHO
NIM : 105114019
ELECTRICAL ENGINEERING STUDY PROGRAM
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO:
Karena kesalahan dan kegagalanlah
yang membuatku
belajar dan terus berjuang
Persembahan Skripsi ini kupersembahkan untuk ….
Yesus Kristus dan Bunda Maria yang selalu
menyertai dan memberkati sepanjang hari
Bapak dan Ibu yang selalu menncintai dan
mendoakanku
Kakak dan adik yang memberikan dukungan
dan doa
Serta teman-teman yang selalu membantu dan
menghibur
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
INTISARI
Perkembangan teknologi pada saat ini berkembang cepat, salah satu teknologi yang
saat ini banyak dikembangkan adalah teknologi computer vision.Teknologi computer
vision adalah teknologi yang membuat komputer dapat melihat dan mendapatkan suatu
informasi dari gambar sehingga teknologi ini membuat komputer memiliki kemampuan
seperti mata manusia dalam menangkap informasi visual (human sight). Berdasarkan hal
tersebut maka dibuat suatu program sehingga komputer dapat mengenali rambu-rambu lalu
lintas sehingga nantinya dapat mempermudah pengguna aplikasi untuk mengenali rambu
lalu-lintas.
Sistem pengenalan rambu-rambu lalu lintas ini dilakukan secara real time
menggunakan webcam, serta pengolahan citra dan pengenalan pola menggunakan ekstraksi
ciri Wavelet Haarserta fungsi jarak Chi Square. Sistem pengenalan ini akan menggunakan
laptop sebagai tempat memproses sistem, dan akan menggunakan bahasa pemrograman
Matlab serta interface menggunakan GUI yang tersedia dalam matlab.
Hasil dari sistem pengenalan ini yaitu sistem dapat mengenali rambu-rambu lalu
lintas sesuai dengan yang direncanakan. Berdasarkan hasil percobaan, dapat diketahui
batas jarak maksimum dan minimum aplikasi dapat mengenali rambu lalu lintas, serta
batas sudut kemiringan antara webcam dengan rambu.
Kata kunci: Wavelet Haar, jarak Chi Square, Pengenalan rambu-rambu lalu lintas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
The development of technology nowadays develops very quickly and one of the
technologies which is now developed a lot is the technology of computer vision. The
technology of computer vision is a technology that’s makes computers have ability like
human being’s eyes in capturing visual information (human sight). Based on the facts
above, I make a program so that the computer can detect traffic signs. Later, this
technology is able to detect the traffic sign around the vehicles and give information to the
drivers about the traffic sign around.
The recognition of these traffic signs is done at real time by using webcam, the
image processing and the recognition of the patterns use the extraction of characteristic of
Wavelet Haar and the function of the distance Chi Square. The system of this recognition
uses a laptop as the equipment to process the system and use the processing instructions of
Matlab and the interface using GUI which is available in the Matlab.
The result of this recognition system is that the system can recognize the traffic
sign so as planned. Based on the experimental results, it is known limits of the maximum
and minimum range of applications can recognize traffic signs, as well as the limit between
the tilt angle of the webcam with signs.
Key words : Wavelet Haar, Chi Square distance, the recognition of the traffic signs
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Syukur dan terima kasih pada Tuhan Yesus Kristus atas semua berkat, perlindungan,
dan pertolongan-Nya sehingga penulis dapat menyelesaikan tugas akhir dengan baik. Tugas
akhir ini dapat diselesaikan tentunya tidak lepas dari dukungan, bantuan, dan bimbingan dari
berbagai pihak. Oleh karena itu, pada kesempatan ini penulis mengucapkan terima kasih
kepada:
1. Tuhan Yesus Kristus, atas berkat pertolongan, dan penyertaanya sehingga penulis
mampu menyelesaikan tugas akhir ini dengan baik.
2. Paulina Heruningsih Prima Rosa, S.si., M.si. selaku Dekan Fakultas Sains dan
Teknologi.
3. Petrus Setyo Prabowo, S.T., M.T. selaku Ketua Program Studi Teknik Elektro
Universitas Sanata Dharma Yogyakarta.
4. Dr. Linggo Sumarno, selaku dosen pembimbing yang dengan sabar membimbing,
member masukkan, serta memotivasi sehigga penulis dapat menyelesaikan tugas akhir
ini.
5. Bapak Petrus Setyo Prabowo, S.T., M.T. dan Bapak Dr. Iswanjono selaku dosen
penguji yang memberikan masukkan, kritik dan saran serta merevisi penulisan tugas
akhir ini.
6. Bapak dan ibu dosen yang telah mengajarkan banyak ilmu yang bermanfaat selama
menempuh pendidikan di Universitas Sanata Dharma.
7. Seluruh laboran dan staff Program Studi Teknik Elektro Fakultas Sains dan Teknologi
Universitas Sanata Dharma Yogyakarta yang telah banyak membantu penulis selama
menempuh pendidikan di Universitas Sanata Dharma.
8. Kedua orang tua penulis telah banyak memberikan dukungan doa, kasih sayang,
perhatian, semangat, serta motivasi sehingga penulis dapat menyelesaikan tugas akhir
ini.
9. Kakak dan adik penulis yang memberikan sindiran namun hal itu yang membuat
penulis termotivasi untuk menyelesaikan tugas akhir ini.
10. Teman-teman seperjuangan Teknik Elektro 2010 yang dalam susah atau senang selalu
mendukung, menyemangati, dan membantu dalam menyelesaikan tugas akhir ini,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
khususnya untuk Stevanus Hari yang memberikan dukungan dan motivasi pada saat
penulis mengalami kegagalan.
11. Teman-teman misdinar dan antiokhia gereja Bunda Maria Cirebon yang memberikan
semangat serta menghibur penulis.
12. Semua pihak yang tidak dapat disebutkan satu per satu yang telah membantu dan
mendukung penyelesaian tugas akhir ini.
Penulis menyadari bahwa dalam penulisan tugas akhir ini masih banyak kekurangan, oleh
sebab itu penulis mengharapkan kritik dan saran yang membangun untuk penyempurnaan
tugas akhir ini. Penulis juga berharap tugas akhir ini dapat dimanfaatkan dan
dikembangkan lebih lanjut oleh peneliti lain sehingga tulisan ini dapat lebih bermanfaat.
Yogyakata,…………..
Penulis
Ignatius Agung Nugroho
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
Halaman Sampul (Bahasa Indonesia) ........................................................................................ i
Halaman Sampul (Bahasa Inggris) ........................................................................................... ii
Halaman Persetujuan ............................................................................................................... iii
Halaman Pengesahan ............................................................................................................... iv
Pernyataan Keaslian Karya ....................................................................................................... v
Halaman Persembahan ............................................................................................................. vi
Lembar Persetujuan Publikasi Karya ...................................................................................... vii
Intisari .................................................................................................................................... viii
Abstract .................................................................................................................................... ix
Kata Pengantar .......................................................................................................................... x
Daftar Isi ................................................................................................................................. xii
Daftar Gambar ........................................................................................................................ xv
Daftar Tabel .......................................................................................................................... xvii
BAB I:PENDAHULUAN
1.1. Latar Belakang ....................................................................................................... 1
1.2. Tujuan dan Manfaat ............................................................................................... 2
1.3. Batasan Masalah .................................................................................................... 2
1.4. Metodologi Penelitian ............................................................................................ 3
BAB II: DASAR TEORI
2.1. Rambu Lalu Lintas ................................................................................................. 5
2.2. Pengolahan Citra .................................................................................................... 6
2.2.1. Definisni Citra ..................................................................................................... 6
2.2.2. Ruang Warna RGB ............................................................................................. 8
2.2.3. Citra Grayscale ................................................................................................... 8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.2.4. Cropping ............................................................................................................. 9
2.2.5. Resizing ............................................................................................................. 10
2.3. Pengenalan Pola ................................................................................................... 10
2.4. Operasi Geometri Citra ......................................................................................... 10
2.5. Wavelet ................................................................................................................ 11
2.5.1. Wavelet secara Umum ...................................................................................... 11
2.5.2. Wavelet Haar .................................................................................................... 11
2.6. Konvolusi ............................................................................................................. 13
2.6.1. Konvolusi secara Umum ................................................................................... 13
2.6.2. Konvolusi dengan Ekstensi Sinyal.................................................................... 15
2.7. Downsampling ..................................................................................................... 16
2.8. Fungsi Jarak Chi-Square ...................................................................................... 16
2.9. Templete Matching............................................................................................... 16
2.10. Matlab ................................................................................................................ 17
2.11. WebCam ............................................................................................................ 17
BAB III:PERANCANGAN
3.1. Perancangan SistemHardware ............................................................................. 18
3.1.1. Tripot................................................................................................................. 18
3.1.2. WebCam ............................................................................................................ 19
3.1.3. Laptop / Komputer ............................................................................................ 19
3.14. Gambar Rambu Lalu Lintas ............................................................................... 19
3.2. Perancangan Sistem Software .............................................................................. 20
3.2.1. Proses Pembuatan Database ............................................................................. 21
3.2.2. Pengambilan Citra Rambu ................................................................................ 23
3.2.3. Tahap Preprocessing ........................................................................................ 24
3.2.4. Ekstraksi Ciri .................................................................................................... 31
3.2.5. Fungsi Jarak ...................................................................................................... 33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
3.2.6. Penentuan Keluaran .......................................................................................... 33
3.3. Gambar Uji........................................................................................................... 34
3.4. Perancangan Tampilan GUI Matlab .................................................................... 34
BAB IV:HASIL DAN PEMBAHASAN
4.1. Langkah-langkah awal untuk menjalankan program rambu peringatan .............. 36
4.2. Penjelasan Program .............................................................................................. 39
4.3. Pengujian dan Analisis Hasil Pengenalan Rambu Peringatan ............................. 49
4.3.1. Pengujian Pengenalan Berdasarkan Variasi Jarak dan Variasi Desimasi ........ 49
4.3.2. Pengujian Pengenalan Berdasarkan Variasi Sudut .......................................... 54
BAB V:KESIMPULAN
5.1. Kesimpulan .......................................................................................................... 64
5.2. Saran .................................................................................................................... 64
DAFTAR PUSTAKA ............................................................................................................. 65
LAMPIRAN ............................................................................................................................ 66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR GAMBAR
Halaman
Gambar 2.1. Contoh gambar rambu peringatan (a) Jembatan Sempit (b) Banyak Tikungan
(c) Tikungan Tajam ke Kiri .............................................................................. 6
Gambar 2.2. Contoh koordinat citra digital ........................................................................... 7
Gambar 2.3. Skema Ruang Warna RGB ............................................................................... 8
Gambar 2.4.Citra skala keabuan ............................................................................................ 9
Gambar2.5.Dekomposisi wavelet satu level berdasarkan algoritma piramid; ai adalah
koefisien rerata; hi, vi, dan di masing-masing adalah koefisien
horisontal,vertikal, dan diagonal .................................................................... 12
Gambar 2.6. Perhitungan konvolusi secara grafis ............................................................... 14
Gambar 2.7. Perhitungan konvolusi secara matriks ............................................................ 14
Gambar 2.8. Perhitungan konvolusi ................................................................. 15
Gambar 3.1. Gambaran umum perancangan sistem ............................................................ 18
Gambar 3.2. Contoh gambar rambu lalu-lintas ................................................................... 19
Gambar 3.3. Blok diagramproses pengenalan rambu .......................................................... 20
Gambar 3.4. Diagram alir proses pengenalan rambu .......................................................... 21
Gambar 3.5. Diagram alir pembuatan database .................................................................. 23
Gambar 3.6. Diagram alir pengambilan citra ...................................................................... 24
Gambar 3.7. Konversi citra rgb ke grayscale (a) citra masukkan (rgb), (b) citra hasil
grayscale ......................................................................................................... 25
Gambar 3.8. Contoh proses cropping; (a)titik koordinat bagian kiri atas; (b) titik koordinat
bagian kanan atas; (c) titik koordinat bagian kiri bawah; (d) hasil cropping . 26
Gambar 3.9. Diagram ali Bounding Box.............................................................................. 27
Gambar 3.10. Proses bounding box (a) Input karakter (b) Hasil potong kiri (c) Putar 90°
serah jarum jam ke 1 (d) Hasil potong kiri (e) Putar 90° serah jarum jam ke 2
(f) Hasil potong kiri (g) Putar 90° serah jarum jam ke 3 (h) Hasil Potong kiri
(i) Putar 90° serah jarum jam ke 4, kembali ke posisi awal ........................... 28
Gambar 3.11. Proses (a) sebelum resizing (b) setelah resizing ........................................... 29
Gambar 3.12. Diagram alir pemrosesan citra ..................................................................... 30
Gambar 3.13. Diagram alir ekstraksi ciri ........................................................................... 31
Gambar 3.14. Diagram alir konvolusi ................................................................................ 32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
Gambar 3.15. Diagram alir downsampling .......................................................................... 32
Gambar 3.16. Diagram alir tahap fungsi jarak ................................................................... 33
Gambar 3.17. Diagram alir penentu keluaran ..................................................................... 34
Gambar 3.18. Sketsa GUI pengenalan rambu lalu lintas .................................................... 35
Gambar 4.1. Icon Matlab R2010a ....................................................................................... 36
Gambar 4.2. Tampilan utama matlab R2010a ..................................................................... 36
Gambar 4.3. Mengganti directory dan menu guide ............................................................. 37
Gambar 4.4. Tampilan GUIDE Quick Start ........................................................................ 37
Gambar 4.5. Tampilan Pengenalan_Rambu ........................................................................ 38
Gambar 4.6. Tampilan GUI Pengenalan Rambu Peringatan secara Real Time .................. 38
Gambar 4.7. Tampilan saat tombol Camera On ditekan ..................................................... 39
Gambar 4.8. Tampilan saat tombol Capture ditekan .......................................................... 40
Gambar 4.9. Tampilan saat popupmenu diklik .................................................................... 41
Gambar 4.10.Tampilan saat tombol start diklik .................................................................. 42
Gambar 4.11.Posisi webcam terhadap gambar rambu ........................................................ 49
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
DAFTAR TABEL
Halaman
Tabel 3.1. Spesifikasi webcam ............................................................................................ 19
Tabel 3.2. Keterangan GUI ................................................................................................ 35
Tabel 4.1. Mencari nilai parameter untuk bounding box .................................................... 44
Tabel 4.2. Menentukan nilai parameter JKolom ................................................................ 45
Tabel 4.3. Pengujian rambu tikungan ke kiri...................................................................... 50
Tabel 4.4. Pengujian rambu tikungan ke kanan.................................................................. 51
Talel 4.5. Pengujian rambu persimpangan ....................................................................... 52
Tabel 4.6. Citra hasil desimasi ............................................................................................ 53
Tabel 4.7. Pengujian rambu tikungan ke kiri dengan jarak 200 cm ................................... 54
Tabel 4.8. Pengujian rambu tikungan ke kanan dengan jarak 200 cm ............................. 55
Tabel 4.9. Pengujian rambu persimpangan dengan jarak 200 cm ..................................... 56
Tabel 4.10. Pengujian rambu tikungan ke kiri dengan jarak 300 cm ................................ 57
Tabel 4.11. Pengujian rambu tikungan ke kanan dengan jarak 300 cm ............................ 58
Tabel 4.12. Pengujian rambu persimpangan dengan jarak 300 cm ................................... 59
Tabel 4.13. Pengujian rambu tikungan ke kiri dengan jarak 400 cm ................................ 60
Tabel 4.14. Pengujian rambu tikungan ke kanan dengan jarak 400 cm ............................ 61
Tabel 4.15. Pengujian rambu persimpangan dengan jarak 400 cm ................................... 62
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Kemajuan perkembangan teknologi di jaman ini berkembang sangat cepat. Salah
satu teknologi yang banyak dikembangkan yaitu teknologi computer vision. Teknologi
computer vision adalah teknologi yang membuat komputer dapat melihat dan mendapatkan
suatu informasi dari gambar sehingga teknologi ini membuat komputer memiliki
kemampuan seperti mata manusia dalam menangkap informasi visual (human sight).
Berdasarkan teknologi tersebut maka dibuat suatu program sehingga komputer dapat
mengenali lambang rambu-rambu lalu lintas. Gambar yang nantinya akan dilihat yaitu
gambar yang berasal dari gambar rambu – rambu lalu lintas.
Sistem pengenalan rambu-rambu lalu lintas ini dilakukan secara real time
menggunakan webcam. Penelitian-penelitian yang telah dibuat berkaitan dengan
pengenalan rambu-rambu lalu lintas, diantaran penelitian yang dilakukan oleh Tri Harsono
[1] tentang Pengenalan Rambu – Rambu Lalu Lintas dengan Menggunakan Filter Warna
dan Kuantisasi Rata – Rata dan penelitian yang dilakukan oleh Deniel Cahyo Prasetyo [2]
tentang Pengenalan Perangkat Elektronika Secara Real Time Menggunakan Webcam
Berbasis Ekstraksi Ciri Discrete Consine Transform.
Teknologi ini bila dikembangkan nantinya dapat mengenali rambu-rambu lalu
lintas yang ada disekitar kendaraan dan memberikan informasi kepada pengemudi
kendaraan tentang rambu-rambu yang ada disekitarnya. Sehingga dapat membantu
pengemudi untuk tetap fokus pada jalan, hal ini dapat pula mengurangi resiko kecelakaan
serta pelanggaran lalu lintas.
Teknologi computer vision ini membutuhkan beberapa perangkat pendukung
seperti webcam yang berfungsi untuk menangkap gambar rambu-rambu lalu lintas, selain
itu dibutuhkan pula komputer / laptop yang berfungsi sebagai tempat untuk mengolah
gambar agar bisa dikenali dan informasinya diberikan pada pengguna. Sistem ini melewati
beberapa proses, diantaranya yaitu proses pengambilan gambar / citra yang dilakukan
menggunakan webcam. Citra yang digunakan berasal dari gambar rambu berukuran 60 cm
x 60 cm. Pengolahan citra dan pengenalan pola menggunakan ekstraksi ciri Wavelet Haar
serta fungsi jarak Chi Square. Setiap gambar dari rambu akan diambil menggunakan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
webcam, setelah itu gambar rambu akan dibandingkan dengan database yang telah
disiapkan. Proses pengolahan citra dan pengenalan pola tersebut dilakukan dengan
menggunakan perangkat lunak Matlab, selain itu Matlab juga memiliki sebuah fasilitas
antarmuka (interface) yaitu GUI (Graphical User Interface) sehingga dapat memudahkan
penggunanya dalam pengoperasian sistem. Keluaran dari sistem ini merupakan hasil
perbandingan nilai terkecil antara gambar dari webcam dengan data pada database.
Keluaran sistem ini berupa teks yang akan muncul dalam layar monitor dan suara yang
keluar melalui speaker.
1.2. Tujuan dan Manfaat Penelitian
- Tujuan
Membuat aplikasi untuk mengenali rambu lalu_lintas dengan menggunakan
ekstraksi ciri Wavelet Haar dan fungsi jarak Chi Square.
- Manfaat
1. Membantu pengguna aplikasi untuk mengenali rambu-rambu lalu lintas.
2. Sebagai bahan pembelajaran dalam penerapan image processing.
1.3. Batasan Masalah
Sistem pengenalan rambu-rambu lalu lintas ini terdiri dari perangkat keras
(hardware) dan perangkat lunak (software). Hardware terdiri dari webcam, laptop, fixture,
dan dua buah lampu belajar. Software yang digunakan adalah Matlab, yang digunakan
sebagai tempat untuk proses pengolahan data.
Pada perancangan sistem ini, penulis fokus pada pembuatan software komputer
untuk memproses pengenalan rambu-rambu lalu lintas sedangkan untuk hardware berupa
webcam yang sudah tersedia di pasaran dan fixture yang didesain sendiri. Penulis juga
menetapkan beberapa batasan masalah pada perancangan ini, yaitu sebagai berikut :
1. Masukkan data berasal dari gambar rambu lalu lintas peringatan yang berukuran
60 cm x 60 cm.
2. Pengambilan citra menggunakan webcam.
3. Pemrograman dan tampilan GUI menggunakan Matlab.
4. Variasi citra untuk pengujian akan menggunakan variasi jarak.
5. Variasi desimasi mulai dari desimasi 1 hingga desimasi 3.
6. Variasi sudut kemiringan antara 45° hingga -45°
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
7. Pengenalan citra ini menggunakan ekstraksi ciri Wavelet Haar dan fungsi jarak
Chi Square yang diolah menggunakan software Matlab.
8. Sistem pengenalan rambu-rambu lalu lintas yang dibuat bersifat real time.
9. Hasil keluaran berupa teks di layar monitor dan keluaran berupa suara melalui
speaker
1.4. Metode penelitian
Langkah – langkah dalam pengerjaan tugas akhir :
1. Studi Pustaka
Studi pustaka dilakukan dengan cara mengumpulkan serta mempelajari
bahan -bahan referensi berupa buku-buku dan jurnal-jurnal ilmiah yang berasal
dari media internet maupun media-media lain. Bahan referensi yang
dikumpulkan dan dipelajari berkaitan dengan topik yang diambil, seperti bahan
tentang pemograman Matlab, wavelet, fungsi jarak chi square, dan image
processing.
2. Pembuatan subsistem software
Tahap ini merupakan tahap dalam pembuatan program untuk sistem
pengenalan rambu lalu-lintas. Pembuatan program menggunakan software
Matlab.
3. Perancangan subsistem software
Sistem pengenalan rambu lalu lintas ini akan bekerja bila user menekan
push button yang memberikan perintah pada sistem untuk mengambil citra
(capture) menggunakan webcam. Setelah proses capture, proses selanjutnya
adalah proses preprocessing yang terdiri dari tiga tahap yaitu grayscale,
cropping dan resizing. Tahap pertama dari proses preprocessing yaitu citra akan
dikonversi menjadi bentuk grayscale sebelum nantinya citra akan di cropping
agar bagian yang tidak perlu bisa dihilangkan. Tahap selanjutnya yaitu ukuran
citra akan diubah sesuai dengan yang diinginkan, proses ini disebut proses
resizing. Output dari proses preprocessing selanjutnya akan menjadi input dari
proses pengenalan rambu lalu lintas. Proses pengenalan rambu lalu-lintas terdiri
dari tahap ekstraksi ciri dan tahap fungsi jarak dimana pada tahap ini akan
dibandingkan juga dengan data dari database. Kemudian proses selanjutnya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
adalah proses penentuan keluaran dan yang terakhir adalah menampilkan hasil
keluaran pada layar monitor.
4. Analisis dan penyimpulan
Analisis data yang pertama dilakukan dengan meneliti pengaruh variasi
desimasi terhadap tingkat pengenalan. Penyimpulan hasil dilakukan untuk
mencari ukuran desimasi yang terbaik yang menghasilkan tingkat pengenalan
yang optimal. Kedua, meneliti pengaruh jarak antara webcam dengan rambu
terhadap tingkat pengenalan. Penyimpulan hasil dilakukan untuk mengetahui
kinerja sistem pengenalan terhadap pengaruh jarak.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB II
DASAR TEORI
2.1. Rambu Lalu Lintas
Rambu lalu lintas adalah salah satu perlengkapan jalan yang memuat lambang,
huruf, angka, kalimat, atau perpaduan diantaranya, yang berfungsi untuk memberikan
peringatan, larangan,perintah, dan petunjuk bagi pengguna jalan. Fungsi rambu lalu lintas
akan maksimal jika para pengguna jalan mengenal dan mengetahui arti dan maksud dari
rambu-rambu lalu-lintas yang terpasang di jalan umum [3].
Selain itu agar rambu-rambu mudah dimengerti maka harus dibuat se-efektif
mungkin, dengan beberapa syarat seperti berikut :
1. Memenuhi kebutuhan.
2. Menarik perhatian dan mendapat respek pengguna jalan.
3. Memberikan pesan yang sederhana dan mudah dimengerti pengguna jalan.
4. Menyediakan waktu cukup kepada pengguna jalan dalam memberikan respon.
Beberapa pertimbangan yang harus diperhatikan dalam perencanaan dan
pemasangan rambu agar rambu dapat efektif, yaitu :
1. Keseragaman bentuk dan ukuran rambu
Keseragaman bentuk dan ukuran rambu lalu lintas akan memudahkan pengguna
jalan dalam memahami, mengenal, serta memberikan respon karena dengan bentuk
dan ukuran yang konsisten akan membuat konsistensi persepsi dan respon
pengguna jalan.
2. Desain rambu
Rambu-rambu lalu-lintas harus harus memenuhi standar dalam pembuatanya, yaitu
warna, bentuk, ukuran, dan tingkat retrorefleksi harus menarik perhatian pengguna
jalan agar mudah dipahami dan memberikan waktu yang cukup bagi pengguna
jalan dalam memberikan respon.
3. Lokasi rambu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
Lokasi rambu berhubungan dengan pengguna jalan sehingga pengguna jalan dapat
memiliki waktu yang cukup dalam memberikan respon.
4. Operasi rambu
Rambu yang benar pada lokasi yang tepat harus memenuhi kebutuhan lalu lintas
dan diperlukan pelayanan yang konsisten dengan memasang rambu yang sesuai
kebutuhan.
5. Pemeliharaan rambu
Pemeliharaan rambu diperlukan agar rambu tetap berfungsi baik.
Negara Indonesia mengenal ada empat macam rambu, salah satu diantaranya yaitu
rambu peringatan (Gambar 2.1). Rambu peringatan berfungsi untuk memberikan
peringatan kepada pengguna jalan bahwa kemungkinan ada bahaya atau tempat berbahaya
di depan pengguna jalan sehingga harus berhati-hati. Warna dasar rambu peringatan
berwarna kuning dengan lambang atau tulisan berwarna hitam. Seperti contoh gambar
rambu dibawah ini :
(a) (b) (c)
Gambar 2.1. Contoh gambar rambu (a) Tikungan ke Kiri (b) Tikungan ke Kanan
(c) Perimpangan
2.2. Pengolahan Citra
2.2.1. Definisi Citra
Citra adalah representasi (gambaran), kemiripan, atau intensitas pada bidang dua
dimensi, sehingga citra merupakan dimensi spasial atau bidang yang berisi informasi
warna yang tidak terpengaruh waktu. Ditinjau dari sudut pandang matematis, citra
merupakan fungsi menerus (continue) atas intensitas cahaya pada bidang dua dimensi.
Sumber cahaya menerangi objek, objek memantulkan kembali seluruh atau sebagian
berkas cahaya kemudian ditangkap oleh alat optis atau electron optis [4].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Citra dibedakan menjadi dua macam, yaitu citra analog dan citra digital. Citra
analog adalah citra yang berasal dari sinyal analog yang kemudian ditangkap oleh optik.
Sedangkan citra digital merupakan sebuah larik (array) yang terdiri dari nilai real dan
kompleks yang direpresentasikan dengan deret bit tertentu.
Suatu citra juga dapat didefinisikan dengan menggunakan fungsi matriks (2.1),
yaitu f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan
amplitudo f di titik koordinat (x,y). Citra dapat dikatakan citra digital apabila nilai x,y dan
amplitudo f berhingga dan bernilai diskrit. Citra digital dapat ditulis dalam bentuk matrik
sebagai berikut [5] :
( ) [
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
] (2.1)
Matriks diatas menyatakan bahwa baris dan kolom merupakan suatu titik pada
citra. Nilai antara baris dan kolom tersebut disebut dengan picture element, image element,
pels, atau piksels. Piksel ini merupakan sekumpulan titik-titik gambar yang
menggambarkan koordinat dan mempunyai intensitas yang dinyatakan dengan bilangan
dan disimbolkan f(x,y), dimana (x,y) merupakan koordinat pada bidang dua dimensi dan
f(x,y) merupakan intensitas cahaya pada titik (x,y), seperti pada Gambar 2.2 [5].
Gambar 2.2. Contoh koordinat citra digital
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
2.2.2. Ruang Warna RGB
Ruang warna adalah spesifikasi suatu sistem koordinat yang setiap titik di
dalamnya mempresentasikan sebuah warna. Setiap citra berwarna memiliki ruang warna
yang disesuaikan.Ruang warna biasanya menggunakan tiga komponen dasar yaitu red (R),
green (G), blue (B) dan ketiga komponen tersebut merupakan bagian dari setiap piksel.
Ruang warna RGB dapat digambarkan dalam bentuk kubus seperti pada Gambar 2.3 [6].
Gambar 2.3. Skema Ruang Warna RGB
Setiap warna pokok memiliki intensitas sendiri dengan nilai maksimum 255 atau 28
= 8 bit. Bila dilihat dari Gambar 2.3 titik awal berada pada koordinat (0,0,0) yang
merupakan warna hitam, hal tersebut juga menunjukkan bahwa setiap komponen warna
benilai minimal. Sedangkan untuk komponen warna bernilai maksimal berada pada titik
koordinat (255,255,255) yang menyatakan warna putih. Selain itu bila komponen warna
bernilai maksimal maka sama dengan 24 bit sehingga jumlah warna mencapai 16.777.216.
2.2.3. Citra Grayscale
Citra berwarna terdiri dari 3 layer matrik yaitu R-layer, G-layer, dan B-layer seperti
yang telah dibahas sebelumnya. Sehingga bila citra tersebut akan diproses membutuhkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
proses perhitungan yang panjang karena perhitungan harus diulang sebanyak tiga kali.
Supaya citra dapat diproses oleh komputer dengan mudah maka citra digital harus
memiliki format tertentu, oleh sebab itu hal pertama kali yang dilakukan untuk melakukan
pengolahan citra yaitu dengan cara mengubah citra berwarna menjadi format/bentuk
grayscale atau warna keabuan. Mengubah citra berwarna menjadi citra grayscale dapat
dilakukan dengan cara mengambil rata-rata dari nilai R, G, dan B menggunakan rumus
seperti pada persamaan (2.2) [7]
(2.2)
Dimana :
S : Nilai grayscale
R : Nilai warna Red
G : Nilai warna Green
B : Nilai warna Blue
Citra grayscale merupakan citra digital yang pada setiap pikselnya hanya memiliki
satu nilai kanal. Format citra ini disebut skala keabuan karena pada umumnya warna hitam
digunakan sebagai warna minimal 0 dan warna putih sebagai warna maksimal 255, dimana
warna tengah-tengah antara hitam dan putih adalah abu-abu. Seperti yang ditunjukkan pada
Gambar 2.4.
Gambar 2.4. Citra skala keabuan
2.2.4. Cropping
Salah satu cara lainnya agar pengolahan citra menjadi lebih mudah yaitu dengan
cara cropping. Cara ini menentukkan bagian citra yang dibutuhkan untuk proses
selanjutnya sehingga untuk bagian citra yang tidak dibutuhkan akan dipotong atau
dihilangkan. Sehingga dengan cara cropping akan mendapatkan data yang dibutuhkan dan
mempermudah dalam pengolahan citra selanjutnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
2.2.5. Resizing
Resizing adalah proses mengubah ukuran resolusi suatu citra secara horizontal
maupun vertikal menjadi lebih besar atau lebih kecil dari ukuran sebelumnya, namun
perubahan itu tidak akan berpengaruh pada tampilan citran karena yang diubah hanya
ukuran piksel citra.
2.3. Pengenalan Pola
Pengenalan pola (pattern recognition) adalah suatu ilmu untuk mengklasifikasikan
atau menggambarkan sesuatu berdasarkan pengukuran kuantitatif fitur (ciri) atau sifat
utama dari suatu obyek [7]. Proses pengenalan pola dapat dilakukan dengan cara
membandingkan antara obyek yang ingin dikenali dengan data-data yang telah disediakan.
Proses pengenalan pola ini bertujuan meniru kemampuan manusia dalam mengenali suatu
obyek atau pola, sehingga dengan menerapkan pengenalan pola ini kepada suatu mesin
maka membuat mesin memiliki kemampuan seperti manusia dalam mengenali suatu obyek
atau pola.
2.4. Operasi Geometri Citra [6]
Operasi geometri adalah proses perubahan hubungan spasial antara setiap piksel
pada sebuah citra. Operasi geometri memetakan kembali piksel citra input dari posisi awal
(x1, y1) ke posisi baru (x2, y2) pada citra output. Proses yang tergolong ke dalam operasi
geometri di antaranya adalah penskalaan dan Affine Transformation.
Metode transformasi Affine dapat digunakan untuk mencari citra hasil penskalaan.
Secara matematis rumus transformasi Affine adalah sebagai berikut.
[ ] [
] (2.5)
Proses penskalaan didapat dengan mengganti nilai A dan B dengan nilai sebagai berikut.
[
] (2.6)
[ ] (2.7)
Dimana :
(x1 , y1) : citra input
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
(x2 , y2) : citra output
(Sp , Sl) : variable penskalaan
Sehingga didapatkan rumus pengganti untuk proses penskalaan adalah sebagai berikut.
[ ] [
] [ ] [
] (2.8)
Sehingga:
[ ] [
] [ ] (2.9)
2.5. Wavelet
2.5.1. Wavelet secara Umum
Wavelet merupakan gelombang singkat yang mempunyai kemampuan
mengelompokkan energi citra dan terkonsentrasi pada sekelompok kecil koefisien,
sedangkan kelompok koefisien lainnya hanya mengandung sedikit energi yang dapat
dihilangkan tanpa mengurangi nilai informasi [8]. Sedangkan trasformasi wavelet
merupakan pengubahan sinyal kedalam bentuk berbagai wavelet basis dengan
menggunakan berbagai penyekalaan dan pergeseran, oleh karena itu beberapa skala dan
resolusi dari koefisien wavelet dapat dihitung pada resolusi tinggi berikutnya. Sehingga
dengan adanya sifat multiresolusi pada transformasi wavelet, dimungkinkan untuk
mendekomposisikan suatu sinyal pada skala yang berlainan. Untuk mendapatkan
dekomposisi wavelet suatu citra digunakan algoritma piramid, seperti Gambar 2.5.
Dekomposisi dengan n tingkatan, maka output dari ai akan dijadikan input untuk
dekomposisi tingkat selanjutnya,sehingga menjadi ai+1, hi+1, vi+1, dan di+1.
2.5.2. Wavelet Haar
Wavelet Haar merupakan salah satu tipe wavelet yang paling sederhana yang dapat
diterapkan pada transformasi sinyal 1 dimensidan transformasi pada citra (sinyal 2
dimensi). Transformasi pada citra atau sinyal 2-dimensi dalam mentransformasikan nilai-
nilai pikselnya dapat dilakukan dengan dua cara, yaitu metode dekomposisi standar dan
metode dekomposisi tidak standar [9]. Metode dekomposisi standar dilakukan dengan cara
memisahkan antara baris dan kolom sehingga transformasi wavelet dilakukan dengan 1-
dimensi. Transformasi dilakukan pada baris terlebih dahulu hingga nilai piksel citra yang
diinginkan kemudian dilanjutkan transformasi wavelet 1-dimensi untuk setiap kolomnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
Sedangkan untuk metode dekomposisi tidak standar, dilakukan dengan cara transformasi
wavelet 1-dimensi untuk baris dan kolom dilakukan bergantian terus hingga mencapai nilai
yang diinginkan.
Wavelet Haar memiliki empat buah filter, yaitu dekomposisi low pass filter dan
high pass filter serta rekonstruksi low pass filter dan high pass filter. Penelitian ini hanya
menggunakan satu filter, yaitu dekomposisi low pass filter. Koefisien wavelet Haar
dekomposisi low pass filter (2.10), yaitu :
, - (2.10)
Gambar 2.5. Dekomposisi wavelet satu level berdasarkan algoritma piramid;
ai adalah koefisien rerata; hi, vi, dan di masing-masing adalah
koefisien horisontal,vertikal, dan diagonal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
2.6. Konvolusi
2.6.1. Konvolusi secara Umum [10]
Konvolusi dapat didefinisikan sebagai cara matematik untuk menggabungkan dua
buah sinyal menjadi sinyal dalam bentuk lain. Konvolusi banyak digunakan dalam
pengolahan citra, diantara untuk memperhalus citra (smoothing), menajamkan citra
(crispening), mendeteksi tepi (edge detection). Jika ada dua barisan u dan h maka hasil
konvolusinya (yk), dimana k menunjukkan suku ke-k. Konvolusi dinyatakan dengan
persamaan 2.11.
∑
( )
Contoh, terdapat dua barisan berikut u = [1 2 3 4] dan h = [1 2] yang akan dikonvolusi.
Mencari yk menggunakan persamaan 2.11, sebagai contoh mencari y1.
Penyelesaian secara grafis (Gambar 2.6) :
1. Ambil bayangan cermin dari un (Gambar 2.6.a) terhadap sumbu vertikal yang
melalui titik asal untuk memperoleh u(-n) (Gambar 2.6.b).
2. Geserkan u(-n) ke kanan sejauh suatu jumlah yang sama dengan nilai k dimana
barisan keluaran dihitung, yang menghasilkan u(k-n) (Gambar 2.6.c).
3. Perkalikan barisan u(k-n) dengan baris masukkan hk (Gambar 2.6.d).
4. Jumlahkan nilai-nilai hasil kali barisan (Gambar 2.6.e) untuk memperoleh nilai
konvolusi di k (Gambar 2.6.f).
Selain itu untuk memudahkan dalam perhitungan konvolusi dapat juga
menggunakan cara matriks seperti pada Gambar 2.7. Elemen-elemen matriks ini adalah
hasil kali dari puncak-puncak baris dan kolom yang bersangkutan. Hasil konvolusi dapat
dilihat setelah hasil dari perkalian dua baris tersebut dijumlahkan menurut garis-garis
diagonal yang putus-putus. Sehingga, suku pertama (y0) adalah 1 dan untuk suku kedua
(y1) sama dengan 2 + 2 = 4. Cara yang sama dilakukan untuk mencari suku berikutnya (yk),
setelah semuanya dihitung maka akan memperoleh hasil yk = [1 4 7 10 8].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
Gambar 2.6. Perhitungan konvolusi secara grafis
Gambar 2.7. Perhitungan konvolusi secara matriks
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
2.6.2. Konvolusi dengan Ekstensi Sinyal
Konvolusi biasa digunakan bila ada sinyal yang memiliki panjang terbatas, dan
juga ujung-ujung sinyalnya diskontinu sehingga dapat menyebabkan distorsi pada ujung-
ujung sinyal. Sehingga dapat dikatakan konvolusi adalah suatu proses untuk
memperpanjang sinyal dengan cara pengulangan sinyal atau yang disebut periodisasi.
Misalnya sinyal input uk = {u(1), u(2), … , u(M)} akan dikonvolusi dengan sinyal lain hk =
{h(1), h(2), … , h(N)}, dimana N adalah bilangan genap, dan M > N, serta m adalah N/2.
Sehingga pengulangan sinyal dengan periodisasi akan menghasilkan sinyal
* ( ) ( ) ( ) ( ) ( ) ( )+ (2.12)
Konvolusi sinyal yang diperpanjang dengan sinyal hk akan menghasilkan
Hasil konvolusi menghasilkan sinyal output dimana panjang M + N-1 lebih besar
daripada panjang uk. Agar sinyal output memiliki panjang yang sama dengan sinyal input,
maka hanya bagian-bagian tertentu saja yang akan dipilih sebagai output. Misalnya, output
konvolusi diatas adalah yk ={y(1), y(2), …, y(L)}, dimana L = M + N-1, maka akan dipilih
bagian-bagian tertentu dari yk adalah [11]
yout(k) = {y(N+1), …,y(N+M)} (2.14)
Sebagai contoh, ada dua baris u = [1 2 3 4] dan h = [1 2] dimana baris u akan
diperpanjang dengan periodisasi (2.12) sehingga menghasilkan = [4 1 2 3 4 1].
Hasil dikonvolusi (2.13) dengan baris h dengan menggunakan cara matriks, seperti
pada Gambar 2.8.
Gambar 2.8. Perhitungan konvolusi
(2.13)
_
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Konvolusi dari menghasilkan yk = [4 9 4 7 10 9 2], setelah itu hasil konvolusi
diambil hanya bagian tertentu saja (2.14) agar panjang output sama dengan panjang input.
Sehingga menghasilkan yout(k) = [4 7 10 9].
2.7. Downsampling
Downsampling adalah proses pengurangan pencuplikan baris atau kolom yang
diambil dari suatu citra atau data dari sinyal input. Downsampling biasa digunakan untuk
proses kompresi data, sehingga data tidak terlalu besar dan menjadi lebih mudah untuk
diolah. Selain itu downsampling juga dibutuhkan untuk melakukan proses dekomposisi
citra menjadi citra pendekatan dan citra detil. Contoh proses downsampling, misal data
input (2.16) akan di-downsampling dengan mempertahankan bagian genap
, - (2.15)
maka data output (2.17) akan menjadi
, - (2.16)
2.8. Fungsi Jarak Chi-Square
Fungsi jarak chi-square berguna untuk menguji hubungan atau pengaruh dua buah
variabel nominal dan mengukur kuatnya hubungan antara variabel yang satu dengan
variabel nominal lainnya. Berikut ini rumus fungsi jarak chi-square [12]:
∑( )
( )
Dimana:
d = output jarak Chi-Square
P = input dari hasil ekstraksi ciri
Q = data dari database
n = banyaknya data
2.9. Template Matching [13]
Templete matching merupakan salah satu pendekatan yang paling sederhana dan
paling awal untuk pengenalan pola. Matching adalah operasi generik pada pengenalan pola
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
yang digunakan untuk menentukan kemiripan antara entitas (titik, kurva, atau bentuk) dari
jenis yang sama. Biasanya sampel (template) pada template matching berbentuk 2D, yang
nantinya akan dicocokan dengan sampel yang telah disimpan dengan cara memperhatikan
rotasi dan skalanya. Pengukuran kesamaan antara sampel masukkan dengan sampel
disimpan dapat dicari korelasinya dengan optimal berdasarkan percobaan yang dilakukan.
2.10. Matlab [14]
Matlab adalah sebuah bahas pemrograman dengan kemampuan unjuk kerja tinggi
untuk komputasi teknis, yang mengintegrasikan komputasi, visualisasi, dan pemrograman
di dalam lingkungan yang mudah penggunaannya dalam memecahkan persoalan dengan
solusinya yang dinyatakan dengan notasi matematik. Penggunaan Matlab, yaitu :
1. Matematika dan komputasi
2. Pengembangan algoritma
3. Pemodelan, simulasi dan pembuatan ‘prototipe’
4. Analisis data, eksplorasi dan visualisasi
5. Grafik untuk sains dan teknik
6. Pengembangan aplikasi, termasuk pembuatan antarmuka grafis untuk pengguna
(Graphical User Interface).
Matlab mempermudah untuk menyelesaikan masalah komputasi, tertutama yang
menyangkut matriks dan vektor karena matlab menggunakan elemen data dengan dasarnya
adalah array yang tidak membutuhkan dimensi. Beberapa toolbox yang tersedia meliputi
bidang : pengolahan sinyal, system kendali, jaringan saraf, logika ‘fuzzy’, wavelet, simulasi
dan lain sebagainya.
2.11. WebCam
Webcam merupakan singkatan dari web camera, yang berfungsi sebagai alat untuk
merekam atau mengambil gambar secara real time. Webcam akan dihubungkan ke
perangkat seperti komputer melalui port USB, setelah webcam dan komputer terhubung
maka gambar yang ditangkap/direkam dapat diolah dan diproses oleh komputer sehingga
gambar tersebut dapat dikenali. Webcam yang digunakan yaitu webcam Logitech C170
yang memiliki kemampuan 5.0 megapiksels, resolusi gambar Lite-HD 1024 x 768, serta
autofocus.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
BAB III
PERANCANGAN PENELITIAN
Bab ini akan membahas tentang langkah-langkah perancangan dalam pembuatan
sistem pengenalan rambu-rambu lalu lintas. Pembahasan di bab ini meliputi diagram blok,
data masukkan serta perancangan antar muka yang akan digunakan.
Sistem pengenalan rambu-rambu lalu lintas terdiri dari hardware dan software.
Bagian software yaitu, program pengenalan rambu, database, serta interface GUI yang
semuanya diproses menggunakan Matlab. Sedangkan untuk bagian hardware terdiri dari
fixture, webcam, laptop/komputer, dan gambar rambu lalu lintas peringatan.
Gambar 3.1. Gambaran umum perancangan sistem
3.1 Perancangan Sistem Hardware
3.1.1. Tripot
Tripot merupakan alat bantu yang berfungsi sebagai tempat untuk meletakan
webcam sehingga mudah untuk dipindah-pindah dan webcam tetap stabil sehingga pada
saat pengambilan gambar tidak goyang. Gambar rambu lalu lintas nantinya diletakan
sejajar denganwebcam dengan jarak yang bervariasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
3.1.2. Webcam
Sistem pengenalan rambu lalu-lintas ini menggunakan webcam sebagai perangkat
untuk mengambil citra rambu. Merk webcam yang digunakan adalah Logitech seri C 170
dengan spesifikasi sebagai berikut :
Tabel 3.1. Spesifikasi webcam
Photo quality 5 Megapixel
Video quality VGA
Focus type Always focused
Built-in mic Yes
Auto light correction -
3.1.3. Laptop / Komputer
Laptop / komputer berfungsi sebagai tempat memproses program pengenalan
rambu lalu lintas menggunakan Matlab serta sebagai tempat membandingkan antara
database yang telah disimpan dengan gambar yang diambil dari webcam.
3.1.4. Gambar Rambu Lalu Lintas
Gambar rambu lalu lintas berasal dari poster yang berukuran 600 mm x 600 mm
per rambu. Rambu yang digunakan adalah rambu peringatan yang berwarna kuning yang
berjumlah 3 rambu (Gambar 3.2.).
Gambar 3.2. Contoh gambar rambu lalu-lintas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
3.2 Perancangan Sistem Software
Perancangan sistem software pengenalan rambu lalu-lintas terdapat beberapa proses
yang harus dijalankan, yaitu proses pengambilan citra rambu, preprocessing, ekstraksi ciri,
fungsi jarak, dan penentukeluaran. Gambar 3.3. merupakan blok diagram proses
pengenalan rambu secara software.
Gambar 3.3.Blok diagramproses pengenalan rambu
Citra masukkan rambu lalu lintas berasal dari gambar poster yang di-capture oleh
webcam. Hasil capture lalu dikonversi menjadi warna keabuan(grayscale) sebelum citra
hasil capture tersebut dipotong (cropping) sebesar citra rambu sehingga bagian gambar
yang tidak dibutuhkan bisa dihilangkan. Tahap selanjutnya ukuran piksel dari citra rambu
disesuaikan dengan ukuran yang diinginkan, tahap ini dinamakan tahap resizing. Ukuran
piksel yang diharapkan yaitu 64 x 64. Hasil keluaran dari resizing ini kemudian menjadi
masukkan untuk proses berikutnya yaitu proses pengenalan.
Proses pengenalan terdiri dari dua tahap yaitu ekstraksi ciri dan fungsi jarak.
Ekstraksi ciri adalah tahap pengambilan ciri pada suatu citra sedangkan fungsi jarak adalah
tahap dimana citra hasil ekstraksi ciriakan dibandingkan dengan citra database. Sistem
pengenalan rambu lalu lintas ini menggunakan ekstraksi ciriWavelet Haar serta
menggunakan fungsi jarak Chi Square.Jarak paling minimum yang diperoleh dari hasil
perbandingan antara database dengan ekstraksi ciri dijadikan penentu hasil keluaran
sistem. Hasil keluaran sistem berupa teks dan suara. Diagram alir proses pengenalan rambu
dapat dilihat pada Gambar 3.4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Gambar 3.4. Diagram alir proses pengenalan rambu
3.2.1. Proses Pembuatan Database
Tahap awal proses pengenalan rambu lalu lintas diperlukan adanya database rambu
terlebih dahulu sebagai acuan dalam menentukan output pengenalan. Pembuatan database
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
membutuhkan 3 gambar rambu yang disimpan di dalam satu folder. Terdapat 3 set
database yang berasal dari jumlah desimasi (1, 2, 3) yang telah ditentukan. Proses
pembuatan database hampir sama dengan proses pembuatan software pengenalan rambu
lalu lintas, yaitu dengan melalui tahap input citra, preprocessing, dan ekstraksi ciri.
Proses pertama yaitu pengambilan citra rambu lalu lintas sebanyak 3 gambar,
kemudian citra diproses melalui proses preprocessing yang meliputi proses grayscale,
cropping, bounding box dan resizing. Setelah proses preprocessing selesai, tahap
selanjutnya yaitu ekstraksi ciri menggunakan metode wavelet haar. Proses pembuatan
database dapat dilihat pada diagram alir Gambar 3.5.
Gambar 3.5. Diagram alir pembuatan database
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
3.2.2. Pengambilan Citra Rambu
Tahap pengambilan citra rambu adalah proses mengambil gambar (capture) rambu
lalu lintas menggunakan webcam yang diletakan sejajar dengan gambar rambu lalu-lintas
dengan jarak dan sudut yang bervariasi. Webcam akan dihubungkan ke perangkat laptop /
komputer menggunakan sambungan USB 2.0 sehingga gambar yang telah di-capture dapat
dikirimkan dan diterima oleh laptop / komputer yang kemudian diolah menggunakan
Matlab.
Sebelum melakukan pengambilan citra rambu, webcam harus di-inisialisai terlebih
dahulu oleh Matlab dengan cara membuat suatu fungsi di dalam Matlab. Perintah
‘winvideo’berfungsi untuk meng-inisialisasi webcam agar dapat dikenali oleh Matlab.
Selanjutnya menggunakan perintah ‘getsnapshoot’ untuk mengambil citra, seperti
yang diperlihatkan diagram alir pada Gambar 3.6.
Gambar 3.6. Diagram alir pengambilan citra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Tahap pengambilan citra rambu menggunakan webcam merupakan tahap awal dari
sistem pengenalan rambu lalu-lintas. Input citra dari tahap ini berasal dari gambar rambu
lalu-lintas berukuran 60 cm x 60 cm. Proses pertama tahap ini adalah menyalakan webcam
dengan menggunakan fungsi ‘vidobj’, sedangkan untuk inisialisasi webcam
menggunakan fungsi ‘winvideo’ yang sudah tersedia pada Matlab. Setelah webcam
menyala, proses selanjutnya adalah pengambilan citra (capture) rambu lalu-lintas
menggunakan fungsi ‘getsnapshoot’. Citra hasil capture akan dijadikan input untuk
tahap selanjutnya yaitu tahap preprocessing. Contoh program untuk mengambil citra
rambu dapat dilihat dibawah ini.
vidobj = videoinput('winvideo',1,'YUY2_640x480');
preview(vidobj);
pause
frame = getsnapshot(vidobj);
stop(vidobj)
delete(vidobj)
gambar=yuy2torgb(frame);
imshow(gambar)
3.2.3. Tahap Preprocessing
Tahap preprocessing merupakan tahap kedua dari sistem pengenalan rambu lalu-
lintas, yang mana tahap ini berfungsi untuk mengolah citra agar mempermudah pengolahan
citra ke tahap selanjutnya yaitu tahap ekstraksi ciri. Tahap preprocessing terdiri dari empat
proses yaitu proses grayscale, proses cropping, proses bounding box dan proses resizing.
- Proses grayscale
Proses ini bertujuan untuk mengubah citra menjadi berwarna keabuan sehingga
dapan memudahkan dalam proses selanjutnya yaitu ekstraksi ciri. Proses ini
menggunakan perintah yang sudah tersedia di Matlab yaitu perintah rgb2gray.
Perintah rgb2gray merupakan perintah untuk mengubah format gambar rgb
menjadi grayscale. Contoh programrgb2gray dapat dilihat dibawah ini dan citra
grayscale bisa dilihat pada Gambar 3.7.
X=imread('filename');
X1=double(rgb2gray(X));
X2=X1/255;
imshow(X2)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
(a) (b)
Gambar 3.7. konversi citra rgb ke grayscale
(a) citra masukkan (rgb), (b) citra hasil grayscale
- Proses cropping
Proses ini merupakan proses untuk mendapatkan data yang diinginkan dengan cara
memotong bagian tertentu dari suatu citra sehingga memudahkan dalam
pengolahan data untuk proses selanjutnya. Matlab telah menyediakan suatu
perintah untuk cropping, yaitu imcrop (‘variabel’,[x y Δx
Δy]).Kolom pertama dan kedua yaitu x dan y merupakan koordinat pada sumbu x
dan y kiri atas. Kolom ketiga yaitu Δx merupakan selisih antara sumbu x kanan atas
dengan sumbu x kiri atas. Sedangkan kolom ketiga yaitu Δy merupakan selisih
antara sumbu y kiri bawah dengan sumbu y kiri atas. Seperti yang diperlihatkan
pada contoh program dibawah ini, dimana X2 merupakan variabel dari output
grayscale sedangkan untuk nilai-nilai dari x, y, Δx, dan Δy didapat dari nilai
koordinat seperti yang ditampilkan pada Gambar 3.8.
X3=imcrop(X2,[200 100 400 400]);
imshow(X3)
Nilai x dan y dapat dilihat pada sumbu koordinat yang diperlihatkan pada Gambar
3.8. bagian (a), dimana terlihat sumbu x dan y berada pada sumbu koordinat
200,100. Nilai Δx didapat dari selisih sumbu x bagian kanan (Gambar b) dengan
sumbu x bagian kiri (Gambar a) sehingga Δx = 600 – 200 = 400. Nilai Δy didapat
dari selisih sumbu y bagian kiri bawah (Gambar c) dengan sumbu y bagian kiri atas
(Gambar a), sehingga didapat Δy = 500 – 100 = 400. Setelah nilai-nilai x, y, Δx, dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Δy didapat, program dapat dijalankan dan hasilnya seperti yang terlihat pada
gambar d serta variabel diganti menjadi X3 untuk menjadi variabel masukkan ke
tahap selanjutnya yaitu tahap resizing.
(a) (b)
(d) (c)
Gambar 3.8. Contoh proses cropping; (a) titik koordinat bagian kiri atas; (b) titik koordinat
bagian kanan atas; (c) titik koordinat bagian kiri bawah; (d) hasil cropping
- Proses Bounding Box
Hasil dari proses cropping, kemudian dipotong sesuai dengan bounding box.
Tujuan dari proses ini, agar mendapatkan gambar rambu yang pas sehingga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
memudahkan dalam proses pengenalan. Diagram alir dari proses bounding box
dapat dilihat pada gambar 3.9.
Gambar 3.9. Diagram alir bounding box
Proses bounding box adalah proses dimana citra masukkan akan di cropping sesuai
dengan bounding box-nya. Cropping dilakukan dengan cara memotong matrik citra
masukkan yang nilainya kurang dari nilai parameter yang sudah ditentukan. Proses
cropping dilakukan dengan cara memotong tiap sisi secara bergantian, pertama kali
yaitu sisi sebelah kiri di cropping setelah di-cropping citra diputar sejauh 90° dan
kemudian citra sisi sebelah kiri di-cropping kembali. Proses ini dilakukan terus
menerus hingga semua sisi citra di-cropping semua, seperti pada contoh Gambar
3.10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Gambar Masukkan Gambar Hasil Potong Kiri
(a) (b)
Putar 90°
(c)
(d)
Putar 90°
(e)
(f)
Putar 90°
(g) (h)
Putar 90°(kembali pada posisi awal)
(i)
Gambar 3.10 Proses bounding box (a) Input karakter (b) Hasil potong kiri (c) Putar
90° searah jarum jam ke 1 (d) Hasil potong kiri (e) Putar 90° searah jarum jam ke 2
(f) Hasil potong kiri (g) Putar 90° searah jarum jam ke 3 (h) Hasil Potong kiri (i)
Putar 90° searah jarum jam ke 4, kembali ke posisi awal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
- Proses resizing
Proses ini berfungsi untuk mengubah ukuran citra agar semua citra hasil cropping
memiliki ukuran yang samasehingga lebih memudahkan dalam proses
selanjutnya.Ukuran yang digunakan adalah 64 x 64, ukuran citra ini berasal dari
penelitian sebelumnya. Gambar 3.11. memperlihatkan perbandingan antara gambar
hasil cropping sebelum dan sesudah di resizing.
(a)
(b)
Gambar 3.11. Proses(a) sebelumresizing (b) setelahresizing
Proses resizing dapat dilakukan dengan menggunakan contoh program di bawah ini
dengan menggunakan syntax imresize, dimana X3 merupakan variabel input dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
hasil cropping sedangkan nilai 64 merupakan besaran pikselyang diharapkan yaitu
64 x 64 dan variabel X3 merupakan variabel untuk output/hasil dari resizing.
X4=imresize(X3,[64,64]);
imshow(X4)
Gambar 3.12. Diagram alir pemrosesan citra
Diagram alir pada Gambar 3.12 memperlihatkan tahap preprocessing yang diawali
dari input hasil capture kamera/webcam. Hasil capture yang berbentuk RGB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
dikonversikan kedalam bentuk grayscale agar memudahkan dalam mengolah
gambar. Citra yang telah menjadi bentuk grayscale kemudian di cropping dan di
resizing agar citra hasil keluaran dari tahap preprocessing ini memiliki ukuran yang
sama sehingga memudahkan pada saat melakukan ekstraksi cirri.
3.2.4. Ekstraksi Ciri
Ekstraksi ciri merupakan proses pengolah data dari data yang banyak kemudian di
ekstrak menjadi data yang lebih sedikit. Hal ini bertujuan untuk memudahkan mengolah
data dan membuat data lebih efisien karena dari data yang sedikit itu sudah bisa mewakili
data sebelumnya yang banyak. Proses pengenalan rambu lalu-lintas ini menggunakan
ekstraksi ciri wavelet Haar yang memiliki 4 macam filter, namun yang digunakan hanya
decomposition low-pass filter karena yang ingin dicari hanya bentuk dasar dari citra.
Ekstraksi ciri terdiri dari dua tahap, yaitu konvolusi dan downsampling seperti yang
diperlihatkan diagram alir pada Gambar 3.13. Output ekstraksi ciri tergantung pada
banyaknya jumlah desimasi (N) yang nantinya akan ditentukan oleh user, sehingga proses
konvolusi dan downsampling diulang sejumlah desimasi (N). Desimasi yang disediakan
ada 3, yaitu 32 x 32, 16 x16, dan 8 x 8.
Gambar 3.13. Diagram alir ekstraksi ciri
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Tahap konvolusi merupakan tahap untuk melakukan filtering, menggunakan
decomposition low pass filter Wavelet Haar. Namun karena Wavelet Haar merupakan low
pass filter 1 dimensi sedangkan citra merupakan 2 dimensi sehingga diperlukan adanya 2
kali proses konvolusi yaitu konvolusi baris dan konvolusi kolom yang dikerjakan secara
bergantian, seperti yang diperlihatkan pada Gambar 3.14. Sedangkan tahap downsampling
merupakan tahap menghilangkan baris dan kolom ganjil dan menjaga baris dan kolom
genap, seperti diagram alir pada Gambar 3.15.
Gambar 3.14. Diagram alir konvolusi
Gambar 3.15. Diagram alir downsampling
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
3.2.5. Fungsi Jarak
Tahap berikutnya setelah citra di ekstraksi ciri yaitu tahap fungsi jarak. Tahap ini
berfungsi untuk membandingkan output dari ekstraksi ciri dengan gambar rambu yang
berada di database. Fungsi jarak yang digunakan adalah fungsi jarak Chi Square. Tahap ini
mencari jarak minimum antara hasil ekstraksi ciri dengan database yang nantinya
digunakan sebagai penentu keluaran. Jarak minimum didapatkan dengan menggunakan
rumus pada persamaan 2.17. Pi merupakan nilai dari ekstraksi ciri citra masukkan
sedangkan Qi merupakan nilai dari ekstraksi citra database. Proses ini dapat dilihat dari
diagram alir Gambar 3.16.
Gambar 3.16. Diagram alir tahap fungsi jarak
3.2.6. Penentuan Keluaran
Setelah tahap perhitungan oleh fungsi jarak, maka hasil pengenalan rambu
ditentukan berdasarkan jarak minimum yang diperoleh dari hasil perbandingan antara
output dari ekstraksi ciri dengan database, menggunakan fungsi jarak Chi Square.
Sehingga proses ini merupakan subproses akhir dari proses pengenalan rambu.Output dari
sistem pengenalan rambu lalu lintas ini ada dua jenis, yaitu output berupa text dan output
berupa sound.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Gambar 3.17. Diagram alir penentu keluaran
3.3 Gambar Uji
Gambar uji diambil setelah user menekan tombol “Capture” yang kemudian
webcam akan mengambil gambar rambu lalu lintas yang diletakan sejajar dengan gambar
rambu, selain itu tingkat intensitas cahaya sesuai dengan intensitas cahaya di ruang Lab.
TTL. Hasil capture lalu diteruskan ke proses selanjutnya yaitu preprocessing dan ekstraksi
ciriWavelet Haar. Outputakan disimpan dan nantinya akan diproses kembali sehingga
menghasilkan pengenalan citra rambu lalu lintas.
3.4 Perancangan Tampilan GUI Matlab
Sistem pengenalan rambu lalu lintas ini membutuhkan interface yang memudahkan
user untuk mengoperasikannya. Interface ini menggunakan Graphical User Interface
(GUI) pada software Matlab. Sketsa interface GUI sistem pengenalan rambu lalu lintas
dapat dilihat pada Gambar 3.18.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Gambar 3.18. Sketsa GUI pengenalan rambu lalu lintas
Tabel 3.2. Keterangan GUI
Nama Bagian Deskripsi
Tombol Camera On Untuk mengaktifkan webcam
Tombol Capture Untuk mengambil gambar/citra
Axes 1 pada panel Camera Untuk menampilkan citra secara live dari webcamdan citra hasil
capture
Axes 2 pada panel Proses
Pengenalan Rambu Untuk menampilkan citra hasil grayscale
Axes 3 pada panel Proses
Pengenalan Rambu Untuk menampilkan citra hasil cropping
Axes 4 pada panel Proses
Pengenalan Rambu Untuk menampilkan citra hasil resizing
Axes 5 pada panel Ekstraksi
Ciri Untuk menampilkan citra hasil ekstraksi ciri
Axes 6 pada panel Output
Text Untuk menampilkan hasil akhir berupa teks
Pop Menu Untuk tempat user memilih variasi desimasi
Tombol Start Untuk memulai proses pengenalan rambu lalu-lintas
Tombol Reset Untuk mengulangi proses pengenalan dari awal
Tombol Exit Untuk keluar mengakhiri proses dan keluar dari Interface
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
BAB IV
HASIL DAN PEMBAHASAN
Bab ini membahas mengenai pengujian sitem program software yang telah dirancang,
selain itu pada bab ini juga akan membahas interface serta penjelasan penggunaan sistem.
Pengujian ini bertujuan untuk mengetahui sistem yang telah dirancang dan dibuat dapat
bekerja dengan baik sesuai dengan yang diharapkan. Pengujian sistem pengenalan rambu lalu-
lintas peringatan ini menggunakan 3 buah rambu asli berukuran 60 cm x 60 cm.
4.1. Langkah-langkah awal untuk menjalankan program pengenalan
rambu peringatan
a. Membuka software Matlab, dengan cara klik kiri dua kali gambar icon matlab seperti
pada gambar 4.1. Setelah itu akan muncul tampilan utama matlab seperti pada gambar
4.2.
Gambar 4.1. Icon Matlab R2010a
Gambar 4.2. Tampilan utama matlab R2010a
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
b. Setelah muncul tampilan utama dari matlab, langkah selanjutnya untuk menjalankan
program pengenalan yaitu dengan mengganti Current Folder dengan Directory tempat
program pengenalan ini disimpan (Gambar 4.3). Setelah itu klik menu guidedan akan
muncul tampilan GUIDE Quick Start seperti pada Gambar 4.4. atau bisa juga langsung
mengetik guide pada command window untuk membuka tampilan GUIDE Quick Start.
Kemudian pilih nama file program yang akan dijalankan untuk membuka interface dari
program tersebut.
Gambar 4.3.Mengganti directory dan menu guide
Gambar 4.4. Tampilan GUIDE Quick Start
c. Tentukan file GUI yang akan dijalankan, setelah itu klik open maka akan muncul
tampilan untuk meng-edit GUIpengenalan_rambu yang akan dijalankan seperti pada
Gambar 4.5, kemudian klik run untuk menjalankan program.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
Gambar 4.5. Tampilan Pengenalan_Rambu
d. Setelah meng-klik run, maka akan muncul tampilan GUI pengenalan_rambu seperti
pada Gambar 4.6.
Gambar 4.6. Tampilan GUI Pengenalan Rambu Peringatan secara Real Time
Keterangan Gambar 4.6. :
1. Tombol pushbutton 1 adalah tombol Camera On yang berfungsi untuk
menyalakan/mengaktifkan webcam.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
2. Tombol pushbutton 2 adalah tombol Capture yang berfungsi untuk mengambil
gambar dari webcam.
3. Tombol pushbutton 3 adalah tombol Start yang berfungsi untuk memulai proses
pengenalan rambu.
4. Tombol pushbutton 4 adalah tombol Reset yang berfungsi untuk me-reset sistem
apabila user melakukan kesalahan atau akan melakukan pengenalan yang lain.
5. Tombol pushbutton 5 adalah tombol Close yang berfungsi untuk keluar dari
program.
6. Tombol popupmenu berfungsi untuk memilih desimasi yang diharapkan oleh user.
4.2. Penjelasan Program
a. Tombol Camera On
Gambar 4.7. Tampilan saat tombol Camera On ditekan
Tombol Camera On menjalankan program berikut :
imaqhwinfo;
info = imaqhwinfo('winvideo');
dev_info = imaqhwinfo('winvideo',1);
vidobj=videoinput('winvideo',1,'YUY2_640X480');
vidobj.FramesPerTrigger = 1;
triggerconfig(vidobj, 'manual');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
vidRes = get(vidobj, 'VideoResolution');
imWidth = 640;
imHeight = 480;
nBands = get(vidobj, 'NumberOfBands');
hImage = image(zeros(imHeight, imWidth,
nBands),'parent',handles.axes1)
preview(vidobj, hImage)
Perintah program imaqhwinfo adalah perintah program untuk meng-inisialisasikan
antara webcam dengan software matlab, selain itu perintah ini juga untuk mengetahui
informasi dari webcam tentang nama device dan format warna hasil dari webcam misal
RGB, YUY, dll. Perintah program preview untuk menampilkan video yang akan
ditampilkan pada axes1.
b. Tombol Capture
Gambar 4.8. Tampilan saat tombol Capture ditekan
Tombol Capture menjalankan program berikut :
start(vidobj);
pause(1);
trigger(vidobj);
stoppreview(vidobj);
capt1=getdata(vidobj);
gambar=yuy2torgb1(capt1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
handles.a=gambar;
guidata(hObject,handles)
Perintah program getdata adalah perintah untuk meng-capture gambar saat video dari
wabcam sedang dalam keadaan on. Hasil dari capture wabcam memiliki format
gambar YUY sehingga diubah terlebih dahulu ke format gambar RGB dengan cara
menggunakan fungsi yuy2torgb. Agar hasil capture bisa dipanggil dan digunakan
diprogram lain maka diinisialisasikan menggunakan “handles”.
c. Popupmenu
Gambar 4.9. tampilan saat popupmenu diklik
- Popupmenu merupakan bagian untuk user memilih variasi desimasi yang diinginkan,
pada bagian popupmenu ini terdiri dari 4 pilihan variasi desimasi yaitu desimasi1,2,dan
3. Popupmenu menjalankan program berikut :
indeks=get(handles.popupmenu1,'Value');
switch indeks
case 2
des=1;
case 3
des=2;
case 4
des=3;
end
handles.des=des;
guidata(hObject,handles);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Program di atas tertulis des=1 maksudnya adalah desimasi akan dilakukan sebanyak 1
kali, untuk penjelasan desimasi dapat dilihat pada bab III. Desimasi diinisialisasikan
dengan nama “des”, agar nilai variasi desimasi ini dapat dipanggil diprogram lain
maka diubah menjadi “handles.des”.
d. Tombol Start
Gambar 4.10. Tampilan saat tombol start diklik
Proses pada tombol start ini terdiri dari beberapa bagian program yang digabungkan,
program-program tersebut yaitu program grayscale, program cropping, program
resizing, program ekstraksi jarak, program fungsi jarak dan program keluaran.
- Program grayscale
Program ini berfungsi untuk mengubah gambar yang telah di-capture menjadi
berwarna keabu-abuan.
%PROSES GRAYSCALE
x=handles.a;
axes(handles.axes2);
x1=double(rgb2gray(x));
x2=x1/255;
imshow(x2)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Perintah double pada program diatas berfungsi untuk mengubah nilai pada gambar
grayscale karena nilainya masih unsigninteger, sedangkan nilai hasil akhir dibagi 255
sebagai normalisasi agar nilai maksimalnya 1.
- Program cropping
Program ini berfungsi untuk memotong gambar sehingga bagian yang tidak di
perlukan dapat dihilangkan.
%PROSES CROPPING axes(handles.axes3); x3=1-x2;
x4=imcrop(x3,[150 100 350 350]);
x6=imrotate(x4,45,'bilinear'); x7=ceil(x6-0.80); x8=bbox(x6,x7);
x10=imrotate(x8,-45,'bilinear'); imshow(x10) axis on
Sebelum dilakukan cropping hasil dari grayscale dibalik terlebih dahulu, yang
berwarna gelap (bernilai 0) diubah menjadi berwarna terang (bernilai >0) dengan cara
seperti list program “x3”, hal ini dilakukan untuk mempermudah dalam tahap
automatic cropping. Tahap selanjutnya melakukan manual cropping dengan cara
menentukan titik cropping berdasarkan gambar rambu yang berjarak 3 meter, hal ini
dilakukan agar lebih memudahkan dalam tahap automatic cropping. Perintah
“imrotate” yaitu berfungsi untuk merotasi gambar sebanyak 45° agar gambar rambu
menjadi berbentuk kotak, hal ini dilakukan agar mempermudah dalam pemotongan
automatic cropping. Hasil dari “imrotate” dikurangi 0,80 agar nilai-nilai yang masih
dibawah 0,80 dibuat menjadi 0 sehingga perbedaan antara gelap dan terang makin
terlihat. Penentuan nilai 0,80 berasal dari hasil percobaan seperti pada table 4.1.
Sedangkan perintah “ceil” yaitu berfungsi sebagai pembulatan angka ke atas, sebagai
contoh nilai 0,3 dibulatkan menjadi 1 dan nilai -0,9 dibulatkan menjadi 0.Tahap
selanjutnya adalah tahap automatic cropping yaitu dengan cara menggunakan fungsi
“bbox” atau bounding box seperti yang sudah dijelaskan pada bab III Dibawah ini
merupakan program bounding box namun untuk program lengkapnya dapat dilihat
pada lampiran.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Tabel 4.1. Mencari nilai parameter untuk bounding box
Nilai Hasil Gambar
0,25
0,50
0,75
0,95
function [out1,out2]=cutleft(in1,in2)
%out1 (gray) , out2 (biner)
out1=in1;
out2=in2;
JKolom=sum(in2);
KolomTakNol=find(JKolom >60);
if sum(KolomTakNol)>=1;
out1(:,1:KolomTakNol(1)-1)=[];
out2(:,1:KolomTakNol(1)-1)=[];
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Program diatas adalah bagian dari program boundingbox yang berfungsi sebagai batas
penentu titik potong untuk automatic cropping. List program “JKolom” berfungsi
untuk menjumlahkan nilai pada tiap kolom,pada gambar yang berwarna putih bernilai
1 sedangkan berwarna gelap bernilai 0. List program “KolomTakNol” berfungsi untuk
memotong kolom yang nilainya kurang dari nilai parameter yang sudah ditentukan,
untuk nilai parameter “JKolom>60” didapat dari hasil percobaan seperti pada table
4.2.Hasil dari “bbox” selanjutnya dirotasi kembali menggunakan “imrotate” sehingga
posisi rambu kembali ke posisi awal.
Tabel 4.2. Menentukan nilai parameter JKolom
Nilai Hasil Gambar
JKolom > 20
JKolom > 60
JKolom > 150
JKolom > 190
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
- Program resizing
Program ini berfungsi untuk menyesuaikan ukuran gambar dari hasil cropping
sehingga memiliki ukuran piksel yang sama.
%PROSES RESIZING
axes(handles.axes4); x11=imresize(x10,[64 64]); imshow(x11) axis on
Program diatas menggunakan perintah “imresize” yang berfungsi untuk mengubah
ukuran dari citra, baik itu untuk memperbesar atau pun memperkecil ukuran citra.
Program resizing ini membuat ukuran citra menjadi 64 x 64 piksel.
- Program ekstraksi ciri
Program ini berfungsi untuk proses pengolahan data dari data yang banyak diekstrak
menjadi data yang lebih sedikit namun dari data yang sedikit tersebut sudah bisa
mewakili data sebelumnya yang banyak.
% EKSTRAKSI CIRI
axes(handles.axes5);
x12=xcwav2(x11,des);
mx12=max(x12(:));
nx12=x12/mx12;
x13=x12(:);
imshow(nx12)
axis on
x13=x13+1;
z=z+1;
Fungsi program “xcwav2” adalah untuk memanggil fungsi ekstraksi ciri, yang mana di
dalam fungsi ekstraksi ciri menggunakan ekstraksi ciri wavelet haar. Input dari
program ekstraksi ciri berasal dari hasil proses resizing yang berasal dari citra input
dan “des” adalah nilai desimasi hasil pilihanuser daripop-upmenu. Sedangkan list
program “nx12” berfungsi untuk normalisasi agar gambar bisa ditampilkan pada axes
5. List program “x13” berfungsi untuk membuat data yang terdiri dari beberapa kolom
menjadi hanya satu kolom, contoh data 32x32 diubah menjadi 1x1024 Output dari
fungsi “xcwav2” adalah x12, yang merupakan hasil dari ekstraksi ciri wavelet haar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
- Program fungsi jarak
Program ini berfungsi untuk membandingkan antara hasil dari ekstraksi ciri dengan
database yang telah disediakan, yang nantinya nilai terkecil akan dijadikan output dari
sistem pengenalan rambu ini.
% FUNGSI JARAK
for n=1:8
r(n)=jarak(x13,z(:,n));
end minr=min(r)
b1=find(minr==r); b2=ceil(b1/2);
Perintah program jarak adalah untuk memanggil fungsi jarak chi square yang akan
membandingkan antara hasil dari output ekstraksi ciri yaitu x13 dengan hasil dari
database yaitu z. Sedangkan b1 merupakan hasil pencarian nilai terkecil dari hasil
perhitungan jarak, yang nantinya akan dicari letak nilai terkecil tersebut menggunakan
list program pada b2.
- Program keluaran
Program ini berfungsi untuk menampilkan hasil pengenalan berupa teks/tulisan dan
suara.
% KELUARAN TEXT
z2={'Tikungan ke Kiri','Tikungan ke
Kanan','Persimpangan'};
y1=z2(b2)
set(handles.edit1,'string',y1);
Program diatas adalah program untuk menampilkan hasil pengenalan berupa tulisan.
Variabel z2 adalah inisialisasi 3 buah kata, nantinya nilai minimal akan dipanggil
sesuai nama inisialisasi dan kemudian ditampilkan pada edit_text_1 menggunakan
peritah set.
% KELUARAN SUARA
if (b2==1);
y=wavread('Tikungan ke Kiri.wav');
sound(y,50000)
elseif (b2==2);
y=wavread('Tikungan ke Kanan.wav');
sound(y,50000)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
elseif (b2==3);
y=wavread('Persimpangan.wav');
sound(y,50000)
end
Program diatas adalah program untuk menampilkan hasil pengenalan berupa suara.
Suara berasal dari hasil rekaman yang disimpan didalam folder yang sama dengan
program GUI pengenalan rambu kemudian suara akan dipanggil menggunakan
perintah “wavread”.
e. Tombol Reset
Tombol “Reset” berfungsi untuk mengulang program dari awal apabila user
melakukan kesalahan atau terjadi error pada saat proses pengenalan. Program pada
tombol “reset” adalah sebagai berikut :
axes(handles.axes1)
plot(0);
axes(handles.axes2)
plot(0);
axes(handles.axes3)
plot(0);
axes(handles.axes4)
plot(0);
axes(handles.axes5)
plot(0);
set(handles.popupmenu2,'Value',1);
set(handles.edit1,'string','');
f. Tombol Close
Tombol “Close” berfungsi untuk mengakhiri dan keluar dari program atau tampilan
GUI pengenalan rambu peringatan. Program pada tombol “Close” adalah sebagai
berikut :
delete(figure(Pengenalan_Rambu));
Berdasarkan dari hasil pengujian tombol pada GUI pengenalan rambu peringatan dapat
ditarik kesimpulan bahwa program sudah berjalan dengan baik dan dapat bekerja sesuai
dengan perancangan pada bab III.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
4.3. Pengujian dan Analisis Hasil Pengenalan Rambu Peringatan
Pengujian program pengenalan rambu ini bertujuan untuk melihat seberapa besar
tingkat pengenalan terhadap citra masukkan. Pengujian program pengenalan rambu dilakukan
dengan 2 tahap. Tahap pertama adalah pengujian untuk melihat jarak minimum dan
maksimum antara citra masukan dengan webcam dengan menggunakan variasi desimasi 1,2,
dan 3 sehingga rambu dapat dikenali. Tahap kedua adalah pengujian untuk melihat
kemampuan pengenalan dengan menggunakan variasi sudut kemiringan antara rambu dengan
webcam.
4.3.1. Pengujian Pengenalan Berdasarkan Variasi Jarak dan Variasi Desimasi
Percobaan variasi jarak bertujuan untuk melihat batas jarak terdekat dan batas terjauh
antara rambu dengan webcam. Percobaan variasi desimasi bertujuan untuk melihat pengaruh
desimasi terhadap tingkat pengenalan. Pengujian ini dilakukan dengan beberapa beberapa
langkah, yaitu :
1. Melakukan capturing citra pada 3 buah gambar rambu peringatan, yaitu rambu
tikungan ke kiri, rambu tikungan ke kanan dan rambu persimpangan.
2. Capturing dilakukan dengan jarak dari paling dekat dengan rambu hingga jarak terjauh
dari rambu dengan rentang tiap jarak sebesar 20 cm hingga tidak dapat dikenali. Posisi
webcam tegak lurus terhadap gambar rambu seperti pada Gambar 4.11.
Gambar 4.11. Posisi webcam terhadap gambar rambu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
3. Percobaan variasi desimasi dilakukan dengan menggunakan desimasi (32x32),
desimasi 2 (16x16), dan desimasi 3 (8x8).
4. Percobaan dilakukan sebanyak 5 kali untuk setiap gambar rambu.
Tabel 4.3. Pengujian rambu tikungan ke kiri
Jarak (cm)
Desimasi 1 Desimasi 2 Desimasi 3 Tingkat
Percobaan Percobaan Percobaan Pengenalan
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
40 0%
50 100%
60 100%
80 100%
100 100%
200 100%
300 100%
400 100%
500 100%
520 100%
540 100%
560 100%
580 60%
600 0%
620 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.3 merupakan sebagian hasil pengujian pengenalan rambu
tikungan ke kiri berdasarkan variasi jarak dan variasi desimasi, sedangkan untuk hasil lebih
lengkap dapat dilihat pada lampiran. Hasil pengujian variasi jarak memperlihatkan bahwa
untuk rambu tikungan ke kiri jarak terdekat atau jarak minimum antara webcam dengan rambu
adalah 50 cm, karena pada jarak dibawah 50 cm gambar bagian dalam rambu sudah terpotong
sehingga rambu tidak dapat dikenali. Sedangkan jarak terjauh atau jarak maksimum antara
webcam dengan rambu adalah 560 cm, pada jarak 580 cm beberapa percobaan rambu sudah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
mulai tidak dikenali. Jarak 600 cm rambu sudah tidak dapat dikenali karena ukuran rambu
sudah terlalu kecil sehingga pada bagian cropping terjadi kesalahan yang menyebabkan rambu
dikenali dengan tidak benar. Hasil pengujian variasi desimasi memperlihatkan bahwa pada
percobaan desimasi tidak mempengaruhi hasil pengenalan, bila rambu sudah dikenali maka
menggunakan desimasi 1, desimasi 2, maupun desimasi 3 hasilnya akan tetap sama . Sebagai
contoh seperti pada jarak 580 cm percobaan 2 dan 3 rambu tidak dikenali maka pada desimasi
1, 2, dan 3 tidak dikenali.
Tabel 4.4. Pengujian rambu tikungan ke kanan
Jarak (cm)
Desimasi 1 Desimasi 2 Desimasi 3 Tingkat
Percobaan Percobaan Percobaan Pengenalan
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
40 0%
50 100%
60 100%
80 100%
100 100%
200 100%
300 100%
400 100%
500 100%
520 100%
540 100%
560 100%
580 80%
600 0%
620 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.4 merupakan sebagian hasil pengujian pengenalan rambu
tikungan ke kanan berdasarkan variasi jarak dan variasi desimasi, sedangkan untuk hasil lebih
lengkap dapat dilihat pada lampiran. Hasil pengujian variasi jarak memperlihatkan bahwa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
untuk rambu tikungan ke kanan jarak terdekat atau jarak minimum antara webcam dengan
rambu adalah 50 cm, karena pada jarak dibawah 50 cm gambar bagian dalam rambu sudah
terpotong sehingga rambu tidak dapat dikenali. Sedangkan jarak terjauh atau jarak maksimum
antara webcam dengan rambu adalah 560 cm, pada jarak 580 cm beberapa percobaan rambu
sudah mulai tidak dikenali. Jarak 600 cm rambu sudah tidak dapat dikenali karena ukuran
rambu sudah terlalu kecil sehingga pada bagian cropping terjadi kesalahan yang menyebabkan
rambu dikenali dengan tidak benar. Hasil pengujian variasi desimasi memperlihatkan bahwa
pada percobaan desimasi tidak mempengaruhi hasil pengenalan, bila rambu sudah dikenali
maka menggunakan desimasi 1, desimasi 2, maupun desimasi 3 hasilnya akan tetap sama .
Sebagai contoh seperti pada jarak 580 cm percobaan 1 rambu tidak dikenali maka pada
desimasi 1, 2, dan 3 tidak dikenali.
Tabel 4.5. Pengujian rambu persimpangan
Jarak (cm)
Desimasi 1 Desimasi 2 Desimasi 3 Tingkat
Percobaan Percobaan Percobaan Pengenalan
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
40 0%
50 100%
60 100%
80 100%
100 100%
200 100%
300 100%
400 100%
500 100%
520 100%
540 100%
560 100%
580 100%
600 0%
620 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Hasil pengujian pada Tabel 4.5 merupakan sebagian hasil pengujian pengenalan rambu
tikungan ke kanan berdasarkan variasi jarak dan variasi desimasi, sedangkan untuk hasil lebih
lengkap dapat dilihat pada lampiran. Hasil pengujian variasi jarak memperlihatkan bahwa
untuk rambu tikungan ke kanan jarak terdekat atau jarak minimum antara webcam dengan
rambu adalah 50 cm, karena pada jarak dibawah 50 cm gambar bagian dalam rambu sudah
terpotong sehingga rambu tidak dikenali dengan tidak benar. Sedangkan jarak terjauh atau
jarak maksimum antara webcam dengan rambu adalah 560 cm, pada jarak 580 cm beberapa
percobaan rambu sudah mulai tidak dikenali. Jarak 600 cm rambu sudah tidak dapat dikenali
karena ukuran rambu sudah terlalu kecil sehingga pada bagian cropping terjadi kesalahan yang
menyebabkan rambu tidak dikenali. Hasil pengujian variasi desimasi memperlihatkan bahwa
pada percobaan desimasi tidak mempengaruhi hasil pengenalan, bila rambu sudah dikenali
maka menggunakan desimasi 1, desimasi 2, maupun desimasi 3 hasilnya akan tetap sama.
Tabel 4.6. Citra hasil desimasi
Desimasi Rambu 1 Rambu 2 Rambu 3
1
2
3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Tabel 4.6 merupakan contoh citra hasil desimasi dimana semakin besar nilai desimasi
maka gambar makin tidak terlihat jelas, hal itu disebabkan karena semakin besar nilai desimasi
maka semakin kecil piksel pada gambar. Terlihat pada contoh tabel diatas, desimasi 1
memiliki piksel 32 x 32, desimasi 2 memiliki piksel 16 x 16, dan desimasi 3 memiliki piksel 8
x 8. Namun keuntungan menggunakan desimasi adalah semakin besar desimasi maka data
yang diolah akan semakin sedikit.
4.3.2. Pengujian Pengenalan Berdasarkan Variasi Sudut
Percobaan ini bertujuan untuk melihat kemampuan program untuk mengenali rambu
walaupun posisi rambu dengan webcam tidak tegak lurus. Percobaan ini dilakukan dengan
beberapa ketentuan, yaitu :
1. Percobaan dilakukan dengan menggunakan dua jarak yang berbeda antara webcam
dengan gambar rambu, yaitu jarak 200 cm dan jarak 300 cm.
2. Posisi webcam tetap sedangkan posisi rambu diubah-ubah sudutnya, mulai dari 45°
hingga -45° dengan rentang tiap perubahan sudut sebesar 5°.
3. Percobaan dilakukan sebanyak 5 kali untuk setiap gambar rambu.
Tabel 4.7. Pengujian rambu tikungan ke kiri dengan jarak 200 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
45° 0%
40° 0%
35° 100%
30° 100%
25° 100%
20° 100%
15° 100%
10° 100%
5° 100%
0 100%
-5° 100%
-10° 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
Tabel 4.7. (Lanjutan) Pengujian rambu tikungan ke kiri dengan jarak 200 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
-15° 100%
-20° 100%
-25° 100%
-30° 100%
-35° 100%
-40° 0%
-45° 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.7 merupakan hasil pengujian variasi sudut pada rambu
tikungan kekiri dengan webcam dan gambar rambu berjarak 200 cm. Tabel diatas
memperlihatkan bahwa rambu dapat dikenali mulai dari sudut -35° hingga sudut 35°, selain
diantara sudut tersebut rambu dikenali dengan tidak benar.
Tabel 4.8. Pengujian rambu tikungan ke kanan dengan jarak 200 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
45° 0%
40° 100%
35° 100%
30° 100%
25° 100%
20° 100%
15° 100%
10° 100%
5° 100%
0 100%
-5° 100%
-10° 100%
-15° 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Tabel 4.8. (Lanjutan) Pengujian rambu tikungan ke kanan dengan jarak 200 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
-20° 100%
-25° 100%
-30° 100%
-35° 100%
-40° 0%
-45° 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.8 merupakan hasil pengujian variasi sudut pada rambu
tikungan ke kanan dengan webcam dan gambar rambu berjarak 200 cm. Tabel diatas
memperlihatkan bahwa rambu dapat dikenali mulai dari sudut -35° hingga sudut 40°, selain
diantara sudut tersebut rambu dikenali dengan tidak benar.
Tabel 4.9. Pengujian rambu persimpangan dengan jarak 200 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
45° 100%
40° 100%
35° 100%
30° 100%
25° 100%
20° 100%
15° 100%
10° 100%
5° 100%
0 100%
-5° 100%
-10° 100%
-15° 100%
-20° 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Tabel 4.9. (Lanjutan) Pengujian rambu persimpangan dengan jarak 200 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
-25° 100%
-30° 100%
-35° 100%
-40° 100%
-45° 100%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.9 merupakan hasil pengujian variasi sudut pada rambu
tikungan ke kanan dengan webcam dan gambar rambu berjarak 200 cm. Tabel diatas
memperlihatkan bahwa rambu dapat dikenali mulai dari sudut -45° hingga sudut 45°.
Tabel 4.10. Pengujian rambu tikungan ke kiri dengan jarak 300 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
45° 0%
40° 0%
35° 0%
30° 60%
25° 100%
20° 100%
15° 100%
10° 100%
5° 100%
0 100%
-5° 100%
-10° 100%
-15° 100%
-20° 100%
-25° 80%
-30° 0%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Tabel 4.10. (Lanjutan) Pengujian rambu tikungan ke kiri dengan jarak 300 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
-35° 0%
-40° 0%
-45° 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.10 merupakan hasil pengujian variasi sudut pada rambu
tikungan kekiri dengan webcam dan gambar rambu berjarak 300 cm. Tabel diatas
memperlihatkan bahwa pada sudut -25° dan sudut 30° dari 5 kali percobaan terdapat rambu
yang dikenali dengan tidak benar sehingga tingkat pengenalan dibawah 95% sehingga rambu
dapat dikenali mulai dari sudut -20° hingga sudut 25°.
Tabel 4.11. Pengujian rambu tikungan ke kanan dengan jarak 300 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
45° 0%
40° 0%
35° 0%
30° 0%
25° 40%
20° 100%
15° 100%
10° 100%
5° 100%
0 100%
-5° 100%
-10° 100%
-15° 100%
-20° 100%
-25° 100%
-30° 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Tabel 4.11. (Lanjutan) Pengujian rambu tikungan ke kanan dengan jarak 300 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
-35° 60%
-40° 0%
-45° 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.11 merupakan hasil pengujian variasi sudut pada rambu
tikungan ke kanan dengan webcam dan gambar rambu berjarak 300 cm. Tabel diatas
memperlihatkan bahwa pada sudut -35° dan sudut 25° dari 5 kali percobaan terdapat rambu
yang dikenali dengan tidak benar sehingga tingkat pengenalan dibawah 95% sehingga rambu
dapat dikenali mulai dari sudut -30° hingga sudut 20°.
Tabel 4.12. Pengujian rambu persimpangan dengan jarak 300 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
45° 0%
40° 0%
35° 60%
30° 60%
25° 100%
20° 100%
15° 100%
10° 100%
5° 100%
0 100%
-5° 100%
-10° 100%
-15° 100%
-20° 100%
-25° 100%
-30° 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
Tabel 4.12. (Lanjutan) Pengujian rambu persimpangan dengan jarak 300 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
-35° 0%
-40° 0%
-45° 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.12 merupakan hasil pengujian variasi sudut pada rambu
persimpangan dengan webcam dan gambar rambu berjarak 300 cm. Tabel diatas
memperlihatkan bahwa pada sudut 30° dan -35° dari 5 kali percobaan terdapat rambu yang
dikenali dengan tidak benar sehingga tingkat pengenalan dibawah 95% sehingga rambu dapat
dikenali mulai dari sudut -30° hingga sudut 25°.
Tabel 4.13. Pengujian rambu tikungan ke kiri dengan jarak 400 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
45° 0%
40° 0%
35° 0%
30° 0%
25° 0%
20° 40%
15° 100%
10° 100%
5° 100%
0 100%
-5° 100%
-10° 100%
-15° 100%
-20° 0%
-25° 0%
-30° 0%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Tabel 4.13. (Lanjutan) Pengujian rambu tikungan ke kiri dengan jarak 400 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
-35° 0%
-40° 0%
-45° 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.13 merupakan hasil pengujian variasi sudut pada rambu
tikungan ke kiri dengan webcam dan gambar rambu berjarak 400 cm. Tabel diatas
memperlihatkan bahwa pada sudut 20° dan -20° dari 5 kali percobaan terdapat rambu yang
dikenali dengan tidak benar sehingga tingkat pengenalan dibawah 95% sehingga rambu dapat
dikenali mulai dari sudut -15° hingga sudut 15°.
Tabel 4.14. Pengujian rambu tikungan ke kanan dengan jarak 400 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
45° 0%
40° 0%
35° 0%
30° 0%
25° 0%
20° 0%
15° 100%
10° 100%
5° 100%
0 100%
-5° 100%
-10° 100%
-15° 100%
-20° 100%
-25° 20%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Tabel 4.14. (Lanjutan) Pengujian rambu tikungan ke kanan dengan jarak 400 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
-30° 0%
-35° 0%
-40° 0%
-45° 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.14 merupakan hasil pengujian variasi sudut pada rambu
tikungan ke kanan dengan webcam dan gambar rambu berjarak 400 cm. Tabel diatas
memperlihatkan bahwa pada sudut 20° dan -25° dari 5 kali percobaan terdapat rambu yang
dikenali dengan tidak benar sehingga tingkat pengenalan dibawah 95% sehingga rambu dapat
dikenali mulai dari sudut -20° hingga sudut 15°.
Tabel 4.15. Pengujian rambu persimpangan dengan jarak 400 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
45° 0%
40° 0%
35° 0%
30° 0%
25° 80%
20° 100%
15° 100%
10° 100%
5° 100%
0 100%
-5° 100%
-10° 100%
-15° 100%
-20° 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
Tabel 4.15. (Lanjutan) Pengujian rambu persimpangan dengan jarak 400 cm
Sudut Percobaan Tingkat
1 2 3 4 5 Pengenalan
-25° 100%
-30° 0%
-35° 0%
-40° 0%
-45° 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
Hasil pengujian pada Tabel 4.15 merupakan hasil pengujian variasi sudut pada rambu
persimpangan dengan webcam dan gambar rambu berjarak 400 cm. Tabel diatas
memperlihatkan bahwa pada sudut 25° dan -30° dari 5 kali percobaan terdapat rambu yang
dikenali dengan tidak benar sehingga tingkat pengenalan dibawah 95% sehingga rambu dapat
dikenali mulai dari sudut -25° hingga sudut 20°.
Hasil-hasil percobaan pengenalan rambu berdasarkan variasi sudut memperlihatkan
bahwa kemampuan pengenalan tidak bisa hingga sudut -45° maupun sudut 45°, hal ini
disebabkan karena pada bagian cropping atau lebih tepatnya pada bagian bounding box terjadi
kesalahan dalam pemotongan sehingga menyebabkan kesalahan pada saat pengenalan.
Kesalahan pemotongan pada bounding box disebabkan karena adanya batasan nilai
pemotongan seperti yang sudah dijelaskan pada bab 3 dan pembahasan program diatas.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan penelitian yang telah dilakukan mulai dari tahap perancangan sistem,
implementasi, pengujian sistem, hasil pengujian, dan pembahasan, maka dapat diambil
beberapa kesimpulan sebagai berikut :
1. Jarak minimun antara rambu dengan webcam adalah 50 cm sedangkan jarak
maksimum antara rambu dengan webcam adalah 560 cm.
2. Variasi sudut dapat mempengaruhi tingkat pengenalan, dari percobaan jarak rambu
dengan webcam sejauh 200 cm didapat hasil rambu dikenali antara sudut -35°
hingga 35°, dari percobaan jarak rambu dengan webcam sejauh 300 cm didapat
hasil rambu dikenali antara sudut -20° hingga 20°, dan percobaan jarak rambu
dengan webcam sejauh 300 cm didapat hasil rambu dikenali antara sudut -15°
hingga 15°. Semakin jauh jarak webcam dengan rambu maka semakin kecil pula
sudut kemiringan antara rambu dengan webcam.
5.2. Saran
Saran yang dapat diberikan untuk mengembangkan aplikasi ini adalah :
1. Mencoba menggunakan rambu lain seperti rambu larangan dan rambu perintah.
2. Menggunakan object detection pada bagian preprocessing agar rambu dapat
dikenali walaupun webcam bergerak.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
DAFTAR PUSTAKA
[1] Harsono, Tri, 2005 Pengenalan Gambar Rambu-Rambu Lalu-Lintas dengan
Menggunakan Filter Warna dan Kuantisasi Rata-Rata, Surabaya, Institut
Teknologi Sepuluh November Surabaya.
[2] Cahyo, Deniel P., Pengenalan Perangkat Elektronika Secara Real Time
Menggunakan Webcam Berbasis Ekstraksi Ciri Discrete Consine Transform.
[3] Affandi, Faisal, Rambu Lalu Lintas Jalan di Indonesia.
[4] Munir, Rinaldi, 2004, Pengolahan Citra Digital dengan Pendekatan Algoritmik,
Informatika, Bandung.
[5] Putra, Dharma, 2010, Pengolahan Citra Digital, Yogyakarta, Andi Offset.
[6] Prasetyo, E., 2011, Pengolahan Citra Digital dan Aplikasinya Menggunakan
Matlab. Yogyakarta, Andi Offset.
[7] Basuki, Achmad. Palandi, F., Jozua & Fatchrochman, 2005, Pengolahan Citra
Menggunakan Visual Basic, Graha Ilmu, Yogyakarta.
[8] Sydney, Burus C., A.G.Remesg, G.Haito, 1998, Introduction Wavelet and Wavelet
Transform, Prentice-Hall International, Inc.
[9] Sutarno, 2010, Analisis Perbandingan Transformasi Wavelet pada Pengenalan
Citra Wajah, Fakultas Ilmu Komputer, Universitas Sriwijaya.
[10] Gabel, Robet A., 1996, Sinyal dan Sistem Linear, 3rd
ed, Erlangga, Jakarta.
[11] Sumarno, Linggo, 2013, Segmentasi Kata Tulisan Tangan Menggunakan Jendela
Blackman, SNATI, 10th
, hal J-30 – J-35.
[12] Gavin D.G., Oswald W.W., Wahl, E.R., dan Williams J.W., A Statistical Approach
to Evaluating Distance Metrics and Analog Assignments for Pollen Records,
Quaternary Research 60, hal 356-367, 2003
[13] Anil K. Jain, Robert P.W. Duin, dan Jianchang Mao, 2000, Statistical Pattern
Recognition: A Review, IEEE Transaction On Pattern Analysis and Machine
Intelligence, vol 22.
[14] Wijaya, Marvin Ch., dan Prijono, A., 2.007, Pengolahan Citra Digital
Menggunakan MATLAB, Bandung, Informatika Bandung.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L1
LAMPIRAN
List Program Utama
function varargout = Pengenalan_Rambu(varargin)
%PENGENALAN_RAMBU M-file for Pengenalan_Rambu.fig
% PENGENALAN_RAMBU, by itself, creates a new PENGENALAN_RAMBU or raises the
existing
% singleton*.
%
% H = PENGENALAN_RAMBU returns the handle to a new PENGENALAN_RAMBU or the
handle to
% the existing singleton*.
%
% PENGENALAN_RAMBU('Property','Value',...) creates a new PENGENALAN_RAMBU using
the
% given property value pairs. Unrecognized properties are passed via
% varargin to Pengenalan_Rambu_OpeningFcn. This calling syntax produces a
% warning when there is an existing singleton*.
%
% PENGENALAN_RAMBU('CALLBACK') and
PENGENALAN_RAMBU('CALLBACK',hObject,...) call the
% local function named CALLBACK in PENGENALAN_RAMBU.M with the given input
% arguments.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Pengenalan_Rambu
% Last Modified by GUIDE v2.5 09-Oct-2014 17:16:16
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Pengenalan_Rambu_OpeningFcn, ...
'gui_OutputFcn', @Pengenalan_Rambu_OutputFcn, ...
'gui_LayoutFcn', [], ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L2
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before Pengenalan_Rambu is made visible.
function Pengenalan_Rambu_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin unrecognized PropertyName/PropertyValue pairs from the
% command line (see VARARGIN)
% Choose default command line output for Pengenalan_Rambu
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes Pengenalan_Rambu wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = Pengenalan_Rambu_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in camera.
function camera_Callback(hObject, eventdata, handles)
% hObject handle to camera (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
imaqhwinfo;
info = imaqhwinfo('winvideo');
dev_info = imaqhwinfo('winvideo',1);
vidobj=videoinput('winvideo',1,'YUY2_640X480');
vidobj.FramesPerTrigger = 1;
triggerconfig(vidobj, 'manual');
vidRes = get(vidobj, 'VideoResolution');
imWidth = 640;
imHeight = 480;
nBands = get(vidobj, 'NumberOfBands');
hImage = image(zeros(imHeight, imWidth, nBands), 'parent',handles.axes1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L3
preview(vidobj, hImage)
% --- Executes on button press in capture.
function capture_Callback(hObject, eventdata, handles)
% hObject handle to capture (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
imaqhwinfo;
info = imaqhwinfo('winvideo');
dev_info = imaqhwinfo('winvideo',1);
vidobj=videoinput('winvideo',1,'YUY2_640X480');
vidobj.FramesPerTrigger = 1 ;
triggerconfig(vidobj, 'manual');
vidRes = get(vidobj, 'VideoResolution');
imWidth = 640;
imHeight = 480;
nBands = get(vidobj, 'NumberOfBands');
hImage = image(zeros(imHeight, imWidth, nBands), 'parent',handles.axes1);
start(vidobj);
pause(1);
trigger(vidobj);
stoppreview(vidobj);
capt1=getdata(vidobj);
gambar=yuy2torgb(capt1);
handles.a=gambar;
guidata(hObject,handles)
axes(handles.axes1);
imshow(gambar)
axes(handles.axes6)
simbol=imread('images1.jpg');
imshow(simbol)
% --- Executes on button press in start.
function start_Callback(hObject, eventdata, handles)
% hObject handle to start (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% DATABASE
des=handles.des
if (des==1)
load dB1r64d1
elseif (des==2)
load dB1r64d2
elseif (des==3)
load dB1r64d3
elseif (des==4)
load dB1r64d4
elseif (des==5)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L4
load dB1r64d5
elseif (des==6)
load dB1r64d6
end
%PROSES GRAYSCALE
x=handles.a;
axes(handles.axes2);
x1=double(rgb2gray(x));
x2=x1/255;
imshow(x2)
axis on
%PROSES CROPPING
axes(handles.axes3);
x3=1-x2; %membuat warna gambar menjadi terbalik
x5=imcrop(x3,[150 100 350 350]);
x6=imrotate(x5,45,'bilinear');
x7=ceil(x6-0.80);
x8=bbox(x6,x7);
x10=imrotate(x8,-45,'bilinear');
imshow(x10)
axis on
%PROSES RESIZING
axes(handles.axes4);
x11=imresize(x10,[64 64]);
imshow(x11)
axis on
% EKSTRAKSI CIRI
axes(handles.axes5);
x12=xcwav2(x11,des);
mx12=max(x12(:));
nx12=x12/mx12;
x13=x12(:);
imshow(nx12)
axis on
x13=x13+1; %nilai offset=1
z=z+1;
% FUNGSI JARAK
for n=1:8
r(n)=jarak(x13,z(:,n))
end
minr=min(r)
b1=find(minr==r);
b2=ceil(b1/2);
% KELUARAN TEXT
z2={'Tikungan ke Kiri','Tikungan ke Kanan','Persimpangan','Hati-Hati'};
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L5
y1=z2(b2)
set(handles.edit1,'string',y1);
% KELUARAN SUARA
axes(handles.axes6)
simbol1=imread('images.jpg');
imshow(simbol1)
if (b2==1);
y=wavread('Tikungan ke Kiri.wav');
sound(y,50000)
elseif (b2==2);
y=wavread('Tikungan ke Kanan.wav');
sound(y,50000)
elseif (b2==3);
y=wavread('Persimpangan.wav');
sound(y,50000)
elseif (b2==3);
y=wavread('Hati-Hati.wav');
sound(y,50000)
end
% ========================================
% --- Executes on button press in reset.
function reset_Callback(hObject, eventdata, handles)
% hObject handle to reset (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
axes(handles.axes1)
plot(0);
axes(handles.axes2)
plot(0);
axes(handles.axes3)
plot(0);
axes(handles.axes4)
plot(0);
axes(handles.axes5)
plot(0);
axes(handles.axes6)
plot(0);
set(handles.popupmenu1,'Value',1);
set(handles.edit1,'string','');
set(handles.text9,'string','');
% --- Executes on button press in close.
function close_Callback(hObject, eventdata, handles)
% hObject handle to close (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
close
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L6
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
indeks=get(handles.popupmenu1,'Value');
switch indeks
case 2
des=1;
case 3
des=2;
case 4
des=3;
case 5
des=4;
case 6
des=5;
case 7
des=6;
end
handles.des=des;
guidata(hObject,handles);
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu1
% --- Executes during object creation, after setting all properties.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L7
function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
List Program YUY2toRGB
function newdata = yuy2torgb(data) % Konversi YUY2 ke RGB % http://www.mathworks.com/matlabcentral/newsreader/view_thread/263490 % Access date: 11 June 2014
Y = single(data(:,:,1)); U = single(data(:,:,2)); V = single(data(:,:,3));
C = Y-16; D = U-128; E = V-128;
R = uint8((298*C+409*E+128)/256); G = uint8((298*C-100*D-208*E+128)/256); B = uint8((298*C+516*D+128)/256);
newdata = uint8(zeros(size(data))); newdata(:,:,1)=R; newdata(:,:,2)=G; newdata(:,:,3)=B;
List Program DBXCWAV (Database)
function dbxcwav clear all z=[]; z=prosesxc(1,[64 64]); save dB1r64d1 z ; z=[]; z=prosesxc(2,[64 64]); save dB1r64d2 z ; z=[]; z=prosesxc(3,[64 64]); save dB1r64d3 z ; z=[]; z=prosesxc(4,[64 64]); save dB1r64d4 z ; z=[]; z=prosesxc(5,[65 64]); save dB1r64d5 z ; z=[]; z=prosesxc(6,[65 64]); save dB1r64d6 z ; z=[]; %z=prosesxc(6,[64 128]); save dB1r64d6 z ;
clear all % =============================================== % Internal Function
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L8
% =============================================== function z=prosesxc(des,rz) z=[]; x=imread('Ram1.jpg'); x=prepro(x,rz); y=xcwav2(x,des); y=y(:); z=[z y]; x=imread('Ram1a.jpg'); x=prepro(x,rz); y=xcwav2(x,des); y=y(:); z=[z y];
x=imread('Ram2.jpg'); x=prepro(x,rz); y=xcwav2(x,des); y=y(:); z=[z y]; x=imread('Ram2a.jpg'); x=prepro(x,rz); y=xcwav2(x,des); y=y(:); z=[z y];
x=imread('Ram3.jpg'); x=prepro(x,rz); y=xcwav2(x,des); y=y(:); z=[z y]; x=imread('Ram3a.jpg'); x=prepro(x,rz); y=xcwav2(x,des); y=y(:); z=[z y];
x=imread('Ram4.jpg'); x=prepro(x,rz); y=xcwav2(x,des); y=y(:); z=[z y]; x=imread('Ram4a.jpg'); x=prepro(x,rz); y=xcwav2(x,des); y=y(:); z=[z y];
% =============================================== function x9=prepro(x0,rz) % Preprocessing % ------------- % Konversi rgb ke gray x1=double(rgb2gray(x0)); x2=x1/255; x3=1-x2;
%Cropping
x5=imrotate(x3,45,'bilinear'); x6=ceil(x5-0.80); x7=bbox(x5,x6); x8=imrotate(x7,-45,'bilinear');
% Resizing x9=imresize(x8,rz); %x10=ceil(x9);
List Program BBOX
function img4=bbox(img2a,img2b) %img2a:gray; img2b:biner % ========================================================= % Potong kata sesuai bounding box-nya % ========================================================= [img3a,img3b]=cutleft(img2a,img2b); % Putar 90 cw dan potong kiri img3a=fliplr(img3a'); img3b=fliplr(img3b'); x=img3a; x1=img3b; [img3a,img3b]=cutleft(img3a,img3b); % Putar 90 cw dan potong kiri img3a=fliplr(img3a'); img3b=fliplr(img3b'); x2=img3a; x3=img3b; [img3a,img3b]=cutleft(img3a, img3b); % Putar 90 cw dan potong kiri img3a=fliplr(img3a');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L9
img3b=fliplr(img3b'); x4=img3a; x5=img3b; [img3a,img3b]=cutleft(img3a,img3b); % Putar 90 cw img4=fliplr(img3b'); x6=img4;
function [out1,out2]=cutleft(in1,in2) %out1 (gray) , out2 (biner) % Subrutin untuk memotong kolom kiri yang kosong out1=in1; out2=in2; JKolom=sum(in2); KolomTakNol=find(JKolom >60); if sum(KolomTakNol)>=1; out1(:,1:KolomTakNol(1)-1)=[]; out2(:,1:KolomTakNol(1)-1)=[]; end
List Program XCWAV2 (Ekstraksi Ciri)
function x3=xcwav2(x0,m) % Ekstraksi ciri wavelet 2D untuk citra
for k=1:m x1=convx2(x0); x2=downsampling(x1); x0=x2; end x3=x0;
% ======================================== % Internal function % ======================================== function y=convx2(x) % Proses konvolusi 2D
LPF=[0.7071 0.7071]; % Haar wavelet LO_D [b,k]=size(x);
% Konvolusi baris for m=1:b x0=x(m,:); x(m,:)=convx(x0,LPF); end
%Konvolusi kolom for m=1:k x0=x(:,m); x(:,m)=convx(x0',LPF)'; end y=x;
% ========================================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L10
function y = convx(x,LPF) % Proses konvolusi dengan ekstensi sinyal % Catatan: Jumlah koef. LPF harus genap
lx = length(x); lf = length(LPF);
% Ekstensi sinyal batas=lf/2; kiri=x(lx-batas+1:lx); kanan=x(1:batas); x=[kiri x kanan];
% Konvolusi y=conv(x,LPF);
% Keluarkan yang perlu awal=lf+1; akhir=awal+lx-1; y=y(awal:akhir);
% ======================================== function y=downsampling(x) % Proses downsampling yang mempertahankan % koefisien genap
[b,k]=size(x); % downsampling baris m=1:2:b; x(m,:)=[];
% downsampling kolom m=1:2:k; x(:,m)=[]; y=x;
% ========================================
List Program Jarak
function z=jarak(x,y) % Hitung jarak z=sum(((x-y).^2)./(x+y));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L11
1. Proses Preprocessing
Citra Masukkan Diubah kedalam bentuk grayscale
Cita hasil cropping Membalik antara warna gelap dan
terang
Citra hasil bounding box Citra hasil resizing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L12
2. Proses Konvolusi dan Downsampling
Citra hasil resizing Citra hasil konvolusi
Citra hasil konvolusi baris Citra hasil downsampling baris
Citra hasil konvolusi kolom Citra hasil downsampling kolom
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L13
3. Proses Ekstraksi Ciri
Hasil Resizing Hasil setelah di-konvolusi
Hasil ekstraksi ciri Hasil setelah downsampling
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L14
Pengujian Jarak Maksimum dan Minimum
Rambu Tikungan ke Kiri
Jarak (cm)
Desimasi 1 Desimasi 2 Desimasi 3 Tingkat
Percobaan Percobaan Percobaan Pengenalan
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
40 0%
50 100%
60 100%
80 100%
100 100%
120 100%
140 100%
160 100%
180 100%
200 100%
220 100%
240 100%
260 100%
280 100%
300 100%
320 100%
340 100%
360 100%
380 100%
400 100%
420 100%
440 100%
460 100%
480 100%
500 100%
520 100%
540 100%
560 100%
580 60%
600 0%
620 0%
Ket : : rambu dikenali dengan tidak benar ; : rambu dikenali dengan benar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L15
Rambu Tikungan ke Kanan
Jarak (cm)
Desimasi 1 Desimasi 2 Desimasi 3 Tingkat
Percobaan Percobaan Percobaan Pengenalan
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
40 0%
50 100%
60 100%
80 100%
100 100%
120 100%
140 100%
160 100%
180 100%
200 100%
220 100%
240 100%
260 100%
280 100%
300 100%
320 100%
340 100%
360 100%
380 100%
400 100%
420 100%
440 100%
460 100%
480 100%
500 100%
520 100%
540 100%
560 100%
580 80%
600 0%
620 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L16
Rambu Persimpangan
Jarak (cm)
Desimasi 1 Desimasi 2 Desimasi 3 Tingkat
Percobaan Percobaan Percobaan Pengenalan
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
40 0%
50 100%
60 100%
80 100%
100 100%
120 100%
140 100%
160 100%
180 100%
200 100%
220 100%
240 100%
260 100%
280 100%
300 100%
320 100%
340 100%
360 100%
380 100%
400 100%
420 100%
440 100%
460 100%
480 100%
500 100%
520 100%
540 100%
560 100%
580 100%
600 0%
620 0%
Ket : : rambu dikenali dengan tidak benar
: rambu dikenali dengan benar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI