본문 바로가기
python/딥러닝

[컴퓨터 비전] SSD 개요

by _avocado_ 2021. 5. 6.
인프런 - 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'를 정리한 내용입니다.

SSD 원리

SSD는 singe shot detecter의 줄임말로 RCNN 계열에서 Object 위치를 찾는 과정Object를 분류하는 과정하나로 합친 모델이다.

 

YOLO v1 다음에 나온 모델이지만 최초로 정확성과 속도를 모두 잡은 모델로 평가 받는다.(YOLO v2, v3도 정확성과 속도 모두 좋다.)

 

한번에 Detection하기 위해 이미지 피라미드기법Default Box(Anchor Box와 비슷)을 사용한다.


이미지 피라미드 & Default Box

Default Box는 Faster RCNN의 Anchor Box와 비슷한 개념이다.(논문에서 다른 단어를 사용했을 뿐)

 

이미지에서 찾기위한 Object의 크기가 다양하다. 정해진 크기의 Default Box를 이용하여 다양한 크기의 Object를 찾기 위해

 

이미지의 크기를 줄여가며 Detection을 수행한다.

위 그림에서 노란 박스는 Default Box이다. 1번 그림에서 오드리 헵번과 그레고리 펙 모두 Detection되지 못하고 있다.

 

1번 이미지의 크기를 줄인 2번에서 똑같은 Default Box에 의해 오드리 헵번은 Detection이 되었다. 그레고리 펙은 아직도 안되었다.

 

3번 이미지는 2번의 이미지를 또 한번 크기를 줄였다. 이번에는 오드리 헵번과 그레고리펙 모두 Detection 되었다.

 

위 과정을 feature map을 이용하여 표현한다면 다음 그림과 같다.

 32 x 32에서 Default Box를 이용하여 Object Detection를 수행하고 convoltion layer를 이용하여 16 x 16으로 만든 뒤 

 

Object Detection를 수행하고 이 과정을 반복하여 작은 Object 부터 큰 Object 모두 찾을 수 있다.


SSD 모델 구성

Imagenet 모델을 이용하여 feature map을 얻고 그 과정에서 생기는 다양한 크기의 feature map에서 Default Box를 이용한

 

Object Detection를 수행한다.

 

SSD training

classification과 regression을 동시에 진행하기 때문에 Loss 함수도 두 가지 모두 포함 되어야 한다.

 

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

 

N은 matched된 Default Box의 개수이며 $L_{conf}$가 classification, $L_{loc}$이 bounding box regression의 loss이다.

댓글