BAB II

advertisement
BAB 2
LANDASAN TEORI
2.1 Pengenalan Teks
Teknologi pengenalan teks merupakan teknologi yang mampu mengenali teks
pada citra digital dan mengalihkannya pada dokumen digital. Aplikasi dari teknologi
pengenalan teks ini dikenal dengan nama Optical Character Recognition (OCR).
OCR sendiri digunakan untuk mengenali teks hasil cetakan mesin (Machine-Printed
Text).
OCR dipatenkan pada tahun 1929 di Jerman oleh Gustav Tauschek. Pada saat itu,
diterapkan pada mesin yang menggunakan alat optik (sekarang ini umumnya kita
menggunakan alat optik berupa scanner). Saat ini konsep dasar dari OCR banyak
digunakan di beberapa aplikasi pengenalan teks.
Berikut ilustrasi dari proses OCR:
Gambar 2.1 Proses pada OCR
(Tri, 2007, p5)
8 Prinsip kerja dari aplikasi OCR adalah sebagai berikut.
1. Memasukkan dokumen berisi teks (teks cetakan mesin) ke dalam alat optik
(scanner) sehingga didapat sebuah file citra.
2. File citra tersebut diproses menggunakan perangkat lunak aplikasi
pengenalan teks, di mana perangkat ini melakukan proses pengenalan
terhadap karakter-karakter yang ada pada file citra tersebut.
3. Keluaran dari perangkat lunak aplikasi pengenalan teks ini berupa file teks
yang berisi karakter-karakter yang telah dikenali dan siap untuk diolah lebih
lanjut.
Oleh karena itu, tingkat keberhasilan dari perangkat lunak aplikasi
pengenalan teks ini sangat bergantung dari sejumlah faktor berikut.
1. Kualitas gambar teks yang ada pada dokumen yang dibaca serta tingkat
kompleksitasnya (ukuran, format teks, warna, latar belakang).
2. Kualitas alat optik yang dipakai (scanner).
3. Kualitas perangkat lunak aplikasi pengenalan teks itu sendiri.
Dalam penelitian mengenai pengenalan teks digunakan beberapa pendekatan,
yaitu:
1. Pendekatan statistik (statistical approach)
2. Pendekatan sintaktik (syntactic approach)
9 3. Pendekatan neural network, dan
4. Pendekatan fuzzy logic
2.2 Konsep Dasar Citra Digital
“Citra” menurut kamus webster adalah suatu representasi, kemiripan, atau imitasi
dari suatu objek atau benda. Sedangkan pada pengolahan citra digital, istilah “citra”
merupakan representasi dari fungsi dua dimensi citra, dinyatakan juga sebagai fungsi
kontinu dari intensitas cahaya dalam bidang dua dimensi f(x,y). Nilai x dan y
merupakan titik koordinat bidang citra yang masing-masing mewakili elemen
terkecil dalam citra yang disebut sebagai pixel. Citra digital terdiri dari jumlah pixel
per baris dan jumlah pixel per kolom yang terbatas.
2.2.1
Pixel
Pixel kependekan picture element, merupakan komponen terkecil yang
menyusun sebuah citra bitmap. Setiap pixel menyimpan berbagai informasi, yaitu
informasi berupa warna dan letak/posisi pixel tersebut pada citra. Dari pixel inilah
kualitas sebuah citra dapat ditentukan. Makin besar jumlah pixel tiap satuan panjang
berarti makin tinggi tingkat resolusi citra tersebut, maka kualitas citra yang
dihasilkan semakin baik.
10 A. Kedalaman Warna
Kedalaman warna (color depth) menentukan keanekaragaman warna dari sebuah
pixel. Makin besar nilai kedalaman warna, makin banyak pula variasi warna yang
terkandung dalam setiap pixel warna.
Perhitungan mengenai kedalaman warna adalah sebagai berikut.
1 bit = 21 = 2 warna = 0 dan 1 (hitam dan putih)
8 bit = 28 = 256 warna
16 bit = 216 = 65536 warna (high color)
24 bit = 224 = 16.7 juta warna (true color)
Pada kedalaman warna 24 bit disebut true color karena mendekati warna
sebenarnya. Kedalaman warna 24 bit sendiri dimiliki oleh citra dengan format
bitmap (.bmp).
B. Posisi Pixel
Posisi pixel pada sebuah citra dinyatakan dengan nilai m dan n, dimana nilai ini
mewakili koordinat bidang dua dimensi (x, y), seperti dinyatakan di bawah ini.
m = baris
0 ≤ x ≤ m-1
n = kolom
0 ≤ y ≤ n-1
11 Pada layar monitor nilai x mewakili nilai kolom sedangkan nilai y mewakili nilai
baris, seperti terlihat pada gambar di bawah ini.
f(0,0)
f(0,1)
f(0,2)
..
f(0, m-1)
f(1,0)
f(1,1)
f(1,2)
..
f(1, m-1)
:
:
:
:
:
:
:
:
:
:
f(n-1, 0)
f(n-1, 1)
f(n-1, 2)
..
f(n-1, m-1)
Gambar 2.2 Posisi pixel pada layar
(http://idhaclassroom.com/download/pengolahan-citra/Pengolahan%20Citra.pdf)
2.2.2
Konektivitas
Konektivitas merupakan hubungan tetangga dari sebuah pixel terhadap pixel
yang lain. Konektivitas digunakan untuk menciptakan batas-batas dari komponenkomponen yang tersusun dalam sebuah citra. Dua pixel dikatakan memiliki
konektivitas jika letaknya berdekatan dan memiliki skala warna yang memenuhi
batas toleransi. Menurut Gonzales dan Woods (1992, p40), ada dua jenis
konektivitas yang digunakan pada citra dua dimensi.
12 a. 4-Konektivitas
Dua buah pixel dikatakan memiliki hubungan 4-konektivitas jika mereka
terletak berdampingan secara horizontal dan vertikal N4(P). Kumpulan dari
pixel-pixel ini disebut dengan 4 neighbours of P.
P(x, y-1)
P (x-1, y)
P (x,y)
P(x+1, y)
P(x, y+1)
b. 8-Konektivitas
Dua buah pixel dikatakan memiliki hubungan 8-konektivitas jika mereka
terletak berdampingan secara horizontal dan vertikal N8(P) atau disebut juga
empat diagonal neighbours.
P (x-1, y-1)
P(x, y-1)
P (x+1, y-1)
P (x-1, y)
P (x,y)
P(x+1, y)
P (x-1, y+1)
P(x, y+1)
P (x+1, y+1)
2.3 Pengolahan Citra Digital
Pengolahan citra merupakan kegiatan memperbaharui citra sehingga mudah
diinterpretasi oleh manusia/mesin. Teknik yang digunakan dalam pengolahan citra
antara lain grayscaling, thresholding, filtering, segmentation, dan stretching.
13 2.3.1
Grayscaling
Untuk memudahkan pekerjaan-pekerjaan pada proses selanjutnya dalam
pengolahan citra, pada tahap pertama dilakukan proses grayscaling. Proses ini
mengubah citra dengan warna yang beragam menjadi citra 8 bit keabuan. Persamaan
yang digunakan adalah:
di mana :
R = Nilai intensitas komponen warna merah
G = Nilai intensitas komponen warna hijau
B = Nilai intensitas komponen warna biru
Proses ini dilakukan dengan melakukan perulangan setiap pixel warna yang
memiliki tiga komponen warna (RGB). Dengan persamaan di atas maka di dapatkan
suatu warna baru yang memiliki satu komponen warna dengan intensitas antara 0
sampai 255 (hal ini disebabkan karena citra bernilai 8 bit sehingga terdapat 28 warna
atau 256 warna).
2.3.2
Thresholding
Thresholding merupakan metode yang paling sederhana dalam melakukan
segmentasi citra. Proses ini digunakan untuk memisahkan nilai-nilai intensitas yang
14 ada pada setiap pixel menjadi 0 dan 1. Jika nilai pada pixel P berada di bawah nilai
threshold yang telah ditentukan maka nilai pixel P diubah menjadi 0, sedangkan jika
nilainya lebih tinggi dari nilai threshold yang telah ditentukan maka nilai pixel P
tersebut diubah menjadi 1.
Nilai threshold pada umumnya digunakan 127,5 (127 atau 128). Akan tetapi,
karena banyaknya jenis aplikasi pengolahan citra, nilai threshold dapat diubah-ubah
sesuai kebutuhan.
Gambar 2.3 Citra Sebelum Thresholding
Gambar 2.4 Citra Sesudah Thresholding
2.3.3
Filtering
Teknik filtering digunakan untuk menghilangkan noise pada citra. Noise dapat
diartikan sebagai kotoran berupa pixel-pixel yang tidak diinginkan pada sebuah citra.
Ada banyak cara yang digunakan dalam reduksi noise, salah satunya adalah pepper
and salt noise removal.
15 Pepper and salt noise removal digunakan untuk membuang noise berwarna
hitam (pepper noise) ataupun noise berwarna putih (salt noise). Noise pada citra
dapat dikenali dengan mencari pixel yang memiliki warna yang berbeda dengan
warna pixel sekelilingnya. Jika sebuah pixel dikenali sebagai noise, maka
penghilangan noise dilakukan dengan mengganti warna pixel tersebut dengan warna
pixel sekelilingnya.
Gambar 2.5 Citra Sebelum Filtering
Gambar 2.6 Citra Sesudah Filtering
2.3.4
Segmentation
Proses segmentation pada pengenalan teks digunakan untuk memisahkan
karakter-karakter pada citra, sehingga karakter yang telah dipisahkan dapat diolah
secara tersendiri. Salah satu cara yang digunakan pada proses segmentation adalah
dengan melakukan scanning secara vertikal dan horizontal. Cara tersebut dilakukan
dengan melakukan pencarian secara sekuensial pixel-pixel hitam yang terletak
berbatasan dengan pixel putih. Pencarian tersebut digunakan untuk mencari batas
kiri, kanan, atas, dan bawah masing-masing segmen. Hasil pencarian tersebut
16 digunakan sebagai
informasi letak karakter pada citra. Proses segmentation ini
bertujuan agar setiap pekerjaan yang akan dilakukan dibatasi hanya pada segmen itu
saja.
Gambar 2.7 Citra Sebelum Segementation
Gambar 2.8 Citra Sesudah Segmentation
Cara lain yang digunakan pada proses segmentation adalah dengan metode
connected component labeling. Metode ini bertujuan untuk membagi karakter
berdasarkan pixel hitam yang saling terhubung. Penggunaan metode ini dalam proses
segmentation dinamakan labeling. Sedangkan, algoritma yang digunakan pada
proses ini adalah algoritma iteratif.
Dalam menjalankan proses labeling dengan algoritma iteratif, pada tahap
pertama, proses ini dilakukan dengan memberi label semua pixel hitam pada citra.
Pada tahap kedua, proses ini dilakukan dengan mengganti nilai label setiap pixel
hitam yang berdekatan satu dengan lainnya. Penggantian nilai label tersebut
dilakukan dengan mengganti nilai label pixel hitam dengan nilai label pixel hitam
sekelilingnya yang lebih kecil. Sedangkan pada tahap ketiga, penggantian nilai label
17 dilakukan dengan perulangan ke arah yang berlawanan. Proses ini dilakukan berkalikali sehingga pixel-pixel hitam yang berdekatan memiliki nilai label yang sama.
Gambar 2.9 Citra Sesudah Labeling
Gambar 2.10 Citra Sesudah Labeling
2.3.5
Stretching
Proses streching berarti proses untuk menyesuaikan ukuran citra asli menjadi
citra dengan ukuran yang diharapkan. Proses ini akan menghasilkan citra baru yang
lebih besar ataupun lebih kecil yang memiliki struktur pewarnaan yang serupa
dengan citra asli.
Pada pengenalan teks, proses streching disesuaikan dengan aspek rasio yang ada.
Aspek rasio itu sendiri dapat diartikan sebagai perbandingan lebar dan panjang suatu
citra. Hal ini berarti, aspek rasio pada citra yang belum melewati proses streching
sama dengan aspek rasio pada citra yang sudah melewati proses streching. Rumus
pengukuran aspek rasio adalah sebagai berikut:
Aspek Rasio = Lebar/Panjang
18 Istilah yang digunakan untuk menyebut nilai aspek rasio yang lebih besar dari 1
(satu) adalah “landscape”. Sedangkan untuk aspek rasio yang lebih kecil dari 1
(satu) adalah “portrait”. Hal ini diperlihatkan pada gambar dibawah ini.
Gambar 2.11 Proses Stretching dengan Aspek Rasio = 1
(http://www.efg2.com/Lab/ImageProcessing/AspectRatio.htm)
2.4 Anatomi Teks
Suatu teks memiliki penamaan tersendiri terhadap bagian-bagian yang ada.
Berikut penamaan anatomi teks.
Gambar 2.12 Anatomi Teks
Keterangan:
1. Huruf yang memiliki ascender saja (T)
2. Huruf yang memiliki descender saja (g)
3. Huruf yang memiliki ascender dan descender (j)
4. Huruf yang tidak memiliki ascender dan descender (a)
19 2.5 Fuzzy Logic
2.5.1
Konsep Dasar
Fuzzy logic merupakan suatu metode yang digunakan dalam proses pengambilan
keputusan dengan cara memetakan suatu ruang input ke dalam ruang output. Sistem
ini diperkenalkan pertama kali oleh Prof. Lotfi Zadeh dari Universitas California,
Barkeley tahun 1962, dimana pada saat itu boolean logic hanya mengenal dua
keadaan yaitu : ya/tidak, ON/OFF, High/Low atau hanya mempunyai logika 0 dan 1
saja. Sedangkan kondisi nyata di alam ini bukan hanya ya (1, high, on) atau tidak (0,
low, off) tetapi seluruh kemungkinan diantara 0 dan 1, sehingga untuk mengenal
kondisi ini kita tidak dapat menggunakan boolean logic tetapi dengan menggunakan
fuzzy logic. Perbedaan antara boolean logic dan fuzzy logic dapat kita lihat pada
ilustrasi berikut:
Gambar 2.13 Boolean Logic
(Sri dan Hari, 2004, p4)
20 Gambar 2.14 Fuzzy Logic
(Sri dan Hari, 2004, p5)
Tampak bahwa sistem fuzzy memberikan kemungkinan bagi suatu variabel
memiliki nilai keanggotaan dengan rentang 0 ≤ x ≤ 1. Dengan rentang nilai yang
luas, sistem fuzzy dapat digunakan untuk membuat sebuah sistem dengan ketelitian
yang tinggi.
2.5.2
Proses Sistem Fuzzy
Pada sistem fuzzy terdapat tiga proses sebagai berikut.
1. Fuzzification
Proses ini berfungsi untuk mengubah masukan-masukan berupa nilai analog
atau yang nilai kebenarannya bersifat pasti (crisp input) menjadi nilai fuzzy, yang
digunakan sebagai fuzzy input. Fuzzy input ini berupa nilai linguistic yang
semantiknya ditentukan berdasarkan fungsi keanggotaan tertentu. Jika terdapat
suatu nilai analog yang menjadi input pada proses fuzzy maka input tersebut
dimasukkan pada batas scope/domain sehingga didapatkan suatu nilai fungsi
keanggotaan. Nilai fungsi keanggotaan inilah yang menentukan proses
pengambilan keputusan selanjutnya.
21 Salah satu metode yang digunakan oleh proses ini dalam pengenalan teks
adalah feature extraction. Metode ini digunakan untuk mendapatkan karakteristik
dari suatu citra dengan melihat bentuk dasar objek pada citra tersebut. Tujuan
metode ini adalah untuk melakukan pengukuran terhadap hal-hal yang
membedakan pola masukkan sehingga objek pada citra yang satu dan yang lain
dapat dibedakan.
2. Rule Evaluation
Proses ini digunakan untuk mencari nilai fuzzy output dari fuzzy input. Jika
terdapat suatu nilai fuzzy input dari proses fuzzification nilai tersebut akan
dimasukkan ke dalam rule yang telah dibuat untuk mendapatkan nilai fuzzy
output.
Pada proses inilah suatu sistem dapat dikatakan pintar atau tidak. Jika rule
yang dibuat tidak pintar maka sistem yang dikontrol menjadi kacau dan objek
yang seharusnya dikenali menjadi tidak dapat dibaca. Dengan rule yang ada
diperoleh nilai fuzzy yang digunakan dalam membantu pengambilan keputusan.
3. Defuzzification
Pada tahap inilah pengambilan keputusan dilakukan. Nilai yang didapatkan
berupa nilai crisp, yaitu 0 atau 1. Proses defuzzification melakukan suatu fungsi
output yang memproses nilai fuzzy yang berasal dari rule evaluation sehingga
keputusan akhir dapat dilakukan. Fungsi output ini dilakukan dengan
mencocokan nilai-nilai yang ada dengan threshold yang ditentukan.
22 Sebuah input pada proses fuzzy akan diterima sebagai anggota himpunan
fuzzy jika memiliki nilai keanggotaan yang melewati batas threshold yang ada.
2.5.3
Fungsi Keanggotaan Gauss
Fungsi keanggotaan (membership function) merupakan suatu fungsi yang
digunakan untuk merepresentasikan titik-titik input data ke dalam nilai
keanggotaan. Nilai keanggotaan yang dihasilkan memiliki interval antara 0 sampai
1. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.
Gambar 2.15 Derajat Keanggotaan
(http://www.caspur.it/risorse/softappl/doc/matlab_help/toolbox/fuzzy/fuzzytu3.html)
Pada gambar di atas, dapat dilihat kurva hasil representasi titik-titik yang
menunjukkan nilai keanggotaan dari suatu himpunan (tinggi badan manusia). Pada
gambar kurva sebelah kiri, representasi titik-titik nilai keanggotaan berasal dari
aturan himpunan tegas (crisp). Kurva yang dihasilkan dari aturan tersebut adalah
sharp-edged membership function. Sedangkan pada kurva sebelah kanan,
representasi titik-titik nilai keanggotaan berasal dari aturan himpunan fuzzy. Kurva
yang dihasilkan dari aturan tersebut adalah continuous membership function.
23 Terdapat beberapa fungsi keanggotaan yang biasa digunakan, antara lain:
representasi linear, representasi kurva segitiga, representasi kurva trapesium,
representasi kurva bentuk bahu, representasi kurva-S, representasi kurva bentuk
lonceng (bell-shaped curve) yang terdiri atas 3 kelas (kurva pi, kurva beta, kurva
gauss), dan koordinat keanggotaan.
Salah satu fungsi di atas yang digunakan pada proses pengenalan teks adalah
fungsi keanggotaan gauss (gaussian membership function). Fungsi ini melibatkan
nilai rata-rata (mean) dan nilai variasi (variance). Nilai mean mewakili nilai
keanggotaan penuh dari suatu himpunan, hal ini berarti karakteristik objek yang
satu dengan dengan objek pembanding adalah 100% sama. Sedangkan nilai
variance mewakili nilai jangkauan keanggotaan. Semakin kecil variance berarti
semakin kecil toleransi perbedaan karakteristik dari objek yang satu dengan objek
pembanding, begitu pula sebaliknya. Jika nilai perbedaan tersebut melebihi
jangkauan nilai variance maka nilai keanggotaan yang dihasilkan pada objek yang
dibandingkan menjadi lebih kecil.
Rumus yang digunakan pada fungsi keanggotaan gauss adalah sebagai berikut.
Berikut adalah gambar representasi kurva Gauss:
24 Gambar 2.16 Kurva Gauss
(http://www.caspur.it/risorse/softappl/doc/matlab_help/toolbox/fuzzy/fuzzytu3.html)
2.6 Pendekatan Fuzzy Logic pada Pengenalan Teks
Pendekatan fuzzy logic merupakan salah satu cara pendekatan yang digunakan
dalam pengenalan pola. Pada pendekatan ini digunakan metode pemisahan karakter
menjadi daerah-daerah kecil yang disebut box-method. Hal ini terlihat seperti yang
terlihat pada gambar berikut.
Gambar 2.17 Box-Method
25 Dari box hasil pembagian tersebut akan didapatkan suatu nilai yang digunakan
sebagai nilai input fungsi keanggotaan pada proses fuzzy. Nilai-nilai yang didapatkan
berasal dari nilai koordinat pixel terdapat warna hitam (i, j), dimana pada pojok kiri
atas masing-masing box memiliki koordinat pixel (0,0). Nilai vector distance
masing-masing pixel diperoleh dengan rumus:
Nilai vector distance tersebut kemudian dihitung sebagai normalisasi dari total
semua pixel masing-masing box dengan rumus:
Adapun n merupakan jumlah pixel dalam box dan b merupakan nomor box.
Nilai ini digunakan sebagai nilai fungsi keanggotaan pada sistem fuzzy.
Dalam sistem fuzzy, dihitung nilai mean (m) dan variance (
) menggunakan
rumus:
Dimana Ni adalah jumlah sampel dalam cluster ke-i dan fij merupakan nilai
fungsi keanggotaan dari masing-masing box dengan karakter ke-j.
26 Setelah didapatkan nilai mean dan variance, maka nilai tersebut dapat
dibandingkan dengan nilai fungsi keanggotaan masing-masing box yang dicari
dengan rumus:
Fungsi keanggotaan (μxi) ini menyatakan tingkat kesesuaian pola antara karakter
yang akan dikenali dengan knowledge base yang ada. Dimana x merupakan nilai
fungsi keanggotaan dari karakter yang tidak diketahui.
Pada library dengan jumlah yang terbatas, proses fuzzy kurang bekerja dengan
baik. Hal ini disebabkan karena beberapa aturan fuzzy memiliki nilai variance yang
terlalu kecil dan juga nilai variance yang terlalu besar. Untuk menanggulangi hal ini,
fungsi keanggotaan tersebut dibagi menjadi dua persamaan berbeda, dengan rumus:
untuk
untuk
Selanjutnya dicari nilai μxi masing-masing karakter dengan mencari nilai ratarata semua box, dengan rumus:
Adapun c berarti jumlah total semua box dan r = merupakan penomoran
karakter-karakter yang ada pada knowledge base.
27 Sebuah karakter dapat dikenali dengan mencari nilai μav(r) yang paling besar
atau mendekati angka 1 (satu).
2.7 Borland Delphi
Bahasa
pemrograman
Borland
Delphi
merupakan
salah
satu
bahasa
pemrograman cukup banyak digunakan dalam pembuatan aplikasi visual. Bahasa
pemrograman ini juga memberikan fasilitas-fasilitas yang pendukung proses
pembuatan program pengenalan teks. Berikut beberapa komponen yang terdapat
dalam Borland Delphi:
Objek
• TForm : Komponen berupa tempat meletakkan objek dan melakukan semua
pekerjaan dari objek yang ada.
• TBitmap : Komponen citra.
• TColor : Komponen warna.
• TRec : Komponen berupa area berbentuk segi empat.
Fungsi pada Pengolahan Citra
• Pixel : Posisi pixel pada citra.
• RGB : Komponen warna pada citra yang berasal dari tiga unsur warna dasar
R=Red, G=Green, B=Blue.
• CanvasStretchDraw : Fungsi untuk merentangkan citra pada sebuah citra baru
dalam jangkauan area yang disediakan.
28 Fungsi Matematika
• Mod : Fungsi untuk mendapatkan sisa bagi.
• Max : Fungsi pengambilan nilai maksimum dari dua buah bilangan.
• Min : Fungsi pengambilan nilai minimum dari dua buah bilangan.
• Exp : Fungsi pemangkatan oleh bilangan euler.
• Sum : Fungsi penjumlahan semua data pada array.
• Mean : Fungsi rata-rata semua data pada array.
• TotalVariance : Fungsi jumlah perbedaan data yang diminta dengan data dalam
array.
Download