[Paper Review] SSD: Single Shot MultiBox Detector
Source
Summary
문제의식:
yolo의 작은 물체 낮은 탐지 정확도, 속도 향상에 따른 탐지 정확도 하락 faster rcnn의 낮은 속도
왜그럴까?
이렇게?
Contents
0. Abstract
우리는 하나의 deep neural network를 사용해 image에서 물체를 찾는 방법을 제안한다. SSD라고 불리는 우리의 방식은 bbox의 output space를 서로다른 aspact ratios와 scales의 default box들의 집합으로 불연속화 한다. 예측 시, network는 각 기본 박스에서 각 category에 대한 존재 확률을 생성하고, box를 조절하여 객체 모양에 더 잘 맞도록 한다. 게다가, network는 다양한 해상도를 가진 feature map으로부터 예측을 결함하여 다양한 크기의 객체를 자연스럽게 처리한다. ssd는 object proposal을 필요로하는 다른 method들에 비해 간단한데, 이는 proposal generation과 이후의 pixel/feature의 resampling단계를 완전히 제거했기 때문이다. 또한 모든 계산을 하나의 network르 캡슐화 하였다. 이는 ssd가 학습하기 쉽고, detection 구성 요소를 필요로 하는 다른 system과 통합하기 간단하다. PASCAL VOC, COCO, ILSVRC 데이터셋에 대한 실험 결과는 ssd가 추가적인 object proposal을 활용하는 방법에 비견되는 정확도를 가지며, 훨씬 빠르고, train과 inference 모두를 위한 통합된 프레임워크를 제공한다는 것을 확인해준다. $300 \times 300$ 입력에서 ssd는 Nvidia Titan X에서 VOC2007 테스트에서 74.3%의 mAP를 59 FPS로 달성하며, $512 \times 512$ 입력에서는 76.9%의 mAP를 달성하여, 비교 가능한 최첨단 Faster R-CNN 모델을 능가한다. 다른 single stage방법들과 비교했을 때, ssd는 더 작은 입력 이미지 크기에서도 훨씬 나은 정확도를 가진다.
1. Introduction
Previous Work
현재 state-of-the-art object detection system들은 다음의 접근 방식들의 변형들로 구성된다:
- boundingbox를 가정한다.
- 각 sbox에 대해 feature와 pixel을 resampling한다.
- high quality classifier를 적용한다.
이 파이프라인은 Selective Search 연구 이후 PASCAL VOC, COCO, ILSVRC detection에서 resnet과 같은 깊은 신경망과, Faster R-CNN을 기반으로 detection benchmark에서 우위를 점해왔다. 이러한 방식들은 정확하지만, embedded system에서 계산량이 지나치게 많고, high-end hardware를 쓴다고 하더라도 실시간으로 적용하기에는 너무 느리다. 이러한 접근법들의 탐지 속도는 종종 초 단위로 측정되고, 가장 빠르고 정확한 detector인 Faster R-CNN조차 초당 7 프레임에 불과하다. detection pipeline의 각 단계를 개선하여 더 빠른 detector를 개발하려는 시도(Section 4 참고)가 많았지만, 속도의 향상은 항상 정확도의 감소를 대가로 이루어졌다.
Approaches
이 논문에서는 가장 bounding box에 대한 가설을 세우기 위해 pixel이나 feature를 resampling하지 않으면서 (anchor box, base box), 이러한 방식들과 정확도는 비슷한 최초의 deep network기반 object detector를 제안한다. 이는 high-accuracy detection에서의 속도를 크게 개선한 결과를 가져왔다.
VOC2007 test에서
- SSD: mAP 74.3%, 59 FPS
- Faster R-CNN: mAP 73.2%, 7 FPS
- YOLO의 mAP 63.4%, 45 FPS
이러한 속도에서의 근본적인 개선은 bounding box proposal과 이후의 pixel, feature의 resampling단계를 제거한 데서 비롯된다. 우리가 이를 처음 시도한 것은 아니지만(Overfeat, YOLO), 일련의 개선을 통해 이전 시도들에 비해 정확도를 크게 향상시켰다. 우리의 개선 사항은 다음과 같다.
- 작은 Convolutional filter를 사용해 object의 category와 bounding box의 offset을 예측하는 것
- 다양한 aspect ratio detection을 위한 분리된 별도의 predictors(filter)
- network 후반부의 여러 feature map에 위의 filter를 적용해 여러 scale을 탐지하도록 하는 것
이러한 수정 사항들, 특히 여러 layer를 사용해 다양한 scale을 예측하는 것을 통해, 우리는 상대적으로 낮은 해상도의 입력을 사용해 높은 정확도를 달성하고 탐지속도를 더욱 향상시킬 수 있었다. 이러한 기여들이 개별적으로는 작아 보일 수 있지만, 결과적으로 PASCAL VOC에서 YOLO: mAP 63.4%에서 SSD: mAP 74.3%로 real-time detection 정확도를 개선했다. 이는 최근 주목받는 Residual Networks연구의 탐지 정확도 향상보다 상대적으로 더 큰 개선이다. 게다가 high-quality detection의 속도를 개선은 computer vision이 유용하게 사용될 수 있는 영역을 넓힐 수 있다.
우리의 기여는 다음과 같다.
- 우리는 다중 category를 위한 single shot detector인 SSD를 소개한다. 이는 이전의 single shot detector중 State-Of-The-Art였던 YOLO보다 빠르고, Faster-RCNN을 포함한 명시적인 region proposal과 pooling을 수행하는 느린 기법들만큼 정확하다.
- SSD의 핵심은 작은 Convolutional filter를 feature map에 적용해 Category score와 고정된 default bounding box의 집합을 위한 box offset을 예측하는 것이다.
- 높은 탐지 정확도를 달성하기 위해 우리는 다양한 scale의 feature map에서 다양한 scale의 prediction을 생성하고, aspect ratio에 따라 prediction을 명시적으로 분리한다.
- 이러한 설계 특징들은 간단한 end-to-end training과 높은 정확도를 가능하게 하고, 저해상도 입력 이미지에서도 정확도를 유지하며 속도와 정확도간의 trade-off를 더욱 개선한다.
- 실험에는 입력 크기가 다양한 모델의 시간 및 정확도 분석이 포함되며, PASCAL VOC, COCO, ILSVRC에서 평가되고, 최근 State-Of-The-Art 접근법들과 비교된다.