S3FD- Single Shot Scale-invariant Face Detector (간단히)
21 Mar 2019 | Deep learning Face detectionS$^{3}$FD: Single Shot Scale-invariant Face Detector (간단히)
Original paper: https://arxiv.org/pdf/1708.05237.pdf
Authors: Shifeng Zhang Xiangyu Zhu Zhen Lei* Hailin Shi Xiaobo Wang Stan Z. Li
Codes: Google에 s3fd github 치면 많이 나옴
Abstract
- 본 논문에서는 Single Shot Scale-invariant Face Detector (S3FD)라 불리는 real-time face detector를 제안한다. S3FD는 다양한 face scale에 대하여 단일 deep neural network를 사용하여 face detection을 수행하며, 특히 작은 얼굴을 잘 찾는다. 특히, 본 논문에서는 anchor based detector들이 object가 작은 경우 성능이 급격히 나빠지는 일반적인 문제를 해결하려고 시도하였다. 본 논문에서는 다음의 3 가지 측면에 대한 기여를 하였다.
- 1) 다양한 scale을 갖는 얼굴에 대한 처리(detection)를 잘 하기 위해 scale-equitable(공정한) face detection framework를 제안한다. 논문에선 모든 scale의 face들에 대해 detection이 충분히 가능하도록 layer의 넓은 범위에 anchor를 바둑판 식으로 배열한다. 게다가 논문에선 효과적인 receptive field와 논문에서 제안하는 equal proportion interval principle(동등 비례 간격 원칙)에 따라 anchor scale을 재 디자인했다.
- 2) 작은 얼굴들에 대한 recall rate를 높히기 위해 scale compensation(보상) anchor matching strategy를 적용했다.
- 3) Max-out background label을 통하여 작은 얼굴들에 대한 false positive rate를 줄였다.
- 위의 결과로써, 논문에서 제안하는 모델은 AFW, PASCAL face, FDDB, WIDER FACE dataset의 common face detection benchmark에 대해 SOTA detection 성능을 얻었으며 VGA-resulution image에 대해 Nvidia Titan X(Pascal)에서 36FPS로 작동 가능하다.
4. Experiments
- 본 섹션에선 scale-equitable framework, scale compensation anchor matching strategy, max-out background label에 대한 효과를 확인하며, 최종 모델의 common face detection benchmark를 수행한 후 inference time에 대해 다룬다.
4.1. Model analysis
- 논문에선 WIDER FACE validation set을 이용한 다양한 실험을 통해 제안하는 모델을 분석했다. WIDER FACE validation set은 easy, medium, hard subset을 갖고 있으며, 대략적으로 각각 크고, 중간, 작은 크기의 얼굴들을 갖고 있다. 이 benchmark는 논문에서 제안하는 모델을 평가하기 적절하다.
- Baseline. 논문에서 제안하는 방법들의 contribution들의 평가를 위해 몇 가지 baseline에 따른 비교실험을 수행했다. 제안하는 S3FD는 RPN[38]과 SSD[26]에서 영감받아졌으며 두 face detector들을 그대로 baseline으로 학습시키기 위해 사용했으며 이름을 각각 RPN-face와 SSD-face로 marking했다. [38]과는 다르게 RPN-face는 VGG16의 conv5_3 layer에 정사각형모양의 (16, 32, 64, 128, 256, 512) 6개 scale을 갖는 anchor를 붙여 비교를 보다 견고하게 만들었다. SSD-face는 기본 SSD의 구조와 anchor 세팅을 따랏다. 나머지 것들은 논문에서 제안하는 S3FD와 동일하다.
- Ablative Setting. S3FD를 더 잘 이해하기 위해 각각의 제안하는 component가 최종 성능에 영향을 끼치는지 평가하기 위해 ablation experiment를 수행했다. 실험에선 세 가지 다른 세팅에 대한 실험을 수행했다. 1) S3FD(F): 이 모델은 scale-equitable framework만을 사용한다(constructed architecture and designed anchors). 그리고 다른 두 조건을 제거한다. 2) S3FD(F+S): 이 모델은 scale-equitable framework와 scale compensation anchor matching strategy를 적용한다. 3) S3FD(F+S+M): 이 모델은 모든 제안하는 방법에 다 적용된 모델로, scale-equitable framework와 scale compensation anchor matching strategy, 그리고 max-out background label이 적용된 모델이다. 각 실험 결과는 Table 3에 나와있다.
4.2. Evaluation on benchmark
- 제안하는 S3FD 모델에 대한 AFW[63], PASCAL Face[52], FDDB[13], WIDER FACE[56]을 이용한 평가를 진행한다. 몇 실험 결과는 supplementary materials에 실려있다.
- AFW dataset. 이 데이터셋은 205장의 이미지와 473개의 레이블된 얼굴이 존재한다. 논문에선 잘 알려진 몇 방법과 논문에서 제안하는 방법의 실험 결과를 비교한다. 여기엔 몇몇의 commercial face detector들이 포함되어있다. 실험 결과는 Figure 5에 실려있으며, S3FD의 성능이 크게 좋다.
- PASCAL face dataset. 이 데이터셋은 1,335 개의 레이블링된 얼굴들이 851개의 이미지에 저장되어 있으며, 다양한 face appearance와 pose variation이 존재한다. 이 데이터셋은 PASCAL test 데이터셋의 person label에서 얻어졌다. Figure 6에서 실험 결과가 나오며, 다른 방법들에 비해 제안하는 모델이 더 좋은 성능을 보인다.
- FDDB dataset. 이 데이터셋은 5,171개의 얼굴이 2,845개의 영상에 저장되어 있다. 여기엔 두 개의 evaluation 문제가 존재한다. 1) FDDB는 F3SD가 사각형의 bounding box를 출력하는것과 달리 타원형의 ground truth를 갖는다. 이러한 불일치로 인해 continuous score에 지대한 영향을 미치며, 따라서 논문의 모델이 bounding box가 아닌 타원형 bounding을 치도록 regressor를 학습시켰다. 2) FDDB는 많은 unlabelled face를 가지므로, 그 결과 많은 false positive face가 있더라도 높은 점수가 나오게 된다. 따라서 논문에선 수동적으로 실험 결과를 review하고, 238개의 unlabeled face를 추가했다. 마지막으로 제안하는 모델을 다양한 SOTA 모델들에 대해 실험을 진행했다. 그 결과는 Figure 7(a)와 (b)에서 보여진다. 제안하는 S3FD는 SOTA 성능을 달성했으며 모든 다른 모델에 비해 큰 차이로 좋은 성능을 보이고 ROC curve를 나타낸다. 이것은 제안하는 S3FD가 얼굴의 제한 없이 robust함을 의미한다.
- WIDER FACE datset. 이 데이터셋은 32,203개의 이미지에 393,703개의 레이블링된 얼굴이 존재하며 높은 회전각이나 다양한 scale, pose, occlusion을 포함한다. 데이터셋은 40%의 training, 10%의 validation, 50%의 testing 데이터셋으로 이루어져있다. 게다가 이미지들은 3 개의 level로 나뉘어있다. (Easy, medium, hard). 이는 detection의 어려움에 따른 분류다. 학습과 validation 셋은 온라인에서 접근 가능하나 test셋은 결과가 서버로 보내져 채점되어 돌아온 precision-recall curve를 분석하여 이용 가능하다. S3FD는 training 셋에서만 학습되었고 validation 셋과 test셋 모두에서 평가되었으며, 다양한 face detection 방법들과 함께 평가되었다. Precision-recall curve와 mAP는 Figure 8에서 보여진다.
- 제안하는 모델이 큰 차이로 다른 모델들을 제쳤으며, 특히 small face에 대한 실험 결과가 좋다. 각각 0.937 (Easy), 0.924 (Medium) and 0.852 (Hard) for validation set, and 0.928 (Easy), 0.913 (Medium) and 0.840 (Hard) for testing set의 실험 결과를 보인다. 이는 제안하는 방법의 유효성 뿐만 아니라 제안하는 방법이 작고 찾기 어려운 얼굴을 잘 찾는다는 것을 증명한다.
4.3. Inference time
- Inference 동안 제안하는 모델은 많은 box들을 출력한다.(VGA 해상도 이미지에서 25,600개의 박스). Inference time을 가속화하기 위해 대부분의 박스들을 0.05의 confidence threshold로 필터링 하고, NMS를 적용하기까지 400개의 box를 남긴다. 다음으로 NMS를 jaccard overlap이 0.3일 때로 수행하며 200개의 박스를 남긴다. 실험은 Titan X(Pascal), cuDNNv5.1, Intel Xeon E5-2683v3@2.00GHz에 대한 시간을 측정하였다. VGA 해상도 영상에 대해 batch size가 1이고 단일GPU를 사용할 때, 제안하는 모델은 36FPS로 동작하였으며 실시간 동작이 가능하다. 게다가 80%가량의 forward time이 VGG16 네트워크에서 소모되므로, 더 빠른 네트워크를 사용 할 경우 속도를 더 향상 시킬 수 있을 것이다.
5. Conclusion
- 본 논문에서는 새로은 face detector를 소개하고, 일반적인 anchor based detection method의 문제인 작은 객체를 잘 찾지 못하는 것을 해결하였다. 논문에선 문제의 이유를 측정하고 wide range of anchor-associated layer를 갖고 다양한 크기의 얼굴을 잘 다룰 수 있는 합리적인 scale의 anchor들을 포함하는 scale-equitable framework를 제안하였다. 게다가 논문에선 작은 얼굴들의 recall rate를 높이기 위해 scale compensation anchor mathing strategy를 제안하였으며, 작은 얼굴들에서 false positive rate를 줄이기 위한 max-out background label을 제안하였다. 실험은 위의 세 방법을 포함하는 S3FD의 효과를 증명했으며 그 결과 여러 SOTA의 성능을 다양한 common face detection benchmark에 대해 크게 성능을 앞질렀다. 향후 연구에서, 저자들은 background patch들의 classification strategy를 향상시킬 예정이다. 이러한 background class를 어떠한 sub-category로 나누는 것은 향후 연구에 적용할 가치가 있다.