I submitted KIISE Thesis that <face>, 2014.
In this presentation, I present why I use deep learning to find facial features and what is limitation of before method.
2. 2
INDEX
1. 연구배경 2. Deep Belief Network 3. 적용과정 4. 연구결과 5. 향후과제
- Haar-like
feature
- AdaBoost
- 개선점 발견
- Deep Neural Networks
- Shallow 와 Deep Learner
- Boltzmann Distribution
- Restricted Boltzmann Machine
- CIFAR-10
- Dataset 구성
- 인터프리터
- 학습과정
- 학습결과
- Confusion
Matrix
- 현재과제
- 향후가능성
3. 3
1. 연구배경Haar-like Feature에 대하여
Haar-like Feature는 일반적인 사물 검출방식으로, 검은색 사각형 영역의 Gray
scale 값의 총합(1)과 흰색 사각형 영역의 Gray scale값의 총합(2)을 뺀 값이
일정하다는 가정을 통해 사물을 검출합니다
이미지출처: http://uniknown.wordpress.com/tugas/opencv-haar/
Rwhite
Rblack
FHaar = Rwhite - Rblack
만약 우리가 0.1< Fhaar <0.2 일때,
Rblack의 공간을 눈이라고 알고 있다고 한다면
1
2
3
1: 0.3
2: 0.124
3: 0.01
일때, 2의 Rblack의 공간을 눈으로 간주합니다
4. 4
1. 연구배경Haar-like Feature와 Ada-Boost Classifier
이때, Haar-like Feature를 더욱 정확하게 분류하기 위해서, Adaptive Boosting
Algorithm을 사용하여 정확도를 높이는것이 일반적입니다 (Robust Real-Time Face
Detection, P.Viola & M.Jones, 2004)
수식출처: http://en.wikipedia.org/wiki/AdaBoost
ft : 약분류기, T : 분류기의 개수, FT : 강분류기
현재 OpenCV가 기본샘플로 제공하는 createsamples라는
프로그램이 위와 같은 방식으로 학습을 수행하고 있습니다
5. 5
1. 연구배경기존 인식 방법의 개선점 발견
모두 같은 모양에서 검출되었으므로, 컴퓨터는
4개의 형태 모두를 ‘눈’이라고 간주합니다
이미지출처: https://code.google.com/p/face-off/
속도 및 정확도 개선이 필요
그러나 Haar-like Feature를 이용한 객체 검출방식은 검출 영역의 모양에 크게
영향을 받을 뿐만 아니라, 각 Feature를 이미지 전체 영역에 대조해가며 검출을
수행하기 때문에 시간이 오래 걸린다는 단점이 있습니다
6. 6
2. Deep Belief Network Deep Neural Network에 대해서
이에 Deep Learning을 해당 문제의 해결방안으로 제시하기 전에, Deep Neural Network의
적용 사례와 논문들을 보며 어떤 방식의 학습 방법이 문제 해결에 적합한지 조사하였습
Speech Recognition with Deep Neural Network
(Hinton, 2012)
Traffic Sign Recognition with Multi-column Deep Neural Network
(Ciresan & Meier & Masci, 2011)
Classifying images with Deep Belief Network
(Krizhevsky & Hinton, 2012)
7. 7
2. Deep Belief Network Shallow / Deep Learner 사이의 차이점
Deep Belief Network(Hinton, 2006)를 사용하기 이전에, 왜 Belief Network가 Deep한 방식
으로 학습되는 것이 이미지 분류에 더 유리한지 알아보았습니다
출처: http://www.cs.toronto.edu/~rsalakhu/kdd.html
https://seismo.berkeley.edu/annual_report/ar05_06/node38.html
Architecture of SVM
Architecture of Neural Net
With a single hidden layer Architecture of Deep Belief Network
Multi
hidden
layers
input
classified
8. 8
2. Deep Belief Network Boltzmann Distribution
Deep Belief Network의 처음과 마지막 layer를 제외하고는 Hidden layer이며, 이러한 mult
-hidden layer는 Boltzmann Distribution을 따르는 node들로 구성되어 있습니다
Boltzmann Disribution
F: 확률, E: 에너지, k: 볼츠만 상수, T: 온도
물질의 에너지가 클수록 해당 입자가 존재할
확률은 줄어들게 된다. 즉, 모든 물질(노드)들은
안정된(에너지가 적은) 상태일때 존재할 확률이
높아진다는 가정이 전제되어 있습니다
이때, 이전 레이어의 i노드와 다음 레이어의 j노드
사이의 관계는 아래와 같습니다
출처: http://en.wikipedia.org/wiki/Restricted_Boltzmann_machine
Energy in Boltzmann Disribution
W: 가중치, θ: bias
즉, 에너지를 낮추어 node의 존재 확률을 높이기 위해서는 각 노드 사이의
weight를 최대로 만들어주어야 한다는 사실을 알 수 있습니다
9. 9
2. Deep Belief Network Restricted Boltzmann Machine
Deep Belief Network는 Boltzmann Machine이 아니라 Restricted Boltzmann Machine을
여러 층으로 쌓은(Stacking) Network를 구성합니다
Why Restricted?
출처: http://en.wikipedia.org/wiki/Restricted_Boltzmann_machine
Restricted 하게 Network를 구성할 경우,
back propagation에 의한 학습 시간이
매우 효율적으로 단축될 뿐 아니라,
특수한 종류의 Boltzmann machine에
대하여도 학습 알고리즘을 적용할 수
있게 됩니다
Back Propagation?
학습의 세대(epochs)가 반복될 때마다, Deep Belief Network는 두 레이어
사이의 weight값을 조정하며 Energy 총량을 optimize합니다. 이때 visible
node와 hidden node가 둘 다 active되는 weight를 조절해주는데, 이 과정을
back propagation이라고 합니다
10. 10
3. 적용과정CIFAR-10 Classification (2010, Hinton/ Krizhevsky)
출처: http://www.cs.toronto.edu/~kriz/cifar.html
CIFAR-10은 Deep Belief Network를 사용하여 10개의 클래스가 있는 60,000개의 이미지
를 학습한 뒤, 구분하는 문제로, 2010년에 Hinton교수와 Krizhevsky 박사가 수행했습니다
CIFAR-10의 예
32 x 32의 이미지를 RGB값으로 각각
정 렬 한 뒤 , 이 를 다 시 1 차 원 으 로
연 결 하 여 학 습 데 이 터 세 트 를
구성하였습니다. 즉,
<1 x label><3072 x pixel>
. . .
<1 x label><3072 x pixel>
로 구성된 60,000 row의 Array가 Deep
Belief Network의 학습데이터가 됩니다
11. 11
3. 적용과정학습 데이터 세트 구성
CIFAR-10과 마찬가지로 이목구비를 정확하게 인식할 학습 데이터를 충원하기
위하여 32x32 사이즈로 조정한 눈, 코, 입, 얼굴을 각각 850개씩 모으고, 라벨을 붙여
관리하였습니다
데이터세트
학습용 테스트용
종류 레이블 개수 종류 레이블 개수
양쪽
눈 0 1170
양쪽
눈 0 440
입 1 636 입 1 204
코 2 692 코 2 150
얼굴 3 626 얼굴 3 214
CIFAR-10의 학습규격과 동일한 형태의
눈 학습 데이터
학습과 검증을 위한 데이터세트의 레이블과
항목별 개수
12. 12
3. 적용과정인터프리터 / 학습과정
이 름 버전
Python 2.7.8
Nolearn* 0.4
openCV-python 2.4.10
scipy 0.14.0
numpy 1.9.0
*Nolearn은 Deep Belief Network를 수행하기 위해 필요하며, 라이센스는 MIT에 있습니다
CIFAR-10에서 수행한 Deep Belief Network학습을 재현하기 위해서는 Python을
비롯한 아래의 인터프리터들이 필요합니다
인터프리터 및 버전
학습과정
학습은 총 20세대(epochs)를 수행하였으며, Learning rate는 ε=0.03 으로
설정하였습니다
13. 13
4. 학습결과학습결과 및 검증행렬(Confusion Matrix)
위와 같은 변인(총 20세대(epochs)의 학습과 ε=0.03의 Learning rate)으로 학습한
결과 세대별 Error Rate 그래프는 다음과 같이 나왔고, 검증행렬 또한 얻을 수
있었습니다
테스트데이터
실제레이블
0 1 2 3
예상
레이블
0 440 0 0 0
1 204 0 0
2 0 0 150 0
3 1 1 0 214
세대(epochs)별 에러(Error rates)
비율그래프
학습된 네트워크를 테스트 데이터로 검증한
검증행렬(Confusion Matrix)결과
인식률 99.80%
Label Precision Recall F1-scores Support
0 1.00 1.00 1.00 440
1 1.00 1.00 1.00 204
2 1.00 1.00 1.00 150
3 1.00 0.99 1.00 216
Avg/Total 1.00 1.00 1.00 1010
정확률(Precision)과 재현율(Recall)
그에 해당하는 F-measure 점수
14. 14
5. 향후과제현재 해결하고 있는 문제
눈, 코, 입, 얼굴형태의 미묘한 차이 구분
이미지 컨설팅 회사와 함께 컨설팅 자동화 작업 진행중
(주)예라고, 서강대학교 LINK사업 (2014~)
이미지출처: http://personalpages.manchester.ac.uk/staff/timothy.f.cootes/Models/aam.html
Active Shape Model(ASMs)를 이용한 얼굴형 학습
15. 15
5. 향후과제향후 본 연구의 발전 및 응용 가능성
본 연구는 딥러닝을 통해 높은 확률로 얼굴을 인식할 수 있을 뿐만 아니라,
이목구비 또한 정확하게 인식할 수 있음을 확인 하였습니다
기존 이목구비 인식방식과는 달리, RGB 색상 값을 Feature로 사용할 수 있다는
점과, Haar-like feature와 같은 특수한 형태의 검출 방식이 아닌, Network의
반응 정도로 대상을 검출하는 방식은 사각형으로 사물을 구분하는 방식과는
달리 유연하고 고차원적인 Feature를 가진 문제들 대해서도 해법을 제시할 수
있을 것으로 보입니다.
본 주제를 이어가면, 다른 인종이 가지는 피부색의 차이나, 인종별 얼굴
형태의 미세한 차이를 구분하는 등의 방식으로 확장할 수 있을 것으로
전망됩니다