
Lagi-lagi penulis menggunakan bahasa functional yaitu matlab dan python.
Python digunakan untuk membuat database ribuan citra huruf dari berbagai ratusan jenis font type, sedangkan matlab digunakan sebagai core languange nya (rencana mau diporting ulang ke python). Sebagai core engine nya menggunakan teknik PCA, penulis membutuhkan waktu sekitar 20 menit untuk membuat data pelatihan nya mengingat menggunakan ribuan data sehingga waktu komputasi menjadi bengkak!
Pengujian
Sebagai uji coba, penulis membuat sebuah tulisan yang terdiri
- dari jenis font type dan
- ukuran nya!
Kamu pun bisa menggunakan algoritma yang penulis gunakan untuk riset selanjut nya yaitu plate recognition!
Krena lebih mudah! Yaitu hanya terdiri dari karakter angka dan uppercase!
Akan tetapi kamu juga jangan lupa untuk menerapkan algoritma detection nya!
Terkadang bagi pemula untuk istilah detection dan recognition dicampuradukan!
Padahal hal tersebut berbeda jauh!
Output dari detection berupa ADA - TIDAK
Sedangkan recognition berupa OBJEK INI ADALAH HURUF A atau B
Jadi hati2 saja bagi kamu untuk nulis judul paper dan algoritma yang digunakan! Jangan terbalik ya!
Download
https://www.dropbox.com/s/x4pqcftdzfxxjb7/demo%20pengenalan%20huruf%20dengan%20pca-20%20april%202015.rar?dl=0Ukuran file nya agak besar! sekitar 42 MB!
dikarenakan penulis menggunakan 148 karakter font yang berbeda * 26 huruf
Setelah kamu download, jalankan saja code program.m
disitu kamu bisa melihat cara kerja nya secara singkat
clc;clear all;close all;
warning off;
%oleh mulkan.ms@gmail.com
%www.softscients.web.id
addpath('daftar_pustaka');
[folder] = callfiles();
if isempty(folder)==1
return; %%tidak lakukan apapun
end
data = load('daftar_data\pca.mat');
rerata = data.pca.rerata;
projected_images = data.pca.projected_images;
eigen_face_transpose = data.pca.eigen_face_transpose;
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','z'];
DATA = load('daftar_data/data_resume.mat');
I = imread(folder);
if ndims(I)==3
gray = rgb2gray(I);
else
gray = I;
end
bw = ~im2bw(gray);
bw = bwareaopen(bw,100);
H = regionprops(bw,'Image','Centroid'); %%operasi blob
figure,
subplot(2,1,1),imshow(I),title('Optical Character Recognition dengan PCA');
subplot(2,1,2),imshow(I*0)
hold on
posisixy = [];
for i = 1 : size(H,1)
gambar = H(i).Image;
bw = im2bw(gambar);
bw = cropingcitra(bw);
bw = imresize(bw,[40,30]);
hasil_ekstraksi = matrix2vector(bw);
T = hasil_ekstraksi';
[value,index]= recognitionpca(T,rerata,projected_images,eigen_face_transpose);
[x,y,z] = fileparts(DATA.resume_data_vektor.nama_file{index});
text(H(i).Centroid(1),H(i).Centroid(2),[ huruf(str2num(y(1:2)))],'FontSize',15,'Color','r')
end
Tidak ada komentar:
Posting Komentar