Friday, April 8, 2016

Face Detection With Processing and Arduino

Posted by Unknown
halo ... maaf nih baru bisa posting lagi. dikarenakan ada beberapa trouble .. UAS di kuliah , tugas besar dan yang paling malesin tuh Kerja Praktek. yang aturan nya ribet. hahaha tapi tak apalah.. bisa dilewati.. waduh jadi curcol . jadi langsung aja ya. disini kita buat face detection dengan Processing ... dan menggunakan library OpenCV. di opencv kita panggil saja fungsi nya... dan bila kalian lebih tertarik memakai opencv pure itu sangat di sarankan... tapi basic nya C++ . ahahah ane ribet kalau mesti belajar lagi. lebih mudah menggunakan processing.
   okay langsung saja apa yang perlu disiapkan untuk memulai nya ...

Software Requirements
- Processing IDE
- OpenCV library for Processing
- Webcam (disini ane pake yg Logitech C170) .
- Niat akan Semangat :D

okay langsung saja. langkah pertama kita download library OpenCV for processing.. DISINI !!! . setelah itu kita tambahkan kelibrary dari processing. caranya kita copy paste. karena ane pake Windows . itu ada di C:\Users\Jonny\Processing\libraries\ . kita paste di libraries nya. setelah itu kita Jalankan aplikasi Processing IDE nya. lalu File -> New . dan kita Save misal dengan nama simple_face_tracking . apabila sudah berhasil kita butuh 2 file lagi yang harus ditambahkan ke file simple_face_tracking. yaitu


bisa kita lihat ada file haarscascade_frontalface_alt dan haarcascade_frontalface_default . itu bisa kita copy dari examples file face_detect dari libraries opencv. seperti ini


nah kita copy - paste saja ke direktori simple_face_tracking. setelah itu masukkan kode berikut .


 import processing.video.*;  
 import java.awt.*;  
 import hypermedia.video.*;  
 Capture video;  
 OpenCV cam;  
 int w = 640;  
 int h = 480;  
 int xstart=0;  
 int ystart=0;  
 int midFaceY=0;  
 int midFaceX=0;  
 int midScreenY = (height/2);  
 int midScreenX = (width/2);  
 int midScreenWindow = 10;   
 int stepSize=1;  
 boolean muka= false;  
 void setup()  
 {  
  size(w, h);  
  println(Capture.list());  
  video = new Capture(this, width, height,15);  
  video.start();  
  loadPixels();  
  cam = new OpenCV(this);  
  cam.allocate(video.width, video.height);  
  cam.copy(video);  
  cam.cascade(OpenCV.CASCADE_FRONTALFACE_ALT);  
  }  
 void draw()  
 {  
  if(video.available())  
  {  
   video.read();  
   video.loadPixels();  
   cam.copy(video);  
   background(0);  
   cam.read();  
  }  
  loadPixels();  
  int vloc = 0;  
  color c = color(0, 0, 0);  
  for(int i = 0; i<width;i++)  
  {  
   for(int j = 0; j<height;j++)  
   {  
    int loc = i + j*width;  
    c = 0;  
    if(i<(video.width+xstart-1) && i>=xstart && j<(video.height+ystart-1)&&j>=ystart)  
    {  
     vloc = i-xstart + (j-ystart)*video.width;  
     float r = red(video.pixels[vloc]);  
     float g = green(video.pixels[vloc]);  
     float b = blue(video.pixels[vloc]);  
     c = color(r,g,b);  
    }  
    pixels[loc] = c;  
   }  
  }  
  updatePixels();  
  Rectangle[] faces = cam.detect(1.2, 2, OpenCV.HAAR_DO_CANNY_PRUNING, 40,40);  
  noFill();  
  stroke(0,255,255);  
  for(int i = 0; i < faces.length;i++)  
  {  
   rect(faces[i].x, faces[i].y, faces[i].width, faces[i].height);  
   muka = !muka;  
  }  
  if(muka){  
    save("facedetek-##########.png");   
  }   
 }  

jangan lupa kita colokan webcam logitech c170 nya. apabila berhasil apabila muka ke detect dia akan otomatis save ke direktori file simple_face_tracking berada. seperti ini .

Face Detection Auto Save

okay... selamat mencoba :) bila ada yg ditanyakan bisa comment di bawah atau email ke i.amexxecutioner@gmail.com ..

terima kasih :)


0 comments:

Post a Comment