BAB 3 PENGENALAN KARAKTER DENGAN GABUNGAN METODE STATISTIK DAN FCM
3.1 Gambaran Umum
Gambar 3.1 Gambar Keseluruhan Proses Secara Umum
73
74 Secara garis besar, keseluruhan proses dapat dikelompokkan menjadi dua bagian, yaitu proses pembuatan basis data dan proses analisis. Proses pembuatan basis data berguna untuk melatih sistem dengan memasukkan data statistik dari setiap karakter (huruf dan angka) pada berkas yang sesuai dengan klasifikasinya, sehingga akan dihasilkan masukan-masukan yang siap pakai untuk melakukan proses analisis. Proses pembuatan basis data terdiri dari dua bagian, yaitu pembuatan basis data statistik dan pembuatan data awal FCM. Proses analisis dilakukan untuk mengetahui tingkat keberhasilan pengenalan karakter berdasarkan karakteristik dan klasifikasi masing-masing karakter yang telah ditentukan. Dari hasil proses analisis inilah nantinya akan diambil suatu kesimpulan apakah karakteristik yang ditentukan sudah cukup dapat diandalkan untuk pengenalan karakter pada plat nomor kendaraan.
3.2
Proses Pembuatan Basis Data dan Training FCM Pada pembuatan basis data dan training FCM, proses yang pertama dilakukan adalah pengolahan citra dan dilanjutkan dengan cropping atau pemotongan citra. Keduanya merupakan bagian dari pemrosesan awal citra. Setelah proses pemotongan selesai, proses dilanjutkan dengan proses segmentasi dan klasifikasi. Dalam proses segmentasi, citra huruf hasil pemotongan (proses sebelumnya) akan dibagi menjadi 32 segmen kecil berbentuk bujur sangkar. Pada proses klasifikasi, setiap bujur sangkar kecil hasil segmentasi akan dihitung bobot piksel hitamnya
75 terhadap bobot piksel hitam secara keseluruhan pada karakter tersebut. Hasil perhitungan tersebut akan disimpan dalam basis data yang statis.
3.2.1
Pemrosesan Awal Pemrosesan awal yang dilakukan meliputi: pengolahan citra (terdiri dari proses
penyekalaan dan binerisasi) dan cropping atau pemotongan (terdiri dari proses penetapan batas atas dan bawah, penetapan batas karakter, pemotongan, dan penyekalaan ulang). Pemrosesan awal ini menghasilkan citra yang siap untuk disegmentasi dan diklasifikasi.
3.2.1.1 Pengolahan Citra Tujuan dari pengolahan citra adalah untuk menghasilkan citra yang lebih mudah untuk diolah, yang akan dipakai dalam proses pemotongan. Setelah melalui proses pengolahan citra, akan didapatkan citra yang lebih sederhana yang sangat signifikan untuk keberhasilan proses-proses berikutnya.
3.2.1.1.1 Penyekalaan Tujuan dari proses penyekalaan adalah untuk menyamakan ukuran citra awal dari banyak citra plat nomor kendaraan yang disimpan, sehingga citra tidak ada yang terlalu besar maupun terlalu kecil. Penyekalaan menjadi penting karena citra yang
76 terlalu besar akan memperlambat proses dan citra yang terlalu kecil akan menyulitkan proses segmentasi. Oleh karena itu, kami menetapkan setiap tinggi citra plat yang masuk akan diubah tingginya menjadi 100 piksel, dimana lebih kurang rata-rata ukuran tinggi karakter pada citra plat menjadi 60 piksel (karena pada basis data menggunakan ukuran tinggi x lebar = 40 x 20), dimana citra masukan tersebut akan mengecil ukurannya karena ukuran citra dari hasil pemotretan yang paling kecil yaitu: tinggi x lebar = 118 x 327, sedangkan yang paling besar yaitu 642 x 1956. Dengan ukuran yang relatif kecil (dengan mengubah tinggi menjadi 100), proses pengolahan citra dapat berlangsung lebih cepat, sedangkan untuk lebarnya akan menyesuaikan dengan mempertahankan aspek rasio dari ukuran citra awal dengan rumus seperti berikut: Lt = 100 / Ta ............................................................................................. 3.1 Lt = Lebar citra akhir hasil dari penyekalaan Ta = Tinggi citra awal
Proses penyekalaan ini menghasilkan citra plat yang telah diskala dengan ukuran yang sama tanpa terpengaruh pada ukuran citra awal sebelum diskala. Citra plat dengan ukuran yang sama ini akan sangat membantu proses selanjutnya, terutama dalam penentuan nilai-nilai ambang pada proses penetapan batas, pembuatan histogram keseluruhan citra, serta proses segmentasi dan pemotongan. Perbedaan ukuran citra plat dapat menyebabkan proses-proses tadi menjadi tidak akurat.
77 3.2.1.1.2 Binerisasi Proses ini digunakan untuk mengubah warna pada citra plat nomor kendaraan menjadi sebuah citra biner sesuai dengan nilai ambang yang digunakan. Awal prosesnya adalah dengan mengubah nilai tiap piksel dari citra plat menjadi nilai piksel level keabuan, yaitu dengan mengambil nilai rata-rata dari ketiga unsur warna RGB. Proses dapat dilihat dari potongan pseudocode berikut: Ulangi sebanyak tinggi citra Ulangi sebanyak lebar citra Ambil nilai piksel (p) Red = (0xff & (p >> 16)) Green = (0xff & (p >> 8)) Blue = (0xff & p) P = ((red+green+blue)/3)//piksel warna keabuan
Setelah semua piksel diubah menjadi nilai keabuan, pencarian nilai ambang pun dilakukan. Ada beberapa cara untuk menentukan nilai ambang, misalnya dengan menentukan langsung berdasarkan nilai tengah dari level keabuan, yaitu 127 dan 128; dengan menentukan suatu nilai tertentu sebagai nilai rata-rata dari total piksel level keabuan dalam citra, dan menjadikannya sebagai nilai ambang rata-rata (mean threshold value). Cara menentukan nilai ambang yang digunakan pada penelitian ini adalah
78 dengan menentukan nilai rata-rata dari total piksel level keabuan dalam citra, dan menjadikannya sebagai nilai ambang rata-rata.
Nilai ambang = Σ nilai piksel keabuan / Σ piksel ................................. 3.2
Kemudian setelah didapat nilai ambang tersebut, maka akan dilakukan perbandingan tiap nilai piksel dari citra keabuan tersebut dengan nilai ambangnya. Jika nilai piksel lebih besar dari nilai ambangnya (yang berarti nilai piksel lebih terang dari pada nilai ambang), maka nilai piksel tersebut akan diubah menjadi 0 (nol), yang mempunyai nilai heksadesimal 0xff000000 (piksel berwarna hitam). Sedangkan jika yang terjadi sebaliknya, yaitu nilai pikselnya lebih kecil dari nilai ambang yang ditentukan, maka nilai piksel tersebut akan diubah menjadi 1 (satu), yang mempunyai nilai heksadesimal 0xffffffff. Algoritma untuk fungsi tersebut : Jika (nilai piksel keabuan < nilai ambang) maka Nilai piksel baru = 0xffffffff; //warna putih Jika tidak Nilai piksel baru = 0xff000000; //warna hitam
79 Hasil penggunaan nilai ambang dapat dilihat pada gambar berikut dengan menggunakan citra plat yang ditinjau dari segi pencahayaan maupun keseragaman warnanya cukup baik.
(a)
(b)
(c) Gambar 3.2 (a) Plat awal, (b) Binerisasi dengan nilai 128, (c) Binerisasi dengan nilai rata-rata
80 Hasil yang didapat antara nilai ambang, baik yang bernilai 128 maupun dengan nilai ambang rata-rata tidaklah berbeda banyak. Berdasarkan percobaan yang dilakukan, untuk kondisi plat yang relatif terang (rata-rata piksel keabuannya lebih besar dari 128), perbedaan yang ada memang tidak begitu signifikan. Namun untuk citra plat yang cenderung gelap, hasil binerisasi yang didapat akan sangat jelas perbedaannya dengan menggunakan kedua metode pemilihan nilai ambang di atas, bahkan citra plat hasil binerisasi dapat berupa hanya warna putih saja. Hasilnya dapat dilihat pada contoh berikut:
(a)
(b)
(c) Gambar 3.3 (a) Plat awal, (b) Nilai ambang = 128, (c) Nilai ambang = nilai rata-rata
81 Setelah dilakukan percobaan terhadap contoh plat sebanyak 50, ternyata dengan menggunakan nilai ambang rata-rata tersebut (berkisar antara 30 sampai dengan 79), banyak citra yang setelah dilakukan proses binerisasi masih kurang baik kualitasnnya. Citra yang dihasilkan kadang-kadang mempunyai terlalu banyak derau yang berupa bercak-bercak hitam, selain itu juga menyebabkan karakter terlihat ‘gemuk’. Lalu untuk menghilangkan bercak-bercak hitam tersebut sekaligus ‘merampingkan’ karakterkarakter tersebut, nilai ambang rata-rata tersebut ditambahkan dengan suatu nilai tertentu berdasarka hasil percobaan yang dilakukan, nilai yang paling efektif yaitu sebesar 32. Namun setelah melakukan penambahan nilai tersebut, ada beberapa plat yang dimana setelah mendapatkan penambahan justru merusak karakter-karakternya. Setelah diteliti lebih lanjut, ternyata kerusakan terjadi pada citra yang nilai ambang rata-ratanya 30 – 38. Olah karena itu ditetapkan sebuah nilai ambang sebesar 40, dimana jika nilai rata-rata ambang dari suatu citra kurang dari atau sama dengan 40, maka nilai ambang citra tersebut akan ditambahkan 32, sedangkan jika nilai rata-rata ambangnya lebih besar dari 40, maka tidak dilakukan penambahan. Aturan dari pengambilan nilai ambang tersebut dapat dilihat pada pseudocode berikut: Jika nilai rata-rata ambang > 40 maka Nilai rata-rata ambang =+ 32 Jika tidak
82 Nilai rata-rata ambang tetap
Sedangkan alasan mengapa penambahan yang dipilih adalah 32 adalah karena berdasarkan hasil percobaan kami, nilai 32 merupakan nilai yang terbaik yang sudah kami uji pada 50 contoh citra plat secara acak.
3.2.1.2 Pemotongan (Cropping) Segmentasi merupakan salah satu proses yang sangat penting dalam sistem pengenalan karakter, terutama dalam sistem yang menggunakan pendekatan statistik Karena ketidakakuratan delam mengekstraksi karakter, suatu karakter akan mengubah nilai statistik dari suatu karakter. Dalam proses segmentasi, selain memiashkan karakter-karakter dari citra biner, dilakukan juga pemisahan antara karakter huruf dengan karakter angka. Proses segmentasi dapat dibagi menjadi 4 proses penting, yaitu : 1. Penetapan batas atas dan batas bawah citra plat 2. Penetapan batas karakter 3. Pemotongan 4. Penyekalaan ulang
83 3.2.1.2.1 Penetapan Batas Atas dan Batas Bawah Citra Plat Pada proses pertama dari proses segmentasi ini, dilakukan scanning terhadap baris-baris piksel yang terdapat pada citra tersebut. Penentuan batas atas dan bawah dilakukan dengan menghitung jumlah piksel hitam yang terdapat pada satu baris piksel. Batas atas dan batas bawah yang diperoleh akan digunakan untuk membantu keakuratan proses penentuan batas masing-masing karakter. Batas akan ditentukan dengan menggunakan algoritma: Ulangi dari baris ke-0 sampai baris ke-5 Cek setiap piksel pada baris tersebut Jika jumlah piksel hitam = 0maka Batas atas = baris piksel tersebut
Jika pseudocode di atas gagal menemukan batas atas citra, maka digunakan pseudocode berikut: X = lebar citra / 3 Ulangi dari baris ke-0 sampai baris ke-10 Cek setiap piksel pada baris tersebut Jika jumlah piksel htam <=x maka Batas atas = baris piksel
84 X = jumlah piksel hitam
Sedangkan penentuan batas bawah dilakukan dengan menggunakan algoritma yang memanfaatkan karakteristik plat nomor di Indonesia yang memiliki garis putih pada bagian bawah plat: Ulangi dari baris piksel ke-tinggi citra/2 sampai baris piksel ke-tinggi citra Cek setiap piksel pada baris tersebut Jika jumlah piksel hitam >= ¾ lebar citra maka Batas bawah = baris piksel
Jika pada citra plat nomor yang akan ditentukan batas bawahnya tidak ditemukan garis putih pada bagian bawah plat, maka algoritma yang digunakan adalah: Ulangi dari baris piksel ke-tinggi citra/2 sampai baris piksel ke-tinggi citra Cek setiap piksel pada baris tersebut Jika jumlah piksel putih >= ¾ lebar citra maka Batas bawah = baris piksel
Proses penentuan batas atas dan batas bawah ini cukup sulit dilakukan terutama apabila citra plat yang dijadikan masukan memiliki banyak derau atau distorsi.
85 Penentuan batas atas dan batas bawah ini membantu pembuatan histogram keseluruhan yang akan digunakan untuk menetapkan batas-batas tiap karakter.
3.2.1.2.2 Penetapan Batas Karakter Dalam proses ini akan dihitung posisi batas kiri, kanan, atas, bawah serta lebar dan tinggi dari masing-masing karakter. Batas kiri dari setiap karakter dilakukan dengan melakukan pengecekan terhadap piksel hitam dari karakter. Penetapan batas karakter pada plat ini dihitung dengan menggunakan batas atas dan batas bawah citra plat, sehingga memiliki tingkat keakuratan yang baik. Berikut adalah pseudocode yang digunakan untuk menghitung histogram keseluruhan citra: For(int index=0;index<((batas bawah-batas atas)x lebar citra);index++) If(nilai piksel yang ke-index=0xff000000); //warna hitam Nilai piksel yang ke-[index % lebar citra] = nilai piksel yang ke[index % lebar citra] + 1;
Batas kiri dan batas kanan ditentukan bergantian, yaitu jika jumlah piksel hitam yang terdapat pada suatu kolom bernilai lebih besar dari nilai ambang, maka kolom tersebut adalah batas kiri karakter. Kemudian jika jumlah piksel hitam pada suatu kolom bernilai nilai ambang, maka kolom tersebut adalah batas kanan karakter. Proses pengecekan tersebut dilakukan terus sampai semua karakter berhasil dihitung batas kiri
86 dan kanannya. Berikut adalah pseudocode yang digunakan untuk menentukan batas kiri dan kana tiap karakter: For(int index = 0; index < panjang histogram keseluruhan;index++) If(i%2==0) If(nilai piksel hitam keseluruhan pada kolom ke-index > nilai ambang) Batas yang ke-i = index; Temp++; Else if(nilai piksel hitam keseluruhan pada kolom ke-index < nilai ambang) Batas yang ke-i = index; Temp++;
Nilai ambang yang akan dipakai diberi nilai 5, namun pada saat dilakukan pengecekan dan ternyata batas yang dicari tidak didapat, maka nilai ambang akan ditambah untuk memperoleh batas-batas yang dicari. Nilai ambang sebesar 5 tersebut hanya digunakan untuk proses penentuan batas pada citra plat mobil, sedangkan pada citra plat motor digunakan nilai ambang sebesar 3. Perbedaan nilai ambang ini dilakukan karena karakter pada plat motor lebih kecil daripada karakter pada plat mobil.
87 Jumlah batas kiri dan batas kanan juga dapat digunakan untuk menghitung jumlah karakter yang terdapat pada citra plat tersebut. Selain itu, posisi dari batas kiri dan kanan tadi juga akan digunakan untuk menentukan apakah karakter tertentu pada citra plat adalah huruf atau angka, yaitu dengan menentukan 2 jarak karakter terbesar den membagi plat berdasarkan 2 posisi jarak tersebut. Karakter di sebelah kiri jarak terbesar pertama adalah huruf, karakter-karakter di antara kedua jarak terbesar tersebut adalah angka, dan karakter di sebelah kanan jarak terbesar kedua adalah huruf. Selain itu juga dilakukan pengecekan apakah jumlah karakter pada sebuah plat nomor berjumlah 8, karena plat yang memiliki 8 karakter akan terdiri dari 2 huruf – 4 angka – 2 huruf. Sedangkan penentuan batas bawah dan batas atas masing-masing karakter dilakukan dengan algoritma yang sama dengan penentuan batas atas dan batas bawah citra plat pada proses sebelumnya, hanya saja pengecekan dilakukan di antara batas kiri dan kanan masing-masing karakter.
3.2.1.2.3 Pemotongan Setelah batas dan posisi masing-masing karakter berhasil ditentukan, dilakukan proses pemotongan sesuai dengan batas-batas dan posisi masing-masing karakter yang telah didapat. Proses pemotongan bertujuan untuk memisahkan karakter-karakter yang telah disegmentasi. Jumlah proses pemotongan sesuai dengan jumlah karakter yang
88 terdeteksi pada proses penentuan batas kiri dan batas kanan dari masing-masing karakter.
3.2.1.2.4 Penyekalaan Ulang Selanjutnya, proses terakhir dari proses segmentasi ini adalah proses penyekalaan ulang, dimana sejumlah karakter yang telah diekstraksi dari citra plat akan diatur ulang ukurannya menjadi ukuran yang telah kita tetapkan sebelumnya, yaitu:
Lebar x tinggi = 20 piksel x 40 piksel
Tujuan dari penyekalaan ulang gambar ini adalah untuk mendapatkan bentuk karakter yang seragam, sehingga data statistik yang akan didapat akan lebih konsisten dan universal untuk setiap karakternya. Hal ini sangat berguna pada proses pembuatan basis data dan analisis karena ukuran karakter yang berbeda-beda sangat menyulitkan proses analisis. Ukuran 20 piksel x 40 piksel yang dipilih juga dimaksudkan agar proses pembuatan basis data dan pengujian tidak terlalu lama karena semakin besar ukuran karakter, semakin lama pula prosesnya. Namun ukuran karakter juga tidak boleh terlalu kecil karena akan menyebabkan banyak karakteristik histogram karakter tersebut yang hilang.
89 3.2.2
Segmentasi dan Klasifikasi Proses ini dilakukan dengan cara mengelompokkan karakter-karekter tersebut
sesuai dengan kemiripan antar karakter berdasarkan nilai statistik mereka. 3.2.2.1 Segmentasi Dalam proses segmentasi, tiap karakter akan dibagi menjadi 32 bagian bujur sangkar yang sama besar. Tiap bujur sangkar (segmen) berukuran 5 piksel x 5 piksel = 25 piksel. Berikut gambaran proses segmentasi karakter:
Gambar 3.4 Segmentasi Karakter
90 3.2.2.2 Klasifikasi Pada proses ini setiap bujur sangkar kecil hasil segmentasi akan dihitung bobot piksel hitamnya terhadap bobot piksel hitam secara keseluruhan pada karakter tersebut. Metode pembacaan piksel hitam tiap segmennya sama seperti pembacaan piksel hitam pada saat akan memotong karakter. Tiap segmen yang berbentuk bujur sangkar akan memiliki nilai masing-masing. Nilai tersebut didapat dari: Jumlah piksel hitam pada segmen [x,y] x 100% Bobot segmen [x,y] = Jumlah piksel hitam yang terdapat pada karakter tersebut
Setelah semua segmen dihitung bobotnya, maka akan terdapat matriks bobot berukuran 4 x 8 seperti berikut: (1,1)
(1,2)
(1,3)
(1,4)
(2,1)
(2,2)
(2,3)
(2,4)
(3,1)
(3,2)
(3,3)
(3,4)
4,1)
(4,2)
(4,3)
(4,4)
(5,1)
(5,2)
(5,3)
(5,4)
(6,1)
(6,2)
(6,3)
(6,4)
(7,1)
(7,2)
(7,3)
(7,4)
(8,1)
(8,2)
(8,3)
(8,4)
Gambar 3.5 Matriks Bobot Segmen
91 Tiap nilai segmen akan disimpan dalam basis data yang statis untuk proses pengenalan karakter dengan pendekatan statistik. Selain itu, nilai-nilai tersebut juga akan dipetakan dalam ruang FCM sebagai training nilai. Data-data tiap segmen dihitung dalam MATLAB. Berikut gambaran hasil perhitungan:
Gambar 3.6 Hasil Perhitungan Bobot Segmen pada MATLAB
92 3.2.3
Penulisan Data Histogram Setelah proses segmentasi dan klasifikasi selesai, data matriks bobot tiap segmen
pada suatu karakter akan disimpan dalan sebuah file, sesuai dengan pengklasifikasian yang sudah ditentukan sebelumnya. Matriks bobot yang telah disimpan akan dijadikan tolak ukur dan mewakili ciri dan nilai karakter tersebut. Proses penulisan matriks bobot segmen akan dimulai dari kiri ke kanan, dari baris atas ke bawah. Dengan kata lain, nilai-nilai bobot akan dituliskan dalam satu baris tiap karakternya. Penulisan akan dimulai dengan jumlah piksel secara keseluruhan, kemudian diikuti dengan nilai bobot tiap segmen, dan diakhiri dengan identitas karakter. Setiap nilai akan dipisahkan dengan spasi. Berikut format penulisan nilai bobot: Jumlah piksel (1,1) (1,2) (1,3) (1,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4) (4,1) (4,2) (4,3) (4,4) (5,1) (5,2) (5,3) (5,4) (6,1) (6,2) (6,3) (6,4) (7,1 ) (7,2) (7,3) (7,4) (8,1) (8,2) (8,3) (8,4) Karakter
Format penulisan ini akan dimasukkan ke dalam file .txt yang akan menampung semua data, baik hasil training maupun data pengujian. Penulisan akan dilakukan per baris, tiap data akan dituliskan dalam satu baris. Untuk keperluan pembangunan basis data analisis secara statistik, rata-rata penulisan setiap karakter dilakukan sebanyak 30 kali karena terdapat perbedaan nilai bobot karakter dengan identitas yang sama. Selain itu, semakin banyak data yang ada, maka nilai keakuratannya akan semakin mendekati sempurna. Karakter yang datanya dimasukkan ke dalam basis data adalah karakter-karakter dengan bentuk yang unik, bukan karakter yang terkena noise atau distorsi. Karakter-karekter tersebut diambil dari
93 200 plat nomor mobil den berbeda dengan plat-plat nomor kendaraan yang digunakan pada pengujian, sedangkan untuk basis data motor, digunakan 40 plat nomor yang juga berbeda dengan yang digunakan pada waktu pengujian. Banyaknya data yang dimasukkan ke dalam basis data juga diperhatikan sebab semakin banyak data, proses pengenalan karakter lebih lambat. Sedangkan untuk keperluan pembelajaran pada FCM, tiap karakter yang masuk akan langsung diproses nilainya, sehingga lingkungan FCM dapat menyempurnakan letak titik pusat tiap cluster-nya. Semakin banyak data yang dimasukkan, FCM akan lebih mudah menentukan cluster data selanjutnya. Proses pembuatan basis data untuk mobil dan motor tidak mempunyai perbedaan kecuali data masukkannya.
3.3
Proses Analisis Pada proses analisis, pemrosesan awal dan klasifikasi yang dilakukan terhadap citra sama persis dengan saat dilakukan proses pembuatan basis data. Jika karakter sudah terklasifikasi, dilakukan proses analisis pengenalan karakter dengan pendekatan statistik. Apabila analisis pengenalan karakter dengan pendekatan statistik gagal mengenali satu atau lebih karakter dari suatu plat nomor kendaraan, satu atau lebih karakter tersebut akan dianalisis dengan menggunakan pendekatan FCM.
94 3.3.1
Analisis Pengenalan Karakter dengan Pendekatan Statistik Setelah melalui proses pengolahan citra, pemotongan, segmentasi, dan
klasifikasi, nilai bobot yang sudah diperoleh melalui proses-proses tersebut akan dibandingkan dengan nilai bobot yang ada di basis data. Untuk menemukan suatu karakter, digunakan cara sebagai berikut: Jika selisih antara nilai bobot dari data-data yang ada pada basis data dengan data yang akan dianalisis dan selisih dari posisi nilai maksimum tersebut kurang dari nilai ambang, maka cek dan bandingkan data-data yang ada pada basis data dengan data dari plat yang dianalisi. Nilai ambang adalah batasan nilai yang digunakan, besar awalnya adalah dua dan bertambah satu bila pada pengecekan sebelumnya tidak diperoleh nilai kesamaan yang sesuai (antara 15 - 20). Jika nilai data pada kolom yang sama bernilai sama atau berselisih satu, maka nilai kesamaannya bertambah satu. Setelah semua data dicek, akan didapat nilai kesamaan keseluruhan (maksimum nilai kesamaan = 20). Jika nilai kesamaannya mempunyai nilai antara 15 - 20, maka karakter yang dianalisis kemungkinan sama dengan karakter yang datanya digunakan pada proses ini. Kemungkinan tersebut dapat terjadi karena data yang dianalisis tidak dibandingkan hanya dengan satu set data saja, tetapi lebih dari satu set data yang berasal dari karakter yang berbeda, sehingga akan didapatkan beberapa kesamaan. Untuk penentuan terakhir, nilai kesamaan yang telah diperoleh dibandingkan satu sama lain hingga didapatkan nilai kesamaan yang paling besar.
95 3.3.2
Proses Switching Proses switching yang dimaksud adalah proses penggantian metode pengenalan
karakter dari metode statistik menjadi metode FCM. Apabila analisis dengan pendakatan statistik gagal mengenali satu atau lebih karakter pada plat nomor kendaraan (pada program aplikasi akan terlihat karakter ‘?’), maka plat tersebut akan dianalisis kembali dengan menggunakan pendekatan FCM. Semua karakter pada plat akan kembali dianalisis dengan pendekatan FCM, tidak hanya karakter yang gagal dikenali. Hal ini juga berlaku ketika pendekatan statistik secara bersamaan gagal dan salah mengenali karakter pada plat nomor yang dianalisis. Namun, apabila analisis pendekatan statistik hanya salah dalam mengenali karakter pada plat nomor kendaraan (misalnya: karakter ‘8’ dikenali sebagai karakter ‘3’), maka proses tidak akan menganalisis kembali plat tersebut dengan pendekatan FCM.
3.3.3
Analisis Pengenalan Karakter dengan Pendekatan FCM Apabila dengan menggunakan pendekatan statistik karakter masih belum dapat
dikenali, analisis akan dilanjutkan dengan pendekatan FCM. Dengan data histogram yang sudah diperoleh melalui proses sebelumnya, setiap karakter akan diperiksa dan dihitung nilai keanggotaannya terhadap cluster-cluster yang mewakili masing-masing karakter plat nomor kendaraan.
96 Alasan dipilihnya algoritma FCM, bukan algoritma Substractive Clustering adalah karena dalam permasalahan yang dihadapi, jumlah cluster dapat ditentukan sebelumnya, yaitu 36 cluster. 36 cluster tersebut tersebut terdiri dari 26 cluster karakter huruf (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, dan Z) dan 10 cluster karakter angka (0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9). Untuk menemukan suatu karakter, digunakan cara sebagai berikut: Masukkan data berupa matriks yang terdiri dari rangkaian angka yang menunjukkan nilai bobot tiap segmen dari karakter yang akan dicari. Setelah itu, nilai bobot karakter akan dimasukkan sebagai input proses FCM. Proses ini tentunya telah mendapatkan training dan akan melatih dirinya sendiri setiap kali menerima input. Karakter akan menemukan selisih jarak terdekatnya dengan pusat cluster. Cluster inilah yang menjadi identitas karakter yang dicari. Setelah proses training selesai, tiap data karakter pada plat kendaraan bermotor yang gagal dikenali akan menjadi masukan dalam proses FCM ini. Pertama, data karakter yang berupa rangkaian nilai matriks bobot akan dipetakan dalam bentuk titik data pada variabel lingkungan FCM yang telah di-train sebelumnya. Setelah itu, titik data tersebut akan dihitung jarak euclidean dengan masing-masing pusat cluster. Selanjutnya, akan didapat nilai-nilai jarak dengan masing-masing pusat cluster. Data akan memiliki identitas sebagai suatu karakter yang jarak euclidean-nya paling kecil. Dapat pula dikatakan data akan memiliki identitas pusat cluster terdekat. Setelah semua proses tersebut, proses dilanjutkan dengan menghitung pusat cluster baru.
97 Sebagai contoh, berikut plat dengan karakter yang gagal dikenali dengan menggunakan pendekatan statistik:
Gambar 3.7 Plat yang memiliki karakter yang gagal dikenali dengan pendekatan statistik Dengan menggunakan pendekatan statistik, tidak semua karakter pada plat nomor di atas dapat dikenali. Karakter ‘2’ pada plat di atas tidak mampu dikenali oleh analisis semantik. Seperti yang telah ditentukan, karakter yang gagal dikenali dengan pendekatan semantik, akan dikenali dengan pendekatan FCM. Karakter ‘2’ di atas tentunya telah melewati proses-proses sebelumnya. Oleh karena itu, karakter ‘2’ tersebut tentunya telah memiliki matriks nilai bobot. Matriks nilai bobot sebagai representasi karakter angka ‘2’ tersebut akan dijadikan input dalam lingkungan FCM. Dari seluruh nilai bobot yang dimiliki oleh karakter ‘2’, karakter ini akan dipetakan dalam lingkungan FCM sebagai sebuah titik. Kemudian, titik tersebut akan dihitung selisih jaraknya dengan setiap titik pusat cluster yang telah terbentuk dalam lingkungan FCM tersebut. Setelah jarak titik data yang baru (data karakter ‘2’) dihitung dengan tiap pusat cluster dan mendapatkan nilai terdekat, karakter ‘2’ akan
98 dikenali sebagai angka 2. Hal ini disebabkan oleh karena letak titik data karakter ‘2’ dalam FCM paling dekat dengan pusat cluster karakter ‘2’. Akibat banyaknya nilai bobot yang mewakili tiap karakter (32 nilai bobot untuk masing-masing karakter), sebaran titik-titik data dan pusat cluster karakter pada lingkungan FCM tidak mungkin dipetakan.
3.4
Hasil Pengujian Setelah proses analisis selesai, maka akan didapatkan hasil pengujian,seperti dapat dilihat pada gambar berikut:
(a)
(b)
99
(c) Gambar 3.8 (a) Citra Plat yang telah diskala ulang (b) Citra Plat yang telah dibinerisasi (c) Citra karakter yang telah melalui pemotongan
proses