Deface for flash10

I’ve updated the Deface face recognition library that I created last year to take advantage of the new Vector class and some other improvements.

google code page

It should be fast enough for some limited real-time use now. For instance, the demo below typically finds my face in < 80ms once it’s aquired it. That’s only about 12fps, but for certain applications that would be sufficient. And I’m sure that the tracking can be improved a lot. There’s no real prediction now as is, nor position averaging, etc.

Allow this to use your webcam if you have one. If you don’t, you’re out of luck.



Based on ideas from OpenCV and the well-known Viola and Jones face detection paper, but NOT associated with either. Deface uses XML encoded classifiers to visually detect and track objects (especially faces) in BitmapData. Compatible with classifiers from OpenCV.


Live Examples

You can see the code in action here:

Source code for the first demo is available on the download page. See DemoCode.

MariLena : OpenCV port to ActionScript 3 (AS3 / Flash)

I dreamed about it, they finally did it ^^.

A crazy guy named Ohtsuka Masakazu have ported the face detection part of OpenCV to AS3 and added the source code named Marilena to the Spark Project a few weeks ago (can’t believe I haven’t notice before today)

Mario Klingemann from already made some optimization (see his blog)

I made some test today with a stupid texture, starting from Mario’s webcam example and that’s just fun !!! Well yes, it’s still slow (15 fps on a good computer), but this is just the beginning as I believe that a lot of optimization can still be done, and so what anyway ? It’s flash, it’s everywhere, nothing to install, the fun is there without downloading anything. I really believe in it ! Now with this and FLARToolKit (ARToolKit port to AS3), augmented reality and computer vision is really getting into Flash for sure, and it’s going to give to the community some great opportunity !! I’m looking forward about it

Please, have a test at Mario’s example here

and take also a look at what they did at

Realtime Face Detection in Flash from squidder on Vimeo.

For more info, check out

AS3 Version of OpenCV for Facial Detection, Web Cam Object Detection, Head Tracking, 3D Library Integration and more with Open Computer Vision Library for Flash

Libspark from Japan is a treasure trove of great flash advancements, they seem to realize the great things that can come from porting in existing solid libraries from C/C++ etc into flash and have been scoring lately including augmented reality in flash porting the ARToolkit to FLARToolkit.  Recently a port of openCV for as3 called Marilena was found and it is for object detection and decent facial recognition (it is a computer vision library from intel) considering the processing power needed to do this.

Face Detection: Here is the sample included with Marilena showing facial detection on an image.


Lots of recent action has blown up on this front from Mr doob, quasimondo (optimizing the Marilena classes for better performance) and Boffwswana. Also there is a kit called deface by sshipman that is the first foray into this a year ago doing similar things but it was just a bit before it’s time and a bit slow in previous versions of flash, it performs decent now in this sample. Flash 10 performance of the AVM2 and future directions with Alchemy will lead to more interesting stuff just like this.

Mr. doob head tracking sample, be sure to check lots of other examples there


Boffswana example of head tracking Johnny Lee Wii style with only a webcam and flash, no wiimote needed since it uses facial detection to check where you are and how close you are in the screen and then moves accordingly.


This is stemming from the recent explosion of the FLARToolkit and augmented reality in flash as well as the gimmicks used by Nintendo with the wii and Johnny Lee’s great head tracking advancements. Porting great libraries to flash seems to be the phase we are entering now judging by the recent excitement around Adobe Alchemy and the LLVM along with the lead from the contributors. We have also seen this heavily last year in ports of Box2D for 2d physics and other toolkits using established working code and porting that to flash now that is is mostly capable of handling the performance.

OpenCV (Open Computer Vision Library by Intel) is quite a powerful platform that allows you to do all this and now it is available in flash. There are other great libraries for nearly all platforms now. I have done some previous work with Aforge which is also a port of OpenCV mainly for motion detection. This was always around but not until the recent performance updates and the innovation that has come with Alchemy and the thinking that goes along with that (porting in libraries to flash from C/C++ etc), has allowed this to flourish in flash and thus the web.

The amazing new things we can do with flash by porting in existing libraries is only going to get more intense as alchemy and flash 10 are even more mainstream.  It is almost as if Flash will eventually just become a web renderer and simplified front end to many great toolkits that exist in more native environments like C/C++ but with the speed and distribution access of the web with Flash.  Exciting times ahead.

실시간 눈 위치검출하는 로직중..

1. 실시간으로 ‘눈’ 위치 검출하는 로직중에….

가장 빠른 로직은 무엇일까요?


이 질문의 개인적인 답은
Haar Feature 이라 생각이 들었습니다.

Haar Feature 관련 글을 많이 봤는데요.




이런 그림은 많이 봐서 원리는 대충 감은 오거든요.
얼굴에 생기는 명암으로 구별하는 것 같은데.
구현에 관해선 아무리 찾아봐도 설명되있지 않네요.

2. 로직을 구현하는 방법…. 

제가 아는 정도는
빠른 연산을 위해 테이블에 저장해 놓으면
해당 범위의 값을 빠르게 구할 수 있다는데요.


rect의 x,y,w,h 의 값을 바꿔 가면서
영상의 모든 부분을 for 문으로
전부 탐색하기엔 속도가 느릴 것 같거든요..



OpenCV의 정의

OpenCV(Open Computer Vision)은 오픈소스 컴퓨터 비전 C 라이브러리이다. 원래 인텔에서 개발되었다. 현재 버전 1.0이 나와있으며 윈도, 리눅스 플랫폼에서 사용할 수 있다. 실시간 이미지 프로세싱에 중점을 둔 라이브러리이다. 인텔 CPU에서 사용되는 경우 속도의 향상을 볼 수 있는 Intel Performance Primitives (IPP)를 지원한다.

OpenCV 1.1 버젼이 공개되었네요.
파일명에 1.1pre1 라고 써 있는거 보니까 공식 버젼은 아닐수도 있는데, 참으로 반가운 오랫만의 버젼입니다.

관련해서 소식을 전해주신 유유자적님의 글은 다음과 같고요

다운은 공식 홈피에서 받으시면 됩니다. (홈)   (다운링크 페이지)

라이브러리 안의 메뉴얼 부분이 어떻게 잘 지원되었는지는 모르겠지만,
공식적으로는 O’Reilly Book을 보라고 나와 있습니다. (저는 구입해서 보고 있습니다만…)

Tutorial documentation is in O’Reilly Book: Learning OpenCV

오피셜 OpenCV Wiki (영문)

[OpenCV] 설치와 개발환경 구축

라이브러리 다운받기

우선 라이브러리를 다운받아야 한다.
아래의 링크에, OpenCV 와 관련된 최신 뉴스 및 각종 자료, 그리고 라이브러리를 다운 받을 수 있다.

윈도우를 쓰니까, 당연히 opencv-win 을 받아야겠지!!!
2008년 10월18일 버전…. 파일은 실행파일! 게임 설치하듯이 가볍게 설치를 해주고…

OpenCV Document 읽어보기

설치가 끝나면, OpenCV에 관란 Document 를 읽어볼 수 있다. 제대로 공부해보고자 한다면, 한번 스윽~ 하고 읽어봐주자. 나는 제대로 공부할려는 마음이 있으니..

 OpenCV Document 아주 간단히 훓어보기

 OpenCV : Open Source Computer Vision Library
 영상처리와 컴퓨터비전 알고리즘이 C함수와 C++클래스로 구현이 되어있다.
상업적/비상업적으로 이용할수 있다(프리) – 자세한 라이센스는 안읽어봤음.
 FAQ : 설치방법 등이 설명되어 있음(문제점해결방법 등)
 레퍼런스 메뉴얼 : 앞으로 개발하면서 자주 볼 메뉴얼…

개발환경 설정
(visual studio 2005 사용)

툴 -> 옵션 -> VC++ 디렉토리 에서
1. 다음 파일의 디렉토리 표시에 포함파일(include file) 을 선택
2. 포함 디렉토리에 아래의 다섯개 경로를 추가해 주자.<그림1>

C:\Program Files\opencv\cv\include
C:\Program Files\opencv\cv\src
C:\Program Files\opencv\cvaux\include
C:\Program Files\opencv\cvaux\src
C:\Program Files\opencv\otherlibs\highgui


< ?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


3. 다음 파일의 디렉토리 표시에 라이브러리 파일(library file) 을 선택

4. 아래의 세파일을 추가시킨다.<그림2>

C:\Program Files\opencv\bin
C:\Program Files\opencv\lib

C:\Program Files\opencv\interface\ch\opencv\bin




5. 프로젝트 -> 속성

아래의 파일을 라이브러리에 추가한다.<그림 3>

cxcore.lib cv.lib highgui.lib


<그림 3>



* <표 1>은 참고만 하세요. 옛날 버전 설명인데 메뉴이름이 달라서 잘 모르겠네요.

 <표 1>

 1. [프로젝트][설정][링크]항목을 선택해,카테고리를 「인풋」으로 한다.

 2. [오브젝트/라이브러리 모듈]란에 이하의Library파일을 추가한다.
     cv.lib, highgui.lib, cvaux.lib
     베타4버전에서는 cvxcore.lib,  cv.lib,   highgui.lib 또한 cxcore.dll, cv.dll, highgui.dll 이 필요하다.

이로써 기본적인 환경설정은 완료 되었다. 빌드도 잘 되고  ㅋㅋ

그렇다면 샘플 프로그램을 몇개 돌려보고, 테스트 프로그램 몇 개 짜보면서, 기분 좋은 출발을 해보자.

5월 5일 어린이날…. 캠연결을 테스트 해보다…이전 설명에 빠진 부분이 있어서, 추가 합니다.

    • C:\Program Files\OpenCV\bin 폴더 내에 있는 dll 파일을 프로젝트의 실행파일이 있는 곳에 복사를 해줍니다.

 cv110.dll cvaux110.dll cxcore.dll highgui110.dll

  • 툴 -> 옵션 -> VC++ 디렉토리 에서

    1. 다음 파일의 디렉토리 표시에 포함파일(include file) 을 선택, 아래 경로를 추가.

       C:\Program Files\OpenCV\cxcore\include