본문 바로가기
논문 리뷰

논문리뷰 SSD: Single Shot MultiBox Detector

by 곽정우 2024. 8. 5.

1. SSD 주요 특징

SSD(Single Shot MultiBox Detector)는 Object Detection을 위한 One-stage 딥러닝 네트워크입니다. SSD의 주요 특징은 다음과 같습니다:

  1. One-stage Network: SSD는 단일 딥러닝 네트워크로 구성되어 있으며, 이를 통해 모든 객체 감지 작업을 한 번의 실행으로 처리합니다. 이 방식은 Two-stage 시스템보다 속도가 빠릅니다.
  2. Region Proposal 불필요: SSD는 Region Proposal을 생성하지 않습니다. 이는 기존의 Two-stage Detector 시스템이 Region Proposal Network(RPN)를 사용하여 객체 후보 영역을 먼저 생성하는 방식과 다릅니다. SSD는 직접 객체를 감지하고 분류하는데, 이를 통해 처리 속도가 개선됩니다.
  3. 속도와 성능: SSD는 한 번의 네트워크 실행으로 모든 객체를 동시에 감지하고 분류할 수 있어 속도와 효율성 면에서 우수한 성능을 자랑합니다. 이러한 특성 덕분에 SSD는 실시간 Object Detection이 필요한 애플리케이션에서 유용하게 사용됩니다.
모델 성능(mAP) 속도
SSD 74.3% 59FPS
FASTER R-CNN 73.2% 7FPS
YOLO 63.4% 45FPS

2. SSD의 구조

  1. 입력 이미지: SSD는 300 x 300 크기의 입력 이미지를 받습니다. 이 이미지는 네트워크의 첫 단계에서 처리됩니다.
  2. 백본 네트워크: SSD는 VGG-16의 구조를 사용합니다. VGG-16의 Fully Connected Layers는 제외하고, Convolutional Layers만을 활용하여 Feature Extraction을 수행합니다. VGG-16의 Conv Layers는 입력 이미지에서 다양한 수준의 특성(Features)을 추출합니다.
  3. Convolutional Feature Layers: VGG-16의 Conv Layers로부터 나온 Feature Map에 대해, SSD는 여러 개의 Convolutional Feature Layers를 추가합니다. 이들 Convolutional Layers는 다양한 해상도의 Feature Map을 생성합니다.
  4. Feature Map의 크기: 네트워크를 통해 생성되는 Feature Map의 크기는 점진적으로 작아집니다. 이 과정에서 각 Feature Map은 서로 다른 스케일의 정보를 담고 있습니다. SSD는 이들 다양한 크기의 Feature Map을 활용하여 다양한 크기의 객체를 탐지할 수 있습니다.

3. SSD 동작 방식

  1. Feature Map 생성:
    • Convolutional Feature Layers: 입력 이미지에서 여러 크기의 Feature Map을 생성합니다. 각 Feature Map은 m x n 크기와 p 채널을 가집니다.
    • Extra Feature Layers: 각 Convolutional Feature Map 뒤에 추가되는 Auxiliary 구조로, 작은 Convolutional Filters(예: 3 x 3 x p)를 사용하여 객체를 감지하는 데 필요한 정보를 생성합니다.
  2. Default Bounding Box 생성:
    • 각 m x n 크기의 Feature Map의 Cell에서 k개의 Default Bounding Box를 생성합니다. 이 Box들은 다양한 가로세로 비율과 크기를 가지고 있습니다.
  3. Prediction 생성:
    • Score for a Category: 각 Default Bounding Box에 대해 객체가 특정 카테고리에 속할 확률을 예측합니다. 클래스 수가 c개일 때, 각 Bounding Box에 대해 c개의 점수가 생성됩니다.
    • Shape Offset: Default Bounding Box의 위치와 크기를 조정하여 실제 객체를 더 잘 감싸도록 하는 4개의 값(x, y, w, h)을 예측합니다.
  4. Output 계산:
    • 각 Cell에 대해 (c+4)개의 Prediction이 k개의 Default Bounding Box에 적용됩니다. 따라서 m x n 크기의 Feature Map에서는 (c+4)kmn개의 Output이 생성됩니다.
  5. 다양한 Feature Map 활용:
    • SSD는 여러 개의 Feature Map에서 얻은 Prediction을 종합하여 객체를 탐지합니다. 다양한 크기의 Feature Map을 사용함으로써 다양한 크기의 객체를 더 정확히 예측할 수 있습니다.
  6. 최종 결과 도출:
    • Non-Maximum Suppression (NMS): 중복된 박스를 제거하고 최종 객체 감지 결과를 도출합니다.

SSD(Single Shot MultiBox Detector)의 Training 과정은 모델의 성능을 극대화하기 위해 여러 가지 절차와 기술이 사용됩니다. 다음은 SSD의 Training 과정에 대한 정리입니다:

4. SSD의 Training 과정

  1. Default Bounding Box와 Ground-truth Box 매칭:
    • Feature Map과 Default Bounding Box: 입력 이미지(a)를 SSD 모델에 통과시키면, Feature Map과 Default Bounding Box들이 생성됩니다 (b) (c) . 이 때, 여러 개의 Default Bounding Box 중에 특정 조건에 맞는 Default Bounding Box만 찾아서 Ground-truth Box와 매칭 됩니다.
    • 매칭 조건:
      1. IoU 기반 매칭: Ground-truth Box와 IoU(Intersection over Union)가 가장 높은 Default Bounding Box를 찾습니다.
      2. IoU Threshold: IoU가 0.5 이상인 Default Bounding Box를 찾습니다.
    • 매칭 결과: 예를 들어, 고양이는 2개의 파란 Default Bounding Box와, 강아지는 1개의 빨간 Default Bounding Box와 매칭될 수 있습니다.
  2. Positive와 Negative Bounding Box 분류:
    • 매칭된 Default Bounding Box는 Positive로 간주되며, 나머지는 Negative로 간주됩니다.
    • Negative 데이터 불균형 문제: 대부분의 Default Bounding Box가 Negative로 분류되어 데이터 불균형 문제가 발생합니다. 이를 해결하기 위해 Hard Negative Mining이 사용됩니다.
      • Hard Negative Mining: Negative와 Positive의 비율을 3:1로 맞추기 위해, Confidence Loss가 높은 Negative 예제를 우선적으로 선택합니다.
  3. Data Augmentation:
    • 다양한 크기의 객체를 효과적으로 탐지하기 위해, 데이터 증강(Data Augmentation) 기술을 사용하여 학습 데이터를 증가시킵니다. 이는 다양한 객체 크기와 배경을 처리하는 데 도움이 됩니다.
  4. Loss Function:
    • Loss Function: SSD의 Training에서는 두 가지 주요 Loss를 사용합니다:
      • Localization Loss (Lloc): Predicted Bounding Box와 Ground-truth Box 간의 차이를 측정합니다. 이는 Smooth L1 Function을 사용하여 계산됩니다.
        • Lloc 식:
          위 식에서 N은 매칭된 Default Bounding Boxes의 개수이며, 가중치 α는 1의 값을 갖습니다.
      • Confidence Loss (Lconf): 각 Bounding Box의 객체 클래스에 대한 Confidence 점수를 측정합니다. Softmax Function을 사용하여 계산됩니다.
        • Lconf 식
          위 식에서 아래와 같이 생긴 변수가 있는데, i 번째 Default Bounding Box가 Category p의 j 번째 Ground-truth Box와 매칭되었는지 나타내는 Indicator로 1 또는 0 값을 갖을 수 있다.
      • Lloc는 Predicted Box(l)와 Ground-truth Box(g) 사이의 Smooth L1 Function이며, g 파라미터는 다음과 같이 계산됩니다.


      • Default Bounding Box(d)의 center는 (cx, cy)이고 너비와 높이는 각각 w와 h로 표현됩니다.


      • 위의 식은 Lconf로 Multi Classes의 Confidence 점수 c에 대한 Softmax Function입니다. c는 다음과 같이 계산됩니다.

이와 같은 방식으로 SSD는 효과적으로 객체를 탐지할 수 있는 모델을 학습하게 되며, 다양한 크기와 형태의 객체를 정확하게 탐지하기 위한 훈련을 진행합니다.


SSD(Single Shot MultiBox Detector)는 다양한 크기와 비율의 Default Bounding Box를 사용하여 여러 크기의 객체를 효과적으로 탐지합니다. 이를 위해 Feature Map의 크기Default Bounding Box의 크기를 조정하여 다양한 객체를 감지할 수 있습니다.

5. Default Bounding Box 크기 계산

  1. 다양한 크기의 Feature Map:
    • SSD는 여러 개의 Feature Map을 사용하여 다양한 크기의 객체를 탐지합니다. 각 Feature Map에서 Default Bounding Box의 크기와 비율이 다르기 때문에 다양한 크기의 객체를 탐지할 수 있습니다.
  2. Default Bounding Box의 크기 계산:

    • Feature Map의 크기와 비율: 각 Feature Map에서 Default Bounding Box의 크기는 Feature Map의 크기와 비율에 따라 결정됩니다.
    • 계산식:
      • : Feature Map의 개수
      • Smin: Default Bounding Box의 최소 크기 비율 (0.2)
      • Smax: Default Bounding Box의 최대 크기 비율 (0.9)
      • Default Bounding Box의 크기는 SminSmax 사이의 값을 가지며, 각 Feature Map의 크기에 맞춰 조정됩니다.
  3. Default Bounding Box의 비율:

    • 총 6가지 비율이 사용됩니다:
      1. 1:1 (정사각형)
      2. 2:1 (가로가 긴 박스)
      3. 1:2 (세로가 긴 박스)
      4. 3:1 (더 가로가 긴 박스)
      5. 1:3 (더 세로가 긴 박스)
      6. 위의 공식
  4. 다양한 크기와 비율의 적용:
    • 큰 Feature Map: 더 큰 크기의 Default Bounding Box를 사용하여 큰 객체를 탐지합니다.
    • 작은 Feature Map: 더 작은 크기의 Default Bounding Box를 사용하여 작은 객체를 탐지합니다.

예시 설명

  • 4 x 4 Feature Map에서는 상대적으로 큰 Default Bounding Box를 사용하여 큰 객체를 탐지합니다. 예를 들어, 강아지와 같은 큰 객체는 이 Feature Map의 Default Bounding Box로 잘 탐지될 수 있습니다.
  • 8 x 8 Feature Map에서는 상대적으로 작은 Default Bounding Box를 사용하므로, 강아지와 같은 큰 객체는 탐지되지 않을 수 있습니다. 대신, 작은 객체를 더 잘 탐지할 수 있습니다.

이러한 방식으로 SSD는 다양한 크기와 비율의 Default Bounding Box를 통해 다양한 크기의 객체를 효과적으로 탐지할 수 있습니다.


SSD(Single Shot MultiBox Detector)와 다른 모델들의 성능 비교 실험을 설명하겠습니다. 이 실험은 PASCAL VOC 2007 데이터셋을 사용하여 SSD와 다른 객체 탐지 모델들의 성능을 평가한 것입니다.

6. 실험 세부 사항

  1. Backbone 네트워크:
    • VGG-16: SSD의 Backbone으로 사용되었습니다.
    • Pre-trained 상태: ILSVRC CLS-LOC 데이터셋에서 사전 학습된 VGG-16을 사용했습니다. 이는 모델의 성능을 향상시키는 데 도움이 됩니다.
  2. Fine-tuning:
    • Optimizer: SGD(경량 경사 하강법)를 사용하여 Fine-tuning을 수행했습니다.
    • 하이퍼파라미터:
      • Initial Learning Rate: 10^{-3}
      • Momentum: 0.9
      • Weight Decay: -0.0005
      • Batch Size: 32
  3. Input 이미지 크기:
    • 512 x 512: 입력 이미지의 크기는 512 x 512로 설정되었습니다.
  4. 성능 비교:
    • 실험 결과, SSD는 다른 모델들에 비해 가장 높은 성능을 보였습니다. 이는 SSD가 다양한 크기와 비율의 Default Bounding Box를 효과적으로 사용하여 객체를 탐지할 수 있기 때문입니다.


6.1. SSD 모델 분석

실험 설정

  • 모든 실험은 입력 크기 300 × 300을 사용하며, 설정이나 구성 요소의 특정 변경을 제외하고 동일한 조건을 유지했습니다.

실험 결과 요약

 

  • 데이터 증강의 중요성
    • 더 광범위한 샘플링 전략을 사용하여 mAP를 8.8% 향상시켰습니다.
    • Fast R-CNN과 Faster R-CNN에 비해 SSD가 데이터 증강의 이점을 더 많이 얻을 수 있습니다.
  • 더 많은 기본 박스 형태의 효과
    • 다양한 종횡비의 기본 박스를 사용하면 네트워크가 박스를 예측하는 작업이 더 쉬워집니다.
    • 일부 종횡비를 제거하면 성능이 감소합니다.
  • Atrous 컨볼루션의 속도 향상
    • Atrous 버전의 VGG16을 사용하면 속도가 약 20% 빨라집니다.
  • 다중 해상도 출력 레이어의 중요성
    • 다른 스케일의 기본 박스를 다른 출력 레이어에 사용하는 것이 SSD의 주요 기여점입니다.
    • 레이어를 제거할수록 정확도가 감소합니다.
    • 매우 큰 객체나 매우 작은 객체를 감지하는 데 어려움이 있을 수 있습니다.
    • 다양한 해상도의 특징 맵을 사용하는 것이 성능 향상에 중요합니다.
  • SSD 아키텍처의 장점
    • 다양한 해상도의 특징 맵에서 예측을 결합하여 Faster R-CNN과 비슷한 정확도를 달성합니다.
    • 더 낮은 해상도의 입력 이미지를 사용할 수 있습니다.

Data Augmentation for Small Object Accuracy

 

  • 작은 객체 감지의 어려움
    • SSD는 Faster R-CNN과 달리 추가적인 특징 리샘플링 단계가 없어 작은 객체 분류가 상대적으로 어려움
    • 데이터 증강 전략이 성능 향상에 크게 도움이 됨, 특히 PASCAL VOC와 같은 작은 데이터셋에서 효과적
  • 새로운 데이터 증강 기법 소개
    • "확장(expansion)" 데이터 증강 트릭 도입
    • 원본 이미지 크기의 16배 캔버스에 이미지를 무작위로 배치하고 평균값으로 채움
    • 이후 무작위 자르기 연산 수행
    • 이는 "축소(zoom out)" 효과를 생성하여 더 많은 작은 훈련 예제 생성
  • 새로운 증강 기법의 효과
    • 여러 데이터셋에서 일관되게 2-3% mAP 향상
    • 특히 작은 객체 감지 성능이 크게 향상됨
    • 훈련 반복 횟수를 두 배로 늘려야 함
  • 실험 결과
    • 표 6에서 여러 데이터셋에 대한 결과 제시
    • SSD300와 SSD512는 새로운 데이터 증강으로 훈련된 모델
    • 그림 6은 새로운 증강 기법이 작은 객체 감지에 미치는 영향을 시각적으로 보여줌
  • 향후 연구 방향
    • 기본 박스의 위치와 스케일을 특징 맵의 수용 영역과 더 잘 정렬되도록 개선하는 것이 대안적 접근 방법

6.2 Inference time

  1. 비최대 억제(NMS) 적용
    • SSD는 많은 수의 박스를 생성하므로 효율적인 NMS가 필수적
    • 신뢰도 임계값 0.01을 사용하여 대부분의 박스 필터링
    • 클래스별로 자카드 중첩 0.45로 NMS 적용, 이미지당 상위 200개 검출 유지
    • SSD300에서 20개 VOC 클래스에 대해 이미지당 약 1.7ms 소요
  2. 속도 측정 환경
    • Titan X GPU, cuDNN v4, Intel Xeon E5-2667v3@3.20GHz 사용
    • 배치 크기 8로 측정
  3. 다른 모델과의 비교 (표 7)
    • SSD300과 SSD512 모두 Faster R-CNN보다 속도와 정확도 면에서 우수
    • Fast YOLO는 155 FPS로 빠르지만, mAP가 22% 정도 낮음
    • SSD300은 70% 이상의 mAP를 달성한 최초의 실시간 방법
  4. SSD의 성능
    • SSD300은 실시간으로 70% 이상의 mAP 달성
    • 전방 전파 시간의 약 80%가 기본 네트워크(VGG16)에서 소요됨
  5. 향후 개선 가능성
    • 더 빠른 기본 네트워크를 사용하면 속도를 더욱 개선할 수 있음
    • SSD512 모델도 실시간으로 만들 수 있는 가능성 존재

이 연구 결과는 SSD가 높은 정확도를 유지하면서도 실시간 객체 감지가 가능한 효율적인 모델임을 보여줍니다. 특히 SSD300은 실시간 처리와 높은 정확도를 동시에 달성한 최초의 모델로 언급되고 있습니다. 또한, 기본 네트워크의 개선을 통해 더 높은 성능을 얻을 수 있는 가능성을 제시하고 있습니다.

 

 


7. Conclusions

  • SSD의 핵심 특징
    • 다중 카테고리를 위한 빠른 단일 샷 객체 검출기
    • 네트워크 상단의 여러 특징 맵에 연결된 다중 스케일 컨볼루션 경계 상자 출력 사용
    • 가능한 상자 형태를 효율적으로 모델링 가능
  • 실험적 검증
    • 적절한 훈련 전략과 더 많은 신중하게 선택된 기본 경계 상자가 성능 향상으로 이어짐
    • 기존 방법들보다 적어도 한 차수 이상 많은 상자 예측 샘플링 위치, 스케일, 종횡비 사용
  • 성능 비교
    • 동일한 VGG-16 기본 아키텍처에서 SSD는 정확도와 속도 면에서 최신 객체 검출기들과 비교해 우수한 성능
    • SSD512 모델은 PASCAL VOC와 COCO에서 Faster R-CNN보다 정확도가 높고 3배 빠름
    • 실시간 SSD300 모델은 59 FPS로 작동하며, 현재 실시간 모델인 YOLO보다 빠르고 정확도가 월등히 높음
  • SSD의 의의
    • 독립적인 유용성 외에도, 객체 검출 구성요소를 사용하는 더 큰 시스템의 유용한 빌딩 블록 제공
    • 단일체적이고 상대적으로 단순한 모델
  • 향후 연구 방향
    • 비디오에서 객체를 동시에 검출하고 추적하는 순환 신경망 시스템의 일부로 SSD 활용 탐구