Simulasi Sistem Kemudi Otomatis Pada Game3D Menggunakan Pattern Recognation & Computer Vision
Simulasi Sistem Kemudi Otomatis Pada Game3D Menggunakan Pattern Recognation & Computer Vision
Disusun oleh
Arianto Anggoro (1103140148)
Awal Rais Sanubari (1103144038)
Desti Mina Rahayu (1103144027)
Gema Wahyu Saputra (1103140053)
Ilham Majid Rabbani (1103142073)
Kuncoro Triandono Mukti (1103144026)
FakultasTeknik Elektro
Universitas Telkom
2018
i
DAFTAR ISI
ii
BAB I
PENDAHULUAN
1
1.3 Tujuan
Berdasarkan rumusan masalah di atas, maka tujuan dari proyek ini adalah sebagai berikut:
1. Sistem yang dibuat dapat mengenali pola yang ditampikan pada kamera.
2. Sistem yang dibuat dapat mengkonversi pola yang di deteksi dan di ubah menjadi perintah.
3. Nilai akurasi data latih mencapai ≥80%.
2
BAB II
KAJIAN PUSTAKA
3
Metode ini memiliki tiga fase dalam melakukan training back propagation, yaitu feed
forward, back propagation, dan fase untuk merubah atau memodifikasi nilai bobot. Ketiga fase
ini akan terus melakukan iterasi atau pengulangan sampai kondisi penghentian terpenuhi.
Pada saat proses training dari beberapa sampel yang telah disediakan, nilai dari fungsi
aktivasi pada setiap neuron akan menyebar dan melatih data mulai dari input layer lalu
melewati middle layer sampai dengan output layer dimana setiap neuron menghasilkan input
response masing-masing.
4
Gambar 2.1 Parameter Perintah
5
BAB III
PERANCANGAN DAN IMPLEMENTASI
6
3.3 Jaringan Saraf Tiruan
Pada proses pengenalan pola dilakukan dengan menggunakan Jaringan saraf tiruan.
Dengan menggunakan dua buah input dan satu output yang menghasilkan nilai kebulatan.
Adapun yang dimaksud dengan nilai kebulatan adalah nilai perbandingan antara luas objek
dan kuadrat perimeter yang dinyatakan dengan rumus dibawah ini.
𝐴(𝑅)
Kebulatan (R) = 4𝜋 ……………………………………………(1)
𝑃2 (𝑅)
i. Struktur Jaringan
Penggunaan metode dengan jaringan saraf tiruan membutuhkan sebuah struktur
jaringan yang akan dibuat. Berikut ini adalah rancangan dari struktur jaringan yang telah
dibuat.
7
putih. Data input yang digunakan berupa nilai metric dan eccentricity dari pola tersebut.
Berikut ini adalah pola-pola yang digunakan sebagai data latih.
Bentuk dari pola diatas dilatih sedemikian rupa dengan data target tertentu agar
dapat mengenali pola-pola yang ada. Data target yang digunakan pada proyek ini dapat
dilihat pada tabel 3.1 berikut.
Tabel 3.1 Data Target
No Bentuk Urutan file Target
1. Lingkaran 1 - 15 0
2. Segitiga 16-30 3
3. Persegi 31-45 4
4. Segi lima 46-60 5
Adapun alur dari proses pelatihan data-data tersebut dapat dilihat pada gambar 1.3
dibawah
.
Gambar 3.4 Flowchart Proses Pelatihan
8
Setelah dilakukan proes pelatihan, jaringan yang telah dilatih memerlukan proses
pengujian agar mengetahui tingkat keberhasilan sistem dalam mengenali suatu pola.
Berikut ini adalah alur proses pengujian jaringan yang telah dibuat.
Pada penggunaan jaringan saraf tiruan tentu menginginkan hasil output dengan
akurasi yang setinggi mungkin. Dengan beberapa kali percobaan menghasilkan nilai
akurasi yang berbeda-beda. Hasil akurasi tertinggi didapatkan dengan nilai akurasi sebesar
96.6%. Nilai akurasi yang berubah –ubah dapat dilihat pada gambar berikut.
9
BAB IV
PENGUJIAN
Pada proyek ini dilakuan pengujian melalui beberapa parameter yaitu cahaya dan jarak.
Berikut hasil yang terlah dilakukan dalam proyek ini terlihat dalam taberl 4.1. dengan hasil 6 dari
16 percobaan berhasil.
Redup
1 15
Terang
10
Redup
2 30
Terang
3 Segitiga 15 Redup
11
Terang
Redup
4 30
Terang
5 Kotak 15 Redup
12
Terang
Redup
6 30
Terang
7 Pentagon 15 Redup
13
Terang
Redup
8 30
Terang
14
BAB V
KESIMPULAN
Berdasarkan percobaan yang telah dilakukan dapat disimpulkan jika cahaya dan jarak
dapat mempengaruhi hasi pengenalan pola. Jumlah dari data latih sangat penting, semakin
banyak data latih maka sistem dapat mengenali suatu pola dengan lebih baik dan akurat.
15
BAB VI
SOURCE CODE
Berikut merupakan lampiran source code yang digunakan ada program ini adalah :
CvCam.m
Pada source code CvCam.m ini mengambil informasi tentang webcam yang akan di gunakan pada
laptop.
fc.m :
Pada source code fc.m digunakan untuk menghapus dan mencari objek vidio yang digunakaan.
cvTrain.m
Pada source code cvTrain.m digunakaan untuk melakukan pelatihan pada data latih.
16
namafile = dir(fullfile(folder_citra, '*.gif'));
total_citra = numel(namafile);
% Preprocessing
for n = 1:total_citra
nama= fullfile(folder_citra, namafile(n).name);
citra = logical(imread(nama));
citra = bwconvhull(citra,'objects');
% Mendapatakan Area, Perimeter, Eccentricity
stats = regionprops(citra,'Area','Perimeter','Eccentricity');
area(n) = stats.Area;
perimeter(n) = stats.Perimeter;
% METRIC
% merupakan nilai perbandingan antara luas dan keliling objek.
% Metric memiliki rentang nilai antara 0 hingga 1. Objek yang berbentuk
% memanjang/mendekati bentuk garis lurus, nilai metricnya mendekati
% angka 0, sedangkan objek yang berbentuk bulat/lingkaran,
% nilai metricnya mendekati angka 1.
metric(n) = 4*pi*area(n)/(perimeter(n)^2);
% ECCENTRICITY
% merupakan nilai perbandingan antara jarak foci ellips
% minor dengan foci ellips mayor suatu objek. Eccentricity memiliki
% rentang nilai antara 0 hingga 1. Objek yang berbentuk memanjang/
% mendekati bentuk garis lurus, nilai eccentricitynya mendekati angka 1,
% sedangkan objek yang berbentuk bulat/lingkaran, nilai eccentricitynya
% mendekati angka 0.
eccentricity(n) = stats.Eccentricity;
end
17
% Menentukan target untuk NN
target = zeros(1,64);
% Menentukan target file 1 - 16 merupakan 0(Bulat)
target(:,1:16) = 0;
% Menentukan target file 17 - 32 merupakan 3(Segitiga)
target(:,17:32) = 3;
% Menentukan target file 33 - 48 merupakan 4(Segiempat)
target(:,33:48) = 4;
% Menentukan target file 49 - 64 merupakan 5(Segilima)
target(:,49:64) = 5;
% Neural Network
net = newff(input,target,[10 6],{'logsig','logsig'},'trainlm');
net.trainParam.epochs = 100;
net.trainParam.goal = 1e-5;
net = train(net,input,target);
output = round(sim(net,input));
cvFindBW.m
Pada source code ini melakukan segmentasi warna pada warna hitam.
18
if x(i,j) >= 250
% Jika terdapat warna hitam maka (x,y) akan diberi warna Putih
output(i,j) = 1;
else
% Selain itu bernilai 0
output(i,j) = 0;
end
end
end
cvPR.m
Pada source code cvPR.m digunakan untuk mengenali pola.
cvKey.m
19
Pada source code cvKey.m digunakan untuk mengkonversi hasil pengenalan pola menjadi perintah
untuk menekan tombol tertentu pada keyboard.
key.keyRelease(KeyEvent.VK_A);
key.keyRelease(KeyEvent.VK_S);
key.keyRelease(KeyEvent.VK_D);
key.keyRelease(KeyEvent.VK_W);
if x == 4 % Kiri
key.keyRelease(KeyEvent.VK_S);
key.keyRelease(KeyEvent.VK_D);
key.keyPress(KeyEvent.VK_W);
key.keyPress(KeyEvent.VK_A);
elseif x == 5 % Mundur
key.keyRelease(KeyEvent.VK_A);
key.keyRelease(KeyEvent.VK_D);
key.keyRelease(KeyEvent.VK_W);
key.keyPress(KeyEvent.VK_S);
elseif x == 0 % Kanan
key.keyRelease(KeyEvent.VK_S);
key.keyRelease(KeyEvent.VK_A);
key.keyPress(KeyEvent.VK_W);
key.keyPress(KeyEvent.VK_D);
else
% Maju
key.keyRelease(KeyEvent.VK_S);
key.keyRelease(KeyEvent.VK_D);
key.keyRelease(KeyEvent.VK_A);
key.keyPress(KeyEvent.VK_W);
end
20
cvCnv.m
Pada source code cvCnv.m digunakan untuk mengkonversi angka menjadi huruf
cvFindObj.m
Pada source code cvFindObj.m digunakan untuk menandai objek pola.
function cvFindObj(c,x,p)
citra = c;
pola = p;
x = bwareaopen(x,300);
x = logical(x);
% x = imread('Pola/7939.JPG');
% x = im2bw(x);
% Label all the connected components in the image.
label = bwlabel(x, 8);
21
% Here we do the image blob analysis.
% We get a set of properties for each labeled region.
objek = regionprops(label, 'BoundingBox', 'Centroid');
centroids = cat(2, objek.Centroid);
hold on
%This is a loop to bound the blue objects in a rectangular box.
for n = 1:length(objek)
rectangle('Position',objek(n).BoundingBox,'EdgeColor','g','LineWidth',2)
plot(centroids(:,1),centroids(:,2), '-m+')
txt = text(centroids(:,1)+15, centroids(:,2),sprintf('%s', pola));
set(txt, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 12, 'Color', 'green');
end
hold off
drawnow;
end
22
REFERENSI
[1] Richard O. Duda, Peter E. Hart, David G. Stork (2001) Pattern classification (2nd edition),
Wiley, New York, ISBN 0-471-05669-3.
[2] J. Schuermann: Pattern Classification: A Unified View of Statistical and Neural Approaches,
Wiley&Sons, 1996, ISBN 0-471-13534-8
[3] J. A. Anderson and J. Davis 1995. An introduction to neural networks vol. 1: MIT Press
[4] McCulloch, W., Ps, W.H., “A logical calculus of the ideas immanent in nervous activity,” Bull.
Math. Biophys. 5, pp. 115-133, 1943.
[5] W.A. Randall and G.A. Tagliarini, “Using Feed Forward Neural Networks to Model the Effect
of Precipitation on the Water Levels of the Northeast Cape Fear River,” Proceedings IEEE
Southeast Con 2002:338-342, 2002.
[6] Rumelhart et al., “Learning representations by back propagating errors,” Nature, 323:533-6,
1986
23