joint Face Detection and A lignment using Multi – task Cascaded Convolutional Networks

 

 

 

 

1. 서론

얼굴탐지가 어려운 이유

– 조명, 포즈, 겹침등

문제를 해결하기 위해

– 3개의 Multi Task CNN을 사용하여 얼굴과 랜드마크를 탐지하고,

– Online hard Sample mining 전략을 사용하여 훈련하는 방법을 제안

 

* 얼굴검출(Face Detection)

* 얼굴 랜드마크

과거에는 아래의 기술들을 사용함

–  Haar-Like features(유사 하르 특징) and AdaBoost

– Deformable part models (DPM)

최근에 CNN을 사용함

– 얼굴탐지를 할때 Deep CNN을 사용하여 좋은 성과를 얻었으나, 너무 복잡한 CNN 구조때문에 훈련시간이 너무 걸리기도 하고

– Cascaded CNN도  얼굴탐지와 랜드마크간의 calibration문제로 추가로 연산이 들어가는 등 약간의 문제가 있었음

– 얼굴 정렬도 과거에는 Regression-Based와 Template fitting approache가 있었으나, 최근에 역시 Deep learning이 좋은 성과를 발휘함

– 얼굴탐지와 얼굴정렬은 서로 연관된 문제이나 과거에는 서로 무시하고 진행했었음

얼굴탐지와 얼굴정렬을 합쳐서 문제를 해결할려는 시도(Joint)

– Multi Task CNN이 성능이 좋았으나, 처음 얼굴탐지 박스가 이상하면 정확도도 낮아짐

– 그래서 훈련할때 보다 좋은 샘플로 훈련할수 있게 적용함(Hard sample mining)

* Hard sample mining :

– positive example과 negative example을 균형적으로 학습하기 위한 방법

– 단순히 random하게 뽑은 것이 아니라 confidence score가 가장 높은 순으로 뽑은 negative example을 뽑아서 훈련 + random하게 뽑은 positive example

총 60개의 샘플을 뽑는데

– Iou가 0.3 이하면 negative (0)

– Iou가 0.65 이상이면 positive (1)

– Iou가 0.4 이상 0.65미만이면 Part (-1)

 

* Iou란?(Intersection over union)

 

얼굴탐지와 정렬을 합쳐서 Cascade CNN을 제안

– 총 3단계로 구성

– 1 stage : 후보자 windows를 얇은 CNN을 통해 제공

– 2 stage : 1에서 온 후보자중 얼굴이 아닌 windows를 약간 복잡한 CNN을 통해 제외해서 성능개선

– 3 stage : 더 강력한 CNN을 사용해서 2에서 온 결과를 가지고, 얼굴탐지와 랜드마크를 검출함

 

2. DataSet

WIDERFace : http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/

Celeba : http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html

Annotations

– 사이트의 주석은  x1, y1, width, height

– 이것을 x1, y1, x2, y2로 변환하여 사용(근데 소수점은 어디서 나왔는지 확인불가)

 

3. 접근방법

A. 전체네트워크

– 얼굴을 검출하고자 하는 이미지를 여러 사이즈로 줄여 Image pyramid를 만든다.

* Image Pyramid란?

일단 scale부터

박스 스케일이 작으면 곡선을 감지 못함. 박스가 크면 곡선을 감지함

다시 아래 예를 보면

큰 스케일로 보면 전체가 보이고, 작은 스케일로 보면 부분이 보인다.

여기서 부터 헤깔리는데,

여러 Scale을 모아놓은것이 Scale space이고, Scale을 변화시키는 가장 간단한 방법이

이미지의 사이즈를 변화 시키는 것이고, 변화된 사이즈의 이미지를 모아놓은것은

이미지 피라미드라 한다.

오른쪽으로 갈수록 디테일 한 면에서 부족해지고(blur)

이미지 사이즈가 작아질수록 스케일은 커진다.

그러면 이미지에 가우시안 필터를 사용해 Blur를 주면 어떻게 될까?

Detail한 부분이 사라지므로 Image의 스케일은 커지게 된다.

결국 사진의 특징점을 뽑기위해 이미지 피라미드를 만들고 PNET을 태워서

후보자 windows를 검출하게 된다.

왼쪽은 12개, 가운데는 6개, 마지막 흐린 이미지는 3개만 나온다고 가정하면

마지막 이미지는 스케일이 크기 때문에 정말 강한 특징만 남고 사라진다고 생각하면 된다.

 – Stage 1(Pnet) : 이미지 피라미드로부터 넘어온 여러 이미지를 Pnet에 넘긴다.

Pnet은 Fully convolution network이고 역할은 후보자 windows를 선택

FCN이라 image에 사이즈가 ?,?로 표시된다.

여러개의 후보자 박스가 여러 스케일에서 예측되고, 예측된 박스를

NMS(non-maximum suppression)을 통해 합친다.

* NMS(non-maximum suppression)이란?

여러 박스가 겹치면 가장 확실한것 하나만 남기는 방식

– Stage 2(Rnet) : NMS로 후보자를 제거 한것을 다시 약간 복잡한 Rnet에 넘긴다.

RNet는 얼굴이 아닌 후보자들은 전부 제거 한다. 그리고 NMS로 다시 합친다.

– Stage 3(Onet) : Rnet이랑 비슷하지만 좀더 복잡한 CNN을 사용한다.

얼굴의 랜드마크 정보를 출력한다.

 

B. CNN 구조

 

C. 훈련방법

CNN Detector : Classification(얼굴이냐 아니냐), Bounding box reg, facial landmar

1) Face Classification : 2 class (face or non face)

cross entropy loss 사용

2) Bound box regression : GT(Ground Truth)랑 거리를 최소화(Euclidean loss)

 

3) Facial landmark localization : Bounding box랑 같다. 거리를 최소화 (Euclidean loss)

 

4) Multi-source training: 각 데이터중 loss를 쓰지 못하는것은 0으로 세팅하여 훈련함

예) Non Facial데이터는 2번 3번 로스가 0

5) Online Hard sample mining:

답이 아닌 어려운 데이터를 훈련데이터에 넣어서 훈련

논문에서는

IOU가 0.3 이하 Negative 0.65이상이 Positive 그 사이가 Part

– Face / Non Face를 가지고 Classification

– B Box gression은 Part와 Positive만 가지고 훈련

– 랜드마크는 랜드마크 데이터로 훈련

 

* Git Hub에 나온 훈련방법

(1) 훈련데이터를 다운받는다(WIDER 등등)
(2) PNET을 위한 데이터 12 x 12 를 준비한다.(Annotation 해석 및 Pos, Par, Neg 분리, Pos중에서 랜덤하게 flip 및 rotate실시)
(3) Face landmark 12 x 12 데이터도 준비한다(Annotation 해석)
(4) 두개의 데이터를 합쳐서 PNET용 훈련 데이터를 만든다.
(5) PNET 훈련
(6) PNET훈련이 끝나면 Pnet의 결과로 24×24의 Hard Sample 데이터를 만들다.
(7) 랜드마크 훈련데이터는 24×24로 다시 만든다
(8) 두개의 데이터를 합쳐서 RNET 훈련 데이터를 만든다.
(9) RNET 훈련
(10) RNET훈련된 결과로 48 x 48의 Hard Sample 데이터를 만들다.
(11) 랜드마크도 48×48로 만든다.
(12) 두개의 훈련데이터를 합쳐서 ONET 훈련데이터를 만든다.
(13) ONET 훈련

 

4. 결론

많은 데이터에서 MTCNN으로 검증한결과 훌륭한 결과를 냈음

추후에 얼굴검출과 얼굴정렬처럼 관련된 다른 얼굴 분석 테스크를 합쳐서 훈련하면

더욱더 성능이 좋아질듯 함.

 

 

http://darkpgmr.tistory.com/137

http://bskyvision.com/144

https://jamiekang.github.io/2017/05/28/faster-r-cnn/

Click to access 1604.02878.pdf

Leave a Reply

Your email address will not be published. Required fields are marked *