• Tidak ada hasil yang ditemukan

TA : Aplikasi Pengenalan Wajah Pada Mobile Robot Omnidirectional Menggunakan Metode Principal Component Analysis (PCA).

N/A
N/A
Protected

Academic year: 2017

Membagikan "TA : Aplikasi Pengenalan Wajah Pada Mobile Robot Omnidirectional Menggunakan Metode Principal Component Analysis (PCA)."

Copied!
108
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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.

(13)

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)

(14)

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.

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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.

(21)

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

(22)

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

(23)

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

(24)

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.

(25)

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

(26)

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

(27)

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.

(28)

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.

(29)

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 : . . . � .

(30)

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.

(31)

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 = − =

(32)

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.

(33)

�̅ = ∑ � �

=

.

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 : . . . � .

(34)

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 Ω� .

(35)

Ω� = [ɷ ɷ … ɷ ] .

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 :

� = [

(36)

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 :

+ + … + =

+ + … + =

+ + … + =

+ + … + = .

(37)

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

(38)

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

(39)

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

(40)

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.

(41)

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

(42)

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.

(43)

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

(44)

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).

(45)

Gambar 2.11 Library dari EmguCV (EmguCV, 2012)

2.13. OpenRobotino API

(46)

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

(47)

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.

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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()

(57)

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

(58)

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)

(59)

for (j = 0; j < Maks_Dim; j++) sebuah direktori untuk digunakan sebagai database pada proses recognition nanti.

3.4.4. Diagram Alir Subproses Recognition

(60)

Mulai Gambar Tes – Gambar Reconstruksi

Proyeksikan data

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

(66)

} }

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

(67)

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

(68)

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

(69)

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

(70)

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

(71)

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

(72)

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

Gambar

Gambar 2.8 Macam-macam variasi feature pada Haar
Gambar 2.9 Integral Image
Gambar 2.10 Model classifier secara cascade
Gambar 2.11 Library dari EmguCV (EmguCV, 2012)
+7

Referensi

Dokumen terkait

Hasil penelitian diperoleh ada hubungan status gizi dengan kejadian anemia pada remaja di SMA PGRI Pekanbaru, dengan OR 4,2 dan P value

Sehingga kepercayaan tersebut memunculkan hubungan sosial yang terjalin antara: (1) Hubungan sosial yang terjadi antara Tengkulak dan makelar menciptakan kepercayaan

(1998), karakter letak tongkol mempunyai peran besar dan positif terhadap hasil. Kedua karakter tersebut akan memberi sumbangan yang nyata baik terhadap kuantitas maupun kualitas

Simpanan berjangka (Time deposits) Tabungan (Savings Deposit) Pinjaman yang diterima (Loans received) Surat berharga (Securities) Lainnya (Others) Bukan penduduk (Non-Citizens).

Rentang normalisasi data akan dilakukan sesuai dengan fungsi aktivasi yang digunakan Dinormalisasi dalam rentang [0,1] untuk contoh Sistem Pendukung Keputusan

Dari hasil penelitian setelah dilakukan perawatan luka di rumah pada pasien ulkus diabetes melitus terdapat pengaruh kecemasan yang semula sebelum dilakukan

Menurut SNI Pd T-14-2003 mengenai perencanaan tebal perkerasan jalan beton semen, apabila tanah dasar mempunyai nilai CBR lebih kecil dari 2%, maka harus dipasang pondasi bawah

Hutahaean (2008b) memperbaiki koefisien momentum dengan mengggunakan pendekatan asimtotis gelombang panjang dari Dean (1984) dan menggunakan persamaan keseimbangan momentum