SSD는 2015년 SSD: Single Shot MultiBox Detector(2015)라는 논문을 통해 발표되었다. Yolo와 같이 1-stage인 Object Detection모델이다. 하지만 속도와 정확도를 더 개선한 모델이라고 할 수 있다.


Abstract


SSD는 single deep neural network로 object detection을 수행하는 모델이다. SSD는 feature map마다 서로 다른 ratio와 scale의 box로부터 bbox을 추출하는 방식이다. 예측 단계에서는 모델이 각 bbox마다 점수를 산출하고 object의 모양에 가장 어울리는 bbox를 선택한다. 더 나아가 여러가지 해상도로 추출된 feature map을 combine해서 다양한 사이즈를 커버할 수 있다. SSD는 proposal을 생성하거나 feature를 resampling하는 과정을 제거했기 때문에 매우 간단하다. 이러한 특징은 학습을 용이하게 한다. PASCAL VOC, COCO, ILSVRC 데이터셋 등에서 우수한 정확도를 보였고 더 빨랐다. 300x300 이미지에 대해 74.3%mAP, 512x512에 대해서는 76.9%mAP를 달성했고 그 당시 SOTA인 Faster-RCNN의 성능을 능가하는 수치였다. SSD는 다른 모델들과 비교을 해도 더 작은 이미지에 대해서도 더 좋은 성능을 보였다.


Introduction


그 당시 object detection의 시스템은 bbox를 예측하고 pixel 또는 feature map을 resample하며 좋은 성능의 classifier를 적용하는 과정으로 이루어져 있었다. 이러한 과정은 여러 데이터셋에 대해 매우 우세한 경향이 있었다. 하지만 계산량이 많아 임베디드 시스템에는 적합하지 않았고 real-time도 불가능했다. 가장 빠른 모델이었던 Faster-RCNN도 고작 7FPS 뿐이었다. 속도를 증가시키기 위해 많은 노력을 했지만 속도와 정확도에는 불가피한 trade-off관계가 있었다.


SSD는 feature map을 resample하지 않고 proposal도 생성하지 않으면서 정확도 또한 감소하지 않았다. resampling과 proposal을 생성하는 과정을 없애는 것이 속도향상에 가장 효과적이다. 물론 이러한 시도는 SSD가 최초는 아니었지만, 그 밖에도 여러 테크닉을 추가해 정확도를 향상시켰다. SSD는 작은 convolution filter를 사용해 class와 bbox의 location을 예측했고, 여러 predictor를 사용해 다양한 ratio에 대해 예측을 진행했으며 다양한 scale를 예측하기 위해 Multiple layer를 사용했다. 이로인해 작은 해상도에 이미지에 대해서도 좋은 성능을 보였고 속도 또한 향상시켰다. 위 테크닉은 별 효과가 없어 보이지만 실제로 YOLO가 63.4%mAP였던 것에 비해 SSD는 74.3%mAP를 달성했다. 이 수치는 매우 큰 차이이며 residual network에서 매우 우수한 성능을 보였다.

  • 1-stage 모델 중 SOTA였던 YOLO모다 빨랐으며 2-stage 모델 중 SOTA였던 Faster-RCNN보다 정확도가 좋았다.
  • SSD의 핵심은 작은 filter를 사용했다는 점이다.
  • 정확도를 높이기 위해 다양한 scale의 feature map과 다양한 ratio의 predictor를 사용했다.
  • 이러한 테크닉은 end-to-end학습에 매우 용이하게 했으며 속도와 정확도의 trade-off관계를 완화했다


The Single Shot Detector(SSD)


SSD의 구조와 학습 방법을 소개하고 dataset-specific한 모델과 실험 결과에 대해 소개한다.


Model


SSD는 고정된 bbox와 각 object의 class에 대한 score를 산출하는 feed-forward convolution에 기반했고, detection의 마지막에는 NMS을 적용해 최종 결과물을 출력한다. 소위 base network라고 불리는 부분은 classification에 사용되는 모델을 사용했고, 추가적으로 다양한 구조를 더해 object detection모델을 만들었다.


1. Multi-scale feature maps for detection

base network의 끝 부분을 잘라 여러 개의 convolutional feature layer를 추가했다. 각 layer을 통해 다양한 scale을 detection할 수 있다.


2. Convolutional predictors for detection