PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
TUGAS AKHIR
PENGENALAN ANGKA DENGAN POSE JARI TANGAN Diajukan untuk memenuhi syarat Memperoleh gelar Sarjana Teknik pada Program Studi Teknik Elektro
disusun oleh : DIRGA EKA PUTRA LEBUKAN NIM : 135114015
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
FINAL PROJECT
NUMBER RECOGNITION WITH HAND FINGER POSE In a partial fulfillment of the requirements for the degree of Sarjana Teknik Electrical Engineering Study Program
created by : DIRGA EKA PUTRA LEBUKAN Student’s Number : 135114015
ELECTRICAL ENGINEERING STUDY PROGRAM DEPARTMENT OF ELECTRICAL ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2017
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSETUJUAN TUGAS AKHIR
PENGENALAN ANGKA DENGAN POSE JARI TANGAN (NUMBER RECOGNITION WITH HAND FINGER POSE)
disusun oleh : DIRGA EKA PUTRA LEBUKAN NIM : 135114015
telah disetujui oleh :
Pembimbing I
Dr. Ir. Linggo Sumarno, M.T.
Tanggal :
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PENGESAHAN TUGAS AKHIR
PENGENALAN ANGKA DENGAN POSE JARI TANGAN (NUMBER RECOGNITION WITH HAND FINGER POSE) disusun oleh : DIRGA EKA PUTRA LEBUKAN NIM : 135114015 Telah dipertahankan di depan tim penguji pada tanggal 26 Januari 2017 dan dinyatakan memenuhi syarat
Susunan Tim Penguji : Nama Lengkap
Tanda Tangan
Ketua
: Dr. Ir. Iswanjono, M.T.
Sekretaris
: Dr. Ir. Linggo Sumarno, M.T.
Anggota
: Dr. Damar Widjaja, S.T., M.T. Yogyakarta, Fakultas Sains dan Teknologi Universitas Sanata Dharma Dekan,
Sudi Mungkasi, S.Si, M.Math.Sc., Ph.D.
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana karya ilmiah.
Yogyakarta, 2 Januari 2017
Dirga Eka Putra Lebukan
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSEMBAHAN MOTTO HIDUP
MOTTO :
WHEN YOU HAVE A YOU HAVE TO
CHANCE TRY
Skripsi ini kupersembahkan untuk …. Yesus Kristus dan Bunda Maria yang selalu menyertai dan menuntunku dalam setiap hari-hariku Papa dan Mama tercinta yang selalu mendoakan dan mendukungku Teman-teman seperjuangan Teknik Elektro 2013 yang selalu mewarnai hari-hariku
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama
: DIRGA EKA PUTRA LEBUKAN
Nomor Mahasiswa
: 135114015
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul :
PENGENALAN ANGKA DENGAN POSE JARI TANGAN Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Dengan ini pernyataan yang saya buat dengan sebenarnya.
Yogyakarta, 2 Januari 2017 Penulis
Dirga Eka Putra Lebukan
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
INTISARI Pengolahan citra adalah suatu bidang yang berhubungan proses transformasi citra yang bertujuan untuk mendapatkan kualitas citra yang lebih baik. Teknologi pengolahan citra ini, sangat berkembang pesat dan banyak juga dikenal oleh para insinyur di dunia. Salah satu penerapan dari teknologi pengolahan citra tersebut adalah pengenalan angka dengan pose jari tangan. Sistem pengenalan angka dengan pose jari tangan yang dibuat ini adalah pengenalan pola angka bahasa isyarat ASL (American Sign Language) dari 0 s/d 9, dengan jarak pengujian yang digunakan ialah 1 m, 1,5 m, 2 m, 2,5 m, dan 3 m. Secara garis besar beberapa proses kerja dari sistem ini ialah pengambilan citra pose jari tangan berupa citra Red, Green, and Blue (RGB), konversi citra RGB ke citra Hue Saturation Value (HSV), segmentasi HSV, cropping dan resizing, perhitungan korelasi (template matching), serta penentuan keluaran. Proses segmentasi HSV pada penelitian ini, bertujuan untuk mengambil objek yang ingin dikenali pada citra, yaitu bagian kulit (muka dan tangan). Sedangkan pada proses template matching, perhitungan nilai korelasi dilakukan berdasarkan perbandingan antara database citra yang telah dimasukkan dan citra pose jari tangan yang telah diambil dengan menggunakan webcam (data uji). Pengujian secara real time pada penelitian ini menggunakan jarak terjauh 3 meter, dengan menghasilkan tingkat pengenalan sebesar 88 %. Hasil ini diperoleh dari hasil ekstraksi ciri 32 x 32 piksel.
Kata Kunci : Pengolahan Citra, American Sign Language, Red, Green, and Blue, Hue Saturation Value, Korelasi, Template Matching, Database, Ekstraksi Ciri.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT Image processing is a field that related to the image transformation for get a better image quality. This image processing technology, is grown rapidly and also known by many engineers in the world. One application of the image processing technology is number recognition with hand finger pose. Number recognition with hand finger pose system is number pattern recognition of ASL (American Sign Language) sign from 0 until 9, the used testing distance is 1 m, 1.5 m, 2 m, 2.5 m and 3 m. In outline, some of the workings of this system are capture the hand finger pose that form of the image is Red, Green, and Blue (RGB), the conversion of the RGB image into Hue Saturation Value (HSV), HSV segmentation, cropping and resizing, calculate the correlation (template matching), and determination of the output. HSV segmentation process in this study is aiming to take the object that will be recognized in the image, which is part of the skin (face and hand). While in the template matching process, calculation of correlation value is based on a comparison between the image database that has been inputted and the hand finger pose image that has been captured using a webcam (test data). Testing in real time on this study uses 3 meters of the longest distance, with result of recognition rate is 88 %. This result was obtained from the feature extraction of 32 x 32 pixels.
Keywords: Image Processing, American Sign Language, Red, Green, and Blue, Hue Saturation Value, Correlation, Template Matching, Database, Feature Extraction.
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus karena berkat rahmat dan penyertaan-Nya penulis dapat menyelesaikan laporan tugas akhir ini dengan baik dan lancar. Laporan tugas akhir ini disusun untuk memenuhi syarat memperoleh gelar sarjana, khususnya dibidang Teknik Elektro. Pada proses penulisan laporan tugas akhir ini, penulis menyadari bahwa ada banyak pihak yang telah memberikan perhatian dan bantuannya sehingga dapat terlesaikan dengan baik. Oleh karena itu, penulis ingin mengucapkan terima kasih kepada : 1. Tuhan Yesus Kristus dan Bunda Maria atas penyertaan-Nya. 2. Sudi Mungkasi, S.Si, M.Math.Sc., Ph.D., selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma. 3. Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Program Studi Teknik Elektro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma. 4. Dr. Ir. Linggo Sumarno, M.T., selaku dosen pembimbing dengan penuh pengertian dan kesabaran dalam memberi bimbingan, kritik, saran, serta motivasi kepada penulis untuk menyelesaikan laporan tugas akhir ini. 5. Dr. Ir. Iswanjono, M.T. dan Dr. Damar Widjaja, S.T., M.T., selaku dosen penguji yang telah memberikan masukan, bimbingan, saran untuk merevisi laporan tugas akhir ini. 6. Bapak dan ibu dosen yang telah mengajarkan banyak hal selama penulis menempuh pendidikan di Program Studi Teknik Elektro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma. 7. Para staff sekretariat Teknik Elektro, atas bantuannya dalam membantu dan melayani mahasiswa. 8. Kedua orang tuaku serta keluarga besarku, atas doa dan dukungannya kepada penulis. 9. Para sahabat Teknik Elektro 2013 atas doa dan dukungannya agar penulis tetap semangat dalam menyelesaikan laporan tugas akhir ini. 10. Semua pihak yang tidak dapat disebutkan satu persatu atas dukungan dan bantuan yang telah diberikan dalam penyelesaian laporan tugas akhir ini. x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Pada akhirnya, penulis sangat menyadari bahwa laporan tugas akhir ini masih terdapat banyak kekurangan. Oleh karena itu, penulis sangat mengharapkan masukan, kritik dan saran yang sifatnya membangun agar laporan tugas akhir ini nantinya bisa menjadi lebih baik dan dapat bermanfaat sebagaimana mestinya.
Penulis
Dirga Eka Putra Lebukan
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
HALAMAN JUDUL ………………………………………………………………..
i
HALAMAN PERSETUJUAN ……………………………………………………...
iii
HALAMAN PENGESAHAN ………………………………………………………
iv
PERNYATAAN KEASLIAN KARYA …………………………………………....
v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ………………………….
vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ……………………………………………………
vii
INTISARI ………………………………………………………………………….
viii
ABSTRACT ……………………………………………………………………….
ix
KATA PENGANTAR ……………………………………………………………..
x
DAFTAR ISI ………………………………………………………………………
xii
DAFTAR GAMBAR ………………………………………………………………
xv
DAFTAR TABEL …………………………………………………………………
xviii
BAB I : PENDAHULUAN ……………………………………………………….
1
1.1. Latar Belakang …………………………………………………………..
1
1.2. Tujuan dan Manfaat Penelitian ………………………………………….
2
1.3. Batasan Masalah ………………………………………………………...
2
1.4. Metodologi Penelitian …………………………………………………..
3
BAB II : DASAR TEORI ………………………………………………………….
5
2.1. Jari Tangan ……………………………………………………………….
5
2.2. Pengolahan Citra ………………………………………………………...
6
2.2.2. Citra Red, Green, and Blue (RGB) ………………………………..
7
2.3. Hue Saturation Value (HSV) ……………………………………………
8
2.4. Wavelet …………………………………………………………………..
11
2.4.1. Wavelet Secara Umum …………………………………………….
11
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.4.2. Wavelet Haar ……………………………………………………….
13
2.4.3. Konvolusi …………………………………………………………..
14
2.5. Template Matching dan Korelasi ………………………………………..
16
2.6. Database Citra …………………………………………………………..
17
2.7. Webcam …………………………………………………………………
17
BAB III : RANCANGAN PENELITIAN ………………………………………
19
3.1. Perancangan Sistem …………………………………………………….
19
3.2. Proses Kerja Sistem ………………………………………………….…
20
3.2.1. Input Data ………………………………………………………….
20
3.2.2. Konversi Citra RGB ke HSV ……………………………………...
20
3.2.3. Segmentasi HSV …………………………………………………..
21
3.2.4. Cropping dan Resizing …………………………………………….
22
3.2.5. Ekstraksi Ciri Wavelet ……………………………………………..
23
3.2.6. Perhitungan Korelasi (Template Matching) ……………………….
27
3.2.7. Penentuan Keluaran ……………………………………………….
28
3.3. Database ……………………………………………………………….
29
3.4. Pengujian Pose Jari Tangan ……………………………………………
33
3.4.1. Pengujian secara Real Time ……………………………………...
33
3.4.2. Pengujian secara Non Real Time ………………………………...
33
3.5. Analisis Data Pengujian ……………………………………………….
33
3.6. Ruangan Pengujian dan Pencahayaan …………………………………
34
3.6. Perancangan Tampilan GUI ……………………………………………
35
BAB IV : HASIL DAN PEMBAHASAN………………………………………...
40
4.1. Langkah – langkah Menjalankan Program ……………………………...
40
4.1.1. Langkah – langkah untuk Menjalankan Program secara Real Time ………………………………………..
40
4.1.2. Langkah – langkah untuk Menjalankan Program secara Non Real Time …………………………………..
44
4.2. Penjelasan Sintaks Program …………………………………………….
46
4.2.1. Penjelasan Sintaks Program secara Real Time …………………...
46
4.2.1. Penjelasan Sintaks Program secara Non Real Time ………………
53
4.3. Analisis Hasil Data Pengujian …………………………………………..
54
4.3.1. Analisis Hasil Data Pengujian secara Real Time …………………
57
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.3.2. Analisis Hasil Data Pengujian Secara Non Real Time ……………
59
BAB V : KESIMPULAN DAN SARAN ………………………………………...
63
5.1. Kesimpulan …………………………………………………………….
63
5.2. Saran ……………………………………………………………………
63
DAFTAR PUSTAKA …………………………………………………………….
64
LAMPIRAN
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR Halaman Gambar 2.1. Jari Tangan ………………………………………………………….
5
Gambar 2.2. Bentuk Isyarat Angka 0-9 …………………………………………..
6
Gambar 2.3. Proses Pembentukan Citra ………………………………………….
7
Gambar 2.4. Reprentasi Warna pada RGB ………………………………………
8
Gambar 2.5. Ruang Warna HSV ………………………………………………...
9
Gambar 2.6. Skala Warna HSV …………………………………………………
9
Gambar 2.7. Contoh Sintaks Program untuk Mengkonversi Citra RGB ke HSV, beserta Memplot dan Menampilkan Citranya dengan menggunakan Sintaks subplot dan imshow. …………………………………….
10
Gambar 2.8. (a) Citra RGB (b) Citra HSV ………………………………………
10
Gambar 2.9. Algoritma Pyramid ………………………………………………..
11
Gambar 2.10. Wavelet Haar …………………………………………………….
14
Gambar 2.11. Representasi Matriks dari Penjumlahan Konvolusi, y = [ 6 25 45 39 16 12] ………………………………………………………….
15
Gambar 2.12. Webcam Logitech C270 yang digunakan dalam Penelitian ……..
17
Gambar 3.1. Diagram Blok Sistem ……………………………………………..
19
Gambar 3.2. Diagram Alir dari Proses Konversi Citra RGB ke HSV …………
21
Gambar 3.3. Diagram Alir dari Proses Segmentasi HSV ………………………
22
Gambar 3.4. Diagram Alir dari Proses Cropping ………………………………
23
Gambar 3.5. Diagram Alir dari Proses Resizing ……………………………….
23
Gambar 3.6. Diagram Alir dari Proses Ekstraksi Ciri …………………………
25
Gambar 3.7. Diagram Alir dari Proses Konvolusi ……………………………..
26
Gambar 3.8. Diagram Alir dari Proses Downsampling ………………………..
26
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 3.9. Diagram Alir dari Proses Perhitungan Korelasi (Template Matching) ……………………………………
27
Gambar 3.10. Diagram Alir dari Proses Penentuan Keluaran …………………
27
Gambar 3.11. Diagram Blok Proses Pembentukan Database ………………....
30
Gambar 3.12. Ruangan Tugas Akhir Teknik Elektro USD yang digunakan dalam Pengambilan Data ………………………………………...................................
34
Gambar 3.13. Tata Pencahayaan Ruangan Tugas Akhir Teknik Elektro USD ……………………………………………………………
34
Gambar 3.14. Tampilan GUI Sistem Pengenalan Angka dengan Pose Jari Tangan ………………………………………………………
35
Gambar 3.15. Diagram Alir Proses yang Terdapat pada GUI ………………...
36
Gambar 4.1. Icon Matlab R2010a …………………………………………….
40
Gambar 4.2. Tampilan Utama Matlab R2010a ……………………………….
41
Gambar 4.3. Directory D:\TE\TA Lokasi disimpannya File GUI …………....
41
Gambar 4.4. Pemanggilan File GUI ………………………………………….
42
Gambar 4.5. GUI Software Pengenalan Angka dengan Pose Jari Tangan ……
42
Gambar 4.6. Pemilihan Variasi Desimasi …………………………………….
43
Gambar 4.7. Contoh Ketika GUI dijalankan untuk Pengujian Angka 9 dengan Variasi Desimasi = 3 …………………………………………………
43
Gambar 4.8. Pemanggilan File Program secara Non Real Time …………….
44
Gambar 4.9. Memasukkan Nilai Desimasi, Misalnya Desimasi = 2 …………
44
Gambar 4.10. Citra Hasil Cropping ………………………………………….
44
Gambar 4.11. Citra Hasil Resizing …………………………………………..
45
Gambar 4.12. Citra Hasil Ekstraksi Ciri Wavelet dengan Desimasi = 2 ……
45
Gambar 4.13. Hasil Keluaran Teks pada Command Window Matlab ……….
46
Gambar 4.14. Icon Software Logitech Webcam …………………………….
53
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.15. Software Logitech Webcam pada saat Pengambilan Foto Data Uji …………………………………………….
53
Gambar 4.16. Grafik Hasil Pengujian Real Time …………………………...
58
Gambar 4.17. Grafik Hasil Pengujian Non Real Time ……………………...
60
Gambar 4.18. Percobaan di Ruang Tugas Akhir Teknik Elekro USD (1) …
61
Gambar 4.19. Percobaan di Ruang Tugas Akhir Teknik Elekro USD (2) …
62
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL Halaman Tabel 4.1. Proses Cropping sesuai Bounding Box ……………………………….
50
Tabel 4.2. Hasil Desimasi 1 s/d 3 pola Angka ASL 0-9 pada 5 Variasi Jarak ……
54
Tabel 4.3. Hasil Pengujian Real Time …………………………………………….
58
Tabel 4.4. Hasil Pengujian Non Real Time ………………………………………..
59
xviii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN
1.1.
Latar Belakang Seiring dengan kemajuan teknologi hingga saat ini, begitu banyak teknologi
terobosan baru diciptakan guna untuk membantu manusia dalam hal-hal tertentu, misalnya dalam hal pembelajaran. Salah satu teknologi yang saat ini berkembang pesat dan banyak juga dikenal oleh para insinyur di dunia ialah teknologi image processing atau biasa disebut dalam bahasa Indonesia ialah pengolahan citra. Pengolahan citra atau image processing merupakan bidang yang berhubungan proses transformasi citra yang bertujuan untuk mendapatkan kualitas citra yang lebih baik [1]. Salah satu contoh aplikasi image processing adalah pengenalan angka dengan pose jari tangan, dengan pola angka yang dikenali ialah pola isyarat angka American Sign Language (ASL). Pada proses pengenalan, tidak semua objek akan dikenali dan digunakan. Metode yang berfungsi untuk mereduksi piksel dibutuhkan, lalu kemudian akan digunakan sebagai ciri. Proses ini dinamakan sebagai ekstraksi ciri. Sistem pengenalan bahasa isyarat ASL melalui jari tangan ini sebelumnya sudah pernah dilakukan, dengan pola yang dikenali ialah huruf A-Z pada ASL [2]. Metode yang digunakan ialah Personal Component Analysis (PCA) dan Haar Like Feature. Selain itu, software yang digunakan untuk membuat sistem ini ialah C Sharp dan library EmguCV. Jarak pengujian pada sistem ini ialah 10 - 90 cm. Pada penelitian ini, peneliti membuat sistem pengenalan angka 0-9 dengan pose jari tangan sesuai dengan pola isyarat ASL menggunakan software Matlab, serta menggunakan metode yang berbeda dari penelitian sebelumnya. Metode yang dimaksud ialah metode ekstraksi ciri Wavelet dan metode pengenalan Template Matching. Selain itu, jarak pengujian yang digunakan pada sistem ini ialah 1 - 3 m. Jarak pengujian ini mengacu pada aturan komunikasi nonverbal dalam kategori personal (75-120 cm) dan sosial (120-210 cm atau 210-360 cm) [3].
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
Secara garis besar proses kerja dari sistem ini ialah mengambil citra pose jari tangan berupa citra Red, Green, and Blue (RGB), konversi citra RGB ke citra Hue Saturation Value (HSV), segmentasi HSV, cropping dan resizing, perhitungan korelasi (template matching), serta penentuan keluaran. Proses segmentasi HSV pada penelitian ini, bertujuan untuk mengambil objek yang ingin dikenali pada citra yang telah diambil. Sedangkan pada proses template matching, perhitungan nilai korelasi dilakukan berdasarkan perbandingan antara database citra yang telah dimasukkan dan citra pose jari tangan yang telah diambil dengan menggunakan webcam (data uji). Hasil dari proses pengenalan angka dengan pose jari tangan ini akan ditampilkan dengan berupa teks.
1.2.
Tujuan dan Manfaat Penelitian Tujuan dari penelitian ini adalah menghasilkan sistem pengenalan karakter angka 0-
9 berdasarkan pola isyarat ASL. Manfaat dari penelitian ini adalah : a. Untuk penelitian awal pengenalan kode angka berdasarkan pola isyarat ASL. b. Untuk media pembelajaran bahasa isyarat pola ASL.
1.3.
Batasan Masalah Dalam proses pembuatan software pengenalan angka dengan pose jari tangan,
peneliti menetapkan beberapa batasan masalah dalam penelitian ini, antara lain : a. Angka yang dapat dikenali ialah angka 0 s/d 9. b. Menggunakan pola isyarat angka jenis American Sign Language. c. Jarak pengujian antara webcam dan jari tangan yang digunakan ialah 1 m, 1,5 m, 2 m, 2,5 m, dan 3 m. d. Warna background yang digunakan ialah hitam. e. Orientasi jari tangan ialah tegak. f. Segmentasi yang digunakan berdasarkan Hue Saturation Value (HSV).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
g. Ekstraksi ciri yang digunakan ialah Wavelet. h. Metode pengenalan yang digunakan ialah Template Matching. i. Resolusi kamera webcam yang digunakan ialah 3 MP (2048 x 1536 piksel). j. Input citra jari tangan berupa citra Red, Green, and Blue (RGB). k. Penguji menggunakan lengan panjang. l. Tangan kiri penguji diletakkan di belakang. m. Desimasi yang digunakan ialah desimasi 1 (32 x 32 piksel), desimasi 2 (16 x 16 piksel), dan desimasi 3 (8 x 8 piksel). n. Ouput berupa teks. o. Pencahayaan dalam pengambilan citra pose jari tangan dikondisikan sedemikian rupa sehingga tidak menimbulkan efek silau pada citra. p. Hasil pengenalan real time dan non real time. q. Menggunakan software Matlab dalam pembuatan program.
1.4.
Metodologi Penelitian Langkah-langkah dalam pengerjaan penelitian ini:
a. Pengumpulan bahan-bahan referensi berupa buku dan jurnal-jurnal serta informasi dari website yang terpercaya. b. Perancangan software. Tahap ini bertujuan untuk mencari bentuk atau model yang optimal dari software yang akan dibuat dengan mempertimbangkan faktor-faktor permasalahan dan kebutuhan yang ditentukan. c. Pembuatan software. Sofware akan mulai bekerja ketika pada mulanya penguji mengambil citra pose jari tangan. Citra pose jari tangan berupa citra RGB, selanjutnya akan melalui beberapa proses yang lebih lanjut, yaitu konversi citra RGB ke citra HSV, segmentasi HSV,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
cropping dan resizing, perhitungan korelasi (template matching), serta penentuan keluaran. Hasil pengenalan dari citra pose jari tangan dilakukan dengan menekan push button pada GUI (secara real time) dan run pada M-File Window matlab (secara non real time). Semua proses dalam software ini akan diolah oleh komputer untuk mendapatkan hasil pengenalan. d. Analisa dan penyimpulan. Analisa dilakukan dengan menyelidiki besar tingkat pengenalan dan menggambar grafik dari tingkat pengenalan tersebut. Penyimpulan hasil percobaan dilakukan dengan melihat hasil tingkat pengenalan dan hasil data uji secara keseluruhan, serta hal-hal lainnya yang dapat ditarik sebagai kesimpulan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II DASAR TEORI
2.1.
Jari Tangan Jari merupakan suatu bagian tubuh yang berada pada tangan dan kaki manusia, baik
yang sebelah kiri ataupun kanan [4]. Pada manusia normal jari tangan sebanyak lima, yaitu:
1
2
3
4
5
Gambar 2.1. Jari Tangan Keterangan Gambar 2.1 : 1. Jempol atau ibu jari. 2. Jari telunjuk. 3. Jari tengah merupakan jari yang paling panjang di antara jari tangan. 4. Jari manis. 5. Jari kelingking. Jari tangan manusia sering digunakan sebagai alat komunikasi melalui gerakan pada jari tersebut. Salah satu contoh yang sering digunakan oleh para penyandang tunawicara, mereka berkomunikasi melalui gerak-gerakan yang mengandung arti tertentu.
5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6
Salah satu bentuk isyarat yang digunakan bagi para penyandang tunawicara ialah isyarat tentang pola angka seperti pada Gambar 2.2, yaitu untuk memperkenalkan angka 09 dengan menggunakan jari tangan dalam berbagai pose, karakter-karakter tersebut akan menunjukkan arti atau isyarat tentang pola angka.
0
1
5
6
2
3
4
7
8
9
Gambar 2.2. Bentuk Isyarat Angka 0-9 Gambar 2.2, merupakan isyarat bentuk angka pola American Sign Language [5]. Mode bahasa isyarat jenis ini yang paling banyak dikenal dan telah dipakai sebagai pedoman bahasa isyarat pada dunia internasional.
2.2.
Pengolahan Citra Citra (image) merupakan gambar pada bidang dua dimensi, dengan citra adalah
dimensi spasial atau bidang yang berisi informasi warna yang tidak bergantung waktu [6]. Jika pendekatan matematis dilakukan, citra adalah fungsi yang sifatnya menerus (continue) atas intensitas cahaya pada bidang dua dimensi. Sumber cahaya menerangi objek, objek memantulkan kembali seluruh atau sebagian berkas cahaya, kemudian ditangkap oleh alat optis atau elektro-optis. Citra terdiri atas piksel, dengan piksel merupakan sekumpulan titik-titik pada pada gambar. Titik-titik tersebut menggambarkan posisi koordinat dan mempunyai intensitas yang dapat dinyatakan dalam f(x,y), dengan (x,y) adalah koordinat pada bidang dua dimensi dan f(x,y) adalah intensitas cahaya (brightness) pada titik (x,y).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7
Karena cahaya merupakan bentuk energi, maka intensitas cahaya bernilai antara 0 sampai tak hingga (0 ≤ f( x,y) < ∞). Nilai f(x,y) adalah perkalian antara : 1. i(x,y) : Energi cahaya yang datang dari sumbernya (illumination), dengan nilai dari 0 sampai tak hingga, dan 2. r(x,y) : Derajat kemampuan objek memantulkan cahaya (reflection) dengan nilai antara 0 dan 1. Nilai 0 adalah penyerapan total, sedangkan nilai 1 adalah pemantulan total. Gambar 2.3 menunjukkan proses pembentukan intensitas cahaya. Sumber cahaya menyinari objek, besar pancaran cahaya yang diterima oleh objek pada koordinat (x,y) adalah i(x,y), setelah itu objek memantulkan cahaya yang diterima dengan derajat pemantulan r(x,y). Hasil perkalian antara i(x,y) dan r(x,y) merupakan intensitas cahaya pada koordinat (x,y) yang ditangkap oleh sensor visual pada sistem optis. Jadi dengan demikian f(x,y) = i(x,y).r(x,y) dengan : 0 ≤ i(x,y) < ∞ dan 0 ≤ r(x,y) ≤ 1, sehingga 0 ≤ f(x,y) < ∞.
Gambar 2.3. Proses Pembentukan Citra [6] Proses pra-pengolahan citra (image pre-prosessing) dilakukan untuk memperoleh citra yang mempunyai kualitas yang lebih baik daripada citra sebelumnya. Dengan cara memanipulasi parameter-parameter citra, akan menghasilkan bentuk yang lebih cocok terhadap nilai-nilai piksel citra tersebut untuk proses yang lebih lanjut.
2.2.1. Citra Red, Green, and Blue (RGB) Red (Merah), Green (Hijau) dan Blue (Biru) adalah warna dasar yang dapat ditangkap oleh mata manusia. Setiap piksel pada citra warna mewakili warna dari kombinasi ketiga warna dasar RGB. Setiap titik pada citra warna membutuhkan data sebesar 3 byte. Setiap
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
warna dasar memiliki intensitas tersendiri dengan nilai minimum nol (0) dan nilai maksimum 255 (8 bit). RGB berdasar pada teori bahwa mata manusia peka terhadap panjang gelombang 630 nm (merah), 530 nm (hijau), dan 450 nm (biru) [7].
Gambar 2.4. Reprentasi Warna pada RGB [7] Pada Gambar 2.4 di atas dapat dilihat bahwa : 1. RGB terdiri atas tiga warna utama, yaitu merah, hijau, dan biru. 2. Campuran antar dua warna pada RGB menghasilkan warna baru, yaitu : kuning = merah + hijau, cyan = hijau + biru, dan magenta = biru + merah. 3. Bila seluruh warna merah, hijau, dan biru dicampur akan menghasilkan warna putih.
2.3.
Hue Saturation Value (HSV) HSV mendefinisikan warna dalam terminologi Hue, Saturation, dan Value.
Keuntungan HSV ialah terdapat beberapa warna yang sama dengan yang mampu ditangkap oleh indra manusia [8]. Sedangkan warna yang dibentuk oleh model lainnya seperti RGB merupakan hasil campuran dari warna-warna primer.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
Gambar 2.5. Ruang Warna HSV [8] Model HSV pertama kali diperkenalkan oleh A.R Smith pada tahun 1978, yang ditunjukkan pada Gambar 2.5. Melalui model gambar tersebut, dapat diketahui bahwa HSV memiliki 3 karakteristik pokok, yaitu Hue, Saturation, dan Value. Berikut ini penjelasannya.
Hue : Menyatakan warna sebenarnya, seperti merah, violet, dan kuning. Serta digunakan menentukan kemerahan (redness), kehijauan (greeness), dan sebagainya.
Saturation : Kadang disebut chroma, adalah kemurnian atau kekuatan warna.
Value : Kecerahan dari warna. Nilainya berkisar antara 0-100 %. Apabila nilainya 0 maka warnanya akan menjadi hitam. Semakin besar nilai value, maka semakin cerah dan akan muncul variasi-variasi baru dari warna tersebut. Selain penjelasan di atas, berikut ini penjelasan tambahan tentang skala 3 komponen
warna HSV berdasarkan Gambar 2.6.
Gambar 2.6. Skala Warna HSV [9]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
Hue : Mewakili 360 derajat warna, dengan nilai warnanya dapat dilihat pada gambar (b).
Saturation : Pada panah horizontal yang berwarna hitam, mempunyai nilai antara 0 hingga 100 atau 0 sampai 1. Nilai 0 untuk warna putih dan jika semakin besar maka merujuk kepada warna asli dari hue.
Value : Pada panah vertikal yang berwarna putih, nilai sama dengan saturation. Nilai 0 mengacu pada hitam, sedangkan jika semakin besar akan menghasilkan warna asli dari hue. Untuk memperoleh citra HSV yang ingin dikonversi dari citra RGB pada software
matlab, sintaks program utama yang digunakan ialah rgb2hsv. Untuk lebih jelasnya, Gambar 2.7 dan 2.8 contoh pengimplementasiannya pada suatu citra.
Gambar 2.7. Contoh Sintaks Program untuk Mengkonversi Citra RGB ke HSV, beserta Menampilkan Citranya dengan Menggunakan Sintaks subplot dan imshow.
(a) Gambar 2.8. (a) Citra RGB (b) Citra HSV
(b)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
2.4. Wavelet 2.4.1. Wavelet Secara Umum Menurut Sydney [10], Wavelet merupakan gelombang mini (small wave) yang memiliki kemampuan dalam mengelompokkan energi citra dan terkonsentrasi pada sekelompok kecil koefisien, sedangkan kelompok koefisien lainnya hanya mengandung sedikit energi yang mampu dihilangkan tanpa mengurangi nilai informasinya. Wavelet telah banyak digunakan dalam berbagai bidang seperti pengolahan citra. Pada umumnya wavelet biasa digunakan untuk menyajikan data atau fungsi ke dalam komponen-komponen frekuensi yang berlainan. Proses ini dinamakan dengan proses dekomposisi dan kemudian mengkaji setiap komponen dengan suatu resolusi yang sesuai dengan skalanya. Transformasi wavelet merupakan pengubahan sinyal ke dalam berbagai basis wavelet dengan berbagai pergeseran dan penyekalaan. Oleh karena itu, koefisien wavelet dari beberapa skala atau resolusi dapat dihitung dari koefisien wavelet pada resolusi tinggi berikutnya. Hal ini memungkinkan pengimplementasian transformasi wavelet menggunakan struktur pohon yang dikenal dengan algoritma piramid (pyramid algorithm), yang dapat dilihat pada Gambar 2.9.
kolom h(n)
baris h(n)
2 1
1 2
CAj+1
1 2
CDj+1
1 2
CDj+1
1 2 112 2
CDj+1
kolom g(n) h(n) kolom
CAj
h(n)
baris g(n)
h(n)
2 1
kolom g(n) h(n)
Gambar 2.9. Algoritma Pyramid
(h)
(v)
(d)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
Keterangan Gambar 2.9 : baris X
: konvolusi baris dengan tapis g(n) atau h(n)
kolom : konvolusi kolom dengan tapis g(n) atau h(n)
X
2 1 2
: sampling dengan menjaga kolom yang genap
1 2
: sampling dengan menjaga baris yang genap
Dekomposisi wavelet satu level berdasarkan algoritma pyramid. Dengan h(n) adalah tapis pelewat bawah, g(n) adalah tapis pelewat atas CA j(LL) adalah koefisien rerata, CDj(h) (HL), CDj(v)(LH), dan CDj(d)(HH) yang masing-masing adalah koefisien detil horizontal, vertical, dan diagonal. Proses dekomposisi tersebut dapat dilakukan sebanyak lebih dari satu kali, yaitu sebanyak jumlah level yang telah ditentukan sebelumnya. Untuk melakukan dekomposisi lebih dari satu kali, proses dekomposisi selanjutnya dekomposisi pada koefisien aproksimasi (cA) atau LL dilakukan, karena berisi sebagian besar dari informasi citra. Kemudian diperoleh 4 subband lagi, yaitu LL1, LH1, HL1 dan HH1. Begitu seterusnya hingga mencapai level yang diinginkan. Sebagai contoh, terdapat citra dengan matriks input sebagai berikut : 2 5 6 7 6 7 3 5 M= [ ] 8 3 1 3 9 6 2 2 Tapis low pass dan tapis high pass dengan jenis haar adalah sebagai berikut: 𝐿𝑜𝑤 𝑃𝑎𝑠𝑠 = [
1
1
√2
√2
0
0
0
1
0
1
1
√2
√2
] 𝐻𝑖𝑔ℎ 𝑃𝑎𝑠𝑠 = [
√2
0
− 0
1 √2 1 √2
0
0 −
1
]
√2
Langkah pertama adalah mengalikan tapis low pass dengan matriks M terhadap baris. Untuk memudahkan perkalian terhadap baris dilakukan transpose pada matriks M, sehingga diperoleh :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
2 6 8 9 5 7 3 6 MT = [ ] 6 3 1 2 7 5 3 2 Kemudian, perkalian matriks MT dengan tapis low pass dilakukan dengan menghasilkan matriks D1T.
D1T = [
1
1
√2
√2
0
0
0
0
1
2 6 8 9 4,9497 9,1924 7,7782 10,6066 5 7 3 6 x[ ]= [ ] 9,1924 5,6569 2,8284 2,8284 6 3 1 2 7 5 3 2
1 √2 ]
√2
Untuk mengembalikan ke baris dan kolom sebenarnya, proses transpose kembali pada matriks D1T dilakukan. 4,9497 9,1924 9,1924 5,6569 D= [ ] 7,7782 2,8284 10,6066 2,8284 Langkah selanjutnya adalah melakukan perkalian tapis low pass dengan matriks D1 terhadap kolom. Proses tersebut menghasilkan matriks D2, sebagai berikut : 1
1
√2
√2
D2 = [
0
0
1 √2
0
0 1 √2 ]
4,9497 9,1924 9,1924 5,6569 10 x[ ]= [ 7,7782 2,8284 13 10,6066 2,8284
10,5 ] 4
Matriks D2 ini yang disebut dengan koefisien aproksimasi (LL). Untuk mencari nilai HL, LH dan HH, sama seperti langkah di atas, namun dengan mengalikan tapis low pass terhadap baris dan tapis high pass terhadap kolom untuk HL, mengalikan tapis high pass terhadap baris dan tapis low pass terhadap kolom untuk LH, dan mengalikan tapis high pass terhadap baris dan kolom untuk HH.
2.4.2. Wavelet Haar Haar adalah jenis wavelet tertua dan paling sederhana, yang diperkenalkan oleh Alfred 1 1
Haar pada tahun 1909 [10]. Koefisien transformasi h0 = (h0 (0), h1 (1)) = {2 , 2} (tapis low
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
1
1
pass) dan h1 = (h0 (0), h1 (1)) = {2 , − 2} (tapis high pass) ini merupakan fungsi basis wavelet Haar. Pada citra, tapis high pass dan tapis low pass dapat direprentasikan sebagai matriks 2D. Dekomposisi perataan dan pengurangan yang telah dilakukan sebelumnya sebenarnya sama dengan melakukan dekomposisi (transformasi) citra dengan wavelet Haar. Kedua tapis tersebut bersifat ortogonal namun tidak ortonormal. Tapis Haar yang bersifat ortogonal dan juga ortonormal adalah : 1
1
√
√2
h0 = { 2 , h1 = {
1
√2
,−
} 1
(2.1) }
√2
(2.2)
Gambar 2.10. Wavelet Haar
2.4.3. Konvolusi Konvolusi merupakan sebuah operasi matematika sederhana yang sangat umum digunakan pada pengolahan citra [10]. Jika ada dua barisan u dan h maka hasil konvolusinya (y) dapat dinyatakan dalam persamaan: yk = ∑∞ n= −∞ un hk−n
(2.3)
Secara singkat, notasi yang digunakan untuk konvolusi adalah : {yk } = {uk } ∗ {hk } atau y = u ∗ h
(2.4)
Yang berarti juga bahwa konvolusi mempunyai sifat yang komutatif, yaitu: y =h∗u=u∗h
(2.5)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
Matriks dapat memudahkan dalam perhitungan konvolusi. Seperti Gambar 2.11 merupakan contoh penyelesaian sebuah konvolusi dari dua baris u = {2 5 6} dan h = {3 5 1 2}. X
3
5
1
2
2
6
10
2
4
5
15
25
5
10
6
18
30
6
12
Gambar 2.11. Representasi Matriks dari Penjumlahan Konvolusi, y = [ 6 25 45 39 16 12]
Masukan yang diterima, dapat digunakan sebagai low pass filter. Low pass filter dari sinyal x(n) dengan masukan w(n) adalah suatu proses konvolusi antara x(n) dengan w(n). Bila sinyal x(n) memiliki panjang yang terbatas dan juga ujung-ujung sinyalnya diskontinyu, akan mengakibatkan distorsi pada ujung-ujung sinyal dari hasil konvolusi. Terdapat suatu metode memperpanjang sinyal x(n) dengan cara sinyal pengulangan yang disebut periodisasi. Metode ini untuk mengatasi masalah akan sinyal x(n) yang memiliki panjang terbatas yang diusulkan oleh Misiti et al [10]. Berikut contoh dari metode tersebut, x(n) = {x(1), x(2), ..., x(M)} yang akan dikonvolusi dengan masukan w(n)= {w(1), w(2), ..., w(N)}, dengan N adalah bilangan genap dan M>N, sehingga sinyal pengulangan dengan cara periodisasi akan menjadi : xper(n) = {x(M-j+1),…,x(M),x(1),…,x(M),x(1),…,x(N-1)}
(2.6)
dengan : j = N/2 Konvolusi sinyal yang diperpanjang xper (n) dengan masukan w(n) akan menghasilkan sinyal keluaran : 𝑦 (n) = xper(n) * w(n)
(2.7)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
atau y(n) = ∑n xper (n)w(j + 1 − n)
(2.8)
dengan M + N– 1 lebih besar dari panjang x(n). Agar sinyal output memiliki panjang yang sama dengan sinyal input, maka hanya bagian-bagian tertentu dari sinyal output yang dipilih. Contohnya y(n)= {y(1), y(2), … , y(L)}, dengan L= M + N – 1, jadi yang dipilih bagian-bagian tertentu dari y(n) adalah : 𝑦keep (n) = {y(N+1),…,y(N+M)}
(2.9)
2.5. Template Matching dan Korelasi Template matching merupakan metode pencocokan setiap piksel pada suatu matriks citra digital dengan citra yang menjadi acuan (database citra) [11]. Pencocokan citra yang menghasilkan tingkat kemiripan/kesamaan yang tinggi menentukan suatu citra tersebut dapat dikenali. Data uji dan database citra, menghasilkan data berupa matriks, dan akan dicari nilai kesamaan antar dua buah matriks tersebut dengan menghitung nilai korelasinya. Nilai korelasi antar dua buah matriks diperoleh dengan menggunakan rumus korelasi seperti yang ditunjukkan pada Persamaan 2.10 berikut ini.
r=
∑n xa xb̅) bk − ̅̅̅ k=1(xak − ̅̅̅).(x √∑n xa 2 .∑n xb̅)2 k=1(xak − ̅̅̅) k=1(xbk − ̅̅̅
(2.10)
Nilai x̅a dirumuskan dengan Persamaan 2.10 dan ̅̅̅ xb dirumuskan dengan Persamaan 2.11. 1
x̅a =
n
xb = ̅̅̅
n
1
∑nk=1 xak
(2.11)
∑nk=1 xbk
(2.12)
Keterangan Persamaan 2.10 – 2.12 :
r adalah nilai korelasi antara dua buah matriks (rentang nilai antara -1 dan +1)
xak adalah nilai piksel ke-k dalam matriks a
xbk adalah nilai piksel ke-k dalam matriks b
x̅a adalah rata-rata nilai piksel matriks a
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
x̅b adalah rata-rata nilai piksel matriks b
n adalah jumlah piksel dalam suatu matriks
2.6. Database Citra Database citra adalah suatu citra acuan yang digunakan untuk dibandingkan dengan data uji berdasarkan fungsi yang digunakan, apakah fungsi jarak atau similaritas. Database citra ini tersusun atas matriks dengan pada setiap elemennya terdapat nilai-nilai yang akan digunakan untuk menghitung besar jarak dan similaritasnya. Proses pembentukan database citra ini diperoleh dari hasil rata-rata beberapa sampel citra, jika sampel citra yang banyak. Untuk lebih jelasnya berikut ini persamaannya : 𝐷𝑎𝑡𝑎𝑏𝑎𝑠𝑒 Citra =
Sampel Citra 1+Sampel Citra 2+ ...+Sampel Citra n n
[12]
(2.13)
2.7. Webcam Webcam atau Kamera web merupakan kamera video yang menyediakan aliran gambar dengan waktu sebenarnya yang dikendalikan oleh sebuah komputer atau jaringan komputer. Ketika diambil oleh komputer, aliran video dapat disimpan, dilihat, atau dikirim ke jaringan lain melalui sistem seperti internet dan e-mail sebagai lampiran [13]. Tidak seperti kamera IP (yang terhubung menggunakan Ethernet atau Wi-Fi), kamera web umumnya dihubungkan dengan kabel USB atau dibangun ke dalam perangkat keras komputer, seperti laptop.
Gambar 2.12. Webcam Logitech C270 yang digunakan dalam Penelitian [14]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
Spesifikasi Teknis Webcam Logitech C270 [15] :
Panggilan video HD (1280 x 720 piksel) dengan sistem yang telah direkomendasikan.
Perekaman video : Maksimum hingga 1280 x 720 piksel.
Foto : Maksimum hingga 3 megapiksel (ditingkatkan menggunakan software).
Mikrofon bawaan dengan teknologi Logitech RightSound.
Bersertifikat Hi-Speed USB 2.0 (direkomendasikan).
Klip universal cocok dengan berbagai laptop dan monitor LCD atau CRT.
Dimensi kemasan : Tinggi x Lebar x Tebal (cm) : 21 x 16 x 9.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III RANCANGAN PENELITIAN
Bab 3 ini akan menjelaskan tentang langkah-langkah perancangan pembuatan sistem pengenalan angka dengan pose jari tangan. Bab ini berisi blok diagram sistem dan berbagai hal yang diperlukan dalam perancangan.
3.1.
Perancangan Sistem Perancangan sistem pengenalan angka dengan pose jari tangan ini terdiri dari
beberapa tahap, yaitu masukan berupa citra RGB, konversi citra RGB ke HSV, segmentasi HSV, ekstraksi ciri wavelet, perhitungan korelasi (template matching), dan penentuan keluaran. Blok diagram sistem pengenalan angka dengan pose jari tangan ini dapat dilihat pada Gambar 3.1.
Pengambilan Citra (Citra RGB) Konversi ke citra RGB ke HSV Penentuan Keluaran
Segmentasi HSV
Perhitungan Korelasi (Template Matching)
Database
Gambar 3.1. Diagram Blok Sistem
19
Cropping dan Resizing
Ekstraksi Ciri Wavelet
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
Pada Gambar 3.1, proses pengambilan citra dilakukan oleh webcam. Setelah itu citra yang telah diambil akan diproses lebih lanjut pada laptop melalui beberapa tahap yang terdapat pada diagram blok sistem. Sistem pengenalan angka dengan pose jari tangan terdiri dari software yang berfungsi sebagai user interface. Program pengenalan angka dengan pose jari tangan ini dibuat dengan menggunakan matlab versi R2010a. Program berperan dalam mengatur setiap proses yang akan dilalui untuk mendapatkan hasil pengenalan angka. Sistem pengenalan angka dengan pose jari tangan ini dibuat dengan hasil pengenalan secara real time dan non real time .
3.2. Proses Kerja Sistem 3.2.1. Input Data Input data yang digunakan dalam sistem ini adalah citra pose jari tangan. Citra pose jari tangan diambil dengan menggunakan webcam yang mempunyai resolusi 3 MP. Jarak pengambilan citra pose jari tangan dengan webcam adalah 1 - 3 m dengan tujuan untuk melihat dan membandingkan berapa banyak angka yang dapat dikenali pada beberapa jarak pengujian tersebut.
3.2.2. Konversi Citra RGB ke HSV Pada tahap ini, citra pose jari tangan yang awalnya mempunyai format citra RGB, akan dikonversi terlebih dahulu menjadi format HSV. Hal ini dilakukan untuk proses segmentasi HSV. Proses konversi RGB ke HSV, digunakan sintaks utama yang sudah dijelaskan pad Bab II, yaitu rgb2hsv. Diagram alir dari proses konversi citra RGB ke HSV terdapat pada Gambar 3.2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
Mulai Input : Citra RGB (Nilai R,G, dan B) Konversi ke HSV Berdasarkan Nilai R, G, dan B
Output : Citra HSV
Selesai Gambar 3.2. Diagram Alir dari Proses Konversi Citra RGB ke HSV
3.2.3. Segmentasi HSV Pada tahap ini, citra pose jari tangan yang telah dikonversi ke HSV akan disegmentasi. Dengan segmentasi menggunakan HSV ini, dapat ditentukan kelompok warna mana yang diinginkan, apakah kelompok hue, saturation, atau value. Dalam penelitian ini, kelompok HSV saturation dan value yang digunakan. Hal ini menyesuaikan dengan warna kulit dalam data penelitian yang akan digunakan. Awalnya akan disegmentasi bagian kulit terlebih dahulu berdasarkan nilai ambang S (Saturation) dan V (Value) (akan dievaluasi pada Bab IV). Setelah mendapatkan bagian kulit, pengambilan bagian tangan dilakukan. Dalam proses ini, awalnya perhitungan luasan objek pada citra dan mengambil objek yang memiliki luasan kedua terbesar, yaitu bagian tangan dilakukan. Untuk lebih jelasnya, berikut diagram alir dari proses segmentasi HSV pada Gambar 3.3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
Mulai Input : Citra HSV Segmentasi Kulit (Bagian Muka dan Tangan) Berdasarkan Nilai Ambang S dan V
Pengambilan Objek yang Memiliki Luasan Kedua Terbesar (Bagian Tangan)
Output : Citra Hasil Segmentasi HSV
Selesai
Gambar 3.3. Diagram Alir dari Proses Segmentasi HSV
3.2.4. Cropping dan Resizing Pada tahap ini, citra pose jari tangan yang telah disegmentasi menggunakan HSV, akan masuk ke dalam proses cropping dan resizing. Kedua proses ini bertujuan untuk memotong bagian citra yang akan dikenali berdasarkan bounding box dan mengubah ukuran atau size citra menjadi ukuran 64 x 64 piksel [16]. Diagram alir dari proses cropping dan resizing terdapat pada Gambar 3.4 dan 3.5.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
Mulai Input : Citra Hasil Segmentasi HSV Potong Bagian Tangan sesuai Bounding Box
Output : Citra Hasil Cropping
Selesai Gambar 3.4. Diagram Alir dari Proses Cropping
Mulai
Input : Citra Hasil Cropping B
Gambar 3.5. Diagram Alir dari Proses Resizing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
B
Resizing ke Ukuran 64 x 64 Piksel
Output : Citra Hasil Resizing
Selesai
Gambar 3.5. (Lanjutan) Diagram Alir dari Proses Resizing
3.2.5. Ekstraksi Ciri Wavelet Pada tahap ini, citra pose jari tangan hasil cropping dan resizing, akan masuk ke dalam proses ekstraksi ciri Wavelet. Wavelet adalah ekstraksi ciri yang digunakan dalam tahap pengambilan ciri pada suatu citra. Dalam penelitian ini, Wavelet yang digunakan ialah wavelet Haar dengan memiliki 4 macam filter, tetapi dalam penelitian ini hanya dekomposisi low pass filter yang digunakan, karena hanya bentuk dasar dari citra yang akan dicari. Wavelet Haar dilakukan dengan menerapkan konvolusi dan dekomposisi low pass filter secara simultan untuk mendapatkan sinyal global. Secara keseluruhan tahap ekstraksi ciri dapat dilihat pada Gambar 3.6. Input dari proses ekstraksi ciri adalah citra hasil cropping dan resizing yang kemudian akan dikonvolusi dan dilanjutkan pada tahap downsampling. Output dari ekstraksi ciri tergantung dari banyaknya desimasi (N) yang akan ditentukan oleh penguji. Tahap ini akan melakukan pengulangan sampai menghasilkan N = 0.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
Mulai
Input : Citra Hasil Cropping dan Resizing
Desimasi = N Konvolusi Menggunakan Wavelet Haar Downsampling N = N-1 Tidak
N=0 ? Ya Output : Hasil Ekstraksi Ciri Selesai
Gambar 3.6. Diagram Alir dari Proses Ekstraksi Ciri Tahap konvolusi merupakan tahap untuk melakukan filtering, menggunakan dekomposisi low pass filter pada wavelet Haar. Tahap konvolusi ini berada pada bidang dimensi dua, oleh karena itu konvolusi diterapkan sebanyak dua kali, yaitu pada kolom dan baris citra input. Dari masukan berupa citra hasil cropping dan resizing yang kemudian akan dikonvolusi per-baris dan per-kolom (lihat Gambar 3.7.).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
Mulai Input : Citra Hasil Cropping dan Resizing Konvolusi (1D) dengan Ekstensi per-Baris Konvolusi (1D) dengan Ekstensi per-Kolom Output : Hasil Konvolusi 2D
Selesai Gambar 3.7. Diagram Alir dari Proses Konvolusi Tahap downsampling adalah tahap setelah konvolusi, dengan hasil dari konvolusi merupakan masukan untuk downsampling. Untuk memproses masukan ada dua proses, yaitu menghilangkan baris dan kolom ganjil dengan menjaga baris dan kolom genap seperti diperlihatkan pada Gambar 3.8. Mulai Input : Hasil Konvolusi 2D
Menghilangkan Baris Ganjil C
Gambar 3.8. Diagram Alir dari Proses Downsampling
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
C
Menghilangkan Kolom Ganjil
Output : Hasil Downsampling (Hasil Ekstraksi Ciri)
Selesai
Gambar 3.8. (Lanjutan) Diagram Alir dari Proses Downsampling
3.2.6. Perhitungan Korelasi (Template Matching) Pada tahap ini, citra pose jari tangan yang telah diekstraksi ciri dengan menggunakan wavelet, selanjutnya akan masuk ke dalam proses perhitungan korelasi dan pada proses ini juga mencakup proses template matching. Tahap ini adalah tahap membandingkan citra masukan pose jari tangan yang diambil dengan database citra pola angka ASL 0 – 9 yang telah dimasukkan sebelumnya dan dalam tahap ini juga digunakan fungsi korelasi. Proses perhitungan korelasi (template matching) akan berdasar pada Persamaan 2.10 – 2.12 pada Bab II dan direpresentasikan pada diagram alir Gambar 3.9. Mulai Input : Hasil Ekstraksi Ciri Masukan, Ekstraksi Ciri Database D
Gambar 3.9. Diagram Alir dari Proses Perhitungan Korelasi (Template Matching)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
D
Perhitungan Korelasi = Ekstraksi Ciri Data Masukan dengan Ekstraksi Ciri Database
Output : Hasil Perhitungan Nilai Korelasi
Selesai
Gambar 3.9. (Lanjutan) Diagram Alir dari Proses Perhitungan Korelasi (Template Matching)
3.2.7. Penentuan Keluaran Setelah melalui beberapa proses, tahap terakhir dari sistem pengenalan angka dengan pose jari tangan ini ialah keluaran berupa teks. Proses penentuan keluarannya ditentukan berdasarkan perhitungan nilai korelasi yang terbaik (yang paling tinggi). Diagram alir dari proses penentuan keluaran dapat dilihat pada Gambar 3.10. Mulai
Input : Hasil Perhitungan Nilai Korelasi (r)
E
Gambar 3.10. Diagram Alir dari Proses Penentuan Keluaran
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
E
Citra Keluaran = Nilai Korelasi yang Terbaik
Output : Hasil Berupa Teks
Selesai
Gambar 3.10. (Lanjutan) Diagram Alir dari Proses Penentuan Keluaran
3.3. Database Database diperlukan pada proses perhitungan korelasi (template matching). Pembentukan dari database terdiri dari angka 0-9 mengikuti pola isyarat American Sign Language. Pembentukan database diambil dari citra pose jari tangan hasil ekstraksi ciri wavelet. Ukuran piksel dari database ini tersusun atas matriks yang selanjutnya akan terdapat 3 variasi citra. Ketiga variasi ini mengikuti banyaknya desimasi yang diinginkan, yaitu 3 kali desimasi. Untuk desimasi 1 : 32 x 32 piksel, desimasi 2 : 16 x 16 piksel, dan desimasi 3 : 8 x 8 piksel [16]. Database hasil ekstraksi ciri yang dibentuk ialah sebanyak 3 matriks. Matriks database ini diperoleh dari hasil perhitungan rerata matriks citra pola isyarat angka ASL dari 5 variasi jarak pada setiap variasi citranya. Diagram blok proses pembentukan database ditunjukkan pada Gambar 3.11.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30
Pengambilan Citra (Citra RGB)
Konversi RGB ke HSV
Segmentasi HSV
Database
Ekstraksi Ciri Wavelet
Gambar 3.11. Diagram Blok Proses Pembentukan Database Setelah melihat diagram blok dari proses pembentukan database pada Gambar 3.11, berikut ini pola persamaan pembentukan database hasil ekstraksi ciri berdasar Persamaan 2.13 pada Bab II : Citra 𝐷𝑎𝑡𝑎𝑏𝑎𝑠𝑒 ASL =
Sampel Citra ASL 1+Sampel Citra ASL 2+ ...+Sampel Citra ASL 5 5
Dari pola persamaan pembentukan database di atas, berikut ini pencerminan persamaan pembentukan database hasil ekstraksi ciri dalam bentuk matriks pada setiap variasi citra.
Contoh Pola Perhitungan Rerata untuk Angka 0 Menggunakan Citra 32 x 32 Piksel : Angka Uji 0_1m
Jarak Pengujian 0_1,5m
0_3m
A1(1,1) A1(1,1) A1(1,1) A1(2,1) A1(2,1) A1(2,1) A1(3,1) A1(3,1) A1(3,1) + + …………+ . . . . . . . . . [ A1(1024,1)] [ A1(1024,1)] [ A1(1024,1)] = 5
Hasil Rerata
A1′(1,1) A1′(2,1) A1′(3,1) . . . [ A1′(1024,1)]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
Contoh Pola Perhitungan Rerata untuk Angka 0 Menggunakan Citra 16 x 16 Piksel :
0_1m
0_1,5m
0_3m
Hasil Rerata
A2(1,1) A2(1,1) A2(1,1) A2(2,1) A2(2,1) A2(2,1) A2(3,1) A2(3,1) A2(3,1) + + …………+ . . . . . . . . . [ A2(256,1)] [ A2(256,1)] [ A2(256,1)] = 5
A2′(1,1) A2′(2,1) A2′(3,1) . . . [ A2′(256,1)]
Contoh Pola Perhitungan Rerata untuk Angka 0 Menggunakan Citra 8 x 8 Piksel :
0_1m
0_1,5m
0_3m
A3(1,1) A3(1,1) A3(1,1) A3(2,1) A3(2,1) A3(2,1) A3(3,1) A3(3,1) A3(3,1) + + …………+ . . . . . . . . . [ A3(64,1)] [ A3(64,1)] [ A3(64,1)] = 5
Hasil Rerata
A3′ (1,1) A3′(2,1) A3′(3,1) . . . [ A3′(64,1)]
Setelah menghitung rerata matriks hasil ekstraksi ciri pada setiap variasi citra, selanjutnya dilakukan penyusunan matriks database. Hasil dari susunan matriks ini, selanjutnya akan dijadikan acuan dalam proses perhitungan korelasi (template matching). Berdasarkan persamaan korelasi pada Bab II, matriks database ini merupakan matriks b. Untuk lebih jelasnya berikut ini susunannya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
Susunan Matriks Database Hasil Rerata Citra 32 x 32 Piksel : Angka Uji 0
1
2
A1′(1,1) A1′(2,1) A1′(3,1) ..
B1′(1,2) B1′(2,2) B1′(3,2) . ..
C1′ (1,3) C1′(2,3) C1′(3,3) . ..
B1′(1024,2)
C1′(1024,3)
. [A1′(1024,1)
……
9
………..
J1′ (1,10) J1′(2,10) J1′ (3,10) . ..
J1′(1024,10)
Matriks Hasil Rerata
Susunan Matriks Database Hasil Rerata Citra 16 x 16 Piksel : 1
2
B2′ (1,2) B2′ (2,2) B2′ (3,2) . ..
C2′ (1,3) C2′ (2,3) C2′ (3,3) . ..
B2′ (256,2)
C2′ (256,3)
0 A2′ (1,1) A2′ (2,1) A2′ (3,1) .. . ′ (256,1) A2 [
……
9
J2′ (1,10) J2′ (2,10) … … … . . J2′ (3,10) . .. J2′ (256,10)
Susunan Matriks Database Hasil Rerata Citra 8 x 8 Piksel : 0 A3′ (1,1) A3′ (2,1) A3′ (3,1) .. . ′ (64,1) A3 [
1 B3′ (1,2) B3′ (2,2) B3′ (3,2) . .. B3′ (64,2)
2
……
9
J3′ (1,10) C3′ (1,3) ′ (2,3) J3′ (2,10) C3 C3′ (3,3) … … … . . J3′ (3,10) . . .. .. ′ (64,3) ′ (64,10) C3 J3
]
]
]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
3.4. Pengujian Pose Jari Tangan 3.4.1. Pengujian secara Real Time Pada prinsipnya, pengujian secara real time akan diakses melalui GUI (Graphical User Interface), yang dapat dilihat bentuk perancangannya pada subbab 3.7. Untuk memulai pengujian, pertama-tama penguji menakan push button “Ambil Gambar”, lalu setelah itu citra pose jari tangan akan melalui beberapa proses seperti konversi RGB ke HSV, segmentasi HSV, ekstraksi ciri wavelet, perhitungan korelasi (template matching), serta penentuan keluaran. Dalam pengujian secara real time ini, 500 data pengujian digunakan. Angka ini diperoleh dari terdapatnya 2 orang sampel dalam pengujian, yaitu tangan orang lain dari 5 variasi jarak uji, yaitu 1 m ,1,5 m, 2 m, 2,5 m, dan 3 m, dengan pengambilan sampel tiap pola angka ASL sebanyak 5 kali . Selain itu data dari pengujian secara real time ini, proses cropping, resizing, dan ekstraksi ciri wavelet akan ditampilkan secara otomatis melalui GUI, yang desainnya dapat dilihat pada Gambar 3.14.
3.4.2. Pengujian secara Non Real Time Pada prinsipnya, pengujian secara non real time proses-proses yang dilalui sama dengan pengujian secara real time. Namun proses hasil cropping, resizing, dan ekstraksi ciri wavelet akan ditampilkan secara manual melalui figure pada matlab, sedangkan untuk keluaran teks akan ditampilkan melalui command window pada matlab. Dalam pengujian secara non real time ini, 50 data pengujian digunakan. Angka ini diperoleh dari terdapatnya 1 orang sampel dalam pengujian, yaitu tangan orang lain dari 5 variasi jarak uji, yaitu 1 m ,1,5 m, 2 m, 2,5 m, dan 3 m.
3.5.
Analisis Data Pengujian Dalam menghitung besar tingkat pengenalannya, pola persamaan yang digunakan
ialah sebagai berikut : Tingkat Pengenalan =
Banyak Pola Angka ASL yang dikenali secara Tepat x 100% Banyak Pola Angka ASL yang diuji
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
3.6.
Ruangan Pengujian dan Pencahayaan Dalam pengambilan data sistem pengenalan angka dengan pose jari tangan ini,
ruangan dan tata pencahayaan yang digunakan ditunjukkan pada Gambar 3.11 dan 3.12. Penyesuaian ruangan dan pencahayaan dimaksudkan untuk memperoleh data yang akurat khususnya pada bagian segmentasi HSV. Jika pencahayaan pada ruangan tidak akurat, maka objek yang tidak diinginkan akan ikut terambil.
Gambar 3.12. Ruangan Tugas Akhir Teknik Elektro USD yang digunakan dalam Pengambilan Data
4 lampu dimatikan agar warna kulit tidak berubah karena cahaya dari lampu.
Cahaya yang masuk melaui pintu dihalangi menggunakan papan agar tidak menimbulkan efek silau pada citra.
Gambar 3.13. Tata Pencahayaan Ruangan Tugas Akhir Teknik Elektro USD
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
3.7. Perancangan Tampilan GUI Tampilan interface pada perancangan sistem pengenalan huruf menggunakan GUI pada matlab yang bertujuan untuk membantu dalam proses pengenalan pose jari tangan. Secara keseluruhan sistem tersebut dapat dilihat pada Gambar 3.14.
Pengenalan Angka dengan Pose Jari Tangan Kamera
Cropping
Resizing
Variasi Desimasi
Ekstraksi Ciri Wavelet
Kamera Aktif Ambil Gambar Keluaran Teks
Proses
Reset
Keluar
Gambar 3.14. Tampilan GUI Sistem Pengenalan Angka dengan Pose Jari Tangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
Berdasarkan desain GUI pada Gambar 3.14, berikut ini pada Gambar 3.15 diagram alir dari proses yang terdapat pada GUI.
Mulai
Input : Tombol “Kamera Aktif”
Mengaktifkan Kamera
Tidak
Kamera Aktif ?
Ya Output : Gambar Tertampil
J1
Input : Tombol “Ambil Gambar”
F
Gambar 3.15. Diagram Alir Proses yang Terdapat pada GUI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37 F
Mengambil Gambar
J1
Output : Gambar Terambil
Input : Variasi Desimasi, Tombol “Proses”
Proses Cropping, Resizing, Ekstraksi Ciri Wavelet, dan Keluaran Teks
Output : Hasil Proses Cropping, Resizing, Ekstraksi Ciri Wavelet, dan Keluaran Teks J2
Tidak
Ulang ?
I
Ya G
Gambar 3.15. (Lanjutan) Diagram Alir Proses yang Terdapat pada GUI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38 G
J2
Input : Tombol “Reset”
Membersihkan GUI
Output : GUI Bersih
I
Selesai Memakai GUI ?
Tidak
Ya Input : Tombol “Keluar”
Menutup GUI
H
Gambar 3.15. (Lanjutan) Diagram Alir Proses yang Terdapat pada GUI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39 H
Output : GUI Tertutup
Selesai
Gambar 3.15. (Lanjutan) Diagram Alir Proses yang Terdapat pada GUI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV HASIL DAN PEMBAHASAN
Bab ini akan membahas mengenai langkah-langkah untuk menjalankan software pengenalan angka dengan pose jari tangan baik secara real time maupun non real time, sintaks program yang digunakan, serta menganalisis data hasil pengujian. Pengujian sistem pengenalan angka dengan pose jari tangan ini menggunakan pola angka ASL, yaitu dari 0 s/d 9 dari 5 variasi jarak yang digunakan, yaitu 1 m, 1,5 m, 2 m, 2,5 m, dan 3 m. Spesifikasi laptop yang digunakan dalam pengujian software pengenalan angka dengan pose jari tangan ini ialah sebagai berikut : 1. Merk dan Tipe Laptop
: Asus X454W Series
2. Prosesor
: AMD Dual Core E1-6010 1.35 GHz
3. RAM
: 2 GB
4. Versi Matlab
: R2010a
5. Sistem Operasi
: Windows 8 64 bit
4.1. Langkah-langkah Menjalankan Program 4.1.1. Langkah-langkah untuk Menjalankan Program secara Real Time 1. Pertama, buka software matlab terlebih dahulu dengan cara meng-klik kiri sebanyak 2 kali pada icon matlab (lihat Gambar 4.1). Setelah meng-klik kiri, akan muncul tampilan utama matlab seperti pada Gambar 4.2.
Gambar 4.1. Icon Matlab R2010a
40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
Gambar 4.2. Tampilan Utama Matlab R2010a 2.
Kedua, ubah current folder sesuai lokasi disimpannya program yang telah dibuat (lihat Gambar 4.3), lalu ketik “guiangka” (contoh nama file GUI yang dibuat) pada command window untuk menjalankan file GUI yang telah dibuat (lihat Gambar 4.4), kemudian tekan enter.
Gambar 4.3. Directory D:\TE\TA Lokasi disimpannya File GUI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
Gambar 4.4. Pemanggilan File GUI 3.
Ketiga, setelah menekan enter, maka GUI siap digunakan untuk pengujian secara real time. Untuk lebih jelasnya, lihat pada Gambar 4.5.
Gambar 4.5. GUI Software Pengenalan Angka dengan Pose Jari Tangan Pada tampilan GUI Gambar 4.5, terdapat beberapa pushbutton yang digunakan, serta 1 buah popupmenu. Berikut ini penjelasan tentang fungsi pushbutton dan popupmenu yang digunakan pada GUI. a. Pushbutton “Kamera Aktif” : Untuk melihat apakah kamera sudah aktif atau belum (axes 1). b. Pushbutton “Ambil Gambar” : Untuk mengambil gambar (axes 1). c. Pushbutton “Proses” : Untuk menampilkan hasil cropping (axes 2), resizing (axes 3), ekstraksi ciri wavelet (axes 4), dan keluaran teks (edit 3). d. Pushbutton “Reset” : Untuk membersihkan setiap axes, popupmenu, dan edit pada GUI. e. Pushbutton “Keluar” : Untuk menutup GUI.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
f. Popupmenu “Variasi Desimasi” : Untuk memilih variasi desimasi yang diinginkan, apakah variasi desimasi 1, 2, atau 3 (lihat Gambar 4.6). Hasil dari pemilihan variasi desimasi ini ditampilkan pada axes 4 (ekstraksi ciri wavelet).
Gambar 4.6. Pemilihan Variasi Desimasi
Gambar 4.7. Contoh ketika GUI dijalankan untuk Pengujian Angka 9 dengan Variasi Desimasi = 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
4.1.2. Langkah-langkah untuk Menjalankan Program secara Non Real Time 1.
Pertama, ulangi langkah 1 s/d 2 sama seperti langkah-langkah untuk menjalankan program secara real time. Namun contoh nama file program yang digunakan secara non real time ini ialah “kenalwav2”, sehingga pada command window pada matlab ketik “kenalwav2” (lihat Gambar 4.8). Setelah itu input desimasi yang diinginkan (lihat Gambar 4.9.), lalu tekan enter untuk menampilkan hasil cropping, resizing, ekstraksi ciri wavelet, dan keluaran teks.
Gambar 4.8. Pemanggilan File Program secara Non Real Time
Gambar 4.9. Memasukkan Nilai Desimasi, misalnya Desimasi = 2 2. Kedua, setelah menekan enter, tunggu beberapa saat hingga hasil cropping, resizing, dan ekstraksi ciri wavelet ditampilkan pada figure matlab dan hasil keluaran teks pada command window matlab (lebih jelasnya lihat Gambar 4.10 – 4.13).
Gambar 4.10. Citra Hasil Cropping
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
Gambar 4.11. Citra Hasil Resizing
Gambar 4.12. Citra Hasil Ekstraksi Ciri Wavelet dengan Desimasi = 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
Gambar 4.13. Hasil Keluaran Teks pada Command Window Matlab
4.2. Penjelasan Sintaks Program 4.2.1. Penjelasan Sintaks Program secara Real Time Untuk sintaks program secara real time, pushbutton dan popupmenu yang terdapat pada GUI akan diisi sintaks program tertentu agar nantinya GUI dapat berjalan dengan baik. Untuk lebih jelasnya, berikut ini penjelasannya. a. Pushbutton “Kamera Aktif” Untuk menjalankan pushbutton ini, maka diisi sintaks berikut : imaqhwinfo; info=imaqhwinfo('winvideo'); dev_info=imaqhwinfo('winvideo',1); vidobj=videoinput('winvideo',1,'RGB24_1280x960'); vidobj.FramesPerTrigger=1; triggerconfig(vidobj,'manual'); vidRes=get(vidobj,'VideoResolution');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
imWidth=1280; imHeight=960; nBands=get(vidobj,'NumberOfBands'); hImage=image(zeros(imHeight,imWidth,nBands),'parent',handles.axes1); preview(vidobj,hImage)
Berdasarkan sintaks program di atas, dapat dilihat terdapat sintaks imaqhwinfo. Sintaks ini berfungsi untuk menginisialisasikan antara webcam dengan software matlab. Selain itu, sintaks ini juga berfungsi untuk mengetahui informasi yang dimiliki oleh webcam, seperti nama device dan format warna yang dihasilkan oleh webcam, misalnya RGB, YUY, dan lainnya. Untuk menampilkan gambar yang direkam oleh webcam, maka sintaks preview digunakan dan kemudian gambar tersebut dapat nampak pada axes 1.
b. Pushbutton “Ambil Gambar” Untuk menjalankan pushbutton ini, maka diisi sintaks berikut : start(vidobj); pause(1); trigger(vidobj); stoppreview(vidobj); capt1=getdata(vidobj); gambar=capt1; handles.a=gambar; guidata(hObject,handles); axes(handles.axes1); imshow(gambar)
Berdasarkan sintaks program di atas, dapat dilihat terdapat sintaks getdata. Sintaks ini berfungsi untuk melakukan capture gambar saat webcam dalam keadaan on. Hasil gambar yang telah diambil oleh webcam ini memiliki format citra RGB. Kemudian agar hasil capture dapat dipanggil dan digunakan pada sintaks program selanjutnya, maka diinisialisasikan dengan sintaks handles. c. Popupmenu “Variasi Desimasi” Untuk mengfungsikan popupmenu ini, maka diisi sintaks berikut : indeks=get(handles.popupmenu1,'Value'); switch indeks case 2 des=1; case 3; des=2; case 4; des=3;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
end handles.des=des; guidata(hObject,handles);
Berdasarkan sintaks program di atas, dapat dilihat terdapat sintaks des=1. Sintaks ini berfungsi untuk mengaktifkan desimasi sebanyak 1 kali. Penjelasan tentang desimasi sebelumnya sudah dituliskan pada Bab III. Desimasi ini diinisialisasikan dengan nama “des”. Kemudian agar nilai variasi desimasi ini dapat dipanggil dan digunakan pada sintaks program selanjutnya, maka diubah menjadi “handles.des”. d. Pushbutton “Proses” Pada saat menakan pushbutton “Proses” ini, citra dengan format RGB yang telah diambil pada axes 1 akan diproses lebih lanjut. Untuk lebih jelasnya berikut ini proses-prosesnya dan juga sintaks programnya. Proses Konversi Citra RGB ke HSV Untuk menjalankan proses ini, sintaks program yang digunakan ialah : %Konversi RGB ke HSV x0=rgb2hsv(x);
Berdasarkan sintaks program di atas, dapat dilihat bahwa terdapat sintaks rgb2hsv. Sintaks ini berfungsi mengubah citra RGB dari menjadi citra HSV. Proses Segmentasi HSV Untuk menjalankan proses ini, sintaks program yang digunakan ialah : s=x0(:,:,2); s1=s>0.17;
%Ambil bagian saturation
v=x0(:,:,3); v1=v>0.4;
%Ambil bagian value
Berdasarkan sintaks program di atas, segmentasi bagian kulit pada citra dilakukan. Oleh karena itu bagian S (saturation) dan V (value) diambil, karena diantara ketiga komponen warna HSV, yang masuk dalam kategori warna kulit (muka dan tangan) ialah S dan V. Nilai threshold S dan V jika dilihat dari ruang warnanya, yang digunakan dalam penelitian ini ialah untuk S >0,17 dan untuk V >0,4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
Proses Pengambilan Bagian Tangan Untuk menjalankan proses ini, sintaks program yang digunakan ialah : %Hitung luasan setiap objek for k=1:jumobj x2=x1==k; aobj(k)=sum(x2(:)); end %segmentasi luasan kedua terbesar [s,u]=sort(aobj,'descend'); x3=x1==u(2); else x3=x1; end
Berdasarkan sintaks program di atas, untuk mengambil bagian tangan pada citra yang telah disegmentasi, maka perhitungan luasan pada setiap objek kulit dilakukan dengan sintaks sum. Setelah itu, hasil perhitungan luasan objek kulit tersebut diurutkan (dengan sintaks sort) dari nilai terbesar ke nilai terkecil dengan sintaks descend. Setelah itu, untuk mengambil objek yang memiliki nilai luasan kedua terbesar (bagian tangan) yang diinisialisasi dengan “u(2)”. Proses Cropping sesuai Bounding Box Untuk menjalankan proses ini, sintaks program yang digunakan ialah : % Potong kiri cout=x3; a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong kanan cout=fliplr(cout); a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong atas cout=cout'; a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong bawah cout=fliplr(cout); a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[];
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
Berdasarkan sintaks program di atas, pada prinsipnya proses cropping sesuai bounding box ini, proses pemotongannya ialah dengan memutar tiap 90o lalu memotong perbagiannya sampai kembali ke posisi awal. Untuk lebih jelasnya lihat Tabel 4.1.
Tabel 4.1. Proses Cropping sesuai Bounding Box Sintaks Program
Hasil Sintaks
200
% Potong kiri cout=x3; a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[];
400
600
800
1000
1200
% Potong kanan cout=fliplr(cout); a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[];
200
400
200
400
600
800
1000
1400
50 100 150 200 600
800
1000
100
% Potong atas cout=cout'; a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[];
200
300
400
500
600
700
800
50 100 150 200
% Potong bawah cout=fliplr(cout); a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[];
1200
50 100 150 200 250 300 350 400 50
100
150
200
1200
1400
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
Proses Resizing Untuk menjalankan proses ini, sintaks program yang digunakan ialah : x4=imresize(cout,[64 64]);
Berdasarkan sintaks program di atas, dapat dilihat bahwa terdapat sintaks imresize yang berfungsi mengubah ukuran citra ke ukuran tertentu. Untuk penelitian ini citra diubah ke dalam ukuran 64 x 64 piksel. Proses Ekstraksi Ciri Untuk menjalankan proses ini, sintaks program yang digunakan ialah : x5=xcwav2(x4,des);
Berdasarkan sintaks program di atas, dapat dilihat bahwa terdapat sintaks xcwav2. Sintaks ini merupakan sintaks untuk memanggil program ekstraksi ciri yang dibuat dalam M-file pada matlab. Untuk lebih jelasnya, sintaksnya dapat dilihat pada bagian lampiran. Proses Perhitungan Korelasi Untuk menjalankan proses ini, sintaks program yang digunakan ialah : for n=1:10 r(n)=korelasi(x6,z(:,n)) end maxr=max(r)
Berdasarkan sintaks program di atas, dapat dilihat bahwa terdapat sintaks korelasi. Sintaks ini merupakan sintaks untuk memanggil fungsi korelasi yang dibuat dalam M-file pada matlab. Selain itu, terdapat sintaks max yang berfungsi untuk menampilkan nilai korelasi yang paling tinggi (yang terbaik). Nilai korelasi ini akan ditampilkan pada command window matlab. Proses Keluaran Teks Untuk menjalankan proses ini, sintaks program yang digunakan ialah : if (maxr==r(1)) z1={'0'}; set(handles.edit3,'string',z1); elseif (maxr==r(2)) z2={'1'}; set(handles.edit3,'string',z2);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
elseif (maxr==r(3)) z3={'2'}; set(handles.edit3,'string',z3); elseif (maxr==r(4)) z4={'3'}; set(handles.edit3,'string',z4); elseif (maxr==r(5)) z5={'4'}; set(handles.edit3,'string',z5); elseif (maxr==r(6)) z6={'5'}; set(handles.edit3,'string',z6); elseif (maxr==r(7)) z7={'6'}; set(handles.edit3,'string',z7); elseif (maxr==r(8)) z8={'7'}; set(handles.edit3,'string',z8) elseif (maxr==r(9)) z9={'8'}; set(handles.edit3,'string',z9) elseif (maxr==r(10)) z10={'9'}; set(handles.edit3,'string',z10) end
Berdasarkan sintaks program di atas, dapat dilihat bahwa terdapat sintaks elseif (maxr==r(1)). Sintaks ini berfungsi untuk menampilkan teks angka “1” pada edit 3 yang terdapat di GUI jika angka 1 memiliki nilai korelasi terbesar. Hal ini berlaku untuk angka uji lainnya. e. Pushbutton “Reset” Untuk menjalankan pushbutton ini, maka diisi sintaks berikut : axes(handles.axes1) plot(0); axes(handles.axes2) plot(0); axes(handles.axes3) plot(0); axes(handles.axes4) plot(0); set(handles.popupmenu1,'Value',1); set(handles.edit3,'string','');
Pushbutton “Reset” ini berfungsi untuk membersihkan axes, popupmenu, dan edit pada GUI jika terjadi kesalahan dalam pengenalan pola angka ASL atau ingin melakukan pengujian yang baru.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
f. Pushbutton “Keluar” Untuk menjalankan pushbutton ini, maka diisi sintaks berikut : close
Pushbutton “Keluar” ini berfungsi untuk menutup GUI jika selesai melakukan pengujian.
4.2.2. Penjelasan Sintaks Program secara Non Real Time Untuk sintaks program secara non real time, memiliki program proses segementasi HSV, proses pengambilan bagian tangan, proses cropping sesuai bounding box, proses resizing, proses ekstraksi ciri wavelet, dan proses perhitungan korelasi secara garis besar sama dengan program secara real time. Namun untuk menampilkan hasil citranya, maka sintaks subplot dan imshow digunakan. Sedangkan untuk keluaran teks, akan ditampilkan pada command window matlab. Untuk lebih jelasnya, berikut ini sintaks keluaran teks untuk program secara non real time. % Penentuan buah keluaran DaftarAngka={'0';'1';'2';'3';'4';'5';'6';'7';'8';'9'}; Angka{k}=DaftarAngka{KelasOut};
Berdasarkan sintaks program di atas, pada prinsipnya proses yang dimiliki sama dengan program secara real time. Pola angka ASL yang memiliki nilai korelasi yang terbaik atau yang paling tinggi akan ditampilkan pada command window matlab, dengan terlebih dahulu dikelompokkan kelas-kelasnya dengan inisialisasi “KelasOut” (lebih jelasnya lihat sintaks full pada lampiran). Sedangkan, untuk pengambilan foto data uji secara non real time ini, digunakan software asli webcam Logitech sendiri. Berikut ini Gambar 4.14 icon software Logitech webcam dan Gambar 4.15 software Logitech webcam pada saat pengambilan foto data uji.
Gambar 4.14. Icon Software Logitech Webcam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
Gambar 4.15. Software Logitech Webcam pada saat Pengambilan Foto Data Uji
4.3. Analisis Hasil Data Pengujian Dalam pengujian program secara real time dan secara non real time, pengujian dari 5 variasi jarak dan 3 variasi desimasi dilakukan (telah disebutkan pada Bab III). Agar lebih memperjelas bagaimana hasil citra hasil desimasi 1 s/d 3, berikut ini pada Tabel 4.2 hasilnya. Tabel 4.2. Hasil Desimasi 1 s/d 3 Pola Angka ASL 0-9 pada 5 Variasi Jarak Pola Angka ASL
Jarak (m) Desimasi
1 0 2
1
1,5
2
2,5
3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
3
1
1
2
3
1
2
2
3
1
3
2
3
4
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56
2
3
1
5
2
3
1
6
2
3
1
7
2
3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57
1 8 2
3
1
9
2
3
4.3.1. Analisis Hasil Data Pengujian secara Real Time Dalam pengujian secara real time, seperti yang telah disebutkan pada Bab III sebelumnya, pengujian sebanyak 2 sampel tangan orang lain dilakukan. Berikut ini hasil data yang diperoleh dari pengujian secara real time dari 5 variasi jarak, yaitu 1 m, 1,5 m, 2 m, 2,5 m, dan 3 m dan juga dari 3 variasi desimasi, besar tingkat pengenalan, serta grafik besar tingkat pengenalannya. Dalam proses pengambilan datanya, pengambilan setiap sampel angka sebanyak 5 kali dilakukan dan hasilnya akan ditunjukkan dalam bentuk confusion matrix (lihat pada lampiran).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58
Tabel 4.3. Hasil Pengujian Real Time Jarak (Meter)
-
Tingkat Pengenalan Desimasi 1
Desimasi 2
Desimasi 3
1
98 %
98 %
48 %
1,5
86 %
86 %
78 %
2
68 %
66 %
58 %
2,5
88 %
88 %
48 %
3
88 %
78 %
58 %
Grafik Hasil Pengujian Real Time :
Gambar 4.16. Grafik Hasil Pengujian Real Time Berdasarkan grafik (Gambar 4.16) dan tabel hasil tingkat pengenalan secara real time (Tabel 4.3), dapat dilihat bahwa hasil yang ditunjukkan cukup acak dan tidak menunjukkan ketergantungan pada jarak pengujian. Hal ini dikarenakan bahwa sampai jarak maksimal pengujian (3 meter), software pengenalan angka dengan pose jari tangan ini masih mampu menangkap objek tangan dengan baik walaupun hasil keluaran teks masih ada yang mengalami kesalahan dalam pengenalan. Sedangkan untuk hasil percobaan desimasi, dapat dilihat bahwa semakin banyak desimasi, maka semakin menurun tingkat pengenalan. Hal ini disebabkan karena semakin banyaknya desimasi, maka ukuran citra akan semakin direduksi (dari ukuran 64 x 64 piksel), sehingga citra akan semakin kabur. Seperti yang telah dijelaskan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59
pada Bab III, untuk desimasi 1 mempunyai ukuran 32 x 32 piksel, desimasi 2 mempunyai ukuran 16 x 16 piksel, dan desimasi 3 mempunyai ukuran 8 x 8 piksel. Jika dilihat dari tabel hasil tingkat pengenalan secara real time, jarak 1,5 meter merupakan jarak pengujian yang terbaik untuk hasil desimasi 1 dan 2. Dengan mampu menghasilkan tingkat pengenalan sebesar 98 %. Sedangkan untuk desimasi 3, jarak pengujian yang terbaik ialah 1,5 meter dengan mampu menghasilkan tingkat pengenalan sebesar 78 %.
4.3.2. Analisis Hasil Data Pengujian secara Non Real Time Dalam pengujian secara non real time, seperti yang telah disebutkan pada Bab III sebelumnya, pengujian sebanyak 1 sampel tangan orang lain dilakukan. Berikut ini hasil data yang diperoleh dari pengujian secara non real time dari 5 variasi jarak, yaitu 1 m, 1,5 m, 2 m, 2,5 m, dan 3 m dan juga dari 3 variasi desimasi, besar tingkat pengenalan, serta grafik besar tingkat pengenalannya. Dalam proses pengambilan datanya pengambilan setiap sampel angka sebanyak 1 kali dilakukan dan hasilnya akan ditunjukkan dalam bentuk confusion matrix (lihat pada lampiran). Tabel 4.4. Hasil Pengujian Non Real Time Jarak (Meter)
Tingkat Pengenalan Desimasi 1
Desimasi 2
Desimasi 3
1
100 %
100 %
50 %
1,5
90 %
90 %
80 %
2
70 %
70 %
60 %
2,5
90 %
90 %
50 %
3
90 %
80 %
60 %
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60
-
Grafik Hasil Pengujian Non Real Time :
Gambar 4.17. Grafik Hasil Pengujian Non Real Time Berdasarkan grafik (Gambar 4.7) dan tabel hasil tingkat pengenalan secara non real time (Tabel 4.4), dapat dilihat juga bahwa hasil yang ditunjukkan cukup acak dan tidak menunjukkan ketergantungan pada jarak pengujian. Hal ini dikarenakan bahwa sampai jarak maksimal pengujian (3 meter), software pengenalan angka dengan pose jari tangan ini masih mampu menangkap objek tangan dengan baik walaupun hasil keluaran teks masih ada yang mengalami kesalahan dalam pengenalan. Sedangkan untuk hasil percobaan desimasi, dapat juga dilihat bahwa semakin banyak desimasi, maka semakin menurun tingkat pengenalan. Hal ini disebabkan karena semakin banyaknya desimasi, maka ukuran citra akan semakin direduksi (dari ukuran 64 x 64 piksel), sehingga citra akan semakin kabur. Seperti yang telah dijelaskan pada Bab III, untuk desimasi 1 mempunyai ukuran 32 x 32 piksel, desimasi 2 mempunyai ukuran 16 x 16 piksel, dan desimasi 3 mempunyai ukuran 8 x 8 piksel. Jika dilihat dari tabel hasil tingkat pengenalan secara non real time, jarak 1,5 meter merupakan jarak pengujian yang terbaik untuk hasil desimasi 1 dan 2. Dengan mampu menghasilkan tingkat pengenalan sebesar 100 %. Sedangkan untuk desimasi 3, jarak pengujian yang terbaik ialah 1,5 meter dengan mampu menghasilkan tingkat pengenalan sebesar 80 %.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61
Pada hasil data secara menyuluruh baik secara real time dan non real time (lihat lampiran), pola angka ASL 6, 7 dan 8 sering mengalami kesalahan dalam pengujian dikarenakan kedua pola angka ASL ini memiliki kemiripan jika dilihat dari citra hasil pengambilan tanganya (lihat Gambar 4.10). Oleh karena itu, seperti kasus pada saat melakukan pengujian angka 6, output teksnya terkadang menunjukkan angka 7 atau 8, untuk pengujian angka 7, output teksnya terkadang menunjukkan angka 6 atau 8, dan untuk pengujian angka 8, output teksnya terkadang menunjukkan angka 6 atau 7. Melihat kembali penelitian sebelumnya, yaitu tentang pengenalan pola huruf ASL A-Z, tingkat pengenalan yang dihasilkan sebesar 80,42 % [2]. Berdasarkan hasil tingkat pengenalan pada penelitian ini (secara real time dan non real time) dan pada penelitian sebelumnya, dapat dilihat bahwa beberapa hasil tingkat pengenalan pada penelitian ini telah mampu melampui hasil tingkat pengenalan pada penelitian sebelumnya. Oleh karena itu, dapat dikatakan bahwa hasil dari penelitian tentang pengenalan pola angka ASL 0-9 ini sudah cukup lebih baik daripada penelitian sebelumnya yang meneliti tentang pengenalan pola huruf ASL A-Z.
Gambar 4.18. Percobaan di Ruang Tugas Akhir Teknik Elekro USD (1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62
Gambar 4.19. Percobaan di Ruang Tugas Akhir Teknik Elekro USD (2)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V KESIMPULAN DAN SARAN
5.1. Kesimpulan Berdasarkan penelitian yang telah dilakukan, dimulai dari tahap perancangan sistem, implementasi, pengujian sistem, hasil pengujian, serta pembahasan, maka dapat ditarik kesimpulan, antara lain : 1. Sistem pengenalan karakter angka 0-9 berdasarkan pola isyarat ASL sudah dapat berjalan dengan baik. 2. Berdasarkan pengujian secara non real time yang telah dilakukan, dengan jarak terjauh 3 meter dihasilkan tingkat pengenalan sebesar 90 %. Hasil ini diperoleh menggunakan desimasi 1 yang memberikan ekstraksi ciri 32 x 32 piksel. 3. Berdasarkan pengujian secara real time yang telah dilakukan, dengan jarak terjauh 3 meter dihasilkan tingkat pengenalan sebesar 88 %. Hasil ini diperoleh menggunakan desimasi 1 yang memberikan ekstraksi ciri 32 x 32 piksel.
5.2. Saran Dengan dibuatnya software pengenalan angka dengan pose jari tangan ini, saran yang dapat diberikan dalam pengembangannya ke depan ialah, antara lain : 1. Mencoba memperbanyak pola angka atau huruf ASL yang dapat dikenali khusunya yang berbasis gesture. 2. Mencoba menggunakan fitur object detection, agar pola angka atau huruf ASL yang diuji dapat dideteksi dan dikenali walaupun webcam digerakkan. 3. Mencoba menggunakan output yang berupa suara. 4. Mencoba menggunakan banyak variasi desimasi.
63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA
[1]
Vitriantoro, A.F., 2014, Pengenalan Plat Nomor Sepeda Motor Menggunakan Ekstraksi Ciri DCT dan Fungsi Jarak Euclidean, Tugas Akhir, Jurusan Teknik Elektro, Program Studi Teknik Elektro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma Yogyakarta.
[2]
Mardiyani A., Purnomo, M.H., Purnama, I K.P. 2012, Pengenalan Bahasa Isyarat Menggunakan Metode PCA dan Haar Like Feature¸ Jurusan Teknik Elektro, FTI, Institut Teknologi 10 Nopember Surabaya, hal. 1-6.
[3]
Khusnia, 2013, Komunikasi Non Verbal, https://khusnia.wordpress.com/pengantar-ilmu-komunikasi/07-komunikasinonverbal/, diakses 1 November 2016.
[4]
-----, 2016, Jari, https://id.wikipedia.org/wiki/Jari, diakses 21 Agustus 2016.
[5]
Ikhwan,
T.,
2014,
Cara
Cepat
Belajar
Bahasa
Isyarat
Untuk
Tunarungu/Tunawicara, http://ikhwan-smoothcriminal.blogspot.co.id/2012/11/ara-cepat-belajar-bahasa isyarat-untuk.html, diakses 21 Agustus 2016. [6]
Sutarno, 2010, Analisis Perbandingan Transformasi Wavelet pada Pengenalan Citra Wajah, Fakultas Ilmu Komputer, Universitas Sriwijaya, Hal.15-16.
[7]
Rizal, A., 2014, Pengolahan Citra, http://achmadrizal.staff.telkomuniversity.ac.id/pengolahan-citra/, Agustus 2016.
64
diakses
21
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65
[8]
Fauzan, A., 2015, Ruang Warna Hue Saturation Value (HSV) serta konversinya, http://www.charisfauzan.net/2015/01/ruang-warna-hue-saturation-value-hsv.html, diakses 21 Agustus 2016.
[9]
Taufik, I., 2015, Program VB.Net Konversi RGB ke HSV, http://tutorial-komputerpemula.blogspot.co.id/2015/04/program-vbnet-konversi-rgb-ke-hsv.html,
diakses
21 Agustus 2016. [10]
Prabowo, I.A.A., 2015, Pengenalan Secara Real Time Huruf Jawa Jenis Cetak Menggunakan Ekstraksi Ciri Wavelet dan Fungsi Jarak Euclidean, Tugas Akhir, Program Studi Teknik Elektro, Jurusan Teknik Elektro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma Yogyakarta.
[11]
Putri, D.N., Rafmadhanty, F., Megantara, I.P., Jayanti, I.N., Hapsari K.D., 2013, Klasifikasi Huruf Korea (Hangul) dengan Metode Template Matching Correlation, Jurusan Teknik Informatika, Universitas Brawijaya.
[12]
Sumarno, L., 2014, Pengenalan Nada Pianika Menggunakan Jendela Blackaman Dan Ekstraksi Ciri Transformasi Fourier Cepat, Program Studi Teknik Elektro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma Yogyakarta.
[13]
-----, 2016, Pengertian Kamera Web, Fungsi Kamera Web, dan Kelemahan Kamera Web,
http://www.infoteknologi.org/2015/12/pengertian-kamera-web-fungsi-
kamera-web_17.html, diakses 1 November 2016. [14]
-----, 2015, Spesifikasi Teknis Logitech C270 HD Webcam, http://pojokcyberkasomalang.blogspot.co.id/2015/12/logitech-c270-hd-webcamspesifikasi-dan-harga-termurah-di-pasar-indonesia.html, 2016.
diakses
1 November
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66
[15]
-----, 2016, Logitech Webcam C270 HD, https://www.bukalapak.com/p/komputer/aksesoris-226/webcam/3x56q3-juallogitech-webcam-c270-hd, diakses 8 November 2016.
[16]
Nugroho, I.A., 2015, Pengenalan Secara Real Time Rambu Lalu Lintas Pergingatan Menggunakan Ekstraksi Ciri Wavelet Haar dan Fungsi Jarak Chi Square,
Tugas
Akhir,
Program
Studi
Teknik
Elektro, Jurusan Teknik Elektro, Fakultas Sains dan Teknologi, Universitas Sanata Dharma Yogyakarta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-1
LAMPIRAN
Sintaks Program Real Time : -
GUI (guiangka.m) :
function varargout = guiangka(varargin) % GUIANGKA M-file for guiangka.fig % GUIANGKA, by itself, creates a new GUIANGKA or raises the existing % singleton*. % % H = GUIANGKA returns the handle to a new GUIANGKA or the handle to % the existing singleton*. % % GUIANGKA('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in GUIANGKA.M with the given input arguments. % % GUIANGKA('Property','Value',...) creates a new GUIANGKA or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before guiangka_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to guiangka_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help guiangka % Last Modified by GUIDE v2.5 16-Nov-2016 17:39:47 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @guiangka_OpeningFcn, ... 'gui_OutputFcn', @guiangka_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-2
% --- Executes just before guiangka is made visible. function guiangka_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to guiangka (see VARARGIN) % Choose default command line output for guiangka handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes guiangka wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = guiangka_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double
% --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-3
%===========================Kamera Aktif===============================% % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) imaqhwinfo; info=imaqhwinfo('winvideo'); dev_info=imaqhwinfo('winvideo',1); vidobj=videoinput('winvideo',1,'RGB24_1280x960'); vidobj.FramesPerTrigger=1; triggerconfig(vidobj,'manual'); vidRes=get(vidobj,'VideoResolution'); imWidth=1280; imHeight=960; nBands=get(vidobj,'NumberOfBands'); hImage=image(zeros(imHeight,imWidth,nBands),'parent',handles.axes1); preview(vidobj,hImage) %===========================Ambil Gambar================================% % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) imaqhwinfo; info=imaqhwinfo('winvideo'); dev_info=imaqhwinfo('winvideo',1); vidobj=videoinput('winvideo',1,'RGB24_1280x960'); vidobj.FramesPerTrigger=1; triggerconfig(vidobj,'manual'); vidRes=get(vidobj,'VideoResolution'); imWidth=1280; imHeight=960; nBands=get(vidobj,'NumberOfBands'); hImage=image(zeros(imHeight,imWidth,nBands),'parent',handles.axes1); start(vidobj); pause(1); trigger(vidobj); stoppreview(vidobj); capt1=getdata(vidobj); gambar=capt1; handles.a=gambar; guidata(hObject,handles); axes(handles.axes1); imshow(gambar) %===========================Variasi Desimasi===========================% % --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from % popupmenu1 indeks=get(handles.popupmenu1,'Value');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-4
switch indeks case 2 des=1; case 3; des=2; case 4; des=3; end handles.des=des; guidata(hObject,handles); %===========================Proses==================================% % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %popupmenu des=handles.des if(des==1) load dB1r64d1 elseif(des==2) load dB1r64d2 elseif(des==3) load dB1r64d3 end %Konversi RGB ke HSV x=handles.a; axes(handles.axes2); x0=rgb2hsv(x); s=x0(:,:,2); s1=s>0.17;
%Ambil bagian saturation
v=x0(:,:,3); v1=v>0.4;
%Ambil bagian value
tsv=and(s1,v1); kulit=bwareaopen(v1,2000); kulit1=imdilate(kulit,strel('square',4)); %Hitung luasan kulit %Tandai Objek yang ada x1 = bwlabel(kulit1); %Hitung jumlah objek jumobj = max(x1(:));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-5
if jumobj>1 %Hitung luasan setiap objek for k=1:jumobj x2=x1==k; aobj(k)=sum(x2(:)); end %segmentasi luasan kedua terbesar [s,u]=sort(aobj,'descend'); x3=x1==u(2); else x3=x1; end % Proses cropping sesuai bounding box if sum(sum(x3))>0 % Jika ada obyek dilakukan pemotongan % Potong kiri cout=x3; a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong kanan cout=fliplr(cout); a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong atas cout=cout'; a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong bawah cout=fliplr(cout); a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Penyesuaian orientasi cout=cout'; cout=flipud(cout); cout=fliplr(cout); else % Jika tidak ada obyek tidak dilakukan pemotongan cout=x3; end imshow(cout) axis on %Proses resizing axes(handles.axes3); x4=imresize(cout,[64 64]); imshow(x4) axis on
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-6
%Ekstraksi ciri wavelet axes(handles.axes4); x5=xcwav2(x4,des); x6=x5(:); imshow(x5) axis on %Korelasi %Ada 3 kolom matriks database for n=1:10 r(n)=korelasi(x6,z(:,n)) end maxr=max(r) %Keluaran teks if (maxr==r(1)) z1={'0'}; set(handles.edit3,'string',z1); elseif (maxr==r(2)) z2={'1'}; set(handles.edit3,'string',z2); elseif (maxr==r(3)) z3={'2'}; set(handles.edit3,'string',z3); elseif (maxr==r(4)) z4={'3'}; set(handles.edit3,'string',z4); elseif (maxr==r(5)) z5={'4'}; set(handles.edit3,'string',z5); elseif (maxr==r(6)) z6={'5'}; set(handles.edit3,'string',z6); elseif (maxr==r(7)) z7={'6'}; set(handles.edit3,'string',z7); elseif (maxr==r(8)) z8={'7'}; set(handles.edit3,'string',z8) elseif (maxr==r(9)) z9={'8'}; set(handles.edit3,'string',z9) elseif (maxr==r(10)) z10={'9'}; set(handles.edit3,'string',z10) end %==========================Reset==================================== % % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes1) plot(0); axes(handles.axes2) plot(0); axes(handles.axes3) plot(0);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-7
axes(handles.axes4) plot(0); set(handles.popupmenu1,'Value',1); set(handles.edit3,'string',''); %===========================Keluar==================================% % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close % --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
-
Database (dbxcwav.m) :
%===================Pembuatan Database============================% function dbxcwav z=[]; z=prosesxc(1,[64 64]); save dB1r64d1 z ; z=[]; z=prosesxc(2,[64 64]); save dB1r64d2 z ; z=[]; z=prosesxc(3,[64 64]); save dB1r64d3 z ; z=[]; %================================================================= % internal function %================================================================= function z=prosesxc(des,rz) z=[]; %Jarak 1m x=imread('D_1_0.jpg'); x=imread('D_1_1.jpg'); x=imread('D_1_2.jpg'); x=imread('D_1_3.jpg'); x=imread('D_1_4.jpg'); x=imread('D_1_5.jpg'); x=imread('D_1_6.jpg'); x=imread('D_1_7.jpg'); x=imread('D_1_8.jpg'); x=imread('D_1_9.jpg');
x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz);
y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des);
y1=y(:); y2=y(:); y3=y(:); y4=y(:); y5=y(:); y6=y(:); y7=y(:); y8=y(:); y9=y(:); y10=y(:);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-8
%Jarak 1,5m x=imread('D_1,5_0.jpg'); x=imread('D_1,5_1.jpg'); x=imread('D_1,5_2.jpg'); x=imread('D_1,5_3.jpg'); x=imread('D_1,5_4.jpg'); x=imread('D_1,5_5.jpg'); x=imread('D_1,5_6.jpg'); x=imread('D_1,5_7.jpg'); x=imread('D_1,5_8.jpg'); x=imread('D_1,5_9.jpg'); %Jarak 2m x=imread('D_2_0.jpg'); x=imread('D_2_1.jpg'); x=imread('D_2_2.jpg'); x=imread('D_2_3.jpg'); x=imread('D_2_4.jpg'); x=imread('D_2_5.jpg'); x=imread('D_2_6.jpg'); x=imread('D_2_7.jpg'); x=imread('D_2_8.jpg'); x=imread('D_2_9.jpg');
x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz);
%Jarak 2,5m x=imread('D_2,5_0.jpg'); x=imread('D_2,5_1.jpg'); x=imread('D_2,5_2.jpg'); x=imread('D_2,5_3.jpg'); x=imread('D_2,5_4.jpg'); x=imread('D_2,5_5.jpg'); x=imread('D_2,5_6.jpg'); x=imread('D_2,5_7.jpg'); x=imread('D_2,5_8.jpg'); x=imread('D_2,5_9.jpg'); %Jarak 3m x=imread('D_3_0.jpg'); x=imread('D_3_1.jpg'); x=imread('D_3_2.jpg'); x=imread('D_3_3.jpg'); x=imread('D_3_4.jpg'); x=imread('D_3_5.jpg'); x=imread('D_3_6.jpg'); x=imread('D_3_7.jpg'); x=imread('D_3_8.jpg'); x=imread('D_3_9.jpg');
x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz);
y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des);
x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz);
x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz); x=prepro(x,rz);
%perataan dat0=(y1+y11+y21+y31+y41)/5; dat1=(y2+y12+y22+y32+y42)/5; dat2=(y3+y13+y23+y33+y43)/5; dat3=(y4+y14+y24+y34+y44)/5; dat4=(y5+y15+y25+y35+y45)/5; dat5=(y6+y16+y26+y36+y46)/5; dat6=(y7+y17+y27+y37+y47)/5; dat7=(y8+y18+y28+y38+y48)/5; dat8=(y9+y19+y29+y39+y49)/5; dat9=(y10+y20+y30+y40+y50)/5;
y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des);
y21=y(:); y22=y(:); y23=y(:); y24=y(:); y25=y(:); y26=y(:); y27=y(:); y28=y(:); y29=y(:); y30=y(:);
y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des);
y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des); y=xcwav2(x,des);
y11=y(:); y12=y(:); y13=y(:); y14=y(:); y15=y(:); y16=y(:); y17=y(:); y18=y(:); y19=y(:); y20=y(:);
y31=y(:); y32=y(:); y33=y(:); y34=y(:); y35=y(:); y36=y(:); y37=y(:); y38=y(:); y39=y(:); y40=y(:);
y41=y(:); y42=y(:); y43=y(:); y44=y(:); y45=y(:); y46=y(:); y47=y(:); y48=y(:); y49=y(:); y50=y(:);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-9
%database z=[dat0 dat1 dat2 dat3 dat4 dat5 dat6 dat7 dat8 dat9]; %================================================================= % internal function %================================================================= function x9=prepro(x0,rz) %Konversi RGB ke HSV x1=rgb2hsv(x0); %Konversi RGB ke HSV s=x1(:,:,2); s1=s>0.17;
%Ambil bagian saturation
v=x1(:,:,3); v1=v>0.4;
%Ambil bagian value
tsv=and(s1,v1); kulit=bwareaopen(v1,2000); kulit1=imdilate(kulit,strel('square',4)); %Hitung luasan kulit %Tandai Objek yang ada x1 = bwlabel(kulit1); %Hitung jumlah objek jumobj = max(x1(:)); if jumobj>1 %Hitung luasan setiap objek for k=1:jumobj x2=x1==k; aobj(k)=sum(x2(:)); end %segmentasi luasan kedua terbesar [s,u]=sort(aobj,'descend'); x3=x1==u(2); else x3=x1; end % Proses cropping sesuai bounding box if sum(sum(x3))>0 % Jika ada obyek dilakukan pemotongan % Potong kiri cout=x3; a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong kanan cout=fliplr(cout); a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[];
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-10
% Potong atas cout=cout'; a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong bawah cout=fliplr(cout); a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Penyesuaian orientasi cout=cout'; cout=flipud(cout); cout=fliplr(cout); else % Jika tidak ada obyek tidak dilakukan pemotongan cout=x3; end %Proses resizing x9=imresize(cout,rz);
-
Ekstraksi Ciri Wavelet (xcwav2.m) :
%Ekstraksi ciri wavelet 2d function x3=xcwav2(x0,m) for j=1:m x1=convx2(x0); x2=downsampling(x1); x0=x2; end x3=x0; %================================================================= % internal function %================================================================= %Konvolusi 2D function y=convx2(x) LPF=[0.7071 0.7071]; [b,j]=size(x);
%Wavelet Haar LO_D
%Konvolusi baris for m=1:b x0=x(m,:); x(m,:)=convx(x0,LPF); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-11
%Konvolusi kolom for m=1:j x0=x(:,m); x(:,m)=convx(x0',LPF)'; end y=x; %================================================================= % internal function %================================================================= %Konvolusi dengan ekstensi sinyal %Jumlah koefisien harus genap; function y=convx(x,LPF) lx=length(x); lf=length(LPF); %Ekstensi sinyal batas=lf/2; kiri=x(lx-batas+1:lx); kanan=x(1:batas); x=[kiri x kanan]; %Konvolusi x=double(x); LPF=double(LPF); y=conv(x,LPF); %Keluarkan yang perlu awal=lf+1; akhir=awal+lx-1; y=y(awal:akhir); %================================================================= % internal function %================================================================= %Proses downsampling yang mempertahankan koefisien genap function y=downsampling(x) [b,j]=size(x); %downsampling baris m=1:2:b; x(m,:)=[]; %downsampling kolom m=1:2:j; x(:,m)=[]; y=x;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-12
-
Korelasi (korelasi.m) :
%Korelasi function z=korelasi(x,y) y1=(1./length(x)).*(sum(x)); y2=(1./length(y)).*(sum(y)); z=(sum((x-y1).*(y-y2)))./((sqrt(sum((x-y1).^2))).*(sum((y-y2).^2)));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-13
Sintaks Program Non Real Time (kenalwav2.m) : function kenalwav2 %load database disp('input desimasi 1-3') des=input('Desimasi = ') %input desimasi = 1-3 if (des==1) load dB1r64d1 elseif (des==2) load dB1r64d2 elseif (des==3) load dB1r64d3 end %Angka 0 x1=imread('S_1_0.jpg');a1=cropbbox(x1); y1=xcwav2(b1,des); z1=y1(:); x2=imread('S_1,5_0.jpg'); a2=cropbbox(x2); y2=xcwav2(b2,des); z2=y2(:); x3=imread('S_2_0.jpg'); a3=cropbbox(x3); y3=xcwav2(b3,des); z3=y3(:); x4=imread('S_2,5_0.jpg'); a4=cropbbox(x4); y4=xcwav2(b4,des); z4=y4(:); x5=imread('S_3_0.jpg'); a5=cropbbox(x5); y5=xcwav2(b5,des); z5=y5(:); %Angka 1 x6=imread('S_1,5_1.jpg');a6=cropbbox(x6); y6=xcwav2(b6,des); z6=y6(:); x7=imread('S_1,5_1.jpg'); a7=cropbbox(x7); y7=xcwav2(b7,des); z7=y7(:); x8=imread('S_2_1.jpg'); a8=cropbbox(x7); y8=xcwav2(b8,des); z8=y8(:); x9=imread('S_2,5_1.jpg'); a9=cropbbox(x8); y9=xcwav2(b9,des); z9=y9(:); x10=imread('S_3_1.jpg'); a10=cropbbox(x9); y10=xcwav2(b10,des); z10=y10(:); %Angka 2 x11=imread('S_1_2.jpg');a11=cropbbox(x11); y11=xcwav2(b11,des); z11=y11(:); x12=imread('S_1,5_2.jpg'); a12=cropbbox(x12); y12=xcwav2(b12,des); z12=y12(:); x13=imread('S_2_2.jpg'); a13=cropbbox(x13); y13=xcwav2(b13,des); z13=y13(:); x14=imread('S_2,5_2.jpg'); a14=cropbbox(x14); y14=xcwav2(b14,des); z14=y14(:); x15=imread('S_3_2.jpg'); a15=cropbbox(x15); y15=xcwav2(b15,des); z15=y15(:); %Angka 3 x16=imread('S_1_3.jpg');a16=cropbbox(x16); y16=xcwav2(b16,des); z16=y16(:); x17=imread('S_1,5_3.jpg'); a17=cropbbox(x17); y17=xcwav2(b17,des); z17=y17(:); x18=imread('S_2_3.jpg'); a18=cropbbox(x18); y18=xcwav2(b18,des); z18=y18(:);
b1=resizing(a1); b2=resizing(a2); b3=resizing(a3); b4=resizing(a4); b5=resizing(a5);
b6=resizing(a6); b7=resizing(a7); b8=resizing(a8); b9=resizing(a9); b10=resizing(a10);
b11=resizing(a11); b12=resizing(a12); b13=resizing(a13); b14=resizing(a14); b15=resizing(a15);
b16=resizing(a16); b17=resizing(a17); b18=resizing(a18);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-14
x19=imread('S_2,5_3.jpg'); a19=cropbbox(x19); y19=xcwav2(b19,des); z19=y19(:); x20=imread('S_3_3.jpg'); a20=cropbbox(x20); y20=xcwav2(b20,des); z20=y20(:); %Angka 4 x21=imread('S_1_4.jpg');a21=cropbbox(x21); y21=xcwav2(b21,des); z21=y21(:); x22=imread('S_1,5_4.jpg'); a22=cropbbox(x22); y22=xcwav2(b22,des); z22=y22(:); x23=imread('S_2_4.jpg'); a23=cropbbox(x23); y23=xcwav2(b23,des); z23=y23(:); x24=imread('S_2,5_4.jpg'); a24=cropbbox(x24); y24=xcwav2(b24,des); z24=y24(:); x25=imread('S_3_4.jpg'); a25=cropbbox(x25); y25=xcwav2(b25,des); z25=y25(:); %Angka 5 x26=imread('S_1_5.jpg');a26=cropbbox(x26); y26=xcwav2(b26,des); z26=y26(:); x27=imread('S_1,5_5.jpg'); a27=cropbbox(x27); y27=xcwav2(b27,des); z27=y27(:); x28=imread('S_2_5.jpg'); a28=cropbbox(x28); y28=xcwav2(b28,des); z28=y28(:); x29=imread('S_2,5_5.jpg'); a29=cropbbox(x29); y29=xcwav2(b29,des); z29=y29(:); x30=imread('S_3_5.jpg'); a30=cropbbox(x30); y30=xcwav2(b30,des); z30=y30(:); %Angka 6 x31=imread('S_1_6.jpg');a31=cropbbox(x31); y31=xcwav2(b31,des); z31=y31(:); x32=imread('S_1,5_6.jpg'); a32=cropbbox(x32); y32=xcwav2(b32,des); z32=y32(:); x33=imread('S_2_6.jpg'); a33=cropbbox(x33); y33=xcwav2(b33,des); z33=y33(:); x34=imread('S_2,5_6.jpg'); a34=cropbbox(x34); y34=xcwav2(b34,des); z34=y34(:); x35=imread('S_3_6.jpg'); a35=cropbbox(x35); y35=xcwav2(b35,des); z35=y35(:); %Angka 7 x36=imread('S_1_7.jpg');a36=cropbbox(x36); y36=xcwav2(b36,des); z36=y36(:); x37=imread('S_1,5_7.jpg'); a37=cropbbox(x37); y37=xcwav2(b37,des); z37=y37(:); x38=imread('S_2_7.jpg'); a38=cropbbox(x38); y38=xcwav2(b38,des); z38=y38(:); x39=imread('S_2,5_7.jpg'); a39=cropbbox(x39); y39=xcwav2(b39,des); z39=y39(:); x40=imread('S_3_7.jpg'); a40=cropbbox(x40); y40=xcwav2(b40,des); z40=y40(:); %Angka 8 x41=imread('S_1_8.jpg');a41=cropbbox(x41); y41=xcwav2(b41,des); z41=y41(:); x42=imread('S_1,5_8.jpg'); a42=cropbbox(x42); y42=xcwav2(b42,des); z42=y42(:);
b19=resizing(a19); b20=resizing(a20);
b21=resizing(a21); b22=resizing(a22); b23=resizing(a23); b24=resizing(a24); b25=resizing(a25);
b26=resizing(a26); b27=resizing(a27); b28=resizing(a28); b29=resizing(a29); b30=resizing(a30);
b31=resizing(a31); b32=resizing(a32); b33=resizing(a33); b34=resizing(a34); b35=resizing(a35);
b36=resizing(a36); b37=resizing(a37); b38=resizing(a38); b39=resizing(a39); b40=resizing(a40);
b41=resizing(a41); b42=resizing(a42);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-15
x43=imread('S_2_8.jpg'); a43=cropbbox(x43); y43=xcwav2(b43,des); z43=y43(:); x44=imread('S_2,5_8.jpg'); a44=cropbbox(x44); y44=xcwav2(b44,des); z44=y44(:); x45=imread('S_3_8.jpg'); a45=cropbbox(x45); y45=xcwav2(b45,des); z45=y45(:); %Angka 9 x46=imread('S_1_9.jpg');a46=cropbbox(x46); y46=xcwav2(b46,des); z46=y46(:); x47=imread('S_1,5_9.jpg'); a47=cropbbox(x47); y47=xcwav2(b47,des); z47=y47(:); x48=imread('S_2_9.jpg'); a48=cropbbox(x48); y48=xcwav2(b48,des); z48=y48(:); x49=imread('S_2,5_9.jpg'); a49=cropbbox(x49); y49=xcwav2(b49,des); z49=y49(:); x50=imread('S_3_9.jpg'); a50=cropbbox(x50); y50=xcwav2(b50,des); z50=y50(:);
b43=resizing(a43); b44=resizing(a44); b45=resizing(a45);
b46=resizing(a46); b47=resizing(a47); b48=resizing(a48); b49=resizing(a49); b50=resizing(a50);
datauji=[z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14 z15 z16 z17 z18 z19 z20... z21 z22 z23 z24 z25 z26 z27 z28 z29 z30 z31 z32 z33 z34 z35 z36 z37 z38 z39 z40... z41 z42 z43 z44 z45 z46 z47 z48 z49 z50]; %Menampilkan hasil cropping figure(1) subplot(5,10,1);imshow (a1); axis on; title('0-1m') subplot(5,10,2);imshow (a2); axis on; title('0-1,5m') subplot(5,10,3);imshow (a3); axis on; title('0-2m') subplot(5,10,4);imshow (a4); axis on; title('0-2,5m') subplot(5,10,5);imshow (a5); axis on; title('0-3m') subplot(5,10,6);imshow (a6); axis on; title('1-1m') subplot(5,10,7);imshow (a7); axis on; title('1-1,5m') subplot(5,10,8);imshow (a8); axis on; title('1-2m') subplot(5,10,9);imshow (a9); axis on; title('1-2,5m') subplot(5,10,10);imshow (a10); axis on; title('1-3m') subplot(5,10,11);imshow (a11); axis on; title('2-1m') subplot(5,10,12);imshow (a12); axis on; title('2-1,5m') subplot(5,10,13);imshow (a13); axis on; title('2-2m') subplot(5,10,14);imshow (a14); axis on; title('2-2,5m') subplot(5,10,15);imshow (a15); axis on; title('2-3m') subplot(5,10,16);imshow (a16); axis on; title('3-1m') subplot(5,10,17);imshow (a17); axis on; title('3-1,5m') subplot(5,10,18);imshow (a18); axis on; title('3-2m') subplot(5,10,19);imshow (a19); axis on; title('3-2,5m') subplot(5,10,20);imshow (a20); axis on; title('3-3m') subplot(5,10,21);imshow (a21); axis on; title('4-1m') subplot(5,10,22);imshow (a22); axis on; title('4-1,5m') subplot(5,10,23);imshow (a23); axis on; title('4-2m') subplot(5,10,24);imshow (a24); axis on; title('4-2,5m') subplot(5,10,25);imshow (a25); axis on; title('4-3m') subplot(5,10,26);imshow (a26); axis on; title('5-1m') subplot(5,10,27);imshow (a27); axis on; title('5-1,5m') subplot(5,10,28);imshow (a28); axis on; title('5-2m') subplot(5,10,29);imshow (a29); axis on; title('5-2,5m') subplot(5,10,30);imshow (a30); axis on; title('5-3m') subplot(5,10,31);imshow (a31); axis on; title('6-1m') subplot(5,10,32);imshow (a32); axis on; title('6-1,5m')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-16
subplot(5,10,33);imshow subplot(5,10,34);imshow subplot(5,10,35);imshow subplot(5,10,36);imshow subplot(5,10,37);imshow subplot(5,10,38);imshow subplot(5,10,39);imshow subplot(5,10,40);imshow subplot(5,10,41);imshow subplot(5,10,42);imshow subplot(5,10,43);imshow subplot(5,10,44);imshow subplot(5,10,45);imshow subplot(5,10,46);imshow subplot(5,10,47);imshow subplot(5,10,48);imshow subplot(5,10,49);imshow subplot(5,10,50);imshow
(a33); (a34); (a35); (a36); (a37); (a38); (a39); (a40); (a41); (a42); (a43); (a44); (a45); (a46); (a47); (a48); (a49); (a50);
axis axis axis axis axis axis axis axis axis axis axis axis axis axis axis axis axis axis
on; on; on; on; on; on; on; on; on; on; on; on; on; on; on; on; on; on;
title('6-2m') title('6-2,5m') title('6-3m') title('7-1m') title('7-1,5m') title('7-2m') title('7-2,5m') title('7-3m') title('8-1m') title('8-1,5m') title('8-2m') title('8-2,5m') title('8-3m') title('9-1m') title('9-1,5m') title('9-2m') title('9-2,5m') title('9-3m')
% Menampilkan hasil resizing figure(2) subplot(5,10,1);imshow (b1); axis on; title('0-1m') subplot(5,10,2);imshow (b2); axis on; title('0-1,5m') subplot(5,10,3);imshow (b3); axis on; title('0-2m') subplot(5,10,4);imshow (b4); axis on; title('0-2,5m') subplot(5,10,5);imshow (b5); axis on; title('0-3m') subplot(5,10,6);imshow (b6); axis on; title('1-1m') subplot(5,10,7);imshow (b7); axis on; title('1-1,5m') subplot(5,10,8);imshow (b8); axis on; title('1-2m') subplot(5,10,9);imshow (b9); axis on; title('1-2,5m') subplot(5,10,10);imshow (b10); axis on; title('1-3m') subplot(5,10,11);imshow (b11); axis on; title('2-1m') subplot(5,10,12);imshow (b12); axis on; title('2-1,5m') subplot(5,10,13);imshow (b13); axis on; title('2-2m') subplot(5,10,14);imshow (b14); axis on; title('2-2,5m') subplot(5,10,15);imshow (b15); axis on; title('2-3m') subplot(5,10,16);imshow (b16); axis on; title('3-1m') subplot(5,10,17);imshow (b17); axis on; title('3-1,5m') subplot(5,10,18);imshow (b18); axis on; title('3-2m') subplot(5,10,19);imshow (b19); axis on; title('3-2,5m') subplot(5,10,20);imshow (b20); axis on; title('3-3m') subplot(5,10,21);imshow (b21); axis on; title('4-1m') subplot(5,10,22);imshow (b22); axis on; title('4-1,5m') subplot(5,10,23);imshow (b23); axis on; title('4-2m') subplot(5,10,24);imshow (b24); axis on; title('4-2,5m') subplot(5,10,25);imshow (b25); axis on; title('4-3m') subplot(5,10,26);imshow (b26); axis on; title('5-1m') subplot(5,10,27);imshow (b27); axis on; title('5-1,5m') subplot(5,10,28);imshow (b28); axis on; title('5-2m') subplot(5,10,29);imshow (b29); axis on; title('5-2,5m') subplot(5,10,30);imshow (b30); axis on; title('5-3m') subplot(5,10,31);imshow (b31); axis on; title('6-1m') subplot(5,10,32);imshow (b32); axis on; title('6-1,5m') subplot(5,10,33);imshow (b33); axis on; title('6-2m') subplot(5,10,34);imshow (b34); axis on; title('6-2,5m') subplot(5,10,35);imshow (b35); axis on; title('6-3m') subplot(5,10,36);imshow (b36); axis on; title('7-1m') subplot(5,10,37);imshow (b37); axis on; title('7-1,5m') subplot(5,10,38);imshow (b38); axis on; title('7-2m') subplot(5,10,39);imshow (b39); axis on; title('7-2,5m')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-17
subplot(5,10,40);imshow subplot(5,10,41);imshow subplot(5,10,42);imshow subplot(5,10,43);imshow subplot(5,10,44);imshow subplot(5,10,45);imshow subplot(5,10,46);imshow subplot(5,10,47);imshow subplot(5,10,48);imshow subplot(5,10,49);imshow subplot(5,10,50);imshow
(b40); (b41); (b42); (b43); (b44); (b45); (b46); (b47); (b48); (b49); (b50);
axis axis axis axis axis axis axis axis axis axis axis
on; on; on; on; on; on; on; on; on; on; on;
title('7-3m') title('8-1m') title('8-1,5m') title('8-2m') title('8-2,5m') title('8-3m') title('9-1m') title('9-1,5m') title('9-2m') title('9-2,5m') title('9-3m')
% Menampilkan hasil ekstraksi ciri figure(3) subplot(5,10,1);imshow (y1); axis on; title('0-1m') subplot(5,10,2);imshow (y2); axis on; title('0-1,5m') subplot(5,10,3);imshow (y3); axis on; title('0-2m') subplot(5,10,4);imshow (y4); axis on; title('0-2,5m') subplot(5,10,5);imshow (y5); axis on; title('0-3m') subplot(5,10,6);imshow (y6); axis on; title('1-1m') subplot(5,10,7);imshow (y7); axis on; title('1-1,5m') subplot(5,10,8);imshow (y8); axis on; title('1-2m') subplot(5,10,9);imshow (y9); axis on; title('1-2,5m') subplot(5,10,10);imshow (y10); axis on; title('1-3m') subplot(5,10,11);imshow (y11); axis on; title('2-1m') subplot(5,10,12);imshow (y12); axis on; title('2-1,5m') subplot(5,10,13);imshow (y13); axis on; title('2-2m') subplot(5,10,14);imshow (y14); axis on; title('2-2,5m') subplot(5,10,15);imshow (y15); axis on; title('2-3m') subplot(5,10,16);imshow (y16); axis on; title('3-1m') subplot(5,10,17);imshow (y17); axis on; title('3-1,5m') subplot(5,10,18);imshow (y18); axis on; title('3-2m') subplot(5,10,19);imshow (y19); axis on; title('3-2,5m') subplot(5,10,20);imshow (y20); axis on; title('3-3m') subplot(5,10,21);imshow (y21); axis on; title('4-1m') subplot(5,10,22);imshow (y22); axis on; title('4-1,5m') subplot(5,10,23);imshow (y23); axis on; title('4-2m') subplot(5,10,24);imshow (y24); axis on; title('4-2,5m') subplot(5,10,25);imshow (y25); axis on; title('4-3m') subplot(5,10,26);imshow (y26); axis on; title('5-1m') subplot(5,10,27);imshow (y27); axis on; title('5-1,5m') subplot(5,10,28);imshow (y28); axis on; title('5-2m') subplot(5,10,29);imshow (y29); axis on; title('5-2,5m') subplot(5,10,30);imshow (y30); axis on; title('5-3m') subplot(5,10,31);imshow (y31); axis on; title('6-1m') subplot(5,10,32);imshow (y32); axis on; title('6-1,5m') subplot(5,10,33);imshow (y33); axis on; title('6-2m') subplot(5,10,34);imshow (y34); axis on; title('6-2,5m') subplot(5,10,35);imshow (y35); axis on; title('6-3m') subplot(5,10,36);imshow (y36); axis on; title('7-1m') subplot(5,10,37);imshow (y37); axis on; title('7-1,5m') subplot(5,10,38);imshow (y38); axis on; title('7-2m') subplot(5,10,39);imshow (y39); axis on; title('7-2,5m') subplot(5,10,40);imshow (y40); axis on; title('7-3m') subplot(5,10,41);imshow (y41); axis on; title('8-1m') subplot(5,10,42);imshow (y42); axis on; title('8-1,5m') subplot(5,10,43);imshow (y43); axis on; title('8-2m') subplot(5,10,44);imshow (y44); axis on; title('8-2,5m') subplot(5,10,45);imshow (y45); axis on; title('8-3m') subplot(5,10,46);imshow (y46); axis on; title('9-1m')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-18
subplot(5,10,47);imshow subplot(5,10,48);imshow subplot(5,10,49);imshow subplot(5,10,50);imshow
(y47); (y48); (y49); (y50);
axis axis axis axis
on; on; on; on;
title('9-1,5m') title('9-2m') title('9-2,5m') title('9-3m')
for k=1:50; for n=1:10; r(n)=korelasi(datauji(:,k),z(:,n)); end [s1,s2]=sort(r,'descend') % Penentuan kelas keluaran KelasOut=s2(1); % Penentuan buah keluaran DaftarAngka={'0';'1';'2';'3';'4';'5';'6';'7';'8';'9'}; Angka{k}=DaftarAngka{KelasOut}; end AngkaOut=Angka %================================================================= % internal function %================================================================= function cout=cropbbox(img0) %Konversi RGB ke HSV x1=rgb2hsv(img0); %Konversi RGB ke HSV s=x1(:,:,2); s1=s>0.17;
%Ambil bagian saturation
v=x1(:,:,3); v1=v>0.4;
%Ambil bagian value
tsv=and(s1,v1); kulit=bwareaopen(v1,2000); kulit1=imdilate(kulit,strel('square',4)); %Hitung luasan kulit %Tandai Objek yang ada x1 = bwlabel(kulit1); %Hitung jumlah objek jumobj = max(x1(:)); if jumobj>1 %Hitung luasan setiap objek for k=1:jumobj x2=x1==k; aobj(k)=sum(x2(:)); end %segmentasi luasan kedua terbesar [s,u]=sort(aobj,'descend'); x3=x1==u(2); else x3=x1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-19
end % Proses cropping sesuai bounding box if sum(sum(x3))>0 % Jika ada obyek dilakukan pemotongan % Potong kiri cout=x3; a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong kanan cout=fliplr(cout); a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong atas cout=cout'; a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Potong bawah cout=fliplr(cout); a=sum(cout); b=find(a>0); cout(:,1:b(1)-1)=[]; % Penyesuaian orientasi cout=cout'; cout=flipud(cout); cout=fliplr(cout); else % Jika tidak ada obyek tidak dilakukan pemotongan cout=x3; end %================================================================= % internal function %================================================================= %Proses resizing function x0=resizing(img1) x0=imresize(img1,[64 64]);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-20
Proses Menyeluruh yang dicerminkan dalam Bentuk Flowchart : Mulai
Input : Citra RGB
Konversi RGB ke HSV “rgb2hsv”
Segmentasi HSV
Cropping dan Resizing
K
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-21
K
Ekstraksi Ciri Wavelet (Desimasi 2)
Template Matching (Perhitungan Korelasi)
Output: Keluaran Teks “0”
Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-22
Confusion Matrix Hasil Percobaan secara Real Time :
Hasil Orang 1 : -
Jarak 1 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
IIII I
IIII
8
9
IIII IIII IIII IIII IIII IIII
IIII IIII
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
IIII I
IIII
8
9
IIII IIII IIII IIII IIII IIII
IIII IIII
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-23
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
-
0
1
2
3
4
5
6
7
8
9
II
I I II
I
6
7
8
9
III
II III III
II II
IIII IIII I
IIII IIII
I I I
IIII IIII I
IIII IIII
IIII
Jarak 1,5 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
IIII IIII IIII IIII IIII IIII
IIII
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-24
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
III
II III III
II II
9
IIII IIII IIII IIII IIII IIII
IIII
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
II
III IIII
6
7
8
III
II II III
III II
9
IIII IIII IIII IIII
IIII
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-25
-
Jarak 2 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
III
I IIII
4
5
6
7
8
9
IIII II III I
III II II
II
7
8
9
IIII II III I
III II II
II
IIII IIII I IIII
I IIII I
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
II
I IIII
4
5
6
IIII IIII II IIII
I IIII I
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-26
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
-
0
1
2
3
I
I IIII
4
5
6
7
8
9
IIII II III I
III II II
II
6
7
8
9
III
II III II
II III
IIII IIII III IIII III
I II I
Jarak 2,5 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
IIII IIII IIII IIII IIII IIII
IIII
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-27
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
III
II III II
II III
9
IIII IIII IIII IIII IIII IIII
IIII
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
IIII IIII IIII II
I I
9
IIII IIII I
IIII IIII
I I I
IIII IIII I
II
I
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-28
-
Jarak 3 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
III II II
II III
8
9
IIII IIII IIII IIII IIII IIII
III IIII
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
III
II IIII
6
7
III II II
II III
8
9
III II
II
IIII IIII IIII IIII
I
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-29
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
I
I IIII
4
5
6
7
8
9
IIII III II II
II
7
8
9
IIII
I IIII
IIII IIII III IIII III
I II I II III I
Hasil Orang 2 : -
Jarak 1 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
IIII IIII IIII IIII IIII IIII IIII
IIII
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-30
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
IIII
I IIII
9
IIII IIII IIII IIII IIII IIII IIII
IIII
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
IIII IIII IIII II
I II
I
IIII IIII I
IIII IIII
I I I
IIII IIII I I
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-31
-
Jarak 1,5 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
III
II III
8
9
IIII IIII IIII IIII IIII IIII
III
II II IIII
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
III
II III
8
9
IIII IIII IIII IIII IIII IIII
III
II II IIII
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-32
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9 -
0
1
2
3
4
5
II
III IIII
6
7
8
II
II III II
9
IIII IIII IIII IIII
III III
IIII
Jarak 2 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
III
I IIII
4
5
6
7
8
9
IIII IIII I IIII
I IIII I
II
II III I
IIII III II II
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-33
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
II
I IIII
4
5
6
7
8
9
IIII IIII II IIII
I IIII I
II
II III I
6
7
IIII III II II
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
II
I IIII
4
5
8
9
IIII IIII II II
III IIII I I II
I III II
IIII III II I
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-34
-
Jarak 2,5 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
III
II III
8
9
IIII IIII IIII IIII IIII IIII
II
II III IIII
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
III
II III
8
9
IIII IIII IIII IIII IIII IIII
II
II III IIII
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-35
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9 -
0
1
2
3
4
5
6
7
8
9
IIII IIII I
IIII IIII
I I I
IIII IIII I I
IIII IIII IIII
II
I II
I
8
9
Jarak 3 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
IIII IIII IIII IIII IIII IIII III II II
II III III IIII
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-36
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
III
II IIII
5
6
7
III II II
III
8
9
IIII IIII IIII I IIII II
I
III I
II
7
8
9
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
II
I IIII
4
5
6
IIII IIII II II
III IIII I I II I
IIII I I I
III II II
I
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-37
Confusion Matrix Hasil Percobaan secara Non Real Time : -
Jarak 1 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-38
Desimasi 3 : OUT IN
0
2
3
4
5
6
7
8
9
7
8
9
√
0 1 2 3 4 5 6 7 8 9
-
1 √
√ √ √ √ √ √ √ √
Jarak 1,5 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
√ √ √ √ √ √ √ √ √ √
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-39
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
√ √ √ √ √ √ √ √ √ √
9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-40
-
Jarak 2 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-41
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9 -
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
Jarak 2,5 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-42
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-43
-
Jarak 3 m :
Desimasi 1 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
Desimasi 2 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L-44
Desimasi 3 : OUT IN 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
√ √ √ √ √ √ √ √ √ √