Anda di halaman 1dari 11

Neuro-Fuzzy

Pengenalan Pola Lingkaran Menggunakan Jaringan Saraf Tiruan dengan Metode


Backpropagation
Oleh
Fiqhi

H1C012004

Edy Susanto

H1C013008

Aprilia Utami

H1C013028

Sutriyono

H1C013035

Bayu Eko Saputro

H1C013078

1. Pendahuluan
Pola adalah entitas yang terdefinisi dan dapat diidentifikasi melalui ciri-cirinya
(features). Ciri-ciri tersebut digunakan untuk membedakan suatu pola dengan pola
lainnya. Ciri yang bagus adalah ciri yang memiliki daya pembeda yang tinggi, sehingga
pengelompokan pola berdasarkan ciri yang dimiliki dapat dilakukan dengan keakuratan
yang tinggi. Pengenalan pola bertujuan menentukan kelompok atau kategori pola
berdasarkan ciri-ciri yang dimiliki oleh pola tersebut. Dengan kata lain, pengenalan pola
membedakan suatu objek dengan objek lain .
Pada suatu sistem pengenalan pola, jaringan saraf tiruan dapat digunakan untuk
menemukan ciri-ciri pembedaan yang diperlukan untuk melakukan tugas pengenalan
pola. Kemampuan ini sebenarnya merupakan bagian dari sifat swa-organisasi internal
jaringan. Setelah jaringan saraf tiruan diberi himpunan pelatihan yang berupa sejumlah
pola maka jaringan akan melakukan klasifikasi yang sesuai dengan pola tersebut dalam
kategori-kategori tertentu.
Pada kasus ini akan dibuat sebuah sistem pengenalan pola lingkaran
menggunakan jaringan saraf tiruan dengan metode backpropagation. Citra yang akan
dikenali adalah citra lingkaran berdimensi 3508x2482 pixel seperti tampak pada Gambar
1.

Gambar 1. Citra lingkaran.png

2. Pelaksanaan/Langkah Kerja
Pada tahap ini yang akan kita lakukan adalah melakukan pra-pengolahan data
citra untuk mendapatkan ciri/features tertentu sampai mengklasifikasikannya
menggunakan JST. Tahap pengolahan data yang akan kita lakukan ditunjukan pada
Gambar 2.

.
Gambar 2. Tahap Pengolahan Data
A.Tahap Pra-pengolahan
Tahap pra-pengolahan merupakan tahap yang dilakukan untuk mempersiapkan citra
digital untuk mendapatkan hasil ekstraksi ciri yang bagus. Tahap pra-pengolahan yang
dilakukan berupa tahap segmentasi dan tahap normalisasi. Segmentasi yaitu pemisahan
objek yang hendak dikenali dengan gambar latarnya. Proses segmentasi meliputi
pengubahan citra ke biner (black and white) dan pemotongan/cropping citra sesuai
dimensi objeknya. Normalisasi merupakan penyeragaman dimensi objek. Proses ini
berupa pengecilan/resize dimensi objek menjadi 50x50 piksel. Normalisasi merupakan
proses yang sangat penting untuk menjaga konsistensi dari dimensi objek. Gambar citra
yang sudah disegmentasi ditunjukan pada Gambar 3.

Gambar 3. Citra Lingkaran 50x50 pixel hasil segmentasi


Source code yang digunakan yaitu :
B.Tahap Ekstraksi Ciri
function[input]=buat_input_lingkaran(img)
ibw=im2bw(img,0.5);
ibw=~ibw ;
se = strel('square',2);
imageD = imdilate(ibw, se);
Ifill= imfill(imageD,'holes');
[Ilabel num] = bwlabel(Ifill);
Iprops = regionprops(Ilabel);
Ibox = [Iprops.BoundingBox];
Ibox = reshape(Ibox,[4 num]);
x=Ibox(1,3);
y=Ibox(2,3);
deltax=Ibox(3,3);
deltay=Ibox(4,3);
IB=imcrop(imageD,[x y deltax-1 deltay-1]);
IB=imresize(IB,[50 50]);

Pada tahap ekstraksi ciri, dilakukan proses pengekstraksian ciri/features citra lingkaran.
Ciri/features yang dipilih yaitu luas (area) dan keliling (perimeter). Hasilnya ditunjukan
pada Gambar 4.

Gambar 4. Nilai area dan perimeter citra lingkaran


Perhitungan manualnya yaitu (d=25;r=25)
Luas=pi*r*r=3.14*25*25=1962.5; Keliling=0.5*pi*r=0.5*3.14*25=157.0796
Source code yang digunakan yaitu
Hasil dari proses ekstraksi ciri berupa matriks berukuran 2x1, dimana baris menunjukan
function [input]=buat_input_bangun(our_images)
our_images = bwconvhull(our_images,'objects');
stats = regionprops(our_images,'Area','Perimeter');
area = stats.Area;
perimeter= stats.Perimeter;
input = [area;perimeter];

ciri/features.
C.Klasifikasi dengan Jaringan Saraf Tiruan (JST)
Tahap ini dibagi menjadi dua, yaitu tahap pembuatan jaringan dan tahap
pelatihan/learning dan pengujian/simulation.
C.1 Tahap Pembuatan Jaringan
Ciri/features yang sudah diperoleh pada tahap sebelumnya digunakan sebagai dataset
input dari jaringan/network. Dengan cara yang sama, dicari juga ciri dari citra segitiga,
persegi, belahketupat, segilima dan segienam yang digabungkan dalam sebuah dataset
berukuran 2x6 yang ditunjukan pada Gambar 5. Baris menunjukan ciri/features setiap
pola sedangkan kolom menunjukan jumlah pola.

Gambar 5. Dataset input pelatihan jaringan/network


Source code yang digunakan yaitu

P=[data_latih_1];
T=[1 2 3 4 5 6];
net_bangun2 = newff(P,T,[10],{'logsig'});

Arsitektur jaringannnya ditunjukan pada Gambar 6.

Gambar 6. Arsitektur jaringan/network net_bangun2


C.2 Tahap Pelatihan/learning dan Pengujian/simulation
Metode yang digunakan pada tahap pelatihan jaringan/network adalah perambatan
galat mundur/backpropagation. Pelatihan propagasi umpan balik meliputi 3 fase. Fase
pertama adalah fase maju. Pola masukan dihitung maju mulai dari layar masukan
hingga layar keluaran menggunakan fungsi aktivasi yang ditentukan. Fase kedua
adalah fase mundur. Selisih antara keluaran jaringan dengan target yang diinginkan
merupakan kesalahan yang terjadi. Kesalahan tersebut dipropagasikan mundur,
dimulai dari garis yang berhubungan langsung dengan unit-unit di layer keluaran. Fase
ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi.
Source code yang digunakan yaitu :

net_bangun2.trainFcn = 'trainlm';
net_bangun2.trainParam.epochs = 10000; %jumlah iterasi
net_bangun2.trainParam.goal = 1e-5; %goal
net_bangun2.divideParam.trainRatio = 1; % training set [%]
net_bangun2.divideParam.valRatio = 0; % validation set [%]
net_bangun2.divideParam.testRatio = 0; % test set [%]
[net_bangun2,tr,Y,E] = train(net_bangun2,P,T);
save net_bangun2.mat net_bangun2

Hasil proses pelatihan ditunjukan pada Gambar 7.

(a)

(b)

(b)
(d)
Gambar 7. Hasil proses pelatihan jaringan/network net_bangun. (a) Hasil secara
keseluruhan, (b) Kurva Performance, (c) Kurva Training State, (d) Kurva Regression.
Tahap Pengujian/simulation

Source code yang digunakan yaitu:


function[hasil]=tes_ann_bangun(input)
load net_bangun2.mat
b=round(sim(net_bangun2,input));
%
switch b
case 1
hasil=['Lingkaran'];
case 2
hasil=['Segitiga'];
case 3
hasil=['Persegi'];
case 4
hasil=['Belahketupat'];
case 5
hasil=['Segilima'];
case 6
hasil=['Segienam'];
otherwise
hasil=['Bukan'];
end

Untuk memudahkan proses pengujian maka penulis merancang tampilan (interface)


menggunakan GUI Matlab yang akan digunakan pada tahap simulasi sistem. Adapun
rancangan dari GUI ini ditunjukan pada Gambar 8.

Gambar 8. Perancangan GUI Matlab


Hasil simulasinya ditunjukan pada bagian lampiran 3.
Lampiran 1. Dataset input

Gambar 9. lingkaran.png

Gambar 10. segitiga.png

Gambar 11. persegi.png

Gambar 12. belahketupat.png

Gambar 13. segilima.png


Gambar 14. segienam.png

Lampiran 2. Data Pengujian

Gambar 15. data_uji_1.png

Gambar 16. data_uji_2.png

Gambar 17. data_uji_3.png

Gambar 18. data_uji_4.png

Lampiran 3. Hasil Simulasi Sistem

Gambar 19. Simulasi dengan data_uji_1.png

Gambar 20. Simulasi dengan data_uji_2.png

Gambar 21. Simulasi dengan data_uji_3.png

Gambar 22. Simulasi dengan data_uji_4.png

Anda mungkin juga menyukai