UTS (Identifikasi Jenis Bunga)




Aplikasi Jaringan Saraf Tiruan untuk Identifikasi Jenis Bunga

1. Tujuan [Kembali]
1. Untuk memenuhi tugas UTS matakuliah jaringan saraf tiruan
2. Untuk merancang aplikasi identifikasi jenis bunga

2. Komponen [Kembali]


  • Laptop
  • Matlap min 2015
  • Data jenis bunga
3. Dasar Teori [kembali]


jaringan syaraf tiruan dapat didefinisikan sebagai salah satu bentuk penyederhanaan dari jaringan syaraf biologis yang dinyatakan dalam formulasi matematika jaringan simbol. Komponen penyusun jaringan saraf tiruan ini terdiri dari beberapa neuron, di mana neuron-neuron tersebut memiliki hubungan antara satu dengan lainnya.
Pemodelan Sel Syaraf /Neuron Neuron-neuron akan mentransformasikan informasi yang diterima melalui sambungan keluarnya menuju ke neuron-neuron yang lain. Pada jaringan saraf, hubungan ini dikenal dengan nama bobot. Informasi tersebut disimpan pada suatu nilai tertentu pada bobot tersebut.



Jaringan syaraf tiruan (neural network) merupakan algoritma yang mampu melakukan identifikasi suatu kelas berdasarkan ciri masukan yang diberikan. Algoritma ini akan melatihkan ciri masukan yang diberikan pada masing-masing kelas sehingga diperoleh suatu arsitektur jaringan dan bobot-bobot awal yang mampu memetakan ciri masukan ke dalam kelas keluaran.
Terdapat banyak jenis jaringan syaraf tiruan, di antaranya adalah backpropagation, perceptron, probablistik neural network, radial basis network, dll.
Berikut ini merupakan contoh aplikasi pemrograman matlab (menggunakan matlab r2015b) untuk mengidentifikasi jenis bunga menggunakan algoritma jaringan syaraf tiruan radial basis function (rbfnn). Pada proses pelatihan jaringan digunakan 100 citra latih yang terdiri dari 50 citra bunga dengan jenis kansas state flower dan 50 citra bunga berjenis marguerite daisy. Sedangkan pada proses pengujian digunakan 60 citra uji yang terdiri dari 30 citra bunga kansas state flower dan 50 citra bunga marguerite daisy.

Citra bunga yang digunakan dalam pemrograman ini diunduh dari halaman website http://www.robots.ox.ac.uk/~vgg/data/flowers/17/

Gambar 1. Contoh citra bunga yang digunakan

Ciri yang digunakan untuk membedakan kedua jenis bunga tersebut adalah ciri warna RGB berdasarkan nilai rata-rata R, G, dan B, dan ciri tekstur filter gabor berdasarkan nilai mean (rata-rata), entropy, dan varians dari citra magnitude.

4. Langkah Program [kembali] 
Langkah-langkah pemrogramannya adalah:
1. Mempersiapkan data latih dan data uji

data latih jst rbf
Gambar 2. Data latih


data uji jst rbf
Gambar 3. Data Uji

2. Melakukan ekstraksi ciri warna RGB dan ekstraksi ciri tekstur filter gabor


clc; clear; close all; warning off all;


image_folder = 'data latih';

filenames = dir(fullfile(image_folder, '*.jpg'));

total_images = numel(filenames);


data_latih = zeros(6,total_images);


for n = 1:total_images

    full_name= fullfile(image_folder, filenames(n).name);

    Img = imread(full_name);

    Img = im2double(Img);

     

    % Ekstraksi Ciri Warna RGB
    R = Img(:,:,1);
    G = Img(:,:,2);
    B = Img(:,:,3);
     
    CiriR = mean2(R);
    CiriG = mean2(G);
    CiriB = mean2(B);
     
    % Ekstraksi Ciri Tekstur Filter Gabor
    I = (rgb2gray(Img));
    wavelength = 4;
    orientation = 90;
    [mag,phase] = imgaborfilt(I,wavelength,orientation);
     
    H = imhist(mag)';
    H = H/sum(H);
    I = [0:255]/255;
     
    CiriMEAN = mean2(mag);
    CiriENT = -H*log2(H+eps)';
    CiriVAR = (I-CiriMEAN).^2*H';
     
    % Pembentukan data latih
    data_latih(1,n) = CiriR;
    data_latih(2,n) = CiriG;
    data_latih(3,n) = CiriB;
    data_latih(4,n) = CiriMEAN;
    data_latih(5,n) = CiriENT;
    data_latih(6,n) = CiriVAR;
end
data ciri proses pelatihan
Gambar 4.data ciri proses pelatihan
3. Melakukan pelatihan jaringan menggunakan data ciri tersebut

% Pembentukan target latih

target_latih = ones(1,total_images);

target_latih(1:total_images/2) = 0;


% performance goal (MSE)

error_goal = 1e-6;


% choose a spread constant

spread = 1;


% choose max number of neurons

K = 5;


% number of neurons to add between displays
Ki = 20;
% create a neural network
net = newrb(data_latih,target_latih,error_goal,spread,K,Ki);
% Proses training
net.trainFcn = 'traingdx';
[net_keluaran,tr,~,E] = train(net,data_latih,target_latih);
save net_keluaran net_keluaran
% Hasil identifikasi
hasil_latih = round(sim(net_keluaran,data_latih));
[m,n] = find(hasil_latih==target_latih);
akurasi = sum(m)/total_images*100



sehingga diperoleh tampilan proses pelatihan
proses pelatihan jaringan jst rbf

Pada hasil pelatihan diperoleh informasi bahwa dari 100 data latih terdapat 18 data yang diidentifikasi secara salah sehingga akurasi yang dihasilkan pada proses pelatihan adalah sebesar 92%. Jaringan yang telah dihasilkan kemudian disimpan agar dapat digunakan untuk proses pengujian.
4. Langkah berikutnya adalah melakukan pengujian jaringan menggunakan data uji. Sama seperti pada proses pelatihan, pada pengujian juga dilakukan ekstraksi ciri yang sama yaitu ekstraksi ciri warna dan ekstraksi ciri tekstur.Data ciri proses pengujian yang diperoleh yaitu:
data ciri pengujian jst rbf



5. Melakukan pengujian jaringan menggunakan data ciri pengujian tersebut. Pengujian dilakukan terhadap jaringan telah dibentuk sebelumnya pada proses pelatihan.
clc; clear; close all;
image_folder = 'data uji';
filenames = dir(fullfile(image_folder, '*.jpg'));
total_images = numel(filenames);
data_uji = zeros(6,total_images);
for n = 1:total_images
full_name= fullfile(image_folder, filenames(n).name);
Img = imread(full_name);
Img = im2double(Img);
     
% Ekstraksi Ciri Warna RGB
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
     
CiriR = mean2(R);
CiriG = mean2(G);
CiriB = mean2(B);
   
% Ekstraksi Ciri Tekstur Filter Gabor
I = (rgb2gray(Img));
wavelength = 4;
orientation = 90;
[mag,phase] = imgaborfilt(I,wavelength,orientation);
     
H = imhist(mag)';
H = H/sum(H);
I = [0:255]/255;
     
CiriMEAN = mean2(mag);
CiriENT = -H*log2(H+eps)';
CiriVAR = (I-CiriMEAN).^2*H';
     
% Pembentukan data uji
data_uji(1,n) = CiriR;
data_uji(2,n) = CiriG;
data_uji(3,n) = CiriB;
data_uji(4,n) = CiriMEAN;
data_uji(5,n) = CiriENT;
data_uji(6,n) = CiriVAR;
end
% Pembentukan target uji
target_uji = ones(1,total_images);
target_uji(1:total_images/2) = 0;
load net_keluaran
hasil_uji = round(sim(net_keluaran,data_uji));

[m,n] = find(hasil_uji==target_uji);
akurasi = sum(m)/total_images*100


Dari hasil proses pengujian diperoleh informasi bahwa dari 60 data citra uji terdapat 16 data yang diidentifikasi secara salah sehingga akurasi yang dihasilkan pada proses pengujian adalah sebesar 73%.

Nilai akurasi pelatihan dan pengujian yang cukup tinggi menunjukkan bahwa jaringan syaraf tiruan radial basis yang dirancang mampu untuk mengidentifikasi jenis bunga dengan cukup baik.

6. Membuat tampilan GUI agar proses identifikasi jenis bunga dapat lebih interaktif. Tampilan awal GUI ditunjukkan pada gambar di bawah ini.









5. Hasil Program  [kembali]


1. Membuka salah satu citra bunga berjenis Kansas state flower

2. Melakukan ekstraksi ciri warna dan ciri tektur

3. Melakukan identifikasi jenis bunga

4. Membuka salah satu citra bunga berjenis Marguerite daisy

5. Melakukan ekstraksi ciri warna dan ciri tektur

6. Melakukan identifikasi jenis bunga


6. Video [kembali] 


7. Link download [kembali] 

Program

File gui

Komentar

Postingan populer dari blog ini

Cover Praktikum Mikroprosesor & Mikrokontroller

Cover Jaringan Saraf Tiruan

Cover Mata Kuliah Mikroprosesor dan Mikrokontroler