SSD(Single Shot MultiBox Detector)
YOLO는 Faster R-CNN보다 속도가 향상됐지만, 정확도가 낮아졌다는 단점이 있었다. 또한 작은 물체를
잘 못잡는다는 단점이 있었다. 이에 SSD가 이러한 한계점을 극복하였다.
SSD 모델의 장점은 이미지의 변형 없이 한장의 사진 그대로를 넣어 네트워크를 덜 거쳐 기존 single shot detector보다 빨랐으며, mAP점수도 Faster R-CNN과 거의 유사하였다.
가장 중요한 특징은 각 default box들마다 cnn필터를 적용하여 점수를 게산하였다. →서로 다른 피쳐맵에서 다양한 크기의 예측이 가능하였다. 또한 다양한 data augmentation을 진행하였다
위와 같이, VGG NET을 거치면서 각 단계별에서 추출된 feature map들은 왼쪽 그림의 구조를 거쳐서 object detection을 수행하게 된다. 우선 이미지를 그리드로 나눈뒤 각각의 그리드마다 크기가 다른 default box를 생성한다.(이는 Faster R-CNN의 anchor과 같은 역할을 한다.) 총 6개의 스케일의 피쳐맵의 각 그리드 한칸(셀)에 적용한다.
아래 그림에서 고양이와 강아지의 크기가 다른데, 각 단계별 피쳐맵의 크기 또한 다르기 때문에 높은 해상도(작은 셀 크기)의 피쳐맵에서는 작은 물체인 고양이를 잘 잡아내고, 저 해상도의 피쳐맵에서는 큰 물체인 강아지를 잘 예측할 수 있을 것이라고 추측한다.
최종적으로, 각 그리드의 중심을 기준으로 각 default box(anchor)을 여러개 그려준다.
학습을 하면서 default box와 ground truth box를 매칭하기 위해서 jaccard overlap(==IoU)가 0.5 이상이면 positive, 이하는 negative로 라벨링하는데, 배경에 해당되는 박스가 많이 생성되어 일반적으로 클래스가 불균형해진다, 이를 hard negative mining을 이용하여 클래스 불균형을 해결하여 p/n 비율을 1:3으로 정하였다.
SSD의 가장 큰 특징은 위에서 말했듯이, 각 단계별 Feature map에서 object detection을 수행함으로써 큰 피쳐맵에서는 작은 물체를, 작은 피쳐맵에서는 큰 물체를 정확하게 탐지하였다.
또한 positive label과 negative label간의 비율을 맞추기 위하여 hard negative training을 적용하여 분류하였는데, 이는 neagtive box를 높은 confidence score을 가진 것들로만 선정하여 학습한 것을 의미한다.
마지막으로 data augmentation을 통해 다양한 input size에 적합하게 만들어줬데, 원래 이미지, 이미지 간 최소 자카드 오버랩이 0.1,0.3,0.5,0.7,0.9 이 되도록 샘플, 무작위 샘플 추출 등 다양하게 사용하였고 flip이나 distortion도 일부 사용되었다.
최종적으로 nms를 거친후 박스가 결정된다.
'ML & DL > Computer vision' 카테고리의 다른 글
EfficientDet (0) | 2023.10.26 |
---|---|
YOLO: You Only Look Once (0) | 2023.10.26 |
R-CNN, Fast R-CNN, Faster R-CNN (0) | 2023.10.26 |
NAS(Neural Architecture Search) (0) | 2023.10.26 |
ResNet (0) | 2023.10.26 |