BAB 1 PENDAHULUAN
1.1 Latar Belakang Masalah
Sistem pengenalan isyarat jari adalah suatu sistem yang membuat mesin dapat mengenali isyarat jari seseorang sesuai dengan gambar isyarat jari yang telah dilatih dan disimpan di dalam mesin tersebut. Untuk melakukan pengenalan isyarat jari pada sistem maka terdapat berbagai metode. Pada penelitian ini dipilihlah Suatu metode pengenalan isyarat jari yaitu dengan menggunakan Metode Viola and Jones. Metode ini digunakan karena memiliki kapabilitas untuk mendeteksi isyarat jari pada suatu citra gambar dengan tingkat keakuratan yang cukup tinggi. Oleh karena itu suatu objek akan dapat dikenali oleh sistem melalui karakteristik atau ciri–ciri yang dihasilkan oleh perhitungan algoritma Viola and Jones terhadap objek tersebut. Untuk membangun sistem pengenalan isyarat jari pada aplikasi pemutar musik yang baik agar dapat diterapkan pada sistem identifikasi seseorang, sistem tersebut harus memenuhi beberapa kriteria diantaranya keakuratan pengenalan dan kecepatan pengenalan. Berikut adapula riset sejenis yang bertujuan memanfaatkan dan menganalisis metode viola-jones terhadap pengenalan wajah. Dimana pada penelitian ini dilakukan dengan membandingkan citra uji dengan jumlah 5 sample citra wajah orang terhadap 5, 10 dan 20 sample citra wajah orang yang telah melalui proses pelatihan. Maka dari hasil pengujian pada riset tersebut didapatkanlah data untuk rata-rata keakuratan pengenalan citra pada kondisi normal, miring, dan gelap terhadap 5 citra latih sebesar 73,33% sementara untuk 10 citra latih sebesar 86,67% dan untuk 20 citra latih sebesar 80% [1].
Vision dan Image Processing. Computer Vision mempunyai tujuan utama untuk membuat keputusan yang berguna tentang obyek fisik nyata dan pemandangan berdasarkan image yang didapat dari sensor. Secara sederhana Computer Vision ingin membangun sebuah mesin pandai yang dapat melihat. Image Processing merupakan salah satu jenis teknologi untuk menyelesaikan masalah mengenai pemrosesan gambar. Dalam Image Processing gambar yang ada diolah sedemikian rupa sehingga gambar tersebut lebih mudah untuk diproses. Oleh karena itu pada penelitian ini akan didapatkan suatu hasil penelitian berupa hasil analisa dan kesimpulan mengenai performa dari penerapan suatu algoritma pengolah citra gambar pada suatu sistem pengenalan isyarat jari untuk petunjuk navigasi play, pause, next, dan previous pada aplikasi pemutar musik.
1.2 Rumusan Masalah
Berdasarkan uraian latar belakang diatas, maka dapat diketahui bahwa dalam sistem pengenalan isyarat jari pada aplikasi pemutar musik masih terdapat kesalahan dalam mengenali citra jari tangan dimana jari tangan yang terdeteksi dikenali sebagai jari tangan orang lain sehingga menyebabkan sistem pengenalan tersebut belum benar-benar akurat, oleh karena itu dibutuhkanlah suatu pengembangan yang dapat meningkatkan keakuratan tersebut. Selain dari itu, faktor pencahayaan yang gelap pada citra gambar juga akan mempersulit sistem baik untuk pendeteksian maupun pengenalan jari tangan pada citra gambar.
1.3 Maksud dan Tujuan
Sedang kan tujuan yang akan dicapai dalam penelitian ini adalah untuk melihat apakah metode viola and jones dapat menghasilkan solusi optimal pada pengontrolan aplikasi pemutar musik ditinjau dari seberapa akurat, dan cepat isyarat jari tangan dilacak dan seberapa handal jika terjadi halangan pada tangan atau keseluruhan objek lain yang merupakan bagian dari badan pemilik jemari sendiri maupun benda atau orang lain.
1.4 Batasan Masalah
Terdapat beberapa batasan permasalahan yang dapat dirumuskan agar pembahasan masalah dapat lebih terarah dan terperinci, dengan maksud untuk mempermudah identifikasi dan pemahaman terhadap aplikasi. Adapun batasan masalah dalam implementasi metode viola jones pada aplikasi pemutar musik ini.
1. Aplikasi ini mendeteksi isyarat jari manusia secara real time.
2. Metode yang digunakan adalah Metode viola jones khususnya di algoritma Haar Cascade Classifier.
3. Sistem operasi yang digunakan adalah Microsoft Windows 8.
4. Pembuatan software menggunakan C# dengan IDE Visual Studio 2013. 5. Sistem yang dibangun berbasis Dekstop.
6. Sistem menggunakan library OpenCV
1.5 Metodologi Penelitian
Metode penelitian yang digunakan dalam penulisan tugas akhir ini adalah metode penelitian eksperimen yaitu suatu jenis dari metodologi kuantitatif dengan melakukan percobaan untuk melihat suatu hasil dan meneliti ada tidak nya hubungan sebab-akibat. Adapun tahap yang akan dilalui adalah metode pengumpulan data, analisis kebutuhan algoritma, dan metode pembangunan perangkat lunak.
meliputi kecerdasan buatan, desain, tools dan juga pemodelan dengan UML yang dapat membantu menyelesaikan implementasi algoritma pada aplikasi musik ini.
2. Metode Pembangunan Perangkat Lunak
Pembangunan perangkat lunak yang dilakukan merupakan kebutuhan untuk menguji kinerja dari algoritma viola and jones. Dalam pembuatan perangkat lunak ini menggunakan Model Agile sebagai tahap pengembangan perangkat lunaknya.
a. Planning
Tahap perencanaan yang dilakukan adalah dengan pemodelan menggunakan metode pemrograman berorientasi objek dengan Tool Unified Modeling Language (UML), dan menerapkan algoritma viola and jones pada aplikasi pemutar musik untuk pengenalan isyarat jari.
b. Design
Tahap design merupakan tahap perancangan dari pembangunan aplikasi pemutar musik yang akan dibuat untuk identifikasi dan mengatur class-class di konsep object oriented.
c. Coding
Setelah tahap perancangan system selanjutnya dilakukan konversi rancangan system kedalam kode-kode bahasa pemrograman yang digunakan yaitu Java. Setelah lolos tahap testing, maka dilakukan refactoring, yaitu meninjau kembali semua kode program, dilihat ke efektifan nya, jika ada kode program yang tidak efektif akan dilakukan penulisan kode program ulang tanpa mengubah kerja dari modul.
d. Testing
Gambar 1.1 Model Agile[2]
1.6 Sistematika Penulisan
Sistematika penulisan penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB 1 PENDAHULUAN
Bab ini mengemukakan latar belakang masalah, rumusan masalah, batasan masalah, metodologi penelitian, serta sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab ini akan menjelaskan tentang semua landasan teori yang berhubungan dengan sistem yang akan dibuat yaitu menyangkut computer vision, sistem pengenalan jari, pendeteksian haar, serta metode viola jones.
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini menjelaskan perancangan sistem, mulai dari tujuan perangkat lunak yang digunakan, pembuatan prototype program, proses kerja sistem, analisis algoritma pada sistem.
7
Computer Vision adalah suatu proses transformasi atau perubahan dari data yang berasal dari kamera video maupun foto/gambar kedalam sebuah hasil keputusan ataupun sebuah presentasi yang baru, dimana hasil dari kegiatan transformasi tersebut memiliki kepentingan untuk mencapai suatu tujuan. Data yang dimasukan kedalam kegiatan transformasi tersebut memungkinkan untuk memiliki beberapa informasi yang terkonstektual seperti halnya sebuah foto/gambar yang didalamnya terdapat berbagai objek. Dengan demikian akan didapatkan keputusan-keputusan yang akan diambil pada gambar, misalnya berupa “adakah telapak tangan seseorang pada gambar tersebut?” atau “siapa sajakah orang yang terdapat pada foto tersebut?”. Adapun perubahan kedalam presentasi yang baru seperti perubahan gambar menjadi grayscale atau juga pemotongan objek pada gambar.
Gambar 2.1 Ilustrasi penglihatan komputer
Dari gambar berikut terlihat bahwa kaca samping pada gambar mobil hanyalah berupa kumpulan angka-angka jika dilihat oleh computer. Tentunya angka-angka ini masih memiliki banyak noise atau gangguan sehingga informasi yang terkandung sangatlah sedikit. Hal ini disebabkan dari penglihatan komputer yang terbatas hanya 2 dimensi (2D) namun objek yang diproses ialah objek 3 dimensi (3D) dunia nyata, sehingga informasi yang didapat mengalami banyak sekali gangguan dan kendala dari berbagai fenomena di kehidupan nyata (cuaca, cahaya, bayangan, refleksi cahaya, dan gerakan). Dengan demikian hal tersebut menjadi permasalahan yang terus-menerus diteliti untuk ditemukan cara atau tehnik penyelesaiannya [2].
2.2 Sistem Pendeteksian Isyarat jari
hand tracking dan proses pendeteksian isyarat jari mempunyai fungsi yang sama. Pada dasarnya, meskipun sistem pengenalan isyarat jari didasari dengan metode-metode yang berbeda, sistem pengenalan siyarat jari memiliki tahapan-tahapan yang hampir sama, berikut tahapan-tahapan yang pada umumnya terdapat pada sistem pengenalan isyarat jari :
1. Grayscaling citra gambar
2. Pendeteksian jari tangan atau tracking jari 3. Pengenalan/pencocokan jari tangan
2.2.1 Grayscaling
Grayscaling pada citra merupakan tahap pengkonversian citra gambar warna yang terdiri dari tiga parameter warna yaitu merah, hijau, dan biru (RGB). Jika citra gambar RGB diproses kedalam sistem pengenalan wajah, maka akan lebih sulit untuk diproses karena mengingat citra gambar RGB memiliki tiga parameter warna, oleh karena itu diperlukan suatu penyempitan parameter kedalam warna abu sehingga menjadi lebih mudah dalam hal penyamaan parameter yang akan digunakan pada implementasi sistem pengenalan isyarat jari. Untuk mengkonversikan citra yang memiliki warna RGB kedalam derajat keabuan dapat menggunakan persamaan (2.1) atau (2.2)
���� = � + � + � / (2.1)
atau
���� = . ∗ � + . ∗ � + . ∗ � (2.2)
Maka hasil dari proses grayscaling citra dapat dilihat pada gambar 2.2.
Nilai ambang batas pada setiap filter diatur setiap saat proses filter terjadi, sehingga nilai dari ambang batas bersifat dinamis. Filter pada setiap tingkat telah dilatih untuk mengklasifikasi citra yang telah melalui tahap sebelumnya. Saat proses pengklasifikasian, jika salah satu filter gagal terlewati maka citra dapat dikatakan sebagai daerah yang bukan wajah. Jika citra belum cukup untuk dikatakan sebagai strong classifier maka proses diulang sampai bobot terpenuhi dengan menaikkan nilai dari ambang batas. Ketika citra dapat melewati setiap filter yang ada di dalam rantai, maka dapat dikatakan daerah tersebut merupakan telapak tangan
2.2.2 Pendeteksian Isyarat Jari
Gambar 2.3 Pendeteksian telapak tangan.
2.2.3 Pengenalan Isyarat Jari
2.3 Metode Viola Jones
Metode Viola Jones adalah metode yang memiliki kapabilitas untuk mendeteksi wajah pada suatu citra gambar dengan tingkat keakuratan yang cukup tinggi. Pada standarnya pengolahan citra pada gambar akan dilakukan dengan merubah skala ukuran gambar kedalam ukuran yang ditentukan dan melakukan pendeteksian dengan skala tetap pada gambar tersebut. Dengan hal tersebut simpulkan bahwa waktu untuk pendeteksian akan lebih cepat dibandingkan dengan melakukan pendeteksian terhadap citra gambar yang berukuran berbeda-beda.
Berbeda halnya dengan Metode Viola Jones yang terus merubah ukuran skala pendeteksian dibandingkan harus merubah ukuran dari skala gambar dan menjalankan banyak pendeteksian terhadap gambar dengan ukuran skala pendektesian yang berbeda tiap waktunya. Hal ini diperkirakan akan membutuhkan lebih banyak waktu, tapi Metode Viola Jones memiliki fitur pendeteksian yang mengkonstruksi gambar kedalam gambar integral dan beberapa fitur persegi yang simple yang disebut Haar wavelets. Sehingga hasil kalkulasi dalam skala pendeteksian akan sama berapapun ukuran dari gambar yang diproses [12].
1 1 1 1 1 1 2 3 4 5
1 1 1 1 1 2 4 6 8 10
1 1 1 1 1 3 6 9 12 15
1 1 1 1 1 4 8 12 16 20
1 1 1 1 1 5 10 15 20 25
Input Image Integral Image
Gambar 2.4 Input integral image
Dengan demikian, selanjutnya perhitungan dapat dilakukan dengan cara menjumlahkan 4 nilai pixel kedalam pixel yang telah dipilih. Berikut ilustrasi pada gambar :
Gambar 2.5 Ilustrasi posisi pixel pada gambar
Dimana D adalah nilai pixel kanan bawah, A adalah nilai pixel kiri atas, B adalah pixel atas dari pixel D dan C adalah nilai pixel kiri dari pixel D. Dengan rumusan seperti berkut : D = D + A - (B + C). Dengan integral image ini maka perhitungan Haar akan menjadi lebih cepat. Berikut adalah perbandingan perhitungan haar pada gambar tanpa integral dengan gambar integral, dimana total pixel hitam dikurangi dengan total pixel putih :
1 1 1 1 1
Sehingga nilai fitur Haar adalah sebagai berikut :
Nilai fiatur Haar = |(total pixel hitam)-(total pixel putih)|
Sehingga nilai fitur Haar adalah sebagai berikut :
Nilai fiatur Haar = |(total pixel hitam)-(total pixel putih)| =|(15+1-(3+5))-(25+3-(5+15))|
Kemudian hasil nilai tersebut akan menghasilkan fitur sub-window yang memiliki dua atau lebih kombinasi kotak hitam dan putih yang akan digunakan untuk tahap pendetaksian selanjutnya. Berikut contoh gambar untuk tipe-tipe dari kombinasi kotak :
Gambar 2.8 Tipe-tipe kombinasi kotak
Gambar 2.9 Algoritma Adaboost
Gambar berikut menjelaskan penolakan ciri menggunakan Viola Jones Classifier, dimana ciri yang memiliki kemungkinan kecil sebagai isyarat jari akan ditolak terus menerus hingga Classifier akan menyisakan ciri isyarat jari yang asli pada citra gambar.
Gambar 2.10 Fitur tingkat pertama pada Metode Viola Jones
2.4 Model Isyarat Jari
Sistem ini menggunakan webcam yang mengambil citra pola jari tangan. Pola tersebut didapat dari bentuk gerakan jari telunjuk atau jempol. Jari tersebut
nantinya menunjuk ke suatu arah atas.
Gambar 2.11 Model Isyarat jari untuk perintah Play
Gambar 2.12 Model Isyarat jariuntuk perintah Previous
Gambar 2.14 Model Isyarat jariuntuk perintah Pause
Gambar 2.15 Model Isyarat jariuntuk perintah Stop
Arah yang ditunjukkan oleh bentuk pola jari ini akan menjadi dasar masukan untuk perintah pada aplikasi pemutar musik tanpa mengendalikan langsung dengan bantuan mouse. Pada dasarnya perintah aplikasi pemutar musik ada 5, yaitu perintah play, pause, next, previous dan stop. Hal ini agar pengguna tidak perlu menghafal bentuk isyarat jari. Pemrosesan citra pola jari dilakukan menggunakan bahasa C# dengan library OpenCV.
2.5 Pemrograman Berorientasi Objek
perancangan berorientasi objek, pemrograman berorientasi objek, dan pengujian berorientasi objek.
Pada saat ini, metode berorientasi objek banyak dipilih karena metodologi lama banyak menimbulkan masalah seperti adanya kesulitan pada saat mentransformasi hasil dari satu tahap pengembangan ke tahap berikutnya, misalnya pada metode pendekatan terstruktur, jenis aplikasi yang dikembangkan saat ini berbeda dengan masa lalu. Aplikasi yang dikembangkan pada saat ini beragam dengan platform yang berbeda-beda, sehingga menimbulkan tuntutan kebutuhan metodologi pengembangan yang dapat mengakomodasi ke semua jenis aplikasi tersebut.
Keuntungan menggunakan metodologi berorientasi objek adalah sebagai berikut : 1. Meningkatkan produktivitas
Karena kelas dan objek yang ditemukan dalam suatu masalah masih dapat dipakai ulang untuk masalah lainnya yang melibatkan objek tersebut (reusable).
2. Kecepatan pengembangan
Karena sistem yang dibangun dengan baik dan benar pada saat analisis dan perancangan akan menyebabkan berkurangnya kesalahan pada saat pengkodean.
3. Kemudahan pemeliharaan
Karena dengan model objek, pola-pola yang cenderung tetap dan stabil dapat dipisahkan dan pola-pola yang mungkin sering berubah-ubah.
4. Adanya konsistensi
Karena sifat pewarisan dan penggunaan notasi yang sama pada saat analisis, perancangan maupun pengkodean.
5. Meningkatkan kualitas perangkat lunak
2.5.1 Konsep Dasar Berorientasi Objek
Pendekatan berorientasi objek merupakan suatu teknik atau cara pendekatan dalam melihat permasalahan dan sistem (sistem perangkat lunak, sistem informasi, atau sistem lainnya)[12]. Pendekatan berorientasi objek akan memandang sistem yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek-objek dunia nyata.
Ada banyak cara untuk mengabstraksikan dan memodelkan objek-objek tersebut, mulai dan abstraksi objek, kelas, hubungan antar kelas sampai abstraksi sistem. Saat mengabstraksikan dan memodelkan objek, data dan proses-proses yang dipunyai oleh objek akan dienkapsulasi (dibungkus) menjadi suatu kesatuan. Dalam rekayasa perangkat lunak, konsep pendekatan berorientasi objek dapat diterapkan pada tahap analisis, perancangan, pemrograman, dan pengujian perangkat lunak. Ada berbagai teknik yang dapat digunakan pada masing-masing tahap tersebut, dengan aturan dan alat bantu pemodelan tertentu.
Sistem berorientasi objek merupakan sebuah sistem yang dibangun dengan berdasarkan metode berorientasi objek adalah sebuah sistem yang komponennya dibungkus (dienkapsulasi) menjadi kelompok data dan fungsi. Setiap komponen dalam sistem tersebut dapat mewarisi atribut dan sifat dan komponen lainnya, dan dapat berinteraksi satu sama lain.
Berikut ini adalah beberapa konsep dasar yang harus dipahami tentang metodologi berorientasi objek:
1. Kelas (Class)
2. Objek (object)
Objek adalah abstraksi dari sesuatu yang mewakili dunia nyata benda, manusia, satu organisasi, tempat, kejadian, struktur, status, atau hal-hal lain yang bersifat abstrak. Objek merupakan suatu entitas yang mampu menyimpan informasi (status) dan mempunyai operasi (kelakuan) yang dapat diterapkan atau dapat berpengaruh pada status objeknya. Objek mempunyai siklus hidup yaitu diciptakan, dimanipulasi, dan dihancurkan.
Secara teknis, sebuah kelas saat program dieksekusi maka akan dibuat sebuah objek. Objek dilihat darisegi teknis adalah elemen pada saat runtime yang akan diciptakan, dimanipulasi, dan dihancurkan saat eksekusi sehinga sebuah objek hanya ada saat sebuah program dieksekusi. Jika masih dalam bentuk kode, disebut sebagai kelas jadi pada saat runtime (saat sebuah program dieksekusi), yang kita punya adalah objek, di dalam teks program yang kita lihat hanyalah kelas.
3. Metode (method)
Operasi atau metode pada sebuah kelas hampir sama dengan fungsi atau prosedur pada metodologi struktural. Sebuah kelas boleh memiliki lebih dari satu metode atau operasi. Metode atau operasi yang berfungsi untuk memanipulasi objek itu sendiri. Operasi atau metode merupakan fungsi atau transformasi yang dapat dilakukan terhadap objek atau dilakukan oleh objek.
Metode atau operasi dapat berasal dari event, aktifitas atau aksi keadaan, fungsi, atau kelakuan dunia nyata. Contoh metode atau operasi misalnya Read, Write, Move, Copy, dan sebagainya.
4. Atribut (attribute)
5. Abstraksi (abstraction)
Prinsip untuk merepresentasikan dunia nyata yang kompleks menjadi satu bentuk model yang sederhana dengan mengabaikan aspek-aspek lain yang tidak sesuai dengan permasalahan.
6. Enkapsulasi (encapsulation)
Pembungkusan atribut data dan layanan (operasi-operasi) yang dipunyai objek untuk menyembunyikan implementasi dan objek sehingga objek lain tidak mengetahui cara kerja-nya.
7. Pewarisan (inheritance)
Mekanisme yang memungkinkan satu objek mewarisi sebagian atau seluruh definisi dan objek lain sebagai bagian dan dirinya.
8. Antarmuka (interface)
Antarmuka sangat mirip dengan kelas, tapi tanpa atribut kelas dan memiliki metode yang dideklarasikan tanpa isi. Deklarasi metode pada sebuah interface dapat diimplementasikan oleh kelas lain.
9. Reusability
Pemanfaatan kembali objek yang sudah didefinisikan untuk suatu permasalahan pada permasalahan lainnya yang melibatkan objek tersebut.
10.Generalisasi dan Spesialisasi
Menunjukkan hubungan antara kelas dan objek yang umum dengan kelas dan objek yang khusus. Misalnya kelas yang lebih umum (generalisasi) adalah kendaraan darat dan kelas khususnya (spesialisasi) adalah mobil, motor, dan kereta.
11.Komunikasi Antar objek
Komunikasi antar objek dilakukan lewat pesan (message) yang dikirim dari satu objek ke objek lainnya.
12.Polimorfisme (polymorphism)
Kemampuan suatu objek digunakan di banyak tujuan yang berbeda dengan nama yang sehingga menghemat baris program.
Package adalah sebuah kontainer atau kemasan yang dapat digunakan untuk mengelompokkan kelas-kelas sehingga memungkinkan beberapa kelas yang bernama sama disimpan dalam package yang berbeda.
2.5.2 Pengenalan UML
Pada perkembangan teknologi perangkat lunak, diperlukan adanya bahasa yang digunakan untuk memodelkan perangkat lunak yang akan dibuat dan perlu adanya standarisasi agar orang di berbagai negara dapat mengerti pemodelan perangkat lunak. Seperti yang kita ketahui bahwa menyatukan banyak kepala untuk menceritakan sebuah ide dengan tujuan untuk memahami, merupakan hal yang tidak mudah, oleh karena itu diperlukan sebuah bahasa pemodelan perangkat lunak yang dapat dimengerti oleh banyak orang.
Banyak orang yang telah membuat bahasa pemodelan pembangunan perangkat lunak sesuai dengan teknologi pemrograman yang berkembang pada saat itu, misalnya yang sempat berkembang dan digunakan banyak pihak adalah Data Flow Diagram (DFD) untuk memodelkan perangkat lunak yang menggunakan pemrograman prosedural atau struktural, kemudian juga ada State Transition Diagram (STD) yang digunakan untuk memodelkan sistem real time (waktu nyata).
Pada perkembangan teknik pemrograman berorientasi objek, munculah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling Language (UML). UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung.
Seperti yang kita ketahui di dunia sistem informasi yang tidak dapat dibakukan, semua tergantung kebutuhan, lingkungan dan konteksnya. Begitu juga dengan perkembangan penggunaan UML bergantung pada level abstraksi penggunaannya. Jadi, belum tentu pandangan yang berbeda dalam penggunaan UML adalah suatu yang salah, tapi perlu ditelaah dimanakah UML digunakan dan hal apa yang ingin digambarkan. Secara analogi jika dengan bahasa yang digunakan sehari-hari, belum tentu penyampaian bahasa dengan puisi adalahhal yang salah. Sistem informasi bukanlah ilmu pasti, maka jika ada banyak perbedaan dan interpretasi di dalam bidang sistem informasi merupakan hal yang sangat wajar.
2.5.3 Diagram UML
Berikut ini penjelasan singkat dari pembagian kategori tersebut :
1. Structure diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan.
2. Behavior diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.
3. Interaction diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antarsubsistem pada suatu sistem.
2.5.4 Use Case Diagram
Use Case atau diagram Use Case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use Casemendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar, Use Case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu.
Syarat penamaan pada Use Case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada Use Caseyaitu pendefinisian apa yang disebut aktor dan Use Case.
2.5.4.1 Aktor
lain yang berpartisipasi atau participating actor. Akan sangat berguna untuk mengetahui siapa aktor pemulai tersebut.
<nama actor>
Gambar 2.17 Aktor
2.5.4.2 Use Case
Use case yang dibuat berdasarkan keperluan aktor merupakan gambaran dari “apa” yang dikerjakan oleh sistem, bukan “bagaimana” sistem mengerjakannya. Use case diberi nama yang menyatakan apa hal yang dicapai dari interaksinya dengan aktor.
<nama use case>
Gambar 2.18 Use case
2.5.4.3 Relationship
Relasi (relationship) digambarkan sebagai bentuk garis antara dua simbol dalam use case diagram. Relasi antara actor dan use case disebut juga dengan asosiasi (association). Asosiasi ini digunakan untuk menggambarkan bagaimana hubungan antara keduanya.
<nama actor>
<nama use case>
Gambar 2.19 Relationship
2.5.4.4 Activity Diagram
Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem.
Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut ini :
1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan
2. Urutan atau pengelompokan tampilan dari sistem/user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan 3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan
sebuah pengujian yang perlu didefinisikan kasus ujinya
2.5.4.5 Sequence Diagram
Diagram sequence menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambarkan diagram sequence maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.
diagram sequence sehingga semakin banyak use case yang didefinisikan maka diagram sequence yang harus dibuat juga semakin banyak.
Penomoran pesan berdasarkan urutan interaksi pesan. Penggambaran letak pesan harus berurutan, pesan yang lebih atas dari lainnya adalah pesan yang berjalan terlebih dahulu.
2.5.4.6 Class Diagram
Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas.
Kelas-kelas yang ada pada struktur sistem harus dapat melakukan fungsi-fungsi sesuai dengan kebutuhan sistem. Susunan struktur kelas yang baik pada diagram kelas ebaiknya memiliki jenis-jenis kelas berikut :
1) Kelas Main
Kelas yang memiliki fungsi awal dieksekusi ketika sistem dijalankan. 2) Kelas yang menangani tampilan sistem
Kelas yang mendefinisikan dan mengatur tampilan ke pemakai. 3) Kelas yang diambil dari pendefinisian usecase
Kelas yang menangani fungsi-fungsi yang harus ada diambil dari pendefinisian use case.
4) Kelas yang diambil dari pendefinisian data
Kelas yang digunakan untuk memegang atau membungkus data menjadi sebuah kesatuan yang diambil maupun akan disimpan ke basis data.
Dalam mendefinisikan metode yang ada di dalam kelas perlu memperhatikan apa yang disebut dengan cohesion dan coupling. Cohesion adalah ukuran seberapa dekat keterkaitan instruksi di dalam sebuah metode terkait satu sama lain sedangkan coupling adalah ukuran seberapa dekat keterkaitan instruksi antara metode yang satu dengan metode yang lain dalam sebuah kelas. Sebagai aturan secara umum maka sebuah metode yang dibuat harus memiliki kadar choesion yang kuat dan kadar coupling yang lemah.
2.6 Open CV
OpenCV adalah sebuah library open source untuk visi komputer yang bisa didapatkan dari http://SourceForge.net/projects/opencvlibrary. Library ini ditulis dengan bahasa C dan C++, serta dapat dijalankan dengan Linux, Windows, dan Mac OS X. OpenCV dirancang untuk efisiensi komputasional dan dengan fokus yang kuat pada aplikasi real-time.
Salah satu tujuan OpenCV adalah untuk menyediakan infrastruktur visi komputer yang mudah digunakan yang membantu orang-orang dalam membangun aplikasiaplikasi visi yang sophisticated dengan cepat. Library pada OpenCV berisi lebih dari 500 fungsi yang menjangkau berbagai area dalam permasalahan visi, meliputi inspeksi produk pabrik, pencitraan medis, keamanan, antarmuka pengguna, kalibrasi kamera, visi stereo, dan robotika. Karena visi komputer dan pembelajaran mesin seringkali berkaitan, OpenCV juga memiliki Machine Learning Library (MLL). Sublibrary ini berfokus pada pengenalan pola statistik dan clustering. MLL sangat berguna untuk tugas-tugas visi yang berada dalam misi inti OpenCV, tetapi MLL cukup umum digunakan untuk permasalahan pembelajaran mesin.
Intel, SONY, Siemens, dan Google) serta pusat-pusat penelitian (seperti Stanford, MIT, CMU, Cambridge, dan INRIA).
Sejak peluncuran pertamanya pada Januari 1999, OpenCV telah digunakan pada banyak aplikasi, produk, dan usaha-usaha penelitian. Aplikasi-aplikasi ini meliputi penggabungan citra pada peta web dan satelit, image scan alignment, pengurangan noise pada citra medis, sistem keamanan dan pendeteksian gangguan, sistem pengawasan otomatis dan keamanan, sistem inspeksi pabrik, kalibrasi kamera, aplikasi militer, serta kendaraan udara tak berawak, kendaraan darat, dan kendaraan bawah air. OpenCV juga telah digunakan untuk pengenalan suara dan musik, dimana teknik pengenalan visi diaplikasikan pada citra spektogram suara.
OpenCV adalah singkatan dari Open Computer Vision, yaitu library open source yang dikhususkan untuk melakukan pengolahan citra. Tujuannya adalah agar komputermempunyai kemampuan yang mirip dengan cara pengolahan visual pada manusia. Library ini dibuat untuk bahasa C/C++ sebagai optimasi aplikasi real-time. OpenCVmemiliki API (Application Programming Interface) untuk pengolahan tingkat tinggimaupun tingkat rendah. Pada OpenCV juga terdapat fungsi-fungsi siap pakai untuk meload,menyimpan, serta mengakuisisi gambar dan video.
Library OpenCVmemiliki fitur-fitur sebagai berikut:
1. Manipulasi data gambar (mengalokasi memori, melepaskan memori, menduplikasi gambar, mengatur serta mengkonversi gambar)
2. Image/Video I/O (bisa menggunakan kamera yang sudah didukung oleh library ini)
3. Manipulasi matriks dan vektor, serta terdapat juga routines aljabar linear (products, solvers, eigenvalues, SVD)
4. Pengolahan citra dasar (penapisan, pendeteksian tepi, sampling dan interpolasi, konversi warna, operasi morfologi, histogram, piramida citra)
7. Pendeteksian gerakan 8. Pengenalan objek
9. GUI dasar (menampilkan gambar/video, mengontrol mouse/keyboard, scrollbar)
10. Image labelling (garis, kerucut, poligon, penggambaran teks)
Libraries OpenCV menyediakan banyak algoritma visi komputer dasar, dengankeuntungan bahwa fungsi-fungsi tersebut telah diuji dengan baik dan digunakan oleh para peneliti di seluruh dunia. Libraries OpenCV juga menyediakan sebuah modul untuk pendeteksian objek yang menggunakan metode Viola Jones.
2.7 Microsoft Visual 2010
Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe.
27 3.1 Analisis Masalah
Analisis masalah merupakan langkah awal dari suatu analisis sistem. Langkah ini diperlukan untuk mengetahui permasalahan apa saja yang terjadi di dalam sistem yang sedang berjalan. Setelah melakukan penelitian maka terdapat beberapa permasalahan yang timbul dalam implementasi metode viola and jones untuk petunjuk navigasi pada perintah play, pause, next, previous dan stop, yakni masih terdapat kesalahan dalam mengenali isyarat jari yang disebabkan oleh terdapatnya citra uji yang memiliki resolusi rendah sehingga gambar terlihat kurang halus serta faktor pencahayaan yang gelap pada citra gambar sehingga akan mempersulit sistem baik untuk pendeteksian maupun pengenalan isyarat jari pada citra gambar.
3.1.1 Analisis Sistem
Pada bagian ini menjelaskan tentang metode yang akan diterapkan pada sistem. Terutama penjelasan untuk bagian-bagian pada algoritma pengolahan citra yang akan diterapkan pada sistem. Dalam sistem pengenalan Isyarat jari terdapat beberapa tahapan. Adapun tahapan sistem tersebut dapat dilihat pada gambar 3.1
Gambar Atau Video
Hasil pengenalan isyarat jari
Gambar 3.1 Proses utama sistem
1. Penangkapan/capture pada citra masukan
Merupakan langkah pengambilan data citra pada media masukan kedalam sistem 2. Grayscaling citra
Merupakan proses perubahan warna pada citra kedalam derajat keabuan 3. Pendeteksian Ciri jari menggunakan metode viola jones
Merupakan proses pendeteksian keberadaan jari. Pada tahap ini citra gambar akan diolah menggunakan metode pada algoritma viola-jones.
4. Pemisahan citra
Merupakan proses pemotongan/pemisahan objek pada citra 5. Pengenalan isyarat jari
Merupakan proses pengenalan/pencocokan dari isyarat jari yang telah disimpan didalam sistem dengan isyarat jari yang diujikaN
Capture
Grayscaling Pendeteksian ciri telapak tangan
Pemisahan citra
3.1.1.1Penangkapan/capture Pada Citra Masukan
Penangkapan citra masukan yang dilakukan oleh sistem terhadap tipe citra yang dimasukan yaitu dapat berupa file gambar dengan menggunakan menu input atau juga dapat diambil secara langsung melalui kamera webcam. Untuk lebih jelasnya dapat dilihat pada gambar berikut :
Mengaktifkan tipe masukan pada sistem
Masukan data gambar / foto
Pengambilan gambar melalui webcam
Penangkapan citra masukan
Tampilkan citra gambar masukan hasil
proses penangkapan Citra
Citra masukan
3.1.1.2 Grayscaling Citra
Proses pengubahan nilai warna RGB pada setiap pixel citra gambar kedalam derajat keabuan. Untuk lebih jelasnya dapat dilihat pada alur diagram berikut :
Menginisialisasi nilai tiap pixel pada citra
Mengubah nilai rgb pada tiap pixel kedalam derajat
keabuan
Citra abu tersusun oleh nilai derajat kebuan
pada tiap pixel Citra
Citra abu
Gambar 3.3 Alur proses grayscaling citra
3.1.1.2 Pendeteksian Ciri jari menggunakan Metode Viola Jones
Citra abu
Citra Baru
Gambar 3.4 Alur proses pre-processing citra dengan Metode Viola Jones
3.1.1.3Pendeteksian Isyarat Jari
Proses untuk melakukan pencarian objek isyarat jari pada citra gambar kemudian objek isyarat jari pada gambar akan diberi tanda. Untuk alurnya dapat dilihat pada gambar 3.5.
Citra gambar
Perintah isyarat jari (play, pause, previou, next dan stop) Gambar 3.5 Alur proses pendeteksian isyarat jari
Hitung nilai fitur haar dengan adaboostt
Seleksi fitur haar dengan adaboost
Melakukan deteksi isyarat jari pada gambar
Melakukan penandaan pada daerah objek isyarat jari yg terdeteksi
3.1.2 Analisis Masukan
Data masukan yang digunakan berupa citra gambar. Citra gambar yang dimasukan bisa berupa file gambar/foto atau juga citra gambar dapat diambil melalui kamera pada komputer yaitu kamera webcam. Maka setelah citra gambar dimasukan pada sistem maka akan dilakukan proses dari tahapan-tahapan yang telah diketahui sebelumnya. Contoh citra gambar yang dapat digunakan dapat dilihat pada gambar berikut :
Gambar 3.6 citra masukan
Tahap ini dilakukan untuk mengubah citra warna menjadi citra greyscale, hal ini digunakan untuk menyederhanakan model citra. Citra warna terdiri dari 3 layer matrik yaitu R-layer, G-layer, B-layer. Sebagai contoh, misalkan citra berukuran 8x8 pixel dengan nilai-nilai R, G, dan B sebagai berikut:
Gambar 3.7 Matrik (R, G dan B)
dasarnya proses grayscaling dilakukan dengan meratakan nilai pixel dari 3 nilai R, G, dan B dengan menggunakan persamaan berikut:
Grayscale = 0.299*R + 0.587*G + 0.114*B ...(3-1)
Contoh untuk menentukan nilai grayscale diilustrasikan dengan nilai-nilai R, G, dan B pada gambar 3.3, untuk konversi warna menjadi grayscale digunakan persamaan 3-1. Misalkan untuk pixel di koordinat (0,0) perhitungannya sebagai berikut:
Grayscale = (0,299*84) + (0,587*78) + (0,114*44) = 25,12 + 45,79 + 5,02
= 75,93
Didapatkan hasil perhitungan untuk koordinat (0,0) = 75,93. Setelah perhitungan tersebut dilakukan untuk semua koordinat, maka dari hasil perhitungan grayscale dilakukan rounding (pembulatan) nilai ke paling dekat. Jadi hasil pembulatan dari koordinat untuk (0,0) = 76. Sehingga didapatkan citra grayscale sebagai berikut:
3.1.14 Analisis Metode Viola Jones Pada pengenalan isyarat jari Berikut adalah Alur Algoritma Viola and Jones :
Gambar 3.10 Metode Viola Jones
3.1.2.1.1 Scan Per Sub window
menggunakan library Haarcascade Frontal hand, yaitu suatu library berupa file templet berekstensi xml. Library ini mengadopsi metode Viola-Jones yang memiliki fungsi untuk mendeteksi objek berupa isyarat jari dengan posisi tegak lurus kedepan. File templet ini memiliki karakteristik sebagai berikut :
1. Menggunakan sub-window citra dengan dimensi 20x20
2. Memiliki 47 tahapan (stage 0 sampai stage 46) cascade classifier 3. Memiliki 2133 weak classifier (tree)
Berikut ini adalah potongan yang diambil dari sebagian kode file templet play.xml :
<threshold>-0.0847022831439972</threshold> <left_val>1.</left_val>
<stage_threshold>1.</stage_threshold>
<threshold>-0.0366368703544140</threshold> <left_val>0.9285715222358704</left_val>
<right_val>-1.0000009536743164</right_val></_></_></trees> <stage_threshold>0.9285715222358704</stage_threshold>
<threshold>-9.4083501026034355e-003</threshold> <left_val>1.</left_val>
<right_val>-0.9047629833221436</right_val></_></_> <_>
<threshold>-5.6348210200667381e-003</threshold> <left_val>0.8808284997940064</left_val>
<right_val>-1.0000009536743164</right_val></_></_></trees> <stage_threshold>-0.0239344798028469</stage_threshold>
<parent>1</parent>
<right_val>-0.7304499149322510</right_val></_></_>
<threshold>7.1512709837406874e-004</threshold> <left_val>0.7968924045562744</left_val>
<right_val>-0.9208245277404785</right_val></_></_></trees> <stage_threshold>-4.3318271636962891e-003</stage_threshold> <parent>2</parent>
<threshold>-2.0649400539696217e-003</threshold> <left_val>-0.8975331783294678</left_val>
<_>
<threshold>-7.1654270868748426e-004</threshold> <left_val>-1.</left_val>
<right_val>0.7942516803741455</right_val></_></_></trees> <stage_threshold>-0.1032814979553223</stage_threshold>
<parent>3</parent>
<threshold>-4.7855640877969563e-004</threshold> <left_val>-1.</left_val>
<right_val>0.7419356107711792</right_val></_></_></trees> <stage_threshold>0.7419356107711792</stage_threshold>
<_>
<threshold>-0.0270329192280769</threshold> <left_val>0.7419356107711792</left_val>
<right_val>-1.0000009536743164</right_val></_></_></trees> <stage_threshold>0.7419356107711792</stage_threshold>
<parent>5</parent>
<threshold>2.2036230802768841e-005</threshold> <left_val>-1.</left_val>
<stage_threshold>0.8620691895484924</stage_threshold>
<threshold>-2.3395009338855743e-003</threshold> <left_val>0.7419356107711792</left_val>
<right_val>-1.0000009536743164</right_val></_></_></trees> <stage_threshold>0.7419356107711792</stage_threshold>
<threshold>-1.2086000060662627e-003</threshold> <left_val>0.8479086756706238</left_val>
<right_val>-0.8050550818443298</right_val></_></_> <_>
<threshold>0.0135317100211978</threshold> <left_val>-0.8523197770118713</left_val>
<right_val>0.8387230038642883</right_val></_></_></trees> <stage_threshold>-4.4111008755862713e-003</stage_threshold> <parent>8</parent>
<right_val>-1.0000009536743164</right_val></_></_></trees> <stage_threshold>0.6363639235496521</stage_threshold>
<parent>9</parent> <next>-1</next></_> <_>
<trees> <_> <_> <feature> <rects> <_>
11 19 6 4 -1.</_> <_>
13 19 2 4 3.</_></rects> <tilted>0</tilted></feature>
<threshold>-1.0043339570984244e-003</threshold> <left_val>-1.</left_val>
<right_val>0.8000001907348633</right_val></_></_></trees> <stage_threshold>0.8000001907348633</stage_threshold>
<parent>10</parent>
<next>-1</next></_></stages></output> </opencv_storage>
Pada awal kode, tertera <size> yang mendefinisikan ukuran sub-window yang digunakan yaitu 20x20. Hal ini menunjukan bahwa setiap citra masukan akan dibentuk menjadi sub-window berukuran 20x20 sebelum masuk ke tahapan deteksi isyarat jari. Gambar 3.20 akan menjelaskan pembentukan sub-window 20x20.
Gambar 3.12 Pembentukan sub-window
Setelah sub-window terbentuk tahap selanjutnya adalah tahap klasifikasi yang melalui tingkatan-tingkatan (stage) cascade classifier dan tree sebagai weak classifier. Didalam tree terdapat satu node yaitu root node, yang isinya berbeda-beda disetiap tree. Didalam node ini, terdapat fitur Haar (rects), nilai ambang (treshold) proses deteksi isyarat jari, nilai batas minimum (left_val) dan nilai batas maksimum (right_val) yang harus dipenuhi agar sub-window lolos ke tahap selanjutnya. Untuk dapat melewati suatu tahapan sub-window harus berhasil melewati setiap tree didalam suatu tahapan. Perhitungan nilai fitur dilakukan juga pada tree. Sebagai contoh, berikut ini adalah perhitungan fitur haar (rects) pada suatu tree.
<rects> <_>
<_>
13 19 2 4 3.</_></rects>
Angka pada kolom pertama dan kedua menunjukan posisi piksel yang akan diklasifikasikan (x,y) pada sub-window. Kolom ketiga dan keempat menunjukan lebar dan tinggi fitur. Sedangkan, angka pada kolom terakhir adalah konstanta yang akan dikalikan ke setiap fitur persegi tersebut, dimana angka ini berfungsi untuk menentukan piksel hitam dan piksel putih suatu fitur, dengan ketentuan jika nilai suatu piksel dalam suatu piksel < 0, maka piksel tersebut masuk ke daerah piksel hitam, jika tidak piksel tersebut masuk ke daerah putih.
Gambar 3.13 Contoh fitur Haar
fitur pada piksel area putih. Hasilnya akan dibandingkan dengan nilai yang tertera pada treshold pendeteksian wajah, jika nilainya dibawah treshold proses pendeteksian isyarat jari maka fitur dianggap tidak ada, jika diatas treshold pendeteksian isyarat jari fitur akan dilanjutkan ke left_val dan right_val. Apabila, fitur tersebut memiliki nilai diantara left_val dan right_val, maka sub-window dinyatakan berhasil melewati tree tersebut.
Untuk dapat melanjutkan ke tingkat classifier selanjutnya, seluruh sub-window harus dapat melewati seluruh tree dalam suatu tingkat, jika tidak maka secara otomatis, sub-window akan dieleminasi dan dianggap bukan wajah. Jika, berhasil melalui keseluruhan tingkat classifier maka sub-window dianggap sebagai isyarat jari.
Setelah isyarat jari terdeteksi, maka citra isyarat jari tersebut akan dipisahkan dari keselruhan citra gambar. Setelah itu citra isyarat jari akan diubah ukurannya sesuai dengan ukuran citra isyarat jari yang tersimpan pada sistem kemudian kedua citra isyarat jari tersebut akan dicocokan menggunakan metode Metode viola Jones.
3.1.1.2.2 Seleksi Fitur haar dengan AdaBoost
Metode machine learning yang disebut AdaBoost digunakan dalam memilih fitur Haar yang spesifik. Hal ini dilakukan dengan cara mengevaluasi setiap fitur terhadap data latih dengan menggunakan nilai dari fitur tersebut. Algoritma Adaboost adalah algoritma yang berusaha membangun strong classifier dengan mengkombinasikan sejumlah simple atau weak classifier secara linier. Stage classifier dibangun dengan menggunakan algoritma adaptive-boost (AdaBoost). Di dalam stage classifier terdapat proses pengklasifikasian fitur objek menggunakan algoritma AdaBoost. Algoritma AdaBoost digunakan untuk meningkatkan performa pengklasifikasian fitur.
classifier dapat dilihat pada Gambar 3.33.
Gambar 3.14 Alur proses Haar cascade classifier
Algoritma AdaBoost yang dipakai untuk pengklasifikasian adalah sebagai berikut:
Bobot awal , = , , = (3.4)
Dengan m = jumlah gambar negatif dengan yi = 0 untuk gambar negatif
Dengan l = jumlah gambar positif dengan yi = 1 untuk gambar positif.
Contoh : l = 5, m= 10
, = × = 0.05, , = ×� = 0.1 (3.5)
Untuk t = 1, 2, 3…T, dimana t adalah iterasi ke t untuk gambar positif. Untuk j = 1, 2, 3…J, dimana j adalah iterasi ke j untuk gambar positif. ht (x) merupakan nilai fitur gambar positif.
hj (x) merupakan nilai fitur gambar positif.
Untuk mendapatkan nilai error rate setiap weak classifier. Maka untuk setiap fitur dilakukan proses sebagai berikut:
Untuk gambar positif : ∈ = (∑�� �, )| � − | (3.6)
Diberikan citra positif (8x8) piksel yang memiliki nilai-nilai sebagai berikut:
Gambar 3.15 Contoh citra Positif 1-5
1. Citra positif ke-1
21 20 19 18 18 18 21 22 20 18 21 21 24 25 26 27 23 23 24 25 27 28 29 27 23 22 26 27 28 29 30 28 23 23 26 27 29 30 31 30 23 24 25 25 27 31 32 29 23 24 24 26 28 29 30 28 23 25 24 26 28 28 30 31 Gambar 3.16 Citra positif 1
Nilai positif pada gambar tersebut akan dihitung nilai fiturnya. Nilai fitur = | (total piksel hitam) – (total piksel biru) |
hh(x) = | (26+21-23-18)-(31+18-26-22) | = 5
2. Citra positif ke-2
95 88 84 76 76 81 91 103 90 80 70 67 63 85 26 27 71 76 24 59 27 28 29 27 89 70 58 60 28 78 60 70 92 80 75 70 61 55 51 50 93 80 79 78 74 71 71 75 96 93 94 86 81 83 82 88 100 103 95 88 92 92 91 94 Gambar 3.17 Citra positif 2
Nilai positif pada gambar tersebut akan dihitung nilai fiturnya. Nilai fitur = | (total piksel hitam) – (total piksel biru) |
hh(x) = (88+95-100-76)-(94+76-88-103) = 28
3. Citra positif ke-3
Gambar 3.18 Citra Positif 3
Nilai positif pada gambar tersebut akan dihitung nilai fiturnya. Nilai fitur = | (total piksel hitam) – (total piksel biru) |
hh(x)= (105+69-98-45)-(56+45-105-32) = 67
Maka nilai error rate yang didapatkan adalah sebagai berikut : ht=(0,1)|67-1|=6,6
Nilai positif pada gambar tersebut akan dihitung nilai fiturnya. Nilai fitur = | (total piksel hitam) – (total piksel biru) |
hh(x)= | (35+72-58-57)-(35+57-35-58) || = 7
Maka nilai error rate yang didapatkan adalah sebagai berikut : ht =(0,1) | 7- 1| = 0,6
Gambar 3.20 Citra Positif 5
Nilai positif pada gambar tersebut akan dihitung nilai fiturnya. Nilai fitur = | (total piksel hitam) – (total piksel biru) |
hh(x)= (20+20-18-24)-(23+24-20-25)= 4 Maka ht=(0,1) | 4 - 1| =0,3
Jadi:
Error rate masing-masing citra adalah 0,4; 2,7; 6,6; dan 0,3. Sehingga untuk memudahkan pemilihan fitur yang terbaik digunakan klasifikasi data training menggunakan error rate terkecil yang telah didapatkan yaitu 0,3 dimana
�� = − ∈�∈� = − ,, = 0, 428
Maka bobot setelah iterasi 1 : � , = 0,1 x 0, 428 = 0, 0428
Diberikan citra Negatif (8x8) piksel yang memiliki nilai-nilai sebagai berikut:
H(x) = { ∑�= ∝ ( ≥ ∑ ∝�� (3.8)
bukan αj = Tingkat pembelajaran gambar positif. αt = Tingkat pembelajaran
gambar negatif.
βj=Nilai bobot setelah error rate pada gambar negatif
βt= Nilai bobot setelah error rate pada gambar positif
Ht = weak atau basic classifiers (awal dari klasifikasi) gambar positif.
Sehingga Diberikan citra negatif (8x8) piksel yang memiliki nilai-nilai sebagai berikut:
Gambar 3.21 Contoh citra Negatif 1-2
1. Citra negatif ke-1
119 117 116 115 114 112 110 100
118 117 116 115 113 111 109 104
116 114 112 111 103 110 116 120
114 116 117 124 111 113 119 113
102 103 104 105 134 104 114 114
150 144 111 102 123 103 117 116
160 133 122 109 142 102 112 115
104 104 102 101 99 95 96 93
Dengan nilai fitur :
hj(x)= (120 + 77 – 162 -25)-(100 + 25 - 120- 52)= 52 Maka ∈j=(0,05) | 57 – 0 | =2,8
�� = −∈∈ maka �� = − ,, = -1,54
Perbaharui bobot : ��+ , = ��,. �
Maka bobot setelah iterasi 1 : � , = 0,05× − , = − ,
jika bobot setelah iterasi ke n jumlahnya < 0 maka iterasi berhenti. βj yang digunakan untuk mencari H(x) mengunakan pada citra negatif yang nilai βj<0
Untuk salah bernilai = 0 Maka: H(x)= log
, × ≥ log , = -25,99 ≥ 0,184
Karena -25,99 ≥ , itu bernilai salah jadi citra bukan merupakan objek
2. Citra negatif ke-2
H(x)=(�og
Maka citra tersebut bukan berupa gambar positif.
Jadi semakain banyak interasi yang bisa dilakukan oleh sebuah gambar positif dan negatif maka semakain besak kemungkinan untuk objek ditemukan. Dari analisa diatas dapat diambil kesimpulan, bahwa tiga faktor yang mempegaruhi kecepatan dan tingkat akurasi dalam pendeteksian, faktor - faktor tersebut antara lain:
1. jumlah dari tahapan classifier.
2. Jumlah semakin banyak gambar positif dimasukan semakin akurat pendeteksianya.
3. Jumlah dari data latih yang dimasukkan
3.2 Analisis Kebutuhan Non-Fungsional
Adapun kebutuhan non-fungsional untuk menjalankan aplikasi ini meliputi kebutuhan perangkat keras, kebutuhan perangkat lunak dan pengguna sistem yang akan memakai aplikasi. Analisis kebutuhan non-fungsional bertujuan agar aplikasi yang dibangun dapat digunakan sesuai dengan kebutuhan pengguna aplikasi dalam mencari informasi yang dibutuhkan.
3.2.1 Analisis Kebutuhan Perangkat keras
Tabel 3.1 Spesifikasi Kebutuhan Perangkat Keras Komputer No Perangkat Keras Spesifikasi
1 Processor Kecepatan minimun 2.2 GHz
2 VGA 500 MB
3 Memori RAM 2 GB DDR3
4 Keyboard Standart Port USB
5 Mouse Optical Mouse USB
6 Monitor LED
7 Webcam Standart Port USB
8 Harddisk 320
3.2.2 Analisis Kebutuhan Perangkat Lunak
Spesifikasi perangkat lunak komputer yang dibutuhkan untuk membangun aplikasi dapat dilihat pada tabel 3.4
Tabel 3.2 Spesifikasi Kebutuhan Perangkat Lunak Komputer No Perangkat Lunak Spesifikasi
1 Sistem Operasi Microsoft Windows 7 atau 8 32bit 2 Program a. Mirosoft Visual Studio 2010
b. Microsoft Visio 2010 c. Library OpenCV
3.3 Analisis Kebutuhan Fungsional
3.3.1 Use case
Use case diagram merupakan pemodelan yang menunjukan interaksi antara sistem dan lingkungannya. Use case diagram memberikan gambaran yang cukup sederhana dari interaksi-interaksi yang terlibat. Berikut adalah perancangan proses-proses pada sistem pengenalan isyarat jari pada aplikasi pemutar musik yang digambarkan dengan use case diagram :
Gambar 3.24 Gambar Use Case
Use case terdiri dari tiga bagian yaitu definisi actor, definisi use case, dan skenario use case.
3.3.1.1Identifikasi Actor
Actor yaitu pihak yang mengakses use case dengan berperan sebagai pengguna yang akan menggunakan sistem.
Tabel 3.3 Aktor Use Case
No Aktor Deskripsi
3.3.1.2 Identifikasi Use Case
Berikut tabel Identifikasi Use Case yang terdapat pada aplikasi: Tabel 3.4 Use Case Aktor
Use Case Aplikasi User
No Use Case Deskripsi
UC-01 Start Camera Fungsional untuk mengaktifkan kamera
UC-02 Open File Fungsional untuk memungkinkan pengguna memilih lagu yang sudah tersimpan di file directory
3.3.2 Skenario Use Case
Skenario use case mendeskripsikan urutan langkah-langkah dalam proses bisnis, baik dilakukan aktor terhadap sistem maupun yang dilakukan oleh sistem terhadap aktor.
3.3.2.1Skenario Use start camera
Skenario use case start camera gambar dapat dilihat pada tabel 3.5. Tabel 3.5 Skenario Use Case Start Camera Identifikasi
Nama Use Case User Start Camera
Aktor User
Tujuan Digunakan untuk menyiapkan
kamera webcam
Keadaan Awal Sistem menampilkan tampilan utama Skenario Utama
Aksi Aktor Reaksi Sistem
aplikasi
3. Menyimpan gambar
3.3.2.2Skenario Use Case Open file musik
Skenario use case open file musik gambar dapat dilihat pada tabel 3.6. Tabel 3.6 Skenario Use Case open file musik Identifikasi
Nama Use Case User Open File musik
Aktor User
Tujuan Proses untuk memilih lagu di
directori
Keadaan Awal Sistem menampilkan directori file Skenario Utama
Aksi Aktor Reaksi Sistem
1. Menampilkan directori file
3.3.3 Activity Diagram
3.3.4 Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan disekitar sistem (termasuk pengguna, display, dan sebagainya) berupa informasi yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Berikut sequence diagram pada sistem :
Gambar 3.28 Sequence Diagram Alir Open file musik
3.3.5 Class Diagram
Gambar 3.29 Class Diagram
3.4 Perancangan Sistem
Perancangan sistem merupakan penggambaran, perencanaan, dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam suatu kesatuan yang utuh. suatu kesatuan yang utuh. Tahapan ini meliputi mengkonfigurasi komponen-komponen perangkat lunak dan perangkat keras dari suatu sistem. Adapun perancangan sistem dari perangkat lunak yang akan dibuat dijelaskan sebagai berikut.
3.4.1 Perancangan Antarmuka Sistem
3.4.1.1Perancangan Antar Muka Tampilan Utama
Gambar 3.30 Perncangan Antar Muka Tampilan Utama
3.4.1.2Perancangan Antar Muka Open File
3.5 Perancangan Jaringan Semantik
Jaringan semantik merupakan gambaran grafis yang menunjukkan antar objek (lingkaran) dan garis yang menggambarkan formasi antarobjek tersebut. Adapun jaringan semantik untuk aplikasi pengecekan umur kulit dapat dilihat pada gambar dibawah:
Gambar 3.32 Jaringan Semantik Keterangan:
55 4.1Implementasi Sistem
Setelah melakukan tahapan analisis dan perancangan, maka yang harus dilakukan selanjutnya adalah mengimplementasikan yang telah di analisis dan dirancang sebelumya. Tahapan-tahapan implementasi tersebut berupa spesifikasi implementasi perangkat keras, spesifikasi implementasi perangkat lunak, kriteria pengujian, dan pengujian akurasi sistem.
4.1.1 Spesifikasi Implementasi Perangkat Keras
Implementasi perangkat keras menjelaskan perangkat keras yang digunakan untuk mengimplementasikan sistem yang telah dibuat. Berikut ini merupakan perangkat keras yang digunakan dalam mengimplementasi sistem ini :
Tabel 4. 1 Spesifikasi implementasi perangkat keras
No Perangkat Keras Spesifikasi
1 Processor Kecepatan 2.2 GHz
2 VGA 500 MB
3 Memori RAM 2 GB DDR3
7 Webcam Standart Port USB
8 Harddisk 320
4.1.2 Spesifikasi Implementasi Perangkat Lunak
Perangkat lunak yang digunakan dalam aplikasi ini dapat dilihat pada tabel 4.2 berikut :
Tabel 4.2 Spesifikasi implementasi perangkat lunak
No Perangkat Lunak Spesifikasi
4.2 Kriteria Pengujian
Dalam sebuah pengujian diperlukan suatu batasan tentang kriteria pengujian yang akan dilakukan, berikut beberapa kriteria pengujian yang digunakan.
4.2.1 Kriteria data latih dan data uji
Penelitian ini menggunakan kriteria data latih berupa sampel gambar dari objek telapak tangan dengan ukuran 100 x 100 pixel dengan jumlah 5 isyarat sebagaisubjek dan untuk tiap isyarat tangan memiliki 6 sampel isyarat tangan, format citra latih berupa .bmp. Sedangkan untuk citra uji akan digunakan citra gambar yang berukuran 640 x 480 pixeldengan format .bmpyang didalamnya terdapat objek telapak tangan, objek telapak tangan yang terkandung pada citra uji memiliki keadaan tertentu yakni, posisi telapak tangan dalam keadaan menghadap miring, serta keadaan pencahayaan yang bervariasi. Berikut tabel 4.3 adalah tabel untuk daftar citra latih.
Tabel 4.3 Daftar citra isyarat jari No Nama
Subjek
Sampel Isyarat Jari
1 Play
2 Prev
3 Next
5 Stop
4.3 Pengujian Akurasi Sistem
Pengujian akurasi dimulai dengan memasukan citra latih kepada sistem. Setelah seluruh citra latih tersimpan didalam sistem, maka selanjutnya setiap citra uji akan dimasukan kedalam sistem agar didapatkan hasil pengujian pengenalannya terhadap citra latih yang telah tersimpan pada sistem.
Kemudian, untuk tahap selanjutnya agar didapatkan hasil dari perbandingan keakuratan pengenalan dengan menggunakan metode viola-jones, maka seluruh citra latih dan citra uji tersebut akan diubah dan dinormalisasikan dengan menggunakan metode haar-cascade terlebih dahulu sebelum dilakukannya proses pengenalan isyarat jari.
4.4.1 Pengujian Tanpa Metode Khusus
Pada tahap ini pengujian pengenalan isyarat jari pada sistem akan dilakukan tanpa menggunakan metode khusus yang terdapat pada algoritma viola-jones. Maka untuk hasil pengenalan tersebut pada sistem dapat dilihat pada tabel 4.5 berikut.
Tabel 4.4 Hasil pengenalan isyarat jari tanpa metode khusus No Nama
Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji Cira Latih Termirip
1 Play Play
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji Cira Latih Termirip
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji Cira Latih Termirip
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji Cira Latih Termirip
16 Pause Pause
17 Pause Pause -
18 Pause Isyarat jari tidak terdeteksi
-
19 Pause Pause
20 Pause Pause
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji Cira Latih Termirip
22 Stop Stop
dilakukan pada banyak isyarat jari yang terdeteksi dan terjadi pengenalan. Sehingga didapat presentasi keberhasilan dalam mengenali subjek sebesar (12/24)*100% = 50% .
4.4.2 Pengujian Menggunakan Metode Viola and Jones
Pada tahap ini pengujian pengenalan isyarat jari pada sistem akan dilakukan tanpa menggunakan metode khusus yang terdapat pada algoritma viola-jones. Maka untuk hasil pengenalan tersebut pada sistem dapat dilihat pada tabel 4.5 berikut.
Tabel 4.5 daftar citra latih untuk viola and jones No Nama
Subjek
Citra uji
1 Play
2 Prev
3 Next
4 Pause
Tabel 4.6 Hasil pengenalan sistem No Nama
Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji
1 Play Play
2 Play Play
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji
4 Play Prev
5 Play Play
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji
7 Prev Prev
8 Prev Prev
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji
10 Prev Next
11 Next Prev
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji
13 Next Prev
14 Next Play
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji
16 Pause Prev
17 Pause Prev
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji
19 Pause Play
20 Pause Pause
No Nama Subjek Citra Uji
Dikenali Sebagai
Gambar Citra Uji
22 Stop Prev
23 Stop Play