LAMPIRAN
System.EventArgs) Handles Me.Load IndikatorHandle(False) End Sub
Private Sub BWReadPixel_DoWork(ByVal sender As Object, ByVal e As
System.ComponentModel.DoWorkEventArgs) Handles BWReadPixel.DoWork Dim worker As BackgroundWorker = _
ProgressBar1.Value = e.ProgressPercentage End Sub
Private Sub BWReadPixel_RunWorkerCompleted(ByVal sender As Object, ByVal e
As System.ComponentModel.RunWorkerCompletedEventArgs) Handles
BWReadPixel.RunWorkerCompleted
Label1.Text = "Database Read.."
Application.DoEvents()
Private Sub BWDatabaseRead_DoWork(ByVal sender As Object, ByVal e As
System.ComponentModel.DoWorkEventArgs) Handles BWDatabaseRead.DoWork Dim worker As BackgroundWorker = _
CType(sender, BackgroundWorker) Dim CDb As New ClDatabase
CDb.Connstring = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" &
Application.StartupPath & "\db.mdb"
CDb.TblName = "tbl_color"
CDb.ReadDBColor(CType(e.Argument, ClGeneral), worker, e) End Sub
Private Sub BWDatabaseRead_ProgressChanged(ByVal sender As Object, ByVal e
As System.ComponentModel.ProgressChangedEventArgs) Handles
BWDatabaseRead.ProgressChanged
ProgressBar1.Value = e.ProgressPercentage End Sub
Private Sub BWDatabaseRead_RunWorkerCompleted(ByVal sender As Object, ByVal
e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles
BWDatabaseRead.RunWorkerCompleted Label1.Text = "Skin Detection"
Application.DoEvents()
BWDetectSkin.RunWorkerAsync(CGen) End Sub
Private Sub BWDetectSkin_DoWork(ByVal sender As Object, ByVal e As
System.ComponentModel.DoWorkEventArgs) Handles BWDetectSkin.DoWork Dim worker As BackgroundWorker = _
CType(sender, BackgroundWorker) Dim CColorDetect As New ClColorDetect
CColorDetect.DetectColor(CType(e.Argument, ClGeneral), worker, e) End Sub
Private Sub BWDetectSkin_ProgressChanged(ByVal sender As Object, ByVal e As
System.ComponentModel.ProgressChangedEventArgs) Handles
BWDetectSkin.ProgressChanged
ProgressBar1.Value = e.ProgressPercentage End Sub
Private Sub BWDetectSkin_RunWorkerCompleted(ByVal sender As Object, ByVal e
As System.ComponentModel.RunWorkerCompletedEventArgs) Handles
BWDetectSkin.RunWorkerCompleted
IndikatorHandle(True, "Binerisasi") Application.DoEvents()
BWBinerisasi.RunWorkerAsync(CGen) End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
Label2.Text = ProgressBar1.Value & " %"
End Sub
Private Sub BWBinerisasi_DoWork(ByVal sender As Object, ByVal e As
System.ComponentModel.DoWorkEventArgs) Handles BWBinerisasi.DoWork Dim worker As BackgroundWorker = _
Dim CImage As New ClImage
ProgressBar1.Value = e.ProgressPercentage End Sub
Private Sub BWBinerisasi_RunWorkerCompleted(ByVal sender As Object, ByVal e
As System.ComponentModel.RunWorkerCompletedEventArgs) Handles
BWBinerisasi.RunWorkerCompleted
System.ComponentModel.DoWorkEventArgs) Handles BWDilasi.DoWork Dim worker As BackgroundWorker = _
ProgressBar1.Value = e.ProgressPercentage End Sub
BWKodeRantai.RunWorkerAsync(CGen) End Sub
Private Sub BWErosi_DoWork(ByVal sender As Object, ByVal e As
System.ComponentModel.DoWorkEventArgs) Handles BWErosi.DoWork Dim worker As BackgroundWorker = _
System.ComponentModel.ProgressChangedEventArgs) Handles BWErosi.ProgressChanged ProgressBar1.Value = e.ProgressPercentage
End Sub
Private Sub BWErosi_RunWorkerCompleted(ByVal sender As Object, ByVal e As
System.ComponentModel.RunWorkerCompletedEventArgs) Handles
IndikatorHandle(True, "Dilasi..") Application.DoEvents()
BWDilasi.RunWorkerAsync(CGen) End Sub
Private Sub BWKodeRantai_DoWork(ByVal sender As Object, ByVal e As
System.ComponentModel.DoWorkEventArgs) Handles BWKodeRantai.DoWork Dim worker As BackgroundWorker = _
ProgressBar1.Value = e.ProgressPercentage End Sub
Private Sub BWKodeRantai_RunWorkerCompleted(ByVal sender As Object, ByVal e
As System.ComponentModel.RunWorkerCompletedEventArgs) Handles
BWKodeRantai.RunWorkerCompleted
System.ComponentModel.DoWorkEventArgs) Handles BWWajah.DoWork Dim worker As BackgroundWorker = _
CType(sender, BackgroundWorker)
Dim CWajah2 As ClDeteksi = CType(e.Argument, ClDeteksi) CWajah2.Persentase = Val(TextBox1.Text)
CWajah2.Identifikasi(CShape, PictureBox1.Image, worker, e, tProgress) End Sub
Private Sub BWWajah_ProgressChanged(ByVal sender As Object, ByVal e As
System.ComponentModel.ProgressChangedEventArgs) Handles BWWajah.ProgressChanged ProgressBar1.Value = e.ProgressPercentage
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ToolStripButton1.Click OpenFileDialog1.FileName = ""
As System.EventArgs) Handles ToolStripButton2.Click CGen = New ClGeneral
As System.EventArgs) Handles ToolStripButton3.Click Me.Close()
As System.EventArgs) Handles ToolStripButton1.Click OpenFileDialog1.FileName = String.Empty
As System.EventArgs) Handles ToolStripButton2.Click JC = Val(TextBox1.Text)
CGen = New ClGeneral
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Timer1.Tick End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As
System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Dim worker As BackgroundWorker = _
CType(sender, BackgroundWorker) Dim CImage As New ClImage
CImage.ReadPixel(CType(e.Argument, ClGeneral), worker, e) End Sub
Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal
e As System.ComponentModel.ProgressChangedEventArgs) Handles
BackgroundWorker1.ProgressChanged
ProgressBar1.Value = e.ProgressPercentage End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object,
ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles
BackgroundWorker1.RunWorkerCompleted Application.DoEvents()
BackgroundWorker2.RunWorkerAsync(CGen) End Sub
Private Sub BackgroundWorker2_DoWork(ByVal sender As Object, ByVal e As
System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork Dim worker As BackgroundWorker = _
CType(sender, BackgroundWorker) CKMeans = New ClKMeans
CKMeans.ScanCluster(CType(e.Argument, ClGeneral), JC) End Sub
Private Sub BackgroundWorker2_RunWorkerCompleted(ByVal sender As Object,
ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles
BackgroundWorker2.RunWorkerCompleted
As System.EventArgs) Handles ToolStripButton3.Click If CKMeans.LCluster.Count < 1 Then
Exit Sub
Dim Konek As New OleDb.OleDbConnection
Konek.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & Application.StartupPath & "\db.mdb"
Konek.Open()
",'" & TextBox2.Text & "')"
CMD.ExecuteNonQuery()
As System.EventArgs) Handles ToolStripButton4.Click Me.Close()
End Sub
Private Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles
ToolStrip1.ItemClicked
As System.EventArgs) Handles ToolStripButton1.Click Dim F As New FFiturWajah
F.ShowDialog() End Sub
Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e
F.ShowDialog() End Sub
Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ToolStripButton4.Click End
ByVal worker As BackgroundWorker, _
Dim PPiksel As ClGeneral.PubPixel
Konek.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & Application.StartupPath & "\db.mdb"
Konek.Open()
ClusterK.CG = DR2("cg")
Private Structure ColorFind
Dim R As Long
Dim G As Long
Dim B As Long
Dim DbConnection As New OleDb.OleDbConnection
DbConnection.ConnectionString = Connstring DbConnection.Open()
DbConnection.ConnectionString = Connstring DbConnection.Open()
Dim DbCommand As OleDb.OleDbCommand = DbConnection.CreateCommand DbCommand.CommandText = "delete from tbl_color"
Else
Private Function CariJumlahTitik(ByVal tTitik As Objek) As Boolean
Dim DilasiC As Long = 0 tempImage.Height And .R < 255 Then
tempImage.SetPixel(.X - 1, .Y - 1, Color.FromArgb(.R, tempImage.Height And .R < 255 Then
End If
.R = tempMax .G = tempMax .B = tempMax
tempImage.SetPixel(.X - 1, .Y - 1, Color.FromArgb(.R, .G, .B))
Else
tempImage.SetPixel(.X - 1, .Y - 1, Color.FromArgb(.R, .G, .B))
End If
End With
worker.ReportProgress((i / (CGen.LPubPixel.Count - 1)) * 100) Application.DoEvents()
Next
Next
CGen.ResImage1 = New Bitmap(tempImage) tempImage.Dispose()
CURRICULUM VITAE
---
Data Pribadi
Nama : Septy Diana Sari Saragih
Tempat/Tanggal Lahir : Binjai / 28 September 1991
Tinggi/Berat Badan : 163 cm / 42 kg
Agama : Islam
Kewarganegaraan : Indonesia
Alamat : Jl. Klambir V Gg. Kalpataru No. 7 Medan
Alamat Orang Tua : Jl. Klambir V Gg. Kalpataru No. 7 Medan
Telp/ Hp : 082370046677
Email : chiqels@gmail.com
---
Riwayat Pendidikan
[2010 – 2016] : S1 Ilmu Komputer Universitas Sumatera Utara, Medan
[2006 – 2009] : SMA Negeri 15 Medan
[2003 – 2006] : SMP Negeri 7 Medan
[1997 – 2003] : SD Negeri 020267 Binjai
---
Keahlian/Kursus
Keahlian Komputer Bahasa :
Pemrograman : C++, Visual Basic English
Database : MySQL Indonesia
Perkantoran : Microsoft Office
---
Pengalaman Organisasi
[2011 – 2012] Anggota IMILKOM 2011/2012
[2012 – 2013] Anggota IMILKOM 2012 – 2013
---
Pengalaman Kepanitiaan
[2010] Anggota Seksi Perlengkapan Seminar I-Pear ILKOM
[2012] Koordinator Kesehatan PMB IMILKOM USU
---
Seminar
DAFTAR PUSTAKA
Al-Mohair, H. K., Saleh, J. M., & Suandi, S. A. (2013). Impact of Color Space on
Human Skin Color Detection Using an Intelligent System. Recent Advances in
Image, Audio and Signal Processing, ISBN : 978-960-474-350-6.
Azad, R. (2013). Novel and Tuneable Method for Skin Detection Based on Hybrid
Color Space and Color Statistical Features. First International Conference on
computer, Information Technology and Digital Media (CITADIM
Proceeding-Scientific).
Bhat, V. S., & Pujari, J. D. (2013). Face detection system using HSV color model and
morphing operations. International Journal of Current Engineering and
Technology, ISSN 2277 - 4106.
Dubey, S. R., Dixit, P., Singh, N., & Gupta, J. P. (2013). Infected Fruit Part Detection
using K-Means Clutering Segmentation Technique. International Journal of
Artificial Intelligence and Interactive Multimedia, Vol. 2, No. 2.
Hamilton, E. (1992). JPEG File Interchange Format. W3 Organization.
Kadir, A. (2013). Teori dan Aplikasi Pengolahan Citra. Jakarta: Andi.
Muthukumar, A., & Kannan, S. (2013). Finger Knuckle Print Recognition With Sift
and K-Means Algorithm. ICTACT Journal On Image and Video Processing,
Vol. 3, Issue : 03.
Osman, G. (2012). Enhanced Skin Color Classifier Using RGB Ratio Model.
International Journal on Soft Computing (IJSC) Vol.3, No. 4.
Putra, D. (2010). Pengolahan Citra Digital. Yogyakarta: Penerbit Andi.
Sutoyo, T. (2009). Teori Pengolahan Citra Digital. Yogyakarta: Penerbit Andi.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1Analisis Permasalahan
Masalah yang diangkat dari penelitian tugas akhir ini adalah pembuatan sistem Deteksi wajah pada citra digital menggunakan kombinasi metode skin color detection dan k-means clustering. Metode skin color detection merupakan metode yang digunakan untuk memisahkan atau mengekstraksi piksel – piksel pada citra digital yang memiliki warna seperti warna kulit manusia. Deteksi wajah pada citra digital menggunakan metode skin color detection pada citra digital untuk mengecilkan area – area dari citra sehingga proses deteksi wajah menjadi lebih efektif dibandingkan dengan proses pembacaan secara linear piksel per piksel. Metode k-means clustering digunakan untuk mengidentifikasi wajah pada area warna kulit yang diperoleh. Penerapan kedua metode tersebut pada bidang identifikasi manusia khususnya wajah menjadi lebih efektif dan efisien.
3.2Analisis Kebutuhan Sistem
Analisis kebutuhan sistem meliputi analisis kebutuhan fungsional dan analisis kebutuhan non-fungsional sistem.
3.2.1 Analisis Kebutuhan Fungsional Sistem
Kebutuhan fungsional yang harus dimiliki oleh sistem identifikasi wajah pada citra digital menggunakan metode skin color detection dan k-means clustering adalah :
1 Sistem dapat melakukan ekstraksi piksel – piksel warna kulit dari piksel – piksel lain pada citra digital.
2 Sistem dapat mengekstraksi fitur wajah menggunakan k-means clustering.
4 Sistem dapat menggunakan citra dengan satu atau beberapa wajah pada citra digital.
3.2.2 Analisis Kebutuhan Non-Fungsional Sistem
Kebutuhan non-fungsional yang harus dimiliki oleh sistem deteksi wajah citra digital menggunakan metode skin color detection dan k-means clustering adalah :
1. Sistem memiliki proses yang akurat dan cepat.
2. Tampilan antarmuka sistem menarik dan dapat dimengerti oleh pengguna sistem.
3.3Pemodelan
Pada penelitian ini digunakan UML sebagai bahasa pemodelan untuk mendesain dan merancang sistem deteksi wajah citra digital menggunakan metode skin color detection dan k-means clustering. Model UML yang digunakan adalah use case dan activity diagram.
3.3.1 Pemodelan dengan Menggunakan Use Case Diagram
Untuk mengetahui aktor dan use case yang akan digunakan, maka dilakukan identifikasi aktor dan identifikasi use case. Setelah mendapatkan aktor dan use case, maka use case diagram dapat digambarkan.
Aktor yang berinteraksi dengan sistem ini adalah user yang terdiri atas satu jenis yaitu:user. Sistem dapat melakukan pelatihan dan identifikasi seperti pada (Gambar 3.1).
DETEKSI WAJAH
MENGGUNAKAN SKIN COLOR
DAN KMEANS
User
Pengenalan Pola Wajah KMeans
Deteksi Wajah
Gambar 3.1Use Case Diagram yang akan dikembangkan
3.3.1.1Use Case Pengenalan Pola Wajah K-Means
Use case ini akan menjelaskan secara sederhana fungsi sistem pada saat proses pengenalan pola wajah menggunakan k-means clustering yang kemudian dapat digunakan pada saat deteksi wajah pada citra digital. Dapat dilihat pada (Tabel 3.1) yang merupakan dokumentasi naratif dari use case pengenalan pola wajah k-means.
Tabel 3.1 Spesifikasi Use Case Pengenalan Pola Wajah K-means
Nama Use Case Pengenalan Pola Wajah K-Means
Aktor User
Deskripsi Use Case ini mendeskripsikan bagaimana proses pengenalan pola wajah menggunakan K-Means clustering.
Kegiatan User Respon Sistem
Tabel 3.2 Spesifikasi Use Case Pengenalan (Lanjutan)
2. Tekan tombol
Proses!
2. Melakukan proses
pengelompokan piksel
– piksel wajah
menggunakan K-Means clustering.
3. Tekan tombol Save! 3. Menyimpan informasi pengelompokkan
kedalam database
Kondisi Sesudah Sistem melakukan penyimpanan informasi pengelompokan piksel wajah kedalam database
3.3.1.2 Use Case Deteksi Wajah
Use case ini akan menjelaskan secara sederhana fungsi sistem pada saat deteksi wajah pada citra digital. Dapat dilihat pada (Tabel 3.2) yang merupakan dokumentasi naratif dari use case deteksi wajah.
Tabel 3.3 Spesifikasi Use Case Deteksi Wajah
Nama Use Case Deteksi Wajah
Aktor User
Deskripsi Use Case ini mendeskripsikan bagaimana proses deteksi wajah pada citra digital
Alur Dasar 1. Tekan tombol Open 1. Menampilkan dialog untuk memilih gambar dan menampilkan gambar ke antarmuka sistem
2. Tekan tombol
Proses
2. Melakukan proses ekstraksi warna kulit pada citra yang kemudian area piksel
dari kulit dibandingkan dengan
pola wajah menggunakan
K-Means clustering.
Alur Alternatif Tidak ada
Kondisi Sesudah Sistem melakukan deteksi wajah pada citra digital.
3.3.2 Pemodelan dengan Menggunakan Activity Diagram
Diagram aktifitas atau activity diagram menggambarkan alur kerja (workflow) atau aktifitas dari sebuah sistem.
3.3.2.1 Activity Diagram Pengenalan Pola Wajah
User Sistem
Klik Tombol Open Buka Gambar Wajah
Baca Piksel Pilih Jumlah Cluster Yang Digunakan
Klik Tombol Simpan
Melakukan Clustering Piksel Wajah
Menampilkan Informasi Cluster Wajah
Menyimpan Informasi Cluster Wajah
Gambar 3.2 Activity Diagram Proses Pengenalan Pola Wajah
3.3.2.2Activity Diagram Deteksi Wajah
User Sistem
Klik Tombol Open Buka Gambar
Baca Piksel Pilih Jumlah Cluster Yang Digunakan
Melakukan Proses Ekstraksi Piksel Kulit Manusia
Membandingkan Area Warna Kulit Dengan Fitur Wajah
Menampilkan Lokasi Wajah Pada Citra Melihat Hasil Deteksi dan Keluar Dari Sistem
Gambar 3.3 Activity Diagram Proses Deteksi Wajah
3.3.3 Diagram Ishikawa
Deteksi Wajah Citra Digital
People Method
Material Machine
Operator
Skin Color KMeans
Contoh Wajah Citra Uji
Visual Basic .Net
Gambar 3.4 Diagram Ishikawa
3.4 Perancang Sistem
3.4.1 Flowchart Sistem
3.4.1.1 Flowchart Gambaran Umum Sistem
START
Membaca Piksel Pada Citra Wajah
Input Citra Wajah dan jumlah cluster
Mengelompokkan Piksel Ke dalam Sejumlah Cluster
yang telah ditetapkan
Menyimpan informasi cluster
ke database
Output Informsasi
Cluster Wajah
END A
A
Gambar 3.5 Flowchart Gambaran Umum Sistem Proses Pengenalan Pola
Wajah
Keterangan :
START
Gambar 3.6 Flowchart Gambaran Sistem Proses Deteksi Wajah
Keterangan :
3.4.1.2 Flowchart Proses Skin Color Detection
START
Melakukan perhitungan nilai mean dan variance dari Hue, Cb dan Cr
dari setiap piksel dari citra Input Citra
Output Piksel yang
tergolong ke warna
kulit
END
Melakukan pemindaian tiap piksel pada citra digital dan menggolongkan piksel – piksel
yang tergolong ke warna kulit ArrPiksel = Membaca Piksel
Citra Tes
Gambar 3.7 Flowchart Proses Skin Color Detection
Keterangan :
variance dari ruang warna hue, Cb dan Cr. Kemudian sistem kemudian melakukan penyeleksian piksel per piksel menggunakan pemeriksaan kondisi terhadap nilai variance yang diperoleh. Sistem kemudian menampilkan hasil piksel dari warna kulit pada citra.
3.4.1.3Flowchart Proses K-Means Clustering
Keterangan :
Dari (Gambar 3.8) dapat dilihat proses dari proses K-Means clustering. Proses dimulai dengan membentuk cluster awal dengan nilai centroid acak. Sistem kemudian melakukan pengelompokkan piksel citra ke dalam cluster yang dibentuk berdasarkan jarak warna piksel tersebut terhadap nilai centroid tiap cluster. Setelah proses pengelompokkan selesai proses dilanjutkan dengan perhitungan centroid baru dengan menggunakan nilai rata-rata dari piksel anggota dari cluster. Jika ternyata centroid baru tidak sama dengan centroid lama maka proses pengelompokkan diulang kembali menggunakan centroid baru.
3.4.2 Rancangan Database
Struktur database merupakan tempat penyimpanan informasi dari aliran data yang digunakan dalam sebuah sistem. Dalam perancangan aplikasi deteksi wajah ini terdiri dari dari beberapa tabel yaitu sebagai berikut.
1. Tabel Wajah
Tabel wajah merupakan tabel yang befungsi untuk menyimpan data wajah yang digunakan pada proses pengenalan.
Nama Tabel : tbl_wajah
Primary Key : id_wajah
Tabel 3.3 Struktur Tabel Wajah
No. Field Tipe Ukuran Keterangan
1. ID_Wajah Varchar 10 Id data wajah
2. Nama Text 20 Nama Wajah
3. Keterangan Text 20 Keterangan Wajah
2. Tabel Detail Wajah
Nama Tabel : tbl_detail_wajah
Primary Key : id_detail_wajah
Tabel 3.4 Struktur Tabel Detail Wajah
No. Field Tipe Ukuran Keterangan
1. Id_detail_wajah Integer - ID Record Detail Wajah
2. JCluster Int 20 Jumlah Cluster yang
digunakan
3. Nama Text 20 Nama Pemilik Wajah
3. Tabel Cluster
Tabel cluster berfungsi untuk menyimpan data pencatatan informasi cluster dari proses k-means clustering dari masing – masing wajah.
Nama Tabel : tbl_cluster
Primary Key : id_cluster
Tabel 3.5 Struktur Tabel Cluster
No. Field Tipe Ukuran Keterangan
1. Id_cluster Integer - ID Record data cluster
2. Id_wajah Integer - Id Wajah
3. CR Integer - Nilai Centroid Red
4. CG Integer - Nilai Centroid Green
5. CB Integer - Nilai Centroid Blue
3.4.3 Rancangan Antarmuka
Sistem akan dibangun menggunakan bahasa pemrograman Visual Basic dengan menggunakan software Microsoft Visual Studio 2010. Rancangan antar muka disesuaikan dengan kebutuhan dan software yang digunakan. Antar muka menggunakan 4 form, yaitu : form cover, form fitur wajah, form deteksi, dan form about. Form cover berfungsi sebagai cover dari sistem dimana terdapat menu utama.
3.4.3.1 Antarmuka FormCover
Gambar 3.9 Rancangan Form Cover
Komponen yang dipakai untuk membangun antar muka form Cover pada (Gambar) 3.9 adalah sebagai berikut :
1. Menu “Fitur Wajah” : untuk masuk ke tampilan fitur wajah.
2. Menu “Deteksi” : untuk masuk ke tampilan Deteksi.
3. Menu “About” : untuk masuk ke tampilan about.
4. Menu “Exit” : untuk keluar dari program.
3.4.3.2Antarmuka Form Fitur Wajah
Pada form fitur wajah terdapat antarmuka yang bertujuan untuk melakukan ekstraksi fitur wajah menggunakan K-Means clustering menggunakan citra wajah
Deteksi Wajah (Skin Color Detection – K-Means Clustering) Fitur Wajah
yang dipilih oleh pengguna. Proses ekstraksi fitur wajah menggunakan jumlah cluster yang di-input oleh pengguna untuk membentuk cluster pada K-Means clustering.
Gambar 3.10 Rancangan Form Fitur Wajah
Komponen yang dipakai untuk membangun antar muka form fitur wajah pada (Gambar 3.10) adalah sebagai berikut :
1. PictureBox1 : control yang berfungsi untuk menampilkan gambar yang dibuka oleh pengguna.
2. Button “Open” : button yang berfungsi untuk membuka dialog untuk memilih gambar.
3. Button “Scan” : button yang berfungsi untuk memulai proses
pengelompokkan fitur wajah.
PictureBox1
TextLabel
RichTextBox1 Fitur Wajah
Open Scan Save Exit
4. Button “Save” : button yang berfungsi untuk menyimpan informasi fitur wajah.
5. Button “Exit” : button yang berfungsi untuk keluar dari antarmuka.
6. Text “TextLabel” : control yang berfungsi untuk menampung jumlah cluster yang digunakan.
7. Richtextbox “Richtextbox1” : control yang berfungsi untuk menampung informasi proses.
8. Tabel “Tabel1” : control yang berfungsi untuk menampilkan hasil cluster dari K-Means clustering.
3.4.3.3Antarmuka Form Deteksi
Gambar 3.11 Rancangan Form Deteksi
Komponen yang dipakai untuk membangun antar muka form deteksi pada (Gambar 3.11) adalah sebagai berikut :
PictureBox1
TextLabel
RichTextBox1 Deteksi
Open Deteksi Exit
1. PictureBox1 : control yang berfungsi untuk menampilkan gambar yang dibuka oleh pengguna.
2. PictureBox2 : control yang berfungsi untuk menampilkan gambar hasil deteksi wajah.
3. Button “Open” : button yang berfungsi untuk membuka dialog untuk memilih gambar.
4. Button “Deteksi” : button yang berfungsi untuk memulai proses deteksi.
5. Button “Exit” : button yang berfungsi untuk keluar dari antarmuka.
6. Text “TextLabel” : control yang berfungsi untuk menampung jumlah cluster yang digunakan.
7. Richtextbox “Richtextbox1” : control yang berfungsi untuk menampilkan informasi proses yang dilakukan sistem.
3.4.3.4Antarmuka Form About
Gambar 3.12 Rancangan Form About
Komponen yang dipakai untuk membangun antar muka form about pada (Gambar 3.12) adalah sebagai berikut :
1. PictureBox1 : control yang berfungsi untuk menampilkan gambar wajah penulis.
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi
Sesuai dengan analisa dan perancangan seperti yang telah dijabarkan pada bab
sebelumnya yaitu bab analisis dan perancangan, maka pada bagian ini akan
dipaparkan hasil dari aplikasi yang dibangun menggunakan perancangan yang
telah dilakukan pada bab sebelumnya. Pada bab ini pembahasan akan dilakukan
terhadap hasil dari sistem yang dibangun, fungsional sistem dan analisis terhadap
kinerja sistem berdasarkan hasil output yang dihasilkan oleh sistem.
4.1.1. Implementasi Sistem
Topik utama pada tugas akhir ini adalah merancang sistem yang mampu
mendeteksi wajah pada citra digital. Area wajah pertama sekali dicari dengan
proses pembacaan warna kulit menggunakan skin color detection yang kemudian
wajah dideteksi menggunakan K-Means clustering.
Sistem dibangun menggunakan MS Visual Basic 2010 sehingga dalam proses
pembangunan sistem, penulis menggunakan beberapa perangkat dan alat bantu
sebagai berikut.
1. Komputer Pentium D 3.0 GHz
2. MemoriUtama 1 GB
3. HDD 350 GB
4. OS Windows 7.
5. MS Visual Studio 2010.
Pada penggunaanya sistem yang dibangun tidak membutuhkan spesifikasi
khusus, namun yang perlu diperhatikan adalah sistem membutuhkan memori yang
besar untuk memproses citra yang berukuran besar.
4.1.2. Fungsional Sistem
Secara garis besar sistem memiliki dua fungsi utama, yaitu fungsi fitur wajah atau dan
fungsi deteksi wajah. Masing–masing fungsi dijalankan pada halaman yang terpisah
sehingga memudahkan dalam penggunaan dari sistem yang dikembangkan. Berikut
penjabaran dari fungsional sistem secara umum.
1. Fitur Wajah
Fitur Wajah merupakan fungsi yang dimiliki oleh sistem untuk melakukan
pembacaan dan pendataan fitur wajah pada citra digital. Informasi fitur wajah
diperoleh dari cluster yang diperoleh menggunakan metode K-Means
clustering.
2. Deteksi Wajah
Fungsi deteksi wajah merupakan fungsi yang dimiliki oleh sistem yang
dikembangkan untuk melakukan deteksi wajah pada citra uji. Area wajah di
ekstraksi menggunakan metode skin color detection, setiap area wajah
kemudian dibandingkan fitur cluster nya dengan fitur cluster dari database
4.1.3. Implementasi Fungsi Fitur Wajah
Fungsi fitur wajah merupakan komponen sistem yang melakukan ekstraksi fitur wajah
dari citra wajah. Pengguna memilih citra digital yang akan digunakan sebagai citra
wajah yang kemudian akan digunakan oleh sistem untuk mengekstraksi fitur wajah
menggunakan K-Means clustering. Antarmuka fitur wajah dapat dilihat pada gambar
4.2 sebagai berikut.
Gambar 4.2 Antarmuka Fitur Wajah
Fungsi fitur wajah seperti yang terlihat pada gambar 4.2 menerima input citra
wajah dan kemudian mengkstraksi fitur wajah terhadap citra tersebut. Jumlah cluster
yang akan dibentuk diperoleh dari input pengguna. Sistem kemudian akan membentuk
jumlah cluster sesuai dengan input pengguna dan melakukan pengelompokkan piksel
wajah kedalam cluster. Informasi cluster kemudian diberikan label nama dan
disimpan kedalam database.
Berikut contoh analisis metode K-Means clustering yang digunakan pada penelitian
ini :
Pembentukan Cluster Awal :
Centroid Awal Cluster Ke - 2 = (251,27,78)
Centroid Awal Cluster Ke - 3 = (204,113,57)
Perhitungan Jarak Piksel (95,3,50)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((95-196) + (3-103) + (50-42))
Jarak = 142.355189578744
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((95-251) + (3-27) + (50-78))
Jarak = 160.299719276111
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((95-204) + (3-113) + (50-57))
Jarak = 155.016128193166
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (81,3,43)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((81-196) + (3-103) + (43-42))
Jarak = 152.400787399541
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((81-251) + (3-27) + (43-78))
Jarak = 175.217008306842
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((81-204) + (3-113) + (43-57))
Jarak = 165.604951616792
Perhitungan Jarak Piksel (63,6,39)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((63-196) + (6-103) + (39-42))
Jarak = 164.642035944652
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((63-251) + (6-27) + (39-78))
Jarak = 193.147611944854
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((63-204) + (6-113) + (39-57))
Jarak = 177.915710379944
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (36,0,23)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((36-196) + (0-103) + (23-42))
Jarak = 191.232842367623
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((36-251) + (0-27) + (23-78))
Jarak = 223.559835390886
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((36-204) + (0-113) + (23-57))
Jarak = 205.302216256912
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (22,0,17)
Jarak Ke Cluster Ke - 1
Jarak = 203.740030430939
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((22-251) + (0-27) + (17-78))
Jarak = 238.518343110126
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((22-204) + (0-113) + (17-57))
Jarak = 217.928887483968
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (20,2,16)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((20-196) + (2-103) + (16-42))
Jarak = 204.580057679139
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((20-251) + (2-27) + (16-78))
Jarak = 240.478689284519
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((20-204) + (2-113) + (16-57))
Jarak = 218.764713790867
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (15,0,9)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((15-196) + (0-103) + (9-42))
Jarak = 210.853029383028
Jarak = Sqrt((15-251) + (0-27) + (9-78))
Jarak = 247.358040095728
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((15-204) + (0-113) + (9-57))
Jarak = 225.375242651006
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (27,7,19)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((27-196) + (7-103) + (19-42))
Jarak = 195.719186591402
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((27-251) + (7-27) + (19-78))
Jarak = 232.501612897631
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((27-204) + (7-113) + (19-57))
Jarak = 209.783221445377
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (26,11,32)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((26-196) + (11-103) + (32-42))
Jarak = 193.556193390963
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((26-251) + (11-27) + (32-78))
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((26-204) + (11-113) + (32-57))
Jarak = 206.671236508615
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (26,13,30)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((26-196) + (13-103) + (30-42))
Jarak = 192.727787306346
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((26-251) + (13-27) + (30-78))
Jarak = 230.488611432322
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((26-204) + (13-113) + (30-57))
Jarak = 205.944167191013
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (22,14,25)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((22-196) + (14-103) + (25-42))
Jarak = 196.178490156286
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((22-251) + (14-27) + (25-78))
Jarak = 235.412404091203
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((22-204) + (14-113) + (25-57))
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (31,25,29)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((31-196) + (25-103) + (29-42))
Jarak = 182.969942886803
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((31-251) + (25-27) + (29-78))
Jarak = 225.399645075142
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((31-204) + (25-113) + (29-57))
Jarak = 196.104563944851
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (28,17,21)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((28-196) + (17-103) + (21-42))
Jarak = 189.897340687014
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((28-251) + (17-27) + (21-78))
Jarak = 230.386631556607
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((28-204) + (17-113) + (21-57))
Jarak = 203.686032903584
Perhitungan Jarak Piksel (25,8,14)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((25-196) + (8-103) + (14-42))
Jarak = 197.610728453695
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((25-251) + (8-27) + (14-78))
Jarak = 235.654407979142
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((25-204) + (8-113) + (14-57))
Jarak = 211.931592736902
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (40,12,24)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((40-196) + (12-103) + (24-42))
Jarak = 181.496556441162
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((40-251) + (12-27) + (24-78))
Jarak = 218.316284321624
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((40-204) + (12-113) + (24-57))
Jarak = 195.412384459123
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (38,4,20)
Jarak Ke Cluster Ke - 1
Jarak = 187.747170418092
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((38-251) + (4-27) + (20-78))
Jarak = 221.950444919581
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((38-204) + (4-113) + (20-57))
Jarak = 202.004950434389
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (93,50,69)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((93-196) + (50-103) + (69-42))
Jarak = 118.94116192471
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((93-251) + (50-27) + (69-78))
Jarak = 159.918729359634
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((93-204) + (50-113) + (69-57))
Jarak = 128.195163715329
Cluster Terpilih : Cluster Ke - 1
Perhitungan Jarak Piksel (165,110,133)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((165-196) + (110-103) + (133-42))
Jarak = 96.3898334888073
Jarak = Sqrt((165-251) + (110-27) + (133-78))
Jarak = 131.567473183914
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((165-204) + (110-113) + (133-57))
Jarak = 85.4751425854324
Cluster Terpilih : Cluster Ke - 3
Perhitungan Jarak Piksel (216,147,176)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((216-196) + (147-103) + (176-42))
Jarak = 142.449991224991
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((216-251) + (147-27) + (176-78))
Jarak = 158.836393814516
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((216-204) + (147-113) + (176-57))
Jarak = 124.342269562687
Cluster Terpilih : Cluster Ke - 3
Perhitungan Jarak Piksel (193,117,153)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((193-196) + (117-103) + (153-42))
Jarak = 111.919614009342
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((193-251) + (117-27) + (153-78))
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((193-204) + (117-113) + (153-57))
Jarak = 96.7109094156394
Cluster Terpilih : Cluster Ke - 3
4.1.4. Implementasi Fungsi Deteksi Wajah
Fungsi deteksi wajah merupakan komponen sistem yang melakukan deteksi wajah
pada citra digital. Proses deteksi dilakukan dengan ekstraksi warna kulit pada citra
digital. Area warna kulit kemudian akan dibandingkan dengan fitur wajah yang telah
diperoleh dari fungsi fitur wajah. Antarmuka deteksi wajah dapat dilihat pada gambar
4.3 sebagai berikut.
Gambar 4.3 Antarmuka Deteksi
Antarmuka deteksi seperti yang terlihat pada gambar 4.3 menerima input citra
dasarnya menggunakan kombinasi operasi skin color detection dan operasi K-Means
clustering. Operasi skin color detection secara keseluruhan dapat dijabarkan sebagai
berikut.
Diketahui sebuah potongan gambar dengan citra sebagai berikut :
Dengan matriks citra ruang warna RGB sebagai berikut :
Tabel 4.1 Nilai Piksel Contoh Warna Kulit
(233,197,169) (238,210,189) (255,255,255)
(233,196,170) (235,205,179) (246,232,221)
(243,224,209) (232,197,169) (233,196,169)
maka akan di-identifikasikan apakah piksel tengah P(1,1) tersebut merupakan warna
kulit atau bukan sebagai berikut :
����(�) =�(0,0) +�(0,1) + … +�(2,2) 9
=27 + 26 + 0 + 25 + 28 + 26 + 26 + 27 + 25
9 = 23.33
���(�)
= ��(0,0)− ����(�)�
2
+ ��(0,1)− ����(�)�2+ … + ��(2,2)− ����(�)�2 9
������= ��(0,0) +��(0,1) + … +��(2,2) 9
=111 + 115 + 128 + 111 + 112 + 121 + 119 + 111 + 111 9
= 115.44
���(��)
=(��(0,0)− ������)
2+ (��(0,1)− ������)2+ … + (��(2,2)− ������)2
9 = 32.47
������= ��(0,0) +��(0,1) + … +��(2,2) 9
=145 + 142 + 128 + 146 + 143 + 135 + 137 + 145 + 146 9
= 140.78
���(��)
=(��(0,0)− ������)
2+ (��(0,1)− ������)2+ … + (��(2,2)− ������)2
9 = 34.17
Mengikuti aturan skin color detection :
1. H(1,1) yaitu 28 diketahui lebih besar dari (Mean(H)-Var(H)) dan lebih kecil
dibandingkan dengan (Mean(H) + Var(H)).
2. Cb(1,1) yaitu 112 diketahui lebih besar dari (MeanCb-VarCb) dan lebih kecil
dibandingkan dengan (MeanCb + VarCb).
3. Cr(1,1) yaitu 143 diketahui lebih besar dari (MeanCr-VarCr) dan lebih kecil
dibandingkan dengan (MeanCr + VarCr).
Dikarenakan ketiga aturan dipenuhi oleh Piksel(1,1) maka piksel tersebut dapat
4.2. Pengujian
Pada sub bab ini akan dilakukan pengujian pada sistem yang dibangun.
Pengujian dilakukan dengan melakukan deteksi pada beberapa wajah pada citra
digital. Pengujian dilakukan dengan tujuan untuk memperoleh validitas dari operasi
sistem. Pengujian dilakukan menggunakan citra uji yang dapat dilihat pada gambar
4.4 berikut.
Gambar 4.4 Citra Uji
Pengujian dilakukan dengan menggunakan citra wajah yang telah diekstraksi
fitur nya menggunakan K-Means clustering :
Gambar 4.6 Pengujian Fitur Wajah
Seperti yang terlihat pada gambar 4.6, sistem dapat melakukan ekstraksi fitur
dari citra wajah menggunakan K-Means clustering. Cluster yang akan dibentuk dari
fitur wajah dari citra yang diberikan sebanyak lima buah cluster. Seperti yang dapat
dilihat pada gambar terbentuk lima buah cluster dengan masing – masing centroid dan
populasinya.
Setelah proses ekstraksi fitur wajah selesai, selanjutnya akan dilakukan proses
deteksi wajah pada citra uji. Citra uji yang digunakan merupakan citra uji yang
terdapat wajah dari citra wajah yang digunakan dan wajah – wajah tambahan lainnya
sehingga dapat diperoleh akurasi dan kelemahan dari kombinasi metode yang
digunakan. Proses ekstraksi fitur wajah seperti yang terlihat pada gambar 4.6 dapat
dijabarkan sebagai berikut :
Pembentukan Cluster Awal :
Centroid Awal Cluster Ke - 1 = (196,103,42)
Centroid Awal Cluster Ke - 2 = (251,27,78)
Centroid Awal Cluster Ke - 4 = (2,195,7)
Centroid Awal Cluster Ke - 5 = (1,130,97)
Perhitungan Jarak Piksel (13,15,12)
Jarak Ke Cluster Ke - 1
Jarak = Sqrt((13-196) + (15-103) + (12-42))
Jarak = 205.263245614016
Jarak Ke Cluster Ke - 2
Jarak = Sqrt((13-251) + (15-27) + (12-78))
Jarak = 247.273128341921
Jarak Ke Cluster Ke - 3
Jarak = Sqrt((13-204) + (15-113) + (12-57))
Jarak = 219.339918847436
Jarak Ke Cluster Ke - 4
Jarak = Sqrt((13-2) + (15-195) + (12-7))
Jarak = 180.405099706189
Jarak Ke Cluster Ke - 5
Jarak = Sqrt((13-1) + (15-130) + (12-97))
Cluster Terpilih : Cluster Ke - 5
Proses perhitungan jarak tiap piksel dengan tiap centroid dari cluster terus dilakukan
untuk piksel – piksel selanjutnya, yang mana untuk putaran pertama ini diperoleh
centroid baru sebagai berikut :
Centroid Baru :
Centroid Baru Cluster Ke - 1 : (106,90,78)
Centroid Baru Cluster Ke - 2 : (-1,-1,-1)
Centroid Baru Cluster Ke - 3 : (203,186,170)
Centroid Baru Cluster Ke - 4 : (-1,-1,-1)
Centroid Baru Cluster Ke - 5 : (56,46,32)
Centroid Ke - 1 memiliki perubahan centroid, melakukan pengelompokan ulang..
Proses pengelompokkan terus dilakukan berulang sampai Centroid tidak lagi
mengalami perubahan sehingga menghasilkan centroid hasil sebagai berikut :
Centroid Akhir :
Centroid Cluster Ke - 1 : (92,76,64)
Centroid Cluster Ke - 2 : (26,20,7)
Centroid Cluster Ke - 3 : (203,186,170)
Centroid Cluster Ke - 4 : (21,16,18)
Pengujian kemudian dilanjutkan dengan melakukan deteksi wajah pada citra uji.
Proses deteksi wajah pada citra uji seperti yang terlihat pada gambar 4.7 dilakukan
dengan tahapan sebagai berikut :
1. Mencari area warna kulit pada citra digital dan membentuk area – area tersebut
menjadi blok – blok calon wajah. pada proses pengujian diperoleh enam blok
warna kulit yang diperoleh.
2. Membaca cluster dari tabel wajah yang akan dideteksi, pada pengujian ini akan
menggunakan informasi cluster wajah raisa dengan informasi cluster sebagai
berikut :
Cluster Ke - 1 : (92,76,64), Populasi = 254 Piksel
Cluster Ke - 2 : (26,20,7), Populasi = 127 Piksel
Cluster Ke - 3 : (203,186,170), Populasi = 519 Piksel
Cluster Ke - 4 : (21,16,18), Populasi = 162 Piksel
Cluster Ke - 5 : (32,27,20), Populasi = 116 Piksel
3. Proses selanjutnya adalah melakukan pengelompokkan piksel dari enam area
wajah menggunakan centroid cluster yang diperoleh dari wajah raisa yang
kemudian menghitung tingkat kemiripan masing – masing area wajah dengan
wajah raisa :
Cluster Area Wajah Ke - 1
Populasi Cluster Ke - 1 : 445
Populasi Cluster Ke - 2 : 7
Populasi Cluster Ke - 3 : 65
Populasi Cluster Ke - 4 : 0
Populasi Cluster Ke - 5 : 59
Kesamaan Cluster Ke - 1 : 1
Kesamaan Cluster Ke - 2 : 0.0551181102362205
Kesamaan Cluster Ke - 4 : 0
Kesamaan Cluster Ke - 5 : 0.508620689655172
Persentase Kemiripan : (1.68897964767559 / 5) x 100% = 34
Cluster Area Wajah Ke - 2
Populasi Cluster Ke - 1 : 515
Populasi Cluster Ke - 2 : 93
Populasi Cluster Ke - 3 : 326
Populasi Cluster Ke - 4 : 90
Populasi Cluster Ke - 5 : 176
Kesamaan Cluster Ke - 1 : 1
Kesamaan Cluster Ke - 2 : 0.732283464566929
Kesamaan Cluster Ke - 3 : 0.628131021194605
Kesamaan Cluster Ke - 4 : 0.555555555555556
Kesamaan Cluster Ke - 5 : 1
Persentase Kemiripan : (3.91597004131709 / 5) x 100% = 78
Cluster Area Wajah Ke - 3
Populasi Cluster Ke - 1 : 549
Populasi Cluster Ke - 2 : 149
Populasi Cluster Ke - 3 : 3146
Populasi Cluster Ke - 4 : 344
Populasi Cluster Ke - 5 : 267
Kesamaan Cluster Ke - 1 : 1
Kesamaan Cluster Ke - 2 : 1
Kesamaan Cluster Ke - 3 : 1
Kesamaan Cluster Ke - 4 : 1
Persentase Kemiripan : (5 / 5) x 100% = 100
Cluster Area Wajah Ke - 4
Populasi Cluster Ke - 1 : 1908
Populasi Cluster Ke - 2 : 82
Populasi Cluster Ke - 3 : 437
Populasi Cluster Ke - 4 : 179
Populasi Cluster Ke - 5 : 94
Kesamaan Cluster Ke - 1 : 1
Kesamaan Cluster Ke - 2 : 0.645669291338583
Kesamaan Cluster Ke - 3 : 0.842003853564547
Kesamaan Cluster Ke - 4 : 1
Kesamaan Cluster Ke - 5 : 0.810344827586207
Persentase Kemiripan : (4.29801797248934 / 5) x 100% = 86
Cluster Area Wajah Ke - 5
Populasi Cluster Ke - 1 : 543
Populasi Cluster Ke - 2 : 14
Populasi Cluster Ke - 3 : 60
Populasi Cluster Ke - 4 : 3
Populasi Cluster Ke - 5 : 28
Kesamaan Cluster Ke - 1 : 1
Kesamaan Cluster Ke - 2 : 0.110236220472441
Kesamaan Cluster Ke - 3 : 0.115606936416185
Kesamaan Cluster Ke - 4 : 0.0185185185185185
Kesamaan Cluster Ke - 5 : 0.241379310344828
Persentase Kemiripan : (1.48574098575197 / 5) x 100% = 30
Populasi Cluster Ke - 1 : 54
Populasi Cluster Ke - 2 : 20
Populasi Cluster Ke - 3 : 42
Populasi Cluster Ke - 4 : 576
Populasi Cluster Ke - 5 : 11
Kesamaan Cluster Ke - 1 : 0.21259842519685
Kesamaan Cluster Ke - 2 : 0.15748031496063
Kesamaan Cluster Ke - 3 : 0.0809248554913295
Kesamaan Cluster Ke - 4 : 1
Kesamaan Cluster Ke - 5 : 0.0948275862068965
Persentase Kemiripan : (1.54583118185571 / 5) x 100% = 31
Tingkat kesamaan cluster diperoleh dari jumlah selisih populasi antara cluster area
wajah dengan cluster wajah raisa, dimana jika jumlah populasi cluster area wajah
lebih besar atau sama dengan cluster wajah raisa maka tingkat kesamaan akan
diberikan nilai 1, jika kurang maka tingkat kesamaan diperoleh dari jumlah populasi
cluster area wajah dibagi dengan jumlah populasi cluster wajah raisa. Untuk
presentase kemiripan diperoleh dari penjumlah tingkat kemiripan dibagi dengan
Gambar 4.7 Pengujian Deteksi
Area wajah yang di-identifikasi sebagai wajah pada penelitian ini di-ambil
dengan memilih tingkat kemiripan diatas 80%, sehingga berdasarkan pengujian dan
perhitungan diatas diperoleh dua area wajah yang memiliki tingkat kemiripan cukup
baik dengan wajah raisa.
Seperti yang terlihat pada gambar 4.7, sistem dapat melakukan deteksi wajah
citra yang digunakan dengan baik. Namun terdapat kesalahan dimana wajah – wajah
yang lain juga di-identifikasi dengan nama yang sama yang disebabkan memiliki fitur
cluster yang sama.
Pengujian dilanjutkan pada citra wajah yang lain yang mana menggunakan citra wajah
jenderal seperti yang terlihat pada gambar 4.8 berikut :
Proses identifikasi menggunakan citra uji yang mana terdapat dua wajah yang dapat
di-identifikasi dengan baik oleh sistem seperti yang terlihat pada gambar 4.9 berikut :
Gambar 4.9 Pengujian Lanjutan
Pengujian diatas menunjukkan terdeteksinya wajah jenderal pada dua area wajah yang
mana salah satu area wajah menunjukkan tingkat akurasi atau kemiripan yang cukup
baik yaitu 84%, sedangkan area wajah yang lainnya memiliki tingkat kemiripan 79%.
Hal ini menunjukkan bahwa k-means clustering dapat mengidentifikasi dengan baik
wajah jenderal yang terdapat pada citra namun, area wajah lain yang memiliki
informasi cluster yang cukup mirip juga memiliki tingkat kemiripan yang tinggi yaitu
79% sehingga menimbulkan kerancuan dan menjadi kelemahan tersendiri dari
k-means clustering.
4.3. Pembahasan Pengujian
Pengujian yang telah dilakukan pada sub – bab sebelumnya menunjukkan
bahwa metode skin color detection dapat dikombinasikan dengan metode K-Means
dimana area deteksi wajah yang dilakukan pada citra menjadi jauh lebih kecil
dibandingkan tanpa menggunakan skin color detection.
Pengujian yang dilakukan menunjukkan jumlah cluster yang digunakan
mempengaruhi akurasi dari proses deteksi dimana jumlah cluster yang kecil
menyebabkan kesalahan identifikasi. Penggunaan jumlah cluster yang besar
menyebabkan muncul nya cluster yang tidak memiliki populasi sehingga bersifat
pemborosan.
Kesederhanaan perbandingan kemiripan menggunakan k-means clustering
juga menyebabkan tingkat kesalahan yang tinggi, walaupun k-means clustering
mampu mendeteksi wajah individu pada citra uji namun juga memberikan informasi
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil analisis, implementasi dan pengujian pada bab sebelumnya, maka
diperoleh kesimpulan sebagai berikut
1. Akurasi identifikasi keberadaan wajah pada citra digital menggunakan metode
skin color detection secara umum cukup baik. Hal ini ditunjukkan dari hasil
ekstraksi warna kulit dari sistem yang dikembangkan. Namun metode skin color
detection sangat sensitif terhadap pencahayaan dan warna benda lain yang mirip
dengan warna kulit sehingga tidak terlepas dari kesalahan deteksi keberadaan
wajah pada citra digital.
2. Kombinasi dari metode skin color detection dan kmeans clustering memberikan
hasil yang cukup baik dibandingkan dengan penggunaan secara sendiri sendiri.
Kombinasi dari pengecilan area deteksi menggunakan skin color detection dan
komparasi fitur wajah memberikan hasil yang cukup baik namun masih memiliki
kelemahan.
3. Penggabungan metode skin color detection dan kmeans clustering memberikan
akurasi yang baik namun memberikan waktu komputasi tambahan dikarenakan
jumlah operasi yang meningkat dibandingkan dengan penggunaan masing –
5.2 Saran
Berikut ini adalah saran-saran untuk pengembangan dan perbaikan penelitian ini :
1. Skin Color Detection sangat sensitif terhadap pencahayaan dan objek-objek lain
yang memiliki warna sama dengan warna kulit. Untuk itu disarankan diperlukan
mekanisme tambahan agar deteksi keberadaan wajah menjadi lebih akurat.
2. Kmeans Clustering memiliki akurasi yang sangat bergantung pada jumlah cluster
yang digunakan sehingga disarankan pada penelitian yang akan datang dilakukan
penelitian penggunaan jumlah cluster yang dapat menyesuaikan terhadap citra
BAB 2
LANDASAN TEORI
2.1Citra Digital
2.1.1 Pengertian Citra Digital
Secara umum, citra digital merupakan gambar 2 dimensi yang disusun oleh data
digital dalam bentuk sebuah larik (array) yang berisi nilai real maupun komplek yang
direpresentasikan dengan deretan bit tertentu (Putra, 2010). Suatu citra dapat
didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y
adalah koordinat spasial, dan amplitude f di titik koordinat (x,y) dinamakan intensitas
atau tingkat keabuan dari citra pada titik tersebut.
Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel (pixel atau
“picture element”). Setiap piksel digambarkan sebagai satu kotak kecil. Setiap piksel
mempunyai koordinat posisi. Sistem koordinat yang dipakai untuk menyatakan citra
digital ditunjukkan pada (Gambar 2.1)
Gambar 2.1 Sistem koordinat citra berukuran MxN
Dengan sistem koordinat yang mengikuti asas pemindaian pada layar TV standar
• x menyatakan posisi kolom; • y menyatakan posisi baris;
• piksel pojok kiri-atas mempunyai koordinat (0, 0) dan piksel pada pojok kanan-bawah mempunyai koordinat (N-1, M-1).
2.1.2 Jenis Citra
Ada tiga jenis citra yang digunakan dalam pemroresan citra, ketiga jenis citra tersebut
yaitu :
1. Citra Biner. Citra dengan setiap piksel hanya dinyatakan dengan sebuah nilai
dari duai kemungkinan (yaitu nilai 0 dan 1). Nilai 0 menyatakan hitam dan
nilai 1 menyatakan putih (Kadir, 2013)
2. Citra Berskala Keabuan (grayscale). Citra jenis ini menangani gradasi warna
hitam dan putih, yang tentu saja menghasilkan warna abu-abu. Dalam hal ini
intensitas berkisar antara 0 sampai dengan 255. Nilai 0 menyatakan hitam dan
nilai 255 menyatakan putih (Kadir, 2013)
3. Citra Berwarna (citra RGB). Merupakan jenis citra yang menyajikan warna
dalam bentuk komponen R (merah), G (hijau), B (biru). Setiap komponen
warna menggunakan delapan bit (nilainya berkisar antara 0 sampai dengan
255). Dengan demikian, kemungkinan warna yang dapat disajikan mencapai
255 x 255 x 255 atau 16.581.375 warna (Kadir, 2013).
Pemetaan warna dalam ruang tiga dimensi.
Gambar 2.2 Warna RGB dalam ruang berdimensi tiga
2.2Pengolahan Citra Digital
Pengolahan citra adalah sebuah disiplin ilmu yang mempelajari hal-hal yang berkaitan
dengan perbaikan kualitas gambar (peningkatan kontras, transformasi warna, restorasi
citra), transformasi gambar (rotasi, translasi, skala, transformasi geometrik), melakukan
pemilihan citra ciri (feature images) yang optimal untuk tujuan analisis, melakukan proses
penarikan informasi atau deskripsi objek atau pengenalan objek yang terkandung pada
citra, melakukan kompresi atau reduksi data untuk tujuan penyimpanan data, transmisi
data, dan waktu proses data. Input dari pengolahan citra adalah citra, sedangkan
output-nya adalah citra hasil pengolahan (Sutoyo, 2009).
1. Memperbaiki kualitas gambar dilihat dari aspek radiometric (peningkatan
kontras, tranformasi warna, restorasi citra) dan dari aspek geometric (rotasi,
translasi, skala, transformasi geometrik).
2. Melakukan proses penarikan informasi atau deskripsi objek atau pengenalan
objek yang terkandung pada citra.
3. Melakukan kompresi atau reduksi data untuk tujuan penyimpanan data,
transmisi data, dan waktu proses data (Sutoyo, 2009).
2.3 Ruang Warna HSV
Untuk menyediakan representasi warna bagi antar-muka pengguna (user
interface), biasa digunakan ruang warna HSL. HSL sendiri merupakan kependekan
dari Hue, Saturation, Lightness / Luminancy. Hue atau corak warna merupakan
sensasi penglihatan manusia berdasarkan pada kemiripan suatu daerah tampak
seperti daerah yang lain sesuai dengan warna yang diterimanya, merah, kuning, hijau
dan biru, atau kombinasi keduanya.
Saturation adalah kekayaan warna pada suatu daerah sesuai dengan
proporsi gelap-terangnya. Kita bisa menemukan warna biru langit sampai dengan
biru tua dengan mengubah nilai dari komponen ini. Sedangkan Luminancy atau
Lightness merupakan persepsi suatu daerah warna yang tampak ketika menerima
Alternatif lain dari HSL adalah HSV. Pada ruang warna HSV Luminancy
digantikan dengan Value. HSV dapat divisualisasikan dengan sebuah poligon seperti
pada gambar 2-10. Hue seperti pada HSL merupakan sudut warna yang melingkari
poligon, jadi misalnya jika untuk warna merah hue = 0 warna hijau = 120o dan untuk
warna biru nilai hue-nya 240o maka hue untuk Saturation sama seperti pada HSL,
merupakan jarak terhadap sumbu tegak. Dan value merupakan sumbu tegak yang
menghubungkan puncak dan dasar poligon.
Gambar 2.3 Ruang Warna HSV
(Sumber : Putra, 2010)
Proses konversi ruang warna RGB ke HSV dapat dilihat pada persamaan berikut :
�= ����( 0.5∗(2∗ � − � − �)
�(� − �)2+ (� − �)2)
�= ���(�,�,�)− ���(�,�,�)
���(�,�,�)
� = ���(�,�,�) 255
Dimana :
H = Nilai kanal warna Hue
S = Nilai kanal warna Saturasi
……… (1)
……… (2)
V = Nilai kanal warna Value
R = Nilai kanal warna Red
G = Nilai kanal warna Green
B = Nilai kanal warna Blue
2.4 Ruang Warna YCbCr
YCbCr merupakan standar internasional bagi pengkodean digital gambar
televisi yang didefinisikan di CCIR Recommendation 601. Y merupakan komponen
luminance, Cb dan Cr adalah komponen chrominance. Pada monitor monokrom nilai
luminance digunakan untuk merepresentasikan warna RGB, secara psikologis ia
mewakili intensitas sebuah warna RGB yang diterima oleh mata. Chrominance
merepresentasikan corak warna dan saturasi (saturation). Nilai komponen ini juga
mengindikasikan banyaknya komponen warna biru dan merah pada warna.
Retina mata mempunyai dua macam sel yang berfungsi sebagai analis visual,
yaitu : Sel yang digunakan untuk penglihatan di waktu malam dan sel yang dipakai
untuk penglihatan di siang hari. Jenis yang pertama hanya menerima corak keabuan
mulai dari warna putih terang sampai dengan hitam pekat. Dan jenis kedua menerima
corak warna. Jika sebuah warna RGB diberikan, sel jenis yang pertama mendeteksi
tingkat keabuan (gray level) yang serupa dengan nilai luminance-nya, sedangkan sel
jenis kedua yang bertanggungjawab terhadap penerimaan corak warna, mendeteksi
nilai yang sesuai dengan nilai chrominance-nya.
YCbCr (256 level) dapat diperoleh dari RGB 8-bit dengan menggunakan
rumus berikut :
Y = 0.299 R + 0.587 G + 0.114 B
Cb = - 0.1687R - 0.3313G + 0.5B – 128
Cr = 0.5R – 0.4187G – 0.0813B + 128
Sedangkan untuk konversi YCbCr ke RGB dapat dilakukan dengan rumus
berikut (Hamilton,1992) :
G = Y – 0.34414(Cb-128) – 0.71414(Cr-128)
B = Y – 1.772(Cb-128)
2.5 Skin Color
Skin Color merupakan warna yang dihasilkan oleh kombinasi dari melanin,
hemoglobin, karoten, dan bilirubin (Osman, 2012). Jumlah melanin mempengaruhi
kegelapan dari warna kulit. Warna kulit tergantung pada 3 (tiga) komponen menurut
derajat yang bervariasi. Jaringan memiliki warna inheren kekuningan akibat
kandungan karoten. Adanya Hb beroksigen dalamdasar kapiler dari dermis
memberinya warna kemerahan. Dan warna kecoklatan sampai kehitaman adalah
akibat jumlah pigmen melanin yang bervariasi. Dari ketiga substansi berwarna ini
hanya melanin yang dihasilkan di kulit. Melanin adalah produk dari melanosit.
Gambar 2.4 Sebaran Warna Kulit Di Dunia
2.6 Skin Color Detection
Skin Color Detection merupakan sebuah metode yang digunakan untuk
mengklasifikasikan objek pada citra berdasarkan ciri dari warna kulit (Al-Mohair et
all, 2013). Ruang warna RGB di kuantisasi menjadi beberapa kelompok yang
kemudian membentuk histogram, kuantisasi dibentuk berdasarkan rentang warna kulit
pada manusia. Kelompok – kelompok warna pada histogram yang dibentuk kemudian
menjadi table acuan atau lookup table untuk mendeteksi warna kulit pada citra yang
akan diuji.
Metode skin color detection sangat bergantung pada histogram warna kulit
yang terbentuk. Semakin baik histogram yang dibentuk maka semakin baik pula
proses deteksi warna kulit pada citra. Histogram yang terlalu luas juga memiliki
dampak yang tidak baik pada proses identifikasi karena semakin besar kemungkinan
untuk ikutnya objek-objek lain yang bukan kulit manusia ikut teridentifikasi.
Gambar 2.5 Ekstraksi Warna Kulit
Skin color detection menggunakan fitur statistik dalam menentukan
keberadaan sebuah warna kulit pada citra yang diuji. Pada tahap awal ruang warna
piksel RGB akan dikonversi kedalam ruang warna HSV dan YCbCr yang mana
merupakan ruang warna yang paling mirip dengan visi penglihatan manusia. Proses
kemudian dilanjutkan dengan mengekstraksi fitur warna kulit dengan mencari nilai
mean dan variance pada setiap kanal warna yang dapat dilihat pada persamaan berikut
(Azad, 2013) :
����(�) = 1
��� � � �(�,�)
1≤�≤� 1≤�≤�
Dimana :
H = Kanal Warna
n dan m = dimensi ukuran citra
���(�) = 1
��� � � (�(�,�)− ����(�))2
1≤�≤� 1≤�≤�
Dimana :
H = Kanal Warna
n dan m = dimensi ukuran citra
Berdasarkan komputasi mean dan variance tersebut maka dapat diperoleh
informasi statistic yang dapat dirumuskan sebagai berikut :
��= (�����,������,������,����,�����,�����)
………… (4)
……… (5)
Proses deteksi keberadaan kulit wajah pada citra dapat dilakukan dengan melakukan
tahapan fungsi berikut :
1) �∀�,�: ����������.������(����)�������������.������(�������)��� 2) �������(�)− ���(�)� ≤ �(�,�)≤ ����(�) +���(�)) ��������� 3) �� (����(��)− ���(��))≤ ��(�,�)≤
����(��) +���(��)) ��������� 4) �������(��)− ���(��)� ≤ ��(�,�)≤
����(��) +���(��)) �������ℎ��
5) ��������������.�����(�,�)����������������
Keterangan :
1) Untuk setiap elemen I,J dimana I terdiri dari elemen baris dari gambar dan J
terdiri dari elemen kolom dari gambar.
2) Jika �����(�)− ���(�)� ≤ �(�,�)≤ ����(�) +���(�)) adalah benar dan
3) Jika (����(��)− ���(��))≤ ��(�,�)≤ ����(��) +���(��)) adalah benar dan
4) Jika �����(��)− ���(��)� ≤ �(�,�)≤ ����(��) +���(��)) adalah benar maka
5) Tandai Piksel Gambar (I,J) sebagai Piksel Kulit.
2.7 KMeans Clustering
K-Means Clustering secara umum digunakan untuk menentukan pengelompokan
alami dari piksel – piksel yang terdapat pada citra (Dubey et all, 2013). Setiap
kelompok atau cluster direpresentasikan oleh sebuah titik pusat yang dapat berubah –
ubah, yang mana dimulai dengan angka awal. K-means clustering menghitung jarak
antara input dengan titik pusat dan mengalokasikan input tersebut kepada titik pusat
yang terdekat.
Metode K-means clustering merupakan metode pengelompokan tidak terbimbing