3
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.
2. Pengenalan gerak isyarat hanya menggunakan satu jenis sumber data yaitu data
skeleton.
Universitas Sumatera Utara
4
1.4 Tujuan Penelitian
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
Hasil penelitian ini diharapkan dapat memberikan manfaat dan sumbangan bagi ilmu pengetahuan, khususnya dalam teknologi pengenalan gerak isyarat dan kecerdasan
buatan, serta dapat dijadikan bahan kajian perbandingan antara teknik layar sentuh virtual dan neural network backpropagation dibanding dengan teknik lainnya.
Universitas Sumatera Utara
BAB II
TINJAUAN PUSTAKA
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
jarak 2 meter, ketepatan ukur Kinect untuk tinggi dan lebar sebesar 3mm dan untuk kedalaman sebesar 1 cm. Villaroman et.al, 2011. Rentang jarak objek dari sensor yang
dapat dideteksi antara 0.8m sampai 3.975m seperti terlihat pada gambar 2.1. Frame rate Kinect 30 Hz dengan luas pandang horizontal 57 derajat dan vertikal 43.5 derajat.
Universitas Sumatera Utara
6
6
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.
Gambar 2.2 Sensor RGB-D Kinect
Universitas Sumatera Utara
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
7
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
7
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
g dihasilkan oleh API rlihat pada gambar 2.4.
Universitas Sumatera Utara
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
8
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.
8
rosoft, 2014 kan standar urutan yang
isi data koordinat X, Y titik skeleton HipCenter
merupakan jarak antara ordinat sumbu X, Y, dan
Universitas Sumatera Utara
9
9
Tabel 2.1 Urutan Data Sendi API Windows
No. Nama
Skeleton No.
Nama Skeleton
Gambar Skeleton
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
Pada data skeleton bagian HandRight pada gambar 2.5, terdapat data X, Y, Z yang masing-masing nilainya -0.21m, -0.30m dan 2.02m, artinya posisi HandRight berada pada
posisi negatif di sebelah kanan HipCenter sekitar 0.21m 21cm, HandRight berada positif di bawah HipCenter sejauh -0.30m 30cm dan HandRight berada pada jarak
2.02m dari sensor.
Universitas Sumatera Utara
10
10
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
weight. Setiap bobot yang tiba pada satu neuron akan dijumlahkan nilainya, hasil
Universitas Sumatera Utara
11
11
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.
Gambar 2.6 Fungsi aktivasi pada neural network
Universitas Sumatera Utara
12
12
2.2.1. Fungsi Aktivasi
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 = fx =
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:
y = fx = 1 −
1 + 2.6
Universitas Sumatera Utara
13
13
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 = fx = 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
Gambar 2.7 Arsitektur neural network backpropagation
Universitas Sumatera Utara
14
14
Arsitektur neural network backpropagation dapat dilihat pada gambar 2.7. 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 EpochMaksimumEpoch dan MSETargetError:
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
gunakan fungsi aktivasi untuk menghitung sinyal outputnya:
Universitas Sumatera Utara
15
15
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
= δ
k
z
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
j
x
j
2.19 β1
j
= δ1
j
2.20
Universitas Sumatera Utara
16
16
kemudian hitung koreksi bobot yang akan digunakan untuk memperbaiki 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.
Gambar 2.8 menampilkan algoritma garis Bresenham dalam bentuk pseudo-code. Selain membuat garis pada layar komputer, algoritma garis Bresenham digunakan untuk
menggambar garis pada memori penyangga buffer sebelum hasil penggambarannya ditransfer secara perangkat keras ke layar komputer. Teknik ini disebut double-buffering,
tujuannya untuk menghindari flicker, mempercepat dan memperhalus tampilan pada layar komputer. Meskipun saat ini penggambaran garis pada layar komputer telah
digantikan sepenuhnya oleh Graphical Processing Unit GPU, namun untuk keperluan tertentu algoritma garis Bresenham tetap digunakan.
Universitas Sumatera Utara
17
17
function pixellinex0, y0, x1, y1 boolean step := absy1 - y0 absx1 - x0
if step then swapx0, y0
swapx1, y1 if x0 x1 then
swapx0, x1 swapy0, y1
int deltax := x1 - x0 int deltay := absy1 - 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 ploty,x else plotx,y
error := error - deltay if error 0 then
y := y + ystep error := error + deltax
Gambar 2.8 Algoritma pengisian pixel Bresenham
2.4. Algoritma Penghilangan Duplikasi Data