Depth estimation은 모바일 환경에서 필요한 컴퓨터 비전 기술 중 하나이지만 현재 제안된 솔루션들은 계산 비용이 많이 들어 장치에서의 추론 작업이 힘들었습니다. 본 논문은 이러한 문제점을 해결하기 위해서 여러 가지 방법들을 적용해보고 그 결과를 정리한 내용입니다.
1. Environments
- Raspberri pi 4 (Broadcom BMC2711, Cortex-A72, 1.5 GHz)
- Raspberry Pi OS (linux)
- TensorFlow Lite 2.5.0 Linux build
2. Dataset
- RGB-16bit-depth image pairs was collected using ZED stereo camera
- average depth estimation error of less than 0.2 [m]
- object located closer than 8 [m]
- around 8.3k VGA image pairs (640x480 pixels)
3. Scoring System
- Performance Measure
- Root Mean Squared Error (RMSE, absolute depth estimation accuracy)
- Relative Depth: Scale Invariant Root Mean Squared Error (si-RMSE, relative position of the object)
- Average $\log_{10}$ and Relative (REL) error
Final Score
$$ Final Score = \frac {2^{-10 \cdot si - RMSE}}{C \cdot runtime}$$
4. Results and Discussion
- 참여 140팀 중 10팀이 완료
- 모든 참가자가 encoder-decoder 기반 architecture를 적용함.
- 거의 대부분의 참가자가 image classification backbone을 사용했고, 대부분의 architecture가 성능 개선을 위해 encoder-decoder 간의 skip-connection을 사용함.
- HIT-AIIA 팀만 EfficientNet-B1을 사용하고 나머지는 mobilenet을 사용
- knowledge distillation도 사용됨.
- 가장 좋은 성능을 나타낸 Tencent GY-Lab. 의 경우 FastDepth 모델을 사용하여 Raspberry-pi 4에서 10 FPS 수준의 속도를 나타냄.
5. Challenge Method
(1) Tencent GY-Lab
- MobileNet v3 기반 encoder를 적용한 U-Net like architecture 적용
- 각 output block은 decoder feature를 concate 하는 Feature Fusion Module (FFM)을 적용하여 신뢰도를 높임
- ViT-Large 기반 teacher network를 먼저 학습시킨 후 knowledge distillation 적용
- PyTorch → ONNX → TFLite로 변환
(2) SMART
- MobileNet v1 backbone을 적용한 FastDetph architecture 적용
- ResNeSt-101 기반 Teacher Network를 먼저 학습시킨 후 knowledge distillation 적용
(3) Airia-Team 1
- MobileNet v3 backbone을 이용하여 dense feature 추출
- Residual Feature Distillation Blocks (RFDB)과 Single Residual Blocks (SRB)를 적용함.
경량화를 할 때 Residual Block이나 Bottleneck, Prunning 밖에 안 사용해봤는데 encoder-decoder 기반 architecture나 konwledge distillation도 한번 사용해봐야겠습니다.