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 . Matriks cost adalah matriks yang merepresentasikan selisih dari
c
Himpunan X dan Y. Masing-masing elemen matriks dapat dihitung dengan persamaan berikut :
(1)
Dimana :
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 seperti pada gambar 2.4.
dengan
dan
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. b.
Monotonicity condition:
dan
(2) . kondisi
ini akan mempertahankan deret urutan waktu.
(3)
c.
Step size condition: membatasi pergeseraan path/jalur yang terlalu jauh.
3.
Menentukan matriks DTW
(4)
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
4.
Menentukan cost optimal warping path
elemen
matriks:
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)