논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

SSD: Single Shot Multibox Detector

[cite]10.1007/978-3-319-46448-0_2[/cite]

1 Introduction

  • 물체 인식 시스템에서 물체의 후보 박스을 탐지(hypothesize bounding boxes)하고 해당 박스에서 픽셀이나 을특징을 리샘플한 뒤, 좀 더 정확한 분류기를 이용하는 방법은 주류로 사용되고 있습니다.
  • 이런 접근법은 정확하긴 하지만 임베디드 시스템, 혹은 하이엔드 시스템에서도 계산이 너무 많아 실시간 응용에 어려움이 있습니다.
  • 이 논문은 후보 박스를 탐지하기 위해서 픽셀이나 특징을 리샘플하지 않는 최초의 깊은 신경망(deep network)기반의 물체 인식기를 보입니다.
  • 속도 또한 향상되었는데 주요한 원인은 후보 박스를 찾는 과정과 리샘플링 과정을 제거하였기 때문입니다.
  • 그 외에도, 물체 클래스 구분과 물체의 바운딩 박스 위치를 찾기 위한 작은 컨볼루션 필터를 사용하는 점이나, 물체의 여러 종횡비를 위한 각기 다른 필터를 사용하는 점, 이러한 필터들을 마지막 단계에서 여러 스케일에 대해 작동하도록 적용한 점들도 향상된 부분입니다.

2 The Single Shot Detector (SSD)

2.1 Model

  • SSD는 앞먹임 컨볼루셔날 신경망(Feed-forward convolutional network) 기반의 방법으로 정해진 수의 바운딩 박스와 그 박스들의 물체 클래스가 있을 만한 점수, 그 뒤 최종 검출 결과를 만들기 위한 non-maximum suppression 단계로 구성되어 있습니다.

Multi-scale feature maps for detection

  • 기존 기반 신경망(base network)의 윗부분을 제거한 뒤, 그 끝에 추가적인 컨볼루셔널 특징 층들을 추가하였습니다.
  • 이 층들은 점진적으로 크기가 줄어들어 여러 스케일에 대해 검출이 가능하게 하였습니다.

Convolutional predictors for detection

  • 추가된 각 특징 층들은 컨볼루셔널 필터를 이용하여 생성된 고정된 수의 검출 결과들을 생성합니다. $ m \times n $ 크기의 $ p$ 채널을 가지는 작은 커널을 사용하는데, 여기에서는 $ 3 \times 3 \times p $의 작은 커널을 사용하였습니다.
  • 이 커널은 각 카테고리에 대한 점수 혹은 디폴트 박스(default box)에 대해서 상대적인 오프셋 정보에 대한 점수를 생성해 냅니다.

Default boxes and aspect ratios

  • 신경망의 상단 부의 추가된 특징 맵에서의 특징 맵 셀들에 대해서 디폴트 박스들과 연관 지을 수 있습니다.
  • 디폴트 박스는 컨볼루셔널 방식으로 동작하는 타일과 같은 형태로 생각할 수 있으며, 각 박스의 위치는 고정됩니다.
  • 맵의 각 셀은 바운딩 박스와의 오프셋과 각 클래스의 물체가 존재하는 지에 대한 점수를 추측합니다.
  • 따라서 $k$개의 셀 위치가 있고, $c$개의 클래스와 4개의 오프셋 정보를 계산하여야 한다면 각 셀마다 $(c+4 )k $ 개의 필터를 가지게 되어 $m \times n $ 크기의 특징 맵은 $(c+4)kmn$개의 출력을 가지게 됩니다.

2.2 Training

  • 기존의 방법과 가장 다른 점은, 고정된 수의 검출기 출력 값에 대해, 각각 참 값(ground truth)를 지정해 주어야 한다는 점입니다.
  • 이것이 이루어지면 손실 함수(loss function)과 역전파(back propagation)를적용하면 됩니다.
  • 학습 과정은 디폴트 박스의 수와 스케일, 그리고 hard negative mining과 data augmentation 전략을 포함합니다.

Matching strategy

  • 학습 과정에서 어떤 디폴트 박스가 실제 참 검출 값과 대응되는지 결정하여야 이에 따라 신경망을 학습할 수 있습니다.
  • 각 참 값 박스는 위치, 종횡비, 스케일이 변하는 디폴트 박스 중 하나를 선택해야 합니다.
  • 이를 위해 먼저 jaccard overlap을 이용하여 참 값 박스와 가장 많이 겹치는 박스를 먼서 선택한 뒤, 그 다음 디폴트 박스 중 jaccard overlap이 0.5이 상이 되는 아무 참 값 박스를 선택합니다.

Training objective

  • 전체 목적 손실 함수는 localziation loss(loc)와 confidece loss(conf)의 가중치 합으로 계산합니다.

$$ L(x, c, l, g) = \frac{1}{N} (L_{conf} (x, c) + \alpha L_{loc}(x, l, g)) $$

  • 여기서 $x_{ij}^p = \{1, 0\} $는 i번째 디폴트 박스가 클래스 p의 j번째 참 값 박스 인디케이터인지 아닌지를 나타내는 인디케이터입니다.
  • $N$은 매칭된 디폴트 박스의 수 입니다. $N=0$이라면 loss는 0으로 사용합니다.
  • localization loss는 예측된 박스 $l$과 실제 참 박스 $g$ 파라미터 사이의 Smooth L1 loss를 이용하여 계산합니다.
  • 여기서는 디폴트 박스 $(d)$의 중심의 오프셋 ($cx, cy$) 디폴트 박스의 크기 ($w, h$)를사용하였습니다.

$$ L_{loc} (x, l, g) = \sum_{i \in Pos}^n \sum_{m \in \{ cx, cy, w h \}} x_{ij}^k \text{smooth}_{\text{L1}} (l_i^m - \hat{g}_j^m) \\ \hat{g}_j^{cx} = (g_j^{cx} - d_i^{cx}) / d_i^w, \hat{g}_j^{cy} = (g_j^{cy} - d_i^{cy}) / d_i^h \\ \hat{g}_j^{w} = \log(\frac{g_j^{w}}{d_i^{w}}),\hat{g}_j^{h} = \log(\frac{g_j^{h}}{d_i^{h}})$$

  • confidence loss는 여러 클래스 간의 softmax loss 를 사용합니다.

$$ L_{conf}(x, c) = - \sum_{i \in Pos}^{N} x_{ij}^p \log(\hat{c}_i^p) - \sum_{i \in Neg} \log(\hat{c}_i^0) \text{ where } \hat{c}^p_i = \frac{\exp(c_i^p)}{\sum_p \exp(c_i^p)}$$

Choosing scales and aspect ratios for default boxes

  • 여러 스케일의 물체를 처리 하기 위해서 이미지를 여러 크기로 처리한 뒤 합치는 방법을 사용하지 않고, 다른 크기의 층들의 특징 맵을 활용하여 하나의 신경망에서 같은 효과를 내었습니다.
  • 여기에서는 디폴트 박스의 타일이 물체의 각 스케일에 대해 반응할 수 있도록 각 특징 맵을 학습시키도록 성계하였습니다.
  • $m$ 특징 맵을 사용하고자 한다면, 각 특징 맵의 디폴트 박스의 크기는 다음과 같이 계산됩니다.

$$ s_k = s_\min + \frac{s_\max - s_\min}{m - 1} (k - 1), k \in \big[ 1, m \big] $$

  • 여기서 $s_\min = 0.2, s_\max = 0.9$이고, 이는 각각 0.2부터 0.9까지의 스케일을 나타냅니다.
  • 여기에 $a_r \in \{ 1, 2, 3, \frac{1}{2}, \frac{1}{3} \}$ 의 서로 다른 종횡비를 부여하여, 가로 크기 $w^a_k = s_k \sqrt{a_r}$와 세로 크기 $h^a_k = s_k / \sqrt{a_r} $ 를 계산하여 사용하였습니다.
  • $a_r = 1$에 대해서는 $s'k = \sqrt{s_k s_{k+1}}$ 을 사용하였습니다.
  • 따라서 결과적으로 6개의 디폴트 박스가 각 맵마다 생성됩니다.
  • 디폴트 박스의 중심은 ($\frac{i + 0.5}{|f_k|}, \frac{j + 0.5}{|f_k|}$)를 사용하였는데, $|f_k|$는 k번째 square 특징 맵의 크기입니다. ($i, j \in \big[ 0, |f_k| \big]$)

Hard negative mining

  • 매칭 단계에서 대부분의 디폴트 박스들이 물체에 해당하지 않게 됩니다. 이는 positive와 nagative 샘플의 imbalance를 낳습니다.
  • 모든 샘플을 사용하는 대신 각 디폴트 박스에 대하여 confidence loss를 기준으로 정렬한 뒤, negative와 positive의 비율이 3:1이 되도록 가장 좋은 것들을 선택합니다.

Data augmentation

  • 입력 이미지의 크기, 모양, 그리고 다음 방법 중 하나를 이용하여 샘플링합니다.
    • 전체 이미지를 사용한다
    • 물에와 최소 jaccard overlap이 0.1, 0.3, 0.5, 0.7, 0.9가 되도록 하는 패치를 샘플링한다.
    • 단순히 랜덤 샘플링하여 패치를 구한다.

3 Experimental Results

4 Related Work

5 Conclusions

6 Acknowledgment


Add a Comment Trackback