Autonomous Driving/1. Perception

Ch01. Face Recognition - 2) Face Detection - RetinaFace

Dogun Kim 2024. 9. 2. 20:58

CH01. FaceRecognition


<목차>

1-1. Face Recognition 이론 소개

 

1-2. Face Detection -대표 모델 및 코드 소개

1-3. [실습1] Dlib및 Retina Face 코드 구현

 

1-4. Face Alignment -대표 모델 및 코드 소개

1-5. [실습2] 황금비율 계산

 

1-6. Face Recognition -대표 모델 및 코드 소개

1-7. [실습3] 그룹 가수 사진에서 각각 멤버 인식하기

 

https://arxiv.org/abs/1905.00641

 

RetinaFace: Single-stage Dense Face Localisation in the Wild

Though tremendous strides have been made in uncontrolled face detection, accurate and efficient face localisation in the wild remains an open challenge. This paper presents a robust single-stage face detector, named RetinaFace, which performs pixel-wise fa

arxiv.org

 

1-2. Face Detection - 대표 모델 및 코드 소개

위 1-1에서 얼굴 인식 Face Recognition 의 5가지 과정을 알아봤다.

이제 첫 번째 과정인 얼굴 검출 Face Detection의 대표 모델과 구현에 대해 알아볼 것이다.

 

  • Face Detection?

얼굴을 인식하기 위해 얼굴 영역을 캡쳐하는 것이다. 주로 얼굴 인식의 기반 기술로 사용된다. 얼굴이라고 판단된 곳에 

bounding box를 만든다.

 

 

  • Retina Face - Face Detection 

Retina Face를 설명하는 대표 사진. 다양한 Task를 한번에 학습시켜 성능을 높인다..

주요 포인트는 얼굴을 인식하기 위한 다양한 Task에 대한 각각의 로스를 정의하고, 모든 Task를 한 번에 학습시키는 Multi-task learning을 적용한 것이다. 이를 통해 Face Detection 성능을 향상시켰다.

 

자연 상태에서의 얼굴 감지가 여전히 어려운데, 이 논문은 이에 사용할 수 있는 강력한 Single-stage 얼굴 감지기를 제시한다. RetinaFace는 extra-supervised 와 self-supervised의 multi-task learning(MLT)을 통해  다양한 얼굴 크기에서 픽셀 단위 얼굴 위치 파악을 수행한다. 이를 통해 다음과 같은 이점을 얻을 수 있다.

더보기

Main Contributions

(1) WIDER FACE 데이터 세트에서 5 개의 얼굴 랜드 마크에 수동으로 주석을 달고이 추가 감독 신호의 도움으로 단단한 얼굴 감지의 상당한 개선을 관찰

(2) 기존의 지도 브랜치와 병렬로 픽셀 단위의 3D 모양 얼굴 정보를 예측하기 위해 자체지도 메시 디코더 브랜치를 추가합니다.

(3) WIDER FACE 하드 테스트 세트에서 RetinaFace는 최첨단 평균 정밀도 (AP)보다 1.1 % (91.4 %에 해당하는 AP 달성) 성능이 뛰어납니다.

(4) IJB-C 테스트 세트에서 RetinaFace는 최첨단 방법 (ArcFace)을 사용하여 얼굴 확인 결과를 개선 할 수 있습니다 (FAR = 1e-6의 경우 TAR = 89.59 %).

(5) 경량 백본 네트워크를 사용함으로써 RetinaFace는 VGA 해상도 이미지를 위해 단일 CPU 코어에서 실시간으로 실행할 수 있습니다.

 

추가 주석 및 코드는 https://github.com/deepinsight/insightface/tree/master/RetinaFace에서 사용할 수 있습니다.

 

 Based on a single-stage design, we propose a novel pixel-wise face localisation method named RetinaFace, which employs a multi-task learning strategy to simultaneously predict face score, face box, five facial landmarks, and 3D position and correspondence of each facial pixel.

• On the WIDER FACE hard subset, RetinaFace outperforms the AP of the state of the art two-stage method (ISRN [67]) by 1.1% (AP equal to 91.4%)

• On the IJB-C dataset, RetinaFace helps to improve verification accuracy (with TAR equal to 89.59% when FAR=1e-6). This indicates that better face localisation can significantly improve face recognition.

• By employing light-weight backbone networks, RetinaFace can run real-time on a single CPU core for a VGA-resolution image. • Extra annotations and code have been released to facilitate future research

즉 기존의 모델들에서는 성능이 떨어지는 Wider face 데이터 셋에서 효과적으로 사용할 수 있도록 MLT를 사용하여 성능을 개선한 모델.... 

결과.. 사진이 좀 무섭다.. 자연 상태의 사진에서 얼굴을 기가 막히게 뽑아냈다..


cf) 이해를 위한 용어 정리**

- 자기 지도 학습(Self-Supervised Learning)

레이블이 없는 데이터로부터 학습하는 인공지능 기법이다. 이 방법은 레이블이나 주석이 필요하지 않은 대신, 데이터 자체에서 학습 과제를 생성한다. 지도 학습과 비지도 학습의 중간쯤에 위치한다고 볼 수 있다. 지도 학습처럼 명시적인 목표를 가지고 학습하지만, 비지도 학습처럼 레이블이나 주석이 필요 없다. 특히 데이터 레이블링에 많은 비용이 드는 경우 유용하다.

 

- Multi-Task Learning(MTL)

여러 Task들을 동시에 학습하는 방식이다. 이 방식은 기본적으로 여러 Task에서 수행하였을 때의 결과가 단일 Task에서 수행하였을 때의 결과보다 성능이 향상된다는 연구 결과에 기반한다. 아래 예시를 통해 이해할 수 있다. 

예시로 탁구공을 예측한다고 해보자. 탁구공의 스핀, 거리, 궤적등을 모두 동시에 예측하여 최적의 자세를 잡는 것이 따로 따로 예측하는 것 보다 더 성능이 좋아질 수 있다는 것이다. 즉 단일 Task를 수행하는 것 보다 성능이 높아질 수 있다.

 

다시 말하면 MTL는 서로 연관있는 개별 Task들을 동시에 학습하여 Main task의 성능을 높이거나 또는 여러 Task들의 네트워크 구조를 통합하므로 복잡도를 줄여 시간 복잡도를 단축하는 효과 또한 얻을 수 있다...

 

Retina에서도 각 Task를 MLT를 통해 학습하며 성능 향상을 보였다.

 

- Image Pyramid vs Feature Pyramid

1) Image Pyramid

한 개의 같은 이미지를 해상도를 다르게 하여(resize) 모델을 학습시킨다. 다양하게 decection 할 수는 있겠지만... 각 resized image에서 각각의 feature를 뽑아서 예측하기에 연산량이 매우 매우 크다. 크기 별로 각각 학습시키고 예측하는 단점을 가지기에 메모리, cost 문제로 딥러닝 모델을 학습시킬 때 잘 사용하지 않는다... 

 

2) Pyramid of Feature Pyramid*

한 번의 학습으로 low feature부터 high lever feature까지 한 번에 뽑아낼 수 있다. 모든 feature를 이용할 수 있는 장점을 갖는다.

 

- Two-stage vs Single(One)-stage Detector : Object Detection의 두 종류

Face Detection은 얼굴을 Detection하는 Object Detection의 한 종류라고 할 수 있다. 이러한 Object Detection은 1)  Two-stage와 2) Single(One)-stage 두 종류로 나눌 수 있다.

아래가 Two-stage이다.. 첫 번 째 과정에서 후보 세트인 노란 박스를 생성했다..

1) Two-stage Detectors

객체 감지 모델의 접근 방식으로 두 단계 과정을 거친다.

첫 번째 단계에서 이미지 내의 관심 영역(region of interest)의 후보 세트를 생성한다. 이 후보들은 주요한 객체가 있을 것으로 예상되는 영역이다.  두 번째 단계에서 위 후보 영역에 대해 실제 개체의  bounding box와 클래스 레이블을 예측한다. Two-stage는 당연히 상대적으로 높은 정확도를 보이겠지만, 계산 비용과 속도가 느릴 수 있다. 

대표적으로 R-CNN 등이 있다..

 

2) One-stage Detectors

객체의 bounding box와 클래스 레이블을 직접 한 번에 예측하는 모델이다. anchor에 대해 분류와 회귀 작업을 수행하여 최종 결과를 예측한다. 구현이 간단하고 속도가 빠르지만, Two-stage에 비해 일부 정확도가 낮을 수 있다...

대표적으로 YOLO, RetinaFace 등이 있다.. 

 

요약하면 객체를 감지할 때 한 단계를 사용할 지, 관심 영역의 후보 세트를 만드는 단계를 추가하여 거기서 감지를 할지.. 하는 두 단계를 사용할지를 결정하는 것이다.  각 장단점이 존재하므로 어떤 모델을 사용할지는 주어진 문제에 따라 적절히 선택할 필요가 있다. 

 


 

모르는 단어가 너무 많아서 딴 길로 샜다.. RetinaFace를 다시 공부해보자..

 

 

  • Context Modeling

low level feature부터 high level feature까지 다뤄서 기존의 모델들에서는 성능이 떨어지는 Wider face 데이터 셋에서 효과적으로 Face Detection 성능을 높이는 역할을 한 것이 바로 Context Modeling이다.

 

cf. 위에서 배운 Feature Pyramid가 사용된 것이다.

합성곱의 일반적인 커널이 아니라, 커널의 위치에 offset을 주어서 합성곱 연산 Deformable convolutions를 사용하여 Context modeling 하였다.

 

일반적인 합성곱은 object scale에 관계없이 고정된 영역의 특징을 추출하지만, Deformable convolutions을 사용하면 object scale에 따라 receptive field가 다르게 된다.

 

 

  • MLT : Multi-task Loss

RetinaFace는 각 Task의 loss를 합친 loss function을 사용한다. 이 합쳐진 손실 함수를 최소로 만들며 여러 Task 를 한 번에 학습시키고 이를 통해 Main Task인 Face Detection 성능을 높혔다.

Multi-task Loss

각 Task의 Loss에 중요도에 따라 parameter λ를 설정하였다. 이를 통해 각각의 중요도를 조절할 수 있다.

 

L_pixel loss는 아래와 같은 두가지의 loss가 합쳐진 것이다.

References https://arxiv.org/pdf/1904.03525.pdf

 

 

  • Experimental Results

아래에서 retinaFace가 one-stage이기에 빠름을 보여준다.

 

 

  • Conclusion
더보기

We manually annotate five facial landmarks on the WIDER FACE dataset and observe significant improvement in hard face detection with the assistance of this extra supervision signal.

 

• We further add a self-supervised mesh decoder branch for predicting a pixel-wise 3D shape face information in parallel with the existing supervised branches.

 

• On the WIDER FACE hard test set, RetinaFace outperforms the state of the art average precision (AP) by 1.1% (achieving AP equal to 91.4%).

 

• On the IJB-C test set, RetinaFace enables state of the art methods (ArcFace) to improve their results in face verification (TAR=89.59% for FAR=1e-6).

 

• By employing light-weight backbone networks, RetinaFace can run real-time on a single CPU core for a VGA-resolution image.

1) 자연 상태의 사진 WIDER FACE에 5개의 랜드마크를 추가적으로 주석을 달아 학습을 시켜 성능을 높혔다.

2) self-supervised 학습을 사용하여 성능을 높혔다. MTL을 보면 어디서 사용했는지 다시 한 번 확인할 수 있다.

3) WIDER FACE hard test set에서 당시 SOTA 성능을 보였다.

4) 얼굴 검증 Face verification의 성능 또한 높일 수 있었다.

5) 가벼운 backbone을 사용하기에 single CPU에서도 실시간 탐지를 할 수 있다.


 

 

 

 

 

 

 

 

 

 

 

'Autonomous Driving > 1. Perception' 카테고리의 다른 글

Ch01. Face Recognition - 1) Face Recognition  (2) 2024.09.02