논문 링크 : https://arxiv.org/pdf/1512.02325.pdf

SSD (Single Shot MultiBox Detector)

 

Contribution

 YOLO V1 보다 더 뛰어난 FPS와 mAP 성능 

 

Motivation

 1. YOLO V1이 Faster R-CNN보다 FPS는 높았으나 mAP는 낮았음

      => YOLO V1의 grid cell 방식의 region proposal 방식을 사용 + 더 뛰어난 FPS와 mAP 성능 

 2. YOLO V1는 그리드 크기보다 작은 물체를 잘 잡아내지 못함 

 

Core idea

Multi-map scale feature maps

  • SSD는 YOLO V1처럼 grid cell 방식을 사용하는데, 하나의 grid cell에서 고정된 개수의 default boxes (or anchor boxes)를 생성
  • feature map의 사이즈가 작은 크기에서는 상대적으로 큰 객체를 더 잘 탐지할 수 있고, 더 큰 feature map size에서는 작은 물체를 검출할 수 있다. 
  • 컨볼루션을 거치면서 디테일한 정보들이 사라지는 문제점을 앞단의 피쳐맵들을 끌어오는 방식으로 해결

 

<이미지 출처 : https://taeu.github.io/paper/deeplearning-paper-ssd>

38x38x(4x(Classes+4)) = 5776x(Classes+4)
19x19x(6x(Classes+4)) = 2166x(Classes+4)
10x10x(6x(Classes+4)) = 600x(Classes+4)
5x5x(6x(Classes+4)) = 150x(Classes+4)
3x3x(4x(Classes+4)) = 36x(Classes+4)
1x1x(4x(Classes+4)) = 4x(Classes+4)             => 합계 : 8732개

 

(객체 검출 예시)

  1. 위 이미지에서 5x5x256 크기의 피쳐맵을 대상으로 Object Detection을 수행한다고 가정
  2. 5x5, 각 그리드마다 Default Box 계산 (앵커박스)
  3. 3x3 컨볼루션을 적용하여(패딩을 1로 설정하여 크기 보존) bounding box regression 및 classification 진행

 

Model Architecture

  1. YOLO 처럼 네트워크를 하나만 사용
  2. Modified VGG Net 사용
  3. YOLO는 마지막 feature map에만 bounding box 및 classification 정보가 있는데 반해, SSD 는 여러 히든 레이어의 정보를 사용
  4. Remove FC layer -> 입력 이미지 고정시킬 필요가 없게됨 + 파라미터 감소에 따른 속도향상
  5. 8732x(Classes+4) features -> 한 객체에 대해 많은 bounding boxes가 생성 => NMS 알고리즘(YOLO V1 참고)
  6. 각 층별 피쳐 맵들을 가져와 Object Detection을 수행한 결과들을 모두 합하여 loss를 구한다.

 

cf) 기타 사항

  1.  Default box 구하는 법 : 논문 참고할 것
  2.  Loss funcion : 논문 참고할 것

한계점 

 (참조 : https://hongl.tistory.com/216)

  • SSD는 작은 물체에 대하여 Faster-RCNN에 비해 성능이 안 좋은데 이는 고해상도 feature map 에서 작은 물체를 포착하여야 하지만 고해상도 자체가 입력 이미지 크기에 비해 작고 지나친 low-level feature 를 포함하기 때문이라고 추정됨. 단, smin을 0.15정도로 더 낮게 시작하면 성능 향상이 가능할 듯.
  • 입력 사이즈가 커지고 boundary box 수에 따라 성능은 증가하지만 속도가 낮아짐.
  • 목적함수가 실질적으로 ground-truth 박스 대신 default boundary 박스를 예측하므로 훈련 자체는 더 안정적일 수 있지만 조금 더 좋은 default boundary 박스 설계가 요구됨.
  • Faster-RCNN에 비해 classification 에러가 높은데, 이는 하나의 boundary box가 여러 개의 클래스 예측에 사용되기 때문이라고 추정됨.
반응형

'머신러닝_딥러닝 > Object Detection' 카테고리의 다른 글

(논문리뷰) OHEM (2016)  (0) 2021.09.13
(논문리뷰) Feature Pyramid Net, FPN (2017)  (0) 2021.09.13
(논문리뷰) SPPnet  (0) 2021.09.13
(논문리뷰) Yolo v2 (2017)  (0) 2021.09.13
(논문리뷰) Yolo v1 (2016)  (0) 2021.09.13

+ Recent posts