• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN PERANGKAT LUNAK

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PERANCANGAN PERANGKAT LUNAK"

Copied!
12
0
0

Teks penuh

(1)

18

BAB III

PERANCANGAN PERANGKAT LUNAK

Perancangan perangkat lunak pada skripsi ini bertujuan untuk mengenali aksara Jawa dasar tulisan tangan dengan menerapkan metode Shape Context Descriptor sebagai klasifikatornya.

Pada sistem ini data latih berupa aksara Jawa cetak, dan data uji berupa aksara Jawa tulisan tangan yang ditulis oleh 30 orang. Untuk perancangan perangkat lunak digunakan perangkat lunak MATLAB.

Alur kerja sistem meliputi memasukkan citra ke MATLAB, pengolahan gambar, edge detection, bipartite and hungarian method, menghitung matching-cost matrix, menghitung tingkat akurasi metode Shape Context Descriptor, dan menghitung waktu pemrosesan sistem.

Gambar 3.1 di bawah ini merupakan perancangan sistem secara keseluruhan dari membaca citra hingga menghitung tingkat akurasi.

(2)

Gambar 3.1 Perancangan Sistem

3.1. Memasukkan Citra ke MATLAB

Memasukkan citra aksara Jawa ke dalam program dan melakukan perulangan perbandingkan data uji dengan himpunan data latih 20 aksara Jawa: ha, na, ca, ra, ka, da, ta, sa, wa, la, pa, dha, ja, ya, nya, ma, ga, ba, tha, nga, yang programnya adalah sebagai berikut.

latih{1}=imread('1.jpg'); latih{2}=imread('2.jpg'); latih{3}=imread('3.jpg'); latih{4}=imread('4.jpg'); latih{5}=imread('5.jpg'); latih{6}=imread('6.jpg'); latih{7}=imread('7.jpg'); latih{8}=imread('8.jpg'); latih{9}=imread('9.jpg'); latih{10}=imread('10.jpg'); latih{11}=imread('11.jpg'); latih{12}=imread('12.jpg'); latih{13}=imread('13.jpg'); latih{14}=imread('14.jpg'); latih{15}=imread('15.jpg'); latih{16}=imread('16.jpg'); latih{17}=imread('17.jpg'); latih{18}=imread('18.jpg'); latih{19}=imread('19.jpg'); latih{20}=imread('20.jpg');

(3)

for z=1:20

gambar=latih{z};

end

Citra aksara Jawa dibagi menjadi 2 bagian. Bagian pertama adalah aksara Jawa cetak sebagai citra pembanding, dan yang kedua adalah aksara Jawa tulisan tangan sebagai citra uji. Aksara Jawa dimasukkan menggunakan proses perulangan agar lebih efisien.

Gambar 3.2 (a). Aksara Jawa Cetak. (b). Aksara Jawa Tulisan Tangan.

3.2. Pengolahan Citra

Sebelum pendeteksian aksara gambar harus diolah terlebih dahulu dengan 2 proses yaitu gambar harus dalam bentuk biner dan memiliki resolusi yang lebih kecil.

3.2.1. Konversi Citra RGB ke Biner

Citra aksara Jawa difoto untuk menghasilkan bentuk citra RGB, tetapi hanya diperlukan bentuk biner agar pemrosesan lebih sederhana dan cepat. Sebelum menjadi

(4)

bentuk biner, perlu diubah menjadi grayscale terlebih dahulu. Pengubahan citra RGB menjadi grayscale dengan instruksi berikut.

B = rgb2gray(A)

(3.1)

dengan B = Hasil pengolahan citra; dan

A = Masukan citra RGB.

Fungsi rgb2gray merupakan fungsi built-in MATLAB yang memiliki konstanta sebagai berikut.

Grayscale = 0.2989*Red + 0.5870*Green + 0.1140*Blue

(3.2)

Setelah melakukan konversi citra ke grayscale, selanjutnya dilakukan konversi citra ke biner dengan fungsi sebagai berikut.

D = im2bw(C,level);

(3.3)

dengan D = Hasil pengolahan citra menjadi biner; C = Citra masukan; dan

level = Batas ambang.

Program konversi citra ke biner menggunakan batas ambang sebesar 0,5. Bila pixel pada citra grayscale memiliki nilai keabuan di bawah 0,5 maka nilainya pixel tersebut adalah 0, dan apabila nilai keabuan lebih besar dari 0,5 maka nilai pixel tersebut adalah 1.

(5)

Gambar 3.3 (a). Citra dalam Bentuk RGB. (b). Hasil Pengubahan Citra RGB ke Bentuk Biner dengan Threshold 0,5.

3.2.2. Imresize

Dalam pengubahan ukuran citra menggunakan fungsi Imresize. Fungsi imresize merupakan fungsi built-in MATLAB. Penulisan programnya adalah seperti pada Persamaan (3.4).

B= imresize (A,NUMROWS NUMCOLS] ,’method’) (3.4) dengan A= Citra yang akan diubah ukuran citra;

B= Hasil citra setelah dilakukan fungsi imresize;

[NUMROWS NUMCOLS] = Ukuran resolusi citra yang diinginkan [baris kolom]; dan

(6)

Dimensi NUMROWS dan NUMCOLS citra keluaran, ditetapkan sebagai 2 vektor elemen bilangan bulat positif. Nilai NUMROWS dan NUMCOLS ditentukan oleh perancang. Dalam hal ini, imresize menghitung jumlah baris dan kolom untuk dimensi tersebut secara otomatis, dengan mempertahankan rasio aspek citra.

Imresize memiliki 3 metode sebagai berikut.

a. Nearest = Nearest-neighbor interpolation, merupakan metode yang hasilnya diperoleh dengan memberikan nilai pixel yang termasuk dalam titik tersebut. Tidak ada pixel lain yang dipertimbangkan. Nearest-neighbor interpolation merupakan metode default untuk citra categorical.

b. Bilinear = Bilinear interpolation, merupakan metode yang hasilnya diperoleh dari rata-rata nearest 2-by-2 neighborhood.

c. Bicubic = Bicubic interpolation, merupakan metode yang hasilnya diperoleh dari rata-rata nearest 4-by-4 neighborhood. Bicubic interpolation merupakan metode default untuk citra numeric atau logical.

(7)

Pengubah ukuran citra menggunakan instruksi berikut.

V1=imresize(Ithresh,[180 180],'bil');

(3.5)

dengan V1= Hasil pengolahan citra menjadi ukuran 180×180;

Ithresh = Citra masukkan; dan

‘bil’= menggunakan metode bilinear.

Gambar 3.4. (a) Citra Berukuran 1040 × 780. (b). Citra Berukuran 180 × 180.

3.3. Edge Detection

Untuk mendapatkan titik cuplik sebanyak ‘n’ titik, maka perlu dicari edge detection dengan fungsi berikut.

function [x,y,t,c]=bdry_extract_3(V); Untuk mencari titik cuplik dari edge detection digunakan fungsi berikut.

(8)

Gambar 3.5. Hasil Edge Detection dan Pencuplikan 150 Titik.

3.4. Bipartite and Hungarian Method

Setelah mendapat titik cuplik, maka dilakukan proses pencocokan titik cuplik dari citra A dengan citra B, menggunakan proses bipartite. Hasil penghitungan dimasukkan ke dalam matriks menggunakan hungarian method agar mendapat pasangan yang paling optimal.

Proses bipartite dilakukan menggunakan fungsi berikut.

Function [BH,mean_dist]=sc_compute(Bsamp,Tsamp,mean_dist, nbins_theta,nbins_r,r_inner,r_outer,out_vec);

% Adapted from the Serge Belongie (sjb@eecs.berkeley.edu)[10]

[BH,mean_dist]=sc_compute(Bsamp,Tsamp,mean_dist,nbins_the ta,nbins_r,r_inner,r_outer,out_vec);

%

% compute (r,theta) histograms for points along boundary %

(9)

% Tsamp is 1 x nsamp (tangent theta)

% out_vec is 1 x nsamp (0 for inlier, 1 for outlier)

% mean_dist is the mean distance, used for length normalization

% if it is not supplied, then it is computed from the data % outliers are not counted in the histograms, but they do get

% assigned a histogram

Langkah pertama adalah menghitung barisan jari-jari dan sudut.

r_array=real(sqrt(dist2(Bsamp',Bsamp'))) %computer arrays

theta_array=theta_array_abs-Tsamp'*ones(1,nsamp);

% compute theta arrays Langkah kedua adalah normalisasi jarak.

r_array_n=r_array/mean_dist;

Langkah ketiga adalah menggunakan histogram log-polar untuk pengelompokan tiap pasangan berdasarkan jarak antara satu dengan yang lain.

Proses Hungarian Method menggunakan fungsi berikut.

function [C,T]=hungarian(A)

%HUNGARIAN Solve the Assignment problem using the Hungarian method. Adapted from the FORTRAN IV code in Carpaneto and Toth, Algorithm 548

%[C,T]=hungarian(A)

%A - a square cost matrix. %C - the optimal assignment.

%T - the cost of the optimal assignment.

Hungarian Method memiliki 4 fungsi utama,sebagai berikut

function A=hminired(A)

function [A,C,U]=hminiass(A)

function [A,C,U]=hmflip(A,C,LC,LR,U,l,r)

(10)

fungsi hminired(A) : fungsi ini digunakan untuk mengurangi nilai setiap baris dan kolom hingga terdapat nilai 0, dan mencatat letak nilai 0.

fungsi hminiass(A): fungsi ini digunakan untuk mengenali letak nilai 0 setiap baris dan kolom, lalu melakukan eliminasi terhadap nilai 0.

fungsi hmflip(A, CH, RH, LC, LR, SLC, SLR ): fungsi ini digunakan untuk mengembalikan nilai yang terpengaruh karena terdeteksi 2 kali sebagai nilai 0 antara bagian baris dan kolom.

fungsi hmreduce(A, CH, RH, LC, LR, SLC, SLR): fungsi ini digunakan untuk memperbarui matriks .

Gambar 3.6 Hasil Proses Bipartite and Hungarian Method untuk Mendeteksi 140 Pasangan Titik yang Cocok.

(11)

3.5. Menghitung Matching-cost Matrix

Menghitung perolehan nilai cost menggunakan fungsi sebagai berikut.

function HC=hist_cost_2(BH1,BH2);

% HC=hist_cost_2(BH1,BH2);

% Adapted from the Serge Belongie (sjb@eecs.berkeley.edu)[10

% same as hist_cost.m but BH1 and BH2 can be of different lengths [nsamp1,nbins]=size(BH1); [nsamp2,nbins]=size(BH2); BH1n=BH1./repmat(sum(BH1,2)+eps,[1 nbins]); BH2n=BH2./repmat(sum(BH2,2)+eps,[1 nbins]); tmp1=repmat(permute(BH1n,[1 3 2]),[1 nsamp2 1]); tmp2=repmat(permute(BH2n',[3 2 1]),[nsamp1 1 1]); HC=0.5*sum(((tmp1-tmp2).^2)./(tmp1+tmp2+eps),3);

BH1 adalah nilai histogram log-polar data latih.

BH2 adalah nilai histogram log-polar data uji.

HC adalah hist_cost yang merupakan hasil cost dalam proses perbandingan.

Setelah mendapatkan nilai hist_cost, lalu nilai tersebut dimasukkan ke dalam matriks untuk proses penghitungan hungarian method.

3.6. Menghitung Tingkat Akurasi Shape Context Descriptor

Semakin kecil nilai cost proses matching, maka semakin cocok dengan data aksara cetak yang menjadi pembanding citra uji, dan huruf aksara Jawa tersebut akan dikenali. Untuk menghitung tingkat akurasi metode Shape Context Descriptor dalam mengenali huruf aksara Jawa, digunakan persamaan sebagai berikut.

(12)

𝑎𝑘𝑢𝑟𝑎𝑠𝑖 = 𝑗𝑢𝑚𝑙𝑎ℎ 𝑏𝑒𝑛𝑎𝑟

𝑡𝑜𝑡𝑎𝑙 𝑝𝑒𝑛𝑐𝑜𝑐𝑜𝑘𝑎𝑛 × 100%

3.7. Menghitung Waktu Pemrosesan Sistem

Perintah yang digunakan untuk menghitung waktu pemrosesan dalam MATLAB adalah Tic-Toc. Tic-Toc merupakan fungsi built-in MATLAB yang bekerja secara bersama. Tic digunakan untuk memulai penghitungan waktu dan Toc untuk mengakhiri penghitungan. Tic-Toc dihitung dalam satuan detik.

Gambar

Gambar  3.1  di  bawah  ini  merupakan  perancangan  sistem  secara  keseluruhan  dari  membaca citra hingga menghitung tingkat akurasi
Gambar 3.1 Perancangan Sistem
Gambar   3.2 (a).  Aksara Jawa Cetak.                              (b). Aksara Jawa Tulisan Tangan
Gambar 3.3 (a).  Citra dalam Bentuk RGB.                     (b). Hasil Pengubahan Citra  RGB  ke  Bentuk  Biner  dengan Threshold 0,5
+4

Referensi

Dokumen terkait

Hasil investasi yang diperoleh dari saham TLKM selama tahun 2015 dengan menggunakan metode RSI dapat dilihat dalam tabel berikut ini;..

Manajemen kasus merupakan model intervensi yang dilaksanakan karena kompleksitas masalah yang dialami oleh klien korban tindakan aborsi, sehingga pada intervensinya

Function tersebut berguna untuk mengambil data, menampilkan data yang telah diambil dan membandingkan produk yang telah dipilih oleh user.. Function Product

1) Guru meminta siswa untuk membaca materi mengenai penderitaan bangsa Indonesia pada masa penjajahan Jepang pada halaman 51–52. 2) Guru meminta dua siswa-siswi untuk

Tujuan yang ingin di capai pada kegiatan pengabdian ini adalah meningkatkan pengetahuan peternak dalam memelihara ternak sapi potong secara baik dan

Hubungan kerjasama antara kepala sekolah dengan orang tua siswa yang tergabung dalam komite sekolah pada gilirannya diharapkan dapat memenuhi tingkat kepuasan dalam bekerja dan

Peneliti Apa manfaat yang di dapat siswa pada saat pelajaran PPKn. dengan

Di sini peneliti lebih memusatkan perhatian pada pakaian bekas karena pakaian bekas suatu hal yang tidak lumrah diminati oleh masyarakat padahal terdapat banyak pusat