adaboost를 이용한 face recognition
DESCRIPTION
AdaBoost를 이용한 Face Recognition 랩 세미나용이라 디테일하게 모든 정보가 들어있지는 않음. 참고논문 P.Viola & M.Jones, Rapid Object Detection using a Boosted Cascade of Simple Features, 2011 외 다수TRANSCRIPT
![Page 1: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/1.jpg)
AdaBoost를 이용한 Face Recognition
한국산업기술대학교 인공지능연구실
* ᯕ❭ᯝᮡ��3(#�❭ᯝᯕʑ�ভྙᨱ�⪩⟹ᯕḡ�ᱽ᯲ᬊᮝಽอ�ᔍᬊ⧕�⦽݅�
2007152025 신요섭
![Page 2: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/2.jpg)
00Introduction
어떠한 대상을 인식하기 위해서는 먼저 인식할 대상에 대한 특징이 입력되어야 함 대상에 대한 공통적인 특징을 찾아내기 위해서 ‘학습’과정이 필요함
AdaBoost는 이러한 학습과정을 통해 정확한 분류기를 만들기 위한 알고리즘
영상 인식
![Page 3: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/3.jpg)
00Introduction
P.Viola & M.Jones Rapid Object Detection using a Boosted Cascade of Simple Features, 2011
P.Viola & M.Jones Robust Real-Time Face Detection, 2004
![Page 4: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/4.jpg)
01AdaBoost?
적응형 부스팅 알고리즘
Boosting Algorithm약한 분류기를 반복적으로 이용해 강한 분류기를 만들어내는 알고리즘
Adaptive Boosting Algorithm
잘못 검출된 데이터에 가중치를 주어 정확도를 높이는 부스팅 알고리즘
AdaBoost
![Page 5: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/5.jpg)
01AdaBoost
h 약분류기
α 가중치(신뢰도)
T 분류기의 개수
f(x) 강분류기
![Page 6: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/6.jpg)
01AdaBoost
" t=1;" 강분류기 f(x) = empty;" " while (1 to T) {" 과정1) 모든 약분류기에 대해, 모든 학습 샘플들을 테스트한다." 과정2) 최소 에러를 보였던 약분류기 ht 를 선택한다." 과정3) 과정 1, 2에 근거하여 약분류기의 가중치 wt를 계산한다." " 과정4) 강 분류기를 다음과 같이 업그레이드 한다." 새 강분류기 = 이전 단계의 강분류기 + wt * ht" " 과정5) 모든 학습 샘플에 대해 강분류기의 정확도 테스트." 과정6) t++" }"
‣ Adaboost process
![Page 7: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/7.jpg)
02Haar Filter
edge
line
4-rectangled
‣ Haar Filter
• Haar Filter를 다양한 크기로 변화시켜 영상에서 비교를 수행
• Haar like Feature 는 검정영역의 밝기와 흰 영역의 밝기 차이를 의미함.
•예를 들어, 필터를 통과한 경우 1, 그렇지 않은 경우 0으로 분류할 수 있음
•필터를 통과한 영상의 부분을 feature라고 지칭함.
•이 feature들은 해당 부분을 인식할 수 있는 하나의 기준이 됨.
![Page 8: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/8.jpg)
02Haar-like Feature
Sub-windowSub-window
•영상의 특징을 검출해내기 위한 feature 선택
edge
line
4-rectangled
24*24 크기의 이미지에서 5개의 필터를 이용하여 학습하기 위한 Sub-window의 개수는 180,000개 이상이고 학습에 매우 오랜 시간이 걸리므로 검출에 필요한 적절한 적은 수의 필터를 선택하는 것은 매우 중요함.
![Page 9: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/9.jpg)
03Integral Image
‣ Integral Image (적분영역)•영상에는 무수히 많은 영역이 존재 (24*24픽셀의 영상에 5가지의 Haar 필터를 적용한다면 영역의 수는 180,000개에 달함)
• Haar Filter를 계산할때마다 이러한 영역의 픽셀 수를 일일이 계산한다면 연산 시간이 상당히 오래 걸리므로 각 점에서의 적분영역을 미리 계산해 두어 연산 시간을 줄임.
D 영역의 픽셀 수 :
(A+B+C+D) - (A+B) - (A+C) +A
A B
C D
P4
P1 P2
P3
0
![Page 10: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/10.jpg)
04Cascading
1 2 3 4T T T
F F F F
T
Reject Sub-window
All Sub-windows
Further Processing
![Page 11: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/11.jpg)
05OpenCV에서 AdaBoost의 활용
‣ feature 학습영상에서 원하는 부분을 검출해내기 위해서는 positive 이미지와 negative 이미지를 이용한 학습을 수행해야 함. -> OpenCV에서 제공되는 createsamples 프로그램 이용
얼굴을 검출하기 위한 Positive 이미지와 Negative 이미지의 예
학습된 데이터는 xml 형식으로 추출됨.
![Page 12: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/12.jpg)
05OpenCV에서 AdaBoost의 활용
‣ 인식OpenCV에는 학습과 인식에 관한 AdaBoost 알고리즘이 모두 라이브러리로 구현되어 있으므로, 학습후 추출된 xml형식의 분류기를 이용하여 비교적 쉽게 원하는 부분을 인식하는 프로그램 제작이 가능함.
![Page 13: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/13.jpg)
05OpenCV에서 AdaBoost의 활용
‣ OpenCV에 기본적으로 포함되어 있는 분류기:
![Page 14: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/14.jpg)
06결론
Viola가 제안한 이 방법은 학습에 시간이 많이 소요된다는 단점이 있으나 그에 반해 인식속도는 굉장히 빠른 방법으로, 실시간으로 영상에서 특징을 검출하기 위해 사용할 수 있는 매우 좋은 방법임. "진행해야 할 프로젝트는 큰 영상에서 얼굴을 검출하고 눈을 검출하는 일련의 과정이 필요하지 않고 오직 영상에서 눈을 검출하고 눈의 감긴정도만을 알아내야 하므로 이 방법을 사용하면 더욱더 빠른 수준의 검출이 가능할 것으로 예상됨. "OpenCV에 학습부터 인식까지의 알고리즘이 전부 라이브러리로 구현되어 있으므로, 적절한 학습데이터를 얻을 수 있다면 인식 자체는 비교적 어렵지 않게 구현할 수 있을 것으로 생각됨.
![Page 15: Adaboost를 이용한 face recognition](https://reader036.vdocuments.pub/reader036/viewer/2022081800/5482587eb479590f0d8b4722/html5/thumbnails/15.jpg)
07Reference
[1] P.Viola & M.Jones, Rapid Object Detection using a Boosted Cascade of Simple Features, 2011
[2] P.Viola & M.Jones, Robust Real-Time Face Detection, 2004
[3] 정병우 & 박기영, 객체검출을 위한 빠르고 효율적인 Haar-Like 피쳐 선택 알고리즘, 2013
[4] 정종률 & 최종욱, AdaBoost 학습을 이용한 얼굴 인식, 2003
[5] http://heidi88.blogspot.kr/2014/01/boosting.html, “Boosting 알고리즘”
[6] http://en.wikipedia.org/wiki/Haar-like_features, “WIKIPEDIA: Haar-like features”[7] http://blogs.burnsidedigital.com/2009/04/using-haar-cascades-and-opencv-in-as3/, “Using
Haar Cascades and OpenCV in AS3"
[9] http://hlena33.blog.me/30025530042, “AdaBoost로 XML만드는 방법입니다”
[8] http://cafe.naver.com/opencv/28587, “초보자도 이해할만한 AdaBoost 설명”
[10] http://readme.skplanet.com/?p=4308, “얼굴인식 기술을 소개합니다!”