Etc/참고2010. 1. 3. 19:24
Posted by chacolina
Processing은 Quicktime을 기반으로 영상처리를 하기 때문에 Mac 아닌 PC에서 processing으로 웹캠을 사용하려면,

QuicktimeWinVDig를 설치해야 합니다.

다른 방법은 JMyon library를 설치해서 사용하는 방법입니다.

JMyron의 설치 및 사용예제에 대한 이전 게시글을 링크하니 참고하시기 바랍니다.

[Processing] PC / Windows 에서 웹캠 사용하기 (with JMyron)

[Processing] JMyron 라이브러리 활용 - Motion detection / Color tracking



그리고 이전에 소개해 드렸던 blob detection library 외에 openCV를 사용한 library가 있습니다.

Download page: http://ubaa.net/shared/processing/opencv/index.html

위의 페이지에는 Window, Mac에서의 설치 방법과 blob detection 및 face detect 같은 예제들이 잘 나와있으니,

참고하시면 작업에 도움이 될 것 같습니다.
Posted by 알 수 없는 사용자


Mac 에서도 인식이 잘 되는 웹캠들을 소개합니다.

작년 전시 때는 아래 보이는 네이버캠 플러스를 많이 사용했습니다.
따로 설치 프로그램이 필요없이 꽂으면 바로 인식되는 점이 편하고,
AF기능이 있어서 자동으로 피사체에 초점을 맞춰줍니다.




아래 웹캠들은 제가 다른 작업을 하면서 알아본 웹캠들인데요, 역시 mac에서 인식이 되며, 네이버캠 처럼 별다른
설치 프로그램이 필요없습니다.

한가지 유의하실 점은 아래 네가지 제품 중 새빛마이크로 Vije Q-350만 AF 기능이 있고 나머지 3개는 수동으로 초점을
맞춰주어야 합니다.


개인적으론 AF기능이 들어있는 웹캠이 범용적으로 사용하기가 편합니다(얼굴을 인식한다거나, 피사체의 위치에 상관 없이
깨끗한 화질을 원하는 경우)

하지만 피사체와의 거리가 항상 일정한 경우라면 아래 3개의 웹캠을 써도 무방하겠지요. 가격도 싸고.^^;


이 5가지 외에도 mac에서 인식되는 웹캠이 또 있을 수 있으니, 다나와나 네이버 같은 곳에서 찾아보셔도 되구요.
그리고 네이버캠의 경우 꼭 네이버 캠 '플러스'여야 합니다. 매물이 거의 없기도 하지만 , 그냥 네이버캠은 mac을 지원안하는 것으로 알고 있습니다.
Posted by 알 수 없는 사용자

Processing 홈페이지에 가보시면 Library 페이지에 face detect library가 있지만 PC전용 library이기 때문에 mac에서는

사용할 수 가 없습니다

다행히 아래의 링크로 가시면 mac용 library를 구할 수가 있는데요,

사이트에 설명이 잘 되어 있지만, 그래도 아직 익숙하지 않은 분들을 위해서

 이 library의 설치 및 사용방법에 대해서 알아보겠습니다.

(원래 이 사이트도 processing 홈페이지에 link가 되어 있었는데, 언제부턴가 없어졌더군요)

 http://tokage.cafe24.com/facedetect/index.htm



1. 위에 링크된 사이트로 가보시면 설치 방법이 쓰여 있는데,
    Face detect library를 설치하기 전에 먼저 openCV Framework를 설치하라고 되어 있습니다.
    openCV는 Open Source Computer Vision 의 약자로 실시간으로 computer영상을 처리할 수 있게 해주는
    library라고 보시면 될 것 같습니다.
   
    아래 화면에 보시면  openCV사이트 링크가 있습니다.
   

  
   위의 링크를 따라 가면  openCV 페이지 아래쪽 링크에서 OpenCV-Private-Framework-1.1.dmg을 다운 받을 수
   있습니다.(아래 사진에서 빨갛게 표시된 부분)
   




2. 파일을 받아서 열면 아래 그림처럼 폴더가 들어 있는데 openCV.framework 폴더만
    ~/System/Library/Frameworks 폴더로 옮깁니다.

   


   



3. 이제 Face Detect library를 다운 받습니다.
   

   
    library를 다운 받아 열어보면 두 개의 폴더가 있는데, FaceDetect 폴더는 processing의 library폴더에 넣어주시고,
    data폴더는 그 안에 있는 파일들을 이 library를 사용해 작업할 sketch 폴더의 data 폴더에 넣어주세요.
   




4. 이제 설치는 다되었으니 Face Detect 사이트에 링크 되어 있는 예제 파일을 실행에 봅니다.
   

    두 개의 예제 중 face_example.pde(processing video library)를 클릭하면 소스 코드가 나오는데, 그것을 카피하여
    processing 창에 가져다 붙여보세요.
     *여기서 주의할 점은 3번에서 설명했던 것처럼 현재 sketch 폴더의 data폴더에, 다운 받은 library 파일에 들어있는
      data폴더의 파일들을 반드시 옮겨 주어야 합니다.

    실행하기 전에 code에서 size(320,240,P3D)의 P3D를 지워주세요. 그래야 실제 캠화면이 나옵니다.

    실행하게 되면 아래의 그림처럼 나오게 됩니다. 즉, 얼굴을 인식해서 얼굴위에 원을 그리는 코드 입니다.
    (아래 실행화면의 경우 fill 값을 준 것입니다.)
   
   




5. 예제 코드에서 중요한 부분만 간단히 설명하면 아래와 같습니다.



import processing.video.*;     //   video library와 FaceDetect library를 불러옵니다.
import FaceDetect.*;

FaceDetect fd;                     //   FaceDetect data type인 fd 와 카메라로 캡쳐된 것을 저장하는 Capture data type인 cam
Capture cam;

int MAX = 10;                       //   최대 10개까지 화면 안의 얼굴을 인식합니다.

int[] x = new int[MAX];
int[] y = new int[MAX];
int[] r = new int[MAX];
int[][] Faces = new int[MAX][3];    // 인식된 얼굴의 갯수와 얼굴의 화면상의 위치, 크기를 저장할 int type의 array

void setup(){

  size(320,240);
  cam = new Capture(this, 320, 240);
  fd = new FaceDetect(this);
  fd.start("haarcascade_frontalface_alt.xml", width,height,30);
  stroke(255,200,0);
  fill(255,200,0);
  //noFill();
}


void draw(){
  if (cam.available()) {
    cam.read();
    image(cam,0,0);

    Faces = fd.face(cam);              
    int count = Faces.length;      // 화면 상에서 인식된 얼굴의 갯수   
    //    println(count);
    if (count>0) {
      for (int i = 0;i<count;i++) {
        x[i] = Faces[i][0];            // 얼굴 중심의 x좌표
        y[i] = Faces[i][1];            // 얼굴 중심의 y좌표
        r[i] = Faces[i][2] * 2;       //  얼굴의 크기
        ellipse(x[i],y[i],r[i],r[i]);    //  위의 데이터를 이용하여 얼굴 위에 원을 그림
      }
    }
  }
}


사실상 중요한 부분은 빨갛게 표시된 부분입니다.
얼굴의 화면 상에서의 좌표값과 크기값을 넘겨주는 부분으로
이 데이터를 이용하여 뭔가 재밌는 것을 해보면 되겠지요^^



Posted by 알 수 없는 사용자



지난 시간에 설명했던 processing에서 library 사용하는 방법을 정리한 것입니다.

library는 processing을 좀 더 다양한 방법으로 활용할 수 있도록 도와 줍니다.

기본적으로 processing을 다운 받아서 설치하게 되면 이미 video와 sound 등 몇가지 library가 들어있지만,

processing 홈페이지의 library 페이지(http://processing.org/reference/libraries/)를 가보면 사용자들이

직접 만들어 올려 놓은 다양한 library들을 다운 받을 수 있습니다.



library는 우리가 어떤 특정한 기능을 필요로 할 때, 직접 그것을 만들 필요 없이 활용할 수 있는 함수들과

클래스를 제공합니다. 만약 화면에서 얼굴만 캡쳐하는, face detect 같은 기능이 필요할 때

이것을 우리가 직접 만드는 것은 많은 노력과 시간을 필요로 하겠지요. 하지만, 제가 다운 받은 face detect library는

간단한 사용법만 익히면, 화면상에서 얼굴 중심값의 x,y좌표를 계산해 줍니다. 전 이 좌표를 이용해서 제가 원하는

작업을 하기만 하면 됩니다.




processing에서 library를 사용하기 위해선 사용하려는 library를 불러와야 합니다.

직접 코드를 쳐도 되지만, 간단히 아래 그림처럼 import library에서 필요한 library를 선택하면 됩니다.

붉게 표시된 부분은 외부  library를 다운 받은 것이고 아래 파란색으로 표시된 부분은 processing에

내장되어 있는 library들 입니다.
    




위의 메뉴에서  library 를 선택하게 되면 아래와 같이 library가 불려집니다.(아래의 예는 video library)

 




각 library의 예는 processing 홈페이지의 예제를 참고해 주시거나, processing 메뉴에 들어 있는 예제들을 참고해 주세요.
이외에 따로 다운 받은 library들은 해당 홈페이지에 사용방법과 예제들이 잘 나와 있습니다.

 







다운로드 받은 library를 설치하는 방법은 아래 게시물을 참고해 주세요

[Processing] 최신버전들의 library 설치 방법





windows 기반의 pc에서 processing으로 webcam을 사용하려면 JMyron이란 library가 필요합니다.
아래 게시물을 참고해 주세요.

[Processing] JMyron 라이브러리 활용 - Motion detection / Color tracking






화면상에서 밝은 부분이나 어두운 분을 detect하는 Blob detection library 설치 및 활용방법을 설명한 게시물 입니다.

[Processing] Blob detection library 설치 및 그림자/카메라와 활용


Posted by 알 수 없는 사용자