• Tidak ada hasil yang ditemukan

BAB II: DASAR TEORI

3.2. Perancangan Sistem Software

Perancangan sistem software pengenalan rambu lalu-lintas terdapat beberapa proses yang harus dijalankan, yaitu proses pengambilan citra rambu, preprocessing, ekstraksi ciri, fungsi jarak, dan penentukeluaran. Gambar 3.3. merupakan blok diagram proses pengenalan rambu secara software.

Gambar 3.3.Blok diagramproses pengenalan rambu

Citra masukkan rambu lalu lintas berasal dari gambar poster yang di-capture oleh

webcam. Hasil capture lalu dikonversi menjadi warna keabuan(grayscale) sebelum citra

hasil capture tersebut dipotong (cropping) sebesar citra rambu sehingga bagian gambar yang tidak dibutuhkan bisa dihilangkan. Tahap selanjutnya ukuran piksel dari citra rambu disesuaikan dengan ukuran yang diinginkan, tahap ini dinamakan tahap resizing. Ukuran piksel yang diharapkan yaitu 64 x 64. Hasil keluaran dari resizing ini kemudian menjadi masukkan untuk proses berikutnya yaitu proses pengenalan.

Proses pengenalan terdiri dari dua tahap yaitu ekstraksi ciri dan fungsi jarak. Ekstraksi ciri adalah tahap pengambilan ciri pada suatu citra sedangkan fungsi jarak adalah tahap dimana citra hasil ekstraksi ciriakan dibandingkan dengan citra database. Sistem pengenalan rambu lalu lintas ini menggunakan ekstraksi ciriWavelet Haar serta menggunakan fungsi jarak Chi Square.Jarak paling minimum yang diperoleh dari hasil perbandingan antara database dengan ekstraksi ciri dijadikan penentu hasil keluaran sistem. Hasil keluaran sistem berupa teks dan suara. Diagram alir proses pengenalan rambu dapat dilihat pada Gambar 3.4.

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

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.

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.

Tahap pengambilan citra rambu menggunakan webcam merupakan tahap awal dari sistem pengenalan rambu lalu-lintas. Input citra dari tahap ini berasal dari gambar rambu lalu-lintas berukuran 60 cm x 60 cm. Proses pertama tahap ini adalah menyalakan webcam dengan menggunakan fungsi ‘vidobj’, sedangkan untuk inisialisasi webcam menggunakan fungsi ‘winvideo’ yang sudah tersedia pada Matlab. Setelah webcam menyala, proses selanjutnya adalah pengambilan citra (capture) rambu lalu-lintas menggunakan fungsi ‘getsnapshoot’. Citra hasil capture akan dijadikan input untuk tahap selanjutnya yaitu tahap preprocessing. Contoh program untuk mengambil citra rambu dapat dilihat dibawah ini.

vidobj = videoinput('winvideo',1,'YUY2_640x480'); preview(vidobj); pause frame = getsnapshot(vidobj); stop(vidobj) delete(vidobj) gambar=yuy2torgb(frame); imshow(gambar) 3.2.3. Tahap Preprocessing

Tahap preprocessing merupakan tahap kedua dari sistem pengenalan rambu lalu-lintas, yang mana tahap ini berfungsi untuk mengolah citra agar mempermudah pengolahan citra ke tahap selanjutnya yaitu tahap ekstraksi ciri. Tahap preprocessing terdiri dari empat proses yaitu proses grayscale, proses cropping, proses bounding box dan proses resizing.

- Proses grayscale

Proses ini bertujuan untuk mengubah citra menjadi berwarna keabuan sehingga dapan memudahkan dalam proses selanjutnya yaitu ekstraksi ciri. Proses ini menggunakan perintah yang sudah tersedia di Matlab yaitu perintah rgb2gray. Perintah rgb2gray merupakan perintah untuk mengubah format gambar rgb menjadi grayscale. Contoh programrgb2gray dapat dilihat dibawah ini dan citra

grayscale bisa dilihat pada Gambar 3.7.

X=imread('filename'); X1=double(rgb2gray(X)); X2=X1/255;

(a) (b) Gambar 3.7. konversi citra rgb ke grayscale (a) citra masukkan (rgb), (b) citra hasil grayscale - Proses cropping

Proses ini merupakan proses untuk mendapatkan data yang diinginkan dengan cara memotong bagian tertentu dari suatu citra sehingga memudahkan dalam pengolahan data untuk proses selanjutnya. Matlab telah menyediakan suatu perintah untuk cropping, yaitu imcrop (‘variabel’,[x y Δx Δy]).Kolom pertama dan kedua yaitu x dan y merupakan koordinat pada sumbu x dan y kiri atas. Kolom ketiga yaitu Δx merupakan selisih antara sumbu x kanan atas dengan sumbu x kiri atas. Sedangkan kolom ketiga yaitu Δy merupakan selisih antara sumbu y kiri bawah dengan sumbu y kiri atas. Seperti yang diperlihatkan pada contoh program dibawah ini, dimana X2 merupakan variabel dari output

grayscale sedangkan untuk nilai-nilai dari x, y, Δx, dan Δy didapat dari nilai

koordinat seperti yang ditampilkan pada Gambar 3.8.

X3=imcrop(X2,[200 100 400 400]); imshow(X3)

Nilai x dan y dapat dilihat pada sumbu koordinat yang diperlihatkan pada Gambar 3.8. bagian (a), dimana terlihat sumbu x dan y berada pada sumbu koordinat 200,100. Nilai Δx didapat dari selisih sumbu x bagian kanan (Gambar b) dengan sumbu x bagian kiri (Gambar a) sehingga Δx = 600 – 200 = 400. Nilai Δy didapat dari selisih sumbu y bagian kiri bawah (Gambar c) dengan sumbu y bagian kiri atas (Gambar a), sehingga didapat Δy = 500 – 100 = 400. Setelah nilai-nilai x, y, Δx, dan

Δy didapat, program dapat dijalankan dan hasilnya seperti yang terlihat pada gambar d serta variabel diganti menjadi X3 untuk menjadi variabel masukkan ke tahap selanjutnya yaitu tahap resizing.

(a) (b)

(d) (c)

Gambar 3.8. Contoh proses cropping; (a) titik koordinat bagian kiri atas; (b) titik koordinat bagian kanan atas; (c) titik koordinat bagian kiri bawah; (d) hasil cropping

- Proses Bounding Box

Hasil dari proses cropping, kemudian dipotong sesuai dengan bounding box. Tujuan dari proses ini, agar mendapatkan gambar rambu yang pas sehingga

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

Gambar Masukkan Gambar Hasil Potong Kiri (a) (b) Putar 90° (c) (d) Putar 90° (e) (f) Putar 90° (g) (h) Putar 90°(kembali pada posisi awal)

(i)

Gambar 3.10 Proses bounding box (a) Input karakter (b) Hasil potong kiri (c) Putar 90° searah jarum jam ke 1 (d) Hasil potong kiri (e) Putar 90° searah jarum jam ke 2 (f) Hasil potong kiri (g) Putar 90° searah jarum jam ke 3 (h) Hasil Potong kiri (i)

- 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

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

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.

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

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.

Gambar 3.17. Diagram alir penentu keluaran

Dokumen terkait