• Tidak ada hasil yang ditemukan

Implementasi dan Deteksi Pola Wajah Pada Citra Digital Menggunakan Skin Color dan K-Means Clustering

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi dan Deteksi Pola Wajah Pada Citra Digital Menggunakan Skin Color dan K-Means Clustering"

Copied!
111
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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, _

(9)

Dim PPiksel As ClGeneral.PubPixel

Konek.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & Application.StartupPath & "\db.mdb"

Konek.Open()

(10)

ClusterK.CG = DR2("cg")

Private Structure ColorFind

Dim R As Long

Dim G As Long

Dim B As Long

(11)
(12)
(13)
(14)
(15)

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"

(16)
(17)
(18)
(19)
(20)
(21)
(22)

Else

Private Function CariJumlahTitik(ByVal tTitik As Objek) As Boolean

(23)
(24)
(25)
(26)

Dim DilasiC As Long = 0 tempImage.Height And .R < 255 Then

(27)

tempImage.SetPixel(.X - 1, .Y - 1, Color.FromArgb(.R, tempImage.Height And .R < 255 Then

(28)
(29)
(30)
(31)

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

(32)

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

(33)

[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

(34)

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.

(35)

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.

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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 :

(44)

START

Gambar 3.6 Flowchart Gambaran Sistem Proses Deteksi Wajah

Keterangan :

(45)

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 :

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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 :

(53)

1. PictureBox1 : control yang berfungsi untuk menampilkan gambar wajah penulis.

(54)

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.

(55)

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

(56)

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 :

(57)

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

(58)

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

(59)

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

(60)

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

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

(66)

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

(67)

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

(68)

������= ��(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

(69)

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 :

(70)

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)

(71)

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

(72)

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)

(73)

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

(74)

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

(75)

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

(76)

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

(77)

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 :

(78)

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

(79)

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

(80)

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 –

(81)

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

(82)

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

(83)

• 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

(84)

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

(85)

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)

(86)

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

(87)

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

(88)

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

(89)

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)

(90)

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

Gambar

Tabel 3.1 Spesifikasi Use Case Pengenalan Pola Wajah K-means
Tabel 3.3 Spesifikasi Use Case Deteksi Wajah
gambar ke antarmuka sistem
Gambar 3.2 Activity Diagram  Proses Pengenalan Pola Wajah
+7

Referensi

Dokumen terkait

Masing-masing sampel akan diambil satu jenis motif batik dan dilakukan proses segmentasi citra menggunakan metode Filter Gabor dan K-means Clustering dengan membandingkan nilai

Dilakukanlah penelitian untuk mengembangkan perangkat lunak yang dapat memperbaiki kualitas citra digital menggunakan kombinasi Adaptive Multiscale Retinex dengan

Clustering atau pengklasteran adalah suatu teknik data mining yang digunakan untuk menganalisis data untuk memecahkan permasalahan dalam pengelompokkan data atau

Masing-masing sampel akan diambil satu jenis motif batik dan dilakukan proses segmentasi citra menggunakan metode Filter Gabor dan K-means Clustering dengan membandingkan nilai

Setelah mendapatkan kelompok warna suatu citra dari hasil clustering, nilai piksel warna yang ada didalam citra tersebut akan diubah berdasarkan nilai titik pusat cluster

Dengan menggunakan metode efficient sequencing yang menerapkan algoritma Fuzzy C-Means clustering dan K-Means clustering pada hybrid recommender system diharapkan dapat..

Hasil akhir dari penelitian ini adalah aplikasi web yang dapat melakukan segmentasi citra daun bawang merah menggunakan metode K-Means Clustering dan Adaptive Thresholding, serta

Implementasi Algoritma Gabor Wavelet Dalam Pengenalan Sketsa Wajah Pada Citra Digital Tresia Dorarta Lumbantobing, Nelly Astuti Hasibuan, Sumiati Adelina Hutabarat Program Studi