PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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
i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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
ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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,
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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
xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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
xvii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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
5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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. [ [ ] Dimana : (x1 , y1)
: citra input
]
(2.6) (2.7)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI (x2 , y2)
: citra output
(Sp , Sl)
: variable penskalaan
11
Sehingga didapatkan rumus pengganti untuk proses penskalaan adalah sebagai berikut. [ ]
[
]
[ ]
[ ]
(2.8)
Sehingga: [ ]
2.5.
[
]
[ ]
(2.9)
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 nilainilai 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 1dimensi. Transformasi dilakukan pada baris terlebih dahulu hingga nilai piksel citra yang diinginkan kemudian dilanjutkan transformasi wavelet 1-dimensi untuk setiap kolomnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 : ,
-
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
(2.10)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.6.
13
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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 2.6. Perhitungan konvolusi secara grafis
Gambar 2.7. Perhitungan konvolusi secara matriks
14
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 ujungujung 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 * (
)
Konvolusi sinyal yang diperpanjang
( ) ( )
( ) ( )
(
)+
(2.12)
dengan sinyal hk akan menghasilkan (2.13) _
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 Hasil
= [4 1 2 3 4 1].
dikonvolusi (2.13) dengan baris h dengan menggunakan cara matriks, seperti
pada Gambar 2.8.
Gambar 2.8. Perhitungan konvolusi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Konvolusi dari
16
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.8.
-
(2.16)
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:
2.9.
d
= output jarak Chi-Square
P
= input dari hasil ekstraksi ciri
Q
= data dari database
n
= banyaknya data
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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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.
18
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.2
20
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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 lalulintas, 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
(a)
25
(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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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)
(d)
(b)
(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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar Masukkan
28
Gambar Hasil Potong Kiri
(b)
(a) 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 Axes 2 pada panel Proses Pengenalan Rambu Axes 3 pada panel Proses Pengenalan Rambu Axes 4 pada panel Proses Pengenalan Rambu Axes 5 pada panel Ekstraksi Ciri Axes 6 pada panel Output Text
Untuk menampilkan citra secara live dari webcamdan citra hasil capture Untuk menampilkan citra hasil grayscale
Untuk menampilkan citra hasil cropping
Untuk menampilkan citra hasil resizing
Untuk menampilkan citra hasil ekstraksi ciri
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
35
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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 lalulintas 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
36
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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
44
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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
JKolom > 20
JKolom > 60
JKolom > 150
JKolom > 190
Hasil Gambar
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4.3.
49
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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 Percobaan 1
2
3
4
Desimasi 2 Percobaan 5
1
2
3
4
Desimasi 3 Percobaan 5
1
2
3
4
Tingkat Pengenalan 5
50 60 80 100 200 300 400 500 520 540 560 580 600 620 Ket : : rambu dikenali dengan tidak benar 40
0% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 60% 0% 0%
: 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 Percobaan 1
2
3
4
Desimasi 2 Percobaan 5
1
2
3
4
Desimasi 3 Percobaan 5
1
2
3
4
Tingkat Pengenalan 5
50 60 80 100 200 300 400 500 520 540 560 580 600 620 Ket : : rambu dikenali dengan tidak benar 40
0% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 80% 0% 0%
: 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 Percobaan 1
2
3
4
Desimasi 2 Percobaan 5
1
2
3
4
Desimasi 3 Percobaan 5
1
2
3
4
Tingkat Pengenalan 5
50 60 80 100 200 300 400 500 520 540 560 580 600 620 Ket : : rambu dikenali dengan tidak benar 40
: rambu dikenali dengan benar
0% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 0% 0%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 1
2
3
Rambu 1
Rambu 2
Rambu 3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 45° 40° 35° 30° 25° 20° 15° 10° 5° 0 -5° -10°
Percobaan
Tingkat
1
2
3
4
5
Pengenalan 0% 0% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
55
Tabel 4.7. (Lanjutan) Pengujian rambu tikungan ke kiri dengan jarak 200 cm Percobaan
Sudut -15° -20° -25° -30° -35° -40° -45°
Ket :
Tingkat
1
2
3
4
5
Pengenalan
100% 100% 100% 100% 100% 0% 0%
: 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 45° 40° 35° 30° 25° 20° 15° 10° 5° 0 -5° -10° -15°
Percobaan
Tingkat
1
2
3
4
5
Pengenalan 0% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
56
Tabel 4.8. (Lanjutan) Pengujian rambu tikungan ke kanan dengan jarak 200 cm Percobaan
Sudut -20° -25° -30° -35° -40° -45°
Ket :
Tingkat
1
2
3
4
5
Pengenalan 100% 100% 100% 100% 0% 0%
: 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 Percobaan
Sudut 45° 40° 35° 30° 25° 20° 15° 10° 5° 0 -5° -10° -15° -20°
Tingkat
1
2
3
4
5
Pengenalan 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
57
Tabel 4.9. (Lanjutan) Pengujian rambu persimpangan dengan jarak 200 cm Percobaan
Sudut -25° -30° -35° -40° -45°
Ket :
Tingkat
1
2
3
4
5
Pengenalan 100% 100% 100% 100% 100%
: 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 45° 40° 35° 30° 25° 20° 15° 10° 5° 0 -5° -10° -15° -20° -25° -30°
Percobaan
Tingkat
1
2
3
4
5
Pengenalan 0% 0% 0% 60% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 80% 0%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
58
Tabel 4.10. (Lanjutan) Pengujian rambu tikungan ke kiri dengan jarak 300 cm Sudut -35° -40° -45°
Ket :
Percobaan 1
2
3
Tingkat 4
5
Pengenalan 0% 0% 0%
: 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 45° 40° 35° 30° 25° 20° 15° 10° 5° 0 -5° -10° -15° -20° -25° -30°
Percobaan
Tingkat
1
2
3
4
5
Pengenalan 0% 0% 0% 0% 40% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
59
Tabel 4.11. (Lanjutan) Pengujian rambu tikungan ke kanan dengan jarak 300 cm Percobaan
Sudut 1 -35° -40° -45°
Ket :
2
Tingkat
3
4
5
Pengenalan
60% 0% 0%
: 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 45° 40° 35° 30° 25° 20° 15° 10° 5° 0 -5° -10° -15° -20° -25° -30°
Percobaan
Tingkat
1
2
3
4
5
Pengenalan 0% 0% 60% 60% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
60
Tabel 4.12. (Lanjutan) Pengujian rambu persimpangan dengan jarak 300 cm Sudut -35° -40° -45°
Ket :
Percobaan 1
2
3
Tingkat 4
5
Pengenalan 0% 0% 0%
: 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 45° 40° 35° 30° 25° 20° 15° 10° 5° 0 -5° -10° -15° -20° -25° -30°
Percobaan
Tingkat
1
2
3
4
5
Pengenalan 0% 0% 0% 0% 0% 40% 100% 100% 100% 100% 100% 100% 100% 0% 0% 0%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
61
Tabel 4.13. (Lanjutan) Pengujian rambu tikungan ke kiri dengan jarak 400 cm Percobaan
Sudut 1 -35° -40° -45°
Ket :
2
3
Tingkat 4
5
Pengenalan 0% 0% 0%
: 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 45° 40° 35° 30° 25° 20° 15° 10° 5° 0 -5° -10° -15° -20° -25°
Percobaan
Tingkat
1
2
3
4
5
Pengenalan 0% 0% 0% 0% 0% 0% 100% 100% 100% 100% 100% 100% 100% 100% 20%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
62
Tabel 4.14. (Lanjutan) Pengujian rambu tikungan ke kanan dengan jarak 400 cm Sudut -30° -35° -40° -45°
Ket :
Percobaan
Tingkat
1
2
3
4
5
Pengenalan 0% 0% 0% 0%
: 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 45° 40° 35° 30° 25° 20° 15° 10° 5° 0 -5° -10° -15° -20°
Percobaan
Tingkat
1
2
3
4
5
Pengenalan 0% 0% 0% 0% 80% 100% 100% 100% 100% 100% 100% 100% 100% 100%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
63
Tabel 4.15. (Lanjutan) Pengujian rambu persimpangan dengan jarak 400 cm Percobaan
Sudut -25° -30° -35° -40° -45°
Ket :
Tingkat
1
2
3
4
5
Pengenalan 100% 0% 0% 0% 0%
: 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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.
64
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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.
64
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI 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 PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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)
L2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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)
L3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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'};
L4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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
L5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
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.
L6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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=prosesxc(2,[64 64]); save dB1r64d2 z z=prosesxc(3,[64 64]); save dB1r64d3 z z=prosesxc(4,[64 64]); save dB1r64d4 z z=prosesxc(5,[65 64]); save dB1r64d5 z z=prosesxc(6,[65 64]); save dB1r64d6 z %z=prosesxc(6,[64 128]); save dB1r64d6
; ; ; ; ; ; z
z=[]; z=[]; z=[]; z=[]; z=[]; z=[]; ;
clear all % =============================================== % Internal Function
L7
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % =============================================== 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');
L8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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]; [b,k]=size(x);
% Haar wavelet LO_D
% 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; % ========================================
L9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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));
L10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L11
1. Proses Preprocessing
Citra Masukkan
Cita hasil cropping
Diubah kedalam bentuk grayscale
Membalik antara warna gelap dan
terang
Citra hasil bounding box
Citra hasil resizing
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Proses Konvolusi dan Downsampling
Citra hasil resizing
Citra hasil konvolusi baris
Citra hasil konvolusi kolom
Citra hasil konvolusi
Citra hasil downsampling baris
Citra hasil downsampling kolom
L12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3. Proses Ekstraksi Ciri
Hasil Resizing
Hasil setelah di-konvolusi
Hasil ekstraksi ciri
Hasil setelah downsampling
L13
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L14
Pengujian Jarak Maksimum dan Minimum Rambu Tikungan ke Kiri Desimasi 1 Jarak (cm) Percobaan 1
2
3
4
Desimasi 2 Percobaan 5
1
2
3
4
Desimasi 3 Percobaan 5
1
2
3
4
Tingkat Pengenalan 5
50 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400 420 440 460 480 500 520 540 560 580 600 620 Ket : : rambu dikenali dengan tidak benar ; : rambu dikenali dengan benar 40
0% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 60% 0% 0%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Rambu Tikungan ke Kanan Desimasi 1 Jarak (cm) Percobaan 1 40 50 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400 420 440 460 480 500 520 540 560 580 600 620
Ket :
2
3
4
Desimasi 2 Percobaan 5
1
2
3
4
L15
Desimasi 3 Percobaan 5
1
2
3
4
Tingkat Pengenalan 5
: rambu dikenali dengan tidak benar : rambu dikenali dengan benar
0% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 80% 0% 0%
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Rambu Persimpangan Desimasi 1 Jarak (cm) Percobaan 1 40 50 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400 420 440 460 480 500 520 540 560 580 600 620
Ket :
2
3
4
Desimasi 2 Percobaan 5
1
2
3
4
L16
Desimasi 3 Percobaan 5
1
2
3
4
Tingkat Pengenalan 5
: rambu dikenali dengan tidak benar : rambu dikenali dengan benar
0% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 0% 0%