18
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.

2010-2-00420-MTIF bab 3

Embed Size (px)

Citation preview

Page 1: 2010-2-00420-MTIF bab 3

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.

Page 2: 2010-2-00420-MTIF bab 3

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.

Page 3: 2010-2-00420-MTIF bab 3

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.

Page 4: 2010-2-00420-MTIF bab 3

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.

Page 5: 2010-2-00420-MTIF bab 3

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

Page 6: 2010-2-00420-MTIF bab 3

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

Page 7: 2010-2-00420-MTIF bab 3

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

Page 8: 2010-2-00420-MTIF bab 3

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

Page 9: 2010-2-00420-MTIF bab 3

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

Page 10: 2010-2-00420-MTIF bab 3

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)

Page 11: 2010-2-00420-MTIF bab 3

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.

Page 12: 2010-2-00420-MTIF bab 3

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

Page 13: 2010-2-00420-MTIF bab 3

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.

Page 14: 2010-2-00420-MTIF bab 3

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

Page 15: 2010-2-00420-MTIF bab 3

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

Page 16: 2010-2-00420-MTIF bab 3

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

Page 17: 2010-2-00420-MTIF bab 3

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

Page 18: 2010-2-00420-MTIF bab 3

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.