LAPORAN PENELITIAN
RANCANG BANGUN SISTEM PENGENALAN KARAKTER PLAT NOMOR KENDARAAN BERBASIS SUPPORT VECTOR MACHINE
Oleh : Edi Sugiarto
Dibiayai oleh Universitas Dian Nuswantoro dengan No. Kontrak : 001/A.35-02/UDN.09/IV/2011 Tahun Anggaran : 2010/2011
FAKULTAS ILMU KOMPUTER UNIVERSITAS DIAN NUSWANTORO SEMARANG SEPTEMBER, 2011
RINGKASAN
( Rancang Bangun Sistem Pengenalan Karakter Plat Nomor Kendaraan Berbasis Support Vector Machine, Edi Sugiarto, 2011 )
Penelitian ini membahas tentang perancangan sistem pengenalan karakter pada plat nomor kendaraan menggunakan pendekatan metode support vector machine. Sebagaimana merujuk pada penelitian Xiaojuan Ma tahun 2010 berkaitan pada permasalahan pengenalan karakter menggunakan metode Neural Network yang memiliki kelemahan pada pengenalan karakter pada posisi yang berbeda dikarenakan metode neural-network hanya mengekstraksi fitur dari karakter dan dimasukkan ke dalam nerualnetwork maka pada penelitian ini mencoba menggunakan metode support vector machine untuk mengatasi permasalahan dalam hal akurasi pengenalan karakter pada citra karakter non-linear distortion sehingga menghasilkan rancangan sistem pengenalan karakter yang lebih akurat. Metode penelitian dalam penelitian ini dibagi menjadi dua bagian yakni metode pada proses pelatihan (training) dan proses pengenalan (recognition), dalam proses pengenalan tahap yang dilakukan meliputi tahap preprocessing dengan metode binerisasi citra, segmentasi dengan metode connected component labeling, pada tahap ekstraksi fitur dilakukan pemetaan citra dalam matriks 5x5 dan pada tahap klasifikasi di terapkan menggunakan metode support vector machine. Dalam penerapanya penelitian ini merujuk pada PT Prambanan Kencana sebagai objek penelitian untuk melakukan melakukan sampling citra-citra plat nomor kendaraan sebagai data input untuk sistem pengenalan karakter yang di hasilkan kemudian dilakukan percobaan dengan menggunakan 300 contoh karakter sebagai data input untuk proses trainning dan disimulasikan menggunakan 100 sample citra plat nomor dengan total 700 karakter yang di ujikan, rancangan ini menghasilkan akurasi pengenalan karakter 83% untuk proses pengenalan plat nomor dengan sempurna dan hingga 94% untuk pengenalan tiap-tiap karakter plat nomor kendaraan.
ii
iii
KATA PENGANTAR
Dengan memanjatkan Puji syukur kehadirat Tuhan Yang Maha Esa atas segala rahmat, hidayahnya serta ridhonya sehinggaa telah tersusun Laporan Penelitian dengan judul Rancang Bangun Sistem Pengenalan Karakter Plat Nomor Kendaraan Berbasis Support Vector Machine ini. Atas tersusunya penelitian ini penulis mengucapkan terimakasih yang sebesar-besarnya kepada : 1. Bapak Dr, Ir, Edi Noersasongko, M.Kom selaku Rektor Unviversitas Dian Nuswantoro 2. Bapak Dr. Dwi Eko Waluyo selaku Dekan Fakultas Ilmu Komputer Universitas Dian Nuswantoro 3. Bapak Nugroho selaku pimpinan PT Prambanan Kencana Cabang Semarang yang telah memberikan ijin untuk melakukan pengambilan sample citra plat nomor kendaraan. 4. Istri dan keluarga yang senantiasa mendukung dan mensupport penulis dalam melakukan penelitian
Peneliti mengakui bahwa dalam penelitian ini masih banyak kekurangan sehingga penulis terbuka untuk menerima kritik dan saran yang akan penulis jadikan sebagai tolak ukur dan nasihat agar penelitian yang dilakukan selanjutnya bisa lebih baik lagi.
Akhir kata semoga laporan penelitian ini bermanfaat bagi penulis pribadi, pembaca dan semua pihak yang membutuhkan
Semarang,
Edi Sugiarto, S.Kom
iv
DAFTAR ISI
RINGKASAN ......................................................................................................................
ii
LEMBAR IDENTITAS DAN PENGESAHAN ..................................................................
iii
KATA PENGANTAR .......................................................................................................... iv DAFTAR GAMBAR ...........................................................................................................
vii
DAFTAR TABEL ................................................................................................................
viii
I. PENDAHULUAN ...................................................................................................
1
1.1 Latar Belakang .............................................................................................
1
1.2 Perumusan Masalah ...................................................................................... 2 1.3 Ruang Lingkup .............................................................................................
2
1.4 Tujuan Penelitian .......................................................................................... 2 1.5 Manfaat ......................................................................................................... 3 1.6 Kontribusi ..................................................................................................... 3 1.7 Metodologi Penelitian ..................................................................................
3
II. TINJAUAN PUSTAKA ..........................................................................................
5
2.1 Penelitian Terkait (Related Research) .......................................................... 5 2.2 Landasan Teori .............................................................................................
6
2.2.1
Pengertian Citra .......................................................................... 6
2.2.2
Resolusi Citra .............................................................................
6
2.2.3
Jenis Citra ...................................................................................
7
2.2.4
Pemrosesan Citra ........................................................................ 8
2.2.5
Perbaikan Citra (Image Enhancement) ......................................
9
2.2.6
Segmentasi Citra ........................................................................
9
2.2.7
Support Vector Machine ............................................................. 10
2.2.8
Support Vector Machine Untuk Multi Kelas .............................
2.2.9
Studi Kasus Penerapan Support Vector Machine ....................... 17
III. METODE PENELITIAN .........................................................................................
15
21
3.1 Metode Penelitian ......................................................................................... 21 3.2 Metode Pengumpulan Data ..........................................................................
22
3.3 Metode Pengukuran Penelitian ..................................................................... 22 v
3.4 Metode Analis Data ...................................................................................... 22 3.5 Penerapan Support Vector Machine pada Masalah Penelitian ..................... 22 IV. HASIL DAN PEMBAHASAN ................................................................................
42
4.1 Pengembangan Software yang menerapkan Support Vector Machine ........
42
4.1.1
Analisa Kebutuhan .....................................................................
42
4.1.2
Kebutuhan Software ...................................................................
42
4.1.3
Perancangan Sistem .................................................................... 43
4.1.4
Kontruksi ....................................................................................
49
4.2 Implementasi Pada Objek Penelitian ............................................................ 58 4.3 Hasil Penerapan ............................................................................................ 58 4.4 Implikasi Penelitian ...................................................................................... 62 V. KESIMPULAN DAN SARAN ................................................................................
63
5.1 Kesimpulan ................................................................................................... 63 5.2 Saran ............................................................................................................. 63 DAFTAR PUSTAKA ..........................................................................................................
vi
65
DAFTAR GAMBAR
Gambar 2.1 SVM berusaha menemukan hyperplane terbaik ............................................... 11 Gambar 2.2. Mencari fungsi pemisah yang optimal ............................................................
12
Gambar 2.3. Fungsi Φ memetakan data ke ruang vektor yang berdimensi lebih tinggi .....
14
Gambar 3.1. Proses pelatihan (training) ..............................................................................
23
Gambar 3.2. Proses binerisasi citra ......................................................................................
26
Gambar 3.3. Proses skeletonisasi citra .................................................................................
27
Gambar 3.4. Pixel centroid citra huruf A .............................................................................
27
Gambar 3.5. Pemetaan citra dalam matriks 5x5 ................................................................... 28 Gambar 3.6. Diagram proses pengenalan karakter ..............................................................
31
Gambar 3.7. Citra plat nomor sebagai data input ................................................................. 32 Gambar 3.8. Citra RGB data input dan Citra hasil binerisasi .............................................
32
Gambar 3.9. Region Of Interest untuk citra input ................................................................ 33 Gambar 3.10. Citra yang berada pada Region Of Interest ...................................................
34
Gambar 3.11. Citra input dengan noise ................................................................................ 35 Gambar 3.12. Citra input dengan noise dan Citra hasil image enchancement ..................... 35 Gambar 3.13. Citra input dan Citra hasil segmentasi .......................................................... 37 Gambar 3.14. klasifikasi menggunakan SVM .....................................................................
41
Gambar 4.1. Use Case Diagram Sistem Pengenalan Karakter ............................................. 43 Gambar 4.2. Sequence Diagram Sistem Pengenalan Karakter ............................................
44
Gambar 4.3. Activity Diagram Sistem Pengenalan Karakter ............................................... 45 Gambar 4.4 User Interface Sistem Pengenalan Karakter .....................................................
46
Gambar 4.5 Tampilan Awal Form Pengenalan Karakter .....................................................
47
Gambar 4.6 Tampilan user memilih file gambar .................................................................
48
Gambar 4.7 File gambar ditampilkan pada Axes1 ...............................................................
48
Gambar 4.8 Karakter plat nomor dikenali ............................................................................ 49
vii
DAFTAR TABEL
Tabel 3.1. Citra input ............................................................................................................ 25 Tabel 3.2. Fitur hasil ekstraksi untuk citra huruf A .............................................................
32
Tabel 3.3. fitur-fitur hasil ekstraksi citra setelah segmentasi ...............................................
38
Tabel 4.1 Tabel proses pengukuran ...................................................................................... 61 Tabel 4.2 Hasil pengukuran deteksi plat dengan sempurna .................................................
61
Tabel 4.3 Hasil pengukuran deteksi karakter pada plat dengan sempurna ..........................
62
Tabel 4.4 Akurasi sistem pengenalan plat nomor kendaraan berbasis SVM........................
62
viii
BAB I PENDAHULUAN
I.1. LATAR BELAKANG Dalam beberapa tahun terakhir penelitian tentang Intelligent Transportation System (ITS) telah dibuat. Intelligent Transportation System merupakan suatu sistem berbasis teknologi yang dibagi menjadi Intelligence Infrastructure System dan Intelligent Vehicle System [7][8]. Sebagai bagian dari ITS teknologi pengenalan karakter plat nomor kendaraan (VLPR) merupakan salah satu teknik penting yang dapat digunakan untuk identifikasi kendaraan pada banyak aplikasi seperti pada keamanan pintu masuk, kontrol parkir, kontrol lalu lintas, kontrol kecepatan, dan sebagainya. Pengenalan karakter merupakan langkah penting dalam VLPR sistem yang mempengaruhi ketelitian dan kecepatan pemrosesan sistem secara keseluruhan [12]. Penelitian berkaitan dengan pengenalan karakter pada plat nomor kendaraan masih sedikit dilakukan, metode neural-network telah digunakan untuk mengenali karakter plat nomor kendaraan. Metode ini dapat memperoleh hasil yang baik jika kualitas gambar yang diambil baik, namun kualitas gambar yang digunakan sebagai masukan tidak sepenuhnya baik, hal ini dapat juga dipengaruhi oleh kondisi misalnya debu dan distorsi (non-linear distortion) atau karena lingkungan fotografi yang kurang baik. Percobaan telah dilakukan namun menunjukkan kesulitan untuk mencapai pemahaman pada posisi-posisi yang berbeda karena metode ini hanya mengekstraksi fitur dari karakter dan dimasukkan ke dalam metode neural-network [12]. Support Vector Machine pertama kali diperkenalkan oleh Vladimir Vanpik pada tahun 1992 sebagai rangkaian harmonisasi konsep-konsep unggulan dalam bidang pengenalan pola [4][6]. Support Vector Machine merupakan metode pembelajaran yang digunakan untuk klasifikasi biner, ide dasarnya adalah mencari hyperplane terbaik yang berfungsi sebagai pemisah dua class pada input space [1]. Teknik pengenalan karakter berbasis Support Vector Machine telah di ujikan oleh Dewi Nasien dalam penelitianya tentang pengenalan karakter pada tulisan tangan inggris berbasis support vector machine (SVM) dan dari hasil penelitian dapat 1
disimpulkan bahwa Support Vector Machine dapat digunakan untuk pengenalan karakter dengan tingkat akurasi yang baik [2]. Penelitian terkait tentang pengenalan karakter pada plat nomor kendaraan telah dilakukan oleh Xiaojuan Ma, dalam penelitian tersebut digunakan metode GausianHermite Moments untuk mendeteksi plat nomor kendaraan dengan benar [12]. Dari paparan diatas dapat ditarik hipotesa awal dari beberapa penelitian yang sudah ada bahwa metode Support Vector Machines dapat digunakan untuk teknik pengenalan karakter (OCR) namun dalam beberapa penelitian tidak menunjukkan penggunaan Support Vector Machines untuk permasalahan pengenalan karakter dengan gambar non-linear distortion dan low quaity image.
I.2. PERUMUSAN MASALAH Berdasarkan latar belakang diatas maka dapat dirumuskan bahwa rumusan masalah dari penelitian ini adalah ”Bagaimana akurasi metode Support Vector Machine untuk pengenalan karakter pada plat nomor kendaraan dengan kondisi low quality image dan non-linear distortion ”.
1.3. RUANG LINGKUP Batasan dari penelitian ini adalah deteksi plat nomor kendaraan secara otomatis dengan menggunakan : 1. Segmentation dan Character Recognition berbasis Support Vector Machine
1.4. TUJUAN PENELITIAN Tujuan dari penelitian ini adalah untuk mengetahui akurasi metode support vector machine untuk mendeteksi dan pengenalan karakter pada plat nomor kendaraan .
1.5. MANFAAT Manfaat yang bisa diambil dari penelitian ini antaralain: 1. Manfaat Praktis hasil penelitian ini diharapkan dapat digunakan untuk proses identifikasi plat nomor kendaraan dari suatu citra 2
2. Manfaat teoritis Hasil dari penelitian ini diharapkan dapat digunakan sebagai sumbangan pengetahuan untuk mengembangkan teori yang berkaitan dengan Support Vector Machine. 3. Manfaat Kebijakan Hasil penelitian ini diharapkan dapat memberikan masukan sumbangan bagi pihak-pihak yang berkepentingan dalam rangka mengambil kebijakan berkaitan Intelligent Transport System dengan Support Vector Machine untuk mendeteksi plat nomor kendaraan.
I.6. KONTRIBUSI Kontribusi yang diharapkan dari penelitian ini antara lain pengembangan perangkat lunak deteksi plat nomor mobil secara otomatis dengan pendekatan support vector machine sehingga diharapkan dapat meningkatkan akurasi pendeteksian plat nomor secara lineardistortion maupun no-linear distortion.
1.7 METODOLOGI PENELITIAN 1.7.1 Metode Penelitian Penelitian ini adalah penelitian eksperimen dengan metode penelitian sebagai berikut: 1. Penentuan Masalah Penentuan masalah penelitian adalah dengan menggunakan studi literatur. 2. Penentuan Computing Approach Computing approach pada penelitian ini dipilih berdasarkan studi litelatur state of the arts dari penelitian tentang image recognition dan character recognition. Dalam penelitian ini metode support vector machine dipilih dengan pemikiran bahwa metode tersebut dapat digunakan untuk sistem deteksi plat nomor kendaraan secara otomatis. 3. Penerapan Support Vector Machine untuk sistem deteksi dan pengenalan karakter plat nomor kendaraan secara otomatis. 4. Pengembangan software yang menerapkan computing approach Untuk pengembangan perangkat lunak menggunakan metode sesuai dengan prinsipprinsip pengembangan perangkat lunak. Dalam pengembangan perangkat lunak ini, 3
pendekatan yang digunakan adalah metode berorientasi objek tahapan, requirement (kebutuhan), analysis (analisis),
dengan tahapan-
design (perancangan),
implementation (Pemakaian), dan testing (pengujian), tahapan-tahapan dilakukan secara overlap dan bersiklus.Tools yang digunakan untuk mengembangkan software adalah Matlab dengan fitur Graphical User Interface. 5. Pengujian dengan melakukan komparasi dengan approach yang lain. Pengujian akurasi penerapan Support Vector Machine untuk sistem deteksi plat nomor kendaraan secara otomatis, dan hasil dari pengujian berupa data akurasi metode support vector machine untuk pengenalan karakter pada plat nomor kendaraan. Pengujian dilakukan menggunakan sample plat nomor kendaraan yang telah di capture dan di sampling.
4
BAB II TINJAUAN PUSTAKA
2.1.
Penelitian Terkait (Related Research)
Beberapa penelitian berkaitan tentang deteksi otomatis plat nomor kendaraan telah banyak dilakukan beberapa diantaranya sbb :
Weijuan Wen dari Communication University of China [10] melakukan penelitian tentang pengenalan lokasi plat nomor berbasis wavelet transform pada tahun 2009, dalam penelitian ini digunakan metode wavelet transform untuk mendeteksi lokasi dari plat nomor kendaraan. Dalam penelitian ini proses pengenalan pola citra diawali dari melakukan ekstraksi citra HxLy setelah mengambil transformasi wavelet (texture vertikal ) untuk menemukan profile kendaraan, kemudian vertikal profile akan dioles secara horisontal
kemudian hasil dari lokasi plat nomor didapat setelah menghubungkan
delapan regional wilayah non text berdasarkan pengetahuan sebelumnya. Hasil dari penelitian menunjukkan bahwa metode yang diusulkan baik untuk pengenalan pola dalam kondisi yang berbeda, penelitian ini ditujukan untuk mendapatkan lokasi plat nomor berdasarkan citra yang di dapatkan.
Xiong Chunrong dan Huang Wenming dari University of Electronic Technology Yulin China [11] melakukan penelitian tentang pengenalan lokasi plat nomor kendaraan berbasis Compound Mathematical Morphology pada 2009. Penelitian ini menyajikan algoritma untuk pengenalan lokasi plat nomor berdasarkan senyawa matematika morfologi (compound mathematical morphology). Proses pengenalan dimulai dari merancang operator pendeteksi tepi untuk mengekstraksi tepi gambar plat. Dengan hasil ekstraksi yang telah diperoleh kemudian proyeksi horisontal dan vertikal digunakan untuk menemukan area plat. Hasil dari percobaan menunjukan bahwa algoritma compound mathematical morphology cukup akurat dan efisien dalam penentuan lokasi area plat. Hasil dari penelitian ini adalah mendapatkan metode pengenalan lokasi area plat nomor, sehingga dari suatu citra dapat diketahui lokasi letak plat nomor kendaraan.
5
Penelitian terbaru ”License Plate Character Recognition Based on Gaussian-Hermite Moments” oleh Xiaojuan Ma dari Guizhou Nationalities University, Guiyang, China [12] tentang pemahaman karakter pada plat nomor kendaraan pada 2010. Dalam paper ini diusulkan metode baru untuk pengenalan karakter menggunakan 2D Gaussian-Hermite moments (GHMs) dalam bentuk yang berbeda-beda dengan 231 fitur GHMs sebagai vector input. System ini bekerja dibawah variabel pencahayaan (illumination), ukuran plat, dan latar belakang yang dinamis. Hasil dari penelitian menunjukkan ketepatan dan efisiensi metode tersebut. Penelitian ini ditujukan untuk melakukan pengenalan karakter dari gambar plat nomor kendaraan menggunakan metode gausian-hermite moments.
2.2 Landasan Teori 2.2.1 Pengertian Citra Digital Pada umumnya pengolahan citra digital menunjuk pada pemrosesan gambar 2 dimensi menggunakan teknologi komputer. Dalam konteks yang lebih luas, pengolahan citra digital mengacu pada pemrosesan data 2 dimensi. Citra digital disebut juga merupakan sebuah larik yang berisi nilai-nilai real ataupun kompleks yang direpresentasikan dengan deretan bit tertentu [14].
2.2.2. Resolusi Citra Suatu citra digital merupakan kumpulan dari deretan pixel-pixel dengan intensitas tertentu yang dalam jumlah tertentu dapat dilihat oleh pandangan mata dan menghasilkan suatu citra [13]. Pixel merupakan satuan terkecil suatu citra, pixel dapat disebut sebagai titik-titik yang membentuk citra. Semakin banyak pixel dalam suatu citra maka semakin tinggi resolusi citra tersebut. Resolusi citra merupakan tingkat detail suatu citra. Semakin tinggi resolusi citra maka akan semakin tinggi pula detail dari citra tersebut[13]. Resolusi suatu citra dapat diukur dalam berbagai cara sebagai berikut : 1. Resolusi Pixel Merupakan perhitungan jumlah pixel dalam sebuah citra digital, sebuah citra dengan tinggi N pixel dan lebar M pixel artinya memiliki resolusi sebesar M x N. 2. Resolusi Spasial 6
Menunjukkan seberapa dekat jarak setiap garis pada citra, resolusi spasial akan menghasilkan jumlah pixel per satuan panjang 3. Resolusi Spektral Suatu citra akan membedakan intensitas ke dalam beberapa spektrum. Citra multi spektrum akan memberikan spektrum atau panjang gelombang yang lebih baik yang akan digunakan menampilkan warna 4. Resolusi Temporal Resolusi temporal berkaitan dengan video, resolusi ini memberikan jumlah frame yang ditampilkan setiap detik. 5. Resolusi Radiometrik Resolusi ini memberikan nilai atau tingkat kehalusan citra yang dapat ditampilkan, resolusi ini diukur dalam satuan bit misalkan citra 8 bit, citra 256 bit. Semakin tinggi resolusi radiometrik maka semakin baik juga intensitas yang ditampilkan.
2.2.3. Jenis Citra Citra digital dapat dikategorikan ke dalam jenis citra berdasarkan nilai pixelnya, berikut ini adalah jenis citra digital berdasarkan nilai pixelnya [13] : 1. Citra Biner Merupakan citra digital yang hanya memiliki dua kemungkinan warna saja yakni hitam dan putih. Disebut juga citra B&W atau citra monokrom. Citra ini seringkali muncul sebagai hasil dari proses pengolahan seperti segmentasi, pengambangan, atau dithering. 2. Citra Grayscale Berbeda dengan citra biner, citra grayscale ini memiliki kedalaman warna 8 bit, selain itu citra grayscale hanya memiliki satu kanal dalam setiap pixelnya dengan katalain citra grayscale memiliki intensitas warna Red, Green, dan Blue yang sama. 3. Citra Warna 8 bit Citra ini diwakili oleh 8 bit dengan warna maksimum 256 warna, berbeda dengan citra grayscale yang diwakili 8 bit dengan satu kanal, citra warna 8 bit 7
memiliki 3 kanal dengan komposisi bit 0 dan 1 sebagai warna biru (blue), bit 2, 3, 4 sebagai warna hijau (green) dan bit 5,6,7 sebagai warna merah (red). 4. Citra Warna 16 bit Disebut juga citra highcolor dengan setiap nilai pixelnya diwakili dengan 2 byte memory (16 bit). Dengan 2 byte maka kombinasi warna untuk citra ini hingga 65.536 warna. 5. Citra Warna 24 bit Citra ini setiap pixelnya diwakili dalam 3 byte memori sehingga memiliki kombinasi warna yang berbeda hingga 16.777.216 warna.
2.2.4. Pemrosesan Citra Pemrosesan citra dilakukan dengan tujuan untuk mendapatkan hasil citra yang diinginkan dari suatu citra digital[14]. Terdapat beberapa jenis pemrosesan citra digital antaralain : operasi titik, operasi lokal, operasi global dan operasi obyek. 2.2.4.1. Operasi Titik Operasi titik merupakan pengolahan pixel dengan tanpa memperhatikan tetangga (neighborhood) [13]. Jenis operasi pixel antaralain 1. Penambahan Intensitas Proses penambahan intensitas dilakukan dengan menambahkan nilai intensitas suatu pixel dengan nilai tertentu, penambahan intensitas akan menghasilkan nilai intensitas yang semakin mendekati nilai maksimal yakni warna putih 2. Pengurangan Intensitas Proses penambahan intensitas dilakukan dengan mengurangi nilai intensitas suatu pixel dengan nilai tertentu, pengurangan intensitas akan menghasilkan nilai intensitas yang semakin mendekati nilai minimal yakni warna hitam 3. Binerisasi Citra Proses ini akan mengubah suatu citra menjadi citra biner yakni citra dengan nilai intensitas 0 atau 1 saja. Untuk melakukan proses ini dilakukan proses thresholding
8
2.2.4.2. Operasi Lokal operasi lokal merupakan operasi pixel suatu citra yang melibatkan pixel tetangga (neighborhood). Yang dinamakan tetangga dari pixel tertentu merupakan pixel yang terletak di sekitar pixel yang di operasikan [13]. Operasi termasuk dalam operasi lokal adalah operasi konvolusi. Operasi konvolusi digunakan untuk mendeteksi tepi citra, menghilangkan noise, membuat citra menjadi kabur (blur). 2.2.4.3 Operasi Global operasi global merupakan operasi yang melibatkan seluruh pixel dalam suatu citra, nilai tersebut digunakan sebagai acuan untuk menghasilkan suatu citra baru. contoh operasi global adalah proses pada equalisasi histogram. Equalisasi histogram adalah proses pemerataan tingkat keabuan suatu citra sehingga citra menjadi lebih jelas [13].
2.2.5 Perbaikan Citra (Image Enhancement) Perbaikan citra bertujuan meningkatkan kualitas citra untuk mengkonversi citra agar memiliki format yang lebih baik sehingga citra tersebut menjadi lebih mudah diolah oleh mesin[14].
2.2.6 Segmentasi Citra (Image Segmentation) Segmentasi citra adalah teknik untuk membagi citra menjadi beberapa daerah atau region dimana setiap daerah memiliki kemiripan attribut[14]. Beberapa teknik segmentasi antaralain meliputi : pengambangan, penandaan komponen terhubung, segmentasi berbasis cluster, dan transformasi hough. Fokus pada segmentasi citra pada penelitian ini adalah menggunakan teknik pengambangan dan penandaan komponen terhubung. 2.2.6.1. Pengambangan (Thresholding) Teknik segmentasi dengan proses pengambangan ini akan menghasilkan citra biner yakni memiliki dua tingkat keabuan hitam dan putih. Proses pengambangan citra grayscale untuk menghasilkan citra biner sbb:
Dengan g merupakan citra biner hasil pengambangan dan T merupakan nilai ambang.
9
2.2.6.2 Penandaan Komponen Terhubung (Connected Components Labeling) Penandaan komponen terhubung merupakan proses segmentasi citra dengan memeriksa suatu citra dengan mengelompokkan setiap pixel ke dalam suatu komponen terhubung menurut aturan keterhubungan 4, 8 atau N-Connectivity[14]. Sehingga setiap komponen terhubung yang saling tidak terhubung akan diberi tanda yang berbeda.
2.2.7 Support Vector Machine Pattern recognition merupakan bidang ilmu komputer yang memetakan suatu data ke dalam konsep tertentu yang telah didefinisikan sebelumnya, Pada awalnya teknik pattern recognition berbasis Neural network telah berhasil namun teknik ini memiliki beberapa kelemahan antara lain optimisasi yang digunakan tidak selalu mencapai nilai minimal global dari kurva fungsi galatnya, disamping itu kadang terjadi fenomena over-learning yang sering dapat menurunkan kemampuan generalisasinya [3][14]. Berbagai upaya pengembangan dilakukan untuk mengatasi kelemahan tersebut, antara lain pendekatan menggunakan Support Vector Machine (SVM) seperti yang dikemukakan oleh Burges[1]. Support Vector Machine pertama kali diperkenalkan oleh Vladimir Vanpik pada tahun 1992 sebagai rangkaian harmonisasi konsep-konsep unggulan dalam bidang pengenalan pola [6]. Support Vector Machine merupakan metode pembelajaran yang digunakan untuk klasifikasi biner, ide dasarnya adalah mencari hyperplane terbaik yang berfungsi sebagai pemisah dua class pada input space [1].
(a)
(b) Gambar 2.1 SVM berusaha menemukan hyperplane terbaik yang memisahkan kedua class –1 dan +1 (Nugroho, A.S, 2003)
10
Berbeda dengan pendekatan neural network yang berusaha mencari hyperplane pemisah antar class, SVM mencoba mencari dan memisah hyperplane yang terbaik yang berada pada dua kelas, gambar 3 (a) menunjukkan pola-pola yang merupakan anggota dari dua buah kelas +1 dan -1, pola yang berada pada anggota -1 kemudian disimbolkan dengan warna merah, sedangkan pola pada +1 warna kuning. masalah pada klasifikasi dapat di lakukan dengan usaha menemukan garis (hyperplane) yang memisahkan kelompok tersebut. Hyperplane yang menjadi pemisah terbaik dapat ditemukan dengan mengukur margin hyperplane dan mencari titik maksimalnya. Margin adalah jarak antara hyperplane dengan pattern terdekat dari masing-masing class. Pattern yang paling dekat tersebut disebut Support Vector. Untuk pembahasan pada suatu kasus yang dapat dipisahkan secara linier, maka dalam hal ini fungsi pemisah yang dicari adalah fungsi linier. Fungsi tersebut dapat didefinisikan sebagai : g(x) := sqn(f(x)) dengan f(x) = WTX + b masalah klasifikasi ini dapat dirumuskan berikut : kita ingin menemukan set parameter (w,b) sehingga f(x) = < w , x > +b = yi, untuk semua i. Dalam teknik ini kita berusaha menemukan fungsi pemisah (klasifier/hyperplane) terbaik diantara fungsi yang tidak terbatas jumlahnya untuk memisahkan dua macam obyek. Hyperplane terbaik adalah hyperplane yang terletak di tengah-tengah antara dua set obyek dari dua kelas. Mencari hyperplane terbaik ekuivalen dengan memaksimalkan margin atau jarak antara dua set obyek dari kelas yang berbeda. Jika WX1 + b = +1 adalah hyperplane pendukung dari kelas +1 (WX1 + b = +1) dan WX2 + b = -1 hyperplane pendukung dari kelas -1 (WX2 + b = -1), margin antara dua kelas dapat dihitung dengan mencari jarak antara kedua hyperplane-hyperplane pendukung dari kedua kelas. Secar spesifik margin dihitung dengan cara berikut :
11
(WX1 + b = +1) – (WX2 + b = -1) = W(X1 – X2) = 2 = >
Gambar 3 menunjukkan bagaimana SVM bekerja untuk menemukan suatu fungsi pemisah dengan margin yang maksimal.
Gambar 2.2. Mencari fungsi pemisah yang optimal untuk obyek yang dapat dipisahkan secara linier
Untuk membuktikan bahwa memaksimalkan margin antara dua set obyek akan meningkatkan probabilitas pengelompokan secara benar dari data testing. Pada dasarnya jumlah fungsi pemisah tidak terbatas jumlahnya, misalnya dari jumlah yang tak terbatas kita ambil dua fungsi, yaitu ƒ1(x) dan ƒ2(x). Fungsu ƒ1 memiliki margin yang lebih besar daripada ƒ2. Setelah menemukan dua fungsi ini, sekarang suatu data baru masuk dengan keluaran -1. Maka kita harus mengelompokkan apakah data ini ada dalam kelas -1 atau +1 menggunakan fungsi pemisah yang sudah kita temukan. Dengan menggunakan ƒ1, kita akan kelompokkan data baru ini di kelas -1 yang berarti kita benar mengelompokkanya. Kemudian dengan ƒ2 kita akan menempatkanya di kelas +1 yang berarti salah. Dari contoh sederhana ini kita lihat bahwa memperbesar margin bisa meningkatkan probabilitas pengelompokkan suatu data secara benar.
12
2.2.7.1 Metode Kernel Banyak teknik data mining atau machine learning yang dikembangkan dengan asumsi kelinieranya. Sehingga algorithma yang dikembangkan terbatas untuk kasus-kasus yang linier. Karena itu apabila suatu kasus klasifikasi memperlihatkan ketidak linearan, algoritma seperti perceptron tidak dapat mengatasinya. Secara umum kasus di dunia nyata adalah kasus yang tidak linear (Scholkopf and Smola, 2002). Metode kernel merupakan salah satu untuk mengatasi problema tersebut. Dengan metode kerne l suatu data x di input space dimapping ke feature space F dengan dimensi yang lebih tinggi melalui map Φ sebagai berikut Φ: x Φ(x). karena itu data x di input space menjadi Φ(x) di feature space. Dengan kata lain, sementara Φ(x) mungkin tidak diketahuo, dot product < Φ(x1), Φ(x2) > masih bisa di hitung di feature space. Untuk bisa memakai metode kernel, pembatas (constraint) perlu diekspresikan ke dalam bentuk dot product dari vector data xi sebagai konsekuensi, pembatas yang menjelaskan permasalahan dalam klasifikasi harus diformulasikan kembali menjadi bentuk dot product. Dalam feature space ini dot product menjadi < Φ(x), Φ(x)’ >. Suatu fungsi kernel, k(x,x’), bisa untuk menggantikan dot product < (p(x),ip(x)’ >. Kemudian feature space, kita bisa membuat suatu fungsi pemisah yang linear yang mewakili fungsi nonlinear di input space.
Dalam input space, data tidak bisa dipisahkan
secara liniear, namun kita bisa memisahkan di feature space. Karena itu dengan memtakan data ke feature space menjadi tugas klasifikasi lebih mudah [9].
Input Space X
High-Dimensional Feature Space Φ(X) 13
Gambar 2.3. Fungsi
Φ memetakan data ke ruang vektor yang berdimensi lebih
tinggi sehingga kedua class dapat dipisahkan secara linear oleh sebuah hyperplane (Nugroho A.S, 2003).
Fungsi kernel yang biasanya dipakai dalam literature SVM [9]. 1. Linear : xTx 2. Polynomial : (xTxi + 1 ) p 3. Radial Basis Focus : exp ( -
|| xi - xj ||2
4. Sigmoid : tanh(αxi.xj + β )
2σ2
)
Pemilihan kernel yang harus digunakan untuk substitusi dot product di feature space sangat bergantung pada data. Pemilihan fungsi kernel yang tepat adalah hal yang penting karena fungsi kernel ini akan menentukan feature space dimana fungsi klasiner akan dicari. Sepanjang fungsi kernelnya legitimate, SVM akan beroperasi secara benar meskipun kita tidak tahu seperti apa map yang digunakan. Fungsi kernel yang legitimate diberikan oleh Teori Mercer [6]. Dimana fungsi tersebut harus memenuhi syarat : kontinus dan positive definite. Lebih mudah menemukan fungsi kernel daripada mencari map Φ seperti apa yang tepat untuk melakukan mapping dari input space ke feature space.
2.2.8 Support Vector Machines untuk Multi-Kelas Pada awal dikembangkanya SVM pendekatan ini digunakan untuk klasifikasi dua kelas. Pengembangan ke arah persoalan klasifikasi untuk multi kelas masih menjadi perhatian para peneliti [9]. Terdapat dua pendekatan utama untuk SVM multi kelas, yang pertama kita dapat menemukan dan menggabungkan beberapa fungsi pemisah persoalan klasifikasi dua kelas untuk menyelesaikan persoalan klasifikasi multi kelas. Kedua, secara langsung menggunakan semua data dari semua kelas dalam satu formulasi persoalan optimasi. Yang termasuk pada pendekatan pertama dimana beberapa fungsi untuk problem dua kelas dikembangkan lalu digabung antaralain : satu-lawan-semua (One-Againts-All, OAA), dan satu-lawan-satu (One-Againts-One, OAO)[9]. . 14
2.2.8.1 Metode Satu-Lawan-Semua (SLA) Dengan metode ini untuk masalah klasifikasi k-kelas, kita menemukan k fungsi pemisah kita dengan
, dalam metode ini
di train dengan semua data dari
kelas-i dengan label +1 dan semua data dari kelas lain dengan label -1. Ketika kita mentraining
1
, semua data dalam kelas 1 diberi label +1 dan data dari kelas 2 2
dan kelas 3 diberi label -1. Begitu juga ketika kita mentraining
semua data
dalam kelas 2 diberi label +1 dan data yang lain dari kelas 1 dan 3 diberi label -1. Selanjutnya lakukan untuk semua i=1, 2, 3. Jika kita punya (x1, y1), ..., (xi, ye) dimana
data untuk training
adalah data input dan
kelas dari xi yang bersangkutan, fungsi pemisah ke-i menyelesaikan optimisasi berikut : Min Subject to
Terdapat k fungsi pemisah,
. Kemudian
kelas dari suatu data/obyek baru x ditemukan berdasarkan nilai terbesar dari fungsi pemisah. J = class of x = arg max wix + bi, dimana
2.2.8.2 Metode Satu-Lawan-Satu (SLS) Dengan metode ini kita perlu menemukan k(k – 1)/2 fungsi pemisah dimana setiap fungsi ditrain dengan data dari dua kelas. Misalkan kita punya persoalan dengan 3-kelas. Kita harus menemukan 3 fungsi pemisah :
,
dan
.
, semua data dari kelas 1 diberi label +1 dan semua
Ketika kita mentraining
data dari kelas dua diberi label -1. Pendekatan yang sama dipakai untuk mentraining
dan
. 15
min
Subject to
Dimana r menunjukkan indeks dari data dari setiap kelas. Setelah semua fungsi pemisah (k-1)/2 ditemukan, ada beberapa metode untuk melakukan testing untuk data baru. Salah satu strateginya adalah max-voting. Berdasarkan pada strategi ini, untuk pemisah
, jika tanda dari suatu data point x adalah di kelas i
kemudian voting untuk kelas i ditambah satu. Sebaliknya, voting untuk kelas ke j ditambah satu. Lalu diulang langkah tersebut untuk semua fungsi pemisah. Selanjutnya diprediksi x berada pada kelas mana didasarkan pada nilai voting yang paling tinggi. Dalam kasus dimana ada dua kelas dengan nilai voting sama maka dipilih yang indeksnya lebih kecil [9].
2.2.9 Studi Kasus Penerapan Support Vector Machine Di bawah ini akan diperlihatkan contoh studi kasus yang diambil dari (Budi Santosa, 2007) mengenai penerapan metode Support Vector Machine untuk klasifikasi lebih dari satu kelas. 2.2.9.1 Contoh kasus metode Satu-Lawan-Semua (SLA) Katakanlah kita memiliki persoalan dengan 3 kelas. Setelah semua fungsi pemisah ( 3 fungsi ) kita temukan, terdapat empat data baru yang harus ditentukan untuk berada pada kelas yang mana (x1, x2, x3, x4). Nilai prediksi dari setiap fungsi pemisah diberikan dalam matriks berikut. Dalam setiap kolom matriks mewakili nilai prediksi dari setiap fungsi pemisah. 16
y=
18.5965
14.7108
-33.3073
-12.3010
4.6637
7.6373
-9.4610
8.4008
1.0602
-20.0123
2.6552
17.3571
nilai maksimum y untuk setiap titik adalah
18.5965 7.6373 8.4008 17.3571
Berdasarkan nilai maksimum y, kelas dari empat data baru masing-masing adalah 1, 3, 2, dan 3. Berikut ini adalah algoritma SVM multi kelas dengan SLA Input : x,y, fungsi kernel, parameter kernel, C Alpha 0 = [ ] ; % (himpunan kosong) b0=[ ]; %(himpunan kosong) Tentukan Mmax sebagai nilai maksimal dari y ; %label : 1, 2, 3. ....., k Tentukan Mmin sebagai nilai minimal dari y; %label : 1, 2, 3, ....,k M = Mmax-Mmin + 1 sebagai banyaknya kelas Untuk i=1 sampai M, lakukan langkah berikut Ubah nilai label menjadi +1 untuk kelas i dan -1 untuk kelas selain i Panggil program komputer untuk SVM dua kelas untuk mendapatkan alfa dan b dari persoalan klasifikasi dua kelas yang didapatkan
17
alpha0 = [alpha0 alfa]; b0 = [b0 b]; selesai output : alpha0, b0
2.2.9.2 Contoh kasus metode Satu-Lawan-Satu (SLU) Sebagai contoh, kita menerapkan metode SLU untuk kasus yang sama seperti pada studi kasus menggunakan SLA.
18.5965
14.7108
-33.3073
-12.3010
4.6637
7.6373
-9.4610
8.4008
1.0602
-20.0123
2.6552
17.3571
y=
Setelah menemukan semua fungsi pemisah maka kita dapatkan nilai y dari fungsi pemisah
sebagai berikut :
1.4244 -3.8363 y
= -3.4960 -5.2525
Voting untuk nilai diatas :
18
Kelas 1
Kelas2
Kelas3
1
0
0
0
1
0
0
1
0
0
1
0
adalah
Nilai y dari fungsi pemisah
-6.7500 -0.8855 y= 2.7612 -7.5913
Setelah mempertimbangkan semua fungsi pemisah
dan
susunan votingnya
menjadi : Kelas 1
Kelas2
Kelas3
1
0
1
0
1
1
1
1
0
0
1
1
Nilai y dari pemisah
adalah :
19
-24.2676 1.4833 y= -3.6762 7.3307
Setelah mempertimbangkan semua fungsi pemisah
,
dan
nilai votingnya
menjadi : Kelas 1
Kelas2
Kelas3
1
0
2
0
2
1
1
1
0
0
2
1
Jadi berdasarkan nilai voting diatas. Kelas untuk empat data baru ini adalah 3, 2, 1 dan 2.
20
BAB III METODE PENELITIAN
3.1 Metode Penelitian Penelitian ini merupakan penelitian eksperimen dengan metode penelitian sebagai berikut: 1. Penentuan Masalah Penentuan masalah penelitian ini diambil dari beberapa litelatur dan studi lapangan 2. Penentuan Computing Approach Pemilihan computing approach pada pemilihan ini dipilih berdasarkan studi litelatur tentang state of the art dari character recognition dan vehicle license plate recognition. Computing approach pada penelitian ini peneliti menggunakan Support Vector Machine dengan metode klasifikasi multi kelas One Againt All (OAA). 3. Penerapan Support Vector Machine untuk pengenalan karakter pada plat nomor kendaraan. 4. Pengembangan software untuk penerapan computing approach Dalam pengembangan perangkat lunak dalam penelitian ini peneliti menggunakan Matlab, Matlab yang digunakan adalah Matlab versi 7.0.1 dengan tool untuk Support Vector Machine menggunakan STPRTOOL (Statistical Pattern Recognition Toolbox for Matlab) 5. Pengujian dan komparasi dengan data empiris Pengujian dilakukan dengan menguji coba perangkat lunak yang telah dikembangkan dengan data empiris plat nomor, hasil dari pengujian berupa akurasi penerapan Support Vector Machine untuk pengenalan karakter pada plat nomor kendaraan.
21
3.2 Metode Pengumpulan data 1. Data Sekunder Data sekunder yang digunakan dalam penelitian ini diperoleh secara tidak langsung dan bersumber dari litelatur, buku, jurnal dan informasi lainya yang berkaitan dengan masalah yang diteliti.
3.3 Metode Pengukuran Penelitian Pengukuran hasil penelitian dilakukan dengan melihat akurasi proses klasifikasi menggunakan Support Vector Machine dalam proses pengenalan karakter pada plat nomor kendaraan. Proses pengukuran dilakukan dengan menggunakan 100 sample gambar plat nomor kendaraan yang akan diidentifikasi.
3.4 Metode Analisis Data Metode analisis data yang digunakan adalah metode kuantitatif yakni tingkat akurasi yang didapat dari proses klasifikasi menggunakan Support Vector Machine dibandingkan dengan data empiris untuk dianalisa sehingga digunakan untuk mengetahui tingkat kemampuan approach yang digunakan pada pengenalan karakter pada plat nomor kendaraan.
3.5 Penerapan Support Vector Machine pada masalah penelitian proses pengenalan karakter pada penelitian ini dilakukan dalam beberapa tahap yakni proses pelatihan (training) dan proses pengenalan (recognition). Proses pelatihan digunakan untuk memberikan pengetahuan awal (knowledge) dan data hasil pelatihan akan digunakan sebagai pattern yang akan diklasifikasikan pada proses selanjutnya. Sedangkan pada proses pengenalan sistem melakukan proses klasifikasi dari fitur yang telah diekstraksi pada template dengan metode support vector machine untuk mendapatkan kelas terbaik sebagai hasil dari pengenalan karakter.
3.5.1 Proses Training Proses pelatihan digambarkan pada diagram sbb:
22
Input Image
Pre Processing
Fitur Extraction
Pattern Template
Gambar 3.1. Proses pelatihan (training)
3.5.1.1 Input Image Pada Proses Training Image yang digunakan pada proses training ini digunakan sebagai data awal yang pada proses selanjutnya akan di ekstraksi untuk mendapatkan pola-pola, image yang digunakan pada proses ini berupa citra karakter alphanumeric yang digunakan pada plat nomor kendaraan. Citra huruf dan angka yang akan di training yakni citra huruf yang merepresentasikan huruf kapital dan angka yang digunakan pada plat nomor kendaraan antaralain : A-Z, 0-9.
Huruf/Angka (Kelas) A
Citra1
Citra2
B C
23
Citra3
Citra4
Citra5
D E F G H I J K L M N O P Q
R S T
24
U V W X Y Z 1 2 3 4 5 6 7 8 9 0
Tabel 3.1. Citra input
25
3.5.1.2. Proses Pre Processing Image pada Tahap Training proses pre processing image pada tahap training digunakan untuk menentukan kualitas citra yang akan di ekstraksi, proses pada tahap ini hanya mengubah citra RGB ke dalam bentuk citra biner (binerisasi).
Gambar 3.2. Proses binerisasi citra
3.5.1.3. Proses Ekstraksi Fitur Proses ekstraksi fitur digunakan untuk memunculkan ciri serta mereduksi dimensi citra dari dimensi tinggi ke dimensi yang lebih rendah, proses ekstraksi fitur pada citra input dengan mengikuti beberapa nilai attribut sbb : 1. Tinggi dan lebar suatu karakter 2. Nilai centroid 3. Jumlah pixel pada matrix hasil pemetaan citra input
3.5.1.3.1 Mencari Nilai Tinggi dan Lebar Karakter Langkah pertama dalam proses ekstraksi fitur yakni dengan melakukan skeletonisasi pada citra input untuk menghasilkan sumbu pusat karakter yang menyerupai kerangka/skeleton dari karakter aslinya. Proses skeleton dilakukan menggunakan fungsi yang telah terintegrasi pada matlab yakni dengan fungsi bwmorph().
26
Gambar 3.3. Proses skeletonisasi citra
Setelah citra input diubah dalam bentuk skeleton maka dihitung prosentasi antara tinggi huruf dan lebar huruf.
3.5.1.3.2 Mencari Nilai Centroid Centroid adalah sumbu pusat suatu ruang, nilai centroid ini direpresentasikan dalam bentuk koordinat X dan Y yang menyatakan koordinat sumbu pusat. Untuk mencari nilai centroid peneliti menggunakan fungsi yang telah terintegrasi pada Matlab yakni fungsi regionprops(). Sebelum mencari nilai centroid maka proses yang dilakukan adalah mengubah ukuran citra (resize) menjadi 40 x 40 pixel, hal ini digunakan untuk melakukan standarisasi ukuran citra yang akan di ekstraksi, setelah ukuran citra disesuaikan maka selanjutnya adalah mencari nilai centroid dari citra tersebut. Sebagai contoh citra sampel huruf A pada file ”A1.bmp” memiliki nilai centroid sbb : Titik Centroid Citra Sampel A
Gambar 3.4. Pixel centroid citra huruf A
27
Sumbu centroid (X dan Y) untuk citra sampel huruf A yakni X = 20 dan Y=22 3.5.1.3.3 Mencari Jumlah Pixel Gambar yang telah di skeletonisasi selanjutnya di petakan ke dalam matrik 5 x 5 untuk dihitung jumlah pixel pada tiap ruang matrix tersebut. Selanjutnya hasil perhitungan pixel akan disimpan kedalam matrik 25 x 1 sebagai fitur tiap citra input.
Pixel dihitung pada tiap ruang yang terisi pixel bernilai 1
Gambar 3.5. Pemetaan citra dalam matriks 5x5
Berikut ini pseudo code dari program perhitungan nilai pixel yang dibuat menggunakan matlab.
Deskripsi Baris jml baris gambar Kolom jml kolom gambar Ratapixelperbaris int16(baris/5) Ratapixelperkolom int16(kolom/5) jmlPix1 [ ]; Implementasi {perulangan baris} For b 1 : Ratapixelperbaris : Baris – 1 {perulangan kolom} For k 1:Ratapixelkolom:kolom – 1 Jml1 0 Jml0 0
28
{perulangan baris dan kolom pada tiap ruang matrix 5x5} for bb b:1:b+rataPixelBaris-1 for kk k:1:k+rataPixelKolom-1 if(image(bb,kk)= =0) jml0 jml0+1 else jml1 jml1+1 end end end jmlPix1 end
vertcat(jmlPix1,jml1)
end output
[jmlPix1];
hasil dari proses perhitungan jumlah pixel ini akan menghasilkan matrik dengan dimensi baris dan kolom yakni 25 x 1, nilai-nilai tersebut akan di gabungkan dengan nilai yang dihasilkan dari proses 1 dan 2 pada tahap ekstraksi fitur tersebut sehingga contoh fitur hasil ekstraksi untuk kelas A dapat kita lihat pada tabel dibawah :
Kelas
A
Fitur1
Fitur2
Fitur3
Fitur4
Fitur5
0
0
0
0
0
0
0
0
0
0
7.0000
12.0000
9.0000
5.0000
0
0
0
0
0
3.0000
0
0
0
0
8.0000
0
0
0
0
0
7.0000
8.0000
7.0000
6.0000
0
4.0000
1.0000
9.0000
5.0000
1.0000
5.0000
7.0000
0
5.0000
7.0000
0
0
0
0
8.0000
29
0
0
0
0
0
8.0000
8.0000
8.0000
8.0000
1.0000
0
0
2.0000
0
7.0000
8.0000
8.0000
6.0000
8.0000
0
0
0
0
1.0000
4.0000
2.0000
0
11.0000
9.0000
11.0000
12.0000
8.0000
8.0000
8.0000
8.0000
8.0000
8.0000
11.0000
10.0000
10.0000
11.0000
8.0000
1.0000
3.0000
0
0
9.0000
8.0000
9.0000
13.0000
9.0000
9.0000
0
0
4.0000
1.0000
1.0000
0
0
0
0
0
0
0
12.0000
2.0000
0
9.0000
8.0000
8.0000
7.0000
6.0000
20.0000
20.0000
19.0000
21.0000
18.0000
22.0000
22.0000
22.0000
23.0000
19.0000
4.9749
5.1309
5.0785
4.9495
5.1579
5.0251
4.8691
4.9215
5.0505
4.8421
0 8.0000 0
Tabel 3.2. Fitur hasil ekstraksi untuk citra huruf A
3.5.2 Proses Pengenalan (Recognition) Pada tahap proses pengenalan kumpulan fitur hasil ekstraksi citra pada proses training yang telah disimpan akan digunakan untuk proses klasifikasi dengan data input. Metode support vector machine melakukan klasifikasi untuk mendapatkan hyperplane yang terbaik untuk suatu kelas, sehingga kelas yang sesuai dengan fitur pada data input setelah hasil klasifikasi menjadi kelas yang dijadikan sebagai
30
output hasil klasifikasi. Proses pengenalan karakter pada penelitian ini dapat dilihat pada diagram berikut:
Input Image
Pre Processing
Segmentation
Fitur Extraction
Classification using SVM
Pattern Template
Output : ASCII Character
Gambar 3.6. Diagram proses pengenalan karakter
3.5.2.1 Input Image Pada Proses Pengenalan Citra yang digunakan sebagai data input pada proses pengenalan merupakan citra digital hasil scanning dari plat nomor kendaraan, gambar berikut adalah contoh citra sebagai data input pada proses pengenalan.
31
Gambar 3.7. Citra plat nomor sebagai data input
3.5.2.2 Pre Processing Pada Proses Pengenalan Tahap pre processing image pada proses pengenalan digunakan untuk menentukan kualitas citra yang akan di ekstraksi, proses pada tahap ini dilakukan dalam beberapa metode sbb : 1. Binerisasi Citra 2. Menentukan Region Of Interest (ROI) 3. Perbaikan Citra (Image Enchancement)
Proses pertama dari tahap pre processing adalah mengubah citra RGB atau Grayscale menjadi citra biner dengan nilai tiap pixel yakni 0 atau 1. Hasil binerisasi citra plat nomor pada gambar 3.6 menjadi sbb:
B
A
Gambar 3.8. (A) Citra RGB data input (B) Citra hasil binerisasi Setelah proses binerisasi maka selanjutnya adalah menentukan Region Of Interest, dari hasil citra biner maka dapat kita lihat bahwa ROI terdapat pada area sebagai berikut
32
Region Of Interest
Gambar 3.9. Region Of Interest untuk citra input Untuk menentukan region of interest dapat dilakukan dengan menggunakan algoritma sbb: 1. Tentukan titik awal pada 1/3 baris citra dengan rumus TA=(Height/3) 2. Dari titik awal lakukan perulangan hingga baris ke 0 3. Lakukan perulangan dari kolom ke 1 hingga maksimal kolom (width) 4. Jika terdapat nilai pixel 1 dengan jumlah 1/8 dari maksimal kolom maka baris tersebut adalah baris awal, hentikan perulangan. 5. Dari titik awal lakukan perulangan hingga baris ke maksimal baris (height) 6. Lakukan perulangan dari kolom ke 1 hingga maksimal kolom (width) 7. Jika terdapat nilai pixel 1 dengan jumlah 1/8 dari maksimal kolom maka baris tersebut adalah baris akhir, hentikan perulangan. 8. Potong citra input dimulai dari baris awal hingga baris akhir
Pseudo code untuk algoritma pencarian ROI sbb:
Deskripsi [baris,kolom] TitikAwal
size(gmbIn); int16(baris/3);
Implementasi for i= titikAwal:-1:1 jml1 0; for j= 1:kolom if(gmbIn(i,j) > 0) 33
jml1 jml1+1; end end {jika jumlah pixel nilai1 kurang dari 1/8 kolom} if (jml1< (int16((kolom/4)/2))) break; {selesai perulangan} end end barisAwal
i;
for i=titikAwal:baris jml1 0; for j=1:kolom if(gmbIn(i,j) > 0) jml1 jml1+1; end end if (jml1<(int16((kolom/4)/2))) break; end end barisAkhir output
(i-(barisAwal)); imcrop(gmbIn,[1 barisAwal kolom barisAkhir]);
sehingga citra yang telah diproses menjadi sbb:
Gambar 3.10. Citra yang berada pada Region Of Interest
Tahap terakhir dari proses pre processing ini adalah melakukan perbaikan citra (image enchancement). Hal ini dilakukan untuk menghindari ekstraksi fitur yang 34
salah ketika dilakukan proses ekstraksi dikarenakan pada bagian citra terdapat pixel-pixel noise yang tidak diperlukan. Noise pada citra input setelah proses binerisasi dan pemilihan ROI dapat kita lihat sbb: Pixel-pixel yang tidak diperlukan
Gambar 3.11. Citra input dengan noise Langkah selanjutnya adalah proses menghilangkan noise, untuk menghilangkan pixel noise pada citra biner maka peneliti menggunakan fungsi pada matlab yang telah terintegrasi yakni bwareaopen(). Sehingga citra hasil enchancement menjadi sbb:
(A)
(B) Gambar 3.12. (A) Citra input dengan noise (B) Citra hasil image enchancement
3.5.2.3 Segmentasi citra pada proses pengenalan Citra input pada proses pengenalan merupakan citra plat nomor yang berisi kumpulan citra huruf alphanumeric, sedangkan proses pengenalan dilakukan dengan cara mengklasifikasikan hasil ekstraksi fitur huruf demi huruf oleh karena itu sebelum tahap ekstraksi fitur maka diperlukan proses segmentasi citra. Proses
35
segmentasi citra pada penelitian ini dilakukan menggunakan fungsi yang telah terintegrasi pada matlab yakni bwlabel() serta menggunakan perulangan untuk menghitung jumlah pixel yang telah ditandai sebaga pixel yang saling terhubung, algoritma dari proses segmentasi sbb: 1. Tandai pixel-pixel yang saling terhubung 2. Lakukan perulangan dimulai dari 1 hingga maksimal pixel yang ditandai 3. Temukan label pixel yang sesuai, jika ditemukan masukkan pada matrix baris dan kolom. 4. Simpan citra dari min baris hingga max baris dan min kolom hingga mak kolom. 5. Jika belum akhir perulangan loncat ke perintah 3, jika akhir perulangan maka perulangan berakhir
Pseudo code dari proses segmentasi sbb:
Deskripsi imgn=imageInput {image input image setelah pre processing} [L Ne] = bwlabel(imgn); Implementasi for n=1:Ne [r,c] n1 img_r gmbin
find(L==n); imgn(min(r):max(r),min(c):max(c)); n1; img_r;
end setelah proses segmentasi maka citra akan di bagi menjadi potongan-potongan sesuai dengan alphanumeric yang ada pada gambar sbb:
36
(A)
(B) Gambar 3.13. (A) Citra input (B) Citra hasil segmentasi
3.5.2.4 Fiture extraction pada proses pengenalan Proses ekstraksi fitur digunakan untuk memunculkan ciri serta mereduksi dimensi citra dari dimensi tinggi ke dimensi yang lebih rendah, proses ekstraksi fitur citra input pada proses pengenalan sama dengan proses ekstraksi fitur pada proses pelatihan yakni dengan mengikuti beberapa nilai attribut sbb : 1. Tinggi dan lebar suatu karakter 2. Nilai centroid 3. Jumlah pixel pada matrix hasil pemetaan citra input Dengan mengikuti metode yang sama maka hasil ekstraksi fitur untuk citra input yang sama dapat kita lihat pada tabel berikut :
Citra
Fitur
3.0000 0 0 0 3.0000 8.0000 3.0000 1.0000 0
2.0000 8.0000 8.0000 8.0000 0 4.0000 0 0 1.0000
4.0000 8.0000 8.0000 8.0000 6.0000 8.0000 12.0000 16.0000 5.0000 37
2.0000 6.0000 8.0000 8.0000 8.0000 6.0000 8.0000 1.0000 0 1.0000 8.0000 0 0 0 0 2.0000 1.0000 12.0000
0 7.0000 8.0000 8.0000 5.0000 7.0000 1.0000 0 0
0 0 1.0000 0 0 0 2.0000 11.0000 3.0000
8.0000 8.0000 11.0000 8.0000 11.0000 3.0000 8.0000 0 0 0 8.0000 14.0000 1.0000 0 0 3.0000 6.2667 3.7333
8.0000 0 0 8.0000 7.0000 0 3.0000 8.0000 0 0 0 2.0000 11.0000 10.0000 8.0000 11.0000 6.2338 3.7662
0 0 0 0 7.0000 5.0000 0 0 0 0 8.0000 6.0000 8.0000 8.0000 8.0000 1.0000 6.4789 3.5211
7.0000 0 0 0 11.0000 0 8.0000 8.0000 11.0000 11.0000 0 0 7.0000 0 1.0000 0 0 1.0000 1.0000 12.0000 7.0000 0 2.0000 0 8.0000 0 8.0000 7.0000 8.0000 0 1.0000 0 6.2585 7.8261 3.7415 2.1739
0 8.0000 0 3.0000 8.0000 3.0000 8.0000 0 0 0 8.0000 1.0000 8.0000 8.0000 8.0000 0 6.5068 3.4932
0 0 8.0000 0 15.0000 2.0000 2.0000 12.0000 8.0000 13.0000 1.0000 9.0000 0 0 0 6.0000 5.9494 4.0506
Tabel 3.3. fitur-fitur hasil ekstraksi citra setelah segmentasi
3.5.2.5 Klasifikasi menggunakan Support Vector Machine Proses klasifikasi dalam penelitian ini menggunakan STPRTOOL yakni toolbox yang berisi fungsi-fungsi terintegrasi untuk pattern recognition pada matlab salah satunya adalah support vector machine, beberapa fungsi penting pada STPRTOOL yang nantinya akan digunakan antaralain: Fungsi
Deskripsi
evalsvm
Digunakan pada proses training untuk mengevaluasi klasifikasi SVM
oaasvm
Fungsi SVM Multi class One-Againts-All, fungsi ini nantinya digunakan guna mendapatkan model data untuk proses klasifikasi.
svmclass
Fungsi ini digunakan untuk melakukan klasifikasi dan mendapatkan hasil prediksi kelas mana yang memiliki hyperplane terbaik.
Tabel 3.5. Fungsi-fungsi pada STPRTOOL 38
Metode-metode yang dilakukan sebelum tahap klasifikasi antaralain : 1. Menyusun atau me load data hasil ekstraksi fitur pada proses training kedalam matriks berdimensi n x m, dengan options x dan y. 2. Menentukan model data dengan fungsi oaasvm, model data ini berisi boundary antar kelas yang berisi informasi mengenai hyperplane terbaik. 3. Menggunakan fungsi svmclass untuk melakukan klasifikasi dan menghasilkan prediksi kelas yang terbaik
Tahap selanjutnya adalah menyusun data fitur hasil ekstraksi kedalam matriks n x m dengan option X dan y, X menyatakan fitur-fitur hasil ekstraksi dan y menyatakan kelas dari fitur pada X, untuk data y ini merupakan matriks 1 x n sehingga didapat struktur data sbb :
data =
X: [27x181 double] y: [1x181 double]
X menyatakan data fitur hasil ekstraksi dalam bentuk matriks 27 x 181 artinya terdapat 27 baris dan 181 kolom, 27 baris adalah jumlah fitur yang disimpan dan 181 adalah jumlah citra yang di ekstraksi. y menyatakan kelas dari matriks X yakni berupa matriks 1 x 181, 181 mewakili kelas untuk masing-masing citra yang di ekstraksi.
Langkah selanjutnya adalah membuat model dari fitur-fitur yang telah tersusun, dengan menggunakan fungsi oaasvm maka langkahnya sbb:
datamodel=oaasvm(data,struct('ker','rbf','arg',8,'C', 10));
39
sehingga akan dibentuk model sbb:
datamodel =
Alpha: [181x35 double] b: [35x1 double] sv: [1x1 struct] nsv: 181 kercnt: 21488185 options: [1x1 struct] fun: 'svmclass'
Keterangan Alpha
: bobot vektor
b
: bias
sv
: support vector
options
: berisi informasi mengenai kernel yang digunakan, argument, dan konstanta regular
fun
: menyatakan fungsi yang terkait
langkah terakhir adalah klasifikasi, untuk klasifikasi dan mendapatkan kelas terbaik peneliti menggunakan fungsi yang telah terintegrasi pada STPRTOOL yakni svmclass. hasil=svmclass(datain,datamodel);
datain merupakan fitur inputan, datamodel menyatakan model data hasil klasifikasi dengan fungsi SVM multi kelas OAA, hasil dari penggunaan fungsi svmclass berupa prediksi kelas terbaik. 40
Fitur Extraction
Pattern Template
datamodel
Classification using SVM
H 2 5
8
Gambar 3.14. klasifikasi menggunakan SVM
41
1 G A
BAB IV HASIL DAN PEMBAHASAN
4.1 Pengembangan Software yang menerapkan Support Vector Machine 4.1.1 Analisa Kebutuhan Analisa kebutuhan dilakukan untuk merancang suatu sistem dengan tujuan untuk mengetahui
kebutuhan
sistem
baik
saat
perancangan
ataupun
saat
sistem
diimplementasikan, sehingga dengan analisa kebutuhan yang baik maka segala keperluan sistem dapat diketahui dengan lebih tepat dan efektif.
4.1.2 Kebutuhan Software Metode Support Vector Machine dengan pendekatan One-Againts-All akan digunakan pada penelitian ini, namun sebuah metode tidak dapat langsung membuktikan keefektifan dalam menyelesaikan masalah oleh karena itu diperlukan perangkat lunak yang mengimplementasikan metode Support Vector Machine tersebut untuk membuktikan bahwa metode yang digunakan efektif atau tidak. Software yang digunakan untuk pengembangan perangkat lunak pada penelitian ini adalah MATLAB Versi 7.0.1 dengan user interface berbasis Graphical User Interface (GUI). Berikut ini beberapa spesifikasi perangkat keras dan perangkat lunak yang digunakan untuk proses installasi MATLAB pada penelitian ini.
Hardware/Software
Spesifikasi
Processor
Intel(R) Pentium Dual CPU 1.73Hz
Hardisk
500GB
RAM
1536MB
Sistem Operasi
Windows 7 Professional
Software
MATLAB Version 7.0.1 R(14) Service Pack 1
42
4.1.3 Perancangan Sistem Metode perancangan sistem pada penelitian ini menggunakan
use case, sequence
diagram dan activity diagram. Use case menggambarkan interaksi antar user terhadap sistem secara keseluruhan sedangkan activity diagram menggambarkan aliran diagram dalam sistem pengenalan karakter dimulai dari proses preprocessing, image enhancement, fiture extraction dan classification. 4.1.3.1 Use Case diagram Use case diagram berikut menggambarkan bagaimana user berinteraksi dengan sistem, user menentukan citra plat nomor yang akan di kenali, selanjutnya sistem akan melakukan pengenalan citra plat nomor tersebut dan selanjutnya user mendapatkan hasil dari proses pengenalan karakter. uc Actors Sistem Pengenalan karakter
Load Picture
«include» Pilih Citra
User
Prosses Pengenalan
«include» Load Pattern Template
Gambar 4.1. Use Case Diagram Sistem Pengenalan Karakter 43
4.1.3.2 Sequence Diagram Sequence diagram dibawah ini menjelaskan urutan-urutan user berinteraksi dengan sistem secara keseluruhan dari proses pemilihan citra input hingga proses pengenalan karakter. sd Sequence Pilih Citra
User
Form Pengenalan Karakter
Control
Pattern Template
pilih image()
cari image()
image ditemukan() load image()
prosses pengenalan()
prosses klasifikasi()
load pattern()
pattern ditemukan() karakter hasil() display karakter()
(from Actors)
Gambar 4.2. Sequence Diagram Sistem Pengenalan Karakter
44
4.1.3.3 Activity Diagram Activity diagram berikut ini menggambarkan pengguna berinteraksi dengan sistem mulai dari pemilihan citra input hingga proses pengenalan. act Use Case Model
Pilih Image
Load Image
Prosses Pengenalan
Load Pattern Template
Prosses Klasifikasi
Display Hasil
Gambar 4.3. Activity Diagram Sistem Pengenalan Karakter
45
4.1.3.4 User Interface User Interface yang dibuat pada penelitian ini berbasis Graphical User Interface (GUI), user interface ini digunakan sebagai media interaksi antara pengguna dengan sistem yang dibangun. Berikut ini adalah tampilan user interface dari sistem yang dibangun :
Gambar 4.4 User Interface Sistem Pengenalan Karakter
Untuk UIControl terdiri dari dua Edit, dua Push Button, dan satu Axes. UIControl
Nama
Edit
txtFile, txtKarakter
Push Button
btnAmbilGambar, btnKarakter
Axes
Axes1
txtFile digunakan untuk memilih file gambar yang akan di kenali btnAmbilGambar digunakan untuk menampilkan gambar yang dipilih dari txtFile Axes1 digunakan sebagai tempat untuk menampilkan gambar btnKarakater digunakan untuk memulai proses pengenalan 46
txtKarakter digunakan untuk menampilkan hasil pengenalan karakter 4.1.3.5 Tampilan Penggunaan Sistem Pengenalan Karakter Berikut ini adalah tampilan jalanya program ketika digunakan user dari tahap memilih gambar plat nomor, menampilkan gambar pada Axes hingga menampilkan hasil pengenalan karakter. Ketika program dijalankan maka pertama kali akan menampilkan desain seperti gambar dibawah ini :
Gambar 4.5 Tampilan Awal Form Pengenalan Karakter
Selanjutnya user diminta untuk memilih file gambar yang akan dikenali. Untuk memilih file dilakukan dengan cara menulis nama file pada UIControl txtFile pada form ini.
47
Gambar 4.6 Tampilan user memilih file gambar
Setelah file gambar dipilih maka harus tekan btnAmbilGambar untuk ditampilkan pada Axes UIControl.
Gambar 4.7 File gambar ditampilkan pada Axes1 48
Langkah terakhir adalah menekan btnKarakter untuk memulai proses pengenalan dan menampilkan hasilnya pada txtKarakter.
Gambar 4.8 Karakter plat nomor dikenali
4.1.4 Kontruksi Pada tahap kontruksi ini membahas tahap-tahap penerapan metode yang digunakan dalam pembuatan sistem pengenalan karakter, proses kontruksi ini dimulai dari tahap pengembangan sistem pada proses pelatihan hingga proses pengenalan. Kontruksi sistem dibangun kedalam kode program menggunakan tools yang telah ditentukan. Program yang digunakan untuk menerapkan metode tersebut kedalam kode program adalah Matlab Version 7.0.1
4.1.4.1 Kontruksi pada proses pelatihan (training) 4.1.4.1.1 Pre Processing function MatIn = PreProcTraining(gmb)
49
gmbIn=imread(gmb); psf=fspecial('disk',6); gmbIn=imfilter(gmbIn,psf,'circular','conv');
gt=graythresh(gmbIn); gmbIn=im2bw(gmbIn,gt); MatIn=fiturEkstraksi(gmbIn);
4.1.4.1.2 Fiture Extraction
function MatIn = Untitled1(gmb) pxwidth=40; gmbIn=gmb;
hasilRasioLT=getRasioLT(gmbIn); gmbIn=im2bw(gmbIn); [tinggi,lebar]=size(gmbIn); TResize=200; rasioTL=(lebar/tinggi); gmbIn=imresize(gmbIn,[TResize TResize*rasioTL]); gmbIn=bwareaopen(gmbIn,1000); gmbIn=imresize(gmbIn,[pxwidth pxwidth]); gmbIn=bwlabel(gmbIn); re=gmbIn; [f1 re]=lines(re); imgn=f1; [L Ne]=bwlabel(imgn); for n=1:Ne [r,c] = find(L==n); n1=imgn(min(r):max(r),min(c):max(c)); image1=imresize(n1,[pxwidth pxwidth]); 50
end
image1=bwlabel(image1); hasil1=getJmlPixel(image1);
MatIn=[hasil1;hasilRasioLT];
4.1.4.2 Kontruksi pada proses pengenalan (recognition) 4.1.4.2.1 Pre Processing pixelwidth=40; imagen=imread(image_file); psf=fspecial('disk',6); imagen=imfilter(imagen,psf,'circular','conv'); if size(imagen,3)==3 %RGB image imagen=rgb2gray(imagen); end threshold = graythresh(imagen);
imagen =im2bw(imagen,threshold); imagen = getAreaPlat(imagen);
[tinggi,lebar]=size(imagen); rasioTL=(lebar/tinggi); TResize=100; imagen=imresize(imagen,[TResize TResize*rasioTL]); imagen = bwareaopen(imagen,800); mm=bwmorph(imagen,'thin',inf);
Fungsi getAreaPlat function [ output ] = getAreaPlat( image ) 51
gmbIn=image; gmbIn=im2bw(gmbIn); [baris,kolom]=size(gmbIn); titikAwal=int16((baris/2)/1.5); for i=titikAwal:-1:1 jml1=0; for j=1:kolom if(gmbIn(i,j)>0) jml1=jml1+1; end end if (jml1<(int16((kolom/4)/2))) break; end end barisAwal=i; for i=titikAwal:baris jml1=0; for j=1:kolom if(gmbIn(i,j)>0) jml1=jml1+1; end end if (jml1<(int16((kolom/4)/2))) break; end end barisAkhir=(i-(barisAwal)); output= imcrop(gmbIn,[1 barisAwal kolom barisAkhir]);
4.1.4.2.2 Segmentation [L Ne] = bwlabel(imgn); for n=1:Ne [r,c] = find(L==n); n1=imgn(min(r):max(r),min(c):max(c)); 52
img_r=n1; gmbin=img_r;
gmbin=bwlabel(gmbin); gmbin=im2bw(gmbin); datain=fiturEkstraksi(gmbin); end
4.1.4.2.3 Fitur Extraction function MatIn = Untitled1(gmb) pxwidth=40; gmbIn=gmb;
hasilRasioLT=getRasioLT(gmbIn); gmbIn=im2bw(gmbIn); [tinggi,lebar]=size(gmbIn); TResize=200; rasioTL=(lebar/tinggi); gmbIn=imresize(gmbIn,[TResize TResize*rasioTL]); gmbIn=bwareaopen(gmbIn,1000); gmbIn=imresize(gmbIn,[pxwidth pxwidth]); gmbIn=bwlabel(gmbIn); re=gmbIn; [f1 re]=lines(re); imgn=f1; [L Ne]=bwlabel(imgn); for n=1:Ne [r,c] = find(L==n); n1=imgn(min(r):max(r),min(c):max(c)); image1=imresize(n1,[pxwidth pxwidth]); end 53
image1=bwlabel(image1); hasil1=getJmlPixel(image1);
MatIn=[hasil1;hasilRasioLT];
Fungsi getJmlPixel function [ output ] = getJmlPixel( image ) image=bwmorph(image,'thin',inf); [baris,kolom]=size(image); rataPixelBaris=int16(baris/5); rataPixelKolom=int16(kolom/5); bb=0;kk=0; jmlPix1=[]; for b=1:rataPixelBaris:baris-1 for k=1:rataPixelKolom:kolom-1 jml1=0; jml0=0; for bb=b:1:b+rataPixelBaris-1 for kk=k:1:k+rataPixelKolom-1 if(image(bb,kk)==0) jml0=jml0+1; else jml1=jml1+1; end end end
jmlPix1=vertcat(jmlPix1,jml1);
end %end for k end
output=[jmlPix1]; 54
4.1.4.2.4 Classification function [y,dfce] = svmclass(X,model) model=c2s(model); dfce = kernelproj(X, model); nfun = size(dfce,1); if nfun == 1, % Binary case %------------------------------y = ones(size(dfce)); y( find( dfce < 0 )) = 2; else % Multi-class case %------------------------------[dummy,y] = max( dfce ); end return;
function out_data=kernelproj(in_data, model) if isstruct(in_data)==1, out_data = in_data; if ~isempty(model.Alpha) & isfield(model, 'Alpha'), out_data.X = kernelproj_mex(in_data.X, model.Alpha, model.b, ... model.sv.X, model.options.ker, model.options.arg); else [dim,num_data]=size(in_data.X); out_data.X = model.b*ones(1,num_data); end else if ~isempty(model.Alpha) & isfield(model,'Alpha'), out_data = kernelproj_mex(in_data, model.Alpha, model.b, ... model.sv.X, model.options.ker, model.options.arg); else 55
[dim,num_data]=size(in_data); out_data = model.b*ones(1,num_data); end end return;
4.1.4.2 Kontruksi pada form sistem pengenalan karakter function varargout = GUISimulasiSVM(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @GUISimulasiSVM_OpeningFcn, ... 'gui_OutputFcn', @GUISimulasiSVM_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function GUISimulasiSVM_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); if strcmp(get(hObject,'Visible'),'off') plot(rand(5)); end function varargout = GUISimulasiSVM_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function btnAmbilGambar_Callback(hObject, eventdata, handles) axes(handles.axes1); cla; grid off im=imread(get(handles.txtFile,'String')); image(im);
56
function OpenMenuItem_Callback(hObject, eventdata, handles) file = uigetfile('*.fig'); if ~isequal(file, 0) open(file); end function PrintMenuItem_Callback(hObject, eventdata, handles) printdlg(handles.figure1) % -------------------------------------------------------------------function CloseMenuItem_Callback(hObject, eventdata, handles) selection = questdlg(['Close ' get(handles.figure1,'Name') '?'],... ['Close ' get(handles.figure1,'Name') '...'],... 'Yes','No','Yes'); if strcmp(selection,'No') return; end delete(handles.figure1)
% --- Executes on selection change in popupmenu1. function popupmenu1_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')) ; end set(hObject, 'String', {'plot(rand(5))', 'plot(sin(1:0.01:25))', 'bar(1:.5:10)', 'plot(membrane)', 'surf(peaks)'});
% --- Executes during object creation, after setting all properties. function txtFile_CreateFcn(hObject, eventdata, handles) % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in btnKarakter. function btnKarakter_Callback(hObject, eventdata, handles) datamodel=load('datamodelSVM'); karakter=svmocr(get(handles.txtFile,'String'),datamodel.datamodel); set(handles.txtKarakter,'String',karakter);
function txtKarakter_CreateFcn(hObject, eventdata, handles)
57
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
4.2 Implemenasi Pada Objek Penelitian 4.2.1 Objek Penelitian Objek penelitian pada penelitian ini adalah PT Prambanan Kencana cabang semarang yang beralamat pada JL. Siliwangi No. 476 Semarang. Plat nomor yang digunakan pada penelitian ini adalah plat nomor yang diambil dari berbagai jenis kendaraan yang ada pada PT Prambanan Kencana.
4.2.2 Strategi Penerapan Strategi penerapan system pengenalan karakter sesuai dengan batasan pada objek penelitian. Adapun strategi penerapan dalam penelitian ini adalah : 1. Meng-capture semua plat nomor kendaraan pada objek penelitian dengan kondisi dan pencahayaan yang acak, waktu pengambilan antara pukul 10.00 hingga pukul 15.00 dengan kamera digital Samsung dan resolusi citra 3264 x 2448. 2. Melakukan ujicoba aplikasi sesuai dengan urutan pengambilan gambar, dimulai dari proses pre-processing, segmentasi, fitur ekstraksi sampai proses klasifikasi. 3. Melakukan analisa dari hasil penerapan aplikasi.
4.3 Hasil Penerapan Dari hasil ujicoba yang dilakukan terhadap 100 sample plat nomor kendaraan dalam berbagai kondisi yang telah diambil dari objek penelitian maka dapat dilihat pada table hasil pengujian berikut ini :
58
NO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
GAMBAR
GMBPlat1.bmp GMBPlat2.bmp GMBPlat3.bmp GMBPlat4.bmp GMBPlat5.bmp GMBPlat6.bmp GMBPlat7.bmp GMBPlat8.bmp GMBPlat9.bmp GMBPlat10.bmp GMBPlat11.bmp GMBPlat12.bmp GMBPlat13.bmp GMBPlat14.bmp GMBPlat15.bmp GMBPlat16.bmp GMBPlat17.bmp GMBPlat18.bmp GMBPlat19.bmp GMBPlat20.bmp GMBPlat21.bmp GMBPlat22.bmp GMBPlat23.bmp GMBPlat24.bmp GMBPlat25.bmp GMBPlat26.bmp GMBPlat27.bmp GMBPlat28.bmp GMBPlat29.bmp GMBPlat30.bmp GMBPlat31.bmp GMBPlat32.bmp GMBPlat33.bmp GMBPlat34.bmp GMBPlat35.bmp GMBPlat36.bmp GMBPlat37.bmp
HASIL PENGENALAN KARAKTER Karakter Plat Jml Karakter Tdk Terdeteksi Karakter Dikenali Dikenali ya ya ya ya ya ya ya ya ya tidak tidak ya tidak tidak ya ya ya tidak tidak ya ya tidak ya ya ya ya ya ya ya ya ya ya ya tidak tidak tidak ya 59
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
7 7 7 7 7 7 7 7 7 6 5 7 6 4 7 7 7 6 5 7 7 5 7 7 7 7 7 7 7 7 7 7 7 5 6 4 7
0 0 0 0 0 0 0 0 0 1 2 0 1 3 0 0 0 1 2 0 0 2 0 0 0 0 0 0 0 0 0 0 0 2 1 3 0
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
GMBPlat38.bmp GMBPlat39.bmp GMBPlat40.bmp GMBPlat41.bmp GMBPlat42.bmp GMBPlat43.bmp GMBPlat44.bmp GMBPlat45.bmp GMBPlat46.bmp GMBPlat47.bmp GMBPlat48.bmp GMBPlat49.bmp GMBPlat50.bmp GMBPlat51.bmp GMBPlat52.bmp GMBPlat53.bmp GMBPlat54.bmp GMBPlat55.bmp GMBPlat56.bmp GMBPlat57.bmp GMBPlat58.bmp GMBPlat59.bmp GMBPlat60.bmp GMBPlat61.bmp GMBPlat62.bmp GMBPlat63.bmp GMBPlat64.bmp GMBPlat65.bmp GMBPlat66.bmp GMBPlat67.bmp GMBPlat68.bmp GMBPlat69.bmp GMBPlat70.bmp GMBPlat71.bmp GMBPlat72.bmp GMBPlat73.bmp GMBPlat74.bmp GMBPlat75.bmp GMBPlat76.bmp GMBPlat77.bmp GMBPlat78.bmp
ya ya ya tidak ya ya ya ya tidak ya ya ya ya tidak ya tidak ya ya ya ya ya tidak ya ya ya ya ya ya ya ya ya ya ya ya ya ya tidak ya ya ya ya 60
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
7 7 7 5 7 6 7 7 5 7 7 7 7 3 7 5 7 7 7 7 7 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 4 7 7 7 7
0 0 0 2 0 1 0 0 2 0 0 0 0 4 0 2 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
GMBPlat79.bmp GMBPlat80.bmp GMBPlat81.bmp GMBPlat82.bmp GMBPlat83.bmp GMBPlat84.bmp GMBPlat85.bmp GMBPlat86.bmp GMBPlat87.bmp GMBPlat88.bmp GMBPlat89.bmp GMBPlat90.bmp GMBPlat91.bmp GMBPlat92.bmp GMBPlat93.bmp GMBPlat94.bmp GMBPlat95.bmp GMBPlat96.bmp GMBPlat97.bmp GMBPlat98.bmp GMBPlat99.bmp GMBPlat100.bmp
ya ya ya ya ya ya ya ya ya ya ya ya ya tidak ya ya ya ya ya ya ya ya
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
7 7 7 7 7 7 7 7 7 7 7 7 7 4 7 7 7 7 7 7 7 7
0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0
Tabel 4.1 Tabel proses pengukuran
Dari table pengukuran tersebut maka didapatkan hasil pengukuran proses pengenalan karakter menggunakan Support Vector Machine pada 100 sample plat nomor kendaraan yang diambil sbb:
Keterangan Sistem Mendeteksi Plat Nomor Dengan Sempurna
Jumlah Sample
Plat Nomor Terdeteksi
Plat Nomor Tidak Terdeteksi
100
83
17
Tabel 4.2 Hasil pengukuran deteksi plat dengan sempurna
61
Keterangan
Jumlah Sample
Plat Nomor Terdeteksi
Plat Nomor Tidak Terdeteksi
700
661
39
Sistem Mendeteksi Karakter Plat Nomor Dengan Sempurna
Tabel 4.3 Hasil pengukuran deteksi karakter pada plat dengan sempurna
Dari tabel hasil pengukuran diatas maka didapatkan hasil akurasi dalam tabel akurasi sbb
Keterangan
Jumlah Sample
Akurasi
100
83%
700
94.43%
Sistem Mendeteksi Plat Nomor dengan sempurna Sistem Mendeteksi Karakter Plat Nomor Dengan Sempurna
Tabel 4.4 Akurasi sistem pengenalan plat nomor kendaraan berbasis SVM.
4.4 Implikasi Penelitian Dari hasil penelitian yang dilakukan, tingkat akurasi pengenalan karakter plat nomor kendaraan tergantung sekali pada beberapa faktor yakni: pencahayaan, kualitas tulisan, kualitas pengambilan gambar. Factor pencahayaan pada penelitian ini mempengaruhi pada pre-processing yakni pada proses binerisasi dan segmentasi karakter, kualitas tulisan pada plat nomor berpengaruh terhadap proses ekstraksi fitur sehingga mengakibatkan proses klasifikasi yang salah, kualitas gambar yang kurang baik juga akan berpengaruh pada tahap pre-processing dan fitur ekstraksi sehingga pada tahap klasifikasi akan menghasilkan output yang salah.
62
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan Dari hasil penelitian yang dilakukan dengan menerapkan metode Support Vector Machine pada proses pengenalan karakter dapat diambil kesimpulan bahwa metode yang digunakan yakni Support Vector Machine memiliki akurasi yang cukup baik dalam proses pengenalan karakter yakni hingga 94% dan dalam sistem yang dibuat dimulai dari tahap preprocessing, segmentasi ekstraksi fitur, hingga klasifikasi untuk melakukan pengenalan karkater plat nomor kendaraan secara tepat memiliki akurasi yang baik yakni 83% dari 100 sample citra plat nomor yang diujikan. Beberapa hal yang mempengaruhi dalam proses gagalnya pengenalan karakter dalam penelitian ini dikarenakan beberapa faktor yakni : pencahayaan yang tidak merata pada citra, kualitas tulisan pada citra plat nomor, serta kualitas gambar yang di dapatkan. Faktor pencahayaan pada penelitian ini mempengaruhi pada tahap pre-processing yakni pada proses binerisasi dan segmentasi karakter sehingga ketika proses preprocessing mengalami kegagalan akan mengakibatkan proses segmentasi yang salah. kualitas tulisan pada plat nomor berpengaruh terhadap proses ekstraksi fitur sehingga kualitas tulisan pada plat yang kurang baik dapat mengakibatkan proses klasifikasi yang salah. kualitas gambar yang kurang baik juga akan berpengaruh pada tahap preprocessing dan ekstraksi fitur sehingga pada tahap klasifikasi akan menghasilkan keluaran yang tidak sesuai
5.2. Saran Berdasarkan dari hasil analisa dan pembahasan pada penelitian ini, terdapat beberapa saran pengembangan penelitian pengenalan plat nomor kendaraan selanjutnya sbb : 1. Perlunya metode yang lebih baik pada tahap image enhancement dikarenakan kualitas citra yang tidak baik akan berpengaruh terhadap proses selanjutnya. 2. Proses ekstraksi fitur dengan memetakan citra ke dalam matriks N x N sangat terpengaruh dengan jumlah pixel-pixel yang dihasilkan setelah tahap preprocessing sehingga perbedaan sedikit saja pada nilai pixel akan mengakibatkan 63
hasil ekstraksi fitur yang tidak sesuai, sehingga perlu perbaikan pada metode untuk ekstraksi fitur. 3. Pada penelitian selanjutnya diharapkan dapat mengoptimalkan metode Support Vector Machine menggunakan algoritma optimasi yang ada.
64
DAFTAR PUSTAKA
[1]. Boswell, D. (2002). Introduction to Support Vector Machines, Departement of Computer Science and Engineering University of California San Diego. [2]. Dewi Nasien, H. H. (2010). Support Vector Machine (SVM) for English Handwritten Character Tecognition. International Conference on Computer Engineering and Applications . [3]. J.Venkatesh, C. S. (2009). Handwritten Tamil Character Recognition Using SVM. (IJCNS) International Journal of Computer and Network Security Vol. 1, No. 3, December 2009 . [4]. Lan Gan, Z. Y. (2010). Based on Support Vector Machine’s Tumor Image Classifier Design. 2010 International Conference on e-Education, e-Business, e-Management and e-Learning ., . [5]. Zhaoqi Bian, X. Z. (2000). Pattern Recognition. 2nd Edition. Tsinghua University Press, Beijing, 2000 . [6]. A.S. Nugroho, A. W. (2003, December). “Application of Support Vector Machine in Bioinformatics”. Indonesian Scientific Meeting in Central Japan . [7]. W. Jia, H. Zhang, and X. He (2007). "Region-based license plate detection," Journal of Network and Computer Applications, vol. 30, pp. 1324-133. [8]. Luo Qi (2003). " Research on Intelligent Transportation System Technologies and Applications" , Workshop on Power Electronics and Intelligent Transportation System , School of Computer Science and Engineering, Wuhan Institute of Technology,China. [9]. Budi Santosa (2007), “Data Minning : Teknik Pemanfaatan Data untuk Keperluan Bisnis”, Graha Ilmu, Yogyakarta. [10].
Weijuan Wen, Xiangli Huang, and Pengju Zhang (2009), “The Vehicle License
Plat Location Method Base-on Wavelet Transform”, 2009 International Joint Conference on Computational Sciences and Optimization, Communication University of China. [11].
Xiong Chunrong and Huan Wenming (2009), “License Plate Location Based on
Compound Mathematical Morphology”, 2009 Third International Conference on 65
Genetic and Evolutionary Computing, School of Computer Science and Control Guilin University of Electronic Technology Guilin, China [12].
Xiaojuan Ma, Renlong Pan, Lin Wang (2010), “License Plate Character
Recognition Based on Gaussian-Hermite Moments”, 2010 Second International Workshop on Education Technology and Computer Science, Guizhou Key Lab of Pattern Recognition & Intelligent Control Guizhou University for Nationalities Guiyang, China [13].
Darma Putra (2010), “Pengolahan Citra Digital”, Andi Offset, Yogyakarta
[14].
Mauridhi Henry Purnomo dan Arif Muntasa (2010), “Konsep Pengolahan Citra
Digital Dan Ekstraksi Fitur”, Graha Ilmu, Yogyakarta.
66