Prapengolahan citra pada server tentunya berbeda pada prapengolahan pada klien. Hal ini, seperti yang sudah diutarakan sebelumnya, klien akan memproses citra
bermuatan kata, sedangkan pada server hanya bermuatan sebuah karakter. Hal ini artinya tidak ada proses segmentasi karakter pada server. Diagram blok dari
prapengolahan citra pada server dapat dilihat pada gambar 3.4.
3.2.1. Input Citra
Citra yang diambil adalah citra tulisan Cyrillic berbahasa Rusia yang didapat dari papan pemberitahuan, papan pengunguman, spanduk, iklan, majalah, koran, dan
sumber-sumber yang memiliki tulisan lainnya. Input Citra pada klien dilakukan dengan menggunakan galeri atau kamera pada android. Citra yang didapat dari proses
ini akan dipotong untuk diambil bagian yang ingin diterjemahkan. Pemotongan dilakukan oleh pengguna. Pengguna yang akan memilih bagian mana yang ingin
dipakai dari citra yang diambil.
3.2.2. Prapengolahan Citra
Prapengolahan citra adalah bagian penting yang menyiapkan citra agar dapat dilanjutkan ke ekstraksi fitur. Bagian ini terdapat pada klien dan server pada bagian
Diberikan nama
Prapengolahan citra
Citra Ekstraksi
fitur Pelatihan
Gambar 3.3. Diagram blok pelatihan pada server
Ke Ekstraksi Fitur Penapisan derau
Binerisasi Penskalaan
Citra Thinning
Gambar 3.4. Diagram blok prapengolahan citra pada server
Universitas Sumatera Utara
pelatihan. Tahapan-tahapan dari prapengolahan citra adalah penapisan derau, binerisasi, penskalaan, thinning, dan segmentasi karakter.
3.2.2.1. Penapisan Derau
Penapisan derau akan menggunakan metode Median filter 3x3 untuk server dan klien. Flowchart dari penapisan derau dengan Median filter 3x3 dapat dilihat pada gambar
3.5.
start Citra yang
akan diproses
Buat matriks dari piksel i-1,j-i sampai
pikseli+1,j+1 Mengambil
pikseli,j
Ambil median matriks
Ganti nilai matriks sesuai nilai median
yang didapat
Masih ada piksel pada citra yang belum diproses?
end ya
tidak Citra dengan derau
yang berkurang
Gambar 3.5. Flowchart median filter 3x3
Universitas Sumatera Utara
Dapat dilihat pada gambar 3.5, citra hasil pengambilan gambar akan ditapis menggunakan Median Filter dengan ukuran ketetanggaan 3x3. Citra akan diproses
mulai dari piksel pertama pada koordinat 0,0 sampai piksel terakhir. Piksel diproses dengan cara diambil tetangganya mulai dari koordinat i-1,j-1 sampai i+1,j+1 yang
menandakan ukuran ketetanggaannya adalah 3x3. Hasilnya akan dihimpun dalam bentuk matriks. Matriks itu kemudian akan diambil median dari warna-warnanya,
yaitu median dari warna hijau, warna biru dan warna merah yang ada pada matriks tersebut. Median didapat dengan mengurutkan nilai-nilai warna tersebut, dan
kemudian diambil nilai tengahnya median. Nilai tersebut kemudian akan mengganti nilai warna seluruh piksel yang ada pada matriks ketetanggaan tersebut. Setelah
selesai, maka piksel akan diproses piksel lain hingga seluruh piksel pada citra terproses. Contoh hasil dari penapisan derau dapat dilihat pada gambar 3.6.
a b
Gambar 3.6. Hasil penapisan derau. Sebelum a dan sesudah b
3.2.2.2 Binerisasi
Setelah penapisan derau, citra akan mengalami binerisasi. Citra akan mengalami proses
grayscaling
terlebih dahulu, sebelum binerisasi. Proses
grayscaling
adalah proses untuk menghasilkan citra abu-abu yang memiliki derajat keabuan. Proses ini
dilakukan sebelum proses binerisasi, karena proses binerisasi akan menggunakan algoritma Otsu yang menerima masukan sebuah citra yang abu-abu. Hal ini dapat
dilihat dari algoritma Otsu yang berkerja dengan cara menghitung histogram kemunculan tingkat keabuan, yang hanya dapat dibuat jika citra merupakan citra abu-
abu sehingga memiliki derajat keabuan. Flowchart dari proses
grayscaling
dapat dilihat pada gambar 3.7.
Universitas Sumatera Utara
start
Citra yang akan
diproses
Nilai keabuan = merah0,21+hijau
0,71+biru0,07 Mengambil
pikseli,j
Ganti semua nilai warna pada
pikseli,j dengan nilai keabuan yang
didapat
Masih ada piksel pada citra yang belum diproses?
end ya
tidak Citra abu-abu
Gambar 3.7. Flowchart Grayscaling
Dapat dilihat pada gambar 3.7, nilai keabuan atau derajat keabuan didapat dengan mengambil nilai warna pada piksel, yaitu warna merah, biru dan hijaunya,
kemudian mengalikannya dengan koefisien warna. Koefisien warna yang dipilih adalah 0,21 untuk merah, 0,71 untuk hijau dan 0,07 untuk biru. Citra abu-abu
diperoleh dengan mengalikan koefisien warna yang sudah ditentukan tersebut ke nilai
Universitas Sumatera Utara
warna yang dimiliki sebuah piksel, kemudian hasilnya dijumlahkan. Nilai yang didapat akan menggantikan semua nilai warna dalam piksel tersebut, sehingga nilai
merah, hijau dan birunya menjadi seragam. Nilai yang didapat itulah yang akan menjadi derajat keabuan. Kemudian akan diproses piksel lain hingga semua piksel
pada citra selesai diproses. Binerisasi citra akan menggunakan metode ambang batas dengan penentuan
ambang batas menggunakan metode Otsu. Flowchart penentuan ambang batas dari metode Otsu dapat dilihat pada gambar 3.8.
start
Citra abu- abu
Membuat kelas probabilitas keluarnya
keabuan, rata-rata kelas tersebut
Membuat Histogram derajat
keabuan
Untuk setiap kemungkinan ambang batas, piksel
dibagi 2, latar belakang dan karakter
end Ambil akar kuadrat dari
perbedaan kedua bagian tersebut
Nilai terbesar setelah iterasi berakhir adalah
ambang batas yang diinginkan
Gambar 3.8. Flowchart penentuan ambang batas menggunakan metode Otsu
Universitas Sumatera Utara
Dapat dilihat pada gambar 3.8, metode Otsu dimulai dengan membuat histogram kemunculan derajat keabuan pada citra abu-abu yang diproses. Histogram
derajat keabuan adalah data berapa jumlah kemunculan sebuah derajat keabuan pada sebuah citra. Derajat keabuan yang dimaksud adalah mulai dari 0 atau hitam sampai
dengan 255 atau putih. Kemudian dari histogram tersebut dibuat kelas probabilitas munculnya sebuah derajat keabuan dan diambil rata-rata dari kelas tersebut. Setelah
itu, dibuat 2 kelas dari proses sebelumnya, yaitu kelas latar belakang dan kelas karakter. Kemudian diambil akar kuadrat dari kedua kelas tersebut, diulang terus
menerus untuk semua derajat keabuan. Hasil yang terbesar yang didapat setelah pengulangan berakhir adalah ambang batas yang diinginkan.
start Citra abu-
abu Ambil pikseli,j
end Merah ambang
batas?
Ganti semua warna menjadi 0hitam
tidak ya
Ganti semua warna menjadi 255putih
Masih ada piksel yang belum
diproses?
Citra hitam putih tidak
ya
Gambar 3.9. Flowchart metode ambang batas
Universitas Sumatera Utara
Metode Ambang Batas adalah metode yang mengganti semua nilai menjadi 1 atau 0, sesuai dengan derajat keabuan sebuah piksel dibandingkan dengan ambang
batas yang sudah didapat. Flowchart dari metode ambang batas dengan menggunakan ambang batas yang diperoleh dari metode otsu dapat dilihat pada gambar 3.9.
Sesuai pada gambar 3.9, dapat dilihat bahwa proses ambang batas akan menerima citra abu-abu hasil proses
greyscaling
yang ada pada tahap sebelumnya. Kemudian akan dicek piksel yang ada pada citra tersebut. Setelah itu, akan dicek
apakah warna merah pada piksel tersebut melebihi atau lebih kecil dari ambang batas yang didapat. Pemilihan warna lain selain merah, yaitu hijau atau biru, tidak memiliki
perbedaan sama sekali. Hal ini karena pada citra abu abu, semua warna pada piksel sudah memiliki nilai yang sama, yaitu derajat keabuan. Jika warna merahnya lebih
besar dari ambang batas, maka piksel akan diubah menjadi piksel putih, dan selain itu akan menjadi piksel hitam. Proses akan dilanjutkan sampai semua piksel pada citra
sudah diubah. Hasil yang didapat setelah proses ini adalah, seluruh citra sudah menjadi citra hitam dan putih. Hasilnya dapat dilihat pada gambar 3.10.
a
b
Gambar 3.10. Hasil Binerisasi. a sebelum b sesudah
Universitas Sumatera Utara
3.2.2.3 Segmentasi
Proses segmentasi akan dilakukan setelah proses binerisasi. Hal ini karena proses segmentasi akan memeriksa seluruh piksel citra dengan mengandaikan hanya terdapat
dua jenis piksel, yaitu piksel latar belakang dan piksel karakter. Penemuan piksel karakter akan dicatat, sedangkan piksel latar belakang akan dilewati. Pembagian
piksel dari citra menjadi dua bagian tersebut hanya dapat dilakukan jika citra sudah menjadi citra biner, yaitu citra yang hanya memiliki dua warna, hitam dan putih. Jika
citra sudah biner, maka dapat diandaikan piksel karakter adalah piksel hitam dan piksel latar belakang adalah piksel putih. Dengan demikian, piksel putih akan dilewati
pada saat sistem sedang menelusiri semua piksel. Pemotongan citra dengan cara ini akan menganggap piksel-piksel yang masih
bersatu dan tidak putus sebagai satu buah karakter, sehingga tulisan sambung akan selalu dikenali sebagai satu karakter. Oleh karena itu, sistem tidak akan mengenali
tulisan sambung. Sesuai pada flowchart pada gambar 3.11, proses pemotongan karakter dimulai
dengan mencari piksel karakter yang ada pada ujung kiri dengan cara menyelusiri setiap piksel dari atas kebawah. Jika ditemukan, maka piksel paling kiri tersebut akan
menjadi ujung kiri kolom. Selanjutnya akan diselurusi lagi piksel berikutnya, jika didapat lagi piksel karakter, maka piksel tersebut akan ditandai sebagai ujung kanan.
Kemudian jika ditemukan lagi piksel karakter pada penyelusuran berikutnya, ujung kanan akan berganti menjadi piksel tersebut. Hal ini akan terus dilakukan sampai
akhirnya tidak ditemukan lagi piksel karakter pada sebuah pencarian. Ujung kanan kolom adalah piksel karakter terakhir yang didapat. Dengan diketahuinya ujung kanan
dan ujung kiri, maka kolom berisi karakter akan dipotong. Hasilnya adalah satu karakter terekstrak dari citra tersebut. Kemudian piksel-piksle lain akan diproses
dengan cara yang sama sampai akhirnya tiba di piksel paling akhir dari citra. Hasilnya adalah, citra-citra baru yang berisi satu karakter per citra.
Universitas Sumatera Utara
start
Scan citra dari piksel paling atas ke
bawah
Ditemukan piksel karakter?
Citra hitam putih
Mulai dari 0,0
Cek pada aksis x+1
Lanjutkan pengecekan
Sampai pada piksel paling bawah?
Piksel yang ditemukan menjadi
koordinat kolom paling kiri
tidak ya
Ditemukan piksel karakter?
tidak Piksel yang
ditemukan menjadi koordinat kolom
paling kanan ya
Cek pada aksis x+1
ya tidak
Didapat kolom berisi satu karakter.
Potong bagian tersebut dari citra.
Sampai pada piksel paling akhir dari citra?
end tidak
ya
Gambar 3.11. Flowchart segmentasi kata menjadi kolom yang berisi satu huruf
Contoh dari hasil proses segmentasi dapat dilihat pada gambar 3.12a untuk gambar aslinya, dan 3.12b sampai dengan 3.12j adalah citra hasil segmentasi
karakter.
Universitas Sumatera Utara
a
b c
d e
f g
h i
j
Gambar 3.12. Hasil Segmentasi. Sebeluma dan Sesudahb – j
3.2.2.4. Penskalaan
Tiap tiap karakter yang berhasil diisolasi akan mengalami proses pengskalaan. Proses ini
akan menggunakan
fungsi penskalaan
yang ada
pada Android
createScaledBitmap
sedangkan pada
bagian server
akan menggunakan
java.awt.geom.AffineTransform. Ukuran yang ditentukan adalah 20 piksel x 25 piksel. Flowchart untuk proses penskalaan dapat dilihat pada gambar 3.13.
start
Citra berukuran 20 piksel x 25 piksel
Citra karakter
Proses penskalaan ke ukuran 20 piksel
x 25 piksel
end
Gambar 3.13. Flowchart proses penskalaan
Universitas Sumatera Utara
Sesuai dengan gambar 3.13, dapat dilihat bahwa citra yang akan menjadi masukan pada proses penskalaan adalah citra karakter yang berhasil didapat pada
proses segmentasi karakter. Citra tersebut kemudian akan diproses untuk diperkecil menjadi ukuran 20 piksel x 25 piksel dengan bantuan fungsi
createScaledBitmap
untuk klien
dan untuk
server akan
menggunakan fungsi
java.awt.geom.AffineTransform. Fungsi tersebut telah disediakan oleh android dan java untuk digunakan, sehingga tidak diperlukan untuk membuat metode sendiri. Hasil
dari proses penskalaan dapat dilihat pada gambar 3.14.
Gambar 3.14. Hasil Penskalaan dari sebuah karakter. Sebelumkiri dan sesudahkanan
3.2.2.5. Thinning
Tiap karakter terisolasi kemudian akan mengalami proses
thinning
. Metode yang digunakan adalah metode Zhang-Suen. Proses
thinning
akan menghasilkan tulang dari citra karakter. tulang yang dihasilkan akan memiliki ketebalan sebesar satu piksel.
Proses pengambilan tulang dari citra dilakukan karena akan ditemukan huruf dengan ketebalan piksel yang berbeda-beda. Citra huruf yang memiliki ketebalan
berbeda tersebut, tetap memiliki citra tulang yang sama, sebagai penanda bahwa huruf tersebut adalah sama. Oleh karena itu, bagian yang diekstrak dari citra karakter adalah
tulang dari citra tersebut. Flowchart dari metode Zhang-Suen dapat dilihat pada gambar 3.15.
Universitas Sumatera Utara
start
Citra biner huruf Cyrillic
Piksel tersebut hitam dan punya 8 tetangga?
Memproses pikseli,j dan membuat matriks
tetangganya sebesar 3x3
2 = Bp1 = 6
Ap1 = 1
P2 atau p4 atau p6 putih
P4 atau p6 atau p8 putih
ya
ya
ya
ya
Hapus pikseli,j
Masih ada piksel pada citra yang belum diproses?
end tidak
tidak
tidak
tidak
tidak ya
ya tidak
Gambar 3.15. Flowchart proses thinning dengan metode Zhang-Suen
Sesuai dengan gambar 3.14, maka dapat dilihat bahwa proses thinning dimulai dengan input citra huruf Cyrilic. Citra karakter Cyrillic tersebut kemudian akan cek
tiap pikselnya dengan ukuran ketetanggaan 3x3. Kemudian dicek apakah piksel
Universitas Sumatera Utara
tersebut hitam dan punya 8 tetangga. Kemudian dicek kembali apakah jumlah tetangga yang hitam dari piksel tersebut lebih besar atau sama dengan 2 dan lebih
kecil atau sama dengan 6. Kemudian dicek lagi apakah jumlah transisi dari putih ke hitam dengan urutan P2, P3, P4, P5, P6, P7, P8, P9, P2 yang sesuai dengan gambar
2.3, adalah sama dengan 1. Kemudian dicek kembali apakah P2, P4 atau P6 putih. Setelah itu dicek lagi apakah P4, P6 dan P8 adalah putih. Jika semua kondisi yang
dicek tersebut benar, maka piksel akan dihapus. Proses akan berakhir setelah semua piksel diproses. Hasil dari metode ini dapat dilihat pada gambar 3.16.
Gambar 3.16. Hasil proses
thinning
. Sebelumkiri dan sesudahkanan
3.2.3. Ekstraksi Fitur
Hasil dari prapengolahan citra adalah karakter-karakter yang berhasil diisolasi dari citra kata. Setiap karakter tersebut akan diekstrak fiturnya dengan metode pemetaan
piksel. Piksel hitam akan bernilai 1, dan piksel putih akan bernilai 0. Nilai akan disimpan sebagai sebuah untaian
string
. Karena ukuran dari citra karakter terisolasi adalah 20 x 25 piksel, maka ukuran dari untaian tersebut adalah 20x25 = 500 satuan.
Piksel pada koordinat f0,0 akan berada pada indeks untaian 0, f0,1 akan berada pada indeks 1, dan selanjutnya sampai seluruh indeks terisi. Hasil dari ekstraksi fitur
ini akan dikirimkan ke mesin yang sudah dilatih untuk dikenali.
3.2.4. Menerima Data pada server
Data yang diterima pada server adalah berupa untaian
string
yang diperoleh dari ekstraksi fitur. Penerimaan dilakukan dengan cara membuka sebuah
socket
yang akan digunakan sebagai pintu penerimaan dan pengiriman data. Pada aplikasi ini,
port
yang digunakan adalah 4444. Pemilihan
port
yang baik adalah dengan memilih
port
yang belum dipakai oleh aplikasi-aplikasi lain.
Universitas Sumatera Utara
3.2.5. Klasifikasi
Metode klasifikasi yang digunakan untuk mengenali hasil dari ekstraksi fitur adalah metode jaringan saraf tiruan. Metode jaringan saraf tiruan yang digunakan adalah
Self- Organizing Map
atau
Kohonen Map
. Klasifikasi dilakukan setelah sistem telah dilatih untuk mengenali karakter Cyrillic. Mesin yang dilatih adalah mesin yang terdapat
pada server, sehingga pelatihan dilakukan di server. Hasil dari proses klasifikasi ini adalah huruf-huruf yang berhasil dikenali dari pola yang dikirimkan oleh klien.
Flowchart klasifikasi data ekstraksi fitur pada sistem yang sudah dilatih dapat dilihat pada gambar 3.17.
start Data hasil
ekstraksi fitur
end Cek pada network
node mana yang kenal pada data
Cek huruf yang dikenal oleh node
tersebut
Huruf yang dikenal
Gambar 3.17. Diagram alir klasifikasi data hasil ekstraksi fitur
Dapat dilihat pada gambar 3.17, hasil ekstraksi fitur yang berupa untaian 1 dan 0 sebanyak 500 angka akan dimasukkan ke unit pengenalan. Caranya adalah mencari
node-node mana yang kenal terhadap data tersebut. Kemudian akan dipilih node yang paling dekat sebagai pemanang
winner
. Node pemenang kemudian akan dicek lagi
Universitas Sumatera Utara
huruf apakah yang dilatihkan ke node tersebut. Huruf yang diberikan oleh node tersebut akan menjadi huruf yang dikenal untuk hasil ektraksi fitur tersebut.
3.2.6. Pelatihan