2010-2-00420-mtif bab 3
TRANSCRIPT
27
BAB 3
PERANCANGAN PROGRAM APLIKASI
Dalam analisis dan perancanan sistem program aplikasi ini, akan dijelaskan proses
rancangan program pengenalan plat nomor kendaraan roda 4(empat). Dimulai dari
analisis kebutuhan sistem yang akan dirancang, dilanjutkan dengan rancangan cetak biru
untuk program yang akan dibangun.
3.1 . Analisis Kebutuhan Sistem
Berikut ini adalah gambaran sistem secara garis besar yang di dalamnya
terkandung proses-proses yang akan dilakukan oleh sistem.
Edge Detection
Plate Band Selection
Heuristic
Gambar 3.1 Global flowchart proses dalam sistem
Dalam tiap-tiap tahapan di atas, dilakukan analisis dan modifikasi terhadap citra
digital untuk pada akhirnya menghasilkan citra yang telah terseleksi pada bagian plat
nomor kendaraan.
28
Proses dimulai dengan melakukan metode edge detection untuk mencari tepi
vertikal dan tepi horisontal. Hasil yang didapatkan dari proses edge detection akan
dipetakan terhadap sumbu vertikal dan horisontal sehingga didapatkan jumlah intensitas
citra dari baris dan kolom, yang kemudian nilai penjumlahan akan digunakan untuk
analisis pencarian band pada peak tertinggi. Proses heuristik plat nomor kendaraan roda
4(empat) kemudian diterapkan kepada hasil dari pencarian band untuk mendapatkan
hasil yang lebih akurat.
3.1.1 Edge Detection
Untuk dapat melakukan pendeteksian tepi (Edge Detection) dengan
metode convolution, terlebih dahulu perlu dilakukan langkah-langkah yang
dapat mempermudah dilakukannya analisis tersebut. Langkah-langkah dalam
tahap Edge Detection ini adalah sebagai berikut:
◦ Membuka file citra digital
Citra yang dibuka hendaknya adalah citra digital yang mengandung
plat nomor kendaraan, dan harus berukuran lebih dari 256 x 256
piksel. Jarak plat nomor kendaraan dari kamera kurang lebih 2-3
meter untuk memperoleh nilai yang optimal. Kemiringan sudut
pengambilan gambar maximum 30 derajat dari garis normal plat
kendaraan, apabila lebih maka plat akan terlihat semakin pipih dan
akan lebih sulit terditeksi oleh sistem.
29
Gamb
ar 3.2
Conto
h
citra
digital
kenda
raan
roda
4
(empat)
◦ Proses Grayscale
Untuk dapat mempermudah dilakukannya analisis pixel, nilai pixel
dari citra digital akan disamakan terlebih dahulu menjadi nilai
intensitas. Nilai intensitas dapat dikatakan sebagai representasi dari
ketiga warna primer yang membentuk warna pixel. Sebagai contoh
“pixel pada koordinat-xy memiliki nilai RGB (30,20,100) setelah
dilakukan proses grayscale maka nilai baru yaitu nilai intensitas
untuk menggantikan ketiga warna primer pixel tersebut adalah 6 + 14
+ 7 = 27, apabila dituliskan dalam format RGB akan terlihat seperti
berikut RGB (27,27,27)”. Hasil dari proses grayscale terhadap citra
digital dapat dilihat pada gambar 3.3 di bawah.
30
Ga
mb
ar
3.3
Cit
ra
dig
ital
den
gan
pro
ses grayscale
◦ Proses convolution
Setelah proses greyscale diterapkan, saatnya untuk pendeteksian tepi
dilakukan. Penditeksian tepi menggunakan metode convolution dan
dibagi menjadi 2 bagian yaitu penditeksian tepi vertikal dan
penditeksian tepi horisontal. Cara ini digunakan untuk mencari piksel
mana saja yang merupakan tepi dari isi citra digital. Dalam analisis
ini kita melihat dari 2(dua) arah yaitu arah vertikal dan horisontal.
Kernel convolution yang akan digunakan dapat dilihat pada gambar
3.4a dan 3.4b di bawah.
31
-1 -1 -10 0 01 1 1
Gambar 3.4a Matriks kernel penditeksian tepi horisontal
-1 0 1-1 0 1-1 0 1
Gambar 3.4b Matriks kernel penditeksian tepi vertikal
Hasil dari kedua proses convolution terhadap matriks kernel tersebut
dapat kita lihat pada gambar 3.5a dan 3.5b di bawah ini
Gambar 3.5a Hasil proses pendeteksian tepi vertikal
32
Ga
mb
ar
3.5
b
Ha
sil
pro
ses
pe
nd
ete
ksian tepi horisontal
Masing-masing nilai keluaran yang merupakan hasil dari proses
convolution akan kita proyeksikan intensitas tepinya berdasarkan arah
penditeksian. Apabila penditeksian tepi horisontal yang dilakukan
maka hasil penditeksian tepi horisontal akan proyeksikan terhadap
sumbu vertikal, begitu juga sebaliknya apabila penditeksian tepi
vertikal yang dilakukan maka hasil penditeksian tepi vertikal akan di
proyeksikan terhadap sumbu horisontal. Dari proses proyeksi ini akan
dihasilkan suatu nilai keluaran berupa frekuensi nilai tepi horisontal
ataupun vertikal. Dapat kita lihat pada gambar 3.6a dan 3.6b di bawah
33
ini.
Gambar 3.6a Hasil proyeksi vertikal
Gambar 3.6b Hasil proyeksi horisontal
3.1.2 Plate band detection
Setelah proses proyeksi selesai maka kita akan mendapatkan suatu
grafik frekuensi di mana nilai intensitas dari suatu tepi dapat kita lihat.
Untuk bagian plat nomor kendaraan dikarenakan terdiri dari huruf dan sifat
dari huruf itu sendiri memiliki banyak tepi dalam jarak yang cukup
berdekatan, maka kita dapat mendeteksi bagian plat nomor kendaraan pada
34
area yang memiliki nilai frekuensi intensitas tepi tertinggi dan dengan
koefisien lebar pita (bandwidth) yang telah dianalisis berdasarkan sifat dari
plat nomor kendaraan. Sebelum proses plate band detection dapat dilakukan,
kita akan menghaluskan terlebih dahulu nilai yang kita dapat dari proses
proyeksi. Hal ini disebabkan karena data mentah yang kita dapat dari proses
proyeksi masih memiliki noise yang cukup tinggi sehingga jika kita lihat
pada gambar 3.6a dan 3.6b, kita akan melihat banyak sekali jumlah puncak
dan lembah yang ada. Hal ini tentunya akan mempersulit dalam pencarian
puncak yang dimaksudkan. Cara untuk menghaluskan data yang ada, kita
sebut dengan rank filtering atau dapat juga disebut sebagai mean
convolution. Rank filtering ini akan mengambil nilai tengah dari n titik
dengan nilai n adalah lebar matriks kernelnya. Matriks kernel itu sendiri
berisikan nilai 1/n dikarenakan kita akan mencari nilai tengah dari titik-titik
yang akan di-convolusi-kan. Berdasarkan hasil analisis yang telah dilakukan,
rank filtering pada proyeksi vertikal memiliki nilai n=9. Sehingga lebar
matriks kernel adalah 9 dan nilai dari masing-masing sel pada matriks kernel
adalah 1/9 (gambar 3.7).
Gambar 3.7 Matriks kernel vertikal rank filtering
Sedangkan pada proyeksi horisontal matriks kernel memiliki lebar 60
sel sehingga masing-masing sel mengandung nilai 1/60 (gambar 3.8).
1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/91 2 3 4 5 6 7 8 9
35
1/60 1/60 1/60 1/60 1/60 1/60 … 1/60 1/601 2 3 4 5 6 .... 59 60
Gambar 3.8 Matriks kernel horisontal rank filtering
Koefisien tersebut diambil berdasarkan hasil paling optimal yang
didapatkan dari ½ lebar minimum plat nomor kendaraan yang berada dalam
citra digital dan ½ dari panjang minimum plat nomor yang didapatkan dalam
citra digital. Hasil perbedaan grafik sebelum dan setelah proses rank
filte
ring
dap
at
dilihat pada gambar 3.9a dan gambar 3.9b.
Gambar 3.9a Grafik frekuensi sebelum dilakukan rank filtering
Ga
mb
ar
3.9
b Grafik frekuensi setelah dilakukan rank filtering
Plate band detection dapat dilakukan dengan melakukan beberapa
tahapan sebagai berikut:
◦ Menghitung batas tengah pencarian puncak (E), dengan Nilai dari
batas tengah pencarian puncak adalah ½ dari nilai maksimum positif
36
secara keseluruhan.
◦ Mencari nilai-nilai maksimum (Pe) antara titik potong grafik nilai
dengan garis batas tengah.
◦ Mencari kaki dari nilai-nilai puncak yang telah didapatkan, batasan-
batasan memiliki nilai koefisien yang akan dikalikan dengan nilai
puncak. Untuk mencari kaki pada proyeksi vertikal, batasan kaki kiri
(Bl) adalah 0.55 dari nilai puncak dan batasan kaki kanan (Br) adalah
0.42 dari nilai puncak, sedangkan pada proyeksi horisontal batasan
kaki kiri (Bl) dan batasan kaki kanan sama yaitu dengan nilai 0.48
Untuk lebih dapat menjelaskan proses plate band detection kita dapat
lihat ilustrasinya pada gambar 3.10 di bawah ini.
Gamb
ar
3.10
Ilustr
asi
prose
s plate band detection
3.1.3 Heuristic
Pada hasil akhir dari proses plate band detection masih terdapat
kemungkinan terpilihnya plat kendaraan lebih dari satu kandidat. Maka dari
itu untuk mengatasi hal tersebut, diperlukan penyaringan lebih lanjut untuk
Nilai puncak (Pe)
Nilai tengah (E)
Batas kanan (Br)Batas kiri (Bl)
37
mengurangi jumlah kandidat yang ada. Salah satu cara dengan menggunakan
pendekatan heuristic. Proses dasar dari analisis menggunakan metode
heuristic dapat diilustrasikan dengan langkah-langkah sebagai berikut:
1. Menerima lebih dari satu kandidat plat nomor kendaraan dari proses
plate band detection.
2. Menghitung besar beban berdasarkan rumus pendekatan yang diambil
dari sifat-sifat plat nomor kendaraan.
3. Mengurutkan kandidat plat nomor kendaraan dari nilai terbesar menuju
nilai terkecil berdasarkan besaran beban yang didapat dari point 2.
4. Menghilangkan kandidat teratas dikarenakan kandidat tersebut
memiliki nilai beban tertinggi.
5. Apabila kandidat plat nomor kendaraan masih lebih dari satu maka
dilakukan kembali proses yang dimulai dari poin 2.
Disini ada beberapa rumusan heuristik yang digunakan untuk
perhitungan beban. Rumusan yang ada merupakan rumusan yang diambil
berdasarkan sifat dari plat nomor kendaraan yang ada. Untuk menyatukan
rumusan sifat kita menggunakan penjumlahan dengan menggunakan
koofisien beban. Rumus penggabungan dapat didefinisikan sebagai berikut:
α=0 .15 α1�0 .25 α2�0. 4α3�0. 4α4
Nilai koofisien didapatkan dari seberapa besar beban tersebut
mempengaruhi dalam nilai heuristik yang didapat. Rumusan heuristik dapat
kita lihat pada tabel 3.1 di bawah ini.
38
Rumusan Ilustrasi Keterangan
Menganalisis
kandidat yang memiliki
tinggi cukup besar
untuk dihilangkan.
Menganalisis
kandidat yang memiliki
intesitas tepi yang besar
untuk tetap sebagai
kandidat plat
kendaraan.
Menganalisis luas
dari intensitas, semakin
besar nilai luas maka
semakin besar
kemungkinan bahwa
kandidat adalah sebagai
plat kendaraan.
Menganalisis
perbedaan
perbandingan dimensi
plat pada citra digital
α1=�yb0− y b1�
α3= 1
∑y=yb0
yb1
Py �y �
α4=�YX− 3�
α2=1
P y�ybm�
B 6162 PAV
Py(bm)
Yb0 Yb1
B 6162 PAV
39
dengan kondisi nyata.
Tabel 3.1 Rumusan heuristic plat nomor kendaraan.
3.2 . Rancangan Program
Pada bagian ini akan dijelaskan rincian dari perancangan program aplikasi yang
akan dibuat. Pertama dibuat flowchart dan sequence diagram untuk menggambarkan
alur dari langkah-langkah yang akan dijalankan program. Kemudian akan dibuat
rancangan untuk tampilan layar program aplikasi. Setelah itu, rancangan untuk modul-
modul yang akan digunakan olah program akan disusun.
3.2.1 Flowchart
Program aplikasi yang akan dibuat secara garis besar memiliki alur
sebagai berikut. Pengguna aplikasi akan langsung masuk ke layar utama.
Pengguna kemudian memilih file citra digital dari kendaraan bermotor yang
akan dicari plat nomor kendaraannya. Citra yang dipilih kemudian akan
ditampilkan dilayar utama. Pengguna kemudian dapat menekan tombol
Locate Plate yang akan mengaktifkan proses pencarian plat nomor
kendaraan. Area dari hasil proses akan langsung ditampilkan pula pada
halaman utama dalam bentuk area persegi. Hasil proses deteksi dapat
disimpan menggunakan tombol Save. Pengguna juga dapat melakukan
proses debuging dengan menelusuri satu per satu proses penditeksian plat
nomor kendaraan. Pada layar depan aplikasi terdapat tombol-tombol yang
merupakan bagian dari langkah-langkah penditeksian.
40
Masuk halaman utama
MULAI
Pilih dan buka file citra digital yang hendak
diproses
Citra digitalditampilkan
Masuk halaman utama
Pencarian plat nomorkendaraan
Citra hasilPemrosesanditampilkan
Simpan hasil ?
Ulangi prosesMenggunakan
Citra lain?
SELESAI
Ya
Tidak
Ya
Tidak
Gambar 3.11 Flowchart Diagram aplikasi penditeksian plat nomor secara umum
41
Gamba
r 3.12
Flowch
art
Diagra
m
proses
pencar
ian
letak
plat
nomor
kendar
aan.
3.2.2 R
a
n
c
a
n
g
a
n Layar
MULAI
Grayscale
Data citraditerima
Vertical edge detection
Horisontal projection
Rank fi ltering
VerticalPeak detection
VerticalBand selection
VerticalSlicing vertical
Grayscale
Horisontal edge detection
Vertical projection
Rank filtering
HorisontalPeak detection
HorisontalBand selection
HorisontalSlicing vertical
IterasiSelesai ?
Heuristic process
KandidatLebih dari 1?
Ya
SELESAI
Tidak
Tidak
Ya
Grayscale
Vertical projection
Rank fil ter ing
42
Sebelum program aplikasi dibuat, terlebih dahulu dibuat rancangan
layar sebagai cetak biru untuk pembuatan Graphical User Interface. Berikut
ini adalah rancangan untuk layar-layar yang ada pada program aplikasi.
3.2.2.1 Rancangan Layar Form Penditeksian Plat Nomor
Form ini adalah form utama, di mana program penditeksian plat nomor
kendaraan hanya memiliki 1 form.
Gambar 3.13 Rancangan form Penditeksian plat nomor kendaraan
3.2.2.2 Rancangan Layar About
Layar ini dibuat sebagai informasi tentang pembuat program aplikasi
dan informasi-informasi lainnya. Rancangan layar About dapat dilihat pada
Penditeksian Plat Nomor Kendaraan Dengan Metode ConvolutionFile
Result Image
Result Button
Open Application Result
Exit
V. Peak Search
V. Rank filter
V. Band Search
V. Band Split
V. Edge Detect H. Edge Detect
H. Rank filter
H. Peak Search
H. Band Search
H. Band Split
Greyscale
Heuristic filter
Locate Plate Save
Reset
H. Projection V. Projection
About
Debug Button
43
Gambar 3.15.
Gambar 3.14 Rancangan layar About
3.2.3 Rancangan Modul
Modul yang digunakan dalam program aplikasi ini terdiri atas 6 buah
modul, dengan rincian sebagai berikut.
▪ Modul Convolution Matrix
Modul ini merupakan modul yang akan digunakan sebagai tempat
data matriks beserta operasi-operasi matriks.
▪ Modul Filter
Modul ini merupakan modul yang berisikan digital image
processing, di antaranya proses grayscaling, horisontal edge
detection dan vertical edge detection.
▪ Modul Draw
Modul ini merupakan modul subclassing dari Qwidget,
subclassing ini digunakan untuk dapat mengakses metode
AboutProgram Penditeksian Plat Nomor Kendaraan menggunakan metode Convolution
Created by Syerwin Dharmawan (0600653354)
(2009-2010)
Close
44
protected yang ada dalam class Qwidget. Didalamnya terdapat
alokasi data pencitraan yang sudah dimanipulasi maupun yang
belum termanipulasi. Modul ini juga bertugas untuk menulis data
gambar ke atas kanvas form.
▪ Modul Vertical Calculation
Modul ini berfungsi sebagai penyimpan data grafik arah vertikal,
selain dari itu modul ini berfungsi juga untuk menghitung vertical
rank filter dan proses pencarian plate band arah vertikal.
▪ Modul Horizontal Calculation
Modul ini berfungsi sebagai penyimpan data grafik arah vertikal,
selain dari itu modul ini berfungsi juga untuk menghitung
horizontal rank filter dan proses pencarian plate band arah
horisontal.
▪ Modul Main Window
Modul ini berisikan pengkodean Graphic user interface dari
program. Modul ini yang mengatur proses signaling dari form
aplikasi ke modul-modul.
▪ Modul Analytic Window
Modul ini bertugas sebagai karier bagi widget draw. Dikarenakan
proses debug yang ada dapat memiliki lebih dari 1 kandidat, maka
harus ada yang dapat mengatur penampilan gambar secara
dinamis.