bab 2 landasan teori -...
TRANSCRIPT
BAB 2
LANDASAN TEORI
Untuk merancang aplikasi ini dibutuhkan landasan teori yang dapat membantu
dalam merancang aplikasi. Berikut adalah beberapa teori yang dipergunakan dalam
perancangan aplikasi ini.
1.1 Bahasa Isyarat
Dalam Kamus Besar Bahasa Indonesia (KBBI), bahasa isyarat artinya bahasa yang
tidak menggunakan bunyi ucapan manusia atau tulisan di sistem perlambangannya.
Bahasa isyarat menggunakan isyarat berupa gerak tangan, kepala, badan dan
sebagainya, yang khusus diciptakan oleh kaum tuna rungu dan untuk kaum tuna rungu
(kadang untuk kaum pendengar).
Bahasa isyarat unik dalam jenisnya di setiap negara. Bahasa isyarat bisa saja
berbeda di negara-negara yang berbahasa sama. Contohnya, Amerika Serikat dan
Inggris meskipun memiliki bahasa tertulis yang sama, mereka memiliki bahasa isyarat
berbeda (American Sign Language dan British Sign Language). Hal yang sebaliknya
juga berlaku. Ada negara-negara yang memiliki bahasa tertulis yang berbeda (contoh:
Inggris dengan Spanyol), namun menggunakan bahasa isyarat yang sama.
Untuk Indonesia, sistem yang sekarang umum digunakan adalah Sistem Isyarat
Bahasa Indonesia (SIBI) yang sama dengan bahasa isyarat America (ASL - American
Sign Language). Pada gambar 2.1 dapat dilihat sketsa contoh gerakan dasar bahasa
isyarat ASL.
7
Gambar 2.1 Sketsa contoh gerakan bahasa isyarat
1.2 Computer Vision
Computer Vision didefinisikan sebagai salah satu cabang ilmu pengetahuan yang
mempelajari bagaimana komputer dapat mengenali objek yang diamati atau diobservasi.
Gambar yang diperoleh dapat diperoleh dari beberapa sumber seperti video, scanner,
atau digital image (Zhu, 2008).
Secara umum bidang didalam computer vision dapat dibagi menjadi:
1. Recognition
Merupakan permasalah mendasar dari computer vision yaitu mengenali apakah
didalam sebuah image terdapat objek-objek dan aktivitas-aktivitas tertentu. bagi
komputer pemasalah ini merupakan hal yang tidak mudah bentuk mengenali
secara langsung untuk mengenali suatu objek dan aktivitas tertentu.
8
2. Motion Tracking
Berkaitan dengan gerakan yang akan diamati yang mana image diolah merupakan
urutan dari sebuah kegiatan tertentu atau pergerakan dari sebuah objek yang telah
dikenali. dalam tahap ini, objek tersebut tentunya telah di kenali terlebih dahulu.
Sehingga objek yang diamati pergerakannya berfokus pada objek itu sendiri.
contohnya pergerakan mobil, pergerakan manusia.
3. Scene Recontruction
Pada Bagian ini, berkaitan dengan mengatur urutan dari image menjadi sebuah
grafik video setelah diketahui tindakan apa yang dilakukan oleh masing-masing
gambar. Merupakan proses kelanjutan dari bagian motion tracking. Banyak
digunakan pada permainan-permainan komputer yang dinamis untuk memperkecil
ukurang program sebagain respon dari pemain.
1.3 Metode Dynamic Time Warping
Metode dynamic time warping (DTW) pertama kali diperkenalkan pada tahun
1960-an oleh (R. Bellman, 1959), dan di eksplorasi secara luas pada tahun 1970-an
untuk aplikasi pengenalan suara oleh (C. Myers, 1980). Saat ini, metode dynamic time
warping sudah diterapkan dalam berbagai bidang, diantaranya: handwriting dan online
signature matching oleh (C. C. Tappert, 1990), computer vision dan computer animation
oleh (Muller, 2007), protein sequence alignment dan chemical engineering oleh (J. Vial,
2008), dan lain – lain (Senin, 2008, p. 3).
Menurut (Sakoe dan Chiba 1978), dynamic time warping (DTW) adalah metode
untuk menghitung kesamaan antara dua deret waktu (time series) yang mungkin berbeda
9
dalam waktu dan kecepatan (BlazStrle, 2003). Contohnya, dalam kasus mendeteksi
kesamaan pola gerakan berjalan, dimana data yang pertama menunjukan seseorang
berjalan secara perlahan-lahan dan data lainnya menunjukan seseorang tersebut berjalan
lebih cepat.
Misalkan terdapat dua deret waktu yaitu dan
, dalam bentuk grafik seperti pada gambar 2.2.
Gambar 2.2 Grafik perbandingan nilai X dan Y (Senin, 2008)
Pada gambar diatas, terdapat dua grafik yang menunjukan dua deret waktu. Dua
deret waktu tersebut memiliki pola yang sama, namun letak posisi yang berbeda. Hal
tersebut terjadi karena, adanya perbedaan selang waktu antara dan .
Permasalahannya adalah bagaimana mengindentifikasi kedua deret tersebut dapat
dianggap sama walaupun memiliki dua rentang waktu yang berbeda.
Dengan metode dynamic time waping, masalah diatas dapat dipecahkan. Konsep
dari dynamic time warping itu sendiri adalah membandingkan optimal path warping.
10
Dimana optimal path warping adalah jalur dengan cost terpendek dari selisih
perbandingan X dan Y.
(a) (b)
Gambar 2.3 Perbandingan X dan Y dengan kasus yang berbeda (a) input sama dengan reference (b) input tidak sama dengan reference
Pada gambar 2.3(a), input dan reference sama sehingga optimal path warping
berbentuk diagonal lurus berhimpitan dengan diagonal X=Y. Sedangkan pada gambar
2.3(b), input dan reference berbeda, sehingga terjadi beberapa warping pada optimal
path warpingnya. Dari perbandingan tersebut dapat dilihat bahwa untuk input dan
reference yang sama, cost optimal path warpingnya akan lebih kecil dari pada cost
optimal path warping yang memiliki input dan reference yang berbeda. Jika semakin
kecil selisih perbandingan optimal path warpingnya, maka dapat disimpulkan bahwa
pada gambar 2.3(b), input dan referencenya juga akan mirip. Dalam mencari optimal
path warping itu sendiri, dibutuhkan kriteria-kriteria tertentu. Berikut algoritma dan
kriteria yang diuraikan oleh (Senin, 2008) untuk menghitung optimal path warping:
1. Menentukan matriks cost
11
Metode ini, diawali dengan menentukan matriks cost yang memiliki dimensi
c . Matriks cost adalah matriks yang merepresentasikan selisih dari
Himpunan X dan Y. Masing-masing elemen matriks dapat dihitung dengan persamaan
berikut :
Dimana : (1)
Nilai dari cost setiap matriksnya, digunakan untuk mencari jalur dengan cost terendah
dari kolom pertama sampai kolom terakhir.
2. Menentukan optimal warping path
Setelah matriks cost terbentuk, algoritma ini akan mencari jalur warping dengan
cost terendah dengan dan
seperti pada gambar 2.4.
12
Gambar 2.4 Optimal path warping dari dua deret waktu X dan Y (Senin, 2008)
Dengan Jalur warping yang akan dicari harus memenuhi kriteria-kriteria sebagai
berikut:
a. Boundary condition: dan . Awal dan akhir jalur harus
merupakan titik awal dan titik akhir dari deret waktu. (2)
b. Monotonicity condition: dan . kondisi
ini akan mempertahankan deret urutan waktu. (3)
c. Step size condition: membatasi pergeseraan path/jalur yang terlalu jauh. (4)
3. Menentukan matriks DTW
Berdasarkan definisi dari optimal warping path dalam pencarian jalur dengan
matriks cost, diperlukan pengujian ke setiap jalur antara dan . Hal ini tentu saja tidak
13
efisien, karena kemungkinan jalur yang berpotensi untuk dilewati juga akan semakin
banyak seiring dengan panjang deret waktu dan .
Untuk mangatasi masalah diatas, digunakan dynamic programming sebagai
optimasi pencarian jalur dengan cepat. Menurut (Levitin, 2006) dynamic programming
adalah sebuah teknik untuk menyelesaikan masalah dengan cara membagi masalah
dalam beberapa sub masalah (stage) sehingga solusi dari masalah dapat dipandang dari
sekerangkaian keputusan yang saling berkaitan.
Dalam kasus ini dilakukan perhitungan untuk total cost setiap pencarian jalur
yang mungkin dilewati (stage). Semua jalur yang telah dilewati diakumulasi terlebih
dahulu. Matriks akumulasi yang akan digunakan didefinisikan sebagai berikut:
Dimana perhitungan akumulasi untuk matriks DTW adalah sebagai berikut:
a. Baris pertama:
b. Kolom pertama:
c. Semua elemen matriks:
4. Menentukan cost optimal warping path
Setelah menghitung matriks DTW, maka untuk menentukan total dari cost jarak
yang melewati jalur warping dapat menggunakan persamaan berikut:
(6)
14
Dengan cost dari optimal warping path adalah cost akumulasi minimum pada kolom
terakhir.
Menurut (Senin, 2008) perlu dilakukan modifikasi algoritma dynamic time
warping untuk meningkatkan kualitas kinerja dan penyesuaian sensitivitas algoritma
dasar metode dari dynamic time warping. Modifikasi tersebut salah satunya adalah step
size conditions. Contoh keselarasan yang optimal antara deret waktu dapat dilihat pada
gambar 2.5.
Gambar 2.5 Keselarasan yang optimal antara deret waktu (Senin, 2008)
1.3.1 Modifikasi : Step Function (Slope Constraint)
Ketika tidak adanya perbedaan deret waktu, maka jalur warping yang terbentuk
akan berhimpitan dengan garis diagonal . Tetapi ketika perbedaan deret waktu
semakin membesar, maka penyimpangan jalur warping juga akan semakin besar. Dalam
pencarian jalur yang optimal, terkadang jalur tersebut cenderung membuat jalur
korespondensi yang tidak realistis antara deret waktu. Hal ini berdasarkan adanya deret
waktu yang pendek pada deret waktu yang pertama dan deret waktu yang panjang pada
15
deret waktu yang kedua untuk pola yang sama. Fenomena pergeseran dapat dilihat pada
gambar 2.6.
Gambar 2.6 Graph pergeseraan deret waktu (Senin, 2008)
Pada gambar 2.6, deret waktu yang berwarna merah bergeser kearah kanan untuk
mencocokan deret waktu yang berwarna biru. Untuk mencegah fenomena diatas, jalur
warping harus memiliki batasan untuk setiap langkahnya. Batasan ini
diimplementasikan dalam hubungan relasi antara titik jalur secara berturut-turut.
Misalkan pada gambar 2.7 ketika jalur warping bergerak kearah yang sama (horizontal)
,maka jalur berikutnya tidak boleh bergerak kearah yang sama lagi.
16
Gambar 2.7 Batasan step function
1.4 Sensor Kinect
Kinect adalah produk dari Microsoft yang awalnya dibuat khusus untuk
pekerangkat game Xbox 360, dimana memperkenalkan teknologi motion gaming
sebagai fitur utamanya. Motion gaming maksudnya adalah membuat pemain dapat
berinteraksi ketika bermain game tanpa menggunakan game controller. Sehingga
melalui kinect, pemain dapat bermain game cukup hanya dengan menggunakan gerakan
tangan atau gerakan tubuh lainnya (Metcalf, 2009).
Fitur-fitur yang ada pada teknologi sensor kinect meliputi kamera RGB, depth
sensor, motorized tilt, dan multi-array microphone. Dari keempat fitur yang dimiliki
sensor kinect, depth sensor lah yang berperan penting dalam sistem motion gaming
tersebut. Depth sensor bertujuan untuk mendapatkan data video dalam kondisi tiga
dimensi didalam kondisi ambient light (menyesuaikan sumber cahaya yang ada
dilingkungan tersebut). Pada gambar 2.8 dapat dilihat bentuk dari pekerangkat keras
kinect.
17
Gambar 2.8 Pekerangkat keras sensor kinect
Depth sensor terdiri atas kombinasi dari infrared laser projector dan monochrome
CMOS sensor (Mathe, 2011). Infrared laser projector berfungsi dalam mentransmisikan
cahaya invisible near - infrared ke seluruh bagian ruangan yang terjangkau oleh sensor
kinect seperti pada gambar 2.9.
Gambar 2.9 Cara kerja depth sensor pada pekerangkat sensor kinect (Mathe, 2011)
Cahaya near - infrared tidak dapat dilihat secara kesat mata dan menggunakan
laser kelas 1 yang aman untuk tubuh manusia (Klug, 2010). Cahaya near - infrared
tersebut hanya dapat dilihat dengan menggunakan kamera night vision seperti gambar
2.10.
18
Gambar 2.10 Hasil proyeksi dari infrared laser projector
Sedangkan fungsi dari monochrome CMOS sensor adalah mengukur waktu
penerbangan cahaya setelah terpantul oleh objek didepannya. Sistem ini bekerja
layaknya sebuah sonar, bila diketahui berapa lama waktu yang dibutuhkan untuk cahaya
tersebut kembali, maka dapat diketahui jarak suatu objek dari sensor (Carmody, 2010).
Hal ini dapat dilihat seperti gambar 2.11.
Gambar 2.11 Cara kerja sensor kinect (Carmody, 2010)
19
1.5 Kinect Software Development Kit (SDK)
Kinect untuk Windows Software Development Kit (SDK) dari Microsoft Research
adalah starter kit untuk pengembang aplikasi dengan mengunakan sensor kinect.
Diharapkan dengan SDK ini, kinect dapat digunakan pada bidang pendidikan, robotika,
atau hal lainnya di luar XBox. Library dan dokumentasi tentang dari kinect SDK
tersedia pada website http://www.microsoft.com/en-us/kinectforwindows/. Dalam
perancangan program juga dibutuhkan toolkit tambahan untuk membangun visualisasi
kerangka digital. toolkit tersebut tersedia pada website http://c4fkinect.codeplex.com/.
Kinect untuk Windows SDK dilengkapi driver untuk aliran sensor dan pelacakan
gerak manusia. Kinect SDK ini, di rilis oleh Microsoft untuk pengembangan teknologi
dengan aplikasi C + +, C #, atau Visual Basic dengan menggunakan Microsoft Visual
Studio 2010.
Fitur-fitur kinect SDK yang digunakan pada penulisan ini adalah:
1. Raw Sensor Streams
Akses ke stream data mentah dari sensor kedalaman (depth sensor), sensor
kamera, dan empat-elemen array mikrofon.
2. Skeletal Tracking
Kemampuan untuk melacak gambar kerangka satu atau dua orang yang bergerak
dalam bidang pandang sensor kinect, Sehingga mempermudah dalam membuat
program berbasis gerakan.
1.5.1 Skeletal Tracking
Sketal tracking merupakan fitur yang diberikan oleh kinect SDK, dimana dengan
fitur ini memungkinkan sensor kinect dapat melacak titik sendi utama tubuh manusia.
20
Teknologi dibalik skeletal tracking ini sendiri adalah penggunaan depth sensor. Depth
sensor awalnya akan memetakan objek yang ditangkapnya berdasarkan jarak seperti
gambar 2.12. Gambar tersebut akan dibandingkan dengan data hasil training
sebelumnya. Data training tersebut dibuat oleh para peneliti dengan mengunakan
100.000 frame gambar objek manusia yang diambil dengan posisi yang berbeda – beda
(Aron, 2011).
Gambar 2.12 Pemetaan objek dengan depth sensor
Setelah menemukan titik sendi manusia, maka sendi tersebut dapat dihubungkan
sehingga membentuk kerangka digital. pada gambar 2.13 dapat dilihat titik kerangka
yang dapat di lacak oleh sensor kinect dengan kinect SDK.
21
Gambar 2.13 Titik sendi manusia yang dapat dideteksi sensor kinect (Mathe,2011)
1.6 AForge.NET
AForge.NET merupakan library yang digunakan dalam bidang Computer Vision
dan Artificial Intelegent. Framework .NET yang Dikembang oleh Andrew Kirillov ini,
digunakan dalam bahasa pemrograman C# dan C++. Library dan dokumentasi tentang
dari Aforge.NET tersedia pada website www.aforge.net.
Pada penulisan ini, fitur-fitur yang digunakan adalah fitur AVIWriter. Dimana
fitur ini memungkinkan membuat file video berformat avi dengan beberapa deret frame
gambar.
1.7 Software Develoment Life Circle (SDLC)
Software Develoment Life Circle (SDLC) merupakan siklus pengembangan
aplikasi yang meliputi prosedur dan langkah-langkah yang membimbing suatu proyek
secara teknis dari awal sampai akhir. Secara garis besar tahapan dibagi menjadi empat
kegiatan utama, yaitu analisis, desain, impelemtasi, dan perawatan. Software yang
dikembangkan berdasarkan SDLC akan menghasilkan sistem dengan kualitas yang
22
tinggi, memenuhi harapan penggunanya, tepat dalam waktu dan biaya, bekerja dengan
efektif dan efisien dalam infrastruktur teknologi informasi yang ada atau yang
direncanakan, serta murah dalam perawatan dan pengembangan lebih lanjut (Pressman,
2005).
SDLC memiliki banyak bentuk model, salah satu yang terkenal dan sering
dipakai adalah model waterfall. Model waterfall diagram prosesnya mirip dengan air
terjun yang bertingkat dapat dilihat pada gambar 2.14 yang meliputi tahapan - tahapan
sebagai berikut :
1. Perancangan Sistem (Sistem Engineering)
Perancangan sistem diperlukan untuk bagian dari suatu sistem yang lebih besar
nantinya Pembuatan sebuah piranti lunak dapat dimulai dengan melihat dan
mencari apa yang dibutuhkan oleh sistem. Dari kebutuhan sistem tersebut akan
diterapkan kedalam piranti lunak yang dibuat.
2. Analisa Kebutuhan Piranti Lunak (Software Requirement Analysis)
Merupakan proses pengumpulan kebutuhan piranti lunak. Untuk memahami dasar
dari program yang akan dibuat, seorang analisis harus mengetahui ruang lingkup
informasi, fungsi-fungsi yang dibutuhkan, kemampuan kinerja yang ingin
dihasilkan dan perancangan antarmuka pemakai piranti lunak tersebut.
3. Perancangan (Design)
Perancangan piranti lunak terbagi atas 4 tahapan penting, yaitu: Struktur data,
arsitektur piranti lunak, detil prosedur, dan karakteristik user interface.
23
4. Pengkodean (Coding)
Pengkodean piranti lunak merupakan proses penulisan kedalam bahasa
pemograman agar piranti lunak tersebut dapat digunakan oleh mesin.
5. Pengujian (Testing)
Proses ini akan menguji kode program yang telah dibuat dengan memfokuskan
pada bagian dalam piranti lunak. Tujuannya untuk memastikan bahwa semua
pernyataan telah diuji dan memastikan juga bahwa input yang digunakan akan
menghasilkan output yang sesuai. Pada tahap ini pengujian ini dibagi menjadi dua
bagian, pengujian internal dan pengujian eksternal. Pengujian internal bertujuan
menggambarkan bahwa semua statement sudah dilakukan pengujian, sedangkan
pengujian eksternal bertujuan untuk menemukan kesalahan serta memastikan
output yang dihasilkan sesuai dengan yang diharapkan.
6. Pemeliharaan (Maintenance)
Proses ini dilakukan setelah piranti lunak telah digunakan oleh user. Suatu
Perubahan akan dilakukan jika terdapat kesalahan dan penyesuaian akan
perubahan kebutuhan yang diinginkan user.
Gambar 2.14 Model waterfall (Pressman, 2005)