PERANGKAT LUNAK PENGKONVERSI TEKS
TULISAN TANGAN MENJADI TEKS DIGITAL
Oleh :
ACHMAD FAUZI ARIEF 1203 109 007 Dosen Pembimbing : Drs. Nurul Hidayat, M.Kom
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA 2009
LATAR BELAKANG (1)
Pengguna komputer yang cukup diuntungkan adalah kantor-kantor dengan segala kegiatannya antara lain kegiatan
administrasi, marketing, publikasi dan lain sebagainya. Dari ilustrasi tersebut menggambarkan bagaimana mudahnya
pekejaan manusia dengan segala fasilitas. Namun kadang pula muncul kesulitan terutama dalam menghadapi data-data yang menumpuk dan tidak dapat mengolahnya dikarenakan suatu hal antara lain data tersebut berupa file gambar (misal
berekstensi bitmap) dan secara terpaksa harus diolah dengan mode gambar pula.
LATAR BELAKANG (2)
Dari situlah dicoba untuk membuat perangkat lunak
yang dapat mengolah huruf dalam bentuk tulisan
tangan yang berasal dari file gambar menjadi tulisan
yang berupa teks digital. Dalam pengkonversian suatu
tulisan tangan dalam file gambar menjadi suatu
tulisan dalam file teks digital maka pembuatan
perangkat lunak ini menggunakan pengolahan citra
untuk mengolah tulisan dalam bentuk file gambar
tersebut dan hasilnya digunakan sebagai input dari
jaringan syaraf tiruan back propagation dengan fungsi
sebagai pengambil keputusan. Perangkat lunak ini
diletakkan pada sisi server sebuah jaringan komputer
yang akan bisa digunakan oleh seluruh client dari
jaringan tersebut. Sehingga di perlukan desain web
dalam aplikasi tersebut. Agar dapat dipakai oleh
RUMUSAN MASALAH
Bagaimana mendeteksi citra pengenalan
huruf dalam bentuk tulisan tangan yang
merupakan objek dari citra tersebut.
Bagaimana membuat implementasi yang
inputnya merupakan citra dikonversikan
menjadi teks digital.
Bagaimana menganalisis hasil yang
diperoleh dari implementasi pengenalan
tulisan.
BATASAN MASALAH
Citra yang digunakan adalah citra hitam-putih (grayscale) berbentuk
tulisan dengan latar belakang berwarna terang dan berekstensi bitmap (*.bmp).
Huruf tipe tulisan (font) berukuran 10 sampai 50 dan kanvas tulis berukuran 100 x 100 piksel dengan huruf alpabet (A sampai Z latin kecil dan kapital), angka numerik (0 sampai 9) dan tanda baca tanya, seru, koma, titik pada sistem.
Alat yang digunakan untuk menulis sebuah teks tulisan tangan adalah
sebuah mouse pada komputer.
Ketebalan pensil untuk tulisan tangan pada sistem berukuran 5 piksel.
Metode yang digunakan untuk pengkonversian teks adalah metode
jaringan syaraf tiruan Standart Backpropagation.
Implementasi yang digunakan untuk membuat pengkonversian teks tulisan tangan menjadi teks digital adalah Borland Delphi 6
TUJUAN DAN MANFAAT
Tujuan dari tugas akhir ini adalah membuat
perangkat lunak untuk mengkonversi teks
tulisan tangan dari citra menjadi teks digital.
Manfaat yang diperoleh dari tugas akhir ini
adalah agar dapat digunakan oleh beberapa
user (pengguna) untuk mengolah tulisan
tangan dalam bentuk file citra menjadi teks
digital dalam kode ASCII, sebagai acuan
untuk penelitian lain dengan metode yang
berbeda dan sebagai pengembangan
DASAR TEORI (1)
Definisi Perangkat Lunak
Perangkat lunak atau piranti lunak adalah program komputer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras.
Definisi Teks
Teks adalah data yang terdiri dari huruf-huruf yang menyatakan kata-kata atau lambang-lambang untuk
berkomunikasi oleh manusia dalam bentuk tulisan. Dalam penulisan tugas akhir ini ada dua teks, antara lain:
1. Teks tulisan tangan, merupakan data yang terdiri dari huruf-huruf yang menyatakan kata-kata untuk berkomunikasi dalam bentuk tulisan tangan manusia.
2. Teks digital, merupakan data yang terdiri dari huruf-huruf yang menyatakan kata-kata untuk berkomunikasi dalam bentuk
tulisan di dalam sistem komputer. Dengan arti lainnya, teks digital adalah suatu jenis penggambaran dari rangkaian huruf pada sistem komputer.
DASAR TEORI (2)
Pengolahan Citra Definisi Citra
Citra adalah gambar pada bidang dwimatra (dua dimensi). Ditinjau dari sudut pandang matematis, citra adalah sebuah fungsi intensitas cahaya dua dimensi f(x,y) dimana x adalah posisi baris dan y adalah posisi kolom sedangkan f adalah fungsi intensitas atau kecerahan dari citra pada koordinat.
Representasi Citra Digital
Suatu citra agar dapat direpresentasikan secara numerik, maka citra harus didigitalisasi. Citra yang dihasilkan inilah yang disebut citra digital.
Indeks baris (x) dan indeks kolom (y) menyatakan suatu koordinat titik pada citra. Sedangkan f(x,y) merupakan intensitas (derajat keabuan) pada titik (x,y). Masing-masing titik (x,y) di citra disebut piksel. Jadi citra yang berukuran N x M mempunyai NM buah piksel.
( ) [ ] ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )⎥⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − − − = = 1 , 1 ... 1 , 1 0 , 1 ... ... ... ... 1 , 1 ... 1 , 1 0 , 1 1 , 0 ... 1 , 0 0 , 0 , M N f N f N f M f f f M f f f y x f f
DASAR TEORI (3)
Koordinat Citra Digital
Koordinat pusat dalam citra digital berada di sudut kiri atas.
Citra Hitam-Putih
Citra hitam-putih mempunyai nilai kuantisasi derajat keabuan
sampai tingkatan ke-256 artinya mempunyai skala abu dari 0 sampai 255 atau selang [0, 255] dan citra ini membutuhkan 1
byte (8 bit) untuk representasi setiap pikselnya (256 = ).8
DASAR TEORI (4)
Citra Biner
Citra biner adalah citra yang hanya mempunyai dua nilai derajat
keabuan: hitam dan putih. Piksel-piksel objek bernilai satu (1) dan piksel-piksel latar belakang bernilai nol (0).
Pada waktu menampilkan representasi biner pada citra, nilai nol (0)
adalah putih dan nilai satu (1) adalah hitam.
Aras Titik
Operasi pada aras titik hanya dilakukan pada piksel tunggal di dalam citra.
Operasi pada aras titik dinyatakan sebagai:
yang dalam hal ini fA dan fB masing-masing adalah citra masukan dan
citra keluaran, Otitik dapat berupa operasi linear atau nonlinear
.
( )
,
{
( )
,
}
B titik A
DASAR TEORI (5)
Grayscaling
Dengan menggunakan mengubah representasi nilai-nilai
intensitas komponen RGB pada koordinat piksel sebuah
citra dapat diubah menjadi citra yang terdiri dari putih
dan hitam yang biasanya disebut citra grayscale.
dirumuskan sebagai berikut:
atau
0, 299
0, 587
0,114
Grayscale
=
R
+
G
+
B
3
R
G
B
Grayscale
=
+ +
DASAR TEORI (6)
Thresholding Konversi dari citra hitam-putih menjadi citra biner dilakukan dengan operasi pengambangan (thresholding).
Fungsi Thresholding:
dalam hal ini, fg(i,j) adalah citra hitam-putih, fB(i,j) adalah citra
biner dan T adalah nilai ambang yang dispesifikasikan. Objek dibuat berwarna gelap (1 atau hitam) sedangkan latar
belakang terang (0 atau putih).
Segmentasi Citra
Segmentasi citra merupakan suatu proses yang membagi citra
ke dalam beberapa bagian yaitu bagian yang diperlukan dan bagian yang tidak diperlukan.
( )
{
... ... . 1, ( , ) , 0, ... g B f i j T f i j lainnya ≤ =DASAR TEORI (7)
Cropping
Cropping pada pengolahan citra berarti memotong satu
bagian dari citra sehingga diperoleh citra yang
diharapkan. Ukuran Cropping citra dapat dirumuskan
sebagai berikut:
Normalisasi
Normalisasi pada pengolahan citra berarti
mentransformasikan citra ke bentuk citra normal yang
sesuai dengan kebutuhan. Sistem ini menggunakan
penskalaan dari citra semula ke bentuk citra normalisasi.
'
(
R L) 1
w
=
X
−
X
+
h
'
=
(
Y
B−
Y
T) 1
+
'.
xx
=
S x
y
'=
S y
y.
DASAR TEORI (8)
Ekstraksi Ciri
Ekstraksi ciri pada pengolahan citra berarti
mengubah nilai-nilai intensitas koordinat piksel
yang terdapat dalam citra menjadi susunan
kode-kode nilai pada setiap piksel.
Nilai setiap titik koordinat piksel huruf diberi
kode satu (1) untuk warna hitam dan kode
minus satu (-1) untuk warna putih sesuai
dengan fungsi aktivasi pada jaringan syaraf
tiruan.
Di-fungsi-kan sebagai berikut:
( )
{
.... ... .. 1, ( , ) 0 , 1, .. ( , ).. f i j f i j f i j lainnya = = −DASAR TEORI (9)
Jaringan Syaraf Tiruan
Arsitektur
Jaringan syaraf tiruan menggunakan tipe multi-layer yaitu menggunakan layer-layer antara lain: input layer-layer (Xi), hidden layer (Zj) dan output layer (Yk), bias
DASAR TEORI (10)
Fungsi Aktivasi
Fungsi aktivasi untuk jaringan backpropagation memiliki
beberapa karakteristik yang penting. Salah satu tipe
fungsi aktivasi yang paling banyak digunakan adalah
fungsi sigmoid biner, yang mempunyai interval (-1,1)
dan didefinisikan sebagai berikut:
dan dengan
( )
( )
1 exp 1 2 2 = + − − x x f( )
x[
f x]
[
f( )
x]
f2 1 2( ) 1 2 2 1 ' = + −DASAR TEORI (11)
Algoritma TrainingStep 0. Inisialisasi nilai bobot dengan nilai acak yang kecil.
Step 1. Selama kondisi berhenti belum terpenuhi, lakukan step 2-9. Step 2. Untuk setiap pasangan training, lakukan step 3-8.
Feedforward (umpan maju):
Step 3. Untuk setiap unit input (Xi, i = 1,…,n) menerima sinyal input xi dan menyebarkan
sinyal itu keseluruh unit pada layer atasnya (hidden layer).
Step 4. Untuk setiap unit hidden (Zj, j = 1,…,p) jumlahkan nilai input dengan menggunakan
nilai bobotnya,
Kemudian dihitung nilai output dengan menggunakan fungsi aktivasi,
Dan hasil fungsi tersebut dikirim ke semua unit pada layer di atasnya (unit output).
0 1 _ n j j i ij i z in v x v = = +
∑
( _
)
j jz
=
f z in
DASAR TEORI (12)
Step 5. Untuk Setiap unit output (Yk, k = 1,...,m) jumlahkan nilai input dengan menggunakan
nilai bobot-nya.
Kemudian dihitung nilai output dengan menggunakan fungsi aktivasi,
Kesalahan backpropagation (error):
Step 6. Untuk setiap unit output (Yk, k = 1,...,m) menerima pola target yang bersesuain
dengan pola input dan kemudian dihitung informasi kesalahan,
Hitung koreksi nilai bobot yang kemudian akan digunakan untuk memperbaharui nilai bobot wjk,
Hitung koreksi nilai bias yang kemudian akan digunakan untuk memperbaharui nilai w0k,
Dan kemudian nilai dikirim ke unit pada layer sebelumnya.
0 1 _ p k k j jk j y in w z w = = +
∑
( _ ) k k y = f y in ( ) '( _ ) k tk yk f y ink δ = − jk k j w αδ z ∆ = 0k k w αδ ∆ = k δDASAR TEORI (13)
Step 7. Untuk setiap unit hidden (Zj, j = 1,…,p) jumlahkan delta input yang berasal dari unit
pada layer di atasnya,
Kalikan dengan nilai turunan dari fungsi aktivasi untuk menghitung informasi kesalahan,
Hitung koreksi nilai bobot, kemudian akan digunakan untuk memperbaharui nilai bobot vij,
Hitung koreksi nilai bias, kemudian akan digunakan untuk memperbaharui nilai v0j,
Memperbaharui bobot dan bias (Update):
Step 8. Setiap unit output (Yk, k = 1,...,m) membaharui bobot dan biasnya (j = 0,...,p):
Setiap unit hidden (Zj, j = 1,…,p) membaharui bobot dan biasnya (i = 0,...,n):
Step 9. Kondisi pengujian berhenti.
1 _ m j k jk k in w δ δ = =
∑
_ '( _ ) j in fj z inj δ =δ ij j i v αδ x ∆ = 0 j j v αδ ∆ = ( ) ( ) jk jk jk w baru = w lama + ∆w ( ) ( ) ij ij ij v baru = v lama + ∆vDASAR TEORI (14)
Catatan dalam algoritma training standart backpropagation:
Gradient Descent. Fungsi gradient descent adalah untuk mengurangi
atau meminimalkan nilai error target berikutnya. Error target dirumuskan sebagai berikut:
Random Initialization. Dan untuk menentukan inisialisasi bobot,
bobot awal dicari secara acak (random initialization) dengan nilai
antara -0.5 untuk negatif dan 0.5 untuk positif (atau antara -1 dan 1 atau nilai lainnya sesuai dengan interval).
Epoch. Merupakan salah satu siklus perputaran melalui setiap set
vektor training.
Hamming Distance. Perbedaan jumlah bit dalam dua vektor biner
atau bipolar. Nilai rata-rata vektor hamming distance adalah:
2 1
1
(
)
2
n k k kE
t
y
==
∑
−
1 2 1 [ , ] H x x nUJI COBA PERANGKAT LUNAK (1)
Inisialisasi masukan, antara lain:
Inisialisai pengkonversian teks.
1. B&W Threshold dengan 196.
2. Noise Threshold dengan 10.
3. Space Width dengan 22.
Inisialisasi parameter set training.
1. Learning Rate dengan 0,001.
2. Weights Initialization Factor dengan 0,5.
3. Error Threshold dengan 1.
4. Target Classification Error dengan -1.
5. Target Squared Error dengan 0,01.
6. Maximum Epochs dengan 100.
Inisialisasi arsitektur jaringan.
1. Input Pattern dengan tinggi dan lebar citra 20 x 20.
2. Target Pattern dengan tinggi dan lebar citra 20 x 20.
3. Number of Input Neuron dengan 400.
4. Number of Hidden Neuron dengan 50.
UJI COBA PERANGKAT LUNAK (2)
Pengambilan Data
Mempersiapkan citra berotasi dengan 3 putaran arah, yaitu: 0, 5 dan 355.
Membuat citra berbentuk pola lainnya secara real time pada setiap huruf/simbol.
Menghasilkan jumlah keseluruhan epoch 164000, jumlah
keseluruhan squared error 0,1031610851753050 dan jumlah keseluruhan klasifikasi piksel error 5,4930% dengan neuron
error 36032 dan jumlah output neuron 656000.
Pengenalan Huruf
Citra uji sebanyak 3280 citra huruf dengan 1640 citra dari data referensi dan 1640 citra dari pola huruf tulisan tangan secara
real time.
Hasil uji coba pengenalan huruf menggunakan proses testing mendapatkan prosentasi rata-rata sebesar 66,58%.
UJI COBA PERANGKAT LUNAK (3)
Pengkonversian Teks
Hasil uji coba pengkonversian teks mendapatkan prosentasi sebesar 50,00%.
Analisis huruf yang tidak dikenali oleh sistem.
Dalam perhitungan backpropagation nilai vektor-vektor huruf h kecil mendapatkan nilai rata-rata hamming distance sebesar 27 / 400, nilai dari huruf h kecil tersebut adalah nilai paling kecil dibanding nilai-nilai huruf/simbol lainnya dan dikenali dengan nilai vektor-vektor huruf i kecil.
KESIMPULAN
Penggunaan proses training untuk mengambil data referensi bersifat real
time dan non real time menghasilkan jumlah keseluruhan epoch 164000,
jumlah keseluruhan squared error 0,1031610851753050 dan jumlah keseluruhan klasifikasi piksel error 5,4930%.
Penggunaan proses testing menggunakan hamming distance ini dapat dinyatakan cukup baik, hal ini dibuktikan pada total prosentasi rata-rata pengenalan huruf sebesar 66,58% dan pengkonversian teks sebesar 50,00%.
Pada saat proses training perputaran epoch akan berhenti sendiri bila
bobot tersebut memiliki bobot yang baik dan bila bobot tersebut belum memiliki bobot yang baik, proses training akan berhenti sendiri dengan batas maksimum epoch yang telah diatur.
Besarnya ukuran penulisan huruf mempengaruhi hasil pengkonversian teks dikarenakan pengecilan nilai kode-kode bit ke input pattern pada proses
testing.
Pembacaan teks pada program ini sebaris, yaitu tulisan sederet dengan barisan huruf yang lain agar tidak bertabrakan dengan barisan huruf lainnya.
Pembacaan teks pada program ini satu huruf, yaitu tulisan huruf tidak
boleh gandeng karena sistem akan membaca dengan satu huruf.
Pengaturan input dan target pattern pada pengkonversian teks disesuaikan dengan input dan target pattern pada pengambilan data huruf.
SARAN
Untuk mendapatkan data training yang banyak dan
cepat pada saat proses training backpropagation
diharapkan menggunakan implementasi yang baik.
Untuk mendapatkan hasil yang memuaskan diharapkan
pada inisialisasi parameter dan arsitektur jaringan
backpropagation saat proses training diatur dengan baik
dan memperbanyak data referensi yang akan
digunakan.
Ada baiknya melakukan pengembangan perangkat
lunak yang terdapat fasilitas tulisan berwarna dan
merotasi huruf, sehingga citra dapat masuk ke
perangkat lunak ini tanpa harus menggunakan aplikasi
lain.
DAFTAR PUSTAKA (1)
[1] Fausett, L. (1994). Fundamentals of Neural Network.
Prentice-Hall International, Inc., Florida Institut of Technology. [2] Munir, Rinaldi. (2004). Pengolahan Citra Digital dengan
Pendekatan Algoritmik. Informatika, Bandung.
[3] Pranata, A. (2003). Pemrograman Borland Delphi. Andi Yogyakarta, Jogyakarta.
[4] Kristianto, Yusuf. (1999). Pembuatan Perangkat Lunak
untuk Pengenalan Huruf dengan Jaringan Saraf Tiruan.
Tugas Akhir, Jurusan Matematika, ITS, Surabaya.
[5] Wardhana, Adhitya Aris. (2004). Jaringan Syaraf Tiruan
untuk Pengenalan Pola Tulisan Tangan menggunakan Metode Backpropagation dengan Fungsi Aktifasi
Sigmoid. Tugas Akhir, Jurusan Fisika, ITS, Surabaya.
[6]
Susilo, Yosef Herry. (1998). Pengenalan Huruf denganPengolahan Citra melalui Kamera. Tugas Akhir, Jurusan
DAFTAR PUSTAKA (2)
[7] Oktavia, N.Y, Zakky, A, Sigit, R, Huda, M. (2002). Aplikasi
Jaringan Syaraf Tiruan untuk Pengenalan Huruf pada Pengolahan Citra Digital Berbasis Web. Makalah Tugas
Pendahuluan Proyek Akhir, Jurusan Telekomunikasi, PENS-ITS, Surabaya.
[8] Ni, Dong Xiao. (2007). Application of Neural Networks to
Character Recognition. Seidenberg School of CSIS, Pace
University, White Plains, New York.
[9] Mamedov, F, Abu Hasna, J. F. Character Recognition Using
Neural Networks. Near East University, North Cyprus,
Turkey.
[10] Budhi, G.S, Gunawan, I, Jaowry S,. Metode Jaringan Saraf
Tiruan Backpropagation untuk Pengenalan Huruf Cetak pada Citra Digital, <URL:http://fportfolio.petra.ac.