Data yang Digunakan Analisis Sistem

BAB 3 ANALISIS DAN PERANCANGAN

Bab ini akan membahas tentang implementasi metode yang digunakan untuk mengenali gerakan tangan manusia. Adapun 2 dua tahap yang akan dibahas pada bab ini, yaitu tahap analisis dan tahap perancangan system.

3.1 Data yang Digunakan

Data yang digunakan dalam penelitian ini berupa citra yang diambil secara real-time melalui kamera web. Dalam pengambilan citra, ada beberapa aspek yang yang perlu diperhatikan yaitu kualitas kamera web, pencahayaanlighting dan jarak pengambilan gambar.

3.2 Analisis Sistem

Metode yang digunakan untuk mengenali gestur tangan manusia melalui kamera web yang digunakan sebagai interaksi manusia-komputer untuk menjalankan instruksi yang telah ditentukan. Penelitian ini terdiri dari beberapa langkah, adapun langkah- langkah tersebut yaitu: pengambilan citra atau gambar melalui kamera web; resizing citra; konversi warna RGB ke HSV; pendeteksian warna kulit dengan mengatur nilai range HSV yang diinginkan; memperbaiki citra dengan median blur utk menghilangkan noise dandilasi; ekstraksi fitur dengan contour dan mencari convex- hull dari contour yang telah tertangkap; menghitung convexity defects; menghitung jumlah jari tangan yang terdeteksi. Setelah langkah tersebut telah dilakukan dan berhasil maka akan didapatkan jumlah jari tangan manusia yang berupa suatu instruksi atau perintah untuk memilih sebuah scene yang terdapat pada aplikasi Unity 3D. Adapun arsitektur umum yang menggambarkan metode pada penelitian ini ditunjukkan pada Gambar 3.1. Universitas Sumatera Utara Universitas Sumatera Utara Gambar 3.1 Arsitektur Umum 3.2.1 Skin Detection Proses segmentasi digunakan untuk mendapatkan objek yang akan diidentifikasi yang dalam hal ini adalah citra tangan.Agar citra tangan dari pengguna yang diambil dari kamera dapat diidentifikasi sebagai suatu perintah. Pendeteksian objek tangan berdasarkan warna kulit ini sangat dipengaruhi oleh intensitas cahaya pada citra dan juga kualitas dari kamera web itu sendiri dan juga latar pengambilan objek itu sendiri.Pada penelitian ini digunakan metode warna HSV Citra ditangkap web camera Pemilihan Scene Unity berdasarkan jumlah jari yang terdeteksi Eksraksi Fitur Contour Convex-Hull Convexity Defects Klasifikasi Menghitung Jumlah Jari Output Konversi RGB ke HSV Atur range HSV Erosion Dilation Median Blur Perbaikan Citra Pre-Processing Tresholding Universitas Sumatera Utara Universitas Sumatera Utara sebagai segmentasi gambar berdasarkan warna.Adapun langkah-langkah mendeteksi warna kulit manusia sebagai berikut. 3.2.1.1 Konversi RGB ke HSV Setelah citra tertangkap oleh kamera web, kemudian akan dikonversi ke ruang warna HSV. Format HSV lebih cocok untuk melakukan pengolahan berdasarkan warna daripada menggunakan RGB, karena kita mendapatkan saluran tunggal H yang memegang nilai warna pixel dan dua saluran lainnya S dan V yang memegang tingkat saturasi dan kecerahan tingkat pixel. Pada penelitian ini menggunakan fungsi cvtColor yang tersedia pada OpenCV. Berikut adalah penjelasan fungsi tersebut. cvtColor Mat src, Mat dst, Imgproc, int code; Parameter: • Src : citra masukan yaitu rgbaMat • Dst : citra keluaran yaitu hsvMat • Code : kode konversi ruang warna yaitu COLOR_BGR2HSV 3.2.1.2 Atur Range HSV Setelah dilakukan konversi ke format HSV, selanjutnya dilakukan perubahan citra ke dalam bentuk citra biner menggunakan proses thresholding. Deteksi warna kulit dilakukan dengan cara menentukan rentang nilai dari H, S, dan V, Sehingga untuk setiap piksel dalam citra, jika berada dalam range tersebut, maka akan dianggap sebagai warna kulit, sedangkan untuk yang berada di luar range tersebut akan dianggap sebagai background. Untuk mengecek apakah element tersebut berada di range pada penelitian ini digunakan fungsi Core.inRange yang tersedia pada OpenCV. Berikut ini adalah penjelasan tentang fungsi tersebut. inRange Mat src, Scalar lowerb, Scalar upperb, Mat dst; Parameter : • src : citra masukan yaitu hsvMat • dst : citra keluaran yaitu hsvMat • Lowerb : batas bawah array • Upperb : batas atas array Universitas Sumatera Utara Universitas Sumatera Utara 3.2.1.3 Tresholding Untuk setiap piksel dalam citra, jika nilai H, S, V berada dalam rentang tersebut, maka akan dianggap sebagai warna kulit dan nilainya akan diubah menjadi 255 warna putih. Sedangkan untuk yang berada di luar rentang itu, akan dianggap sebagai latar belakang dan akan diubah nilainya menjadi 0 warna hitam. Dengan metode ini, didapatkan citra biner hasil skin detection dengan warna putih merepresentasikan tangan pengguna dan warna hitam merepresentasikan background. 3.2.2 Perbaikan Citra Hasil dari proses segmentasi yang berupa gambar hitam putih binary image yang menunjukkan bagian kulit dari gambar masukan. Akan tetapi citra hasil segmentasi tersebut masih terdapat noise potongan dari beberapa benda lainnya pada citra, seperti latar belakang gambar. Oleh karena itu, perlu dilakukan beberapa tahapan proses morfologi untuk membersihkan gambar dari noise potongan tersebut. Adapun beberapa proses morfologi tersebut yaitu. Erosion, dilation dan median blur. 3.2.2.1 Erosion Proses erosi membuang piksel dari gambar atau ekivalen dengan membuat piksel ON menjadi OFF, yaitu piksel putih yang melekat pada daerah background, sehingga akan menyebabkan piksel putih berkurang luasnya shrinking dengan tujuan untuk menghilangkan piksel yang memiliki noise pada citra. Adapun fungsi yang digunakan peneliti untuk proses erosi yaitu. Mat element = getStructuringElementerosion_type,Size 2erosion_size+1,Pointerosion_size,erosion_size; Imgproc.erodesrc, dst, element; Parameter: • Src : citra masukan • Dst : citra keluaran • Element : Ini adalah kernel yang akan di gunakan untuk melakukan operasi. Jika tidak ditentukan dahulu, maka defaultnya adalah matriks 3x3 sederhana.Akan tetapi, kita dapat menentukan Universitas Sumatera Utara Universitas Sumatera Utara bentuknya. Untuk ini, kita perlu menggunakan fungsi getStructuringElement: • Erosi_type : bentuk dari kernel, bentuk yang digunakan yaitu MORPH_ELLIPSE yang berbentuk Ellipse • Erosion_size : ukuran celah linear, ukuran yang digunakan pada penelitian ini adalah 5 3.2.2.2 Dilation Proses dilasi adalah kebalikan dari proses erosi, membuat piksel off menjadi on, sehingga akan menyebabkan piksel putih bertambah luasnya. Tujuan dilakukan proses dilasi adalah karena saat proses erosi dilakukan pada citra masukan, daerah yang diproses termasuk juga kulit ikut mengalami shrinking sehingga perlu dilakukan suatu proses yang mengembalikan daerah tersebut agar bagian tangan nantinya akan terdeteksi dengan benar. Mat element = getStructuringElementdilation_type,Size 2dilation_size+1,Pointdilation_size,dilation_size; Imgproc.dilatesrc, dst, element; Parameter: • Src : citra masukan • Dst : citra keluaran • Element : Ini adalah kernel yang akan di gunakan untuk melakukan operasi. Jika tidak ditentukan dahuly, maka defaultnya adalah matriks 3x3 sederhana.Akan tetapi, kita dapat menentukan bentuknya. Untuk ini, kita perlu menggunakan fungsi getStructuringElement: • Dilation_type : bentuk dari kernel, bentuk yang digunakan yaitu MORPH_ELLIPSE yang berbentuk Ellipse • Dilation_size : ukuran celah linear, ukuran yang digunakan pada penelitian ini adalah 5 Universitas Sumatera Utara Universitas Sumatera Utara 3.2.2.3 Median Blur Median blur dilakukan untuk menghilangkan noise yang masih terdapat pada citra setelah proses dilasi, agar tidak terdefinisi sebagai titik objek.berikut adalah fungsi yang tersedia pada library OpenCV. medianBlurInputArray src, OutputArray dst, int ksize; Parameter: • src : citra masukan • dst : Citra keluaran • ksize : ukuran celah linear, biasanya lebih dari 1, contohnya: 3, 5, 7. 3.2.3 Ekstraksi Fitur Setelah gambar melalui tahap perbaikan citra untuk membersihkan gambar dari noise , maka selanjutnya citra akan dilakukan proses ekstraksi fitur yang meliputi contour,convex-hull dan convexity defects pada citra. Proses ini dilakukan untuk mendapatkan informasi yang diinginkan untuk proses analisis ataupun pengklasifikasian data citra. Berikut ini adalah penjelasan dari masing-masing proses yang disebutkan diatas. 3.2.3.1 Contour kontur ditarik sekitar titik-titik putih dari tangan yang ditemukan dari hasil thresholding citra masukan. Hasil tresholding tersebut akan terbentuk lebih dari satu titik pada gambar karena noise dari latar belakang citra. pada penelitian ini digunakan fungsi findcontours yang telah tersedia oleh OpenCV untuk mendeteksi titik-titik kontur pada citra hasil perbaikan noise sebelumnya.Berikut adalah penjelasan dari fungsi tersebut. findContours src image, contours, hierarcy, mode, method, Point; Parameter : • Image : citra masukan, yaitu citra hasil proses perbaikan citra • Contours : titik kontur yang terdeteksi. Setiap titik kontur yang terdeteksi akan disimpan didalam list titik vector Universitas Sumatera Utara Universitas Sumatera Utara • hierarchy : keluaran berupa titik vektor yang bersifat opsional. Dalam parameter ini disimpan berbagai informasi dari setiap titik kontur, misalnya titik kontur sebelumnya, titik kontur selanjutnya, titik kontur utama, dsb. • Mode : cara pendeteksian titik kontur. Pada penelitian ini dilakukan dengan cara CV_RETR_EXTERNAL, yang mengambil semua titik kontur dan merekontruksi penuh hirarki titik-titik kontur yang terhubung • Method : metode pendekatan titik kontur. Pada penelitian ini dilakukan dengan cara CV_CHAIN_APPROX_SIMPLE, yang menekankan pada segmen horizontal, vertikal, dan diagonal dan menentukan titik akhir pada kontur. Setelah contour didapatkan pada citra masukan, maka titik-titik yang didapatkan akan digambar membentuk sebuah gambar tangan. Fungsi yang digunakan pada penelitian ini yaitu drawContours yang telah tersedia pada library OpenCV.Berikut ini adalah gambar dari proses pendeteksian contour pada penelitian ini yang dapat dilihat dari gambar 3.2. Gambar 3.2 Hasil dari Contour 3.2.3.2 Convex-hull Setelah titik-titik yang dihasilkan didapatkan dan dibentuk menjadi contour pada proses sebelumnya, maka proses selanjutnya yaitu Convex-hull. Convex hull adalah metode yang digunakan untuk mendeteksi kontur atau obyek pada citra.Convex hull terdiri dari titik-titik yang dihubungkan dengan garis yang mengelilingi kontur objek Universitas Sumatera Utara Universitas Sumatera Utara pada citra. Setelah kontur-kontur didapatkan, dari kontur-kontur tersebut akan dicari kontur yang paling besarnya objek tangan harus yang paling besar sebelum dilakukan pencarian convex hullnya .Fungsi yang digunakan pada penelitian ini yaitu convexHull. Adapun penjelasan fungsi tersebut yaitu. convexHullInputArray points, OutputArray hull; Parameter: • Points : titik kontur yang terdeteksi dan telah disaring. • Hull : hasil keluaran Convex-hull. Berikut ini adalah gambar dari proses pendeteksian convex-hull pada penelitian ini yang dapat dilihat dari gambar 3.3 Gambar 3.3 Hasil dari Convex-hull 3.2.3.3 Convexity defects Setelah kontur terbesar dan Convex-hull terdeteksi, maka proses selanjutnya yaitu Convexity defects.yang merupakan titik temu antara titik kontur dan garis Convex-hull. Pada penelitian ini, digunakan fungsi convexityDefects yang telah tersedia di OpenCV untuk mendeteksi Convexity defects. Berikut ini adalah penjelasan tentang fungsi tersebut. convexityDefectscontour, convexHull, convexityDefects; Parameter : • contour : Titik-tik kontur terbesar yang terdeteksi • convexhull : Convex-hull yang terdeteksi Universitas Sumatera Utara Universitas Sumatera Utara • convexityDefects : hasil keluaran Convexity Defects. Berikut ini adalah gambar dari proses pendeteksian convex-hull pada penelitian ini yang dapat dilihat dari gambar 3.4 Gambar 3.4 Hasil dari Convexity defects

3.3 Use Case Diagram