Algorithm/Paper

Face Alignment at 3000 FPS via Regressing Local Binary Features

빠릿베짱이 2015. 5. 8. 17:34
반응형

 Face Alignment at 3000 FPS via Regressing Local Binary Features

 [Paper[C++ Code] [Matlab]


▷ KEY NOTE

    1. 로컬 영역 기반 특징 추출을 이용한 랜덤 포레스트 학습

    2. 각 랜드마크마다 독립적으로 랜덤 포레스트 학습

    3. 독립적인 학습으로 인한 Shape Constraint를 잃어버릴 수 있는 단점을 전역 선형 학습을 통해 보상

           -> Dual coordinate descent method를 사용


■ Abstract

이 논문에서는 매우 효율적이고, 매우 정확한 얼굴 정렬을 위한 regression 방법에 대해 설명한다. 우리의 방법은 크게 두개의 새로운 요소로 구성된다. 

1) Local Binary Feature

2) 특징 학습을 위한 Locality Principle

Locality Principle은 각 랜드마크를 위해 독립적인 LBF를 학습하기 위해 가이드 역할을 한다. 획득된 LBF는 최종 출력을 위해 공동 선형 회귀 학습을 위해 사용된다. 우리의 접근법은 최신 문제에서 테스트를 수행하였을 때 가장 좋은 결과를 얻었다. 게다가 LBF를 추출하고 regressing을 수행하는데, 다른 것들과 비교하여 매우 빠르고 매우 작은 계산량을 요구한다. 몇십개의 랜드마크를 지역화하는데, 데스크탑에서 3000fps, 모바일에서 300fps를 보였다.


■ Introduction (생략)


■ Related Works(생략)


■ Regressing Local Binary Features




수식 1에서 linear regression matrix 와 특징 매핑 함수 는 알지 못한다. 우리 방법에서, 우리는 두개의 연속적인 단계를 통해 그들을 학습하는 것을 제안한다. 먼저, 각 랜드마크에 대한 LBF(Local Binary Feature)를 생성하기 위한 지역 특징 매핑 함수를 학습한다. 그리고, 를 얻기 위해 모든 지역 특징을 연결한다. 그 후, 우리는 선형 회귀 를 학습한다. 이러한 학습 과정은 케스케이드 구조와 같이 단계마다 반복된다. 그림 1은 제안하는 방법의 전체적인 그림을 보여준다.

。Learning local binary features 

특징 매핑 함수는 지역 특징 매핑 함수로 구성된다. 예를 들면, .

각 매핑함수는 독립적으로 학습된다. 학습을 위한 회귀 목표는 그라운드 트루스 형태와이 차이값 이다.



여기서 i는 모든 학습 샘플이고, 파이l은 에서 두개의 요소, (2l-1, 2l)을 추출하는 함수이다. 따라서 

는 i번째 샘플 영상에서 l번째 랜드 마크의 ground truth 2D 오프셋이다.


지역 매핑 함수를 학습하기 위해, 표준 regression random forest를 사용한다. 트리의 분할 노드는 pixel-difference feature로 학습된다. 각 분할 노드 학습을 위해, 우리는 500개의 랜덤한 특징을 검사하고, 가장 큰 분산 제거(maximum variance reduction) 효과를 갖는 특징을 선택한다. 테스트 결과 더 많은 특징을 사용해도 효과는 거의 없었다. 학습을 한 후, 각 리프 노드에는 리프노드에 포함된 모든 학습 샘플들의 평균 2D 오프셋 벡터가 저장된다. 


우리는 오직 랜드마크 주위의 로컬 영역에서 픽셀 특징을 추출하여 평가한다. 그런 로컬 영역을 사용하는 것은 제안하는 방법에서 매우 중요한 요소이다. 학습 과정에서, 각 단계의 최적 영역 크기는 cross validation을 통해 측정된다. 우리는 이것과 관련하여 3.3절에서 좀 더 자세히 다루도록 하겠다.


테스트하는 동안, 샘플은 각 트리의 리프 노드에 도달할때까지 방문한다. 랜덤 포레스트의 출력은 이러한 리프노드들에 저장된 출력의 합이다. 리프 노드의 총 개수가 D라고 가정하면, 최종 출력은 다음과 같이 다시 쓸수 있다.



여기서 는 2 by D행렬이며, 각 컬럼에는 리프노드에 대응하는 2D 벡터가 저장된다. 그리고 는 D차원 이진 벡터이다. 의 각 요소에는, 트리에서 테스트 샘플이 도달한 리프 노드는 1, 아니면 0을 갖는다. 그러므로, 는 매우 sparse binary vector이다. 에서 0이 아닌 요소들의 갯수는 포레스트에서 트리의 수와 같다. 이것은 D보다 매우 작다. 우리는 그러한 을 "Local binary features"라고 부르겠다. 그림 2는 LBF 추출과정을 보여준다.




。Learning global linear regression

랜덤 포레스트를 학습 한 후, 우리는 이진 특징  뿐만 아니라, local regression output 도 획득하였다. 하지만 우리는 은 무시한다. 대신에 우리는 이진 특징을 글로벌 특징 매칭 함수 으로 연결하고, 수식 4를 만족하는 전역 선형 프로젝션 를 학습한다.


 


첫 번째 항은 regression target이며, 두번째 항은 의 L2 Regularization이다. 는 Regularization 강도를 조절한다. Regularization는 특징의 차원이 매우 높기 때문에 필요하다. 우리 실험에서 68개의 랜드마크에서 의 차원은 100K+였다. Regularization 없는 경우, 오버피팅되는 결과를 관찰하였다. 이진 특징의 경우 매우 sparse하기 때문에, 우리는 매우 큰 sparse linear system을 다루기 위한 dual coordinate descent method를 사용한다. 따라서 에 대한 목적함수는 quadratic 하며, 우리는 항상 전역 최적해에 도달할 수 있다.

우리는 그러한 전역 "relearing" 또는 "transfer learning"으로 성능이 향상되는 것을 찾았다. 우리는 이러한 결과에 두가지 이유가 있다고 생각한다. 

1) 랜덤 포레스트에 의한 지역적 학습은 리프 노드에 충분한 샘플들이 없기 때문에 매우 잡음이 많다.

2)  전역 regression은 매우 효율적으로 전역 shape constraint를 만족시키고, 폐색 또는 애매한 local appearance에 의한 지역 에러를 줄인다.


。Locality principle

앞에서 설명한 것과 같이, 우리는 두개의 중요한 특징 학습에서 regularization 방법을 적용한다. 

1) 랜덤 포레스트 학습 시 랜드마크 간의 독립적으로 학습을 수행

2) 픽셀 특징은 해당 랜드마크의 로컬 영역에서만 선택

이번 절에서는 왜 그러한 선택을 했는지에 대해 설명하도록 한다.


- Why the local region?

먼저 2번 선택에 대해 살펴보자.  우리가 반지름이 r인 로컬 영역으로부터 특징을 선택하고, 어떤 하나의 랜드마크의 오프셋 를 예측하기를 원한다고 가정해보자. 직관적으로 최적 r은 의 분포에 의존적일 것이다. 만약 모든 학습 샘플에서 이 넓게 펼쳐져 있다면, 우리는 매우 큰 r을 사용할 것이며, 반대의 경우에는 작은 r을 사용할 것이다.


의 분포와 r간의 연관 관계를 연구하기 위해, ~~~~~~~~~~~~

각 분포에 대해, 우리는 실험적으로 다양한 반지름으로 학습을 수행하여 최적(테스트 에러 측면) 반지름을 결정했다. 우리는 포레스트에 같은 파라미터를 사용했다(트리 수, 트리의 깊이). 우리는 모든 랜드마크에 대해 실험을 반복하고, 최적 영역 반지름의 평균을 획득하였다.



그림 3은 표준 편차의 3개 분포를 보여준다. 0.05, 0.1과 0.2 ( 얼굴 영역 크기로 정규화된)

최적 반지름은 0.12, 0.21, 0.39이다. 이러한 결과는 최적 반지름은 의 표준 편차에 거의 선형적이라는 것을 가리킨다. 그러므로, 우리는 다음과 같은 결론을 얻었다. 계산 능력의 한계가 있다면(학습 시 무수히 많은 특징을 검사할 것인가?), 전체 얼굴 영역 대신에 로컬 영역에서 특징 후보를 고려하는것이 더 효율적이다.





케스케이드 학습 시, 각 스테이지에서, 우리는 검증 집합을 정하고, cross validation을 통해 가장 좋은 영역 반지름을 찾았다. 그림 4는 스테이즈 1,3,5에서의 가장 좋은 반지름을 보여준다. 기대헀던 것과 같이, 반지름은 스테이지를 지날수록 점차적으로 줄어든다. 왜냐하면, 케스케이드 하는 동안, regressed face shape의 분산이 감소하기 때문이다.


- Why a single landmark regression?

각 랜드마크의 독립적인 regression은 부분 최적을 나타낸다. 예를 들면, 우리는 여러개의 랜드마크에서 공유될 수 있는 좋은 특징을 잃을 수도 있다. 그러나, 우리는 지역 regression이 전역 학습보다 좀 더 이점이 있다고 주장한다.


첫째, 지역 학습의 특징 풀은 잡음이 덜하다. 물론 전역 학습에서는 좀 더 많은 특징을 사용할 수 있다. 하지만, "signal-to-noise ratio"은 전역 학습에서 매우 낮기 때문에 특징을 선택하는 것이 어렵다.


둘째, 지역 학습을 사용하는 것이 지역 예측을 의미하진 않는다. 우리의 접근법은 두번째 단계에서 전역 예측을 위해 모든 지역 특징을 이용한다. 랜드마크의 지역학습은 독립적이기 때문에, 특징 결과는 좀 더 다양하고, 상호 보완적이다?, 그러한 특징은 두번째 단계에서 수행하는 전역 학습을 위해 더 적당하다.


마지막으로, 다른 스테이지에서 지역 학습은 적응적이다. 앞 쪽 단계에서는 로컬 영역의 크기는 크고, 실제로 로컬 영역은 여러개의 랜드마크를 커버한다. 하나의 랜드마크로부터 학습된 특징은 이웃 랜드마크를 도울 수 있다. 이 후 단계에서는 영역의 크기는 작고, 지역 regression은 각 랜드마크마다 미세 조정을 한다. 로컬 학습은 실제로 뒤 스테이지에서 좀 더 적당하다.

물론 전역 학습이 우리의 지역 학습보다 열등하다고 주장하는 것은 아니다. 우리는 단지, 지역 학습이 실제적인 이유로 인해 주로 좀 더 좋은 성능을 제공한다고 믿는다. 제한된 학습 능력(학습 데이터 수, 학습 시간, 컴퓨팅 리소스, 알고리즘의 파워)이 주어졌을 때, 로컬 접근법은 오버피팅을 야기 시킬 수 있는 매우 큰 전역 특징 집합에 대해 좀 더 노이지한 특징을 걸러낼 수 있다. 








반응형