PROG
FAKULTAS IL
TESIS
STEPHANUS PRIYOWIDODO
107038023
OGRAM STUDI S2 TEKNIK INFORMAT
S ILMU KOMPUTER DAN TEKNOLOGI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
ATIKA
Diajukan untuk
PROG
FAKULTAS IL
TESIS
k melengkapi tugas dan memenuhi syarat mem
Magister Teknik Informatika
STEPHANUS PRIYOWIDODO
107038023
OGRAM STUDI S2 TEKNIK INFORMAT
S ILMU KOMPUTER DAN TEKNOLOGI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
emperoleh ijazah
ATIKA
Judul Tesis
: PENGENALAN GERAK ISYARAT
MENGGUNAKAN LAYAR SENTUH VIRTUAL
DAN NEURAL NETWORK BACKPROPAGATION
Nama Mahasiswa
: STEPHANUS PRIYOWIDODO
Nomor Induk Mahasiwa
: 107038023
Program Studi
: Magister Teknik Informatika
Fakultas
: Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara
Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
Prof. Dr. Muhammad Zarlis
Prof. Dr. Opim Salim Sitompul
Diketahui/disetujui oleh
Magister Teknik Informatika
Ketua,
Prof. Dr. Muhammad Zarlis
PENGENALAN GERAK ISYARAT MENGGUNAKAN LAYAR
SENTUH VIRTUAL DAN NEURAL NETWORK
BACKPROPAGATION
TESIS
Saya mengakui bahwa tesis ini adalah hasil karya saya sendiri, kecuali beberapa kutipan
dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 07 Februari 2014
Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di
bawah ini :
Nama
: STEPHANUS PRIYOWIDODO
NIM
: 107038023
Program Studi
: Magister Teknik Informatika
Jenis Karya Ilmiah
:
Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada
Universitas Sumatera Utara Hak Bebas Royalti Non-Eksklusif (Non-Exclusive Royalti
Free Right) atas tesis saya yang berjudul:
PENGENALAN GERAK ISYARAT MENGGUNAKAN LAYAR
SENTUH VIRTUAL DAN NEURAL NETWORK
BACKPROPAGATION
Berserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-Eksklusif
ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat,
mengelola dalam bentuk database, merawat dan mempublikasikan tesis saya tanpa
meminta izin dari saya, selama tetap mencantumkan nama saya sebagai penulis dan
sebagai pemegang dan/atau sebagai pemilik hak cipta.
Demikian pernyataan ini dibuat dengan sebenarnya.
Medan, 07 Februari 2014
PANITIA PENGUJI TESIS
Ketua
: Prof. Dr. Opim Salim Sitompul
Anggota
: 1. Prof. Dr. Muhammad Zarlis
2. Prof. Dr. Herman Mawengkang
3. Dr. Benny Benyamin Nasution
Syukur AlhamduLILLAH penulis panjatkan ke hadirat ALLAH SWT atas limpahan
rahmat dan karunia-Nya sehingga tesis ini selesai. Perkenankanlah penulis mengucapkan
terima kasih kepada:
Rektor Universitas Sumatera Utara, Prof. Dr. dr. Syahril Pasaribu DTM&H,
M.Sc(CTM),Sp.A(K) atas kesempatan yang diberikan kepada penulis untuk mengikuti
dan menyelesaikan pendidikan Program Magister.
Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera
Utara, Prof. Dr. Muhammad Zarlis, yang memberi kesempatan kepada penulis menjadi
mahasiswa Program Magister pada Program Studi Magister Teknik Informatika Fakultas
Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Ketua Program Studi Magister Teknik Informatika Prof. Dr. Muhammad Zarlis,
sekretaris Program Studi Bapak Muhammad Andri Budiman, ST., M.Comp.Sc yang telah
banyak memberikan saran dan arahan sehingga tesis ini dapat diselesaikan, beserta
seluruh staf pengajar dan administrasi pada Program Studi Magister Teknik Informatika
Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Terimakasih dan penghargaan yang tinggi penulis ucapkan kepada Prof. Dr. Opim
Salim Sitompul selaku Pembimbing Utama yang dengan penuh perhatian telah
memberikan dorongan serta bimbingan kepada penulis, demikian juga kepada Prof. Dr.
Muhammad Zarlis selaku Pembimbing Lapangan yang dengan penuh kesabaran
menuntun dan membimbing penulis hingga selesainya penelitian ini.
Kepada seluruh keluarga, handai tolan yang telah memberikan dorongan dan
semangat, penulis ucapkan terima kasih, hanya ALLAH SWT sebaik-baik pemberi
balasan. Sebagai penutup, penulis berharap adanya kritik dan saran yang membangun
guna penyempurnaan penelitian ini.
ABSTRAK
Pengenalan gerak isyarat sangat penting untuk penggunaan beberapa jenis aplikasi seperti
antar-muka manusia mesin, pengendali interaksi robot, robot untuk keperluan pribadi,
sistem pemantau khusus dan robot sebagai alat bantu khusus. Kendala dalam pengenalan
gerak isyarat diantaranya teknik pengambilan koordinat objek, pemrosesan data objek,
pemilihan parameter neural network dan tingkat ketepatan pengenalan. Penelitian ini
menggunakan teknik layar sentuh virtual untuk memperoleh data koordinat objek, data
selanjutnya diproses dengan algoritma Bresenham dan dijadikan input pada neural
network backpropagation.
Hasil penelitian ini menunjukkan bahwa layar sentuh virtual dapat digunakan
sebagai alternatif pengambilan data koordinat objek, algoritma Bresenham dapat
membantu memaksimalkan penggambaran data dan neural network backpropagation
dapat mengenali seluruh gerak isyarat atau seratus persen data dengan baik setelah error
lebih kecil 0.8.
SCREEN AND BACKPROPAGATION
NEURAL NETWORK
ABSTRACT
Gesture recognition is very important to use several types of applications such as human
machine interface, control robot interaction, robot for personal use, special monitoring
and robotic systems as a special tool. Constraints in gesture recognition techniques
including retrieval object coordinates, object data processing, the selection of the neural
network parameters and the level of recognition accuracy. This study uses a virtual touch
screen technique to obtain the coordinates of the data object, the data is further processed
by the Bresenham algorithm and used as inputs to the neural network backpropagation.
The results of this study indicate that the virtual touch screen can be used as an
alternative to the object coordinate data collection, Bresenham algorithm can help
maximize the depiction of data and back propagation neural network can recognize all
gestures or one hundred percent of the data well after the error is smaller 0.8.
DAFTAR ISI
Halaman
Abstrak
i
Abstract
ii
Daftar Isi
iii
Bab I
Pendahuluan
1
1.1 Latar Belakang
1
1.2 Perumusan Masalah
3
1.3 Batasan Masalah
3
1.4 Tujuan Penelitian
4
1.5 Manfaat Penelitian
4
Bab II
Tinjauan Pustaka
5
2.1 Sensor RGB-D
5
2.1.1 Kinect
6
2.1.2 Skeleton
7
2.1.3 Microsoft API Skeleton
7
2.2 Neural Network
10
2.2.1 Fungsi Aktivasi
12
2.2.2 Neural Network Backpropagation
13
2.2.2.1 Algoritma Backpropagation
14
2.3 Algoritma Pengisian Pixel Bresenham
16
2.4 Algoritma Penghilang Duplikasi Data
17
2.3 Riset-riset Terkait
18
Bab III
Metodologi Penelitian
19
3.1 Pembangunan Aplikasi
19
3.1.1 Antar-muka Layar Sentuh Virtual
19
3.1.2 Antar-muka Peubah
20
3.1.3 Aplikasi Neural Network
20
3.2 Percobaan
20
3.3 Dataset
21
3.4 Instrumen Penelitian
23
Bab IV
Hasil dan Pembahasan
24
4.1 Pendahuluan
24
4.2 Layar Sentuh Virtual
24
4.3 Pengujian Neural Network
29
4.4 Hasil Percobaan
30
4.4.1 Percobaan Pertama
31
5.2 Saran
37
Daftar Pustaka
39
Lampiran
42
1.
Daftar Publikasi Ilmiah
42
2.
Contoh Data Teks 1
43
3.
Contoh Data Teks 2
47
ABSTRAK
Pengenalan gerak isyarat sangat penting untuk penggunaan beberapa jenis aplikasi seperti
antar-muka manusia mesin, pengendali interaksi robot, robot untuk keperluan pribadi,
sistem pemantau khusus dan robot sebagai alat bantu khusus. Kendala dalam pengenalan
gerak isyarat diantaranya teknik pengambilan koordinat objek, pemrosesan data objek,
pemilihan parameter neural network dan tingkat ketepatan pengenalan. Penelitian ini
menggunakan teknik layar sentuh virtual untuk memperoleh data koordinat objek, data
selanjutnya diproses dengan algoritma Bresenham dan dijadikan input pada neural
network backpropagation.
Hasil penelitian ini menunjukkan bahwa layar sentuh virtual dapat digunakan
sebagai alternatif pengambilan data koordinat objek, algoritma Bresenham dapat
membantu memaksimalkan penggambaran data dan neural network backpropagation
dapat mengenali seluruh gerak isyarat atau seratus persen data dengan baik setelah error
lebih kecil 0.8.
SCREEN AND BACKPROPAGATION
NEURAL NETWORK
ABSTRACT
Gesture recognition is very important to use several types of applications such as human
machine interface, control robot interaction, robot for personal use, special monitoring
and robotic systems as a special tool. Constraints in gesture recognition techniques
including retrieval object coordinates, object data processing, the selection of the neural
network parameters and the level of recognition accuracy. This study uses a virtual touch
screen technique to obtain the coordinates of the data object, the data is further processed
by the Bresenham algorithm and used as inputs to the neural network backpropagation.
The results of this study indicate that the virtual touch screen can be used as an
alternative to the object coordinate data collection, Bresenham algorithm can help
maximize the depiction of data and back propagation neural network can recognize all
gestures or one hundred percent of the data well after the error is smaller 0.8.
BAB I
PENDAHULUAN
1.1 Latar Belakang
Komunikasi dengan menggunakan gerak isyarat tubuh merupakan bentuk komunikasi
yang umum di masyarakat. Gerak isyarat tubuh tidak hanya memungkinkan manusia
dapat berinteraksi dengan manusia lain dan benda-benda, tetapi juga dalam beberapa
kasus, menggantikan bentuk komunikasi lainnya, misalnya komunikasi dengan orang tuli.
Di sisi lain, perkembangan komputer telah menjadi bagian tak terpisahkan dari
masyarakat, mempengaruhi banyak aspek kehidupan sehari-hari dalam lingkup
komunikasi dan interaksi.
Perkembangan pada bidang informatika yang sangat cepat dalam beberapa dekade
terakhir menemukan bentuk-bentuk baru cara berinteraksi dengan komputer. Penggunaan
keyboard dan mouse saat berinteraksi dengan komputer, membatasi potensi interaksi dan
kealamian interaksi. Penelitian Huang dan Pavlovic (1995) menunjukkan bahwa
penggunaan jari telunjuk untuk menunjuk kepada suatu objek dan memanipulasinya,
lebih alami bila dibandingkan dengan penggunaan piranti keyboard atau mouse. Selain
lebih mudah untuk dipahami, interaksi manusia dengan komputer yang alami ini akan
meningkatkan efektivitas sistem.
Interaksi secara alami antara manusia dan komputer pertama kali dilakukan
dengan menggunakan teknologi pengenalan suara.. Ide dasarnya adalah bagaimana
membuat komputer memahami bahasa manusia, sehingga komputer dapat membantu
dalam menyelesaikan tugas tertentu, berinteraksi atau hanya berkomunikasi dengan
manusia. Dikombinasikan dengan pengenalan wajah dan pengenalan ekspresi wajah,
interaksi antara manusia dan komputer menjadi lebih baik.
termasuk interaksi dan komunikasi berbasis pada gerak isyarat tubuh.
Implementasi pengenalan gerak isyarat tangan pertama kali diperkenalkan pada
akhir 70-an, dengan menggunakan sarung tangan yang dilengkapi dengan sensor dan
prosesor untuk mengenali gerakan tangan dan jari-jarinya. Namun, sistem pengenalan
gerakan berbasis sarung tangan ini, meskipun akurat, memiliki keterbatasan karena
pengguna harus menggunakan peralatan tambahan, hal ini mengurangi kealamian yang
merupakan kebutuhan dasar dari interaksi manusia dengan komputer.
Dalam beberapa tahun terakhir penelitian interaksi manusia komputer mengarah
pada pemberian perintah menggunakan gerak isyarat tubuh dengan menggunakan sensor
berbasis kamera. Mengenai gerak isyarat tubuh Aly dan Tapus (2009) mengemukakan :
gerakan-gerakan tubuh merupakan komunikasi non-verbal yang tidak hanya digunakan
oleh manusia untuk berkomunikasi dengan manusia lainnya, namun juga dapat digunakan
manusia untuk berkomunikasi dengan komputer atau robot. Pada interaksi tersebut gerak
isyarat berperan penting untuk mengirim pesan dari manusia kepada komputer.
Mengenai interaksi manusia-robot ini Feil-Seifer dan Mataric (2008)
mengemukakan : interaksi manusia dengan komputer/mesin sangat diperlukan saat
kegiatan dan tugas-tugas yang diberikan kepada komputer/mesin sangat kompleks dan
tidak terstruktur. Kompleksitas pekerjaan yang akan dilakukan ini mendorong
penelitian-penelitian baru terkait interaksi manusia komputer. Tujuannya adalah mengembangkan
prinsip-prinsip dan algoritma sistem komputer yang membuat komputer atau mesin
menjadi pintar, efektif dan aman bagi manusia.
manusia secara umum dinilai kurang baik karena harus memasukkan benda asing ke
dalam tubuh.
Penelitian penulis berkenaan dengan pengenalan gerak isyarat manusia dengan
menggunakan dataset yang dicuplik dari perangkat sensor Red Green Blue-Depth
(RGB-D) Kinect. Dataset memiliki informasi dalam berbagai bentuk seperti video 2D, video
inframerah, video partisipan, data skeleton dan data suara. Untuk mengenali gerak isyarat
yang disampaikan oleh partisipan, penulis memanfaatkan data 20 skeleton partisipan pada
setiap frame data, dipadukan dengan layar sentuh virtual 3D dan teknologi neural
network backpropagation.
1.2 Perumusan Masalah
Berdasarkan latar belakang di atas, maka masalah dalam penelitian ini dirumuskan
sebagai berikut :
1.
Bagaimana teknik pencuplikan data gerak isyarat dalam koordinat 3D?
2.
Bagaimana mengolah data objek hasil pencuplikan agar dapat digunakan sebagai
data input pada neural network backpropagation?
3.
Seberapa besar pengaruh perubahan ukuran parameter learning rate, momentum
dan jumlah neuron pada layer hidden mempengaruhi kinerja neural network
backpropagation?
4.
Seberapa jauh penggunaan neural network backpropagation dapat mengenali jenis
gerak isyarat?
1.3 Batasan Masalah
Ruang lingkup penelitian ini dibatasi pada hal-hal berikut :
1.
Dataset gerak isyarat yang digunakan pada pelatihan neural network dibatasi
sebanyak 400 data gerak isyarat.
Dengan mengacu pada perumusan masalah di atas, maka tujuan penelitian ini adalah :
1.
Mengetahui teknik pengambilan data gerak isyarat objek dalam koordinat 3D.
2.
Mengetahui cara mengolah data objek agar dapat digunakan sebagai parameter
input pada neural network backpropagation.
3.
Mengetahui hasil komparasi perubahan parameter learning rate, momentum dan
jumlah node pada layer hidden serta pengaruhnya terhadap kinerja neural
network.
4.
Mengetahui ketepatan neural network back propagation dalam mengenal berbagai
gerak isyarat.
1.5 Manfaat Penelitian
2.1 Sensor RGB-D
Sensor Red Green Blue-Depth (RGB-D) bekerja berdasarkan teknik InfraRed Structured
Light (IRSL). Cahaya inframerah yang berasal dari perangkat laser dipancarkan dengan
membentuk pola-pola tertentu yang tidak terlihat, misalnya pola satu titik, pola satu
garis atau pola-pola dua dimensi lainnya. Cahaya yang dipancarkan memiliki panjang
gelombang inframerah, berkisar 640nm sampai 2500nm. Pola-pola yang telah
dipancarkan dibaca menggunakan kamera CCD biasa ataupun kamera inframerah.
Kamera CCD dapat membaca pola sensor laser karena kamera ini bekerja pada
spectrum 300nm sampai 1100nm (Fofi et al,. 2004).
2.1.1
Kinect
Kinect merupakan sensor RGB-D dari Microsoft yang menggunakan teknologi Light
Coding dari PrimeSense, perusahaan milik Apple Inc. Light Coding merupakan
teknologi yang dapat merekonstruksi peta kedalaman 3-dimensi suatu keadaan secara
real-time dan detail. Resolusi kedalaman pixel pada Kinect maksimum 640x480. Pada
Gambar 2.1 Rentang jarak objek dari sensor
Kinect dilengkapi dengan mikropon multi-array yang dapat menerima dan
mengukur derajat asal suara dan motor yang berguna untuk mengatur derajat
kemiringan. Kinect memiliki sensor accelerometer yang menginformasikan posisi
kemiringan perangkat dalam koordinat 3-dimensi. Gambar 2.2 memperlihatkan bentuk
fisik Kinect.
Gambat 2.3 memperlih
Kinect, sebelah kiri m
gambar yang merepres
Gambar
2.1.2
Skeleton
Perkembangan teknolo
ilmu komputer, seper
reality. Shotton (2011)
hubungan sendi tubuh
Kemudian dilakukan
menggunakan pendeka
bobot kernel Gaussia
beragam klasifikasi
pengklasifikasian dapa
dari data sendi yang
menggunakan pendeka
sedang dilakukan manu
2.1.3
Microsoft API Sk
Dataset skeleton yang
(2011) yang telah di
Interface (API) sistem
Windows membagi stru
rlihatkan hasil cuplikan gambar yang diamb
merupakan gambar RGB 640x480 pixel dan s
resentasikan jarak seluruh objek dari sensor infr
2.3. Hasil sensor RGB-D, kiri RGB, kanan D
ologi kamera RGB-D, membuka peluang pene
erti computer vision, game, kendali berbasis
1) memperkenalkan satu metoda untuk mempr
uh manusia dengan cara mengekstrak informas
an penghitungan estimasi posisi 3D dari
ekatan pencarian berdasarkan pergeseran rat
sian. Dengan menggunakan training-set yang
i bagian tubuh, bentuk tubuh, pakaian
pat dilakukan dengan tepat. Sung et al. (2011
g disediakan oleh PrimeSense dari kamera
ekatan metoda pembelajaran untuk menyimpu
anusia.
Skeleton
digunakan pada penelitian ini adalah hasil da
dipadukan oleh Microsoft ke dalam Applic
tem operasi Windows. Data skeleton yang d
truktur skeleton menjadi 20 bagian seperti terlih
mbil dengan perangkat
n sebelah kanan adalah
inframerah Kinect.
(depth)
nelitian baru di bidang
asis gerak dan virtual
prediksi posisi 3D dari
asi kedalaman gambar.
ari sendi-sendi tubuh
rata-rata dengan suatu
ang sangat besar dan
ian dan sebagainya,
11) mengekstraksi fitur
ra RGB-D Kinect dan
pulkan kegiatan yang
l dari algoritma Shotton
lication Programming
Gam
Tabel 2.1 menyajikan
digunakan pada API Mic
Masing-masing
dalam satuan meter de
dan data kedalaman
perangkat Kinect deng
Z dari objek manusia y
ambar 2.4 Data skeleton API Windows (Micros
urutan bagian data skeleton yang merupaka
Microsoft Windows.
ing data skeleton yang diinformasikan berisi
dengan titik tengah koordinat terdapat pada titi
n (depth) yakni sumbu Z yang nilainya me
ngan objek. Gambar 2.5 memperlihatkan koord
ia yang berdiri di depan sensor.
rosoft, 2014)
kan standar urutan yang
Tabel 2.1 Urutan Data Sendi API Windows
No.
Nama
Skeleton
No.
Nama
Skeleton
Gambar Skeleton
0
HipCenter
10
WristRight
1
Spine
11
HandRight
2
ShoulderCenter 12
HipLeft
3
Head
13
KneeLeft
4
ShoulderLeft
14
AnkleLeft
5
ElbowLeft
15
FootLeft
6
WristLeft
16
HipRight
7
HandLeft
17
KneeRight
8
ShoulderRight
18 AnkleRight
9
ElbowRight
19
FootRight
Gambar 2.5 Koordinat X,Y,Z dari Sensor Kinect
Data koordinat skeleton sejumlah 20 bagian selanjutnya dapat diproses sesuai
keperluan, pada tesis ini penulis akan membangun layar sentuh virtual di depan objek
untuk menangkap koordinat gerakan skeleton. Untuk deteksi gerak isyarat, dibutuhkan
hanya 2 bagian skeleton yakni HandLeft dan HandRight.
2.2. Neural Network
Neural Network merupakan tiruan dari cara kerja otak manusia. Layaknya otak manusia,
otak tiruan ini memiliki karakteristik yang mirip dengan jaringan syaraf biologis.
Hampir semua tipe neural network memiliki komponen-komponen yang sama yakni
terdiri atas neuron-neuron yang saling terhubung. Neuron-neuron tersebut akan
mentransformasikan informasi yang diterima melalui bagian input untuk diteruskan ke
neuron-neuron lain melalui bagian output. Hubungan antar neuron disebut bobot
penjumlahan selanjutnya dibandingkan dengan suatu nilai ambang (threshold). Apabila
jumlahnya sama atau lebih besar dari nilai ambang, maka neuron akan diaktifkan,
dengan begitu informasi yang terdapat pada neuron tersebut akan dikirimkan ke
neuron-neuron lain yang terhubung dengannya melalui bagian output. Bila jumlah bobot kurang
dari nilai ambang, maka neuron tidak akan diaktifkan.
Neural network biasanya terdiri dari beberapa lapisan (layer), masing-masing
layer terdiri atas neuron-neuron. Lapisan neuron ini selanjutnya saling dihubungkan ke
lapisan-lapisan sebelum dan sesudahnya, terkecuali untuk lapisan input dan output.
Informasi yang diterima oleh lapisan input dirambatkan ke lapisan berikutnya yang
disebut dengan lapisan tersembunyi (hidden layer). Dari hidden layer selanjutnya
informasi dapat dirambatkan mundur ke network, hal ini tergantung dari algoritma
pembelajaran yang digunakan.
Gambar 2.6 menunjukkan contoh neural network sederhana, satu neuron akan
mengolah N input data (x1, x2,..,xN) yang masing-masing memiliki bobot w1, w2, ..,
wN dan bobot bias b.
a =
x w
(2.1)
Selanjutnya fungsi aktivasi F akan mengaktivasi a menjadi output neural network y.
Ada beberapa fungsi aktivasi yang sering digunakan pada neural network diantaranya :
1.
Fungsi Hard Limit
Mengkonversi nilai variable menjadi bilangan biner 0 atau 1. Rumus yang
digunakan untuk fungsi aktivasi ini adalah:
(2.2)
2.
Fungsi Bipolar
Mengkonversi nilai variable menjadi bilangan biner 1 atau -1. Rumus yang
digunakan untuk fungsi aktivasi ini adalah:
(2.3)
3.
Fungsi Linear
Fungsiini memiliki output sama dengan nilai inputnya. Rumus yang digunakan
untuk fungsi aktivasi ini adalah:
y = x
(2.4)
4.
Fungsi Sigmoid Biner
Fungsi ini sering digunakan pada neural network backpropagation, memiliki
nilai dengan range 0 sampai 1, interval outputnya 0 sampai 1. Rumus yang
digunakan untuk fungsi aktivasi ini adalah:
y = f(x) =
1 +
1
(2.5)
5.
Fungsi Sigmoid Bipolar
Fungsi aktivasi ini sama dengan fungsi sigmoid biner, hanya nilai outputnya
antara -1 sampai 1. Rumus yang digunakan untuk fungsi aktivasi ini adalah:
6.
Fungsi Sigmoid Tangent (TanSig)
Fungsi aktivasi ini sama dengan fungsi sigmoid bipolar, nilai outputnya antara -1
sampai 1. Rumus yang digunakan untuk fungsi aktivasi ini adalah:
y = f(x) =
1 −
1 +
(2.7)
2.2.2. Neural Network Backpropagation
Backpropagation merupakan metoda pembelajaran neural network yang terawasi
(supervised). Backpropagation biasanya digunakan oleh perceptron yang memiliki
banyak lapisan ( layer ) untuk mengubah nilai bobot-bobot yang terhubung ke
neuron-neuron yang ada pada lapisan tersembunyi ( hidden layer ).
Algoritma backpropagation saat pertama dijalankan melakukan tahapan
perambatan maju ( forward ). Error yang diperoleh dari proses tahap perambatan maju
selanjutnya diproses ke arah mundur ( backward ) untuk mengubah nilai bobot-bobotnya.
Pada perambatan maju, neuron-neuron diaktifkan dengan fungsi aktivasi seperti sigmoid,
tansig atau pure linear.
x1
x2
x3
z1
z2
y
1
1
b2
b12
w1
w2
v11
v12
v21
v22
v31
v32
b11
Jaringan ini terdiri atas 3 (tiga) lapisan neuron-neuron yakni 3 (tiga) unit neuron pada
lapisan input (x1, x2, x3), 2 ( dua ) neuron pada lapisan tersembunyi (hidden layer) dan 1
(satu) neuron pada lapisan output.
2.2.2.1 Algoritma Backpropagation
Algoritma backpropagation sebagai berikut:
-
Inisialisasi bobot awal (weights) dengan nilai random yang kecil.
-
Tetapkan maksimum Epoch, Target Error dan Learning Rate (
α
)
-
Inisialisasi Epoch=0, MSE=1
-
Lakukan langkah di bawah ini selama (Epoch<MaksimumEpoch) dan
(MSE>TargetError):
1.
Epoch = Epoch + 1
2.
Feed Forward:
a.
Setiap unit input (X
i, i=1,2,3,…,n) menerima sinyal xi dan meneruskannya
ke semua unit pada lapisan atasnya.
b.
Setiap unit pada hidden layer (Zj, j=1,2,3,..,p) menjumlahkan sinyal-sinyal
input terbobot :
z_in = b1
x v
(2.8)
Gunakan fungsi aktivasi untuk menghitung sinyal output:
z
j =(z )
(2.9)
selanjutnya kirimkan sinyal tersebut ke lapisan di atasnya (unit-unit
output)
c.
Setiap unit output (y
k, k=1,2,3,..,m) melakukan penjumlahan sinyal-sinyal
terbobot :
y_in
= b2
z w
"
(2.10)
y
k=f (y_in
k)
(2.11)
selanjutnya kirim sinyal tersebut ke semua unit pada lapisan atasnya yakni
unit-unit output.
Backpropagation:
d.
Setiap unit output (y
k, k=1,2,3,..,m) menerima target pola yang
berhubungan dengan pola pembelajaran, selanjutnya hitung informasi
errornya:
δ
2
k= (t
k– y
k) f’(y_in
k)
(2.12)
φ
2
k=
δ
kz
j(2.13)
β
2
k=
δ
k(2.14)
lalu hitung koreksi bobot yang akan digunakan untuk memperbaiki nilai
w
jk:
∆
w
jk=
αφ
2
jk(2.15)
Hitung juga koreksi bias yang akan digunakan untuk memperbaiki nilai
b2
k:
∆
b2
k=
αβ
2
k(2.16)
Langkah d ini hanya untuk 1 (satu) lapisan tersembunyi, lakukan hal yang
sama bila lapisan tersembunyi lebih dari 1 (satu).
e.
Setiap unit tersembunyi ( Z
j, j=1,2,3,..,p) menjumlahkan delta inputnya
dari unit-unit yang berada pada lapisan di atasnya:
δ
_in
$=
δ2
%w
$% &%=1
(2.17)
Untuk menghitung error, kalikan nilai ini dengan turunan fungsi
aktivasinya:
δ
1
j=
δ
_in
f’(z_in
j)
(2.18)
φ
1
ij=
δ
1
jx
j(2.19)
nilai v
ij.
∆
v
ij=
αφ
1
ij(2.21)
hitung juga koreksi bias yang nantinya akan digunakan untuk memperbaiki
nilai b1
j:
∆
b1
j=
αβ
1
j(2.22)
f.
Setiap unit output (y
k, k=1,2,3,..,m) memperbaiki bias dan bobotnya
(j=0,1,2,..,p):
w
jk(baru) = w
jk(lama) +
∆
w
jk(2.23)
b2
k(baru) = b2
k(lama) +
∆
b2
k(2.24)
Setiap unit tersembunyi (zj, j=1,2,3,…,p) memperbaiki bias dan bobotnya
(i=0,1,2,…n):
v
ij(baru) = v
ij(lama) +
∆
v
ij(2.25)
b1
j(baru) = b1
j(lama) +
∆
b1
j(2.26)
3.
Hitung Mean Square Error ( MSE )
2.3. Algoritma Pengisian Pixel Bresenham
Algoritma pengisian pixel Bresenham adalah algoritma untuk menentukan urutan
pengisian pixel yang mendekati garis lurus antara dua koordinat. Algoritma ini biasanya
digunakan untuk menggambar garis pada layar komputer dan merupakan algoritma
pengisian pixel paling awal yang dikembangkan pada komputer grafis.
function pixelline(x0, y0, x1, y1)
boolean step := abs(y1 - y0) > abs(x1 - x0) if step then
swap(x0, y0) swap(x1, y1) if x0 > x1 then swap(x0, x1) swap(y0, y1) int deltax := x1 - x0 int deltay := abs(y1 - y0) int error := deltax / 2 int ystep
int y := y0
if y0 < y1 then ystep := 1 else ystep := -1 for x from x0 to x1
if step then plot(y,x) else plot(x,y) error := error - deltay
if error < 0 then y := y + ystep
[image:31.595.121.489.137.364.2]error := error + deltax
Gambar 2.8 Algoritma pengisian pixel Bresenham
2.4. Algoritma Penghilangan Duplikasi Data
Algoritma penghilangan duplikasi data bertujuan untuk menghilangkan urutan data
koordinat yang memiliki nilai sama dengan nilai koordinat sebelumnya. Dengan
algoritma ini data koordinat menjadi lebih kecil dan proses penggambaran menjadi lebih
efisien.
function delduplikasi(datalist)
listbaru:=[]
koor_xyz:=datalist[0]
listbaru <- datalist[0]
for loop from 1 to length(datalist)
if koor_xyz<>datalist[loop]:
koor_xyz:=datalist[loop]
listbaru <- koor_xyz
return listbaru
Gambar 2.9 Algoritma penghilangan duplikasi data
Penelitian gerak isyarat dilakukan oleh Yamato et.al (1992) dan Browden (2004) yang
menggunakan Hidden Markov Model (HMM) untuk pengenalan gerak isyarat. Teknik
filter partikel juga digunakan pada pengenalan gerak isyarat oleh Black et.al (1998) dan
Bretzner et.al (2002). Berikutnya penelitian gerak isyarat yang dilakukan oleh Hong et.al
(2000) menggunakan Finite State Machine (FSM), Ahn et.al (2009) menggunakan neural
network Multi Layer Perceptron (MLP), Yang et.al (1999) menggunakan neural network
Time Delay dan Gerlich et.al (2007) dengan neural network Radial Basis Function (RBF).
Penelitian berikut ini merupakan penelitian yang secara tidak langsung
berhubungan dengan penelitian interaksi manusia robot, menggunakan sensor RGB-D dan
berkaitan dengan gerakan manusia. Jalal et. al (2011) menggunakan transformasi Radon
dari siluet kedalaman untuk mengenali kegiatan manusia di dalam rumah. Sung et.al
(2011) mengekstraksi fitur dari data sendi yang disediakan oleh PrimeSense dari kamera
RGB-D Kinect dan menggunakan pendekatan metoda pembelajaran untuk menyimpulkan
kegiatan yang sedang dilakukan manusia. Xia et.al (2011) memperkenalkan algoritma
berbasis model untuk mendeteksi manusia menggunakan informasi kedalaman gambar
dari Kinect. Li et al (2010) mengembangkan grafik tindakan untuk model tindakan yang
dinamis. Selanjutnya data kedalaman 3D dipetakan guna memperoleh serangkaian bentuk
tubuh yang berhubungan erat dengan grafik tindakan.
Penelitian ini dilakukan dengan cara membangun aplikasi dan melakukan ujicoba.
Aplikasi yang dibangun yakni aplikasi antar-muka layar sentuh virtual yang akan
ditempatkan pada posisi antara objek (manusia) dengan komputer, aplikasi antar muka
file teks ke file gambar dan aplikasi neural network. Data yang telah terkumpul
selanjutnya dijadikan data pelatihan untuk aplikasi neural network backpropagation.
Bagian pertama membahas aplikasi antar-muka dan neural network yang akan
dibangun dan bagian berikutnya akan membahas mengenai dataset yang digunakan
pada penelitian ini.
3.1
Pembangunan Aplikasi
Aplikasi antar-muka yang dibangun terdiri atas 3 bagian yakni antar-muka layar
sentuh virtual, peubah data teks ke dalam format gambar dan aplikasi neural network
backpropagation untuk percobaan.
3.1.1
Antar-muka Layar Sentuh Virtual
Antar-muka layar sentuh virtual yang dibangun memiliki spesifikasi berikut:
1.
Ukuran layar disesuaikan dengan ukuran bentuk tubuh manusia pada
umumnya, dengan ukuran tinggi 200 centimeter, lebar 150 centimeter dan
kedalaman 65 centimeter.
2.
Mampu menampilkan koordinat X, Y dan Z untuk masing-masing skeleton.
3.
Mampu menangkap data skeleton tangan kanan dan kiri dan menampilkannya
secara penuh pada layar sentuh.
4.
Mampu menyesuaikan letak koordinatnya sesuai dengan perpindahan tubuh
objek guna menghindari derau pada data skeleton.
5.
Mampu merepresentasikan format data 3D ke dalam bentuk gambar.
3.1.2
Antar-muka Peubah
Data gerak isyarat yang diterima oleh layar sentuh virtual yang tersimpan dalam
format file teks selanjutnya dibaca oleh aplikasi peubah untuk diubah formatnya ke
dalam format file gambar. Tahap-tahapannya sebagai berikut:
a.
Data file gerak isyarat dalam bentuk file teks dibaca dan dimasukkan ke dalam
list.
b.
Pada list data duplikasi dihilangkan untuk mempercepat proses penggambaran
c.
Melakukan proses pengisian bagian koordinat data yang kosong agar gambar
menjadi lebih baik dengan menggunakan algoritma garis.
d.
Proses penggambaran pola gerak isyarat dilakukan dengan meletakkan piksel
sesuai koordinat.
e.
Gambar pola gerak isyarat yang telah terbangun disalin ke dalam format file
gambar .PNG.
3.1.3
Aplikasi Neural Network
Membangun aplikasi neural network backpropagation yang akan digunakan untuk
percobaan. Tahapan pembangunan aplikasi ini sebagai berikut:
a.
Membangun modul pembacaan file pola gerak isyarat.
b.
Membangun modul utama neural network backpropagation dengan 3
parameter utama yaitu jumlah neuron layer input, jumlah neuron layer hidden
dan jumlah neuron layer output.
c.
Membangun modul transfer function.
3.2
Percobaan
Pelatihan neural network backpropagation dilakukan dengan tahapan berikut:
1.
Pelatihan dimulai dengan memberikan nilai jumlah maksimum iterasi, target
error, learning rate dan momentum.
2.
Selanjutnya dilakukan pembacaan data gambar gerak isyarat sebanyak 400
gerak isyarat sebagai input dan 400 data target sesuai klasifikasi gerak isyarat
3.
Lakukan iterasi sampai maksimum atau berhenti saat error pelatihan lebih
kecil dari nilai target error.
4.
Data hasil ujicoba direkam untuk kebutuhan analisa
5.
Kembali ke langkah 1 dengan mengubah parameter-parameter.
3.3
Dataset
Dataset untuk penelitian ini minimal berisi data gerak isyarat berupa
koordinat-koordinat skeleton manusia yang dicuplik dari perangkat sensor RGB-D Kinect.
Penelitian ini hanya membutuhkan data label dan data skeleton dari dataset. Data
[image:35.595.106.532.325.414.2]video, suara dan tipe data lainnya tidak diperlukan dan lebih sebagai data pelengkap.
Gambar 3.1 Contoh isi dataset MMGR
Tesis ini menggunakan dataset multi-modal dari Escalera et.al (2013) yang
digunakan pada seminar modal Gesture Recognition (MMGR) “2013
Multi-modal Challenge”, 9-13 Desember 2013. Multi-Multi-modal adalah interaksi manusia mesin
menggunakan berbagai jenis sumber data sebagai input/output.
Dataset MMGR berisi data multi-modal, terdiri atas video berwarna, video
data kedalaman objek (depth), data audio, video data user mask dan data informasi
skeleton seperti terlihat pada gambar 3.1. Jenis gerak isyarat bahasa Italia yang
terdapat pada dataset MMGR terdiri atas 7754 gerak yang diklasifikasikan ke dalam
20 gerak isyarat dalam bahasa Italia seperti pada tabel 3.1.
Tabel 3.1 Jenis gerak isyarat pada dataset MMGR
No.
Gerak Isyarat
Maksud
1
Basta
Cukup ! [marah]
2
Buonissimo
Lezat
3
Chedupalle
Bosan
4
Chevuoi
Apa yang anda inginkan?
[image:35.595.138.487.641.760.2]6
Cosatifarei
Apa yang harus saya lakukan?
7
Daccordo
Setuju
8
Fame
Lapar
9
Freganiente
Tidak masalah
10
Furbo
Licik
11
Messidaccordo
Masukan bagus
12
Noncenepiu
Jangan kebanyakan
13
Ok
Oke
14
Perfetto
Sempurna
15
Prendere
Ambil
16
Seipazzo
Anda gila?
17
Sonostufo
Saya lelah
18
Tantotempo
Itu masa lalu
19
Vattene
Pergilah
20
Vieniqui
Ke sini
Data pelatihan terdiri atas 403 direktori yang masing-masing terdiri atas file
audio (.WAV), file video RGB (.MP4), file data label dan koordinat (.MAT), file
[image:36.595.138.486.138.388.2]video Depth (.MP4) dan file video User Mask (.MP4).
Gambar 3.2 File pelatihan pada direktori Sample00001
File yang dibutuhkan untuk penelitian ini adalah file .MAT dalam format
MatLab, di dalamnya terdapat informasi koordinat skeleton, label gerak isyarat, titik
koordinat layar, nomor frame dan data lainnya. File video berwarna penulis gunakan
3.4
Instrumen Penelitian
Penelitian ini menggunakan perangkat berikut:
1.
Laptop ASUS N43S, Intel Core I5, RAM 4 GBytes, Harddisk 750 GBytes,
Windows 7 64 bit.
2.
Python 2.66, SciPy, Image, PyGame, Numpy
3.
Dataset Multi-modal Gesture Recognition 2013, dataset ini diperuntukkan untuk
riset, penggunaannya tidak memerlukan izin khusus, hanya menambahkan
4.1 Pendahuluan
Pengujian hasil pertam
memberikan hasil akhi
gambar gerak isyarat.
backpropagation.
4.2 Layar Sentuh Vir
Gambar 4.1 memperlih
merah dan hijau sebaga
Selain data gera
yang merepresentasika
menggambarkan jarak
dilakukan.
tama dicoba pada aplikasi layar sentuh virtua
hir berupa data teks yang berisi data koordinat
rat. Setelah itu pengujian dilanjutkan terha
Virtual
[image:38.595.183.452.407.628.2]rlihatkan cuplikan gerak isyarat “chevuoi”, gam
agai pembeda tangan kanan dan kiri.
Gambar 4.1 Layar sentuh virtual”chevuoi”
erakan dilihat dari sisi depan partisipan, terdapa
ikan gerakan bila dilihat dari sisi kiri dan k
ak tangan kiri dan kanan dari HipCenter selam
rtual, layar sentuh dapat
at gerak isyarat dan data
rhadap neural network
gambaran garis berwarna
Gambar 4.2 m
sudah memenuhi spesif
Dari ujicoba dite
virtual mengalami dist
kiri dan ke kanan pad
dan ke belakang tidak
membuat posisi layar s
posisi pergerakan pa
menyesuaikan posisi
HipCenter. Hasil akhir
terdistorsi karena pe
memperlihatkan hasil
partisipan.
[image:39.595.182.452.196.423.2]menunjukkan gerak isyarat “basta”. Dari sisi
esifikasi yang diinginkan pada bab sebelumnya.
Gambar 4.2 Layar sentuh virtual ”basta”
ditemukan beberapa data `gerakan yang tergam
istorsi. Distorsi ini disebabkan oleh perpindaha
ada saat gerak isyarat dilakukan. Perpindahan
dak mendistorsi data. Solusi untuk distorsi da
r sentuh menjadi lebih dinamis, berpindah sesu
partisipan ke kanan dan ke kiri. Hal in
i koordinat kiri atas layar berpindah sesuai
hirnya terlihat seperti gambar 4.3, sebelah kir
pergerakan partisipan ke arah kiri. Gam
sil saat posisi layar virtual telah disesuaika
isi aplikasi layar sentuh
ya.
Sampai dengan
namun masih harus di
35x60. Hal ini dilaku
seragam dan kecil seh
.4.4 memperlihatkan po
Gambar 4.3 Mengatasi distorsi data
an keadaan ini, data koordinat untuk gerak is
dilakukan penyesuaian bentuk data menjadi p
kukan agar data koordinat yang dihasilkan m
ehingga mempercepat proses pembelajaran ne
pola matriks pada gerakan “BASTA”.
Gambar 4.4 Gerak isyarat pola matriks
[image:40.595.171.463.438.669.2]Koordinat-koor
disalin menjadi file d
merupakan representas
Gambar 4.5 Pe
File teks yan
pembentukan pola pe
gambar data di dalam f
Format teks ya
gerakan berisi 3 basris
dengan nama sisi tanga
berurut sampai akhir ba
ordinat matriks yang berisi nilai sesuai uru
e data teks, termasuk data layar tambahan
tasi bentuk data 3D.
Penggalan isi data file teks untuk gerak isyarat
ang dihasilkan berisi data koordinat yan
pembelajaran dan pengujian, gambar 4.5 m
file teks pertama untuk gerak isyarat “VIENIQ
yang terdapat pada file hasil dari aplikasi laya
ris teks, baris pertama adalah nama jenis geraka
ngan misalnya ‘Kanan’ dilanjutkan dengan nila
r baris, seperti yang terlihat pada gambar 4.6.
x
Jenis Gerak Isyarat
z
Tangan
y
Gambar 4.6 Detail isi teks
rutan gerak selanjutnya
n kiri dan kanan yang
rat ”VIENIQUI”
ang dibutuhkan untuk
menunjukkan cuplikan
IQUI”:
perubahan menjadi data gambar sesuai kebutuhan pelatihan dan pengujian neural
network. Teknik yang digunakan adalah dengan membaca format teks ke dalam list di
memori, dilanjutkan dengan pembersihan duplikasi data. Duplikasi data sering terjadi saat
pencuplikan data dilakukan, hal ini disebabkan oleh posisi tangan pada frame berjalan
masih di koordinat yang sama dengan posisi tangan pada frame sebelumnya.
Gambar 4.7 Duplikasi data
[image:42.595.115.518.371.672.2]Setelah data pada list bersih dari duplikasi, dilakukan proses pengisian pixel yang kosong
di antara 2 koordinat dengan cara membangun list baru hasil pemrosesan list sebelumnya
menggunakan algoritma Bresenham. Hasil list selanjutnya dikonversi menjadi gambar
berukuran 35x60 yang merepresentasikan urutan gerak isyarat sejak awal hingga akhir
gerakan. Diagram proses konversi dari data teks menjadi gambar dapat dilihat pada
gambar 4.8.
Dengan selesainya pembuatan gambar gerak isyarat ini, maka proses
pembelajaran neural network backpropagation dapat dimulai. Gambar 4.9 menunjukkan
contoh hasil penggambaran dari gerak isyarat “BASTA” yang berjumlah 20 gerakan.
[image:43.595.111.521.218.320.2]BASTA
Gambar 4.9 Sekumpulan data gambar untuk gerak isyarat “BASTA”
4.3 Pengujian Neural Network
Bagian ini menyajikan hasil penelitian yang diperoleh dengan melakukan beberapa
percobaan berulang, dengan mengubah parameter-parameter jaringan seperti jumlah
neuron pada hidden layer, nilai learning rate dan nilai momentum. Tujuan perubahan
parameter ini dimaksudkan untuk menemukan pasangan yang tepat dari neuron pada
hidden layer, nilai learning rate dan nilai momentum yang selanjutnya digunakan sebagai
parameter tetap pada neural network.
Pelatihan menggunakan data gerak isyarat sebanyak 400 jenis gerak isyarat yang
terbagi atas 20 jenis klasifikasi gerakan, masing-masing dilakukan berulang oleh
partisipan sebanyak 20 kali. Setiap data gerak isyarat dicuplik dari layar sentuh virtual,
diolah dan disimpan dalam file teks. Setiap file teks berisi nilai parameter x, y dan z
gerakan tangan kanan dan kiri, terdiri dari 35x60 byte dengan masing-masing byte
melambangkan nilai biner 1 atau 0 seperti yang terlihat pada gambar 4.3.
Klasifikasi gerak isyarat yang akan menjadi target jaringan diberi nilai berupa 5
byte yang masing-masing berisi nilai 1 atau 0, melambangkan nilai biner sebagaimana
terlihat pada table 4.2.
1
BASTA
00001
2
BUONISSIMO
00010
3
CHEDUPALLE
00011
4
CHEVUOI
00100
5
COMBINATO
00101
6
COSATIFAREI
00110
7
DACCORDO
00111
8
FAME
01000
9
FREGANIENTE
01001
10
FURBO
01010
11
MESSIDACCORDO
01011
12
NONCENEPIU
01100
13
OK
01101
14
PERFETTO
01110
15
PRENDERE
01111
16
SEIPAZZO
10000
17
SONOSTUFO
10001
18
TANTOTEMPO
10010
19
VATTENE
10011
20
VIENIQUI
10100
4.4 Hasil Percobaan
Jumlah node output sebanyak 5 unit diambil dari data target pada tabel 4.2.
Arsitektur jaringan untuk percobaan ini menggunakan jaringan 3 layer, yakni layer input,
layer hidden dan layer output seperti terlihat pada gambar 4.10.
x1
x2100
x3 x2
bias
z1
z2
z3
zn
y1
y2
y3
y4
y5
Input
Layer
Hidden
Layer
[image:45.595.121.496.242.527.2]Output
Layer
Gambar 4.10 Arsitektur neural network backpropagation
4.4.1 Percobaan pertama
berjumlah 5, 10, 20 dan 30 unit neuron.
Tabel 4.3 Hasil MSE dengan perubahan jumlah neuron
Epoch
Jumlah Neuron Hidden Layer
5 Neuron 10 Neuron 20 Neuron 30 Neuron
1
473.1281
480.0049
480.7728
472.2175
1000
3.085454
1.471799
0.921986
0.769815
2000
1.848708
0.632435
0.381721
0.315664
3000
1.52047
0.39655
0.234815
0.193173
4000
1.372571
0.285458
0.167864
0.137605
5000
1.289065
0.216905
0.129921
0.106217
6000
1.235584
0.175081
0.105617
0.086164
7000
1.198349
0.146919
0.088775
0.072297
8000
1.167844
0.12659
0.076444
0.062161
9000
0.165264
0.111245
0.06704
0.054444
10000 0.140492
0.099211
0.059641
0.04838
Waktu 18 menit
25 menit
47 menit
71 menit
Setelah melakukan beberapa pelatihan dengan mengubah jumlah neuron pada
layer hidden dengan nilai 5, 10, 20, 30 diperoleh data hasil seperti tersaji pada tabel 4.3.
Data hasil yang ditampilkan pada tabel dicuplik per 1000 kali iterasi.
Dari data hasil percobaan pertama, sebagaimana tersaji pada tabel 4.3 dapat
disimpulkan bahwa:
-
Penambahan jumlah neuron pada hidden layer dapat menaikkan kinerja
jaringan, nilai MSE antara 5, 10, 20 dan 30 neuron pada maksimum iterasi
masing-masing 0.140492, 0.099211, 0.0596, 0.04838, belum ada yang berhasil
mencapai nilai target MSE 0.01.
-
Jumlah neuron yang kecil (5 unit) ternyata menunjukkan kinerja yang lebih
rendah disbanding jumlah neuron 10, 20 dan 30.
-
Neuron berjumlah 10, 20 dan 30 unit akan diujicobakan pada percobaan
kedua.
4.4.2 Percobaan kedua
Percobaan kedua ini menguji hasil percobaan pertama yakni mengubah parameter
momentum dan learning rate pada neuron hidden berjumlah 10, 20, 30 unit. Pengujian
dilakukan tanpa mengubah parameter lain seperti jumlah bobot, target MSE dan epoch
maksimum. Parameter yang digunakan pada percobaan ini yakni jumlah node input 2100
unit, node output 5 unit. Nilai learning rate 0.01, sedangkan inisialisasi nilai bobot
diambil secara acak dengan nilai [-0.2, 0.2], fungsi aktivasi menggunakan logistic
sigmoid dengan nilai [0,1]. Target MSE yang diinginkan adalah 0.01. Nilai momentum
[image:47.595.139.513.457.579.2]yang akan diujikan yakni 0.9 dengan learning rate 0.01 dan0.001. Hasil pengujian terlihat
pada tabel 4.4
Tabel 4.4 Pengujian momentum dan learning rate
Neuron
Target
MSE
LR/Momentum
MSE
Epoch
Waktu
(menit)
10
0.01
0.01/0.9
0.019932
5270
10
20
0.01
0.01/0.9
0.01991
3180
15
30
0.01
0.01/0.9
0.019964
2380
16
10
0.01
0.001/0.9
0.01924
6120
17
20
0.01
0.001/0.9
0.0197
4352
14
30
0.01
0.001/0.9
0.0193
3761
12
layer, nilai learning rate
jumlah neuron 30, learn
4.5 Pengujian
[image:48.595.136.486.325.436.2]Pengujian dilak
bobot pelatihan setiap
menjadi bobot untuk p
tidak diperlukan pelatih
Gambar 4.11 m
392.0806, terlihat gerak
isyarat atau 17%.
Gambar 4.12
173.0721, gerakan yan
isyarat atau 64%.
rate dan momentum diambil nilai yang memilik
arning rate 0.01 dan momentum 0.9.
ilakukan dengan menggunakan data seperti pad
tiap iterasi yang sebelumnya telah disimpan pa
k pengujian. Dengan demikian untuk penguji
atihan ulang.
[image:48.595.183.482.507.622.2]Gambar 4.11 MSE 392.08
menunjukkan hasil pengenalan gerak isyarat sa
rakan yang dapat dikenali dengan benar berjum
Gambar 4.12 MSE 173.0721
menunjukkan hasil pengenalan gerak isyar
yang dapat dikenali meningkat menjadi 259 ge
iliki epoch terkecil yakni
pada lampiran 1.
pada file, dikembalikan
ujian data yang berbeda
t saat error bernilai
jumlah 68 dari 400 gerak
Gambar 4.13 m
60.04809, gerakan yan
gerak isyarat atau 89%.
Gambar 4.14 m
8.9673, gerakan yang d
gerak isyarat atau 99%.
Gambar
bernilai 0.873202, gera
isyarat atau 100%.
Gambar 4.13 MSE 60.04809
menunjukkan hasil pengenalan gerak isyarat sa
ang dapat dikenali meningkat lagi menjadi 357
%.
Gambar 4.14 MSE 8.967335
menunjukkan hasil pengenalan gerak isyarat sa
g dapat dikenali lebih meningkat lagi menjadi 3
[image:49.595.182.490.497.603.2]%.
Gambar 4.15 MSE 0.873202
bar 4.15 menunjukkan hasil pengenalan gerak is
erakan yang dapat dikenali menjadi 400 gerakan
t saat error bernilai
57 gerakan dari 400
t saat error bernilai
i 397 gerakan dari 400
No.
MSE
#Gerak Isyarat
dikenal
Persen
1
392.08
68
17%
2
173.0721
259
64%
3
60.04809
357
89%
4
8.967335
397
99%
5
0.873202
400
100%
Gambar 4.16 Grafik perbandingan MSE dan gerak isyarat dikenal
Dari hasil pengujian di atas dapat dilihat pada tabel 4.5 dan grafik gambar 4.16
bahwa semakin menurunnya nilai error semakin baik pula neural network
backpropagation mengenal gerak isyarat.
0 50 100 150 200 250 300 350 400 450
1 2 3 4 5
[image:50.595.139.498.151.536.2]KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari pengujian yang telah dilakukan pada bab sebelumnya, penulis dapat
menyimpulkan beberapa hal berkenaan dengan penelitian ini, diantaranya:
1.
Layar sentuh virtual dapat digunakan sebagai cara alternatif untuk memperoleh
data gerak isyarat dari objek.
2.
Algoritma penghilangan data duplikasi dan algoritma pengisian pixel
Bresenham dapat digunakan untuk mengolah data gerak isyarat menjadi
gambar yang akan digunakan sebagai input/target.
3.
Pemilihan jumlah neuron pada hidden layer, nilai learning rate dan nilai
momentum mempengaruhi kinerja neural network backpropagation, untuk
kebutuhan penelitian ini jumlah yang maksimal untuk neuron hidden layer 30
neuron, nilai learning rate 0.01 dan nilai momentum 0.9.
4.
Neural network backpropagation dapat mengenali seluruh jenis gerak isyarat
(400 gerak) yang diklasifikasikan menjadi 20 gerak isyarat setelah error di
bawah 0.8.
5.2 Saran
Dari kesimpulan sebelumnya, penulis dapat memberikan beberapa saran sebagai
masukan untuk pengembangan teknologi pengenalan gerak isyarat selanjutnya:
1.
Ukuran matriks hasil layar sentuh dapat ditingkatkan untuk memaksimalkan
pengenalan gerak isyarat.
2.
Pengenalan gerak isyarat sebaiknya diujicoba juga pada teknologi neural
Implementation of 3D gesture recognition system based on neural network. In
Procs. of the 9th WSEAS international conf. on Applied informatics and
communications, pp. 84–87.
Aly, A. & Tapus, A. 2010. Gestures Imitation with a Mobile Robot in the Context of
Human-Robot Interaction (HRI) for Children with Autism, In 3rd Workshop
for Young Researchers on Human-Friendly Robotics, Tübingen, Germany,
October.
Black, M.J. & Jepson, A.D. 1998. A probabilistic framework for matching temporal
trajectories: Condensation-based recognition of gestures and expressions.
Computer Vision - ECCV 98, pp. 909.
Bowden, R., Windredge, D., Kadir, T., Zisserman, A. & Brady, M., 2004, A
linguistic feature vector for the visual interpretation of sign language.
Computer Vision-ECCV 2004, pp. 390–401.
Bretzner, L., Laptev, I. & Lindeberg, T. 2002 Hand gesture recognition using
multi-scale colour features, hierarchical models and particle filtering. In Fifth IEEE
International Conference on Automatic Face and Gesture Recognition, 2002.
Proceedings, pp. 423–428.
Escalera, S., Gonzàlez, J., Baró, X., Reyes, M., Lopes, O., Guyon, I., Athistos, V.,
Escalante, H.J. 2013, Multi-modal Gesture Recognition Challenge 2013:
Dataset and Results, ICMI 2013.
Feil-Seifer, D. & Mataric, J.M. 2009. Human Robot Interaction, Encyclopedia of
Complexity and Systems Science, Robert A. Meyers (eds.), pp. 4643-4659,
Springer New York.
Gerlich, L., Parson, B.N., White, A.S., Prior, S. & Warner, P. 2007 Gesture
recognition for control of rehabilitation robots. Cognition, Technology &
Work, 9(4):189–207.
Sung, J., Ponce, C., Selman, B. & Saxena, A. 2011. Human Activity Detection from
RGBD Images, AAAI workshop on Pattern, Activity and Intent Recognition
(PAIR).
Xia, L., Chen, C. & Aggarwal, J.K 2011. Human Detection Using Depth Information
by Kinect, International Workshop on Human Activity Understanding from 3D
Data in conjunction with CVPR (HAU3D), Colorado Springs, CO.
Villaroman, N., Rowe, D. & Swan, B. 2011. Teaching Natural User Interaction Using
OpenNI
and
the
Microsoft
Kinect
Sensor,
In
Proceedings of the 2011 Conference on Information Technology Education
(SIGITE ’11). ACM, New York, NY, USA, pp.227-232.
Wu, J., Osuntogun, A., Choudhury, T., Philipose, M. & Rehg, J. M. 2007. A scalable
approach to activity recognition based on object use. In ICCV.
Yamato, J, Ohya J., & Ishii K. 1992. Recognizing human action in time-sequential
images using hidden Markov model. InProc. Comp. Vis. and Pattern Rec,
pp.379–385.
Yang, M.H. & Ahuja, N. 1999 Recognizing hand gesture using motion trajectories. In
CVPR.
DAFTAR PUBLIKASI ILMIAH PENULIS (TESIS)
No.
Judul
Artikel
Penulis
Publikasi
Waktu
Publikasi
Tempat
1
Speech Syntheszer Bahasa Indonesia
Berbasis Diphone MBROLA
Stephanus
Priyowidodo,
Dedy Irwan
SNIKOM 2010
29 -10-2010
Universitas Sumatera Utara
2
Teknologi Pengenalan dan Pensintesa
Ucapan Bahasa Indonesia pada Sistem
Informasi Berbasis Microsoft Speech
API
Stephanus
Priyowidodo
KNSI 2011
25-02- 2011
STMIK Potensi Utama
3
Singing Synthesizer Berbasis
Diphone MBROLA untuk Lagu
Berbahasa Indonesia
Erlanie Sufarnap,
Armaini Rahman,
Stephanus
Priyowidodo
Seminar
Nasional III
Teknologi &
Rekayasa
26-04-2011
Universitas Islam Sumatera
Utara
4
Pengamanan Data Tersimpan pada
Media Cloud Drive
Stephanus
Priyowidodo
SEMILOKA
2011
31,1,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20, 32,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20, 30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20,30,0,20, 30,0,20,30,0,20,30,0,20,30,0,20,31,0,20,31,0,20,30,0,20,31,0,20,30,0,20,31,0,20, 32,1,20,30,1,20,30,1,20,30,1,20,31,1,20,31,1,20,32,1,20,31,1,20,31,1,20,31,1,20, 31,1,20,31,1,20,31,1,20,31,1,20,31,1,20,31,1,20,31,1,20,31,1,20,31,1,20,31,1,20, 31,1,20,31,1,20,31,1,20,31,1,20,31,1,20,31,1,20,31,1,20,31,1,20,31,1,20,31,1,20, 31,1
DACCORDO
Kanan,9,32,1,9,31,1,10,31,3,10,30,4,10,29,5,11,28,6,12,26,7,12,25,7,15,24,8,15,2 3,8,16,22,8,16,22,8,12,21,8,12,21,8,12,21,7,12,22,7,13,21,7,12,21,7,11,21,6,11,2 1,5,12,21,6,12,21,6,11,21,5,12,21,6,12,21,6,11,23,6,12,21,6,12,21,6,12,22,8,12,2 4,8,11,27,7,11,29,5,10,31,4,10,30,3,10,31,2,9,31,0,9,31,0,9,31,0,9,31,0,9,31,0,9 ,31,0,9,31,0,9,32,0,9,30,0,9,32,0,9,32,0,9,32,1,10,32,1,9,32,1,10,32,1,10,32,1,1 0,32,1,10,32,1,10,32,1,10,31,1,10,31,1
LAMPIRAN 4 - SOURCE CODE
################################## # tesis-disp.py # # (c)2013 Stephanus Priyowidodo # # NIM 107038023 # # S2 Teknik Informatika USU # # Sumber Dataset : chalearn.org # ##################################
__author__ ="Stephanus Priyowidodo"
import random, math, copy, pygame, os.path, numpy as np import scipy.io as sio, pyffmpeg
from pygame.locals import * from sys import exit
from pyffmpeg import *
def buka_file_mat(namafilemat):
mat_contents = sio.loadmat(namafilemat) retstruk=mat_contents[svd]
return retstruk
def c2s(x,y,z):
x2py2 = x**2 + y**2
r = np.sqrt(x2py2 + z**2)# r
elevasi = np.arctan2(z,np.sqrt(x2py2))# theta azimuth = np.arctan2(y,x)#phi
return r, elevasi, azimuth
def jumlah_frame(nama_struktur):
jf = nama_struktur[snf][0][0][0][0] return jf
def frame_rate(nama_struktur):
fr = nama_struktur[sfr][0][0][0][0] return fr
def baca_label(nama_struktur_label, indeks):
nama_gerak=nama_struktur_label[0][0][snm][0][indeks][0] posisi_awal=nama_struktur_label[0][0][sbg][0][indeks][0][0] posisi_akhir=nama_struktur_label[0][0][sen][0][indeks][0][0] return (nama_gerak, posisi_awal, posisi_akhir)
def label_ke_list(nama_struktur_label): templist=[]
for i in range (0,21): try:
(ng, faw, fak)=baca_label(nama_struktur_label,i) templist.append([ng, faw, fak])
templist=[]
for skel in range(0, jumlah_frame): for pl in range(0, 20):
templist.append([skel,
skeleton[skel][sjt][0][0][pl][0][0], skeleton[skel][spp][0][0][pl][0], skeleton[skel][spp][0][0][pl][1], skeleton[skel][swp][0][0][pl][0], skeleton[skel][swp][0][0][pl][1], skeleton[skel][swp][0][0][pl][2] ])
return templist
def gambar_skeleton_pendek(lscreen, fr, lsk, aw, ak, warna): pygame.draw.line(lscreen, warna, (lsk[fr*20+aw][2],
lsk[fr*20+aw][3]), (lsk[fr*20+ak][2], lsk[fr*20+ak][3])) return
def gambar_skeleton_panjang(lscreen, fr, lsk, aw, ak, warna): for ul in range(aw, ak):
pos1, pos2=ul, ul+1 if ul==ak : break
pygame.draw.line(lscreen, warna, (lsk[fr*20+pos1][2],
lsk[fr*20+pos1][3]), (lsk[fr*20+pos2][2], lsk[fr*20+pos2][3])) return
def surface(lscreen, x, y, lbr, pjg): s = pygame.Surface((lbr,pjg)) s.set_alpha(128)
s.fill((0,0,0)) lscreen.blit(s, (x,y))
def kotak(lscreen, x, y, lbr, pjg, warna, alpha): s = pygame.Surface((lbr,pjg))
s.set_alpha(alpha) #120 s.fill(warna)
lscreen.blit(s, (x,y))
def persen(lscreen, x, y, pos, maks):
pygame.draw.line(lscreen, (155,155,155),(x,y), (x+600,y)) xpos=(pos*600)//maks
#print xpos
pygame.draw.line(lscreen, (150,150,150),(x,y-1), (x+xpos,y-1)) pygame.draw.line(lscreen, (255,255,255),(x,y), (x+xpos,y)) pygame.draw.line(lscreen, (150,150,150),(x,y+1), (x+xpos,y+1)) pygame.draw.circle(lscreen, (255, 255, 0), (x+xpos,y), 3)
def tampil_dot(lscreen,frame): for i in range(0,20):
pygame.draw.circle(lscreen, (255, 255, 255),
(ListSkeleton[frame*20+i][2], ListSkeleton[frame*20+i][3]), 3)
global Lmerah, Lhijau, gerakseb
posx, posy=ListSkeleton[frame*20][2], ListSkeleton[frame*20][3] kiri, atas=posx-150, posy-250
kotak(lscreen, kiri, atas, 300, 450, (0,0,0), 120)
def tampil_biner(lscreen, frame):
global Lbresmerah, Lbreshijau, gerakseb
posx, posy=ListSkeleton[frame*20][2], ListSkeleton[frame*20][3] kiri, atas=posx-150, posy-250
kotak(lscreen, kiri, atas, 300, 350, (0,0,0), 120) for i in range(0, 300, 10):
for j in range(0,350, 10):
kotak(lscreen, kiri+i, atas+j, 9, 9, (0,0,0), 120) if Layar3D:
kotak(lscreen, kiri-160, atas, 150, 350, (0,0,0), 120)
kotak(lscreen, kiri+310, atas, 150, 350, (0,0,0), 120) for i in range(0, 150, 10):
for j in range(0,350, 10):
kotak(lscreen, kiri-160+i, atas+j, 9, 9, (0,0,0), 120) kotak(lscreen, kiri+310+i, atas+j, 9, 9, (0,0,0), 120) for i in range(0, len(Lbresmerah)):
kotak(lscreen, kiri+Lbresmerah[i][0]*10,
atas+Lbresmerah[i][1]*10, 9, 9,(255,0,0), 120) kotak(lscreen, kiri+Lbreshijau[i][0]*10,
atas+Lbreshijau[i][1]*10, 9, 9,(0,255,0), 120) if Layar3D:
kotak(lscreen, kiri-160+Lbreshijau[i][2]*10, atas+Lbreshijau[i][