Perumusan Masalah Batasan Masalah Tujuan Penelitian Manfaat Penelitian Algoritma Pengisian Pixel Bresenham

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