BAB V IMPLEMENTASI DAN PENGUJIAN Bab ini membahas tentang implementasi dan pengujian dari sistem yang dikembangkan berdasarkan hasil perancangan yang didapat pada BAB IV.
V.1
Implementasi
V.1.1 Spesifikasi Lingkungan Implementasi Pembahasan spesifikasi lingkungan implementasi dalam pengembangan sistem pengenalan orientasi kepala untuk keperluan interaksi lingkungan virtual mencakup perangkat keras dan perangkat lunak yang digunakan. Spesifikasi perangkat keras dapat dilihat pada Tabel V.1-1, sedangkan spesifikasi perangkat lunak dan kakas pengembangan yang digunakan dapat dilihat pada Tabel V.1-2.
Tabel V.1-1 Spesifikasi Perangkat Keras Nama Perangkat
Deskripsi
Komputer
Notebook Dell Inspiron 6400
Prosesor
Intel Core 2 Duo T7200 @ 2.00 GHz
Kartu Grafis
NVIDIA GeForce Go 7300 384MB
Memori
1024MB
Perangkat Lain
Logitech Quickcam Messenger V-UM14, 352x288 pixel @ 24fps Tabel V.1-2 Spesifikasi Perangkat Lunak
Nama Perangkat
Deskripsi
Sistem Operasi
Windows Vista
Bahasa Pemrograman
C++
Mesin Kompilasi
Microsoft 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Kakas Pengembangan
Microsoft Visual Studio 2005 SP1
Library Grafis
Ogre3D 1.4.4 – http://www.ogre3d.org/
Library Pemrosesan Citra
OpenCV 1.0 – http://www.intel.com/technology/computing/opencv/
Library Jaringan Saraf Tiruan
FANN 2.1.0 – http://leenissen.dk/fann/
V-1
V.1.2 Batasan Implementasi Batasan yang digunakan untuk implementasi sistem pengenalan isyarat kepala untuk keperluan interaksi navigasi lingkungan virtual ini seluruhnya merupakan dampak dari keterbatasan perangkat keras sensor video yang digunakan. Batasanbatasan tersebut adalah sebagai berikut: 1. Pengguna sistem tidak mengenakan pakaian dengan warna menyerupai warna kulit seperti krem atau coklat. Hal ini dikarenakan sistem dapat mengenali pakaian tersebut sebagai warna kulit dan melakukan kesalahan dalam pengenalan citra area wajah dari citra keseluruhan. Contoh kesalahan ini dapat dilihat pada Gambar III-14. 2. Untuk pengguna sistem yang memiliki rambut panjang berwarna pirang atau coklat, disarankan untuk mengikat rambutnya agar tidak menganggu proses pengenalan citra area wajah dari citra keseluruhan karena rambut tersebut berpotensi untuk dideteksi sebagai bagian dari citra yang berwarna kulit. Gambar III-13 menunjukkan contoh kesalahan yang diakibatkan batasan ini. 3. Pencahayaan lingkungan pengguna merata. Contoh pencahayaan tidak merata adalah pencahayaan dari arah kiri atau kanan yang menyebabkan munculnya bayangan pada wajah yang dapat menganggu proses pengenalan orientasi kepala oleh jaringan saraf tiruan. Gambar V-1 mengilustrasikan pencahayaan seperti ini.
Gambar V-1 Contoh Pencahayaan dari Samping
V-2
Contoh lain yang dapat dilihat pada Gambar V-2 adalah pencahayaan terlalu kuat dari arah belakang seperti yang terjadi ketika latar belakang pengguna berupa jendela atau lampu.
Gambar V-2 Contoh Pencahayaan dari Belakang yang Terlalu Kuat
4. Pencahayaan lingkungan pengguna konstan dan tidak berubah-ubah. Pencahayaan yang tidak konstan mengakibatkan kamera yang digunakan sulit beradaptasi dengan perubahan kondisi pencahayaan tersebut. Hal ini berpotensi untuk menganggu proses pengenalan warna kulit karena proses adaptasi otomatis terhadap pencahayaan yang berubah-ubah dapat menyebabkan warna yang dihasilkan oleh webcam menjadi tidak natural. Contoh pencahayaan yang berubah-ubah dapat dilihat pada Gambar V-3.
Gambar V-3 Contoh Pencahayaan Tidak Konstan
5. Posisi wajah dalam citra yang ditangkap oleh kamera setidaknya mencakup ujung rambut sampai dengan di bawah dagu pengguna. Untuk kebanyakan orang, hal ini berarti kamera harus berjarak setidaknya 90 cm dari wajah subjek. 6. Hanya ada satu wajah manusia dalam citra hasil tangkapan sensor video. Citra wajah lebih dari satu membingungkan sistem dalam memilih wajah mana yang dikenali orientasinya. Umumnya sistem memilih wajah yang
V-3
terdekat dengan kamera atau dengan ukuran paling besar, namun hal ini bisa jadi merupakan perilaku yang tidak diinginkan oleh pengguna. 7. Karena data pelatihan dalam Pointing’04 Head Pose Image Database yang digunakan untuk melatih sistem sangat terbatas, maka sistem belum dapat mengakomodasi pengguna yang menggunakan jilbab atau topi. 8. Pose kepala pengguna tidak miring terlalu jauh ke arah kiri atau kanan. Pose yang demikian mengganggu pengenalan orientasi vertikal dan horisontal yang dilakukan oleh sistem. Gambar V-4 menunjukkan contoh pose kepala yang terlalu miring ke arah kanan dari pengguna.
Gambar V-4 Contoh Pose Miring Kepala Pengguna
V.1.3 Implementasi Kelas Implementasi kelas mengambil referensi dari Tabel IV.2-6 Daftar Kelas dalam Rancangan Terintegrasi. Daftar seluruh kelas yang diimplementasikan berserta nama berkas untuk kelas masing-masing dapat dilihat pada Tabel V.1-3. Tabel V.1-3 Daftar Implementasi Kelas Nama Kelas
Nama Berkas
RecognitionFactory RecognitionTechnique NeuralNetBasicTechnique
RecognitionTechnique.cpp dan RecognitionTechnique.h
NeuralNetEdgeTechnique GestureApplication
GestureApplication.cpp dan GestureApplication.h
GestureData
GestureData.cpp dan GestureData.h
GestureInterpreter
GestureInterpreter.cpp dan GestureInterpreter.h
GUIManager
GUIManager.cpp dan GUIManager.h
V-4
Sedangkan library tambahan yang digunakan untuk membangun sistem pengenalan ini adalah sebagai berikut:
Tabel V.1-4 Daftar Library Tambahan Nama Library
Static Library
Runtime Library
Ogre3D
OgreMain.lib
OgreMain.dll
CEGUIBase.lib
CEGUIBase.dll
OgreGUIRenderer.lib
OgreGUIRenderer.dll RenderSystem_Direct3D9.dll RenderSystem_GL.dll
OIS.lib
OIS.dll
Plugin_Webcam.lib
Plugin_Webcam.dll
cv.lib
cv100.dll
cvaux.lib
cvaux100.dll
cvcam.lib
cvcam100.dll
cxcore.lib
cxcore100.dll
cxts.lib
cxts001.dll
highgui.lib
highgui100.dll
ml.lib
ml100.dll
OpenCV
cvhaartraining.lib FANN
fannfloatMT.lib
fannfloatMT.dll
V.1.4 Implementasi Teknik Pengenalan Orientasi Kepala Terdapat dua kelas tambahan dalam Tabel V.1-3 jika dibandingkan dengan Tabel IV.2-6. Kedua kelas tersebut adalah kelas NeuralNetBasicTechnique dan kelas NeuralNetEdgeTechnique,
yang masing-masing merupakan implementasi dari
dua teknik pengenalan terpisah yang disediakan oleh sistem. Pengguna dapat memilih teknik pengenalan mana yang hendak digunakan secara runtime ketika sistem sedang berjalan. Algoritma V-1 menjelaskan alur program yang dieksekusi saat sistem meminta hasil pengenalan kepada teknik pengenalan yang sedang digunakan saat itu. Kelas GestureApplication merupakan kelas utama dari seluruh aplikasi, dan fungsi newFrame(Webcam *webcam) menerima citra terbaru hasil tangkapan dari webcam. Fungsi tersebut lalu meminta teknik pengenalan
V-5
yang sedang digunakan saat itu pada kelas GestureInterpreter. Kemudian citra webcam
diteruskan
pada
teknik
pengenalan
yang
RecognitionTechnique::RecognizeImage(webcam).
melalui
Fungsi
ini
fungsi
kemudian
mengembalikan data navigasi yang dibungkus dalam kelas GestureData. Data navigasi
tersebut
menggerakan
lalu
digunakan
pandangan
pada
oleh
kelas
lingkungan
GestureApplication
untuk
virtual
fungsi
dengan
GestureApplication::ExecuteMovement(gestureData).
GestureApplication::newFrame(Webcam * webcam) { RecognitionTechnique * recognitionTechnique; recognitionTechnique = GestureInterpreter::GetSelectedTechnique(); GestureData * gestureData = recognitionTechnique->RecognizeImage(webcam); ExecuteMovement(gestureData); }
Algoritma V-1 Alur Eksekusi Pengenalan dalam Sistem
Terdapat dua macam kelas implementasi teknik pengenalan yang disediakan oleh sistem, yaitu NeuralNetBasicTechnique
dan
NeuralNetEdgeTechnique.
Perbedaan antara kedua teknik implementasi tersebut adalah pada citra masukan ke dalam jaringan saraf tiruan serta arsitektur jaringan saraf tiruan yang digunakan. Teknik pengenalan NeuralNetBasicTechnique menggunakan citra masukan berupa satu citra wajah seperti yang terdapat pada Gambar V-5.
Gambar V-5 Contoh Masukan NeuralNetBasicTechnique
Nilai keluaran yang dihasilkan oleh NeuralNetBasicTechnique kemudian dipetakan menjadi salah satu diantara tiga target orientasi sesuai dengan aturan yang terdapat dalam Tabel V.1-5.
V-6
Tabel V.1-5 Interpretasi Orientasi Kepala dari Nilai Keluaran NeuralNetBasicTechnique Interpretasi Orientasi
Batas Nilai Keluaran Terkecil
Batas Nilai Keluaran Terbesar
Horisontal Kiri
0.0
< 0.25
Horisontal Tengah
0.25
0.75
Horisontal Kanan
> 0.75
1.0
Vertikal Bawah
0.0
< 0.33
Vertikal Tengah
0.33
0.66
> 0.66
1.0
Vertikal Atas
Sedangkan untuk teknik pengenalan NeuralNetEdgeTechnique, terdapat pemrosesan citra masukan lebih lanjut dengan cara melakukan operasi pendeteksian sisi dengan menggunakan algoritma sobel. Terdapat dua macam pendeteksian sisi yang dilakukan, yaitu pendeteksian sisi horisontal dan sisi vertikal, dan operasi ini menghasilkan dua citra tambahan yang dijadikan masukan jaringan saraf tiruan seperti pada Gambar V-6.
Gambar V-6 Contoh Masukan NeuralNetEdgeTechnique
Nilai keluaran yang dihasilkan oleh NeuralNetEdgeTechnique kemudian dipetakan menjadi salah satu diantara tiga target orientasi sesuai dengan aturan yang terdapat dalam Tabel V.1-6.
V-7
Tabel V.1-6 Interpretasi Orientasi Kepala dari Nilai Keluaran NeuralNetEdgeTechnique Interpretasi Orientasi
Batas Nilai Keluaran Terkecil
Batas Nilai Keluaran Terbesar
Horisontal Kiri
0.0
< 0.25
Horisontal Tengah
0.25
0.67
Horisontal Kanan
> 0.67
1.0
Vertikal Bawah
0.0
< 0.41
Vertikal Tengah
0.41
0.75
> 0.75
1.0
Vertikal Atas
Perbedaan arsitektur jaringan saraf tiruan untuk kedua teknik implementasi dapat dilihat pada Tabel V.1-7. Perbedaan tersebut dikarenakan jumlah pixel masukan untuk teknik pengenalan NeuralNetEdgeTechnique lebih banyak. Selain itu, untuk membatasi ukuran jaringan saraf tiruan yang dihasilkan, citra masukan pada NeuralNetEdgeTechnique
memiliki ukuran lebih kecil. Referensi dari [STI04]
menyatakan bahwa citra masukan sebesar 20 x 30 pixel sudah memadai untuk melakukan pengenalan dengan baik. Sebagai perbandingan, ukuran citra masukan bagi NeuralNetBasicTechnique adalah sebesar 30 x 32 pixel. Karena NeuralNetEdgeTechnique
menggunakan tiga citra masukan, maka jumlah node
masukan pada jaringan saraf tiruan yang digunakan teknik tersebut adalah sebanyak 20 x 30 x 3 node, atau sebanyak 1800 node. Tabel V.1-7 Perbedaan Arsitektur Jaringan Saraf Tiruan Antara Teknik Implementasi Teknik Implementasi
Node Masukan
NeuralNetBasicTechnique
960
NeuralNetEdgeTechnique
1800
Node Tersembunyi 9 sampai dengan 13
Node Keluaran 1
V.1.5 Implementasi Antar Muka Implementasi dilakukan dengan menggunakan rancangan yang terdapat pada subbab IV.2.2. Empat panel yang tersedia digunakan untuk menampilkan citra dari webcam, citra wajah dengan ukuran kecil, citra dalam spectrum YCrCb dengan bagian putih menunjukkan warna kulit, serta citra wajah berwarna dengan area wajah yang terdeteksi ditandai dengan kotak merah. Urutan panel tersebut dapat dilihat pada Gambar V-7.
V-8
Gambar V-7 Urutan Panel Citra yang Diimplementasikan
Gambar V-8 menunjukkan tampilan sistem ketika melakukan pengenalan orientasi wajah ke arah kanan. Dapat dilihat pada pojok kiri bawah di bagian yang ditandai kotak merah, jaringan saraf tiruan mengenali orientasi kepala tersebut sebagai orientasi ke arah kanan dengan nilai keluaran jaringan saraf tiruan horisontal sebesar 0.012.
Gambar V-8 Tampilan Sistem dalam Pengenalan Orientasi Arah Kanan
Gambar V-9 menunjukkan tampilan sistem ketika melakukan pengenalan orientasi wajah ke arah kanan. Jaringan saraf tiruan mengenali orientasi kepala tersebut sebagai orientasi ke arah kiri dengan nilai keluaran jaringan saraf tiruan horisontal sebesar 0.955.
V-9
Gambar V-9 Tampilan Sistem dalam Pengenalan Orientasi Arah Kiri
Gambar V-10 menunjukkan tampilan sistem ketika melakukan pengenalan orientasi wajah ke arah atas. Jaringan saraf tiruan mengenali orientasi kepala tersebut sebagai orientasi ke arah atas dengan nilai keluaran jaringan saraf tiruan vertikal sebesar 0.791.
Gambar V-10 Tampilan Sistem dalam Pengenalan Orientasi Arah Atas
Gambar V-11 menunjukkan tampilan sistem ketika melakukan pengenalan orientasi wajah ke arah bawah. Jaringan saraf tiruan mengenali orientasi kepala tersebut sebagai orientasi ke arah bawah dengan nilai keluaran jaringan saraf tiruan vertikal sebesar 0.269.
V-10
Gambar V-11 Tampilan Sistem dalam Pengenalan Orientasi Arah Bawah
V.1.6 Implementasi Navigasi dalam Lingkungan Virtual Perintah-perintah untuk pergerakan navigasi yang diinterpretasikan oleh sistem ditranslasikan sebagai perubahan posisi dan orientasi kamera dalam lingkungan virtual. Tabel V.1-8 menunjukkan implementasi perubahan posisi dan orientasi untuk setiap perintah navigasi yang diterima. Tabel V.1-8 Perubahan Posisi dan Orientasi Terhadap Perintah Navigasi Orientasi Kepala
Perintah Navigasi
Perubahan Posisi atau Orientasi
Kiri
Rotasi ke kiri
Orientasi sumbu X berkurang 0.06 radian / detik
Kanan
Rotasi ke kanan
Orientasi sumbu X bertambah 0.06 radian / detik
Atas
Gerak ke belakang
Kamera bergerak ke sumbu Z kamera sebanyak +8 unit / detik
Bawah
Gerak ke depan
Kamera bergerak ke sumbu Z kamera sebanyak -8 unit / detik
V.2
Pengujian
V.2.1 Tujuan Pengujian Pengujian terhadap sistem yang dikembangkan memiliki dua tujuan terpisah. Tujuan yang pertama adalah untuk melihat tingkat akurasi dari pengenalan orientasi kepala yang dibangun. Pengujian untuk tingkat akurasi terdiri dari dua pengujian, yaitu untuk mengetahui tingkat akurasi pengenalan wajah sebagai pemrosesan awal dari sistem, serta untuk mengetahui tingkat akurasi pengenalan orientasi kepala.
V-11
Hasil pengujian tingkat akurasi pengenalan orientasi kepala ini dapat dibandingkan dengan sistem pengenalan orientasi kepala lain yang dijadikan sebagai referensi pengembangan. Dalam hal ini, sistem pengenalan orientasi kepala dibandingkan dengan yang terdapat pada [STI04]. Pemilihan kasus perbandingan dikarenakan paper tersebut menggunakan data pelatihan dan pengujian yang sama dengan yang digunakan pada sistem yang sedang dibangun, sehingga lebih mudah membandingkan tingkat akurasi kedua sistem.
Sedangkan tujuan yang kedua adalah mengecek fungsionalitas dari sistem yang dikembangkan dengan berpanduan pada daftar fungsionalitas yang terdapat pada Tabel IV.3-1. Fungsionalitas utama dari sistem yang hendak diuji adalah fungsionalitas navigasi sistem.
V.2.2 Lingkungan Pengujian Lingkungan yang digunakan untuk keperluan pengujian memiliki spesifikasi yang sama dengan lingkungan yang digunakan dalam pengembangan sistem. Spesifikasi tersebut dapat dilihat pada subbab V.1.1.
V.2.3 Data Pengujian Data pengujian terbagi menjadi dua jenis. Untuk pengujian fungsionalitas, data yang digunakan berasal dari sensor video yang dimiliki. Sedangkan untuk pengujian tingkat akurasi sistem, data yang digunakan berasal dari kumpulan citra dalam Pointing’04 Head Pose Image Database yang juga digunakan dalam [STI04]. Pembahasan mengenai basis data citra ini dapat dilihat pada subbab III.3.4.
Terdapat dua kumpulan citra yang digunakan dalam pengujian. Kumpulan citra yang pertama diuji dengan menggunakan kriteria data yang sama dengan data yang digunakan dalam pelatihan, yaitu kumpulan citra yang sudah dibersihkan
V-12
dari citra yang mengalami kesalahan proses pengenalan wajah. Kumpulan citra kedua tetap memasukkan citra-citra yang mengalami kesalahan pengenalan untuk melihat dampak akurasi proses pengenalan citra wajah ke akurasi proses pengenalan orientasi kepala.
V.2.4 Skenario dan Hasil Pengujian Fungsionalitas Untuk pengujian fungsionalitas, skenario pengujian adalah pengguna berusaha mengikuti sebuah jalan yang terdapat pada lingkungan virtual. Skenario ini bertujuan untuk menguji apakah pengguna dapat melakukan navigasi sesuai dengan keinginan. Gambar V-12 menunjukkan tampilan jalan yang digunakan dalam pengujian fungsionalitas.
Gambar V-12 Tampilan Jalan yang Digunakan dalam Pengujian Fungsionalitas
Panduan dari pengujian fungsionalitas ini adalah pada rancangan fungsionalitas yang terdapat dalam subbab IV.3. Kriteria pengujian fungsionalitas yang dihasilkan dengan menggunakan panduan dalam subbab tersebut dapat dilihat pada Tabel V.2-1.
V-13
Tabel V.2-1 Skenario Pengujian Fungsionalitas No.
Nama Fungsionalitas
Kriteria Sukses
1
Pengenalan dan isolasi wajah, sistem mampu mengenali dan mengisolasi citra area wajah pengguna dari citra keseluruhan.
- Citra hasil isolasi hanya menunjukkan citra wajah pengguna saja. - Batas kiri dan kanan dari citra wajah adalah pipi atau telinga pengguna - Batas atas dari wajah adalah bagian rambut paling atas - Batas bawah dari wajah mencapai bagian leher.
2
Pengenalan orientasi kepala ke arah atas.
Ketika pengguna mengarahkan kepalanya ke arah atas, sistem menggerakan pandangan dalam lingkungan virtual ke arah belakang.
3
Pengenalan orientasi kepala ke arah bawah.
Ketika pengguna mengarahkan kepalanya ke arah bawah, sistem menggerakan pandangan dalam lingkungan virtual ke arah depan.
4
Pengenalan orientasi kepala ke arah kanan.
Ketika pengguna mengarahkan kepalanya ke arah kanan, sistem menggerakan pandangan dalam lingkungan virtual ke arah kanan.
5
Pengenalan orientasi kepala ke arah kiri.
Ketika pengguna mengarahkan kepalanya ke arah kiri, sistem menggerakan pandangan dalam lingkungan virtual ke arah kiri.
6
Navigasi dalam lingkungan virtual
Pengguna dapat berjalan dari satu ujung jalan dalam lingkungan virtual ke ujung jalan lainnya dengan menggunakan fungsionalitas navigasi yang sudah diuji dalam poin sebelumnya
Pengujian fungsionalitas dilakukan terhadap pengguna dengan menggunakan batasan-batasan implementasi yang tercantum dalam subbab V.1.2. Masukan dari pengujian ini berasal dari sensor video atau webcam. Pengguna diminta untuk melakukan navigasi dari satu titik dalam dunia virtual menuju titik lain dengan jalan sebagai penanda jalur yang harus dilaluinya. Hasil dari pengujian fungsionalitas ini dapat dilihat pada Tabel V.2-2. Tabel V.2-2 Hasil Pengujian Fungsionalitas No.
Nama Fungsionalitas
Hasil Pengujian
1
Pengenalan dan isolasi wajah, sistem mampu mengenali dan mengisolasi citra area wajah pengguna dari citra keseluruhan.
Sukses
2
Pengenalan orientasi kepala ke arah atas.
Sukses
3
Pengenalan orientasi kepala ke arah bawah.
Sukses
4
Pengenalan orientasi kepala ke arah kanan.
Sukses
5
Pengenalan orientasi kepala ke arah kiri.
Sukses
6
Navigasi dalam lingkungan virtual
Sukses
V-14
V.2.5 Skenario dan Hasil Pengujian Akurasi Pengenalan Wajah Pengujian tingkat akurasi pengenalan wajah dilakukan dengan melihat hasil proses pengenalan wajah dari kumpulan citra dalam Pointing’04 Head Pose Image Database. Kriteria yang digunakan dalam menentukan apakah sebuah citra hasil proses pengenalan menghasilkan pengenalan wajah yang benar atau tidak mengikuti butir pertama kriteria fungsionalitas yang terdapat dalam Tabel V.2-1.
Proses pengenalan apakah sebuah citra hasil pengenalan wajah memenuhi kriteria tersebut atau tidak dilakukan secara manual terhadap 2.790 citra wajah yang terdapat dalam kumpulan citra yang digunakan. Hasil dari proses pengenalan ini menemukan 50 citra wajah yang dianggap mengalami kesalahan pengenalan. Angka kesalahan tersebut menghasilkan tingkat akurasi pengenalan wajah sebesar 98.2% dengan tingkat kesalahan sebesar 1,8%. Contoh citra yang mengalami kesalahan pengenalan wajah terdapat pada Gambar V-13.
Gambar V-13 Contoh Kesalahan dari Hasil Pengujian Pengenalan Wajah
V-15
Citra pertama dalam Gambar V-13 dinyatakan salah karena tidak memenuhi kriteria batas atas dimana dahi pengguna harus masuk ke dalam citra wajah yang dikenali. Citra kedua mengira area rambut sebagai area wajah. Citra ketiga tidak memenuhi kriteria batas kiri dan kanan dimana batas citra wajah yang dikenali hanya sampai bagian telinga saja. Dalam citra keempat, subjek yang melihat ke arah bawah menunjukkan citra wajah yang sangat kecil dan tidak berhasil dikenali oleh sistem. Dalam pengujian ini, sistem mengembalikan seluruh area citra masukan sebagai area wajah sebagai penanda kegagalan proses pendeteksian wajah. Analisis penyebab dari kesalahan-kesalahan ini sudah dibahas pada subbab III.4.3 mengenai Batasan Citra untuk Ekstraksi Wajah.
V.2.6 Skenario Pengujian Akurasi Pengenalan Orientasi Kepala Pengujian tingkat akurasi sistem menggunakan kumpulan citra yang terdapat di dalam Pointing’04 Head Pose Image Database. Pengujian dilakukan terhadap dua teknik implementasi yang didukung oleh sistem untuk melihat performansi teknik implementasi mana yang lebih baik. Selain itu, pengujian dilakukan dengan menggunakan dua kumpulan citra berbeda, yaitu kumpulan citra dengan kesalahan pengenalan wajah yang sudah dihilangkan dan kumpulan citra yang masih mengandung citra-citra yang mengalami kesalahan pengenalan wajah. Hal ini bertujuan untuk melihat dampak akurasi pengenalan wajah terhadap akurasi pengenalan orientasi kepala.
Kedua pengujian dilakukan dengan menggunakan kriteria penilaian pengujian yang membandingkan derajat orientasi citra masukan dengan derajat hasil interpretasi sistem. Dengan kriteria ini, sebuah sistem yang menginterpretasikan derajat orientasi horisontal sebesar -60o dari yang sebenarnya -75o dihitung sebagai kesalahan interpretasi. Kriteria ini serupa dengan yang digunakan pada [STI04] dan dapat digunakan untuk memperbandingkan tingkat akurasi antara kedua sistem.
V-16
Sistem pengenalan orientasi kepala yang digunakan dalam tugas akhir ini mengklasifikasikan derajat orientasi hasil interpretasi menjadi tiga kelompok orientasi: kelompok kiri, tengah, dan kanan untuk orientasi horisontal serta kelompok bawah, tengah, dan atas untuk orientasi vertikal. Hal ini menjadikan penentuan batas-batas antara kelompok sangat mempengaruhi akurasi sistem pengenalan. Misalnya, interpretasi sistem sebesar -60o dari nilai orientasi sebenarnya -75o tetap dihitung sebagai interpretasi yang benar karena kedua nilai tersebut masuk ke dalam kelompok “kiri”. Hal ini berbeda dengan kriteria yang digunakan sebelumnya dimana kedua hasil ini dianggap masuk ke dalam kelas yang berbeda dan merupakan kesalahan klasifikasi.
Namun, kesalahan interpretasi masih dapat terjadi jika misalnya sistem menghasilkan interpretasi sebesar 15o dari nilai sebenarnya sebesar 45o, dan kedua nilai tersebut dikelompokkan ke dalam kelompok yang berbeda. Dalam kasus ini, jika 15o dikelompokkan ke dalam kelompok “tengah” dan 45o ke dalam kelompok “kanan”, misalnya. Karena kriteria yang digunakan untuk pengelompokan sangat mempengaruhi akurasi sistem, maka pengujian dilakukan terhadap beberapa kriteria pengelompokan sekaligus untuk melihat kriteria mana yang menghasilkan tingkat akurasi tertinggi.
Tabel V.2-3 dan Tabel V.2-4 memuat beberapa alternatif kriteria penilaian yang dapat digunakan untuk menilai tingkat akurasi sistem, masing-masing untuk jaringan saraf tiruan tertentu, dimana alternatif A merupakan kriteria pengukuran tingkat akurasi yang membandingkan derajat hasil keluaran dan masukan tanpa menggunakan kriteria pengelompokan menjadi tiga kelompok besar.
Sebagai contoh, untuk alternatif B dalam pengenalan orientasi horisontal, batas antara derajat hasil interpretasi -60o dan -45o menyatakan bahwa batas sebuah derajat hasil interpretasi untuk masuk ke dalam kelompok “Kiri” adalah lebih kecil dari -52.5o dan lebih besar dari -90o.
V-17
Tabel V.2-3 Alternatif Kriteria Pengelompokan Nilai Pengenalan Orientasi Horisontal Derajat Alternatif Kriteria A B C D E
-90
-75
-60
-45
-30
-90
-75 -60 -45 Kiri Kiri Kiri Kiri
-30
-15
0
15
30
45
60
-15 0 15 Tengah Tengah Tengah Tengah
30
45
60
75
90
75 90 Kanan Kanan Kanan Kanan
Tabel V.2-4 Alternatif Kriteria Pengelompokan Nilai Pengenalan Orientasi Vertikal Derajat Alternatif Pendekatan A B C D
-90
-60
-30
-15
-90 -60 -30 Bawah Bawah Bawah
-15
0
15
30
0 15 Tengah Tengah Tengah
30
60
90
60 90 Atas Atas Atas
Untuk semua pengujian akurasi sistem pengenalan orientasi kepala, digunakan seluruh data citra wajah yang terdapat dalam Pointing’04 Head Pose Image Database sebagai data pengujian.
V.2.7 Hasil Pengujian Akurasi Pengenalan Orientasi Kepala Pengujian pertama adalah untuk membandingkan dua teknik implementasi yang digunakan dalam sistem dan melihat teknik implementasi mana yang memiliki tingkat akurasi yang lebih baik. Pengujian ini menggunakan kriteria penilaian A seperti yang terdapat pada Tabel V.2-3 dan Tabel V.2-4, yaitu kriteria penilaian tanpa adanya pengelompokan menjadi tiga kelompok besar. Perbandingan hasil pengujian baik untuk jaringan saraf tiruan horisontal maupun vertikal dapat dilihat dalam Tabel V.2-5. Untuk pengujian ini, digunakan data pelatihan yang sudah dibersihkan dari kesalahan pengenalan wajah.
Tabel V.2-5 Perbandingan Hasil Pengujian Akurasi antara Teknik Implementasi Arah Orientasi Jaringan Saraf Tiruan
NeuralNetBasicTechnique
NeuralNetEdgeTechnique
Horisontal
22,99%
47,59%
Vertikal
40,90%
54,70%
V-18
Dari tabel tersebut dapat dilihat bahwa teknik implementasi dengan menggunakan pengenalan sisi memiliki tingkat akurasi yang lebih baik dibandingkan dengan teknik implementasi yang hanya melakukan proses pengenalan dari citra grayscale yang ternormalisasi saja. Perbedaan tingkat akurasi ini menyebabkan teknik implementasi menggunakan pengenalan sisi digunakan sebagai teknik implementasi
utama
dalam
sistem
pengenalan
orientasi
kepala
yang
dikembangkan dalam tugas akhir ini. Pengujian-pengujian berikutnya dilakukan dengan menggunakan teknik implementasi ini.
Pengujian selanjutnya adalah untuk membandingkan tingkat akurasi antara sistem pengenalan orientasi yang dilatih dengan dua macam data masukan. Yang pertama adalah sistem pengenalan orientasi yang menggunakan keseluruhan citra wajah masukan, termasuk kumpulan citra wajah yang mengalami kesalahan pengenalan wajah. Sedangkan yang kedua adalah sistem pengenalan orientasi yang dilatih dengan data masukan yang sudah dibersihkan terlebih dahulu dari citra yang mengalami kesalahan pengenalan wajah. Tabel V.2-6 menunjukkan perbandingan tingkat akurasi dari kedua jenis jaringan saraf tiruan.
Tabel V.2-6 Perbandingan Hasil Pengujian Akurasi antara Data Masukan Bersih dan Tidak Arah Orientasi Jaringan Saraf Tiruan
Data Masukan yang Belum Dibersihkan
Data Masukan yang Sudah Dibersihkan
Horisontal
46,09%
47,59%
Vertikal
52,99%
54,70%
Dapat dilihat dari tabel tersebut bahwa jaringan saraf tiruan yang dilatih dengan menggunakan data masukan yang belum dibersihkan memiliki tingkat akurasi sedikit lebih rendah dibandingkan dengan tingkat akurasi jaringan saraf tiruan yang dilatih dengan data masukan yang sudah dibersihkan. Hal ini dikarenakan citra dengan kesalahan pengenalan wajah memberikan pelatihan yang salah terhadap jaringan saraf tiruan, namun karena tingkat kesalahan pengenalan wajah hanya sebesar 1,8% seperti yang tercantum pada subbab V.2.5, maka dampak kesalahan pengenalan wajah ke akurasi pengenalan orientasi kepala relatif kecil.
V-19
Pengujian berikutnya dilakukan untuk mengetahui kriteria pengelompokan mana yang memberikan tingkat akurasi tertinggi. Terdapat lima buah alternatif kriteria horisontal dan empat buah alternatif kriteria vertikal yang menjalani pengujian. Seluruh pengujian menggunakan teknik implementasi dengan pengenalan sisi serta data pelatihan yang sudah dibersihkan dari kesalahan pengenalan wajah. Confusion matrix yang dihasilkan dari seluruh alternatif kriteria pengelompokan dapat dilihat pada Lampiran A, sedangkan rekapitulasi hasil pengujian ini tercantum pada Tabel V.2-7.
Tabel V.2-7 Rekapitulasi Pengujian Alternatif Kriteria Pengenalan Orientasi Kepala Alternatif Kriteria A B C D E
Akurasi Horisontal
Akurasi Vertikal
47.59% 89.09% 91.46% 89.05% 89.42%
54,70% 84,16% 85,88% 82,76% -
Tabel tersebut menunjukkan bahwa penggunaan alternatif kriteria C untuk kedua jaringan saraf tiruan memberikan tingkat akurasi yang paling tinggi dibandingkan dengan alternatif-alternatif lainnya. Hal ini berarti kriteria batasan derajat yang digunakan dalam sistem ini menggunakan batasan yang tercantum dalam Tabel V.2-8 yang bersumber pada definisi kriteria C dalam Tabel V.2-3 dan Tabel V.2-4. Angka -52,5o sebagai batas kiri maksimal, misalnya, didapat dari titik tengah antara -60o dan -45o yang merupakan batas antara kelompok kiri dan tengah pada tabel yang mendefinisikan kriteria pengelompokan.
Tabel V.2-8 Kriteria Pengelompokan yang Digunakan dalam Sistem Kriteria Batasan Kelompok Batas Kiri Batas Tengah Batas Kanan Batas Bawah Batas Tengah Batas Atas
Derajat Minimal -90,0o Horisontal -52,5o Horisontal 37.5o Horisontal -90o Vertikal -22,5o Vertikal 45o Vertikal
V-20
Derajat Maksimal -52,5o Horisontal 37.5o Horisontal 90,0o Horisontal -22,5o Vertikal 45o Vertikal 90o Vertikal
Dalam kaitannya dengan penggunaan sistem pengenalan orientasi kepala, tabel ini berarti pengguna harus menolehkan kepalanya setidaknya sebesar 37,5o ke arah kanan agar sistem menginterpretasikan orientasi kepala tersebut sebagai perintah bergerak ke kanan. Demikian pula untuk arah-arah lainnya. Namun dalam praktiknya, derajat orientasi kepala yang terletak tepat di batas antara kedua kelompok tersebut rentan terhadap kesalahan klasifikasi, sehingga pengguna sebaiknya menolehkan kepalanya dengan derajat yang lebih besar agar kesalahan klasifikasi dapat ditekan.
Untuk keperluan analisis mengenai kesulitan sistem dalam melakukan klasifikasi, Tabel V.2-9 dan Tabel V.2-10 mencantumkan confusion matrix dari masingmasing jaringan saraf tiruan dengan menggunakan kriteria penilaian A. Kedua tabel ini diambil dari Tabel A-1 dan Tabel A-6 yang terdapat dalam Lampiran A.
Tabel V.2-9 Hasil Pengujian Pengenalan Orientasi Horisontal Kriteria A Target Klasifikasi JST
Hasil Klasifikasi JST
-90 -75 -60 -45 -30 -15 0 15 30 45 60 75 90
-90 125 57 21 1 0 1 1 0 0 0 0 0 0
-75 47 104 49 2 2 0 1 0 0 0 0 0 0
-60 7 25 136 20 16 0 1 0 0 0 0 0 0
-45 2 3 30 91 75 3 2 0 0 0 0 0 0
-30 0 0 4 38 119 41 3 0 2 0 0 0 0
-15 0 1 1 5 43 113 39 4 1 0 1 0 0
0 0 0 0 1 5 31 174 30 15 4 2 0 0
15 0 0 0 0 0 5 42 76 67 10 7 1 0
30 0 0 0 0 0 2 8 48 85 30 33 2 0
45 0 0 0 1 0 1 3 1 35 43 109 14 0
60 0 0 0 0 0 0 2 1 7 17 97 82 0
75 0 0 0 0 0 0 0 2 2 7 54 141 0
90 0 0 0 0 0 0 2 0 1 3 36 164 0
Dari tabel di atas, terdapat kecenderungan semakin ke kanan orientasi kepala semakin sulit pula jaringan saraf tiruan untuk melakukan klasifikasi dengan benar. Bahkan untuk derajat orientasi 90o, sistem sama sekali tidak berhasil melakukan klasifikasi dengan benar dan mengklasifikasikannya sebagai orientasi 75o. Hal ini tidak
terjadi
pada
orientasi
sebaliknya
ke
arah
kiri,
dimana
sistem
mengklasifikasikan dengan benar 125 citra dengan orientasi -90o dari seluruh citra orientasi -90o sebanyak 210 buah, atau dengan tingkat akurasi 59,5%.
V-21
Sedangkan untuk tabel Tabel V.2-10 di bawah, sistem relatif lebih baik melakukan pengenalan orientasi kepala ke arah atas dibandingkan dengan pengenalan ke arah depan atau bawah. Untuk derajat orientasi 15o sampai dengan 90o, sebagian besar citra pengujian yang diterima sistem berhasil diklasifikasikan dengan benar ke dalam derajat orientasi yang seharusnya. Namun, pada derajat orientasi 0o dan -60o, tingkat akurasi sistem relatif lebih kecil, dimana untuk derajat orientasi 0o lebih sering diklasifikasikan sebagai -15o dan untuk derajat orientasi -60o lebih sering diklasifikasikan sebagai -30o. Terdapat kecenderungan dari jaringan saraf tiruan untuk mengklasifikasikan orientasi kepala bawah dan tengah menjadi sekitar -30o.
Tabel V.2-10 Hasil Pengujian Pengenalan Orientasi Vertikal Kriteria A
Hasil Klasifikasi JST
V.2.8
-90 -60 -30 -15 0 15 30 60 90
-90 14 6 4 1 0 0 0 0 0
-60 19 138 196 23 0 0 0 0 0
-30 9 12 278 69 5 3 1 0 0
Target Klasifikasi JST -15 0 15 30 1 2 0 0 5 1 0 0 105 16 3 0 227 153 25 5 29 119 78 9 14 85 198 89 0 7 72 239 0 2 10 40 0 0 1 7
60 0 0 0 1 1 8 97 229 54
90 0 0 0 0 1 1 3 15 10
Perbandingan dengan Related Work
Sistem pengenalan orientasi kepala yang dibandingkan dengan tugas akhir ini adalah sistem yang terdapat pada [STI04]. Penjelasan mengenai pengujian yang dilakukan dalam [STI04] terdapat dalam subbab II.5. Hasil dari pengujian dalam [STI04] dicantumkan dalam bentuk confusion matrix dalam Tabel V.2-11 dan Tabel V.2-12. Salah satu perbedaan hasil pengujian dengan yang terdapat dalam tugas akhir ini adalah [STI04] tidak melakukan pengujian untuk orientasi kepala vertikal dengan derajat orientasi -15o dan 15o. Tabel V.2-11 Confusion Matrix untuk Klasifikasi Orientasi Kepala Vertikal [STI04] Target Klasifikasi JST
Hasil Klasifikasi JST
-90 -60 -30 0 30 60 90
-90 1 0 0 0 0 0 0
-60 2 24 5 1 0 0 0
-30 0 9 26 26 0 0 0
V-22
0 0 0 6 80 5 1 0
30 0 0 0 30 24 4 0
60 0 0 0 0 4 29 1
90 0 0 0 0 0 0 1
Tabel V.2-12 Confusion Matrix untuk Klasifikasi Orientasi Kepala Horisontal [STI04] Target Klasifikasi JST
Hasil Klasifikasi JST
-90 -75 -60 -45 -30 -15 0 15 30 45 60 75 90
-90 0 0 0 0 0 0 0 0 0 0 0 0 0
-75 1 0 1 0 0 0 0 0 0 0 0 0 0
-60 2 0 15 0 0 0 0 0 0 0 0 0 0
-45 0 0 9 0 9 2 0 0 0 0 0 0 0
-30 0 0 8 0 21 6 1 0 0 0 0 0 0
-15 0 0 0 0 4 24 11 1 1 0 0 0 0
0 0 0 0 0 3 12 23 7 0 0 1 0 0
15 0 0 0 0 0 1 15 23 6 0 0 0 0
30 0 0 0 0 0 0 0 11 18 0 2 0 0
45 0 0 0 0 0 0 0 0 8 0 7 0 0
60 0 0 0 0 0 0 0 0 0 0 21 0 1
75 0 0 0 0 0 0 0 0 0 0 3 0 1
90 0 0 0 0 0 0 0 0 0 0 0 0 0
Dalam confusion matrix tersebut, data pada diagonal tabel yang diberi latar abuabu merupakan hasil klasifikasi yang sesuai dengan target klasifikasi jaringan saraf tiruan. Tingkat akurasi dihitung dari perbandingan antara jumlah citra dalam data tersebut dengan jumlah citra yang terletak di luar diagonal tabel. Dari perhitungan tersebut, dihasilkan tingkat akurasi [STI04] yang perbandingannya dengan sistem yang dikembangkan dalam tugas akhir ini dapat dilihat pada Tabel V.2-13.
Tabel V.2-13 Perbandingan Akurasi Sistem dalam Tugas Akhir dengan [STI04] Jenis Pengenalan Horisontal Vertikal
Asal Sistem Tugas Akhir [STI04] Tugas Akhir [STI04]
Akurasi 52.9% 66.3% 54.7% 52.0%
Sistem yang dikembangkan dalam tugas akhir ini memiliki akurasi yang relatif lebih rendah dalam pengenalan orientasi kepala horisontal, namun relatif lebih tinggi dalam pengenalan orientasi kepala vertikal. Salah satu dugaan penyebab perbedaan akurasi ini adalah data pelatihan orientasi horisontal dalam [STI04] yang lebih banyak dikarenakan digunakannya proses pencerminan citra untuk melipatgandakan jumlah citra orientasi horisontal yang dapat digunakan oleh sistem.
V-23