Anda di halaman 1dari 30

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.

Gambar 1. Salah-satu contoh pengenalan tulisan berupa angka


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
beberapa pengguna di berbagai tempat yang berbeda.
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
Enterprise.
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
perangkat lunak bila hasil tidak memuaskan.
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.
⎡ f (0,0 ) f (0,1) ... f (0, M − 1) ⎤
⎢ f (1,0) f (1,1) ... f (1, M − 1) ⎥⎥
f = [ f ( x, y )] = ⎢
⎢ ... ... ... ... ⎥
⎢ ⎥
⎣ f ( N − 1,0) f ( N − 1,1) ... f ( N − 1, M − 1)⎦
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.
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 = 28 ).
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:
f B ( x, y ) = Otitik { f A ( x, y )}
yang dalam hal ini fA dan fB masing-masing adalah citra masukan dan
.
citra keluaran, Otitik dapat berupa operasi linear atau nonlinear
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:

Grayscale = 0, 299 R + 0, 587G + 0,114 B


atau

R+G + B
Grayscale =
3
DASAR TEORI (6)
Thresholding
† Konversi dari citra hitam-putih menjadi citra biner dilakukan
dengan operasi pengambangan (thresholding).
† Fungsi Thresholding:
f B ( i, j ) = {1,0,........gf (i, j )≤T
.......lainnya....

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.
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:
w ' = ( X R − X L ) +1 h ' = (YB − YT ) + 1

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.
x ' = S x .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:
f ( i, j ) = { −1,1,........ ff ((ii,, jj))=..lainnya
0..........
DASAR TEORI (9)
† Jaringan Syaraf Tiruan
Arsitektur
Jaringan syaraf tiruan menggunakan tipe multi-layer yaitu menggunakan layer-
layer antara lain: input layer (Xi), hidden layer (Zj) dan output layer (Yk), bias
pada unit output ke-m (wpm) dan bias pada unit hidden ke-p (vnp).
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:

f 2 (x ) =
2
−1
1 + exp(− x )

dan dengan

f 2 ' (x ) =
1
[1 + f 2 ( x)][1 − f 2 (x )]
2
DASAR TEORI (11)
Algoritma Training
Step 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, n
z _ in j = v0 j + ∑ xi vij
i =1
Kemudian dihitung nilai output dengan menggunakan fungsi aktivasi,
z j = f ( z _ in j )
Dan hasil fungsi tersebut dikirim ke semua unit pada layer di atasnya (unit output).
DASAR TEORI (12)
Step 5. Untuk Setiap unit output (Yk, k = 1,...,m) jumlahkan nilai input dengan menggunakan
nilai bobot-nya.
p
y _ ink = w0 k + ∑ z j w jk
j =1
Kemudian dihitung nilai output dengan menggunakan fungsi aktivasi,
yk = f ( y _ ink )
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,
δ k = (tk − yk ) f '( y _ ink )
Hitung koreksi nilai bobot yang kemudian akan digunakan untuk memperbaharui nilai bobot
wjk,
∆w jk = αδ k z j
Hitung koreksi nilai bias yang kemudian akan digunakan untuk memperbaharui nilai w0k,
∆w0k = αδ k

Dan kemudian nilai δ k dikirim ke unit pada layer sebelumnya.


DASAR TEORI (13)
Step 7. Untuk setiap unit hidden (Zj, j = 1,…,p) jumlahkan delta input yang berasal dari unit
pada layer di atasnya,
m
δ _ in j = ∑ δ k w jk
k =1

Kalikan dengan nilai turunan dari fungsi aktivasi untuk menghitung informasi kesalahan,

δ j = δ _ in j f '( z _ in j )

Hitung koreksi nilai bobot, kemudian akan digunakan untuk memperbaharui nilai bobot vij,
∆vij = αδ j xi
Hitung koreksi nilai bias, kemudian akan digunakan untuk memperbaharui nilai v0j,
∆v0 j = αδ j
Memperbaharui bobot dan bias (Update):
Step 8. Setiap unit output (Yk, k = 1,...,m) membaharui bobot dan biasnya (j = 0,...,p):

w jk (baru ) = w jk (lama ) + ∆w jk
Setiap unit hidden (Zj, j = 1,…,p) membaharui bobot dan biasnya (i = 0,...,n):

vij (baru ) = vij (lama ) + ∆vij


Step 9. Kondisi pengujian berhenti.
DASAR 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:
1 n
E = ∑ (tk − yk ) 2
2 k =1

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:
1
H [ x1 , x2 ]
n
ANALISIS SISTEM
DESAIN PERANGKAT LUNAK
UJI 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.
5. Number of Output Neuron dengan 400.
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 dengan
Pengolahan Citra melalui Kamera. Tugas Akhir, Jurusan
Teknik Elektro, PENS-ITS, Surabaya.
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.
id/user_files/02-030/TE-12.DOC>.
TERIMA KASIH

Anda mungkin juga menyukai