Input Citra Ekstraksi Fitur Menerima Data pada server Klasifikasi

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