BAB 3 ANALISIS DAN PERANCANGAN
3.1 Analisis Kebutuhan User Beberapa aplikasi pengenalan plat nomor sudah banyak digunakan di beberapa negara misalnya untuk penegakkan hukum oleh polisi (police enforcement). Sistem ini untuk di negara Jerman diberi nama TraffiCapture yang mulai digunakan pada tahun 2008. Negara Ukraina juga melakukan hal serupa yakni mengembangkan sistem yang diberi nama OLLI TECHNOLOGY oleh Departemen Inspeksi Lalu Lintas Negara. Negara Inggris juga telah melakukan penelitian untuk pengenalan plat nomor otomatis dan mulai digunakan sejak tahun 1997. (Wawrzyniak, H. K., 2002) LPR pertama kali diciptakan pada tahun 1976 pada Cabang Polisi Pembangunan Ilmiah di Inggris. Sistem prototipe bekerja pada tahun 1979, untuk menghasilkan sistem industri, pertama di EMI Electronics, dan kemudian pada Sistem Pengenalan Komputer (CRS) di Wokingham, Inggris. Sistem percobaan awal dikerahkan di jalan A1 dan di Terowongan Dartford. Penangkapan pertama melalui deteksi mobil curian dibuat pada tahun 1981. (Sorin Draghici, 2004) ALPR juga berkembang di negara Iran. Aplikasi ALPR di Negara ini dapat mendeteksi plat nomor kendaraan Iran yang mengandung huruf persia. Sistem ini diimplementasikan untuk TCT Company dan telah di tes pada 400 kendaraan di Iran. (A.Broumandnia, M., 2005) Automated License Plate Recognition (ALPR) tumbuh dalam penerimaan di seluruh dunia, karena karakteristik peningkatan kinerja dan pengakuan dari manfaat yang diberikan. Dalam istilah sederhana, ALPR melibatkan penggunaan kamera khusus
30
dan perangkat lunak yang mengenali plat, menangkap gambar dari plat, dan menafsirkan karakter dari plat menjadi data yang kemudian dapat digunakan untuk satu atau lebih tujuan. (Nelson,L.J, 2007) ALPR terus menunjukkan perkembangan dari tahun ke tahun di negara spanyol. Banyak orang melakukan riset untuk mendapatkan hasil ALPR yang lebih baik. Salah satu metode yang berkembang dalam membuat sistem ALPR adalah menggunakan OCR. (Juan J. Rodr´ıguez dan Jes´us Maudes, 2007) Sistem ALPR juga banyak berkembang di India. ALPR dikembangkan dengan prinsip-prinsip matematika dan algoritma tertentu sehingga dapat mengatasi kemiringan gambar pada plat nomor yang diambil oleh kamera. Gambar yang semula miring membentuk sudut tertentu, dilakukan proses deskewing sehingga plat nomor dapat dideteksi. (Shishir Kumar, 2008) License Plate Recognition (LPR) dapat digunakan untuk menyimpan gambar yang diambil oleh kamera dan juga teks atau karakter pada plat nomor kendaraan. Sistem biasanya menggunakan pencahayaan inframerah untuk memungkinkan kamera untuk mengambil gambar. Teknologi LPR cenderung menjadi wilayah yang spesifik, karena variasi plat nomor kendaraan dari masing-masing daerah atau negara. (Federal Signal Public Safety System Corporation, 2008) Seiring dengan perkembangannya, sistem ALPR bersama dengan OCR berkembang secara hampir bersamaan yang digunakan untuk Intelligent Transportation System (ITS) di berbagai negara termasuk di Indonesia. (Riza Prasetya Wicaksana, 2008)
31
Dari berbagai uraian tentang penelitian dan penggunaan pengenalan plat nomor kendaraan secara otomatis yang telah dilakukan oleh berbagai negara di dunia memang dibutuhkan dalam kehidupan saat ini.
3.2 Analisis Kebutuhan Sistem Berdasarkan penjelasan mengenai penelitian-penelitian terdahulu mengenai ANPR maka dapat dikatakan bahwa sistem ANPR memang dibutuhkan dalam kehidupan saat ini. Menurut Liam Keilthy dalam Measuring ANPR System Performance pada tahun 2008, sistem ANPR akan dibutuhkan dalam berbagai bidang seperti: 1. Pengecekan kecepatan kendaraan a. Berhubungan dengan kecepatan kendaraan dan sistem denda b. Rata-rata waktu perjalanan 2. Manajemen parkir a. Masalah kehilangan tiket b. Masalah kehilangan kendaraan c. Masalah pencurian kendaraan d. Durasi pemantauan tetap e. Pendapatan audit f. Akses parkir tanpa tangan (hands-free access) 3. Manajemen lalu lintas a. Penentuan jalur yang sesuai bagi taksi dan bus b. Manajemen pembayaran bagi pelanggar lalu lintas c. Pencarian pelanggar lalu lintas 4. Bidang lainnya
32
a. access control dan monitoring b. Kontrol kepatuhan pengendara di jalan raya
3.3 Analisis Program Aplikasi Dalam proses pengenalan karakter pada citra plat nomor, banyak ditemui masalah. Masalah yang ditemui itu diantaranya adalah deteksi tepi (edge detection) yang harus benar-benar tepat untuk menentukan letak plat nomor kendaraan roda empat, adanya noise pada citra plat nomor sehingga sulit dikenali, banyaknya jenis font dan style plat nomor kendaraan, serta pencahayaan yang cukup sehingga citra plat nomor dapat dikenali. Untuk masalah pencahayaan sudah dibatasi dalam pembatasan masalah bahwa diasumsikan mendapat cahaya yang cukup sehingga plat nomor dapat dikenali, sedangkan untuk jenis font dan style plat nomor yang diteliti menggunakan font dan style plat nomor kendaraan yang umum digunakan di Indonesia. Adanya noise pada citra plat nomor kendaraan mengakibatkan karakter angka dan huruf yang ada pada plat nomor sulit dikenali. Untuk itu, diperlukan proses filtering untuk menghilangkan noise yang ada pada image. Namun sebenarnya yang menjadi masalah utama dalam pembuatan program aplikasi ini adalah dalam melakukan deteksi tepi (edge detection) plat nomor kendaraan roda empat. Deteksi tepi plat nomor kendaraan harus benar-benar tepat sehingga karakter-karakter huruf dan angka yang ada pada plat nomor dapat dikenali. Dalam analisis dan perancangan sistem program aplikasi ini, akan dijelaskan proses rancangan program pengenalan plat nomor kendaraan roda empat. Dimulai dari analisis program aplikasi yang akan dirancang, dilanjutkan dengan rancangan layar (user interface) untuk program aplikasi yang akan dibangun.
33
Diagram alir (flow chart) untuk program ini dapat dilihat di bawah ini.
Input Citra Plat Nomor
Proses Preprocessing
Deteksi Kontur
Deteksi Persegi Panjang
Plat nomor ditemukan dan plat nomor dikotakkan pada kotak berwarna merah
sudut persegi panjang < ‐45 atau > 45 derajat?
Noise Filtering
Pengenalan karakter pada plat
ya Perbaiki sudut = 90 derajat
Persegi panjang memiliki range perbandingan antara 2 sampai 3?
ya
Ulangi proses menggunakan citra lain?
tidak tidak tidak
Gambar 3.1 Flow Chart program
ya
34
Berdasarkan flow chart di atas, secara garis besar program ini terdapat empat proses utama yang ditunjukkan diagram di bawah ini. Preprocessing
Detection
Selection Noise Filtering
Recognition Gambar 3.2 Global flowchart proses dalam sistem Dalam tiap-tiap tahapan di atas, dilakukan analisis dan modifikasi terhadap citra digital yang pada akhirnya menghasilkan citra yang telah terseleksi pada bagian plat nomor kendaraan. 3.3.1 Preprocessing Tahap pertama yang digunakan adalah
preprocessing. Tahap preprocessing
perlu dilakukan untuk menyesuaikan apa yang dibutuhkan untuk proses selanjutnya. Tahapan pada proses preprocessing adalah sebagai berikut. Image
Grayscale Gambar 3.3 Tahapan proses preprocessing image
35
Proses dimulai dengan mengubah objek RGB menjadi objek grayscale dengan cara: Gray = (R+G+B) / 3 Proses tersebut dilakukan pada setiap piksel pada citra, dengan cara ini maka setiap piksel memiliki satu jenis warna dengan intensitas yang berbeda-beda.
Gambar 3.4 (a) Citra mobil sebelum dilakukan grayscale
Gambar 3.4 (b) Citra mobil setelah dilakukan grayscale 3.3.2 Detection Tahap selanjutnya yang dilakukan adalah detection atau bisa juga disebut plate localization. Tahap ini merupakan tahap yang paling memegang peranan penting dalam
36
kasus pengenalan plat nomor (License Plate Recognition). Pada tahap deteksi ini dilakukan pencarian terhadap letak plat nomor kendaraan roda empat, yang dapat diuraikan lagi menjadi dua subproses. 3.3.2.1 Deteksi Kontur Pada subproses pertama ini, dari citra yang telah melalui tahapan preprocessing akan dicari konturnya. Proses pencarian kontur bertujuan untuk menemukan garis pada citra. Deteksi tepi pada suatu citra adalah suatu proses yang menghasilkan tepi-tepi dari objek-objek citra. Tepi-tepi ini akan menandai bagian detail citra. Tepi-tepi pada gambar tersebut terletak pada titik-titik yang memiliki perbedaan tinggi. Keberadaan tepi unsur ditandai dengan tingginya perubahan nilai piksel atau kontras. Pada proses ini menggunakan metode ekstraksi kontur yaitu canny edge detection yang pertama kali dikembangkan oleh John F Canny pada tahun 1986. Algoritma canny edge detection berjalan dalam 5 langkah terpisah sebagai berikut. 1) Smoothing : memburamkan gambar untuk menghilangkan noise. 2) Finding gradients : proses mencari gradien piksel untuk menentukan kekuatan tepi dengan menggunakan rumus: , Atau dapat digunakan rumus pendekatan di bawah untuk mengurangi kompleksitas komputasi (Bill Green, 2002): ,
|
|
37
Selanjutnya dicari arah gradien dari masing-masing piksel yang bertujuan untuk menentukan arah tepi dengan menggunakan rumus: , Proses pencarian arah tepi diilustrasikan sebagai berikut:
Gambar 3.5 Piksel dari sebuah gambar 5x5 Kemudian dengan melihat piksel ‘a’ hanya ada kemungkinan 4 arah yang mungkin terbentuk dari piksel di sekitarnya yaitu 0 derajat (arah horisontal), 90 derajat (arah vertikal), 45 derajat (sepanjang diagonal positif), dan 135 derajat (sepanjang diagonal negatif). Jadi orientasi tepi harus ditentukan ke dalam satu dari empat arah tersebut tergantung kemana arah itu menuju yang paling dekat. Misalnya jika arah gradien 3 derajat, maka orientasi tepinya adalah 0 derajat karena 3 derajat lebih dekat ke 0 derajat. Untuk lebih jelasnya, arah orientasi tepi dapat dilihat dari ilustrasi berikut.
Gambar 3.6 Ilustrasi penentuan arah orientasi tepi
38
•
Arah tepi yang jatuh pada warna kuning (0-22,5 dan 157,5-180 derajat) diatur menjadi 0 derajat.
•
Arah tepi yang jatuh pada warna hijau (22,5-67,5) diatur menjadi 45 derajat.
•
Arah tepi yang jatuh pada warna biru (67,5-112,5) diatur menjadi 90 derajat.
•
Arah tepi yang jatuh pada warna merah (112,5-157,5) diatur menjadi 135 derajat.
3) Non-maximum suppression. Setelah arah tepi diketahui, proses non-maximum suppression siap diterapkan. Non-maximum suppression untuk melacak atau menelusuri di sepanjang arah tepi dan menekan setiap nilai piksel menjadi 0 jika piksel tersebut dianggap bukan tepi. Hal ini akan memberikan garis tipis pada output gambar.
Gambar 3.7 Citra mobil setelah melalui tahap non-maximum supression 4) Hysteresis threshold. Setelah melalui tahapan non-maximum suppression, tepi yang terbentuk bisa jadi tepi yang sebenarnya atau bisa juga tepi yang terbentuk karena noise atau
39
goresan. Hysteresis merupakan proses untuk menghilangkan goresan. Goresan adalah tepi kontur yang putus yang disebabkan oleh nilai yang berfluktuasi di atas dan di bawah threshold (nilai ambang). Jika hanya digunakan single threshold T1 diterapkan ke gambar, maka akibat noise akan ada kejadian dimana garis masih terlihat putus-putus. Untuk menghindari hal ini, hysteresis menggunakan double threshold yaitu threshold atas (Threshold High =TH) dan threshold bawah (Threshold Low = TL). Pada tahap sebelumnya. Rasio antara TH:TL adalah 2:1 atau 3:1. •
Jika gradien piksel < TL maka ditandai sebagai bukan tepi (ditolak)
•
Jika gradien piksel > TH maka langsung ditandai sebagai tepi (diterima) dan dianggap sebagai tepi kuat (strong edge).
•
Jika gradien diantara TL dan TH, akan TH maka dianggap sebagai tepi lemah (weak edge).
Gambar 3.8 (a) Strong edge
40
Gambar 3.8 (b) Weak edge Tepi kuat (strong edge) dianggap sebagai tepi yang sudah pasti secara langsung dianggap sebagai tepi final. Sedangkan tepi lemah (weak edge) dianggap sebagai tepi final jika terhubung ke tepi kuat. Hasil penentuan tepi final dapat dilihat pada gambar di bawah ini.
Gambar 3.8 (c) Citra mobil setelah dilakukan final canny edge detection 3.3.2.2 Deteksi Persegi Panjang Dengan memanfaatkan ciri khusus dari plat nomor yaitu persegi panjang, maka langkah selanjutnya adalah pendeteksian persegi panjang. Pada proses deteksi persegi panjang ini bergantung pada proses deteksi garis yang telah dilakukan sebelumnya karena penyusun dari persegi panjang adalah kumpulan dari garis. Digunakan pendeteksian persegi panjang (rectangle detection) untuk mencari kandidat plat nomor
41
k kendaraan karena k bentuuk fisik plaat nomor di Indonesia yang menddukung dan lebih m mudah diken nali sebagai persegi panjjang. Prosees mendeteeksi persegii panjang adalah a denggan melakuukan pengeccekan t terhadap duaa buah pasaangan garis yang y paralell. Kemudiann garis-garis yang berdeekatan a akan dihubu ungkan sehinngga terbenttuk sebuah jajar j genjanng. Selanjutnnya jajar gennjang y yang terben ntuk akan ditandai d sebbagai perseggi panjang dan dinorm malisasi suduutnya m menjadi 90 derajat. d Hasil dari detekksi persegi panjang p ini menghasilka m an beberapa kandidat peersegi p panjang yan ng akan dipillih sebagai plat p nomor. Berdasarkan B n beberapa kaadidat ini seebagai m masukkan un ntuk proses seleksi plat nomor. n
Gam mbar 3.9 Citrra mobil yaang telah dillakukan detteksi perseggi panjang 3.3.3 3 Proses Seleeksi Plat Noomor Prosees seleksi pllat nomor inni dilakukann dengan meelakukan seleeksi pada peersegi p panjang yan ng telah terdeteksi pada tahap sebeluumnya denggan cara mennggunakan rumus r p perbandinga an rasio plat = panjang / lebar. Perbandingan pllat nomor Inndonesia berrada pada raange 2 samppai 3. Selanjuutnya s setelah dilak kukan proses pembagiann, maka dibeeri batasan untuk u menenntukan manaa plat y yang akan dipilih. d Bataasannya adaalah dengan melakukan pengecekann apakah peersegi
42
panjang yang terdeteksi tersebut memiliki karakter atau tidak. Dengan asumsi plat nomor memiliki minimal 5 karakter, maka jika kurang dari 5 karakter berarti tidak termasuk dalam region plat nomor.
Gambar 3.10 Citra mobil yang telah dilakukan seleksi persegi panjang 3.3.4 Noise Filtering Proses ini dibutuhkan untuk memenuhi parameter-parameter yang dibutuhkan untuk proses selanjutnya yaitu proses pengenalan karakter plat nomor menggunakan Optical Character Recognition (OCR). Proses ini dilakukan untuk memperbaiki objek plat nomor sehingga dapat dimasukkan pada tahap pengenalan (recognition). Pada proses ini digunakan canny edge detection sekali lagi supaya tepi-tepi pada karakter angka dan huruf dapat terdeteksi. Selanjutnya dilakukan proses erosi dan dilatasi. Erosi adalah suatu operasi yang akan mengurangi piksel pada batas antar objek dalam suatu citra digital. Cara kerjanya adalah dengan melakukan pengecekan piksel hitam yang akan dierosi dengan melewatkan mask yang ada pada piksel hitam tadi, jika memenuhi semua syarat pada mask maka piksel hitam diubah menjadi putih.
43
Sedangkan dilatasi adalah suatu operasi yang akan menambahkan piksel pada batas antar objek dalam suatu citra digital. Cara kerjanya adalah dalam binary image, jika ada piksel tetangga yang bernilai 1 maka output piksel diset menjadi 1. Erosi dan dilasi dapat digunakan bersama ataupun digunakan secara sendirisendiri tergantung dari hasil yang telah kita peroleh apakah sudah cukup memenuhi harapan atau tidak. Hasil yang diharapkan adalah masing-masing karakter yang dikenai proses ini memberikan bentuk yang valid. Erosi dan dilatasi digunakan bersama-sama untuk menyatukan piksel yang terpisah sehingga dapat memperjelas bentuk dari huruf atau angka dan juga menghilangkan noise serbuk pada piksel.
Gambar 3.11 (a) Citra plat (b) Citra plat dilakukan binary threshold invers Misalkan setelah dilakukan canny edge detection, masih terdapat piksel yang terpisah seperti ditunjukkan gambar di bawah ini.
Gambar 3.12 Citra plat mobil yang telah dilakukan canny edge detection Berdasarkan gambar hasil canny edge detection, piksel karakter masih ada yang belum terhubung, bisa dilakukan penggabungan proses erosi dan dilatasi yang hasilnya ditampilkan di bawah ini.
44
Gambarr 3.13 Citraa plat mobil yang telah dilakukan proses p erosii dan dilatasi 3.3.5 5 Recognitioon Setellah noise tellah dihilangkkan melalui proses noise filtering, selanjutnya s s sudah s siap dengan n tahap peengenalan (recognition ( p plat nomoor ini ). Tahap pengenalan m menggunaka an engine tessseract ocr. seegmentasi
Chhopping charracter
Pemisahan Kaarakter Terhubung no ormalisasi Asossiasi Karakteer Patah
ek kstraksi fitur
Addaptive Classsifier
H Hasil Pengennalan n pada tesseract ocr Gaambar 3.14 Pengenalan
45
Proseesnya adalahh sebagai berrikut. 1. Pertaama akan diicari outline dari sebuahh karakter. Proses P pencaarian outlinee dari karak kter adalah sebagai s berikkut.
(a)
(b)
(c)
(d)
G Gambar 3.1 15 Pencariaan Outline Karakter K (a)) Karakter yang y ingin dicari d outlin nenya ( Pelabela (b) an pada Karrakter (c) Blob B membentuk Outlin ne (d) Outlin ne Karakterr 2. Chop pping atau pemotongan karakter k Setellah outline karakter k dipperoleh, makka selanjutnyya akan dilaakukan choppping (pem motongan) kaarakter yangg merupakan bagian darii tahap segm mentasi pada OCR secarra umum.
Gambar 3.16 Hasil H segmeentasi karak kter plat 3. Pemiisahan Karakkter Terhubuung. Selan njutnya bila karakter hasil segmentaasi masih adda yang tumppang tindih, akan diperrbaiki pada tahap ini. Blob-blob yanng terbentukk saling tum mpang tindih akan dipissahkan. Kandidat untuk titik-titik peemisahan diitemukan daari simpul ceekung
46
dari pendekatan poligonal outline dan mungkin saja terdapat titik cekung berlawanan lainnya atau segmen garis. 4. Asosiasi Karakter Patah Bila karakter yang saling tumpang tindih sudah berhasil dipisahkan, dicek apakah masih ada karakter yang patah atau agak rusak. Jika ada, karakter yang rusak tersebut diperbaiki outlinenya dengan menggunakan pencarian terbaik (Best First Search). 5. Adaptive Classifier Feature merupakan komponen pendekatan poligonal dari outline sebuah bentuk. Pada pengenalan, elemen-elemen poligon dipecah menjadi bagian-bagian yang lebih pendek dengan panjang yang sama, sehingga dimensi panjang dieliminasi dari vektor fitur. Beberapa fitur pendek dicocokkan dengan setiap fitur prototipikal dari training yang telah dilakukan oleh tesseract dalam file .traineddata, hal ini membuat proses klasifikasi lebih kuat terhadap karakter yang terputus. Pada tahap ini intinya karakter pada plat dicocokkan dengan prototype karakter yang ada di data training tesseract. Bila mendekati kemiripan maka karakter akan dimunculkan. 6. Hasil Pengenalan Bila karakter yang dicocokkan mendekati kemiripan dengan prototype karakter dalam data training tesseract, maka karakter tersebut akan ditampilkan. Hasil pengenalan dari karakter plat nomor sebagai berikut.
47
Gambar 3.17 Hasil pengenalan karakter plat nomor Citra (image) yang dibuka adalah hendaknya citra digital yang mengandung plat nomor kendaraan, dan harus berukuran lebih dari 240x180 piksel karena ukuran ini dapat menghasilkan tingkat akurasi yang lebih baik dari tesseract ocr.
3.4 Perancangan Program Aplikasi Program aplikasi pengenalan plat nomor kendaraan ini dibuat dengan menggunakan perangkat lunak Microsoft Visual Studio 2010 dengan bahasa pemrograman C#. Untuk dapat melakukan proses pengenalan plat nomor digunakan library emgu-cv yang berisi kumpulan library untuk computer vision dan artificial intelligence. Emgu-cv merupakan wrapped opencv yang dapat digunakan untuk bahasa pemrograman C#. Selanjutnya untuk melakukan proses pengenalan (recognition) terhadap karakter pada plat nomor digunakan tesseract ocr. Dari beberapa model proses yang ada dalam software engineering, dipilih model proses prototyping untuk diaplikasikan dalam pembuatan skripsi ini karena dalam model proses prototyping dituntut lebih cepat dalam tahapan pembuatan software sehingga lebih cocok diterapkan untuk menyelesaikan skripsi yang memerlukan waktu pembuatan software tidak banyak. Software yang dihasilkan nanti hanya dalam bentuk prototype sederhana yang masih bisa dikembangkan lebih lanjut.
48
Proses perancangan menggunakan model prototyping yang dapat dijelaskan sebagai berikut. a.
Tahap Communication. Sebelum mulai merancang program aplikasi, dilakukan proses pencarian kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam program aplikasi. Calon pengguna aplikasi dan pengembang bertemu bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
b.
Tahap Planning. Melakukan perencanaan (planning) terhadap pembuatan perangkat lunak secara cepat. Pada tahap ini dibuat format input dan output.
c.
Tahap Modelling. Melakukan pemodelan (modelling) sistem. Pada tahap ini dibuat flow chart sistem.
d.
Tahap Construction. Mengubah desain dari flow chart menjadi bentuk yang dapat dimengerti oleh komputer, yaitu ke dalam bahasa pemograman C# melalui proses pengkodean.
e.
Tahap Deployment. Melakukan pengujian (testing) terhadap program yang sudah dibuat dan memastikan hasilnya sesuai kebutuhan yang sudah didefinisikan sebelumnya. Bila perangkat lunak yang dihasilkan sudah sesuai dengan yang diharapkan, maka perangkat lunak telah siap untuk digunakan.
49
3.4.1 Desain Use Case Diagram Use case diagram digunakan untuk mengetahui interaksi apa saja yang dilakukan antara user dengan program aplikasi dapat dilihat di bawah ini.
Gambar 3.18 Use case diagram program pengenalan plat nomor 3.4.2 State Diagram State diagram untuk program pengenalan plat nomor ini disajikan sebagai berikut.
input
preprocessing Citra
Citra hitam putih
deteksi kontur
Tepi pada citra deteksi persegi panjang
noise filtering Pengenalan
Plat nomor ditemukan
seleksi
Gambar 3.19 State diagram program pengenalan plat nomor
Persegi panjang
50
3.4.3 Perancangan Modul Modul yang digunakan dalam program ini terdiri dari lima buah modul utama, dengan rincian sebagai berikut: •
Modul LicensePlateDetector Modul ini digunakan untuk mendaftarkan angka dan huruf pada OCR serta mengenali karakter pada plat nomor kendaraan dengan menggunakan Optical Character Recognition (OCR).
•
Modul GetWhitePixelMask Modul ini digunakan untuk melakukan preprocessing terhadap citra yang dimasukkan.
•
Modul DetectLicensePlate Modul ini digunakan untuk mendeteksi letak plat nomor kendaraan roda empat.
•
Modul FindLicensePlate Modul ini digunakan untuk melakukan seleksi terhadap kandidat plat nomor yang akan dipilih.
•
Modul FilterPlate Modul ini digunakan untuk melakukan noise filtering terhadap plat nomor yang telah terdeteksi supaya karakter angka dan huruf pada plat nomor dapat dikenali.
51
3.4.4 Perancangan Pseudocode Program ini terdiri lima modul, maka akan dijelaskan pseudocode (kode semu) untuk masing-masing modul tersebut. Pseudocode dari modul preprocessing adalah sebagai berikut. Awal modul //Convert citra ke warna abu-abu Set gray = (R+G+B )/ 3 // proses threshold Set warna putih = 255 Set warna hitam = 0 Akhir modul Dilanjutkan dengan pseudocode untuk melakukan deteksi plat nomor kendaraan sebagai berikut. Awal modul //menentukan kontur Contours = canny.findContours //Menentukan persegi panjang MCvBox2D box = contours.GetMinAreaRect() Jika persegi panjang kemiringan sudutnya < -45 atau > 45 derajat Mulai Perbaiki sudut persegi panjang = 90 derajat Selesai Akhir modul Kemudian akan dilakukan proses seleksi plat nomor berdasarkan persegi panjang yang telah terbentuk. Berikut pseudocode untuk melakukan seleksi terhadap kandidat plat nomor. Awal modul //mencari perbandingan plat nomor Rasio plat = panjang / lebar persegi panjang Akhir modul Selanjutnya adalah pseudocode untuk melakukan proses noise filtering supaya citra bebas dari noise.
52
Awal modul //melakukan canny edge detection pada karakter plat nomor Image = image.Canny(new Gray(100), new Gray(50))) //melakukan threshold binary invers Image = setBinaryThresholdInvers(new gray(120), new gray(255)) // melakukan proses erosi thresh._Erode(1) // melakukan proses dilatasi // jika ada pikses tetangga yang bernilai 1, set output piksel menjadi 1 thresh._dilate(1) selesai Akhir modul Tahap terakhir adalah melakukan pengenalan terhadap karakter angka dan huruf pada plat nomor kendaraan. Pseudocode akan ditampilkan sebagai berikut. Awal modul Set bahasa pada ocr = bahasa Inggris Daftarkan huruf A-Z dan angka 0-9 jika karakter pada plat nomor kurang dari 5 karakter maka bukan kandidat daerah plat nomor selain itu kandidat daerah plat nomor selesai Akhir modul 3.4.5 Perancangan Layar Aplikasi Antarmuka (user interface) sangat diperlukan supaya pengguna dengan komputer dapat saling berinteraksi. Dalam program aplikasi ini hanya ada satu form namun di dalamnya terdapat bagian-bagian yang dapat melakukan tugasnya masingmasing. Berikut merupakan rancangan antarmuka untuk program aplikasi ini.
53 _
X
Tutorial About License:
File
Load Image
License Plate Recognition Time :
Gambar 3.20 Rancangan form tampilan awal program Program aplikasi akan mulai bekerja bila ditekan button load image. Program aplikasi akan melakukan proses pendeteksian tepi plat nomor kendaraan, filtering, dan pengenalan karakter angka dan huruf pada plat nomor kendaraan. Gambar hasilnya akan ditampilkan pada kotak yang besar pada gambar 3.18 di atas. Sedangkan kandidat plat nomor yang telah dipotong dan diinvers akan ditampilkan pada kotak sebelah kiri atas, dan kandidat plat nomor yang telah dipotong tersebut selanjutnya dilakukan binary threshold invers yang hasilnya ditampilkan pada kotak sebelah kiri bawah. Bagian yang diambil hanya plat nomornya saja. Hasil pengenalan karakter angka dan huruf pada plat nomor kendaraan akan ditampilkan pada sebelah kiri paling atas. Namun bila program tidak bisa menemukan letak plat nomor secara tepat, maka karakter angka dan huruf pada plat nomor kendaraan tidak bisa ditampilkan.
54
Prog gram ini jugga terdapat dua buah button b yaitu button Tuttorial dan button b A About. Saat Button Tutoorial diklik akan muncuul cara untukk menggunaakan program m ini. R Rancangan tampilan t buttton Tutoriall sebagai berrikut. X Indonesian Veersion Tutoriall Bagaimana m menggunakan p program ini: 1. Klik button Load Image 2. Pilih citra yyang Anda ingin kenali plat nomornya padaa folder testingg image 3. tunggu unttuk mendapatkkan hasilnya, dan hasilnya akkan ditampilkan pada layar bingung bagaim mana menggun nakan program m ini, klik pada button 4. Jika Anda b Tutorial dan klik button About untuk mellihat profil pro ogramer prograam ini on Tutorial English Versio How to use th his program: 1. Click button n Load Image 2. Choose imaage that You w want to recognize the licensee plate at foldeer testing image 3. wait for thee result, and th he result will b be show on thee screen 4. If You confu use how to usee this program m, click at butto on Tutorial and d click button About to see the profile abo out the prograammer of this p program
Gamb bar 3.21 Raancangan tam mpilan buttton tutorial Sedaangkan buttoon About berrisi informassi tentang pembuat proggram aplikassi ini. S Saat button about dikllik, maka akan a muncull kotak dialog yang dirancang d seebagai b berikut.
Gamb bar 3.22 Raancangan tam mpilan buttton about