1. Abstract
- region proposal대신 anchor box(default box) 사용
- 각 anchor box(default box)의 class와 offset 정보를 예측
- 해상도가 다른 feature map들을 묶어서 다양한 크기의 object를 예측
2. Introduction
- anchor box 사용
- CNN을 통한 anchor box의 class와 offset 정보 예측
- 다양한 크기의 filter 사용하여 다양한 비율의 object 예측
- 다양한 feature map을 사용하여 multi-scaling
3. The Single Shot Detector (SSD)
3.1 Model
- CNN을 통해 bounding box의 정보와 class 정보를 예측
- base network(backbone network)와 auxiliary structure로 구성
- NMS를 통해 최종적인 bounding box를 선택
3.1.1 Multi-scale feature maps for detection
- feature map의 크기를 점점 줄이는 방식으로 multi-scale에 대하여 학습
- 각 크기의 feature layer마다 다른 filter를 사용
3.1.2 Convolutional predictors for detection
- 3x3 filter 사용
- 각 크기의 feature map마다 다른 filter 사용
- 각각의 cell마다 anchor box의 class score와 offset 정보를 예측
3.1.3 Default boxes and aspect ratios
- 각각의 cell마다 anchor box의 class score와 offset 정보를 예측
- input size:
- output size:
- = anchor box의 개수
- = class의 개수
- = offset의 개수
- 각 크기의 feature map마다 적용
- feature map 크기에 따라서 적용하는 anchor box의 크기가 다름
3.2 Training
- ground truth bounding box가 각 크기의 feature map에 맞게 변환되어 적용되어야 함
3.2.1 Matching strategy
- ground truth bounding box와 IoU가 0.5보다 높은 모든 anchor box에 대하여 학습진행
- ground truth bounding box마다 하나의 box를 학습시키는게 아니라, 여러 개의 anchor를 학습시키므로 다양한 anchor에 대하여 학습이 가능
3.2.2 Training objective
- =
- = indicator for matching gound truth box and predicted box
- = predicted box(anchor box에 offset이 적용된 box)
- = ground truth box
- = offset of anchor box
- = anchor box
- = the number of matched box
- = -th anchor box, = -th ground truth box, = category
- =
- =
- positive box(object가 존재)의 category에 대한 loss와 negative box(배경)에 대한 loss의 합
- ground truth category에 대해서만 loss 계산
- =
- =
- =
- =
- =
- IoU가 0.5 이상인 predicted box와 ground truth box의 offset 정보에 관한 loss
3.2.3 Choosing scales and aspect ratios for default boxes
- 다양한 크기의 object를 학습하기 위하여 image 자체를 사용하는 것이 아니라, 다양한 크기의 feature map 사용
- 각각의 feature map마다 다른 anchor box를 사용하여 object의 다양한 scale들을 학습하도록 함
- 즉, 각각의 feature map에서 찾아내는 scale이 다름
3.2.4 Hard negative mining
- predicted box의 대부분은 background이므로 positive와 negative간의 불균형이 심해짐
- 따라서, negative 중에서 confidence가 높은 것들만 사용
- positive : negative = 1 : 3
3.2.5 Data augmentation
- 다양한 object size와 ratio에 robust하기 위하여 각각의 image는 random하게 sampling
- original image
- random sampling
- 최소 IoU가 0.1, 0.3, 0.5, 0.7, 0.9 인 patch를 임의로 추출
- random sampling
- size는 원본에 대해 [1/10, 2] 사이의 비율 적용
- ratio는 {1/2, 2}에서 결정
- 1/2의 확률로 horizontal flip
- sampling된 image는 고정된 size로 변환되어 input으로 사용
4. Experimental Results
- Base network
- pre-trained VGG16 사용
- fc layer를 conv layer로 바꾸고, 마지막 pooling layer의 크기와 stride 조절
- fine-tuning
4.1 PASCAL VOC2007
- localization error가 낮음
- offset과 class를 직접적으로 학습하기 때문
- bounding box의 크기에 민감
- 작은 object를 예측하는 성능이 부족
- 다양한 비율의 object를 잘 예측
- 각각의 feature map마다 다양한 anchor box를 사용하기 때문
4.2 Model analysis
4.2.1 Data augmentation is crucial
4.2.2 More default box shapes is better
- 다양한 anchor box를 사용하는 것이 성능에 더 좋음
4.2.3 Atrous is faster
- base network를 수정하여 사용하는 것이 성능과 속도면에서 더 좋음
4.2.4 Multiple output layers at different resolutions is better
- 다양한 feature map을 사용하는 것이 성능에 좋음
- 총 anchor box의 개수는 비슷하도록 조절을 해줘도 사용되는 feature map의 크기가 더 많은 것이 좋은 성능
- feature map이 많을 경우, boundary에 존재하는 anchor box를 버리는 것이 성능에 좋지만, 사용되는 feature map이 적은 경우에는 성능에 안좋은 영향을 미침
4.3 PASCAL VOC2012
4.4 COCO
4.5 Preliminary ILSVRC results
- SSD는 high quality real-time detectir
4.6 Data Augmentation for Small Object Accuracy
4.7 Inference time
5. Related Work
- DPM(Deformable Part Model)
- SS(Selective Search)
- R-CNN, Fast R-CNN, Faster R-CNN
- SPPnet
- MultiBox
- YOLO
6. Conclusion
- 다양한 크기의 feature map을 사용하여 multi-scale convolutional bounding box을 만들어낸 것이 핵심
7. Reference
- https://arxiv.org/abs/1512.02325
- https://www.evernote.com/client/snv?noteGuid=86db4277-e2ac-4fa9-a12c-d2ab5aca1c65¬eKey=faa1cfa40047e57f&sn=https%3A%2F%2Fwww.evernote.com%2Fshard%2Fs156%2Fsh%2F86db4277-e2ac-4fa9-a12c-d2ab5aca1c65%2Ffaa1cfa40047e57f
- http://www.navisphere.net/4167/ssd-single-shot-multibox-detector/