APLIKASI PENGENALAN WAJAH PADA MOBILE ROBOT
OMNIDIRECTIONAL MENGGUNAKAN METODE PRINCIPAL
COMPONENT ANALYSIS (PCA)
TUGAS AKHIR
Nama : Galang Putra Pradhana NIM : 08.41020.0086
Program : S1 (Strata Satu) Jurusan : Sistem Komputer
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER SURABAYA
i
ABSTRAK ... x
KATA PENGANTAR ... xii
DAFTAR ISI ... i
DAFTAR GAMBAR ... vii
DAFTAR TABEL ... ix
BAB I PENDAHULUAN ... 1
1.1. Latar Belakang Masalah ... 1
1.2. Perumusan Masalah ... 4
1.3. Pembatasan Masalah ... 4
1.4. Tujuan ... 5
1.5. Kontribusi ... 5
1.6. Sistematika Penulisan ... 6
BAB II LANDASAN TEORI ... 8
2.1. Omni-Directional Robot ... 8
2.2. Robotino ... 10
2.3. Webcam ... 12
2.5. Pengolahan Citra Digital ... 15
2.5.1. Citra Grayscale ... 16
2.5.2. Histogram Ekualisasi ... 16
2.6. Principal Component Analysis (PCA) ... 18
2.7. Algoritma Eigen Image ... 20
2.7.1. Nilai Eigen suatu matriks ... 20
2.7.2. Eigen Image ... 22
2.7.3. Algoritma Eigen Image dengan PCA ... 22
2.8. Matriks ... 25
2.9. Sistem Persamaan Linier ... 26
2.9.1. Metode Jacobi ... 27
2.10. Computer Vision ... 27
2.11. Sistem Deteksi Wajah dengan Haar-Like ... 28
2.12. EmguCV ... 33
2.13. OpenRobotino API ... 35
BAB III METODE PENELITIAN ... 36
3.1. Model Pengembangan ... 36
3.2. Prosedur Penelitian... 36
3.3. Diagram Blok Sistem ... 37
3.4. Diagram Alir Sistem ... 39
3.4.2. Diagram Alir Pengolahan Citra ... 42
3.4.3. Diagram Alir Proses PCA ... 43
3.4.4. Diagram Alir Subproses Recognition... 49
3.5. Inisialisasi Robot ... 52
3.5.1. Koneksi Robotino ... 53
3.5.2. Pergerakan Robotino ... 54
3.5.3. Penerimaan Data Citra ... 54
3.6. Perancangan Sistem ... 56
3.6.1. Konfigurasi EmguCV ... 56
3.6.2. Interface Sistem ... 57
3.7. Metode Pengujian dan Evaluasi Sistem ... 62
3.7.1. Pengujian dan Evaluasi Koneksi Robotino ... 62
3.7.2. Pengujian dan Evaluasi Pergerakan Robotino ... 63
3.7.3. Pengujian dan Evaluasi Streaming Citra Melalui Kamera Robotino ... 64
3.7.4. Pengujian dan Evaluasi Streaming Citra Melalui Kamera PC ... 64
3.7.5. Pengujian dan Evaluasi Deteksi Wajah... 65
3.7.6. Pengujian dan Evaluasi Pengolahan Citra... 65
3.7.7. Pengujian dan Evaluasi Metode PCA pada Proses Training ... 66
3.7.8. Pengujian dan Evaluasi Metode PCA pada Proses Recognition ... 66
BAB IV
HASIL DAN PEMBAHASAN ... 68
4.1. Pengujian Koneksi Robotino ... 68
4.1.1. Tujuan ... 68
4.1.2. Alat yang Digunakan... 68
4.1.3. Prosedur Pengujian ... 69
4.1.4. Hasil Pengujian ... 69
4.2. Pengujian Pergerakan Robotino ... 70
4.2.1. Tujuan ... 71
4.2.2. Alat yang Digunakan... 72
4.2.3. Prosedur Pengujian ... 72
4.2.4. Hasil Pengujian ... 72
4.3. Pengujian Streaming Citra Melalui Kamera Robotino ... 73
4.3.1. Tujuan ... 74
4.3.2. Alat yang Digunakan... 74
4.3.3. Prosedur Pengujian ... 74
4.3.4. Hasil Pengujian ... 74
4.4. Pengujian Streaming Citra Melalui Kamera PC ... 75
4.4.1. Tujuan ... 75
4.4.3. Prosedur Pengujian ... 76
4.4.4. Hasil Pengujian ... 76
4.5. Pengujian Deteksi Wajah ... 76
4.5.1. Tujuan ... 77
4.5.2. Alat yang Digunakan... 77
4.5.3. Prosedur Pengujian ... 77
4.5.4. Hasil Pengujian ... 77
4.6. Pengujian Pengolahan Citra ... 80
4.6.1. Tujuan ... 80
4.6.2. Alat yang Digunakan... 81
4.6.3. Prosedur Pengujian ... 81
4.6.4. Hasil Pengujian ... 81
4.7. Pengujian Metode PCA pada Proses Training ... 83
4.7.1. Tujuan ... 83
4.7.2. Alat yang Digunakan... 83
4.7.3. Prosedur Pengujian ... 83
4.7.4. Hasil Pengujian ... 84
4.8. Pengujian Metode PCA pada Proses Recognition ... 84
4.8.1. Tujuan ... 85
4.8.3. Prosedur Pengujian ... 85
4.8.4. Hasil Pengujian ... 85
4.9. Evaluasi Sistem secara Keseluruhan ... 90
4.9.1. Tujuan ... 91
4.9.2. Alat yang Digunakan... 91
4.9.3. Prosedur Pengujian ... 91
4.9.4. Hasil Pengujian ... 92
BAB V PENUTUP ... 94
5.1. Kesimpulan ... 94
5.2. Saran ... 94
DAFTAR PUSTAKA ... 96
LAMPIRAN ... 99
DAFTAR GAMBAR
Gambar 2.1 Sistem Pergerakan Konvensional dan Omni-Directional ... 9
Gambar 2.2 Jenis Omniwheel ... 10
Gambar 2.3 Robotino ... 10
Gambar 2.4 Driver unit ... 12
Gambar 2.5 Webcam ... 13
Gambar 2.6 Derajat intensitas nilai keabuan (grayscale). ... 16
Gambar 2.7 Sistem visi komputer ... 28
Gambar 2.8 Macam-macam variasi feature pada Haar ... 30
Gambar 2.9 Integral Image ... 32
Gambar 2.10 Model classifier secara cascade ... 33
Gambar 2.11 Library dari EmguCV ... 35
Gambar 3.1 Blok diagram sistem secara umum... 38
Gambar 3.2 Diagram alir sistem keseluruhan ... 39
Gambar 3.3 Diagram alir Sistem Proses Training ... 41
Gambar 3.4 Diagram alir pengolahan citra ... 42
Gambar 3.5 Diagram alir proses PCA... 43
Gambar 3.6 Ilustrasi penyusunan matriks data menjadi vektor kolom ... 44
Gambar 3.7 Ilustrasi penyusunan matriks data input ... 44
Gambar 3.8 Ilustrasi pencarian rata-rata matriks data input ... 45
Gambar 3.10 Ilustrasi kovarian matriks C ... 47
Gambar 3.11 Ilustrasi kovarian matriks L... 47
Gambar 3.12 Diagram alir proses recognition ... 50
Gambar 3.13 Omni-Directional Drive Pada Robotino ... 54
Gambar 3.14 Interface main program ... 58
Gambar 3.15 Interface training proses ... 58
Gambar 3.16 Interface recognition proses ... 60
Gambar 4.1 Main form saat melakukan koneksi dengan Robotino ... 69
Gambar 4.2 Console Terhubung Dengan Robotino ... 70
Gambar 4.3 Mode gerak manual untuk Robotino ... 71
Gambar 4.4 Gambar streaming kamera Robotino ... 75
Gambar 4.5 Gambar streaming dengan kamera PC ... 76
Gambar 4.6 Pendeteksian wajah berdasarkan pose... 78
Gambar 4.7 Pendeteksian wajah pada berbagai jarak ... 79
Gambar 4.8 Pendeteksian wajah dengan berbagai ekspresi wajah ... 80
Gambar 4.9 Hasil resize gambar dengan resolusi pixel 100x100 ... 82
Gambar 4.10 Hasil konversi RGB ke grayscale ... 82
Gambar 4.11 Hasil perataan gambar dengan histogram ekualisasi... 82
Gambar 4.12 Database hasil training ... 84
Gambar 4.13 Hasil pendeteksian wajah untuk orang pertama ... 92
Gambar 4.14 Hasil pendeteksian wajah untuk orang kedua ... 93
DAFTAR TABEL
Tabel 4.1 Pergerakan Robotino ... 73 Tabel 4.2 Hasil pendeteksian wajah dengan beberapa pose ... 78 Tabel 4.3 Hasil pendeteksian wajah dalam berbagai jarak ... 79 Tabel 4.4 Daftar tabel pengenalan dengan berbagai ekspresi pada database orang yang
telah melakukan training ... 86 Tabel 4.5 Hasil pengenalan wajah dalam jarak tertentu ... 88 Tabel 4.6 Tabel konversi nilai Ev ke Lux ... 89 Tabel 4.7 Hasil pengenalan wajah pada beberapa kondisi pencahayaan saat melakukan
1
1. asd
1.1. Latar Belakang Masalah
Dewasa ini perkembangan teknologi di bidang informasi khususnya dengan menggunakan komputer telah berkembang, hal ini menyebabkan banyak aplikasi baru yang dibuat untuk mencari informasi tentang data seseorang. Salah satu aplikasi yang cukup dikenal belakangan ini adalah aplikasi pengenalan diri (personal recognition). Hal ini sama seperti yang dilakukan pada proses pengenalan diri e-KTP, yaitu dengan mengambil ciri dari tiap orang, mulai dari sidik jari, tanda tangan, retina mata, dan wajah. Namun data tersebut kurang digunakan secara maksimal, karena setelah data-data tersebut didapatkan, seharusnya ada aplikasi pengenalan yang memanfaatkan data tersebut. Misalnya untuk pencarian orang dengan memanfaatkan ciri wajah yang telah tersimpan pada database atau wajah yang telah dikenali oleh sistem.
Wajah merupakan data yang cukup kompleks untuk dijadikan suatu acuan pencarian dibandingkan dengan data lain. Seperti yang kita tahu selama ini, bahwa setiap orang memiliki bentuk, ciri, dan model wajah yang berbeda satu dengan lainnya. Selain itu dengan menggunakan wajah sebagai pembeda juga dapat menekan biaya yang dikeluarkan untuk device atau alat yang digunakan. Untuk melakukan pengenalan dan pencarian data wajah hanya dibutuhkan sebuah kamera
webcam. Belakangan ini telah banyak aplikasi yang menggunakan data wajah
lain-lain. Tapi kebanyakan aplikasi yang ada belum menggunakan robot sebagai media pencariannya. Hal ini yang mendorong penulis untuk membuat aplikasi pencarian orang dengan wajah sebagai alat identifikasi dan robot sebagai media pencarinya.
Beberapa tahun belakangan ini berbagai macam robot mulai bermunculan, mulai dari robot untuk industri, instrumentasi medis, pelayanan, militer, edukasi, dan beberapa bidang lain. Semua itu diciptakan dengan tujuan agar mempermudah dan mempercepat pekerjaan manusia. Robot-robot yang banyak dikembangkan sekarang sudah dilengkapi dengan kemampuan untuk melihat dengan bantuan dari kamera yang telah terintegrasi dengan robot. Hal ini sudah diterapkan pada beberapa robot seperti AR (robot pelayan asal jepang), Toyota humanoid (robot pemain biola), Robotino (robot edukasi produksi dari Festo), Bom sniffer (robot penjinak bom), Nikomiya-kun (robot yang dapat membaca buku) dan Riba (robot yang digunakan dirumah sakit, yang telah dilengkapi dengan face recognition dan
voice recognition). Dan oleh karena itu sekarang juga banyak metode-metode yang
dikembangkan untuk mendukung pengelihatan dari robot, mulai dari metode pengolahan citra, metode pengenalan pola, dan computer vision.
wireless LAN, sensor induktif, dan kamera. Banyak penelitian yang telah
dilakukan menggunakan robot ini, selain karena berbagai fitur yang ditawarkan, tapi juga kemudahan mengakses dengan berbagai pilihan bahasa pemrogaman. Para mahasiswa dapat memilih berbagai pilihan teknologi, mulai dari teknologi penggerak listrik, sensor, teknologi kontrol, pengolahan citra, dan teknik pemrogaman. Dalam tugas akhir ini mahasiswa mengambil bidang teknologi image
processing, khususnya tentang face detection dan face recognition.
Metode yang digunakan untuk face recognition pun ada berbagai macam, ada beberapa kriteria yang membedakannya berdasarkan cara metode tersebut mengidentifikasi wajah (Mohammed, 2004), antara lain : geometric/template based (template matching), appearance based (principal component analysis), hybrid
appearance based (kernel fisher discriminant analysis), model based (elastic bunch
graph matching). Principal component analysis merupakan metode pengenalan
yang cukup baik dalam menganalisa data. Algoritma dari principal component
analysis sendiri cukup sederhana dan akurat, yang didasarkan pada perhitungan
statistik dan matematika. Dengan menggunakan metode ini data akan dapat dimampatkan menjadi dimensi yang lebih kecil, namun dengan tidak menghilangkan informasi penting dari data itu sendiri. (Smith, 2002)
dari orang secara langsung, tanpa menggunakan database yang sudah ada dan menghubungkannya dengan robot untuk melakukan pencarian wajah tersebut. Sistem ini nantinya akan diterapkan pada suatu komputer yang digunakan sebagai pusat pengolah data yang berupa gambar wajah dan sebagai tempat penyimpanan
database. Lalu robot omnidirectional akan bertugas untuk melakukan pencocokan
dengan memanfaatkan webcam yang sudah terintegrasi pada robot dengan referensi
database yang telah disimpan pada komputer. Pada penerapan di dunia nyata sistem
ini bisa digunakan pada bandara sebagai suatu sistem pencarian orang atau pencarian orang dengan database dari e-KTP.
1.2. Perumusan Masalah
Berdasarkan latar belakang yang telah dijelaskan di atas dapat diambil beberapa rumusan masalah yaitu:
1. Bagaimana merancang aplikasi pengenalan wajah pada mobile robot
omnidirectional dengan memanfaatkan webcam yang terintegrasi pada robot.
2. Bagaimana mengimplementasikan metode PCA (principle component analysis) untuk melakukan pengenalan wajah.
1.3. Pembatasan Masalah
Dalam perancangan dan pembuatan sistem ini, terdapat beberapa pembatasan masalah, antara lain:
1. Proses pelatihan dilakukan pada sebuah PC atau laptop.
3. Proses pengambilan data gambar dilakukan pada dengan intensitas cahaya yang konstan.
4. Wajah yang akan dideteksi diusahakan menghadap ke depan, tidak terlalu miring atau serong.
5. Menggunakan minimal 10 data wajah pelatihan untuk tiap orang. 6. Robot yang akan digunakan adalah omnidirectional robot (Robotino).
7. Webcam yang digunakan sudah terintegrasi dengan robot.
8. Pengambilan data pelatihan dilakukan pada jarak yang telah ditentukan. 9. Kondisi pencahayaan pada saat pelatihan dan pengenalan tidak berbeda jauh. 10. Proses pengolahan gambar dilakukan menggunakan library EMGUCV. 11. Menggunakan C# Visual Studio 2012.
1.4. Tujuan
Sesuai dengan judul “ Aplikasi Pengenalan Wajah Pada Mobile Robot
Omnidirectional Menggunakan Metode Principal Component Analysis (PCA) “
maka tujuan dari tugas akhir ini adalah:
1. Membuat suatu aplikasi pengenalan wajah pada mobile robot omnidirectional dengan memanfaatkan webcam yang terintegrasi pada robot.
2. Mengimplementasikan metode PCA untuk melakukan proses pengenalan wajah.
1.5. Kontribusi
diharapkan mampu melakukan perintah yang sudah diprogram sesuai input data melalui gambar yang ditangkap oleh kamera setelah melalui proses pengolahan citra terlebih dahulu. Dengan tugas akhir ini diharapkan minat mahasiswa terhadap pengolahan citra dan identifikasi wajah semakin besar, sehingga akan ada penelitian lebih lanjut tentang hal ini.
1.6. Sistematika Penulisan
Laporan penelitian tugas akhir ini tersusun atas beberapa bab dengan urutan sebagai berikut:
BAB I : Pendahuluan
Pada bab satu diuraikan mengenai latar belakang dari topik tugas akhir yang diambil, kemudian dirumuskan menjadi suatu permasalahan yang akan diselesaikan dalam tugas akhir ini, batasan-batasan masalah yang akan diteliti, tujuan dari penelitian tugas akhir ini, kontribusi yang dapat diberikan dari hasil penelitian ini terhadap perkembangan ilmu pengetahuan, serta sistematika penulisan buku Tugas Akhir.
BAB II : Landasan Teori
Bagian landasan teori menguraikan tentang teori-teori yang terkait dengan variabel-variabel penelitian termasuk uraian tentang pemilihan suatu teori yang diterapkan dalam menyelesaikan masalah. Teori yang akan diuraikan adalah tentang sistem yang digunakan yaitu omnidirectional robot, robotino, webcam, citra digital, pengolahan citra antara lain citra grayscale dan histogram ekualisasi,
principal component analysis (PCA), algoritma eigen image antara lain nilai eigen
persamaan linear antara lain metode jacobi, computer vision, emgucv, openrobotinoAPI.
BAB III : Metode Penelitian
Dalam bab tiga diuraikan tentang metode penelitian yang digunakan dalam penelitian ini serta alasan dan penjelasan penggunaan metode PCA dalam penelitian. Pada metode penelitian ini dimuat model sistem yang akan dibuat, perancangan aplikasi serta pembuatannya, yaitu proses integrasi Robotino dengan PC, pengolahan citra sesuai yang diharapkan, penerapan metode PCA pada aplikasi dan model pengujian dan evaluasi sistem yang digunakan.
BAB IV : Pengujian dan Evaluasi Sistem
Dalam bagian pengujian dan evaluasi sistem, diuraikan tentang langkah-langkah pengujian, tujuan pengujian, prosedur pengujian dan hasil pengujian serta analisis hasil pengujian sistem secara keseluruhan. Meliputi pengujian terhadap robot dengan sistem, pengujian tentang device yang terintegrasi dengan sistem, pengujian tentang preprocessing data citra, pengujian terhadap metode yang digunakan, pengujian terhadap algoritma PCA pada data citra yang didapat dalam proses training dan juga proses recognition, dan pengujian secara keseluruhan dari sistem ini.
BAB V : Penutup
8 BAB II
LANDASAN TEORI
2.1. Omni-Directional Robot
Omni-directional robot adalah robot dengan sistem pergerakan yang
secara langsung dapat bergerak kesegala arah dengan konfigurasi apapun. Pada umumnya robot di desain dengan pergerakan yang sudah direncanakan terlebih dahulu. Pada sistem pergerakkan konvensional, pergerakkan tidak mampu di kontrol pada setiap tingkat kebebasan dalam bergerak secara independent, sehingga hanya mampu bergerak ke beberapa arah yang sudah ditentukkan sebelumnya. Ini disebut kendala non-holomic yaitu pencegahan roda kemudi dari selip, meskipun pada umumnya mampu menjangkau setiap lokasi dan orientasi dalam ruang 2 dimensi, namun memerlukan manuver dan perencanaan jalan yang rumit dan kompleks. (Doroftei, 2007)
Keunggulan robot omni ini adalah pada roda yang berupa omni directional
poly roller wheel. Pada Gambar 2.1 terlihat sebuah robot dengan omniwheel mampu
Gambar 2.1 Sistem Pergerakan Konvensional dan Omni-Directional
(Syam, 2011)
Omniwheel terdiri dari roda inti besar dan sepanjang peripheral ada
terdapat banyak roda kecil tambahan yang mempunyai poros tegak lurus pada roda inti. Omniwheel merupakan roda mecanum dengan cakram kecil di sekitar lingkar yang tegak lurus terhadap arah bergulir. Efeknya adalah bahwa roda akan berputar dengan kekuatan penuh, dan akan bergeser dengan sangat mudah. Omniwheel ini sering digunakan dalam sistem penggerak holonomic. Sistem pergerakkan ini sering digunakan dalam perlombaan seperti RoboCup, robot banyak menggunakan
omniwheel ini karena memiliki kemampuan untuk bergerak ke segala arah. Roda
omni sering digunakan sebagai kastor bertenaga untuk robot berkendara diferensial
untuk membuat berputar lebih cepat. (Syam, 2011). Berikut beberapa jenis
Gambar 2.2 Jenis Omniwheel (Syam, 2011)
2.2. Robotino
Robotino adalah robot buatan Festo Didactic yang digunakan untuk edukasi dan penelitian serta kompetisi robot. Robotino memiliki fitur sistem gerak menggunakan omni-directional drive, bumps sensors, infrared distance sensors, dan usb webcam. Robotino didesain modular, sehingga dapat dengan mudah ditambahkan berbagai akesesoris pelengkap, seperti sensor laser scanner,
gyroscope, dan postioning system northstar dalam ruangan. (ROS, 2010). Gambar
Robotino dapat dilihat pada Gambar 2.3.
Robotino dapat bergerak maju, mundur dan menyamping ke segala arah, serta berputar di tempat, dengan menggunakan tiga roda. Robot ini dapat diintegrasikan dan digunakan sebagai pilihan teknologi, misalnya untuk teknologi penggerak listrik, sensor, teknologi kontrol, pengolahan citra dan teknik pemrograman. (Karras, 2009). Robotino memiliki spesifikasi hardware sebagai berikut :
1. Diameter: 370 mm 2. Tinggi: 210 mm
3. Berat secara keseluruhan: 11 kg
4. Karet penjaga strip (bumper) disekeliling robot untuk perlindungan sensor tabrakan
5. 9 sensor jarak infra merah 6. Sensor analog induktif 7. 2 sensor optik
8. Webcam dengan antarmuka USB
9. Wireless LAN
10. Dapat diperluas dengan menggunakan dua busi 20-pin 11. 2 power supply 12V akumulator gel
12. Ethernet, VGA dan USB untuk koneksi langsung ke monitor dan keyboard
13. Driver unit, terdapat 3 unit yang terdiri dari komponen DC motor, integrated
planetary gear, omni-directional wheels, toothed belt with gear wheels, dan
pengolah data pada robotino. Gambar driver unit dapat dilihat pada Gambar 2.4.
Gambar 2.4 Driver unit (Karras, 2009)
2.3. Webcam
Web camera atau yang biasa dikenal dengan webcam, adalah kamera yang
gambarnya bisa diakses menggunakan world wide web (www), program instant
messaging, atau aplikasi komunikasi dengan tampilan video pada PC. Webcam juga
digambarkan sebagai kamera video digital yang sengaja didesain sebagai kamera dengan resolusi rendah. Webcam dapat digunakan untuk sistem keamanan. Pada beberapa webcam, ada yang dilengkapi dengan software yang mampu mendeteksi pergerakan dan suara. Dengan software tersebut, memungkinkan PC yang terhubung ke kamera untuk mengamati pergerakan dan suara, serta merekamnya ketika terdeteksi. Hasil rekaman ini bisa disimpan pada komputer, e-mail atau di
Webcam sangat bermanfaat dalam bidang telekomunikasi, bidang
keamanan dan bidang industri. Sebagai contoh webcam digunakan untuk video call
chatting, surveillience camera, dan sebagai video conference oleh beberapa user.
Namun seiring perkembangan zaman, webcam sekarang dimanfaatkan sebagai sensor pada robot yang digunakan sebagai mata robot yang akan menangkap gambar dan diolah dalam citra digital untuk menghasilkan gerakan yang diinginkan.
Gambar 2.5 Webcam
bentuk file JPG dan menguploadnya ke web server menggunakan File Transfer
Protocol (FTP).
Frame rate mengindikasikan jumlah gambar sebuah software dapat ambil
dan transfer dalam satu detik. Untuk streaming video, dibutuhkan minimal 15 frame
per second (fps) atau idealnya 30 fps. Untuk mendapatkan frame rate yang tinggi,
dibutuhkan koneksi internet yang tinggi kecepatannya. Sebuah web camera tidak harus selalu terhubung dengan komputer, ada web camera yang memiliki software
webcam dan web server bulit-in, sehingga yang diperlukan hanyalah koneksi
internet. Web camera seperti ini dinamakan “network camera”. Kita juga bisa menghindari penggunaan kabel dengan menggunakan hubungan radio, koneksi Ethernet ataupun WiFi.
2.4. Citra Digital
Citra digital adalah matriks dua dimensi yang dapat ditampilkan pada layar monitor komputer sebagai himpunan berhingga (diskrit) nilai digital yang disebut piksel (picture elements). Piksel adalah elemen citra yang memiliki nilai yang menunjukkan intensitas warna. Berdasarkan cara penyimpanan atau pembentukannya, citra digital dapat dibagi menjadi dua jenis.
Jenis pertama adalah citra digital yang dibentuk oleh kumpulan piksel dalam array dua dimensi. Citra jenis ini disebut citra bitmap atau citra raster. Jenis citra yang kedua adalah citra yang dibentuk oleh fungsi-fungsi geometri dan matematika. Jenis citra ini disebut grafik vektor.
adalah pembagian citra ke dalam elemen-elemen diskrit (piksel), sedangkan
quantitazion adalah pemberian nilai intensitas warna pada setiap piksel dengan nilai
yang berupa bilangan bulat. (Awcock, 1996)
2.5. Pengolahan Citra Digital
Pengolahan citra merupakan teknik manipulasi citra secara digital yang khususnya menggunakan komputer, menjadi citra lain yang sesuai untuk digunakan dalam aplikasi tertentu. Agar mudah diinterpretasi oleh manusia atau komputer, pengolahan citra harus dilakukan dengan berbagai macam metode untuk mencapai citra sesuai yang diinginkan. Operasi pengolahan citra digital umumnya dilakukan dengan tujuan memperbaiki kualitas suatu gambar sehingga dapat dengan mudah diinterpretasikan oleh mata manusia dan untuk mengolah informasi yang ada pada suatu gambar untuk kebutuhan identifikasi objek secara otomatis (Murinto, Ariwibowo, & Syazali, 2009).
Operasi-operasi pada pengolahan citra digital secara umum terbagi menjadi beberapa macam kuaifikasi antara lain: perbaikan kualitas citra (image
enhancement), restorasi citra (image restoration), pemampatan citra (image
compression), segmentasi citra (image segmentation), pengorakan citra (image
analysis), rekonstruksi citra (image recronstruction). Dalam penilitian kali ini
pengolahan citra digital yang digunakan adalah citra grayscale, dan histogram
2.5.1. Citra Grayscale
Citra grayscale merupakan citra digital yang hanya memiliki satu nilai pada setiap pikselnya (8 bit). Citra yang ditampilkan dari citra jenis ini terdiri atas warna abu-abu, bervariasi pada warna hitam pada bagian intensitas terlemah (0) dan warna putih pada bagian intensitas terkuat (255). (Fatta, 2007)
Gambar 2.6 Derajat intensitas nilai keabuan (grayscale).
Citra grayscale merupakan citra yang didapat dari gambar berwarna yang memiliki tiga nilai di tiap pikselnya (24 bit) atau RGB dengan cara mengambil nilai rata-rata RGB pada suatu piksel.
� = � + �� �+ ��� .
Untuk mendapatkan citra grayscale bisa juga dengan menggunakan cara perskalaan, yaitu dengan mengalikan nilai R, G dan B dengan 0.299R, 0.587G, 0.114B lalu menjumlahkan hasil dari perkalian tadi.
2.5.2. Histogram Ekualisasi
histogram yang sangat sempit. Bila histogramnya mengumpul di sebelah kiri, citra akan kelihatan gelap, sebaliknya, citra akan sangat terang jika histogramnya mengumpul di sebelah kanan. Histogram juga dapat menunjukkan banyak hal tentang kecerahan (brightness) dan kontras dari sebuah citra. Secara matematis histogram citra dapat dihitung dengan persamaan 2.2 :
ℎ = � , � = , , , . . . , − .
dengan n = jumlah seluruh piksel didalam citra dan ni = jumlah piksel yang memiliki
derajat keabuan i.
Distribusi hi, atau ni, dapat menyediakan informasi tentang kemunculan
citra. Pengetahuan praktis untuk memahami histogram citra dibutuhkan untuk melihat perubahan-perubahan pada citra setelah dilakukan operasi tertentu. Beberapa pengetahuan praktis yang biasa digunakan dalam melihat histogram citra adalah sebagai berikut:
1. Histogram citra yang terdistribusi merata pada seluruh tingkat keabuan memiliki kontras yang baik.
2. Histogram citra yang mengumpul pada daerah gelap memiliki citra redup. 3. Histogram citra yang mengumpul pada daerah terang atau terkonsentrasi pada
intensitas citra yang tinggi menampilkan citra yang terang.
dengan derajat keabuan yang baru (s) dengan suatu fungsi transformasi T, yang dalam hal ini s = T(r). Dua sifat yang dipertahankan pada tranformasi ini:
1. Nilai s merupakan pemetaan 1 ke 1 dari r. Ini untuk menjamin representasi intensitas yang tetap. Ini berarti r dapat diperoleh kembali dari r dengan transformasi invers: r = T-1(s), 0 ≤ s ≤ 1.
2. Untuk 0 ≤ ri ≤ 1, maka 0 ≤ T(r) ≤ 1. Ini untuk menjamin pemetaan T konsisten pada rentang nilai yang diperbolehkan.
2.6. Principal Component Analysis (PCA)
Principal component analysis atau Karhunen Loeve Transform merupakan
salah satu metode pengenalan wajah yang memiliki dasar pada perhitungan statistik dan matematika. PCA termasuk dalam algoritma pengenalan wajah yang termasuk pada golongan appearance based. (Mohammed, 2004). Metode ini mempunyai komputasi yang sederhana dan cepat dibandingkan dengan penggunaan metode yang memerlukan banyak pembelajaran seperti jaringan saraf tiruan.
normal baku. Dalam hal ini digunakan metode kovariansi dengan algoritma sebagai berikut :
1. Cari rata-rata dari X, cara menghitung rata-rata :
�̅ = ∑ � �
=
.
2. Lakukan normalisasi data agar PCA dapat bekerja dengan benar, setiap data asli akan dikurangkan dengan rata-rata, selisih rata-rata :
� = � − �̅ .
3. Setelah didapat normalisasi data, selanjutnya adalah melakukan perhitungan kovarian dari matriks X = [� � � ��], dengan cara :
� = ∑ � �
=
�� .
4. Setelah didapat nilai kovariannya langkah selanjutnya adalah menentukan nilai eigen dan vektor eigen dari matriks kovarian C : λ > λ > λ > . .. > λ� dan C : . . . � .
2.7. Algoritma Eigen Image
2.7.1. Nilai Eigen suatu matriks
Jika diketahui matriks A berukuran n x n, ̅ vektor tak nol berukuran n x 1,
̅ ∈ � . Karena A berukuran n x n, maka A ̅ akan berupa vektor yang berukuran
n x 1 juga. Bila terdapat skalar λ, ∈ ��� , sedemikian hingga
A ̅ = ̅ , .
Semua nilai yang memenuhi persamaan tersebut sehingga ada nilai ̅ yang nyata (bukan vektor ̅ saja) disebut nilai eigen (karakteristik). Untuk
menemukan nilai dari λ, dari persamaan A ̅ = λ ̅ sebelumnya dirubah dahulu menjadi persamaan (A – λI) ̅ = ̅ = (λI - A) ̅. Agar persamaan tersebut memiliki penyelesaian, maka dapat ditentukan melalui nilai det (A –λI) yaitu det (A –λI) =
det (λI - A) = 0, persamaan tersebut bisa juga disebut dengan persamaan karakteristik. Banyaknya nilai eigen maksimal adalah n buah.
Dari nilai eigen yang telah diperoleh tersebut dapat ditentukan ruang solusi untuk ̅ dengan memasukkan nilai eigen yang diperoleh kedalam persamaan (A –λI) ̅ = 0. Ruang solusi yang diperoleh dengan cara demikian ini disebut juga dengan ruang eigen. Dari ruang eigen yang bersesuaian dengan nilai eigen tertentu tersebut dapat dicari minimal sebuah ruang eigen yang saling bebas linier.
Misal terdapat matriks A = [− ] Langkah untuk mencari nilai eigen adalah:
(λI - A) = λ[ ] - [− ]
= [ ] - [− ]
= [ − − ]
Det (λI - A) = det [ − − ]
= − + =
( − − = >> = dan = Mencari vektor eigen :
untuk = >> [ − − ] [ ] = [ ]
[ − − ][ ] = [ ]
[− − ][ ] = [ ]
− − = 0
+ = 0
Ambil satu persamaan, misal +
= −
Didapat = − =
2.7.2. Eigen Image
Eigen image adalah kumpulan dari eigen vektor yang digunakan untuk masalah computer vision pada pengenalan gambar, seperti pengenalan wajah manusia. Untuk menghasilkan eigen image, sekumpulan besar citra digital dari data gambar diambil pada kondisi pencahayaan yang sama dan kemudian dinormalisasi, lalu diolah pada resolusi yang sama (misalnya m x n), dan kemudian diperlakukan sebagai vektor dimensi mn dimana komponennya diambil dari nilai dari pikselnya. (Sarwono, 2011)
2.7.3. Algoritma Eigen Image dengan PCA
Eigen image adalah salah satu pengenalan gambar yang didasarkan pada principal component analysis (PCA) yang dikembangkan di MIT. Gambar pelatihan direpresentasikan dalam sebuah vektor flat (gabungan vektor) dan digabung bersama-sama menjadi sebuah matriks tunggal. Eigen image dari masing-masing citra kemudian di ekstrak dan disimpan dalam database. Gambar yang akan dicobakan untuk pengenalan juga akan didefinisikan nilai eigen image-nya dibandingkan dengan eigen image dari gambar pelatihan atau data dari database. Berikut adalah algoritma perhitungan eigen image dengan menggunakan PCA : 1. Ambil data dari gambar inputan (gambar pelatihan).
2. Ubah data gambar menjadi sebuah vektor kolom.
�̅ = ∑ � �
=
.
5. Lakukan normalisasi data agar PCA dapat bekerja dengan benar, setiap data asli akan dikurangkan dengan rata-rata, selisih rata-rata :
� = � − �̅ .
6. Setelah didapat normalisasi data, selanjutnya adalah melakukan perhitungan kovarian dari matriks X = [� � � ��], dengan rumus :
� = ∑ � �
=
�� = ��� � .
7. Menggunakan metode PCA pada perhitungan matriks kovarian C untuk mencari eigen vektor dan eigen value. Matriks kovarian C ordo N x N tidak efektif karena data yang diproses terlalu besar. Oleh karena itu dengan memanfaatkan sifat perkalian matriks, pada metode PCA digunakan persamaan 2.9 :
= ��� � .
8. Setelah didapat nilai kovariannya langkah selanjutnya adalah menentukan nilai eigen dan vektor eigen dari matriks kovarian C : λ > λ > λ > . .. > λ� dan C : . . . � .
kecil) bisa kita hilangkan, walaupun hal ini akan sedikit menghilangkan informasi yang ada pada data tersebut, namun hal ini akan bisa mengurangi dimensi data menjadi lebih kecil dan bisa mempercepat perhitungan. Jadi kita hanya akan menggunakan beberapa vektor eigen yang paling berpengaruh, sesuai urutannya (λ�).
10. Langkah selanjutnya adalah untuk mendapatkan nilai data baru dengan mengalikan matriks dari vektor eigen dengan data normalisasi � atau bisa juga disebut dengan eigenface.
�� = ∑
�
=
� .
11. Setelah didapat nilai eigenface lalu langkah selanjutnya adalah menghitung
eigen space atau bisa juga disebut weight, cara menghitung weight :
� ℎ = ��∗ � .
Setelah mencari nilai eigen image pada proses pelatihan, maka pada proses selanjutnya adalah melakukan pengenalan wajah. Pada metode PCA, langkah yang dilakukan untuk pengenalan wajah :
1. Normalisasi data, dengan cara mengurangkan citra yang didapat ( Г ) dengan rata-rata.
�� = Г − �̅ .
2. Melakukan proyeksi ke eigen space. Citra uji ditransformasikan ke komponen eigen image. Hasil bobot disimpan ke dalam vektor bobot Ω� .
Ω� = [ɷ ɷ … ɷ ] .
3. Euclidean distance antara 2 vektor bobot d (Ω , Ω ) digunakan untuk mengukur kemiripan antara dua buah gambar i dan j. Berikut formula dari perhitungan euclidean distance. (Pentland, 1991)
(Ω , Ω ) = √∑ =
Ω − Ω .
2.8. Matriks
Notasi suatu matriks berukuran n x m ditulis dengan � . Huruf n menyatakan jumlah baris, dan huruf m menyatakan jumlah kolom. Suatu matriks tersusun atas elemen yang dinyatakan dengan huruf kecil lalu diikuti dengan angka-angka indeks, misalnya . Indeks i menunjukkan posisi baris ke-i dan indeks j menunjukkan posisi kolom ke-j. (Suparno, 2011)
� = [
. ..
. ..
. .. . ..
] .
Misal elemen-elemen matriks � diisi dengan suatu nilai, maka akan terlihat seperti berikut :
� = [
Dari matriks A maka akan dapat dinyatakan bahwa elemen dari � =
, � = , � = , � = , � = , � = , � = , � = , dan
seterusnya sampai pada � = .
2.9. Sistem Persamaan Linier
Sistem persamaan linear dengan metode iterasi digunakan untuk mencari nilai eigen vektor seperti pada persamaan 2.10. Eigen vektor didapat dengan mencari eigen value seperti persamaan det (A –λI) = 0. Berikut sistem persamaan linear yang terdiri dari n-persamaan dengan variabel , , … , dinyatakan dengan persamaan :
+ + … + =
+ + … + =
+ + … + =
+ + … + = .
2.9.1. Metode Jacobi
Persamaan ke-i dalam Persamaan 2.19 dinyatakan sebagai berikut :
+ + … + + + = , � = , , , … , .
Persamaan (2.19) dapat diekspresikan sebagai :
+ ∑ = , ≠
= .
Dengan demikian, algoritma metode jacobi diekspresikan menjadi :
+ = [ − ∑
= , ≠
] , � = , , , … , .
Untuk menyelesaikan sistem persamaan linear dengan metode jacobi diperlukan suatu nilai pendekatan awal yaitu . Nilai biasanya tidak diketahui dan dipilih = . (Suparno, 2011). Jadi dari persamaan 2.22 akan menjadi = �
��.
2.10. Computer Vision
Computer Vision adalah pencitraan komputer dimana aplikasi tidak
Gambar 2.7 Sistem visi komputer
Computer vision merupakan sebuah proses otomatis yang menintegrasikan
sejumlah besar proses persepsi visual, seperti pengolahan citra, klasifikasi citra, pengenalan citra dan akusisi citra. Computer vision didefinisikan sebagai salah satu cabang ilmu pengetahuan yang mempelajari bagaimana komputer dapat mengenali objek yang diamati atau diobservasi. Cabang ilmu ini bersama kecerdasan buatan (artificial intelligence) akan mampu menghasilkan sistem kecerdasan visual (visual
intelligence system). (Munir, 2004)
Vision = Geometri + Measurement + Interpretatio (2.23)
Proses-proses dalam computer vision dapat dibagi menjadi tiga aktivitas: 1. Memperoleh atau mengakuisisi citra digital.
2. Melakukan teknik komputasi untuk memperoses atau memodifikasi data citra.
Menganalisis dan menginterpretasi citra dan menggunakan hasil pemrosesan untuk tujuan tertentu, misalnya memandu robot, mengontrol peralatan, memantau proses manufaktur, dan lain-lain.
2.11. Sistem Deteksi Wajah dengan Haar-Like
Penelitian mengenai deteksi dan pengenalan wajah pada teknologi computer vision telah banyak dilakukan, salah satunya adalah menggunakan Haar
like feature yang dikenal sebagai Haar Cascade Classifier. Haar-like merupakan rectangular (persegi) features, yang memberikan indikasi secara spesifik pada sebuah gambar. Ide dari Haar-like features adalah untuk mengenali obyek yang berdasarkan nilai sederhana dari fitur tetapi bukan merupakan nilai piksel dari obyek tersebut. Metode ini memiliki kelebihan yaitu komputasinya sangat cepat, karena hanya bergantung pada jumlah piksel dalam persegi bukan setiap piksel dari obyek. Metode ini merupakan metode yang menggunakan statistical model (classifier). Pendekatan untuk mendeteksi obyek dalam gambar dengan menggabungkan empat konsep utama, antara lain:
1. Training data.
Metode ini memerlukan 2 tipe gambar objek dalam proses training yang dilakukan, yaitu :
1. Positive samples, Berisi gambar obyek yang ingin di deteksi, apabila ingin mendeteksi mata maka positive samples ini berisi gambar wajah, begitu juga obyek lain yang ingin dikenali.
2. Negative samples, Berisi gambar obyek selain obyek yang ingin dikenali, umumnya berupa gambar background (tembok, pemandangan, lantai, dan gambar lainnya). Resolusi untuk sampel negatif disarankan untuk memiliki resolusi yang sama dengan resolusi kamera.
Training dari Haar menggunakan dua tipe sampel diatas. Informasi dari hasil
2. Haar Feature
Algoritma Haar menggunakan metode statistical dalam melakukan pendeteksian wajah. Metode ini menggunakan sample haarlike faetures. Classifier ini menggunakan gambar berukuran tetap (umumnya berukuran 24x24). Cara kerja dari haar dalam mendeteksi wajah adalah dengan menggunakan teknik sliding
window berukuran 24x24 pada keseluruhan gambar dan mencari apakah terdapat
bagian dari gambar yang berbentuk seperti wajah atau tidak. Haar juga memiliki kemampuan untuk melakukan scaling sehingga dapat mendeteksi adanya wajah yang berukuran lebih besar ataupun lebih kecil dari gambar pada classifier. Tiap
feature dari haar-like feature didefinisikan pada bentuk dari feature, diantaranya
koordinat dari feature dan juga ukuran dari feature tersebut. Selanjutnya kombinasi- kombinasi kotak yang digunakan untuk melakukan pendeteksian obyek visual yang lebih baik. Setiap Haar-like features terdiri dari gabungan kotak-kotak hitam dan putih.
3 tipe kotak(rectangular) feature :
1. Tipe two-rectangle feature (horisontal/vertikal)
2. Tipe three-rectangle feature
3. Tipe four-rectangle feature
Adanya fitur Haar ditentukan dengan cara mengurangi rata-rata piksel pada daerah gelap dari rata-rata piksel pada daerah terang. Jika nilai perbedaannya itu diatas
treshold, maka dapat dikatakan bahwa fitur tersebut ada. Nilai dari Haar-like
feature adalah perbedaan antara jumlah nilai-nilai piksel gray level dalam daerah
kotak hitam dan daerah kotak putih:
F(x) = SumBlack rectangle * SumWhite rectangle (2.24)
dimana untuk kotak pada Haar-like feature dapat dihitung secara cepat
menggunakan “integral image” .
3. Integral image
Integral Image digunakan untuk menentukan ada atau tidaknya dari ratusan
Gambar 2.9 Integral Image
Seperti yang ditunjukkan oleh gambar 2.9 di atas setelah pengintegrasian, nilai pada lokasi piksel (x,y) berisi jumlah dari semua piksel di dalam daerah segiempat dari kiri atas sampai pada lokasi (x,y) atau daerah yang diarsir. Guna mendapatkan nilai rata-rata piksel pada area segiempat (daerah yang diarsir) ini dapat dilakukan hanya dengan membagi nilai pada (x,y) oleh area segiempat.
�� , = ∑ ′, ′
′≤ , ′≤
.
dimana ( , )ii x y adalah integral image dan ( , )i x y adalah original image. Guna mengetahui nilai piksel untuk beberapa segiempat yang lain, seperti segiempat D pada gambar 2.9, dapat dilakukan dengan cara menggabungkan jumlah piksel pada area segiempat A+B+C+D, dikurangi jumlah dalam segiempat A+B dan A+C, ditambah jumlah piksel di dalam A. Dengan, A+B+C+D adalah nilai dari integral
image pada lokasi 4, A+B adalah nilai pada lokasi 2, A+C adalah nilai pada lokasi
3, dan A pada lokasi 1. Sehingga hasil dari D dapat dikomputasikan.
4. Cascade classifier
Cascade classifier adalah sebuah rantai stage classifier, dimana setiap stage
classifier digunakan untuk mendeteksi apakah didalam image sub window terdapat
obyek yang diinginkan (object of interest). Stage classifier dibangun dengan menggunakan algoritma adaptive-boost (AdaBoost). Algoritma tersebut mengkombinasikan performance banyak weak classifier untuk menghasilkan
strong classifier. Weak classifier dalam hal ini adalah nilai dari haar-like feature.
Jenis AdaBoost yang digunakan adalah Gentle AdaBoost.
Gambar 2.10 Model classifier secara cascade
(Wahyu Setyo Pambudi, 2012)
2.12. EmguCV
EmguCV merupakan sebuah library computer vision untuk platform .NET (C#, VB.NET, Ironphyton, dan lain sebagainya). EmguCV adalah sebuah cross
platform yang berfungsi untuk menjembatani antara OpenCV dengan semua bahasa
1. Manipulasi data citra (alokasi, copying, setting,convertion).
2. Citra dan video I/O (file and camera input based, image/video file output). 3. Manipulasi matriks dan vektor beserta rumus aljabar linier (products,
solver,eigenvalues, SVD).
4. Data struktur dinamis (list, queues, sets, trees, graphs).
5. Pemroses citra fundamental (filtering, edge detection, corner detection, sampling and interpolation, color convertion, morphological operations, histograms, image pyramids).
6. Analisis struktur (connected component, contour processing, distance transform, various moment, template matching, hough transform, polygonal approximation, line fitting, ellipse fitting, delaunay triangulation).
7. Kalibrasi kamera (calibration patterns, estimation fundamental matrix, estimation homography, stereo correspondence).
8. Analisis gerakan (optical flow, segmentation, tracking). 9. Pengenalan obyek (eigen methods,HMM).
10. Graphical user interface (display image/video, keyboard handler, mouse handler, scroll bars).
Gambar 2.11 Library dari EmguCV (EmguCV, 2012)
2.13. OpenRobotino API
36
METODE PENELITIAN
3.1. Model Pengembangan
Tujuan dari tugas akhir ini akan membangun sebuah aplikasi pengenalan wajah yang dapat melakukan pencarian pada orang yang dicari. Proses pengolahan data mulai dari pengolahan citra hingga menghasilkan gambar wajah tiap orang. Gambar diolah menjadi bentuk digital atau angka-angka (menjadi matriks) dengan mengambil nilai tiap pikselnya. Lalu gambar dikonversi ke dalam bentuk digital yang lebih sederhana menggunakan metode principle component analysis (PCA) yaitu sebuah algoritma yang menghasilkan karakteristik dominan dari data, sehingga mewakili struktur pola citra tersebut. Kemudian dilakukan percobaan pada proses recognition dengan membandingkan antara data dari database dengan data baru yang diperoleh dari proses recognition tadi.
3.2. Prosedur Penelitian
Prosedur penelitian yang dipakai dalam pengerjaan tugas akhir ini adalah: 1. Studi literatur
Pencarian data-data literatur dari masing-masing fungsi pada library EmguCV dan OpenRobotinoAPI, melalui pencarian dari internet, dan konsep-konsep teoritis dari buku-buku penunjang serta metode yang digunakan untuk melakukan pengolahan citra.
2. Tahap perancangan dan pengembangan sistem
rancangan sistem yang diambil antara lain:
a. Membuat flowchart pada proses sistem secara keseluruhan, proses
b. training, proses pengolahan citra, proses PCA, dan proses recognition.
c. Membuat interface (tampilan aplikasi).
d. Mengatur fungsi-fungsi yang digunakan pada aplikasi ini dan mengelompokkan fungsi tersebut pada beberapa class
e. Melakukan koneksi antara komputer dengan robotino. f. Melakukan pendeteksian wajah.
g. Melakukan pengambilan sampel data, dengan meng-capture wajah yang terdeteksi.
h. Melakukan proses pengolahan citra, yaitu konversi ke grayscale dan histogram
equation.
i. Menerapkan metode PCA pada aplikasi. j. Mengatur bagaimana robotino akan berjalan.
k. Melakukan percobaan pada aplikasi ini untuk memastikan apakah aplikasi ini sudah dapat berjalan dengan baik atau belum.
3.3. Diagram Blok Sistem
Sistem ini terdiri dari 2 blok utama yaitu blok proses training dan proses
recognition. Dimana kerja dari kedua blok proses ini dilakukan pada komputer.
masukan menjadi karakteristik citra, lalu membandingkannya dengan karakteristik citra yang telah tersimpan pada database hingga memberikan output berupa hasil
recognition. Untuk mempermudah dalam memahami sistem yang akan dibuat dapat
dijelaskan melalui blok diagram pada Gambar 3.1.
Gambar 3.1 Blok diagram sistem secara umum
Personal Computer (PC)
Data
Training
Process dengan PCA
Database
Wajah
Recognition
Process dengan PCA
Hasil Pengenalan Mobile Robot Omnidirectional
Pencarian wajah
Blok Diagram Training
3.4. Diagram Alir Sistem
Gambar 3.2 adalah diagram alir yang akan digunakan dalam membuat algoritma program untuk mendukung sistem recognition wajah secara realtime ini:
Mulai
Inisialisasi program
Pilih Mode
Proses Training Training Proses
Recognition Proses
Keluar
Selesai
Ya
Ya Tidak
Input Nama Tidak
Gambar 3.2 menunjukkan diagram alir keseluruhan sistem yang dirancang. Input awal pada sistem ini adalah pemilihan mode, jika memilih mode training maka akan masuk pada proses training, tapi jika tidak akan langsung masuk pada proses
recognition. Proses recogniton akan berjalan sampai menemukan wajah dari orang
yang dicari, saat orang yang dicari sudah ditemukan maka proses recognition akan selesai.
3.4.1. Diagram Alir Subproses Training
Mulai
Nyalakan Kamera
Ada Objek Wajah
Capture Wajah Auto Capture Deteksi Wajah
Tidak
Ya Tekan Tombol
Capture
Ya
Tidak
Sudah ≥ 10 Gambar Wajah
Tekan Tombol Save
Simpan Data Training PCA Proses Pengolahan
Citra
Tidak
Ya
Selesai
3.4.2. Diagram Alir Pengolahan Citra
Diagram alir dari pengolahan citra yang digunakan pada sistem ini dapat dijelaskan pada Gambar 3.4
Mulai
Simpan Data Hasil Pengolahan Citra Resize Citra Inputan
Proses Grayscale
Proses Histogram Ekualisasi Data Gambar
Wajah
Selesai
Gambar 3.4 Diagram alir pengolahan citra
3.4.3. Diagram Alir Proses PCA
Dalam sistem ini proses yang paling utama adalah proses PCA, karena yang dapat menentukan wajah seseorang dikenali atau tidak adalah melalui proses ini. Berikut diagram alir dari proses PCA akan dijelaskan pada Gambar 3.5 :
Mulai
Data Gambar Wajah Hasil Pengolahan Citra
Mengubah tiap data gambar menjadi vektor kolom
Gabungkan semua vektor kolom data lalu hitung rata - ratanya
Normalisasi Matriks
Hitung kovarian matriks
Cari nilai Eigen Value dan Eigen Vektor
Lakukan Sorting dari nilai Eigen Value dan Eigen Vektor
Cari Eigen Face dan Eigen Space
Simpan Data
Selesai
Berikut penjelasan dari diagram alir PCA:
1. Proses pembacaan matriks data gambar yang telah melalui proses pengolahan citra.
2. Proses mengubah masing-masing matriks piksel data gambar menjadi vektor kolom dengan ordo �� x 1.
Gambar 3.6 Ilustrasi penyusunan matriks data menjadi vektor kolom 3. Gabungkan setiap vektor kolom dari data tersebut menjadi satu dalam sebuah
matriks dengan ordo N2 x jumlah data. Misal gambar pelatihan ada 2 gambar dengan ukuran 20 x 20 piksel maka kita akan mempunyai matriks berukuran (20 x 20) x 2 seperti pada penjelasan berikut.
Gambar 1 Gambar 2
Berikut adalah penggalan program untuk langkah nomer 1 sampai 3: public double [,] data_trans_1D (List<Bitmap> data_inp) {
4. Proses perhitungan rata-rata dari matrik, gabungan data training, dengan menambahkan semua data dalam satu baris lalu membaginya dengan jumlah data training.
Gambar 3.8 Ilustrasi pencarian rata-rata matriks data input
for (j = 0; j < Jml; j++)
5. Proses normalisasi matriks dengan cara mengurangkan tiap nilai pada matriks gabungan dengan nilai rata-rata.
Gambar 3.9 Ilustrasi normalisasi data input
Berikut adalah penggalan program dari proses normalisasi pada langkah 5: public double[,] Normalisasi()
menghasilkan ordo atau dimensi matriks yang sangat besar (N2 x N2 atau misalnya 2 x 2 dengan 100 x 100 adalah ukuran dimensi per gambar)
Matriks A Matriks A’
10 x 10000
Matriks C Perkalian Matriks
10000 x 10000 10000 x 10
Gambar 3.10 Ilustrasi kovarian matriks C
Proses perkalian matriks pada Gambar 3.10 tidak efektif karena terlalu besar jumlah datanya (10000 x 10000). Melalui metode PCA, dengan menggunakan sifat perkalian matriks, maka matriks C diwakilkan dengan menggunakan matriks L dengan ordo berdasarkan jumlah citra M x M (dengan M merupakan jumlah data inputan). Perubahan dari matriks C ke matriks L sebagai penggantinya menggunakan Persamaan 2.8 dan 2.9.
Matriks A’ Matriks A
10000 x 10
Matriks L Perkalian Matriks
10 x 10 10 x 10000
Berikut adalah penggalan program proses kovarian matriks pada langkah 6:
7. Setelah didapat nilai kovarian matriks lalu proses selanjutnya dengan melakukan perhitungan nilai eigen dan vektor eigen, dimana hasil dari proses ini berupa nilai eigen dan vektor eigen yang saling bersesuaian.
8. Melakukan pengurutan untuk nilai eigen yang didapat pada proses sebelumnya dan melakukan penentuan K best eigen value dan eigen vektor. Nilai K ditentukan sendiri dengan maksimum nilai adalah banyaknya data dari nilai eigen.
9. Melakukan perhitungan nilai eigenface dan eigenspace / weight dari hasil pemilihan K best eigen tadi, seperti pada persamaan 2.9 dan 2.10.
Berikut ini adalah penggalan program proses pencarian nilai eigen sampai data eigen siap untuk disimpan seperti langkah 7 sampai 9:
public void Eigen(out double[,] Eigen_vect, out double[] Eigen_val)
for (j = 0; j < Maks_Dim; j++) sebuah direktori untuk digunakan sebagai database pada proses recognition nanti.
3.4.4. Diagram Alir Subproses Recognition
Mulai Gambar Tes – Gambar Reconstruksi
Proyeksikan data
Dari diagram alir proses recognition dapat dijelaskan bahwa langkah-langkah
recognition adalah sebagai berikut:
1. Sistem akan menampilkan nama-nama yang terdapat pada database, lalu user akan memilih nama orang yang akan dicari.
2. Setelah itu sistem ini akan berjalan untuk memulai pencarian, dengan mulai mengakses kamera. Lalu sistem akan melakukan deteksi wajah.
3. Jika ada wajah yang terdeteksi sistem akan langsung melakukan capture. 4. Mengambil data yang telah tersimpan pada database yang didapat dari proses
training.
5. Proses selanjutnya adalah memproyeksikan gambar yang didapat dengan metode PCA, dengan data yang telah diambil dari database. Berikut langkah yang dilakukan untuk memproyeksikan data gambar dengan PCA:
a. Mengubah dimensi gambar, menjadi 1 dimensi (vektor kolom N2 x ), lalu mengurangkan nilai yang didapat dengan rata-rata dari data orang yang terdapat pada database.
b. Menghitung eigenspace dari gambar baru yang didapat, dengan mengalikan data 1 dimensi dengan eigenface dari proses training.
c. Merekonstruksi data yang baru didapat dari proses tadi, lalu membandingkannya dengan data 1 dimensi. Hasilnya akan dihitung lagi menggunakan proses euclidean distance, seperti pada persamaan 2.15. d. Lakukan proses diatas sampai semua data pada database training selesai
6. Cari data yang memiliki nilai terkecil, lalu bandingkan dengan nilai threshold 1 yang didapatkan dari hasil melakukan percobaan beberapa kali pada sebuah objek pengenalan.
7. Jika hasil lebih kecil dari threshold 1, berarti objek yang ditentukan adalah wajah. Jika nilai terkecil yang terdeteksi lebih dari tershold 1 maka sistem akan mendeteksi objek tersebut sebagai objek lain dan bukan wajah, lalu sistem akan mencari objek baru dengan kembali melakukan deteksi wajah.
8. Lalu proses selanjutnya adalah melakukan pengecekan apakah nilai terkecil tadi kurang dari nilai dari threshold 2. Jika nilai lebih kecil dari threshold 2 maka wajah tersebut merupakan wajah yang ada dalam database, tapi jika nilai lebih dari threshold 2 maka objek tersebut adalah wajah yang tidak terdapat pada database yang sudah ada.
9. Setelah itu proses selanjutnya adalah mencocokkan hasil nama dari objek yang terdeteksi tadi dengan nama yang diinputkan oleh user pada awal proses. Jika hasilnya sama, maka sistem akan menampilkan data dari orang yang terdeteksi itu tadi.
10. Hal ini dilakukan sampai didapatkan orang yang sesuai dengan nama yang dicari oleh user pada awal proses recognition ini.
3.5. Inisialisasi Robot
Tahap-tahap inisialisai Robotino meliputi cara-cara setting koneksi Robotino, pergerakan Robotino, penerimaan data citra serta streaming citra Robotino. Untuk kendali Robotino digunakan OpenRobotinoAPI (Application
untuk Robotino, yang diciptakan untuk mempermudah user dalam membuat program pada Robotino. Library ini memungkinkan akses penuh terhadap sensor dan actuator pada Robotino. Komunikasi antara Robotino dengan PC melalui jaringan TCP atau UDP menggunakan media wireless. Untuk mengakses OpenRobotinoAPI pada program harus menggunakan header Robotino untuk bahasa Microsoft Visual Csharp, yaitu using rec.robotino.com dan using rec.robotino.com.examples.client.
3.5.1. Koneksi Robotino
Untuk menghubungkan komputer dengan Robotino pada sistem ini dengan memanfaatkan media wireless. Komputer akan melakukan koneksi dengan access
point yang sudah terintegrasi pada Robotino. Pada prototipe fungsi
com.setAddress(hostname) yang akan digunakan untuk memberikan alamat IP yang akan diakses. Untuk simulasi pada Robotino SIM menggunakan alamat IP 128.0.0.1:8080, sedang untuk koneksi langsung pada access point Robotino, secara
default alamat IP yang digunakan adalah 172.16.1.1.
Kemudian digunakan prototipe fungsi com.connect(blockUntilConnected) dimana function blocks ini digunakan untuk menghubungkan koneksi dari PC ke
access point Robotino atau simulasi, dan akan bekerja apabila koneksi sudah
3.5.2. Pergerakan Robotino
Robotino memiliki sistem pergerakan omni-directional drive dengan menggunakan 3 roda yang terpasang, sehingga memungkinkan robot ini untuk bergerak maju, mundur, ke samping, dan ke segala arah serta berputar ditempat. Berikut gambar sistem omni-directional drive Robotino pada Gambar 3.13.
Gambar 3.13 Omni-Directional Drive Pada Robotino
Untuk pergerakan Robotino digunakan fungsi setVelocity yang memiliki parameter vx, vy, dan omega. Parameter vx adalah parameter kecepatan pada sumbu x dan vy adalah parameter kecepatan untuk sumbu y, dengan ketentuan parameter vx dan vy dalam satuan mm/s. Dan omega merupakan parameter kecepatan sudut dengan ketentuan parameter omega dalam satuan deg/s.
3.5.3. Penerimaan Data Citra
Setiap data citra yang dikirimkan dari webcam Robotino diakses dengan
pointer bertipe const unsigned char. Karena resolusi default dari Robotino adalah
Ketika fungsi setStreaming bernilai true, fungsi imageReceivedEvent akan terus melakukan streaming citra hingga koneksi diputuskan atau saat setStreaming bernilai false. Penerimaan data citra akan ditampung pada sebuah variabel bertipe data Image<Bgr,byte>. Ketika fungsi setStreaming di set dengan nilai true, maka fungsi imageReceivedEvent langsung menangkap data citra secara streaming. Fungsi imageReceivedEvent perlu dideklarasikan sebagai class baru karena fungsi tersebut adalah fungsi virtual, namun untuk penulisannya harus disertakan fungsi induknya (parent) karena class yang dibuat adalah class turunan (inheritance).
berikut potongan program untuk menampilkan gambar hasil dari webcam pada Robotino:
1. Potongan program pada main form
robot.ImageReceived += new Robot.ImageReceivedEventHandler
(robot_ImageReceived) ;
void robot_ImageReceived(Robot sender, Image Img) {
2. Program pada class robot
} }
Data citra yang ditangkap adalah data citra dengan ruang warna RGB dan disimpan langsung pada variabel frame2 dengan tipe data Image<Bgr,byte> yaitu stuktur data untuk penyimpanan data citra pada EmguCV sebagai pengganti Iplimage pada OpenCV. Namun urutan channel data dalam frame2 adalah BGR sehingga untuk menampilkan warna sesungguhnya, harus dikonversikan terlebih dahulu dengan fungsi frame2.convert<Gray,byte> seperti baris perintah seperti berikut:
gray_img = frame2.Convert<Gray, byte>();
Untuk menampilkan data citra yang sudah tersimpan pada frame2 kedalam
window baru digunakan prototipe fungsi pada library EmguCV dengan cara:
pictureBox_frame_proc.Image = frame2.ToBitmap();
Dengan proses tadi, webcam yang sudah terintegrasi dengan Robotino akan dapat ditampilkan pada sebuah window.
3.6. Perancangan Sistem
3.6.1. Konfigurasi EmguCV
EmguCV adalah library tambahan yang menjembatani hubungan antara
compiler Csharp dengan library OpenCV. Untuk menggunakan library ini perlu
1. Menginstall library EmguCV yang dapat bekerja pada versi compiler yang digunakan pada sebuah direktori yang sudah ditentukan.
2. Selanjutnya masuk ke dalam file direktori tempat proses instal tadi dilakukan,
copy file yang dibutuhkan dengan ekstensi .dll, lalu simpan pada direktori
program.
3. Lalu proses selanjutnya masuk pada program, pilih reference > add reference lalu pilih library mana saja yang akan digunakan pada program.
4. Proses terakhir menulis header dari library yang akan digunakan pada program. Lalu cek dengan melakukan run apakah ada yang masih kurang benar pada proses ini.
3.6.2. Interface Sistem
Gambar 3.14 Interface main program
Pada Gambar 3.14 merupakan interface dari program dimana semua proses yang ada pada sistem ini akan dilakukan melalui GUI (graphical user interface). Pada sistem ini ada beberapa proses yang dilakukan, seperti pengolahan citra, proses identifikasi wajah, proses inisialisasi kamera, dan proses perhitungan PCA. Semua proses tadi akan dikelompokkan menjadi dua proses utama, yaitu:
1. Training
Pada Gambar 3.15 dapat dilihat bahwa pada form ini terdapat beberapa komponen yang digunakan untuk mewakili proses apa saja yang dilakukan pada proses
training. Dari komponen yang digunakan, tiap komponen memiliki fungsinya
masing-masing, antara lain:
1. Picturebox:
a. Picturebox 1: menampilkan gambar hasil dari proses capture.
b. Picturebox 2: menampilkan gambar hasil dari proses perhitungan rata-rata
dari satu set gambar yang didapat pada proses capture.
c. Picturebox 3: menampilkan gambar hasil dari proses perhitungan eigenface.
d. Picturebox 4: menampilkan gambar hasil dari kamera / webcam pada
komputer atau laptop.
2. Checkbox: berfungsi untuk memilih mode autocapture. Saat checkbox ini
bernilai true maka proses capture akan dilakukan sebanyak 10 kali, tanpa harus menekan button capture berkali-kali.
3. Textbox: untuk melakukan input nama dari orang yang melakukan training
wajah.
4. Button:
a. Button Start : melakukan inisialisasi kamera yang terpasang pada
komputer atau laptop yang digunakan.
b. Button Save : melakukan penyimpanan data pada direktori yang sudah
ditentukan, sekaligus semua proses pengolahan citra dan PCA berada pada
c. Button Capture : melakukan pengambilan gambar dari wajah yang
terdeteksi.
d. Button Clear : menghapus data yang telah diperoleh, untuk dapat
melakukan proses training dari awal lagi.
e. Button next : menampilkan data selanjutnya dari kumpulan data
gambar yang didapat. Ada 2 button yang memiliki fungsi sama, untuk data wajah yang telah tercapture dan data eigenface.
f. Button previous : menampilkan data sebelumnya dari kumpulan data
gambar yang didapat. Ada 2 button yang memiliki fungsi sama, untuk data wajah yang telah tercapture dan data eigenface.
2. Recognition
Gambar 3.16 Interface recognition proses
Pada Gambar 3.16 terdapat beberapa komponen yang digunakan pada proses
recognition, antara lain:
1. Picturebox : menampilkan gambar hasil streaming dari kamera yang
2. Checkbox :
a. Checkbox gerak robot manual : berfungsi untuk menampilkan button yang
digunakan untuk memerintahkan robot untuk bergerak. Ada button maju, mundur, ke kanan, ke kiri, berputar, dan berhenti.
b. Checkbox mode pelatihan : berfungsi untuk memulai proses training
yang dijelaskan pada Gambar 3.11.
3. Label : menampilkan informasi koneksi antara komputer dengan
Robotino.
4. Combobox :
a. Combobox mode Robotino : menampilkan pilihan mode yang
bisa dilakukan dengan Robotino. Ada 2 mode yang disediakan, mode demo yang akan menghubungkan komputer dengan Robotino SIM Demo dan mode
real yang akan menghubungkan komputer langsung dengan access point pada
Robotino.
b. Combobox nama file train : menampilkan nama-nama dari orang yang
sudah melakukan training wajah.
5. Textbox :
a. Textbox Info file : textbox ini akan menampilkan informasi dari data
wajah yang terdeteksi.
b. Textbox status : menampilkan status apakah orang yang dicari sudah
ditemukan atau belum.
6. Button :
a. Button connect : untuk memerintahkan komputer dalam melakukan
program. Alamat IP 127.0.0.1:8080 untuk koneksi dengan Robotino SIM Demo dan IP 172.26.1.1 untuk melakukan koneksi dengan access point pada Robotino.
Button find : melakukan perintah pada komputer untuk mengaktifkan
kamera yang terintegrasi, lalu proses load data dari database juga dilakukan. Saat proses pendeteksian dimulai dan wajah ditemukan, proses perhitungan PCA dimulai, untuk menentukan apakah wajah tersebut adalah wajah yang dicari atau bukan.
3.7. Metode Pengujian dan Evaluasi Sistem
Dalam pengujian sistem ini pengujian akan dilakukan pada Robotino dan aplikasi pada PC yang telah selesai dibuat. Pengujian yang dilakukan dimulai dari menghubungkan koneksi ke Robotino, menggerakkan Robotino, streaming kamera Robotino, pengambilan citra dari kamera PC, pendeteksian wajah, pengolahan citra, penerapan metode principal component analysis, pengujian pengenalan pada wajah dengan beberapa kondisi, dan yang terakhir adalah pengujian sistem secara keseluruhan yaitu Robotino dapat menemukan wajah yang telah ditentukan.
3.7.1. Pengujian dan Evaluasi Koneksi Robotino