Jumat, 13 Maret 2015

Algoritma Handwriting recognition dengan zoning dan PCA



Penulis berkesempatan melakukan suatu riset tentang handwiriting recognition mengenai tulisan ‘angka’ dari 0 sampai 9. Tulisan angka yang dibuat oleh manusia mempunyai beragam cara alias melimpah, hal itu



memang sifat alami dari manusia pada umum nya. Oleh karena itu, sebuah algoritma harus bisa melakukan pengenalan atas beragam variasi bentuk angka, misalnya berikut yang terdiri dari 3 font yang berbeda



Ada banyak teknik untuk handwritting recognition yaitu analisis path seperti fuzzy feature extraction, zoning. Setelah membaca banyak literatur, penulis memutuskan untuk menggunakan zoning
Rajashekararadhya SV, Ranjan PV. 2008. Efficient Zone Based Feature Extration Algorithm for Handwritten Numeral Recognition of Four Popular South Indian Scripts. Journal of Theoretical and Applied Information Technology 4 (12): 1171-1181.

#Deskripsi Singkat Algoritma

Penulis menggunakan teknik zoning (yang dioptimasi) agar mampu mengenali tulisan angka dari manusia, agar aplikasi menjadi live-hidup, maka penulis memutuskan untuk membuat versi ‘painting’ menggunakan mouse sebagai alat untuk melukis angka nya. Keputusan untuk menggunakan teknologi yang bersifat applicable, portable, simple, reuse, dan scalable maka ada banyak teknologi yang berkembang dari sisi bahasa pemrograman yaitu .net, java, native, matlab, python, octave. Tapi dari semua teknologi tersebut, maka penulis memutuskan untuk membuat nya dalam .NET lebih tepat nya menggunakan bahasa C# dikarenakan GUI yang relatif mudah daripada aplikasi native (MFC nya windows), sedangkan untuk java, belum digunakan lagi dikarenakan dalam keadaan tertentu sangat lambat untuk melakukan komputasi, sedangkan tidak menggunakan Matlab karena matlab tidak bersifat applicable, not portable hanya cocok untuk developing saja terutama untuk membangun aplikasi berbasis GUI akan sangat susah untuk manajemen trigger event tapi sangat cepat untuk operasi matrix. Selain itu pustaka C# telah banyak dibuat oleh programmer tentu opensource, dalam aplikasi ini, penulis menggunakan Aforge, Accord, dan beberapa source code yang dibuat oleh penulis untuk tujuan yang lebih spesifik.

Penulis juga telah melakukan eksperiment sendiri untuk ‘melatih’ aplikasi agar mampu mengenali angka. Teknik Zoning berperan penting untuk mendapatkan ekstraksi ciri yang digunakan oleh teknik reduksi dimensi untuk mengekstraksi ciri tersebut agar lebih spesifik. Berikut adalah tahapan untuk menyiapkan database.


 

tahapan ekstraksi ciri

Ekstraksi Fitur PCA berupa nilai rerata matrix dan eigen face tranpose yang disimpan dalam bentuk file biner.

#pembuatan aplikasi

Setelah tahapan diatas, maka penulis membuat aplikasi painting menggunakan mouse, berikut adalah tampilan aplikasi nya

User bisa menggunakan mouse (hold tombol kiri mouse) dan gerakan pelan-pelan untuk melukis angka. Gunakan tombol Prediksi untuk memprediksi angka nya

Anda bisa mencoba dengan variasi angka yang lain, aplikasi belum tentu mengenali angka sampai tingkat 100% tapi setidak nya mampu mengenali variasi angka yang normal saja.
Berikut tools yang digunakan
  1. NET 4.0
  2. IDE sharp develop
  3. Bahasa C#
  4. Pustaka tambahan: Aforge, Accord, Ext
  5. Octave
Jika anda menginginkan aplikasi biner nya, silahkan kirim email ke mulkan.ms@gmail.com - www.softscients.web.id - www.mpus.web.id
Share source code dan dokumentasi lengkap nya untuk kalangan riset/mahasiswa silahkan lewat email saja untuk diskusi lebih lanjut






Download


Posting Komentar