읽은 이유:
Mediapipe face detection 에서 해당 논문을 기반으로 face detection을 사용
논문 내용:
Inspired by
- 가벼운 feature extraction network : MobileNetV1/V2
- GPU-friendly anchor scheme : SSD (Single Shot MultiBoxDetector)
- tie resolution strategy : non-maximum suppression(가장 큰 스코어의 bbox만 남기고 나머지는 제거) 을 대신함
Main contributions
- Inference speed 와 관련하여:
- MobileNetV1/V2의 구조와 관련 있는 very compact feature extractor convolutional neural network
- 효과적인 GPU사용을 목표로, SSD로부터 수정된 GPU-friendly 한 anchor scheme
- Inference speed 와 관련하여:
- non-maximum suppression을 대신하는 tie resolution strategy
AR pipelines를 위한 Face Detection
- front-facing과 rear-facing cameras를 위한 분리된 모델 제공.
- 6개의 facial keypoint -> face rotation(roll) 추정에 도움을 준다
- eye centers(2)
- ear tragions(2)
- mouth center(1)
- nose tip(1)
Model architecture and design
Enlarging the receptive field sizes
bottle neck: 5 x 5 kernel
MobileNetV2 의 bottleneck은 이후 depth-increasing expansion 과 depth-decreasing projection pointwise convolutions을 포함하고 있는데(비선형성에 의해 분리된), 이 부분을 바꿔서 residual connection 이 BlazeFace의 bottleneck에 있습니다. 이 bottlenecks는 "expanded"(increased) channel resolution 안에서 작동됩니다.
결과적으로 depthwise convolution의 낮은 오버헤드가 이 두 개의 pointwise convolutions의 사이에 다른 레이어 같은 것을 넣을 수 있게 허용해주고, 이것은 receptive 필드 크기 진행을 더욱 가속화시키게 됩니다. 이 구성이 double BlazeBlock의 본질이고, BlazeFace의 상향 추상화 레벨 레이어들을 위해 선택하는 bottleneck으로써 사용됩니다.
Face extractor
front-facing camera model을 위한 feature extractor에 집중했고, 이것은 더 작은 객체 크기의 범위를 담당해서 더 낮은 처리 요구를 가집니다.
- RGB input 128 x 128 pixels
- 5 single BlazeBlocks, 6 double BlazeBlocks 로 구성된 2D convolution
- highest tensor depth: 96
- lowest spatial resolution: 8 x 8 (이건 ssd와 다릅니다. ssd는 resolution을 1x1로 줄입니다.)
Anchor scheme
pre-defined fixed-size base bounding boxes: priors - in SSD, anchor in Faster-R-CNN
(왼쪽) aggressive downsampling 은 계산적인 리소스 최적화를 위한 방법이기도 합니다. SSD 모델은 predictions를 사용합니다.(2x16x16 + 2x8x8 + 2x4x4 + 2x2x2 = 680) 그러나 Pooling Pyramid Network (PPN) 구조는 추가적인 계산들은 불필요할 수 있습니다. 특정한 feature map resolution에 도달한 이후에.
(오른쪽) 8×8, 4×4, 2×2 해상도의 픽셀당 2개의 앵커를 8×8의 6개의 앵커로 교체했습니다. (2x16x16 + 6x8x8 = 896)사람 얼굴의 가로세로 비율의 편차가 제한적이기 때문에, anchors를 1:1 비율로 제한하는 것은 정확한 얼굴 검출을 충분히 찾도록 합니다.
Post-processing
전형적으로 non-maximum suprression 시나리오에서, anchors 중 오직 하나만 "이기고" 그것은 최종 알고리즘의 결과로써 사용됩니다. 이런 모델이 비디오 프레임에서 적용될 때, 그 예측은 다른 anchors 사이에서 변동하는 경향이 있고, 일시적인 jitter(human perceptible noise, 인간이 감지할 수 있는 노이즈) 를 나타냅니다. 이런 현상을 최소화하기 위해 suppression 알고리즘을 bledning strategy로 대체하였습니다. 이 blending strategy 는 bounding box의 regression parametes를 겹쳐지는 예측들 사이에서 weighted mean으로써 추정합니다. 이것은 원래 NMS 알고리즘에 추가비용이 더이상 거의 들지 않습니다.
Experiments
train: dataset of 66K images
evaluation: private geographically diverse dataset consisting of 2K images
Applications
- 2D/3D facial keypoints
- contour
- surface geometry estimation
- facial features
- expression classification
- face region segmentation
컴퓨터 비전파이프라인에서 에서 이후 작업은 적절한 얼굴 크롭 측면에서 정의될 수 있습니다. BlazeFace에 의해 제공되는 몇몇의 faical keypoint 추정치와 함께 조합하여, 이 크롭은 회전할 수 있어서 얼굴이 중간에 오도록하고, scale-normalized 그리고 roll angle을 0에 가깝게 만들 수 있도록 합니다.
Figure 3은 BlazeFace의 결과가 어떤지 보여줍니다. predicted bounding box와 6개의 얼굴 keypoints(red), 은 더 복잡한 얼굴 컨투어 측정 모델이 조금 확장한 크롭에 적용함으로써 더 세분화됩니다. 더 자세한 keypoints는 더 정확한 bounding box estimate (green)을 산출해내서 face detector를 실행할 필요없이 이어지는 프레임에서 트래킹을 위해 재사용될 수 있습니다. 이 계산 절약 전략의 실패를 감지하기 위해, 컨투어 모델은 얼굴이 현재인지 아닌지 감지할 수 있고 제공된 사각형 크롭에 맞춰 합리적으로 정렬되어있는지도 감지할 수 있습니다. 이 조건이 위배될 경우, BlazeFace face detector는 모든 비디오 프레임에서 다시 실행됩니다.
References
BlazeFace: https://arxiv.org/abs/1907.05047
NMS(non-maximum suppression) : https://ctkim.tistory.com/98
'공부 > 논문' 카테고리의 다른 글
VITS (0) | 2023.01.06 |
---|---|
RCNN : Rich feature hierarchies for accurate object detection and semantic segmentation tech report (v5) (0) | 2022.12.24 |
ResNet: Deep Residual Learning for Image Recognition 리뷰(작성중) (0) | 2022.12.24 |
A Survey on Modern Recommendation System based on Big Data (0) | 2022.11.26 |
Real-time Facial Surface Geometry from Monocular Video on Mobile GPUs (0) | 2022.04.08 |