Jaringan Syaraf Tiruan untuk Klasifikasi Citra Daun
Salah satu penerapan dari algoritma jaringan syaraf tiruan adalah untuk proses klasifikasi citra. Berikut ini merupakan contoh aplikasi pemrograman matlab untuk melakukan klasifikasi terhadap citra daun. Citra daun dikelompokkan ke dalam 4 kelas spesies yaitu Bougainvillea sp, Geranium sp, Magnolia soulangeana, dan Pinus sp. Pada contoh ini digunakan 40 citra daun yang terdiri dari 10 citra pada masing-masing kelas. Contoh dari citra daun yang digunakan ditunjukkan pada gambar di bawah ini:
Langkah-langkah pemrogramannya adalah sebagai berikut:
1. Mempersiapkan citra latih dan citra uji. Pada contoh ini 40 citra daun dibagi menjadi dua bagian yaitu 24 citra untuk citra latih dan 16 citra untuk citra uji.
a. Citra latih berjumlah 24 citra yang terdiri dari 6 citra pada masing-masing kelas
b. Citra uji berjumlah 16 citra yang terdiri dari 4 citra pada masing-masing kelas
2. Melakukan pelatihan jaringan dengan tahapan-tahapan sebagai berikut:
a. Membaca citra latih
b. Segmentasi citra dengan metode thresholding pada kanal merah
c. Operasi morfologi untuk memperbaiki hasil segmentasi
d. Ekstraksi ciri bentuk berdasarkan parameter metric dan eccentricity
e. Menetapkan target latih (kelas Bougainvillea sp disimbolkan dengan angka 1, kelas Geranium sp dengan angka 2, kelas Magnolia soulangeana dengan angka 3, dan kelas Pinus sp dengan angka 4)
f. Membangun arsitektur jaringan syaraf tiruan propagasi balik
g. Melatih jaringan dengan hasil ekstraksi ciri sebagai masukannya
h. Menghitung akurasi hasil pelatihan
Source code proses pelatihan jaringan adalah sebagai berikut:
clc; clear; close all;
image_folder = 'Citra Latih';
filenames = dir(fullfile(image_folder, '*.jpg'));
total_images = numel(filenames);
metric = zeros(1,total_images);
eccentricity = zeros(1,total_images);
for n = 1:total_images
full_name= fullfile(image_folder, filenames(n).name);
I = imread(full_name);
J = I(:,:,1);
K = im2bw(J,.6);
L = imcomplement(K);
str = strel('disk',5);
M = imclose(L,str);
N = imfill(M,'holes');
O = bwareaopen(N,5000);
stats = regionprops(O,'Metric','Eccentricity');
metric = stats.Metric;
eccentricity = stats.Eccentricity;
end
input = [metric,eccentricity];
target = zeros(1,24);
target(:,1:6) = 1;
target(:,7:12) = 2;
target(:,13:18) = 3;
target(:,19:24) = 4;
net = newff(input,target,[10 5],{'logsig','logsig'},'trainlm');
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-6;
net = train(net,input,target);
output = sim(net,input);
save net.mat net
[m,n] = find(output=target);
akurasi = sum(m)/total_images*100
Salah satu tampilan citra hasil pengolahan ditunjukkan pada gambar di bawah ini:
Sedangkan tampilan proses pelatihan jaringan yaitu:
Hasil klasifikasi proses pelatihan ditunjukkan pada tabel berikut:
Berdasarkan pada tabel tersebut, akurasi yang dihasilkan sistem dalam proses pelatihan adalah 24/24*100% = 100%.
3. Melakukan pengujian jaringan dengan tahapan-tahapan sebagai berikut:
a. Membaca citra uji
b. Segmentasi citra dengan metode thresholding pada kanal merah
c. Operasi morfologi untuk memperbaiki hasil segmentasi
d. Ekstraksi ciri bentuk berdasarkan parameter metric dan eccentricity
e. Menetapkan target uji (kelas Bougainvillea sp disimbolkan dengan angka 1, kelas Geranium sp dengan angka 2, kelas Magnolia soulangeana dengan angka 3, dan kelas Pinus sp dengan angka 4)
f. Memanggil jaringan syaraf tiruan propagasi balik yang telah dibuat pada proses pelatihan
g. Menguji jaringan dengan hasil ekstraksi ciri sebagai masukannya
h. Menghitung akurasi hasil pengujian
Source code proses pengujian jaringan adalah sebagai berikut:
clc; clear; close all;
image_folder = 'Citra Uji';
filenames = dir(fullfile(image_folder, '*.jpg'));
total_images = numel(filenames);
metric = zeros(1,total_images);
eccentricity = zeros(1,total_images);
for n = 1:total_images
full_name= fullfile(image_folder, filenames(n).name);
I = imread(full_name);
J = I(:,:,1);
K = im2bw(J,.6);
L = imcomplement(K);
str = strel('disk',5);
M = imclose(L,str);
N = imfill(M,'holes');
O = bwareaopen(N,5000);
stats = regionprops(O,'Metric','Eccentricity');
metric = stats.Metric;
eccentricity = stats.Eccentricity;
end
input = [metric,eccentricity];
target = zeros(1,16);
target(:,1:4) = 1;
target(:,5:8) = 2;
target(:,9:12) = 3;
target(:,13:16) = 4;
load net
output = sim(net,input);
[m,n] = find(output=target);
akurasi = sum(m)/total_images*100
Hasil klasifikasi proses pengujian ditunjukkan pada tabel berikut:
Pada tabel di atas terdapat satu kelas citra daun yang diklasifikasikan dengan salah sehingga akurasi yang dihasilkan jaringan dalam proses pengujian adalah sebesar 15/16*100% = 93,75%.
Akurasi yang dihasilkan sistem baik pada proses pelatihan maupun pengujian menunjukkan bahwa metode yang digunakan dapat mengklasifikasikan citra daun dengan baik.
4. Membuat tampilan GUI Matlab
Source code GUI Matlab untuk proses klasifikasi citra daun adalah sebagai berikut:
% Adi Pamungkas, S.Si, M.Si
% Website: https://pemrogramanmatlab.com/
% Email : adipamungkas@st.fisika.undip.ac.id
function varargout = Klasifikasi_daun(varargin)
% KLASIFIKASI_DAUN MATLAB code for Klasifikasi_daun.fig
% KLASIFIKASI_DAUN, by itself, creates a new KLASIFIKASI_DAUN or raises the existing
% singleton*.
%
% H = KLASIFIKASI_DAUN returns the handle to a new KLASIFIKASI_DAUN or the handle to
% the existing singleton*.
%
% KLASIFIKASI_DAUN('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in KLASIFIKASI_DAUN.M with the given input arguments.
%
% KLASIFIKASI_DAUN('Property','Value',...) creates a new KLASIFIKASI_DAUN or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before Klasifikasi_daun_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to Klasifikasi_daun_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Klasifikasi_daun
% Last Modified by GUIDE v2.5 23-Oct-2016 15:06:14
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Klasifikasi_daun_OpeningFcn, ...
'gui_OutputFcn', @Klasifikasi_daun_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before Klasifikasi_daun is made visible.
function Klasifikasi_daun_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to Klasifikasi_daun (see VARARGIN)
% Choose default command line output for Klasifikasi_daun
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
movegui(hObject,'center');
% UIWAIT makes Klasifikasi_daun wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = Klasifikasi_daun_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[nama_file,nama_path] = uigetfile({'*.*'});
if ~isequal(nama_file,0)
I = imread(fullfile(nama_path,nama_file));
axes(handles.axes1)
imshow(I)
handles.I = I;
guidata(hObject,handles)
else
return
end
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
I = handles.I;
J = I(:,:,1);
K = im2bw(J,.6);
L = imcomplement(K);
str = strel('disk',5);
M = imclose(L,str);
N = imfill(M,'holes');
O = bwareaopen(N,5000);
stats = regionprops(O,'Metric','Eccentricity');
metric = stats.Metric;
eccentricity = stats.Eccentricity;
input = [metric,eccentricity];
load net
output = sim(net,input);
axes(handles.axes2)
imshow(O)
R = I(:,:,1);
G = I(:,:,2);
B = I(:,:,3);
R(~O) = 0;
G(~O) = 0;
B(~O) = 0;
RGB = cat(3,R,G,B);
axes(handles.axes3)
imshow(RGB)
if output = 1
kelas = 'Bougainvillea';
elseif output = 2
kelas = 'Geranium';
elseif output = 3
kelas = 'Magnolia soulangeana';
elseif output = 4
kelas = 'Pinus';
end
set(handles.edit1,'String',kelas)
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
Tampilan GUI Matlab ditunjukkan pada gambar-gambar berikut ini:
1. Tampilan awal
2. Pengolahan citra daun untuk kelas Bougainvillea sp
3. Pengolahan citra daun untuk kelas Geranium sp
4. Pengolahan citra daun untuk kelas Magnolia soulangeana
5. Pengolahan citra daun untuk kelas Pinus sp
File source code lengkap beserta citra daun untuk proses klasifikasi pada pemrograman di atas dapat diperoleh melalui halaman berikut ini: Source Code
Penerapan algoritma jaringan syaraf tiruan untuk klasifikasi citra daun dapat dilihat pada video tutorial berikut ini:

Posted on October 24, 2016, in Data mining, Pengenalan Matlab, Pengenalan Pola, Pengolahan Citra and tagged aplikasi jaringan syaraf tiruan, aplikasi jst matlab, aplikasi jst untuk klasifikasi citra, contoh aplikasi matlab jaringan syaraf tiruan, contoh koding jst matlab, contoh pemrograman jst matlab, contoh program jaringan syaraf tiruan, contoh program jst matlab, definisi jaringan syaraf tiruan, download koding jst matlab, download koding matlab jst, download source code matlab, ekstraksi ciri citra, ekstraksi fitur, identifikasi citra menggunakan algoritma jaringan syaraf tiruan, jaringan syaraf tiruan, jaringan syaraf tiruan adalah, jaringan syaraf tiruan backpropagation, jaringan syaraf tiruan matlab, jaringan syaraf tiruan propagasi balik, jaringan syaraf tiruan untuk klasifikasi citra, jst backpropagation matlab, jst matlab, jst sederhana, klasifikasi citra, klasifikasi citra daun, operasi morfologi, pemrograman jst matlab, pemrograman matlab, penerapan jst untuk klasifikasi citra, pengertian jaringan syaraf tiruan, program jaringan syaraf tiruan, program matlab jaringan syaraf tiruan, thresholding citra. Bookmark the permalink. 164 Comments.















































permisi mas mau tanya
??? Undefined function or variable
‘metric’.
Error in ==> pelatihanjaringan at 24
input = [metric ; eccentricity];
metric nya ga ke ditek mas , itu kenapa ya? padahal saya download langsung punya mas adi.
lokasi direktori kerja matlab harus disesuaikan dg folder di mana koding itu berada
oke terimakasih mas adi
munculin hasilnya di tabel gimana mas?
untuk menampilkan data pada tabel bisa melihat materi pada https://pemrogramanmatlab.com/pengenalan-pola-citra-digital-menggunakan-matlab/pola-tekstur/
menentukan target ini gmana ya mas,, mohon penjelasannya …
target(:,1:6) = 1;
target(:,7:12) = 2;
target(:,13:18) = 3;
target(:,19:24) = 4;
dalam pemrograman matlab, nilai target harus direpresentasikan dengan angka
oleh karena itu, untuk jenis daun pada kelas Bougainvillea sp disimbolkan dengan angka 1, kelas Geranium sp dengan angka 2, kelas Magnolia soulangeana dengan angka 3, dan kelas Pinus sp dengan angka 4
tanya lagi mas,, maksud dari angka ‘[10 5]’ dari script ini apa ya ?
net = newff(input,target,[10 5],{‘logsig’,’logsig’},’trainlm’);
dan ketika programnya saya jalankan kok akurasinya berubah-ubah ya?
mas mau tanya kalo klasifikasinya pake JST SOM menggunakan perintah apa ya?
saya menggunakan net = newsom(input,target,[8,8],’hextop’,’linkdist’); tapi error. Terimakasih
kodingnya sudah betul
kemungkinan error karena implementasi ukuran matriks input dan target nya tidak sesuai
maaf mau nannya lagi mas kalo errornya seperti ini kenapa ya? untuk menyesuaikan matriknya bagaimana ya mas?
Operands to the || and && operators must be convertible to
logical scalar values.
Error in newsom>create_network (line 83)
v51 = (size(varargin{1},2)==2) || …
Error in newsom (line 63)
out1 = create_network(varargin{:});
Error in Pelatihan (line 55)
net = newsom(input,target,[10 5],’hextop’,’linkdist’);
Terimakasih mas
koding dan data masukan yang diberikan tidak sinkron
Maaf mas adi mau tanya, pada contoh diatas di nntraintool ada 1 neuron pada ouput layernya. klu mau ganti jumlah output layernya itu kodingnya dibagian mana ya mas? terima kasih sebelumnya mas
#jumlah neuron maksudnya mas
untuk gambaran terlebih dahulu
pada materi di atas, keluaran dari jaringan syaraf tiruan berjumlah satu yaitu jenis daun
jenis daun sendiri memiliki empat kategori yaitu Bougainvillea sp, Geranium sp, Magnolia soulangeana, dan Pinus sp.
untuk kasus tersebut maka jumlah keluaran jst adalah satu
sedangkan untuk kasus dengan jumlah keluaran jst lebih dari satu, contoh kasusnya adalah seperti ini:
misalnya ciri masukan yaitu metric dan eccentricity dapat membedakan jenis daun (4 kategori) dan jenis batang (misal 3 kategori)
maka keluaran jst yang digunakan adalah berjumlah dua
untuk pemrogramannnya, ukuran matriks target yang semula berukuran 1 x n diganti dengan matriks berukuran 2 x n
di mana baris pertama adalah nilai keluaran pertama dan baris kedua adalah nilai keluaran kedua
n adalah banyaknya data latih
toolong saya diberi instruksi matlab untuk histogram Citra HSV tks
Oke, terimakasih mas adi
sama sama hesti
mas adi mau nanya…kalo ekstraksi fitur invariant moment itu ikutnya kategori bentuk,tesktur ataau ikut apa ya??terimaksih
invariant moment termasuk dalam kategori ciri bentuk atau morfologi
mas mau tanya, saya ada projek tentang klasifikasi jst pengenalan pola tenun dengan deteksi tepi di matlab, apakah bisa mempraktekkan dengan contoh diatas, atau ada perbedaannya? terima kasih
Mas Adi, untuk program itu pakai neural networknya yg neural network biasa atau pakai yg backpropagation? Lalu untuk akurasi lebih bagus mana, neural network yg biasa atau backpropagation neural network. Thx
mas, adi mau nanya lagi…saya kan membandingkan nilai ekstraksi fitur dengan metode deteksi tepi robet dan laplacian…hasil nilainya q1 – q7 dari robert lebih tinggi dari pada laplacian… itu analisisnya gmana ya mas??cari materi tentang ekstraski fitur invariant momentnya sulit
Assalamu’alaikum, maaf, mas mau tanya.. algoritma yang dipakai ini backpropagation atau bukan ya?
terima kasih
Waalaikumsalam nana
betul algoritma yang digunakan pada materi di atas adalah jaringan syaraf tiruan backpropagation
terimakasih atas jawabannya mas adi, maaf saya mau tanya lagi, pada contoh diatas tidak menyertakan parameter learning rate, momentum, bobot dan bias..padahal dari beberapa literatur yang saya baca ada tahap pembobotan pada algoritma backpropagation,
mohon penjelasannya mas,
untuk proses setting parameter tersebut bisa dilihat pada materi di halaman berikut ini
maaf mas,saya mau tanya lagi.. pada contoh JST untuk klasifikasi anda tidak menyertakan momentum dan inisialisasi bobot, namun pada contoh prediksi anda menyertakan kedua parameter tersebut. Apakah dalam klasifikasi memang dilakukan tanpa parameter bobot dan momentum ? dan mohon penjelasannya mengenai perbedaan JST untuk klasifikasi dan prediksi, terima kasih
dalam proses pengkodingan jaringan syaraf tiruan, apabila parameter2 tsb tidak diset, maka nilai dari parameter2 tsb akan secara otomatis menggunakan nilai default
Mas Adi, kan disitu ada syntax “save net.mat net”, saya mau tanya, yg disimpan di dalam .mat itu sebenernya data apa ? Apa data bobot dan biasnya ? Thx
dalam net yang tersimpan, terdapat bobot2 beserta arsitektur dari jaringan syaraf tiruan
terima kasih atas jawabannya, maaf mas saya mau tanya lagi, pada pembagian data JST terdapat data training, data validasi dan data testing,,,
bedanya validasi sama testing itu bagaimana kalau di kasus JST untuk citra?
Mas adi, dari metode jst kodingan ini klasifikasi daunnya bisa di terapkan buat identifikasi kematangan buah gak ya?
Bisa yunita
Utk deteksi kematangan buah bisa menggunakan ekstraksi ciri warna
selain pakai metode jst yang lebih mudah menggunakan metode apa yaa mas adi? untuk deteksi kematangan buah bisa dari struktur buah atau cuma dgn ekstraksi warna aja?
Bisa menggunakan aturan if else sederhana
Ciri yg dapat dikombinasikan bisa ciri tekstur dan warna
maaf, mas adi saya mau bertnya . kalau input yang kita gunakan adalah nilai hasil ekstraksi warna misal RGB dan HSI, nilai range untuk RGB kan 0-255, H 0-360, dan S juga I 0-1. jilai-nilai tersebut perlu dinormalisai atau tidak ya?
terima kasih
Utk semua masukan jst sebaiknya dinormalisasi ke dalam range 0 s.d 1
Selamat malam Mas Adi,
Saya sedang menyelesaikan tugas akhir saya yang bertema idenfitikasi finger veins.
Setelah pola pembuluh darah dapat diekstraksi ke citra biner, selanjutnya saya tidak paham fitur apa saja yang dapat saya gunakan untuk dimasukan ke dalam training.
Melihat tutorial Mas Adi soal klasifikasi daun di bagian daun pinus yang sepertinya tidak jauh berbeda dengan pola finger veins.
Apakah ekstraksi ciri bentuk berdasarkan parameter metric dan eccentric ditambah JST ini tepat diterapkan ke dua pola finger veins bertipe citra biner dan citra biner setelah mengalami thinning?
Jika tidak apa alternatif yang cocok?
citra binner sebelum thinning: https://drive.google.com/file/d/0B90JbsDjR7tyZDVkbDJvTmxQbzQ/view?usp=sharing
citra binner setelah thinning: https://drive.google.com/file/d/0B90JbsDjR7tydDZ5bmNySWh3cU0/view?usp=sharing
Saya sangat menunggu jawaban dari Mas Adi.
Terimakasih
selamat malam ardian
untuk ekstraksi ciri citra biner pada kasus pola finger veins saya rasa akan lebih cocok untuk menggunakan metode ekstraksi ciri momment invariant atau chain code
selamat sore mas adi.. saya mau tanya penelitian saya tentang klasifikasi buah.. data pelatihan saya ketika diuji sudah 100% tetapi pas data uji akurasinya hanya 22% kira2 yang kurang bener apanya ya mas adi? Mohon bantuannya.terimakasih
banyak faktor yg mempengaruhi di antaranya adalah teknik akuisisi citra yg berbeda saat pelatihan dan pengujian
berrti yang harus saya perbaiki dari mana ya mas? kalo untuk perbaikan citra berpengaruh tidak?
yang perlu diperbaiki adalah teknik akuisisi citra pada saat pelatihan dan pengujian dikondisikan agar sama
mas itu yang contoh diatas pakai metode backpropagasi bukan ?
iya betul hardiyanto
programnya masih eror mas yang pengujian.m pada line 18 @area(n) = stats.Area;
seperti yg sudah saya sampaikan sebelumnya
sebagian source code pada website ini hanya dapat dijalankan minimal menggunakan matlab r2015b
assalamualaikum..
maf mau nanya, coding untuk citra suara ada tidak ya?
waalaikumsalam ira
semoga ke depan ada materi mengenai citra suara
Assalamualikum bg adi…
saya mau bertanya, kalau misalnya kita ingin menambahkan satu jenis daun lagi gimana caranya bg?
Waalaikumsalam Mhd Haluan Rangkuti
bisa menambahkan citra dalam folder data latih dan data uji serta koding pelatihan dan pengujian dapat disesuaikan target nya
jadi pada koding nya kita menambahkan perintah apa bg ? dan di bagian mana?
bisa ditambahkan koding kelas yg baru pada target dan kelas output
Assalamualaikum bg Adi,mau nanya apa saja yang digunakan kalau mau buat aplikasi klasifikasi tingkat kematangan buah, ada contoh program yang sudah jadinya bg ?
waalaikumsalam fikri
untuk klasifikasi tingkat kematangan buah dapat menggunakan analisis tekstur dan warna
assalamu’alaikum mau tanya..
bisa tidak project di atas di inputkan foto seperti face recognitions dan akan menampilkan nama dari foto yang di inputkan? Terimakasih
waalaikumsalam
bisa taufiq, face recognition bisa menggunakan algoritma jaringan syaraf tiruan
Assalamualaikum mas, maaf sebelumnya, saya ingin bertanya, sebelum masuk ke pengklasifikasian daun, sebelumnya ada praproses dan ekstraksi citra. Nah, disini praproses yang mas lakukan berupa apa ya? dan apakah ekstraksi yang digunakan adalah ekstraksi bentuk? Terima kasih mas.
waalaikumsalam dhea
praproses merupakan tahapan yg bersifat opsional, bisa dilakukan, bisa tidak
pada materi ini tidak dilakukan praproses
ekstraksi ciri dilakukan berdasarkan analisis bentuk daun
kalo mw bikin push button untuk meload nntraintool / newff gmn min? terima kasih bantuannya
Pada pushbutton bisa diberi perintah nntool
saya sudah bikin seperti ini:
function train_Callback(hObject, eventdata, handles)
data_latih=handles.data_latih;
target_latih=handles.target_latih;
netbantuan=newff(data_latih,target_latih,[15],{‘tansig’,’purelin’},’traingd’);
namun nntraintool nya g bisa running
g muncul
eh.. newff hanya untuk membentuk jaringannya ya… maaf lupa
sudah bisa min. trims
Assalamualaikum mas Adi, saya ingin bertanya, terkait kodingan maksud dari angka ‘[10 5]’ dari script ini apa ya ? Pada kodingan ini
net = newff(input,target,[10 5],{‘logsig’,’logsig’},’trainlm’);
Terkait nilai akurasi, mengapa setiap dilakukan test nilai akurasi selalu berbeda ya mas? Terima kasih mas, materi ini sangat membantu 🙂
waalaikumsalam reva
nilai tersebut merupakan jumlah neuron pada hidden layer
nilai akurasi berbeda karena bobot awal diinisialisasi secara acak
supaya tidak berbeda, maka bobot awal harus diinisialisasi dengan memberikan nilai yg tetap terlebih dahulu
Selamat sore mas Adi, saya ingin bertanya untuk JST propagasi balik ini bisa untuk mengelompokkan lebih dari 5 kelas tidak mas? terima masih mas
selamat sore dira
jst bisa mengelompokkan lebih dari 5 kelas
slamat sore mas, saya ingin bertanya jika menjalankan file pelatihan apakah harus membangun gui nya terlebih dahulu?
jika pesan error seperti ini: Matrix dimensions must agree. [m,n] = find(output==target);
bagian apa yg perlu di perbaiki?
Trimakasi mas Adi
Assalamualaikum mas, saya ingin bertanya lagi, apakah dalam klasifikasi citra daun ini, ekstraksi ciri citra yang dilakukan bisa hanya dengan melakukan ekstraksi ciri bentuk tanpa ciri morfologi dan tekstur, dan juga tidak melakukan kontur?
dan juga mas, dimakah saya bisa mendapatkan materi yang lengkap mengenai ekstraksi ciri bentuk daun mengenai materi dan perhitungan manualnya?
terima kasih banyak ya mas..
Waalaikumsalam dhea
Materi mengenai ekstraksi ciri dapat dilihat pada halaman berikut ini
slamat siang mas kalo pesan errornya seperti ini gimana mas?
Error using ==
Matrix dimensions must agree.
Error in Pengujian (line 39)
[m,n] = find(output==target);
trimkasi mas
Koding di atas dapat dijalankan pada matlab minimal r2015b dan tidak terjadi error
saya menggunakan matlab R2017a. pada program di atas saat saya run, sudah berhasil namun saat saya mengubah data latih dan telah mengubah target sesuai data latih terjadi error seperti di atas. Trimakasi mas
data latih dan target harus disesuaikan dengan pemrograman di atas
maaf bertanya lagi mas 🙂 kalo klasifikasix tidak sesuai gmana ya mas? output yang dihasilkan tidak sesuai dengan target
Kalau tidak sesuai, maka akurasinya rendah
Bisa divariasikan arsitekturnya supaya akurasinya lebih tinggi
selamat sore mas adi mau tanya saya kan sedang mengerjakan TA saya mengenai klasifikasi tutupan lahan menggunakan JST, disini kan saya inputan menggunakan nilai pixel pada citra. untuk targetnya ada 4 kelas dan di targetnya sendiri saya pakai pixel jga dri masing-masing kelas untuk proses klasifikasi, kira-kira kalo semisal menggunakan source code diatas bisa diterapkan tidak ya. trmksh
selamat sore vani
source code di atas bisa dicoba diterapkan vani
mas mau tanya lagi semisal untuk pembacaan citra latih jika menggunakan fungsi imread apakah source codenya sama dengan pembacaan citra diatas mas
Sama saja vani
Slamat siang mas, mau tanya kalo menambahkan data latih dalam jumlah yg besar apakah masih bisa menggunakan coding di atas? saya menggunakan data latih sebesar 15 tiap target. namun saat saya tambahkan data latih nya mulai error. saya sudah mengubah jumlah pada target tapi masih error. selalu error pada area(n) = stats.Area
Trimakasi mas
Selamat siang via
bisa disesuaikan dulu ukuran data penelitian via dengan source code di atas
kak, kok saya nyoba data untuk UJI ada yang nggak kebaca ya? jadi masukan misal y=62,3 ketika di window comand ketik y=NAN. NAN artinya not a number knp ya kak?
kalau data y=70 (bilangan bulat), keluarannya ketika ketik y (di windows comman) keluarannya bener y=70
apakah inputan bilangan tidak bulat nggak kebaca?
proses pelatihan dan pengujian pada materi di atas dapat dijalankan dengan baik
Mas mau nanya untuk melakukan cara pelatihan itu prosesnya seperti gimana?
Pada materi di atas terdapat cara untuk melakukan pelatihan
Assalamualaikum mas adi. Materi nya sangat membantu sekali mas. tapi ada beberapa pertanyaan yg saya ingin tanyakan karena masih agak bingung
1. bagaimana cara menampilkan tabel Hasil Proses Klasifikasi dari pengujian dan pelatihan pada gambar diatas ?
2. saya sudah mencoba klasifikasi dengan metode sperti ini, saat dicoba untuk pelatihannnya akurasi = 100 tapi untuk pengujiannya akurasi = 50. kenapa saat diuji hasilnya hanya 50 saja ? bagaimana caranya untuk meningkatkan akurasinya menjadi > 50 ?
Terima Kasih, Semoga mas adi ada waktu untuk menjawabnya
Waalaikumsalam
materi untuk menampilkan data pada tabel bisa dilihat pada halaman berikut ini
untuk meningkatkan tingkat akurasi bisa mengubah2 parameter dan arsitektur jst
saya mau nanya, kelas 1 dan 2 saat dirunning kok nama klasifikasinya sama kaya kelas ke 3 ya?
mohon bantuannya.
bisa mengubah2 parameter dan arsitektur jst agar diperoleh akurasi yang tinggi dalam klasifikasi
Sayakan menggunakan 4 jenis cabai, rawit, tiung, merah kriting, & merah besar. Tapi hasil klasifikasi hanya cabai merah kriting dan tiung yg berhasil, sedangkan yang cabai rawit dan merah besar, nama klasifikasinya malah menjadi cabai tiung, itu karena apa ya?
Bisa divariasikan parameter dan arsitektur jst agar akurasi meningkat
mas saya mau tanya , kan ada yg nanya kenapa kelas 1 dan 2 saat di running nama klasifikasi nya sama seperti kelas 3,, trus mas jawab “coba di ubah ubah parameter dan arsitektur jst agar diperoleh akurasi yg tinggi dlam klasifikasi” mksd saya di mana mengubah ngubah para meter dan arsitektur nya, dirubah seperti apa
thanks
koding untuk mengatur parameter jst terdapat di bawah perintah newff
mas adi jika koding ini di terapkan pada pengenalan wajah bisa kan?
bisa emilfitranshah
bisa diterapkan
Mas ini kenapa fitur regionprops makek Area’,’Perimeter’,’Eccentricity ya? kenapa gak pakek ConvexArea MajorAxisLength MinorAxisLength atau lainya? makasih mas..
dan ada gak fe tambahan selain are perimeter dan ecc biar akurasi naik?
makasih mas
bisa menggunakan fitur yang lain
silakan dicoba diimplementasikan