Processing으로 동영상의 애니메이션 얼굴 검출 툴을 만들었으므로 노출해 본다

실용성이 있는지 모르겠지만, 과거에 쓴 프로그램을 변덕스럽게 노출해 보겠습니다.

AnimeFaceDetector



Processing 3에서 동작하는 OpenCV를 이용하여 동영상에서 애니메이션 얼굴 검출을 하는 프로그램입니다.
감지한 얼굴 이미지는 PNG 형식으로 저장됩니다.

애니메이션 얼굴 검출을 실시하기 위해서, nagadomi씨가 공개하고 있는 애니메이션 얼굴용의 물체 검출기(lbpcascade_animeface)를 사용하고 있습니다.
OpenCV에 의한 애니메이션 얼굴 검출이라면 lbpcascade_animeface.xml - Day

일단 애니메이션 얼굴용으로 만들었습니다만, 캐스케이드 파일을 바꾸면 다른 물체에서도 검출할 수 있을지도.

운영 환경



Windows 8.1에서 작동 확인했습니다.
데비안에서도 시도했지만 libgstreamer 관계에서 문제가 발생하는 것처럼 작동하지 않았습니다.

필수 라이브러리



작동하려면 다음 라이브러리가 필요합니다.
그렇지 않은 경우 Processing을 시작하고 메뉴의 "스케치"→ "라이브러리 가져 오기 ..."→ "라이브러리 추가 ..."에서 추가하십시오.
  • OpenCV for Processing (Greg Borenstein)
  • Video(The Processing Foundation)
  • ControlP5(Andreas Schlegel)

  • 사용법



    실행하기 전에 동영상 해상도에 맞게 다음 변수를 다시 씁니다.
    (귀찮습니다만, Processing의 Movie 클래스에 해상도를 취득하는 수단이 준비되어 있지 않은 것 같기 때문에…)

    AnimeFaceDetector.pde
    int movWidth = 640;
    int movHeight = 360;
    

    실행하면 다음과 같은 창이 나옵니다.


  • 「OPEN」버튼을 눌러 동영상을 선택.
  • 「ANALYZE」버튼을 누르면 동영상으로부터의 얼굴 검출 및 검출 얼굴 화상의 보존이 행해집니다.
    AnimeFaceDetector.pde와 같은 계층 구조에 있는 data 디렉토리에 동영상에서 확장명을 제외한 이름의 디렉토리가 만들어져 거기에 저장됩니다.

  • 옵션



    COLOR DETECTION



    얼굴 이외의 오검출을 줄이기 위해, 검출된 영역내에 「윤곽」이나 「피부」에 가까운 색이 존재하는지 체크를 실시합니다.
    기준으로 하는 색은 적당하게 선택했습니다.
  • SKIN THRESHOLD
    검출된 영역내에 「피부」에 가까운 색이 지정된 비율 이상 존재하는 경우에 얼굴이라고 판단합니다.
    기본값은 0.5입니다.
  • EDGE THRESHOLD
    검출된 영역내에 「윤곽」에 가까운 색이 지정된 비율 이상 존재하는 경우에 얼굴이라고 판단합니다.
    기본값은 0.018입니다.

  • RESIZE SAVE IMAGE



    감지된 얼굴 영역을 이미지에 저장할 때 240x240으로 크기를 조정합니다.

    SAVE FRAME INTERVAL



    감지된 얼굴 영역을 이미지에 저장할 때 프레임 간격을 지정합니다.
    기본값은 3입니다.

    MINIMUM FACE SIZE(PIXEL)



    얼굴 감지 시 최소 크기를 지정합니다.
    지정된 사이즈보다 검출 영역이 작은 경우는 무시합니다.
    기본값은 48x48입니다.

    소스 코드



    샤바 / AnimeFaceDetector · GitLab

    기타



    자세한 내용은 GitLab 리포지토리와 함께 제공되는 README.md를 참조하십시오.

    좋은 웹페이지 즐겨찾기