BAB 3 PERANCANGAN. ANPR Software. Image. Deteksi Posisi Plat Nomor. Segmentasi Plat Nomor. Neural Network Pengenal Karakter. Hasil

dokumen-dokumen yang mirip
BAB 3 IMPLEMENTASI SISTEM

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

Oleh: Riza Prasetya Wicaksana

BAB III ANALISIS DAN PERANCANGAN SISTEM. Dalam pengerjaan tugas akhir ini memiliki tujuan untuk mengektraksi

1 BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB 3 PENGENALAN KARAKTER DENGAN GABUNGAN METODE STATISTIK DAN FCM

BAB III PERANCANGAN SISTEM

Pengenalan Plat Nomor Mobil Menggunakan Metode Learning Vector Quantization

BAB 2 LANDASAN TEORI. metode yang digunakan sebagai pengawasan kendaraan yang menggunakan pengenalan

GLOSARIUM Adaptive thresholding Peng-ambangan adaptif Additive noise Derau tambahan Algoritma Moore Array Binary image Citra biner Brightness

Klasifikasi Kualitas Keramik Menggunakan Metode Deteksi Tepi Laplacian of Gaussian dan Prewitt

BAB 2 LANDASAN TEORI

Pengenalan Plat Nomor Berdasarkan Klasikasi K-Nearest Neighbor (KNN)

WEBSITE PERANCANGAN SCRAPBOOK DENGAN PEMOTONGAN GAMBAR OTOMATIS

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 3 ANALISA DAN PERANCANGAN SISTEM

3 BAB III METODE PENELITIAN

Konvolusi. Esther Wibowo Erick Kurniawan

BAB II LANDASAN TEORI

BAB 3 ANALISIS DAN PERANCANGAN SISTEM PROGRAM APLIKASI HANDS RECOGNIZER

BAB III PERANCANGAN SISTEM. Pada dewasa sekarang ini sangat banyak terdapat sistem dimana sistem tersebut

2 BAB II TINJAUAN PUSTAKA

BAB II DASAR TEORI. 2.1 Meter Air. Gambar 2.1 Meter Air. Meter air merupakan alat untuk mengukur banyaknya aliran air secara terus

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 3 PERANCANGAN SISTEM

BAB IV HASIL DAN PEMBAHASAN

BAB 3 METODOLOGI PENELITIAN. a. Spesifikasi komputer yang digunakan dalam penelitian ini adalah

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

Segmentasi Dan Pelabelan Pada Citra Panoramik Gigi

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

PENGEMBANGAN APLIKASI PERHITUNGAN JUMLAH OBJEK PADA CITRA DIGITAL DENGAN MENGGUNAKAN METODE MATHEMATICAL MORPHOLOGY

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

MKB3383 TEKNIK PENGOLAHAN CITRA Pemrosesan Citra Biner

BAB 2 LANDASAN TEORI

PERANCANGAN DAN PEMBUATAN APLIKASI UNTUK MENDESAIN KARTU UCAPAN

BAB III METODE PENELITIAN

1. BAB I PENDAHULUAN Latar Belakang

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM APLIKASI

IDENTIFIKASI AWAL PLAT NOMOR MOBIL MENGGUNAKAN PROGRAM KONVENSIONAL SEBAGAI LANGKAH AWAL PENGGUNAAN JARINGAN SARAF TIRUAN

BAB 3 PERANCANGAN PROGRAM. objek, analisis blob, SMS service, dan video saving. Deteksi objek adalah proses untuk

BAB 3. ANALISIS dan RANCANGAN. eigenfaces dan deteksi muka dengan color thresholding akan mempunyai proses

APLIKASI DETEKSI MIKROKALSIFIKASI DAN KLASIFIKASI CITRA MAMMOGRAM BERBASIS TEKSTUR SEBAGAI PENDUKUNG DIAGNOSIS KANKER PAYUDARA

BAB 2 LANDASAN TEORI

PENDETEKSI TEMPAT PARKIR MOBIL KOSONG MENGGUNAKAN METODE CANNY

BAB III METODE PENELITIAN. menjawab segala permasalahan yang ada dalam penelitian ini.

BAB 3 ANALISIS DAN PERANCANGAN

1. BAB I PENDAHULUAN Latar Belakang

BAB 2 LANDASAN TEORI. Teknologi pengenalan teks merupakan teknologi yang mampu mengenali teks

BAB 3 ANALISA DAN PERANCANGAN

FAKULTAS TEKNIK (FT) PROGRAM TEKNIK INFORMATIKA UNIVERSITAS NUSANTARA PGRI KEDIRI 2016

KLASIFIKASI TELUR AYAM DAN TELUR BURUNG PUYUH MENGGUNAKAN METODE CONNECTED COMPONENT ANALYSIS

BAB II LANDASAN TEORI

PEMANFAATAAN BIOMETRIKA WAJAH PADA SISTEM PRESENSI MENGGUNAKAN BACKPROPAGATION NEURAL NETWORK

BAB 2 LANDASAN TEORI

DETEKSI GERAK BANYAK OBJEK MENGGUNAKAN BACKGROUND SUBSTRACTION DAN DETEKSI TEPI SOBEL

UNIVERSITAS BINA NUSANTARA ANALISIS DAN PERANCANGAN SISTEM PENGENAL KARAKTER PADA PLAT NOMOR KENDARAAN BERMOTOR DENGAN PENDEKATAN LOGIKA FUZZY

UNIVERSITAS BINA NUSANTARA ANALISIS DAN PERANCANGAN PENGENALAN SIDIK JARI DENGAN METODE BIDIRECTIONAL ASSOCIATIVE MEMORY

Model Sistem Akses Tempat Parkir Berdasarkan Pengenalan Plat Nomor Kendaraan. Andry Jonathan ( )

pbab 4 IMPLEMENTASI DAN EVALUASI PROGRAM APLIKASI uji coba terhadap program aplikasi pengenalan plat nomor kendaraan roda empat ini,

BAB 2 LANDASAN TEORI

Pengenalan Benda di Jalan Raya dengan Metode Kalman Filter. Roslyn Yuniar Amrullah

BAB II LANDASAN TEORI. Pengolahan Citra adalah pemrosesan citra, khususnya dengan menggunakan

BAB 3 METODOLOGI PENELITIAN

BAB 3 PERUMUSAN OBJEK RANCANGAN. Berikut adalah analisis masalah dan kebutuhan dalam perancangan aplikasi

Pendeteksian Tepi Citra CT Scan dengan Menggunakan Laplacian of Gaussian (LOG) Nurhasanah *)

SAMPLING DAN KUANTISASI

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB III METODE PENELITIAN. ada beberapa cara yang telah dilakukan, antara lain : akan digunakan untuk melakukan pengolahan citra.

BAB III ANALISIS DAN PERANCANGAN

PERANCANGAN SISTEM PENGENALAN DAN PENYORTIRAN KARTU POS BERDASARKAN KODE POS DENGAN MENGGUNAKAN ARTIFICIAL NEURAL NETWORK

ANALISIS SISTEM PENDETEKSI POSISI PLAT KENDARAAN DARI CITRA KENDARAAN

APLIKASI PENGENALAN PLAT NOMOR KENDARAAN BERMOTOR MENGGUNAKAN METODE LEARNING VECTOR QUANTIZATION

SISTEM REKOGNISI KARAKTER NUMERIK MENGGUNAKAN ALGORITMA PERCEPTRON

DETEKSI PLAT KENDARAAN MENGGUNAKAN HOG DAN LVQ. Muhammad Imron Rosadi 1

TEKNIK PENGOLAHAN CITRA. Kuliah 4 Neighborhood Processing. Indah Susilawati, S.T., M.Eng.

BAB 4 HASIL DAN PEMBAHASAN

Bab III Perangkat Pengujian

By Emy. 2 of By Emy

ANALISIS PERBANDINGAN METODE PREWITT DAN CANNY UNTUK IDENTIFIKASI IKAN AIR TAWAR

BAB IV HASIL PENELITIAN DAN PEMBAHASAN. 4.1 Pengembangan Sistem Pengenalan Wajah 2D

Penggunaan Jaringan Syaraf Tiruanuntuk Membaca Karakter pada Formulir Nilai Mata Kuliah

PERANCANGAN SISTEM PENGENAL DIGIT ANGKA METER AIR MENGGUNAKAN JARINGAN SYARAF TIRUAN KOHONEN

BAB 3 PERANCANGAN. Input Data, Pre-processing, Feature Extraction, Training, dan Verification. Pada tahap

Pengenalan Karakter Sintaktik menggunakan Algoritma Otsu dan Zhang-Suen

BAB IV ANALISA. 4.1 Analisa teknik pengolahan citra

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI. dilakukan oleh para peneliti, berbagai metode baik ekstraksi fitur maupun metode

BAB III METODE PENELITIAN. dan bahan, agar mendapatkan hasil yang baik dan terstruktur. Processor Intel Core i3-350m.

BAB II LANDASAN TEORI

2.Landasan Teori. 2.1 Konsep Pemetaan Gambar dan Pengambilan Data.

PERANCANGAN APLIKASI PENGURANGAN NOISE PADA CITRA DIGITAL MENGGUNAKAN METODE FILTER GAUSSIAN

BAB 2 TINJAUAN PUSTAKA 2.1 Dasar Teori Citra Digital

Penghitung Kendaraan Menggunakan Background Substraction dengan Background Hasil Rekonstruksi

BAB II LANDASAN TEORI...

BAB III METODE YANG DIUSULKAN

SEGMENTASI CITRA CT SCAN TUMOR OTAK MENGGUNAKAN MATEMATIKA MORFOLOGI (WATERSHED) DENGAN FLOOD MINIMUM OPTIMAL

BAB IV ANALISA DAN PERANCANGAN

Pertemuan 2 Representasi Citra

Implementasi Edge Detection Pada Citra Grayscale dengan Metode Operator Prewitt dan Operator Sobel

Transkripsi:

48 BAB 3 PERANCANGAN 3.. Gambaran Umum ANPR Software Kamera Digital Image Deteksi Posisi Plat Nomor Segmentasi Plat Nomor Neural Network Trainer Pasangan Data Training Neural Network Pengenal Karakter Modul Training Pengenal Karakter Hasil Gambar 3. Diagram proses ANPR

49 Secara garis besar proses kerja Aplikasi Pengenalan Plat Nomor Kendaraan Bermotor ini dapat digambarkan sebagai berikut :. Proses pencarian posisi plat nomor, untuk mendapatkan posisi plat nomor kendaraan dan melakukan pemotongan pada plat nomor tersebut. Proses ini terdiri dari :.. Image Enhancement.2. Thresholding.3. Pencarian Posisi Plat Dengan Operasi Morfologi.4. Verifikasi dan Pemotongan Plat 2. Proses segmentasi karakter plat nomor, untuk melakukan pemotongan masing masing karakter pada plat nomor. Proses ini terdiri dari : 2.. Plat Enhancement dan Thresholding 2.2. Connected Component Labeling 2.3. Pemotongan Karakter 3. Proses pengenalan karakter, untuk mendapatkan hasil pengenalan masing masing karakter di plat, meliputi : 3.. Perancangan Neural Network (BAM) 3.2. Proses Pengenalan/Pemanggilan (Recalling) Input diperoleh dari pengambilan gambar (image) melalui kamera digital, berupa gambar depan mobil yang mengandung plat nomor (Gambar 3.2). Gambar ini yang menjadi input awal bagi proses-proses selanjutnya

5 Pada implementasinya aplikasi ini akan digabung dengan sensor dan kamera digital sehingga pengambilan gambar akan dilakukan secara otomatis melalui pengaturan sensor. Akan tetapi karena dalam pembuatan aplikasi tidak didukung fasilitas perangkat keras tersebut, maka sebagai langkah awal dilakukan pengambilan gambar sampel menggunakan kamera digital secara manual. Gambar sampel yang diperoleh ini akan dtransfer ke komputer dengan format file JPEG dan ukuran 64 x 48 pixel. Gambar 3.2 Gambar input dari kamera digital 3.2. Proses Pencarian Posisi Proses ini bertujuan untuk menghasilkan image plat untuk pemrosesan selanjutnya 3.2.. Image Enhancement Gambar input yang diperoleh dari kamera digital merupakan gambar kasar yang masih mengandung tingkat noise yang tinggi (Gambar 3.2), untuk itu tahapan awal yang perlu dilakukan adalah peningkatan kualitas image, dimana proses ini bertujuan untuk

5 memperjelas gambar agar diperoleh gambar yang efisien untuk proses pencarian lokasi plat nomor. Untuk meningkatkan ketajaman gambar masukan maka dilakukan Contrast Stretching pada gambar. Proses ini akan meningkatkan ketajaman gambar untuk gambar yang buram, sementara untuk gambar yang sudah terang proses ini tidak akan berpengaruh banyak. Proses selanjutnya adalah mengaplikasikan filter Gaussian untuk melakukan noise removal atau bluring untuk memperhalus image agar mempermudah proses ekstraksi sisi dengan menggunakan filter Laplacian. Proses ini dikenal sebagai metode LoG (Laplacian of Gaussian) dalam deteksi sisi. Filtering dilakukan dengan cara melakukan konvolusi pada image dengan filter Gausian dan Laplacian. Filter Gaussian yang digunakan adalah filter 3 x 3 sebagai berikut :.277777777777778..277777777777778..444444444444444..277777777777778..277777777777778 Sedangkan Filter Laplacian yang digunakan adalah filter 3 x 3 sebagai berikut : 4 4-2 4 4 Algoritma untuk melakukan konvolusi dengan filter 3 x 3 adalah : PROCEDURE Konvolusi Nilai_koefisien = jumlah nilai array_filter IF Nilai_koefisien = THEN Nilai_koefisien = END IF Set i =

52 DOWHILE i < tinggi_image Set j = DOWHILE j < lebar_image Pixel_Image[i,j] = (Jumlah Perkalian masing masing elemen filter dengan Pixel_Image dengan Pixel_Image[i,j] sebagai titik tengah) dibagi Nilai_koefisien IF Pixel_Image[i,j] > 255 THEN Pixel_Image[i,j] = 255 ELSE IF Pixel_Image[i,j] < THEN Pixel_Image[i,j] = END IF j = j + END DO i = i + END DO END PROCEDURE Setelah dilakukan konvolusi ini akan diperoleh image dengan sisi-sisi objek yang telah terdeteksi (Gambar 3.3). Digunakan pendeteksian sisi objek dikarenakan plat yang akan dikenali memiliki beberapa kombinasi warna (putih-hitam, putih-merah, dan hitam-kuning). Dengan menggunakan sisi objek maka proses thresholding kemudian tidak akan dipengaruhi oleh warna plat, sehingga jenis plat manapun yang diproses akan terdeteksi sisi-sisi karakter sebagai sebagai kumpulan karakter.

53 Gambar 3.3 Gambar setelah dilakukan deteksi sisi 3.2.2. Thresholding Proses selanjutnya adalah melakukan thresholding pada image yang diperoleh dari proses konvolusi dan pada image masukan awal. Thresholding dilakukan untuk memperoleh Binary Image. Metode thresholding yang digunakan adalah metode Automatic Threshoding yang dinamakan Otsu Method. Metode Otsu mencari nilai threshold berdasarkan minimalisasi varian dalam grup dari dua kelompok pixel yang dipisahkan oleh operator thresholding. Sebelum melakukan pencarian nilai threshold, Histogram nilai keabuan dari gambar harus dibuat dahulu. Berikut ini adalah algoritma pembuatan histogram nilai keabuan dari suatu grayscale image. PROCEDURE Hitung_Histogram Set i = DOWHILE i < tinggi_image Set j = DOWHILE j < lebar_image

54 Histo_data[Pixel_Image[i,j]] = Histo_data[Pixel_Image[i,j]] + j = j + END DO i = i + END DO END PROCEDURE PROCEDURE Hitung_Nilai_T_Otsu Nilai_Threshold = Gmax = nilai keabuan tertinggi dalam histogram Gmin = nilai keabuan terendah dalam histogram Set sum dan csum awal =. Set n = Set k = DOWHILE k <= 255 Sum = Sum ditambah dengan k * data_histo[k] n = n ditambah dengan data_histo[k] k = k+ END DO Set nilai awal n = dan fmax = - Set k = DOWHILE k <= 255 n = n + data_histo[k] IF n = THEN Skip statement di bawah dan lanjutkan perulangan END IF n2 = n - n IF n2 = THEN Keluar perulangan END IF csum = csum + ( k * data_histo[k] )

55 m = csum / n; m2 = (sum - csum) / n2; sb = n * n2 *(m - m2) * (m - m2); IF sb < fmax THEN fmax = sb; thresholdvalue = k; END IF k= k + END DO END PROCEDURE Setelah menemukan nilai threshold, maka dilakukan threshoding pada image tersebut, dimana nilai pixel-pixel image yang kurang dari nilai threshold akan dijadikan hitam dan nilai pixel-pixel image yang lebih dari nilai threshold akan dijadikan putih. Setelah dilakukan threshoding maka gambar akan menjadi Binary Image (Gambar 3.4). Kedua image ini akan digabung dengan operasi OR untuk memperoleh image untuk proses selanjutnya. Gambar 3.4 Gambar setelah dilakukan thresholding

56 3.2.3. Pencarian Posisi Plat Dengan Operasi Morphologi Setelah diperoleh Binary Image langkah selanjutnya adalah pencarian lokasi plat nomor dalam image. Pencarian lokasi plat nomor ini dilakukan dengan memanfaatkan fitur plat nomor yaitu : Plat Nomor terdiri dari deretan karakter alfanumerik, karakter terdiri dari objek tipis berupa garis dan karakter pada plat umumnya memiliki perbedaan intensitas yang signifikan dengan latar belakangnya. Operasi Morfologi pada Binary Image yang disebut top-hat dapat digunakan untuk mendeteksi objek-objek kecil tersebut. Dalam proses morfologi terhadap image perlu ditentukan sejumlah Structuring Element (SE) yang cocok untuk aplikasi ini. Melalui penelitian dari sejumlah data input yang diperoleh, ukuran image masukan serta posisi pengambilan gambar maka ditentukan SE yang digunakan dalam proses pencarian posisi plat nomor adalah sebagai berikut :. SE, berupa bujur sangkar 5 x 5 pixel untuk menyatakan suatu objek yang ukurannya lebih besar dari ukuran karakter plat maksimal. 2. SE2, berupa garis horizontal dengan lebar 7 pixel untuk menyatakan jarak antar karakter maksimal. 3. SE3, berupa garis vertikal dengan tinggi 3 pixel untuk menyatakan tinggi plat minimal. 4. SE4, berupa garis vertikal dengan tinggi 75 pixel untuk menyatakan tinggi plat maksimal. 5. SE5, berupa garis horizontal dengan lebar 3 pixel untuk menyatakan lebar plat minimal.

57 Langkah langkah yang dilakukan dalam proses pencarian posisi plat nomor dapat dijelaskan sebagai berikut :. Jika Image mobil yang telah melalui proses thresholding sebelumnya disebut sebagai I, maka lakukan closing terhadap I dengan SE (Gambar 3.5), kemudian dilakukan kurangkan dengan I sebelum proses closing maka diperoleh top-hat dari image tersebut (Gambar 3.6). Gambar 3.5 Hasil Closing (I, SE) Gambar 3.6 Hasil TopHat = (Closing (I,SE) I)

58 2. Proses selanjutnya adalah menggabungkan karakter-karakter dalam plat nomor menjadi suatu kotak seukuran plat nomor tersebut. Untuk itu dilakukan closing terhadap image dengan SE2, diperoleh image dengan karakter-karakter di plat nomor yang sudah tergabung menjadi suatu kotak (Gambar 3.7). Gambar 3.7 Hasil Closing dengan SE2 3. Proses selanjutnya adalah menghapus objek yang lebih kecil dari tinggi plat. Untuk melakukan ini maka dilakukan Opening terhadap Image dengan SE3, diperoleh gambar 3.8.

59 Gambar 3.8 Hasil Opening dengan SE3 4. Kemudian untuk menghilangkan objek yang lebih besar dari plat dilakukan Opening pada image dengan SE4, hasilnya dikurangi dengan Image sebelumnya, diperoleh gambar 3.9. Gambar 3.9 Hasil Opening dengan SE4 dikurangi gambar 3.8

6 5. Terakhir dengan melakukan Opening dengan SE5 maka objek dengan lebar kurang dari plat akan terhapus. Melalui proses ini diperoleh image dengan satu objek yang merupakan plat yang kita cari (gambar 3.). Gambar 3. Hasil akhir setelah dilakukan Opening dengan SE5 Untuk kasus kasus tertentu penggunaaan cara ini dapat mendeteksi objek plat lebih dari satu. Seperti pada gambar 3.. Gambar 3. Hasil pencarian lokasi yang tidak sempurna

6 (a) E : External Corner (b) I : Internal Corner Gambar 3.2 Matriks 2 x 2 untuk menghitung jumlah objek Untuk menghitung jumlah objek digunakan matrik masking 2 x 2 pada gambar 3.2. Penggunaan matriks tersebut adalah dengan menggunakan dua fungsi Internal_Match dan External_Match. Algoritma perhitungan objek akan melewati semua posisi dalam image. Jika posisi current pixel dinyatakan dengan [r,c] maka fungsi Internal_Match akan mengembalikan nilai TRUE jika sub image dengan posisi kiri atas [r,c] sama dengan salah satu matriks Internal Corner (pada gambar 3.2b). Begitu juga dengan fungsi Exernal_Match akan membandingkan sub image dengan matriks matriks External Corner (pada gambar 3.2a). Algoritma untuk melakukan perhitungan jumlah objek adalah sebagai berikut : PROCEDURE Count_Object Set E = Set I =

62 DOWHILE tinggi image DOWHILE selama lebar image IF external_match pada posisi ini THEN E ditambah END IF IF internal_match pada posisi ini THEN I ditambah satu END IF END DO END DO Jumlah_objek adalah (E I) / 4 END PROCEDURE Untuk mengatasi kasus ini maka perlu penanganan lebih lanjut, dimana jika objek yang diperoleh lebih dari satu maka ambil objek dengan rasio tinggi dan lebar yang paling mendekati rasio plat nomor dan diutamakan objek yang berada pada posisi paling bawah. 3.2.4. Verifikasi dan Pemotongan Gambar Plat Setelah memperoleh objek plat, maka posisi plat diperoleh dengan melacak batas kiri atas dan kanan bawah dari objek tersebut. Posisi kiri atas dapat dicari dengan menelusuri image dari kiri atas sampai ditemukan pixel hitam, dan posisi kanan bawah dapat dicari dengan menelusuri image dari batas kanan bawah image sampai ditemukan pixel hitam. Kemudian dilakukan pemotongan plat nomor berdasarkan posisi ini. Perhatikan jika karakter terakhir dari plat mengandung goresan horizontal ke kanan (contohnya huruf L, P) maka karakter ini bisa terpotong (seperti pada gambar 3.3), yang dapat menyebabkan kesalahan pengenalan nantinya. Untuk mengatasi masalah ini maka dilakukan verifikasi plat, menggunakan teori connected component 8 arah.

63 Gambar 3.3 Plat yang terpotong tidak sempurna Proses verifikasi plat dimulai dengan mencari pixel hitam pada masing masing titik sudut plat. Jika ditemukan maka lakukan penulusuran connected component sampai tidak ditemukan pixel yang terhubung dengan titik ini. Dan untuk membatasi penelusuran agar posisi plat tidak diperluas terlalu jauh (yang kadang disebabkan karena gangguan noise pada plat), maka ditetapkan batas perluasan yaitu 5 pixel untuk posisi horizontal dan 3 pixel untuk posisi vertikal. Berikut ini adalah algoritma untuk melakukan verifikasi plat. PROCEDURE Verifikasi_Plat // Untuk kiri atas Cari posisi pixel hitam di kiri atas plat (x, y) DOWHILE (ada pixel yang terhubung dengan pixel ini pada arah N, NW, W dan SW) dan (x, y dalam batas perluasan) Set posisi x, y ke pixel yang terhubung ini END DO // Untuk kiri bawah Cari posisi pixel hitam di kiri bawah plat (x2, y2) DOWHILE (ada pixel yang terhubung dengan pixel ini pada arah S, SW, W dan NW) dan (x2, y2 dalam batas perluasan) Set posisi x2, y2 ke pixel yang terhubung ini END DO // Untuk kanan atas

64 Cari posisi pixel hitam di kanan atas plat (x3, y3) DO WHILE (ada pixel yang terhubung dengan pixel ini pada arah N, NE, E dan SE) dan (x3, y3 dalam batas perluasan) Set posisi x3, y3 ke pixel yang terhubung ini END DO // Untuk kanan bawah Cari posisi pixel hitam di kanan bawah plat (x4, y4) DOWHILE (ada pixel yang terhubung dengan pixel ini pada arah S, SE, E dan NE) dan (x4, y4 dalam batas perluasan) Set posisi x4, y4 ke pixel yang terhubung ini END DO SET batas_atas_plat = min (batas_atas_plat, y, y2) SET batas_bawah_plat = max (batas_ bawah _plat, y, y2) SET batas_kiri_plat = min (batas_ kiri _plat, x, x2) SET batas_kanan_plat = max (batas_ kanan _plat, x, x2) END PROCEDUR Setelah verifikasi posisi plat maka dilakukan pemotongan plat berdasar batas baru tersebut. Gambar yang dipotong adalah gambar inputan awal dari camera digital (gambar 3.2). Untuk menyeragamkan ukuran plat, maka setelah pemotongan dilakukan penyekalaan plat ke tinggi 65 pixel, sedangkan lebarnya akan diskalakan sesuai perbandingan tinggi image yang terpotong dengan 65, dengan rumus : platw = W x ( 65 / H ) Dimana W dan H adalah lebar dan tinggi image plat sebelum diskalakan. Ukuran pixel ini dipilih dengan pertimbangan setelah melakukan analisis dari data sampel masukan bahwa ukuran ini cukup besar untuk mempertahankan bentuk karakter.

65 Gambar 3.4 Hasil pemotongan plat setelah dilakukan verifikasi Gambar 3.5 Plat setelah diskala ke tinggi 65 pixel 3.3. Proses Segmentasi Karakter Setelah diperoleh image plat lengkap hasil pemotongan dari proses sebelumnya, maka proses selanjutnya yang perlu dilakukan adalah proses segmentasi karakter-karakter dalam plat tersebut. Segmentasi dilakukan dengan metode connected component labeling. 3.3.. Plat Enhancement dan Thresholding Karena gambar plat yang diproses disini merupakan potongan plat yang diperoleh dari gambar input langsung dari kamera digital, maka perlu dilakukan lagi peningkatan kualitas image seperti sebelumnya. Bedanya peningkatan kualitas dilakukan dengan cara yang lebih spesifik pada plat. Sama dengan pada proses pencarian lokasi, maka dilakukan noise removal dengan menggunakan filter Gaussian untuk mengurangi noise pada image. Karena ada kemungkinan image yang diperoleh agak kabur (blur), maka untuk meningkatkan ketajaman image supaya karakter-karakter pada plat lebih mudah disegmentasi dilakukan sharpening menggunakan filter :

66 - - 7 - - Kemudian dilakukan thresholding untuk mengkonversi ke Binary Image, karena plat yang menjadi input bervariasi, maka proses thresholding disini mengalami sedikit perubahan, dimana setelah mencari nilai threshold maka akan dicek dulu jumlah pixel yang lebih dari nilai threshold (pup) dan yang kurang dari nilai threshold (pdown), jika pup lebih banyak dari pdown maka pup dan dianggap sebagai background, dan dalam proses thresholding pixel-pixel yang lebih dari nilai threshold akan dijadikan hitam, begitu juga sebaliknya. Dengan ini maka tidak peduli plat masukan termasuk jenis warna plat yang mana, akan diperoleh plat dengan karakter berwarna hitam dan latar belakang putih. 3.3.2. Connected Component Labeling Segmentasi dilakukan dengan cara melakukan connected component labeling pada plat nomor yang telah melalui proses thresholding, sehingga masing-masing region (kandidat yang akan menjadi karakter) pada plat memiliki label yang berbeda. Kemudian region-region dengan label berbeda ini akan dipotong dari plat. Selanjutnya karena region yang diperoleh dari connected component labeling tidak semuanya merupakan karakter plat yang diinginkan maka dilakukan pemrosesan lebih lanjut untuk menghilangkan region yang bukan karakter. Region yang bukan karakter dapat terdetekasi, hal ini bisa disebabkan karena pemotongan plat yang tidak sempurna umumnya berupa garis plat yang ikut terpotong, atau noise yang memang terdapat pada plat itu sendiri seperti baut pada plat, kotoran/bekas cat pada plat dan

67 noise-noise lain yang tidak diharapkan yang lolos dari image enhancement pada tahap awal.. Penghilangan noise ini dilakukan dengan cara menyeleksi kandidat kandidat karakter tersebut, dimana region dengan ketinggian kurang dari ¼ tinggi minimal plat (yaitu sebesar 25 pixel) akan dibuang. Connected Component Labeling dilakukan dengan cara menelusuri sisi region menggunakan metode Boundary Following, untuk menelusuri pixel pixel sisi yang saling berhubungan dalam satu objek menggunakan sistem neigborhood 8 arah. Kemudian dilakukan pengisian objek (filling boundary), sehingga untuk masing-masing objek akan ditandai dengan labelnya sendiri. Sebagai langkah awal maka label image diberi nilai untuk latar belakang, dan region yang belum ditandai diberi label -. Algoritma untuk memberi label pada image adalah : PROCEDURE Boundary_Following Cari pixel awal s untuk region dengan cara men-scan image dari atas-bawah dan kiri-kanan Set current pixel c = s Set pixel di sebelah W dari s sebagai b Asumsikan pixel 8-neigbour dari c, dimulai dari b dalam urutan arah jarum jam sebagai n, n2,, n8. DO Cari n i, dimana n terletak dalam region Set c = n i dan b = n i- Set label pixel pada posisi tersebut manjadi label_no WHILE c!= s END PROCEDURE

68 PROCEDURE Region_Filling Untuk setiap baris pada image lakukan Cari posisi kiri dari region yang berlabel label_no Cari posisi kanan dari region yang berlabel label_no IF pixel pada posisi ini bernilai hitam THEN Set label image menjadi label_no END IF END PROCEDURE PROCEDURE Connected_Component_Labeling Set nilai awal label_no = DOWHILE masih ada region yang belum diberi label lakukan Label_no = label_no + Boundary_Following Region_Filling END DO END PROCEDURE Gambar 3.6 Region setelah dilakukan Boundary Following dan Filling 3.3.3 Pemotongan Karakter Setelah masing-masing karakter berhasil dipisahkan dan dilacak posisinya, proses selanjutnya adalah dilakukan pemotongan karakter-karakter tersebut. Sebelum diteruskan ke proses selanjutnya maka image karakter ini akan ditingkatkan lagi kualitasnya dengan melakukan cara opening dan closing dengan SE berukuran 3 x 3 pixel pada masing

69 masing karakter yang telah terpotong. Opening dilakukan untuk memperhalus tepi-tepi karakter, sementara closing dilakukan untuk menutupi celah-celah yang ada pada karakter. Seperti pada pemotongan plat, maka hasil pemotongan karakter ini juga akan mengalami penyekalaan. Karakter karakter ini diskalakan ke ukuran tinggi 57 pixel. Lebarnya disesuaikan dengan skala tingginya, dengan rumus : scalew = charaw * (57 / charah) Dimana charah dan charaw adalah tinggi dan lebar karakter sebelum diskalakan. Untuk karakter yang scalew-nya lebih dari 2 pixel akan dijadikan 35 pixel. Sehingga karakterkarakter selain I dan akan diskalakan ke ukuran seragam dengan tetap mempertahankan bentuk karakter I dan. Untuk membuat karakter I dan ke ukuran seragam seperti karakter-karakter lain maka dibuat binary image baru dengan ukuran 57 x 35 dengan karakter yang lebarnya kurang dari 2 pixel diletakkan di tengah binary image tersebut. Sehingga terakhir akan didapatkan binary image karakter dengan ukuran seragam 57 x 35 pixel dengan tetap mempertahankan bentuk semua karakter. 3.4. Proses Pengenalan Karakter Selanjutnya, setelah karakter-karakter pada plat berhasil dilacak dan dipotong. Maka masing masing karakter ini akan diinputkan ke suatu Neural Network yang sudah di-training. Hasil dari pemanggilan dengan input masing-masing karakter ke neural network akan diperoleh pengenalan karakter tersebut..

7 3.4.. Perancangan Neural Network (BAM) Perancangan Neural Network dilakukan terpisah dari Proses Pengenalan Plat Nomor. Neural Network yang dipakai disini adalah Neural Network jenis Bidirectional Associative Memory, dimana hasil dari training Neural Network ini akan disimpan dalam suatu matriks Weight (Bobot). Training pada BAM ini akan diakukan dengan menggunakan 36 pasangan pola yang mewakili masing-masing karakter alfanumerik (A sampai Z dan sampai 9). Masing masing pola didapat dengan cara melakukan pemotongan ke 36 karakter dari plat nomor yang sempurna dan bebas noise, pola-pola ini dapat dilihat pada lampiran. Semua karakter yang akan menjadi pola ini dikonversi menjadi binary image yang bernilai dan serta diskalakan ke ukuran 38 x 32 pixel. Untuk mendapatkan vektor yang bipolar, maka saat mengkonversi image menjadi vektor training nilai pada pi-+xel akan dijadikan - pada vektor sementara nilai tetap. Karena kapasitas memori BAM yang sangat kecil, maka untuk meningkatkan kapasitas pengenalan ke-36 pola ini BAM dirancang dengan menggunakan metode Dummy Augmentation Encoding. Dummy Augmentation dilakukan dengan menambahkan vektor dummy untuk masing masing vektor X. Vektor dummy merupakan vektor bipolar orthogonal yang berukuran 64 x 32 juga yang dibentuk menggunakan salah satu building block dasar untuk pola orthogonal seperti pada gambar 3.7. Vektor vektor orthogonal dibentuk secara recursive menggunakan pola sebagai berikut : c Z A Z A Z A Z A

7 Sehingga diperoleh pola orthogonal berukuran 248 x 248, karena pasangan pola yang dilatih ada 36 pola. Maka hanya 36 baris awal dari pola orthogonal ini yang akan diambil sebagai dummy. Kemudian vektor-vektor dummy ini akan disimpan dalam file D.pat sampai D36.pat. Setelah masing-masing vektor dummy ini ditambahkan ke setiap vektor X maka diperoleh 36 pola karakter (pola X) bipolar yang berukuran 2 x 32 yang akan disimpan pada file X.pat sampai X36.pat. Gambar 3.7 Salah satu building block dasar pola orthogonal Setiap pola tersebut tentunya harus memiliki pasangan sebagai output yang diharapkan. Vektor pasangan ini merupakan identitas yang unik untuk masing masing karakter. Untuk melakukan training terhadap BAM (menghitung matriks weight ), maka setiap karakter akan dipasangkan dengan vektor berukuran 5 x 32 yang berupa vektor bipolar orthogonal yang unik untuk masing masing karakter. Vektor-vektor orthogonal ini diperoleh dengan cara seperti pada pembuatan pola othogonal dummy. Akhirnya diperoleh vektor pasangan (pola Y) dengan ukuran 5 x 32 yang disimpan pada file Y.pat sampai Y36.pat.

72 Setelah diperoleh pasangan pola X dan Y, maka langkah selanjutnya adalah menghitung matriks bobot W. Untuk menghitung W, X dan Y akan diubah menjadi matrix baris sehingga diperoleh matrix X berukuran x 3264 (n = 3264) dan matrix Y berukuran x 6 (m = 6). Matriks karakter yang berukuran x 3264 ini akan dikalikan dengan transpos pasangannya yang berukuran 6 x, sehingga diperoleh matriks bobot dengan ukuran n x m = 3264 x 6. Ukuran ini dianggap cukup untuk menyimpan ke 36 pasangan pola karakter tesebut, dimana berdasarkan teori Wang, kapasitas penyimpanan suatu BAM C min(n,m). Selanjutnya penggunaan strategi Multiple Training Encoding dalam BAM, menyebabkan sedikit modifikasi pada perhitungan matriks bobot BAM pada umumnya. Matriks W dihitung dengan menggunakan rumus : m W = QiX T i Y i t = Dimana Qi adalah vektor yang berisi jumlah berapa kali suatu pola akan di-training. Misalnya jika pola kedua akan ditraining sebanyak 2 kali maka Q 2 = 2. Dari penelitian maka pada pengenalan ke 36 pola karakter ini maka vektor Q yang digunakan dalam melakukan training adalah sebagai berikut : Q = {5,6,5,5,6,5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,5,5,5,6,5,5,5,7} Matrik bobot yang telah di-training ini yang akan digunakan untuk mengenali karakter-karakter yang telah disegmentasi. 3.4.2. Proses Pengenalan / Pemanggilan (Recalling BAM) Untuk melakukan pengenalan karakter, maka masing masing karakter yang diperoleh dari hasil segmentasi akan dijadikan input untuk BAM ini. Setiap karakter akan

73 diskalakan ke ukuran 38 x 32 supaya sesuai dengan ukuran pola X. Kemudian binary image karakter ini akan diubah menjadi vektor bipolar dengan mengubah pixel menjadi -. Hasil konversi ke vektor akan diperoleh vektor input (X) dengan ukuran 38 x 32 (sesuai dengan ukuran pixel image karakter yang sudah diskalakan ke ukuran ini sebelumnya). Untuk melakukan pemanggilan/pengenalan, tiap tiap vektor input (X i, i = p, dimana p adalah jumlah karakter yang berhasil disegmentasi) akan di-recall. Karena penggunaan dummy dalam training BAM ini maka untuk melakukan recall satu karakter, karakter input akan ditambahkan dengan masing-masing dummy dan recall dilakukan secara terpisah untuk masing-masing dummy. Untuk mempercepat waktu proses maka tidak semua XD diproses, tetapi dengan mencari Hamming Distance (HD) antara pola masukan dengan pola yang tersimpan, hanya 3 XD dengan HD terkecil saja yang akan diproses. Dengan demikian diperoleh karakter-karakter input yang telah di-augment (XD ij, i = p, j = - 3). Recalling dilakukan dengan mengalikan XD ij dengan matriks bobot W hasil training sebelumnya. Hasil perkalian dengan W akan diperoleh output berupa vektor pasangannya (Y ij ). Kemudian Y ij ini akan dioperasikan lagi dengan W untuk memperoleh X ij, dan X ij akan dioperasikan dengan W untuk memperoleh Y ij. Proses ini dilakukan n sampai tercapai keadaan konvergen dimana X ij = X n- n ij dan Y ij = Y n- ij.. Kemudian data X n i (X terakhir dari proses recalling tanpa dummy) akan dilakukan perbandingan dengan pola yang tersimpan (sesuai dengan dummy yang ditambahkan) untuk mencari Hamming Distance dengan pola-pola tersebut. Output pengenalan berupa karakter dengan Hamming Distance minimal.

74