• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN ALAT

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PERANCANGAN ALAT"

Copied!
12
0
0

Teks penuh

(1)

BAB III

PERANCANGAN ALAT

Tugas akhir ini adalah penelitian aplikatif dalam bentuk eksperimen.

Langkah awal yang diperlukan adalah membuat sebuah aplikasi yang dapat

membedakan objek (wajah) sesuai dengan objek referensi. Bab ini akan

menguraikan jenis dan cara mendapatkan data, variabel serta cara analisis data

dan kerangka penelitian.

3.1. Alat dan Bahan

3.1.1. Hardware

1)

Personal Computer (PC) / Laptop

Berfungsi sebagai tempat untuk menyimpan basis data dan

beberapa program pendukung. Pada tugas akhir ini digunakan

laptop dengan spesifikasi harddisk 320GB, memory 3GB ,

Software Operation Windows 8.

2) Kamera

Pada sistem ini, kamera yang digunakan adalah kamera web, atau

yang sering disebut webcam. Untuk pemilihan kamera, sebaiknya

kita memilih webcam yang memiliki kecepatan serta resolusi yang

bagus dan juga harus memiliki kemampuan yang baik dalam

adaptasi terhadap cahaya di sekelilingnya. Kamera web yang

dipakai pada tugas akhir ini memiliki resolusi 2 Mega piksel.

(2)

15

3.1.2. Software

1) Microsoft Visual Studio C# adalah software yang dibuat untuk

mendesain serta membuat kode (coding) pada tugas akhir ini.

2) EmguCV, berperan untuk menjembatani C# dan OpenCV.

EmguCV adalah wrapper .Net untuk OpenCV. Dengan EmguCV,

fungsi-fungsi dalam OpenCV bisa dipanggil melalui bahasa

pemrograman yang compatible dengan .NET seperti C#, VB, dan

VC++.

(3)

16

3.2. Blok Diagram Aplikasi

Flowchart dan penjelasan programnya adalah sebagai berikut :

Gambar 2. 4 Flowchart Program.

3.2.1. Penjelasan Blok Diagram

- Start, program dijalankan.

- Observasi gambar pada kamera.

- Object segmentation, kamera memeriksa setiap frame image yang masuk untuk

(4)

17

- Kamera memeriksa apakah pada frame terdeteksi wajah. Bila tidak terdeteksi, program kembali ke awal. Dan apabila pada kamera terdeteksi wajah, program dilanjutkan ke tahap berikutnya.

- Kemudian program akan meng-capture wajah yang terdeteksi dengan membuat

frame pada wajah yang terdeteksi dan mencari kesamaan wajah pada data

referensi wajah.

- Apakah wajah yang terdeteksi ada pada data referensi. Apabila tidak ada, maka dapat ditambahkan untuk disimpan sebagai data referensi wajah baru. Namun apabila wajah yang terdeteksi ada pada data referensi, maka akan ditampilkan sesuai frame wajah yang terdeteksi.

- Program kembali ke awal.

3.3. Perencanaan Software

Perencanaan software pada aplikasi ini meliputi :

1. Penyusunan Program Interfacing pada Kamera

2. Penyusunan Program Pendeteksi Wajah

3. Penyusunan Program Pencocokan Wajah

3.3.1. Program Interfacing pada Kamera

Langkah pertama dari program pada PC adalah mengaktifkan

kamera, tujuannya agar PC mendapatkan gambar dari kamera

tersebut dan ditampilkan pada layar. Berikut ini adalah listing

program untuk mengaktifkan kamera :

using System; 

(5)

18

using System.ComponentModel;  using System.Data;  using System.Drawing;  using System.Linq;  using System.Text;  using System.Windows.Forms;  using Emgu.CV;  using Emgu.CV.Structure;  using Emgu.Util;    namespace CameraCapture  {      public partial class CameraCapture : Form      {          //declaring global variables          private Capture capture;        //takes images from  camera as image frames          private bool captureInProgress;            public CameraCapture()          {        InitializeComponent();          }                    private void ProcessFrame(object sender, EventArgs  arg)          {        Image<Bgr, Byte> ImageFrame =  capture.QueryFrame(); 

(6)

19

      CamImageBox.Image = ImageFrame;           }                    private void btnStart_Click(object sender,  EventArgs e)          {        #region if capture is not created, create it  now        if (capture == null)        {        try        {        capture = new Capture();        }        catch (NullReferenceException excpt)        {        MessageBox.Show(excpt.Message);        }        }        #endregion          if (capture != null)        {        if (captureInProgress)        {              btnStart.Text = "Start!";        Application.Idle ‐= ProcessFrame;        }        else 

(7)

20

      {        btnStart.Text = "Stop";        Application.Idle += ProcessFrame;        }          captureInProgress = !captureInProgress;        }          }          private void ReleaseData()          {        if (capture != null)        capture.Dispose();          }      }  }

(8)

21

3.3.2. Penyusunan Program Pendeteksi Wajah

Sebelum proses pengolahan wajah, pertama dilakukan pembuatan

program untuk mendeteksi area wajah.

//Get the current frame form capture device  currentFrame = grabber.QueryFrame().Resize(453, 284,  Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);          //Convert it to Grayscale        gray = currentFrame.Convert<Gray, Byte>();          //Face Detector  MCvAvgComp[][] facesDetected =  gray.DetectHaarCascade(        face,        1.1,        10,                Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,        new Size(20, 20));          //Action for each element detected        foreach (MCvAvgComp f in facesDetected[0])        {        t = t + 1;  result =  currentFrame.Copy(f.rect).Convert<Gray,  byte>().Resize(100, 100,  Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);  //draw the face detected in the 0th (gray)  channel with blue color  currentFrame.Draw(f.rect, new Bgr(Color.Red),  2);            if (trainingImages.ToArray().Length != 0)        {  //TermCriteria for FACE RECOGNITION with  numbers of trained images like maxIteration  MCvTermCriteria termCrit = new  MCvTermCriteria(ContTrain, 0.001);          //Eigen face recognizer 

EigenObjectRecognizer recognizer = new 

EigenObjectRecognizer(         trainingImages.ToArray(),         labels.ToArray(), 

       3000, 

(9)

22

3.3.3. Penyusunan Program Pencocokan Wajah

Pertama, pendeklarasian variable-variable yang dibutuhkan.

Image<bgr,> currentFrame;    Capture grabber;    HaarCascade face;    HaarCascade eye;  MCvFont font = new MCvFont(FONT.CV_FONT_HERSHEY_TRIPLEX, 0.5d,  0.5d);    Image<gray,> result, TrainedFace = null;    Image<gray,> gray = null;  List<image<gray,>> trainingImages = new List<image<gray,>>();    List<string> labels= new List<string>();    List<string> NamePersons = new List<string>();    int ContTrain, NumLabels, t;    string name, names = null;   

Setelah didapat input frame dari kamera, langkah selanjutnya adalah

memeriksa setiap gabungan dari piksel untuk mencari objek wajah yang ada.

Proses deteksi wajah tersebut menggunakan metode viola-jones, yaitu dengan cara

mencocokkan setiap fitur pada frame dengan contoh wajah yang ada pada sebuah

file database berekstensi *.xml. File tersebut berisi ribuan sampel positif dari

wajah.

InitializeComponent(); 

//Load haarcascades for face detection 

face = new HaarCascade("haarcascade_frontalface_default.xml");  //eye = new HaarCascade("haarcascade_eye.xml"); 

(10)

23

try  {  //Load of previus trainned faces and labels for each image  string Labelsinfo =  File.ReadAllText(Application.StartupPath +  "/TrainedFaces/TrainedLabels.txt");  string[] Labels = Labelsinfo.Split('%');  NumLabels = Convert.ToInt16(Labels[0]);  ContTrain = NumLabels;  string LoadFaces; 

Setelah proses load database, setiap frame yang didapat dari kamera tadi

dikirimkan ke fungsi yang bertugas untuk menandai objek wajah yang ada.

for (int tf = 1; tf < NumLabels+1; tf++)        {        LoadFaces = "face" + tf + ".bmp";  trainingImages.Add(new Image<Gray,  byte>(Application.StartupPath + "/TrainedFaces/" +  LoadFaces));        labels.Add(Labels[tf]);        } 

Inisialisasi capture perangkat dan FrameGrabber melakukan deteksi pada

masing-masing frame yang ter-capture.

 

private void button1_Click(object sender, EventArgs e)          { 

(11)

24

      //Initialize the capture device        grabber = new Capture();        grabber.QueryFrame();        //Initialize the FrameGraber event        Application.Idle += new EventHandler(FrameGrabber);        button1.Enabled = false;          } 

Selanjutnya operasi DetectHaarCascade dan EigenObjectRecognizer dijalankan

pada masing-masing wajah yang dideteksi di dalam satu frame.

MCvAvgComp[][] facesDetected = gray.DetectHaarCascade(        face,        1.2,        10,        Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,        new Size(20, 20));    //Perform untuk masing‐masing element yang  terdeteksi        foreach (MCvAvgComp f in facesDetected[0])        {        t = t + 1;  result =  currentFrame.Copy(f.rect).Convert<gray,>().Resi ze(100, 100,  Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); 

(12)

25

//membentuk wajah yang terdeteksi ke dalam gray  channel dengan warna biru  currentFrame.Draw(f.rect, new Bgr(Color.Red),  2);          if (trainingImages.ToArray().Length != 0)        {  MCvTermCriteria termCrit = new  MCvTermCriteria(ContTrain, 0.001);          //Eigen face recognizer  EigenObjectRecognizer recognizer = new  EigenObjectRecognizer(         trainingImages.ToArray(),         labels.ToArray(),         5000,         ref termCrit);          name = recognizer.Recognize(result);  //Menampilkan nama pada wajah yang terdeteksi  currentFrame.Draw(name, ref font, new  Point(f.rect.X ‐ 2, f.rect.Y ‐ 2), new  Bgr(Color.LightGreen));          }  }         

Gambar

Gambar 2. 4 Flowchart Program.
Gambar 3. 1 Screenshot Kamera Aktif

Referensi

Dokumen terkait

membran cair emulsi menggunakan ekstraktan tributilfosfat dalam kerosin berpengaruh pada hasil ekstraksi, di mana untuk uranium semakin tinggi keasaman diperoleh efisiensi

Tabel : Faktor bucket shovel-dozer dan wheel-loader Kondisi Pemuatan Pemuatan Pemuatan material dari stockpile atau dari Ringan material yang telah dikeruk oleh ekskavator lain,

Pada penelitian ini dilakukan estimasi mengenai model GARMA dimana data yang digunakan diasumsikan mengikuti distribusi Poisson atau disebut Poisson GARMA

This research aims to analyse whether the LDR, IPR, APB, NPL, IRR, PDN, BOPO, FBIR, NIM, FACR, and PR simultaneously and partially have significant effects to Return

Pengadaan Sarana dan Prasarana di Lingkungan Mahkamah Agung Program Peningkatan Sarana dan Prasarana Aparatur Mahkamah Agung 2UMLAH BIAYA HARGA SATUAI SD/ PERHITUNGAN TAHUN

Puji syukur penyusun panjatkan kehadirat Allah SWT yang senantiasa memberikan rahmat dan hidayah-Nya sehingga penyusun dapat menyelesaikan tugas akhir dengan judul “

menunjukkan bahwa distribusi responden berdasarkan kepercayaan kesehatan yang tinggi sebanyak 88 (95,7%), sedangkan yang rendah sebanyak 4 (4,3%).Pemanfaatan

persamaan variabel yang sama yaitu untuk mengetehaui peran teman sebaya dalam lingkungan sekolah, bedanya adalah tema yang diambil, penelitian yang terdahulu bertema