• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISIS DAN PERANCANGAN SISTEM"

Copied!
32
0
0

Teks penuh

(1)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Algoritma Prosedur Klasifikasi

Dalam sistem Pengenalan Tulisan Tangan ini input berupa sebuah citra karakter, yang akan diproses menjadi fitur yang merupakan representasi dari citra karakter tersebut. Fitur tersebut akan menjadi input bagi SVM, yang kemudian akan mengklasifikasinya ke dalam kelas – kelasnya. Umumnya diagram alir untuk sebuah proses klasifikasi terdiri dari preprocessing, ekstraksi fitur, fitur matching, dll.

  Gambar 3.1 Diagram Alir Klasifikasi Umum

• Input

Input untuk klasifikasi, bisa berupa citra dijital, suara, dll. • Preprocessing

Proses untuk membersihkan noise dan mengkonsentrasikan input kepada fitur – fitur, untuk input citra, umumnya menggunakan image processing, dll.

• Ekstraksi Fitur

Salah satu proses terpenting di dalam klasifikasi, yaitu proses pengambilan fitur yang adalah ciri khas pola dalam input. Pemilihan ekstraksi fitur sangat penting agar dapat menghasilkan klasifikasi yang baik.

(2)

Setelah diekstrak fitur dari inputnya, akan didapatkan fitur dari input. • Database

Berisi rule – rule atau pola dari data hasil pelatihan. • Fitur Database

Fitur yang digunakan untuk melatih database. • Matching

Mencocokkan fitur input dengan fitur dari database. • Hasil

Hasil dapat berupa, kelas, representasi dari kelas, dll.

Sistem ini juga melakukan klasifikasi dengan proses – proses yang sama, tetapi dalam sistem ini posisi Database digantikan sebuah Model SVM yang menyimpan nilai – nilai hasil training dari proses training sebelumnya. Berikut adalah algoritma prosedur klasifikasi SVM.

3.1.1 Inisialisasi

Tahap pertama adalah menginisialisasi objek – objek penting yang akan dipakai dalam seluruh sistem. Objek penting tersebut antara lain adalah Model SVM yang telah di simpan sebelumnya di dalam sebuah file dan seluruh data pelatihan yang pernah dilatih sebelumnya.

PSEUDOCODE

If ada file Model then load Model

Else Create Model

If ada file Data then load Data

(3)

3.1.2 Preprocessing

Gambar 3.2 Block Diagram Preprocessing

Preprocessing yang dilakukan meliputi :

3.1.2.1 Citra Grayscale

Citra yang di masukkan akan diproses menjadi citra grayscale, dengan cara, diambil nilai R, G, B dari masing – masing pixel dari citra. Perhitungan untuk mendapatkan nilai grayscale untuk masing – masing pixel adalah : 11 1 59 1 30 1 B G R grayscale= + +

(4)

Gambar 3.3 Citra Grayscale

PSEUDOCODE

Inisialisasi Height

Inisialisasi Width

Inisialisasi GrayScaleImg [Height] [Width]

Do i = 0 to Height - 1

Do j = 0 to Width - 1

GrayScaleImg [i] [j] = Image [i] [j].R * 0.30 +

Image [i] [j].G * 0.59 + Image [i] [j].B * 0.11

EndDo

EndDo

3.1.2.2 Mencari nilai threshold yang diperlukan dalam proses selanjutnya dari citra grayscale

Setelah diubah menjadi grayscale proses selanjutnya adalah mengubahnya menjadi citra biner, sebelumnya dicari dulu nilai threshold dari histogram nilai grayscale. Dengan cara mencari dari histogram di nilai

grayscale mana terjadi perubahan intensitas yang cukup signifikan (kontras),

maka diambil nilai tengah dari nilai grayscale tersebut sebagai nilai threshold.

(5)

Inisialisasi Histogram

Inisialisasi ContrastHistogram

Inisialisasi Height

Inisialisasi Width

Inisialisasi variabel – variabel

Do i = 0 to Height - 1

Do j = 0 to Width - 1

Pengisian Histogram

Cek maksimum kontras

EndDo

EndDo

Do i = 0 to Height - 1

Do j = 0 to Width - 1

Pengisian ContrastHistogram dengan nilai kontras

yang relevan

EndDo

EndDo

Inisialisasi Sum, ContrastSum, ContrastMass, IMass

Do i = 0 to 255

Sum = Sum + i * ContrastHistogram [i]

ContrastMass = ContrastMass + ContrastHistogram [i]

IMass = IMass + Histogram [i]

EndDo

Inisialisasi MassKiri, MassKanan, MidKiri, MidKanan,

Fmax, OtsuValue

Do i = 0 to 255

MassKiri = MassKiri + ContrastHistogram [i]

If MassKiri = 0 then Continue

MassKanan = ContrastMass – MassKiri

If MassKanan = 0 then Break

ContrastMass = ContrastMass + i * ContrastHistogram

(6)

MidKiri = ContrastMass / MassKiri

MidKanan = (Sum – ContrastSum) / MassKanan

OtsuValue = MassKiri * MassKanan * (MidKiri -

MidKanan)

If OtsuValue > Fmax then

Fmax = OtsuValue

Threshold = i + 1

EndIf

EndDo

3.1.2.3 Konversi citra menjadi citra biner (Thresholding)

Setelah didapatkan nilai threshold selanjutnya adalah mengubah citra biner dengan kondisi jika nilai grayscale dari pixel dibawah nilai

threshold, maka pixel menjadi pixel hitam, dan jika nilai grayscale dari pixel

diatas atau sama dengan nilai threshold, maka pixel menjadi pixel putih.

Gambar 3.4 Citra Biner

PSEUDOCODE

Inisialisasi BWImage

Inisialisasi Height

Inisialisasi Width

(7)

Do i = 0 to Height - 1

Do j = 0 to Width - 1

If Image [i] [j] >= Threshold then

BWImage [i] [j] = 255

ElseIf Image [i] [j] < Threshold then

BWImage [i] [j] = 0

EndIf

EndDo EndDo

3.1.2.4 Cropping citra untuk mengambil informasi yang penting saja dari dalam citra.

Setelah diubah menjadi citra biner, maka dari suatu citra, diambil informasi yang penting saja, dengan cara menghilangkan space kosong (berwarna putih) yang tidak terpakai di dalam citra.

(8)

Gambar 3.6 Citra biner setelah di crop

PSEUDOCODE

Inisialisasi CropImage

Inisialisasi X, Y, Width, Height

CropImage = Image.Clone(Rectangle(X, Y, Width, Height))

3.1.2.5 Segmentasi citra untuk membagi setiap karakter dalam citra

Setelah dipastikan informasi pada citra adalah yang benar – benar penting saja, maka akan dilakukan proses segmentasi, untuk memotong dan membagi setiap karakter yang ada di dalam citra. Metode Segmentasi yang dilakukan dengan Histrogram-Based Method (Linda G. Shapiro and George C. Stockman (2001): “Computer Vision”, pp 279-325, New Jersey, Prentice-Hall). Proses segmentasi ini dibagi menjadi 3 tahap :

a. Segmentasi Baris

Segmentasi Baris adalah proses mencari baris kalimat pada sebuah citra. Proses ini akan mencari posisi koordinat y dari suatu baris kalimat pada sebuah citra. Proses ini dilakukan dengan cara, didapatkan histogram horizontal (intensitas pixel hitam dalam tiap baris), lalu dicari dari atas ke bawah, di koordinat manakah terjadi perubahan intensitas pixel dari intensitas 0 (tidak ada pixel hitam

(9)

sama sekali dalam 1 baris) menjadi intensitas > 0 (minimal 1 pixel hitam dalam 1 baris), dan intensitas > 0 menjadi intensitas 0. Koordinat dimana terjadi perubahan intensitas dari intensitas 0 menjadi intensitas > 0, akan menjadi koordinat y awal dari suatu baris. Sedangkan koordinat dimana terjadi perubahan intensitas dari intensitas > 0 menjadi intensitas 0, akan menjadi koordinat y akhir dari suatu baris. Koordinat – koordinat tersebut akan disimpan untuk tahap selanjutnya. PSEUDOCODE Inisialisasi HistogramY Inisialisasi Height Inisialisasi Width Do i = 0 to Height Do j = 0 to Width Pengisian HistogramY EndDo EndDo Inisialisasi Flag Do i = 0 to Height - 1

Pencarian titik dimana terjadi perubahan pixel

putih menjadi hitam dan disimpan sebagai

koordinat y awal dari baris

Pencarian titik dimana terjadi perubahan pixel

hitam menjadi putih dan disimpan sebagai

koordinat y akhir dari baris (pencarian

koordinat y awal dilakukan lebih dulu)

EndDo

(10)

Segmentasi Karakter adalah proses mencari karakter dalam tiap baris kalimat yang telah dicari dalam tahap sebelumnya. Mirip seperti proses sebelumnya, proses kali ini akan mencari posisi koordinat x dari suatu karakter pada tiap baris dan posisi koordinat y dalam proses ini diasumsikan sama dengan posisi koordinat y barisnya. Proses ini dilakukan dengan cara, didapatkan histogram vertikal (intensitas pixel hitam dalam 1 kolom) dari tiap baris yang telah didapatkan posisinya di tahap sebelumnya, lalu dicari dari kiri ke kanan, di koordinat manakah terjadi perubahan intensitas pixel dari intensitas 0 menjadi intensitas > 0, dan intensitas > 0 menjadi intensitas 0. Koordinat dimana terjadi perubahan intensitas dari intensitas 0 menjadi intensitas > 0 akan menjadi koordinat x awal dari suatu karakter. Dan koordinat dimana terjadi perubahan intensitas dari intensitas > 0 menjadi intensitas 0 akan menjadi koordinat x akhir dari suatu karakter. Koordinat – koordinat ini akan disimpan untuk tahap selanjutnya.

PSEUDOCODE Inisialisasi HistogramX Inisialisasi JumlahBaris Inisialisasi Width Inisialisasi AwalBaris Inisialisasi AkhirBaris Do i = 0 to JumlahBaris Do j = 0 to Width - 1

Do k = AwalBaris [i] to AkhirBaris [i] – 1

Pengisian HistogramX

EndDo

EndDo

(11)

Pencarian titik dimana terjadi perubahan

pixel putih menjadi hitam dan disimpan

sebagai koordinat x awal karakter

Pencarian titik dimana terjadi perubahan

pixel hitam menjadi putih dan disimpan

sebagai koordinat x akhir karakter (pencarian

koordinat x awal dilakukan dulu)

EndIf

EndDo EndDo

c. Segmentasi Tinggi Karakter

Segmentasi Tinggi Karakter adalah proses menghilangkan pixel yang tidak penting di dalam tiap segmen karakter yang telah didapatkan dari proses sebelumnya. Proses ini akan mencari posisi koordinat y dari tiap segmen karakter, koordinat y yang dicari adalah posisi dimana terdapat intensitas pixel hitam > 0. Proses ini dilakukan dengan cara, menggunakan histogram horizontal (intensitas pixel hitam dalam 1 baris) dari tiap karakter yang telah didapatkan posisinya di tahap sebelumnya, lalu dicari dari atas ke bawah, di koordinat manakah pertama kali dan terakhir kalinya intensitasnya > 0. Koordinat pertama kali terdeteksi intensitas > 0 akan menjadi koordinat y awal dari suatu karakter. Dan koordinat terakhir kali terdeteksi intensitas > 0 akan menjadi koordinat y akhir dari suatu karakter. Setelah proses ini, telah didapatkan posisi x, y, panjang dan lebar dari tiap karakter, dari info tersebut akan dilakukan cropping untuk tiap karakter, dan setiap hasil crop akan disimpan.

(12)

Inisialisasi XawalKarakter Inisialisasi XakhirKarakter Inisialisasi YawalKarakter Inisialisasi YakhirKarakter Inisialisasi HistogramY Do i = 0 to XawalKarakter.Length – 1

Do j = XawalKarakter [i] to XakhirKarakter [i]

– 1

Do k = YawalKarakter [i] to YakhirKarakter

[i] – 1

Pengisian HistogramY

EndDo

EndDo

Do j = YawalBaris [i] to YakhirBaris [i] – 1

Pencarian koordinat y dimana pixel hitam

pertama kali muncul dan disimpan sebagai

koordinat y awal dari karakter

Pencarian koordinat y dimana pixel hitam

terakhir muncul dan disimpan sebagai

koordinat y akhir dari karakter (pencarian

koordinat y awal dilakukan lebih dulu)

EndDo EndDo

(13)

Gambar 3.7 Citra Biner hasil Crop

(a) (b) (c) (d)

Gambar 3.8 (a) Citra a hasil Segmentasi dari Gambar 3.8 (b) Citra b hasil Segmentasi (c) Citra c hasil Segmentasi (d) Citra d hasil Segmentasi

3.1.2.6 Thinning untuk menghilangkan ketebalan dalam setiap karakter

Setelah setiap karakter dibagi – bagi menjadi suatu citra sendiri, maka proses selanjutnya adalah proses Thinning. Proses Thinning adalah proses mengecilkan garis pada suatu karakter. Proses ini penting karena proporsi ketebalan garis pada tiap karakter bisa jadi berbeda, untuk memastikan konsistensi proporsi ketebalan garis, maka dilakukan thinning.

Ada beberapa metode untuk proses Thinning, diantaranya ada metode Stentiford atau Zhang-Suen, kedua metode ini sama – sama

(14)

Template-Based Mark-and-Delete Thinning Algorithm, dari kedua metode ini, Zhang-Suen lebih cepat dan mudah untuk diimplementasikan, dan juga metode Zhang-Suen lebih baik dalam mengekstraksi garis lurus dalam raster, jadi hasil lebih berupa garis lurus (Martin and Tosunoglu, 2000) .

Algoritma yang dipakai didalam proses Thinning di sistem ini adalah Algoritma Zhang-Suen. Algoritma ini adalah method yang paralel, itu berarti nilai yang baru diambil hanya bergantung pada nilai iterasi sebelumnya. Algoritma ini terbuat dari 2 sub-iterasi. Pertama, sebuah piksel I (i,j) terhapus jika syarat-syarat berikut dipenuhi [1]:  

a) Nilai konektifitasnya satu.

b)Mempunyai sedikitnya 2 piksel tetangga yang hitam dan tidak lebih dari enam.

c) Sedikitnya salah satu dari I(i,j+1), I(i-1,j), and I(i,j-1) adalah putih. d)Sedikitnya salah satu dari I(i-1,j), I(i+1,j), and I(i,j-1) adalah putih.

Pada sub-iterasi kedua [2] kondisi pada langkah c dan d berubah. a) Nilai konektifitasnya satu.

b)Mempunyai sedikitnya 2 piksel tetangga yang hitam dan tidak lebih dari enam.

c) Sedikitnya salah satu dari I(i-1,j), I(i,j+1), and I(i+1,j) adalah putih. d)Sedikitnya salah satu dari I(i,j+1), I(i+1,j), and I(i,j-1) adalah putih.

Pada akhirnya, piksel-piksel yang memenuhi syarat-syarat di atas, akan dihapus. Jika diakhir salah satu sub-iterasi tidak ada piksel yang dihapus, maka algoritmanya berhenti.

(15)

Gambar 3.9 Citra sebelum di Thinning

Gambar 3.10 Citra sesudah di Thinning

PSEUDOCODE

Inisialisasi ThinBitmap

Inisialisasi Height

(16)

Inisialisasi Field [Width] [Height]

Inisialisasi Mark [Width] [Height]

Change = 0

Do

Change = 0

Do i = 0 to Height – 1

Do j = 0 to Width – 1

If Field [i] [j] = 1 then

Tandai Posisi i, j kedalam Mark jika

memenuhi syarat [1] EndIf EndDo EndDo Do i = 0 to Height – 1 Do j = 0 to Width – 1

If Mark [i] [j] = 1 then

Change = 1 Field [i] [j] = 0 Else Field [i] [j] = 1 EndIf EndDo EndDo Do i = 0 to Height – 1 Do j = 0 to Width – 1

If Field [i] [j] = 1 then

Tandai Posisi i, j kedalam Mark jika

memenuhi syarat [2]

EndIf

EndDo

EndDo

(17)

Do j = 0 to Width – 1

If Mark [i] [j] = 1 then

Change = 1 Field [i] [j] = 0 Else Field [i] [j] = 1 EndIf EndDo EndDo While Change = 1

3.1.3 Ekstraksi Fitur (Feature Extraction)

Setelah melalui tahap preprocessing maka data citra akan masuk dalam proses feature extraction, yang menggunakan metode zoning. Dalam proses zoning feature dibagi per segmen menjadi 100 segmen, yang masing – masing segmen besarnya M/10 x N/10 pixel (M adalah panjang citra, N adalah lebar citra), seperti berikut :

(18)

Dari setiap segmen itu akan didapatkan jumlah pixel hitam yang akan dibagi jumlah pixel di dalam segmen ( (M/10) * (N/10) ), nilai ini akan menjadi salah satu nilai untuk input vector. Jika nilai dari semua segmen dikumpulkan, maka akan didapatkan sebuah input vector [1, 100]. Hasil dari proses feature extraction ini adalah sebuah feature vector yang siap untuk dijadikan input ke dalam proses SVM.

Berikut adalah contoh nilai feature vector dari sebuah citra yang telah melewati proses feature extraction, citra tersebut adalah karakter ‘2’.

Gambar 3.12 Citra karakter ‘2’

Table 3.1 Tabel Nilai Feature Vector untuk objek karakter ‘2’

0 0 0 0.08 0.12 0.1 0.1 0.05 0 0 0 0 0 0.07 0 0 0 0.11 0 0 0 0 0 0 0 0 0 0.1 0 0 0 0 0 0 0 0 0 0.12 0 0 0 0 0 0 0 0 0 0.12 0 0 0 0 0 0 0 0 0.12 0.01 0 0 0 0 0 0 0.03 0.12 0.01 0 0 0 0 0.03 0.1 0.13 0.18 0.08 0 0 0 0 0.12 0.18 0.09 0 0 0.05 0.1 0.1 0 0 0 0 0 0 0 0 0 0 0.1 0.1 PSEUDOCODE

(19)

Inisialisasi ListNode [101]

Inisialisasi Height

Inisialisasi Width

Do Index = 0 to 99

Inisialisasi SumBlackPixel

Inisialisasi SegmentHeight = Height / 10

Inisialisasi SegmentWidth = Width / 10;

Inisialisasi i, j

Do i = 0 to SegmentHeight – 1

Do j = 0 to SegmentWidth – 1

Jumlahkan pixel hitam di dalam segmen

EndDo

Jika masih terdapat pixel walau segment width telah

selesai ditelusuri, telusuri pixel sisa dan jumlahkan

pixel hitamnya

EndDo

Jika masih terdapat pixel walau segment height telah

selesai ditelusuri, telusuri pixel sisa dan jumlahkan pixel

hitamnya

ListNode [index] = SumBlackPixel / (SegmentWidth *

SegmentHeight)

EndDo

ListNode [index + 1] = Width / Height

3.1.4 Klasifikasi SVM

3.1.5.1 Proses inisialisasi objek Parameter dan Problem (class untuk data training)

Sebelum membuat objek model, terlebih dahulu harus ada objek dari class Problem dan objek dari class Parameter.

(20)

Objek Problem berisi semua nilai X dan Y yang telah terkumpul sebagai database yang berisi data training.

X adalah matriks input dari citra – citra hasil pembelajaran yang sudah melalui proses training. Matriks X berukuran [N x D] dimana N adalah jumlah dimensi dari input vector dan D adalah banyaknya citra pembelajaran yang telah dimasukkan.

Y adalah matriks output yang berisikan kelas – kelas output yang diharapkan dari sistem. Matriks Y berukuran [N x 1] adapun nilai – nilai dari kelas – kelas output ini :

(21)

Table 3.2 Tabel Kelas / Kategori

Nilai Kelas Representasi Karakter

0 ‘0’ 1 ‘1’ 2 ‘2’ 3 ‘3’ 4 ‘4’ 5 ‘5’ 6 ‘6’ 7 ‘7’ 8 ‘8’ 9 ‘9’ 10 ‘a’ 11 ‘b’ 12 ‘c’ 13 ‘d’ 14 ‘e’ 15 ‘f’ 16 ‘g’ 17 ‘h’ 18 ‘i’ 19 ‘j’ 20 ‘k’ 21 ‘l’ 22 ‘m’ 23 ‘n’ 24 ‘o’ 25 ‘p’ 26 ‘q’ 27 ‘r’ 28 ‘s’ 29 ‘t’ 30 ‘u’

Nilai Kelas Representasi Karakter

31 ‘v’ 32 ‘w’ 33 ‘x’ 34 ‘y’ 35 ‘z’ 36 ‘A’ 37 ‘B’ 38 ‘C’ 39 ‘D’ 40 ‘E’ 41 ‘F’ 42 ‘G’ 43 ‘H’ 44 ‘I’ 45 ‘J’ 46 ‘K’ 47 ‘L’ 48 ‘M’ 49 ‘N’ 50 ‘O’ 51 ‘P’ 52 ‘Q’ 53 ‘R’ 54 ‘S’ 55 ‘T’ 56 ‘U’ 57 ‘V’ 58 ‘W’ 59 ‘X’ 60 ‘Y’ 61 ‘Z’

(22)

Objek Parameter berisi parameter – parameter yang diperlukan dalam pembuatan objek, misalnya tipe SVM, tipe kernel, nilai C, nilai Gamma, nilai Nu, dsb. Setelah ada kedua objek tersebut maka objek model dapat dibuat. Objek Model inilah yang menjadi inti dari sistem, “otak” dari sistem pengenalan ini.

PSEUDOCODE

Inisialisasi objek Problem (berisi data yang akan

dilatih)

Inisialisasi objek Parameter

Masukkan parameter – parameter pilihan user ke dalam objek Parameter

3.1.5.2 Proses Training dan buat Model

Dengan objek dari class Problem dan objek dari class Parameter, maka objek Model dapat dibuat dengan cara langsung menggunakan fungsi static Training.train() dengan parameter objek Problem dan objek Parameter. Model inilah yang akan dipakai untuk proses pengenalan. Proses training akan menghasilkan Model yang lebih terlatih. Parameter – parameter untuk proses training diantaranya tipe SVM, tipe Kernel, nilai Gamma, nilai Nu dan nilai C dapat diubah. Parameter Tipe SVM mempengaruhi parameter nilai Nu dan nilai C, jika Tipe SVM yg dipilih adalah Nu-SVC maka parameter yang dapat diisi adalah nilai Nu, jika Tipe SVM yg dipilih adalah C-SVC maka parameter yang dapat diisi adalah nilai C. Untuk sistem ini, kernel yang digunakan defaultnya adalah RBF, karena kernel yang baik digunakan untuk permulaan adalah RBF (Chih, Jen-Lin; 2008), tapi kernel dapat dipilih sesuai keinginan. Gamma adalah parameter untuk kernel, jika kernel yang digunakan adalah linear, Gamma menjadi tidak terpakai. Nilai Nu dan C adalah parameter untuk SVM, nilai Nu dan C adalah konstanta yang dipakai dalam proses optimasi SVM.

(23)

Perancangan SVM dibantu dengan menggunakan pustaka LibSVM, LibSVM menawarkan fungsi untuk membuat Model SVM dengan berbagai macam formulasi, tipe kernel.

a) Formulasi

Formulasi – formulasi yang ada didalam LibSVM, diantaranya : o C-Support Vector Classifier (C-SVC)

o v-Support Vector Classifier (v-SVC) o Distribution Estimation (One-Class SVM) o ε-Support Vector Regression (ε-SVR) o v-Support Vector Regression (v-SVR) b) Kernel

Pilihan Kernel yang ada didalam LibSVM, diantaranya : o Linear

o Polynomial o RBF o Sigmoid o Precomputed

LibSVM juga menawarkan fungsi untuk melakukan skala pada fitur dengan menggunakan Class Scaling.

Dalam formulasi SVM ada 2 parameter yang penting, yaitu C dan γ. LibSVM menawarkan fungsi untuk melakukan optimasi terhadap 2 parameter ini dengan menggunakan Class PrecomputedKernel.

PSEUDOCODE

Inisialisasi Model

(24)

3.1.5.3 Proses Simulasi Klasifikasi

Dalam proses pengenalan (klasifikasi), user akan memasukkan citra yang ingin dikenali ke dalam program, lalu dilakukan juga preprocess terhadap citra tersebut lalu dibagi per segmen dan didapatkan input vector. Input vector tersebut akan dimasukkan ke dalam model SVM sebagai input di dalam proses pengenalan yang akan menghasilkan output berupa integer yang merepresentasikan suatu class output. Proses pengenalan ini dilakukan dengan menggunakan fungsi static Prediction.Predict() dengan parameter objek Model dan array dari Node input yang akan dimasukkan ke Model SVM. Di dalam sistem ini juga disediakan fitur untuk menyimpan output dari proses ini ke dalam text file.

PSEUDOCODE

Inisialisasi SegmentasiCitra

Inisialisasi Output

Inisialisasi Karakter yang berisi karakter dari 0-9 dan

a-z dan A-Z

Do i = 0 to SegmentasiCitra.Length – 1

Panggil fungsi ekstraksi fitur masukkan ke variabel

Test

kelas = Prediction.Predict(Model, Test)

Output = Output & Karakter [kelas]

EndDo

Tampilkan variabel Output pada Textbox

3.2 Perancangan Sistem

Pada perancangan sistem terdapat arsitektur sistem, diagram hierarki, state transition diagram, dan layout sistem.

(25)

3.2.1 Arsitektur Sistem

  Gambar 3.13 Flowchart Sistem Pengenalan Karakter Tulis Tangan Online

Arsitektur sistem ini dimulai dengan inisialisasi sistem yaitu menetapkan variabel – variabel awal dalam program, di sini juga dilakukan load model SVM yang pernah disimpan sebelumnya.

Setelah itu sistem menunggu inputan berupa citra digital, inputan dapat ditulis langsung di tempat yang sudah disediakan atau dimasukkan dari file – file yang sudah ada.

Setelah citra digital telah siap, citra akan di preprocessing, untuk menghilangkan noise, preprocessing terdiri dari :

• Grayscaling • Thresholding • Cropping • Segmentation • Thinning

(26)

Preprocessing akan menghasilkan citra yang telah bersih dari noise, setelah itu diproses dalam proses ekstraksi fitur, proses ini mengambil fitur – fitur yang merupakan representasi dari sebuah citra yaitu feature vector.

Setelah didapatkan fitur, maka selanjutnya adalah proses SVM, dari fitur tersebut bisa langsung di test apakah dikenali atau tidak dengan proses recognize, atau dimasukkan sebagai objek yang akan dilatih dalam proses training. Proses

training akan menghasilkan sebuah model SVM, model ini merupakan representasi

dari seluruh metode SVM. Model ini juga dapat disimpan ke dalam file untuk dipakai lagi. Proses recognize menggunakan model SVM yang sudah ada, input dimasukkan ke dalam model SVM untuk diketahui kelasnya. Selanjutnya proses validasi juga termasuk di dalam simulasi, validasi sama seperti proses recognize memasukkan input baru ke dalam model SVM untuk diketahui kelasnya, tetapi dalam validasi, kelasnya sudah diketahui, maka dilakukan perbandingan hasil yang dikeluarkan SVM dengan kelas yang diharapkan.

(27)

3.2.2 Diagram Hierarki

Gambar 3.14 Diagram Hierarki Aplikasi Pengenalan Karakter Tulis Tangan

Aplikasi pengenalan karakter tulis tangan dimulai dengan Menu yang terdiri dari 3, yaitu File, Input dan Output. File terdiri dari tiga Menu, yaitu Load Image,

Save SVM, dan Exit. Load Image berfungsi untuk memasukkan citra dari file, Save

SVM untuk menyimpan SVM yang telah dibuat ke dalam file, Exit untuk keluar dari aplikasi. Input terdiri dari satu Menu, yaitu Pen Mode yang berfungsi untuk memperbesar Canvas Original Image. Output terdiri dari satu Menu, yaitu Save

Output to File yang berfungsi untuk menyimpan hasil dari Textbox Result ke dalam

(28)

Citra karakter dapat langsung dibuat di dalam Canvas Original Image, atau dimasukkan dari file dengan menu Load Image. Setelah ada citra, maka

Preprocessing dapat dilakukan, hasil dari Preprocessing akan muncul di Picturebox

Image Input. Setelah Image Input terisi, Segmentation dapat dilakukan,

Segmentation akan membagi citra di dalam Image Input menjadi beberapa citra.

Setelah Segmentation, selanjutnya bisa dipilih Menu untuk melakukan

Validasi, Recognize, atau Training. Ketiga menu tersebut akan menghasilkan output

di dalam Text Result.

3.2.3 State Transition Diagram

3.2.3.1State Transition Diagram untuk proses Training

(29)

Di dalam Main Menu terdapat File, Input, Output. Dari File, menu yang tersedia adalah Load Image, Save SVM, dan Exit. Dari Input, menu yang tersedia adalah Pen Mode, dari situ Main Menu dapat dipilih kembali. Menu Output, juga terdiri dari satu menu yaitu Save Output to File.. Citra dapat digambar langsung di dalam aplikasi, cara lain untuk memasukkan citra adalah dengan menu Load Image, setelah citra siap, maka menu

Preprocessing dapat dilakukan, setelah Preprocessing, baru menu

Segmentation dapat dijalankan. Untuk melakukan Training, Expected Output

harus diisi terlebih dulu, setelah dilakukan Training, hasilnya akan tampil dalam Result. Dari menu Preprocessing, Segmentation dan pengisian

Expected Output, bisa langsung memilih kembali ke Main Menu.

3.2.3.2 State Transition Diagram untuk proses Simulasi

(30)

Modul Simulasi dan Training tidak jauh berbeda, yang berbeda adalah setelah dilakukan Segmentation, yang dilakukan selanjutnya adalah Recognize

3.2.3.3State Transition Diagram untuk proses Validasi

Gambar 3.17 STD untuk modul Validasi

Pada modul validasi, langkah – langkah sampai menu Segmentation masih sama dengan modul Training atau Simulasi. Setelah Segmentation,

(31)

Expected Output diharuskan untuk diisi, lalu setelah Validate dilakukan, maka hasilnya akan keluar di Result, dan di Validate Output.

3.2.4 Layout Sistem

 

Gambar 3.18 Layout Perancangan Sistem Pengenalan Karakter Tulis Tangan

Pengguna akan diminta untuk memasukkan inputan. Salah satu caranya adalah dengan memilih file citra pada menu Load Image (nomor 1) yang selanjutnya akan menampilkan citra tersebut pada box Original Image. Box ini juga dapat langsung digambar dengan menggunakan pointer, dengan begitu inputan dapat langsung dibuat di dalam aplikasi. Tahap selanjutnya adalah dilakukan

Preprocessing (nomor 4) yang akan menghasilkan gambar yang sudah di

Preprocessing. Setelah dilakukan Preprocessing baru di Segmentation (nomor 5),

Segmentation adalah pembagian gambar pada citra yang telah di Preprocessing,

(32)

akan tampil pada bagian box Images,. Jika citra segmentasi yang akan dikenali terlalu banyak, layar hanya akan menampilkan lima citra segmentasi, button Prev (nomor 6) dan Next (nomor 7) sebagai tombol navigasi untuk mengatur citra mana yang akan ditampilkan. Tidak semua citra setelah di segmentation akan bersih dari noise, maka disediakan tombol Remove (nomor 9) untuk menghapus citra segmentasi tersebut jika pengguna tidak membutuhkan citra tersebut. Jika ingin menghapus seluruhnya disediakan tombol Clear (nomor 8). Sebelum di Training diharuskan mengisi box Training (nomor 13) yang berisi parameter yang akan digunakan untuk proses pelatihan. Button Recognize (nomor 10) digunakan untuk mengenali huruf yang sudah diproses sehingga keluar hasil output di Textbox

Result (nomor 14). Validate (nomor 11) berfungsi untuk membandingkan data yang

sudah di Recognize dengan Expected Output sehingga akan diketahui berapa error yang terjadi. Training (nomor 12) berfungsi untuk melatih data.

Gambar

Gambar 3.2 Block Diagram Preprocessing  Preprocessing yang dilakukan meliputi :
Gambar 3.3 Citra Grayscale
Gambar 3.4 Citra Biner
Gambar 3.5 Citra biner sebelum di crop
+7

Referensi

Dokumen terkait

Untuk mendapatkan tanaman yang tahan terhadap penyakit yang disebabkan oleh cendawan misalnya, dapat dilakukan seleksi pada tahapan kultur in vitro dengan menambahkan fusaric

bahwa untuk melaksanakan ketentuan Pasal 18 Undang-Undang Nomor 24 Tahun 2007 tentang Penanggulangan Bencana, dan Pasal 2 Peraturan Menteri Dalam Negeri Nomor 46 Tahun 2008

Pengendalian Ulat Pemakan Daun Kelapa Sawit (UPDKS) degan menggunakan insektisida kimia jika tingkat populasi sudah sangat tinggi dan tidak dapat dilakukan dengan

Perencanaan strategis harus mendasarkan kepada kekuatan dan kelemahan yang ada dalam suatu perusahaan untuk menangkap peluang yang lebih baik dan menanggulangi

Studi perbandingan model kinetika dan isoterm adsorpsi zat warna naphtol blue black (NBB) dan indigosol blue (IB) pada asam humat (HA) hasil isolasi tanah

Satu lagi yang perlu diingat, dalam pengajuan proposal atau berkas pinjaman / kredit ke Bank juga harus mempunyai kecermatan dan kesabaran, karena tips diatas tidak akan terwujud jika

Pejalan Kaki merupakan pelaku yang memiliki peran menjalankan fungsi kawasan pusat pelayanan sosial ekonomi. Kondisi fasilitas pejalan kaki dirasakan masih tergolong belum

Ketika realitas-realitas yang dapat Ketika realitas-realitas yang dapat dinalar itu terukir dalam jiwa yang dinalar itu terukir dalam jiwa yang rasional maka realitas-realitas