728x90
반응형
나의 정리
- SSD는 기존 region proposal, classification 2-stage로 하던 object detection방식을 default box라는 개념을 도입하여 1-stage로 진행하였다.
- multi feature map에 default box를 적용하여 다양한 크기의 bbox를 추출하기 때문에 여러 scale, 종횡비에 대해 검출이 가능하다.
또한 3x3의 conv filter를 사용하여 multi feature map을 만들어 낸다. - 1-stage이고 FC layer 대신 Conv layer를 사용하여 매우 빠르다.
- base network로 VGG16 사용
Abstract
- single deep Neural Network를 사용해 detection을 한다.
- ouput을 만드는 공간(multi feature map)을 나누고, 각 피쳐 맵(output map)에서 다른 비율과 스케일로 default box를 생성하고 모델을 통해 계산된 좌표와 클래스 값에 default box를 활용해 최종 bounding box를 생성한다.
Introduction
- 이전까진 region proposal을 구하고 해당 bbox에서 픽셀이나 feature를 resample 한 뒤, 좀 더 정확한 classifier를 이용하는 방법이 주로 사용되었는데 이는 정확하긴 하지만 임베디드, 하이엔드 시스템에선 계산이 너무 많아 실시간 응용이 어렵다.
→이는 기존의 2-stage detector의 방식의 문제점 - 이 논문에서는 region proposal을 위해 pixel이나 feature를 resample하지 않는 최초의 deep network 기반의 detection을 소개한다.
- category 점수와 bbox 위치를 예측하기 위해 feature map에 적용되는 small conv filter를 이용한다.
또한 물체의 여러 종횡비를 위한 각기 다른 필터를 사용하고 이러한 필터들을 마지막 단계에서 여러 scale에 대해 작동하도록 적용하여 성능을 향상했다. - 실험 결과는 걸린 시간과 정확도에 대한 분석을 포함하고, PASCAL, COCO, ILSVRC 데이터 셋으로 성능을 비교했고 그중 제일 높았다.
The single shot detector (SSD)
Model
Input : 300x300x3 image
Output : category score, bbox offset
- SSD는 저해상도 이미지에서도 작동이 잘 된다.
VGG16 모델의 conv4_3까지를 base network로 사용하여 input image가 38x38x512로 바뀐다. - 38x38, 19x19, 10x10, 3x3, 1x1에 해당되는 feature map은 output과 직결된 feature map으로 논문에서 말한 multi feature map이다.
- conv filter size는 3x3x(bbox 개수 x (class score + offset))이다.
이 6개의 feature map에서 각각 예측된 바운딩 박스의 총합은 8732개 이고 이 바운딩 박스 중 IOU를 계산하여 0.5 이상만 고려 대상으로 만든 뒤 NMS를 진행하여 추려낸다. - Multi-scale feature maps for detection
- 6개 크기의 feature map을 의미한다.
- YOLO는 7x7 grid로 나눈것 하나의 feature map이지만, SSD는 여러 feature map을 이용해 ouput을 만든다.
→YOLO는 작은 물체의 검출이 어렵지만 SSD는 multi feature map을 사용해서 이를 해결 - feature map을 점진적으로 줄여서 여러 scale에 대해서 검출이 가능하다.
- 큰 feature map에선 작은 물체, 작은 feature map에서는 큰 물체를 탐지한다?
- Convolutional predictors for detection
- Ouput과 연결된 feature map은 conv filter를 이용해 생성된 고정된 수의 검출 결과를 생성한다.
이 때 mxn크기의 p 채널을 가진 작은 커널을 사용하는데 3x3 xp 사이즈의 필터로 conv연산 - 예측된 output은 category score, default box에 대응되는 offset을 구한다.
- YOLO는 Output과 FC로 연결된다.
SSD는 conv 연산을 통해 시간을 단축시켰다.
→FC는 연산량이 매우 많다!
- Ouput과 연결된 feature map은 conv filter를 이용해 생성된 고정된 수의 검출 결과를 생성한다.
- Default boxes and aspect ratios
- 각 feature map의 cell에서 default bbox를 만들고 그 default box와 대응되는 자리에서 예측되는 bbox의 offset과 per-class score를 예측한다.
- per-class score는 박스에 사물이 있는지 없는지 나타내는 값이다.
- k개의 cell 위치가 있고 c개의 class와 4개의 offset 정보를 계산해야 한다면 각 셀마다 (c+4) k개의 filter를 가지게 되어 mxn 크기의 특징 맵은 (c+4) kmn 개의 출력을 가지게 된다.
→cell을 k개로 나누고 class의 개수 c로 나누어서 filter를 사용한다! - Faster R-CNN의 anchor와 비슷하지만 다른 해상도의 feature map에 적용한다는 점이 다르다.
Training
- Matching strategy
- Training 중, GT detection에 해당하는 default box를 선정해야 하고 그에 따라서 network를 적절히 학습시켜야 한다. GT를 default box에 비교시 IoU가 0.5 이상인 것을 선택한다.
- 가장 높은 IoU를 선택하는 것보다 여러 default box를 선택하는 것이 학습을 간소화시킨다.
- Training objective (loss function)
- notation
x^p_ij = {1,0} → i번째 default box와 j번째 GT box의 category p에 대한 지표
N → GT box와 매칭 된 default box의 개수 (N이 0이면 loss도 0)
l : 예측된 box
g : GT box
c : confidence score (물체일 확률)
d : default bbox
alpha : weight term, cross validation를 통해 1로 설정
conf → c를 파라미터로 가지는 softmax loss function이다. - Faster R-CNN과 같은 Smooth L1 loss를 이용한다.
- notation
- Choosing scales and aspect ratios for default boxes
- 다른 크기와 비율의 object를 인식하는 방법에는 여러 가지가 있는데, SSD는 저차원, 고차원의 feature map을 사용하여 detection을 한다.
- default box가 각 feature map layer의 실제 receptive field와 같을 필요가 없다.
특정 feature map이 특정한 물체의 scale에 반응하도록 default box를 움직이게 학습했다.
- Smin = 0.2, Smax = 0.9라면 가장 하위 layer의 default box는 0.2배의 scale을 가지고 가장 상위 layer의 default box는 0.9의 scale을 가지고 그 사이는 일정하게 크기가 변화한다.
- ar은 각 Default box마다 여러 종횡비를 적용한 것을 나타낸다.
- 종횡비에 따른 각 default box의 w, h를 구하는 식이다.
- 이렇게 나온 5개의 box에 사이즈 s’k = (sk*s(k+1))^(1/2)와 종횡비 1을 가지는 default box를 하나 추가해 총 6개의 default box가 feature map의 각 location마다 생성된다.
- 이러한 방법으로 특정 데이터 셋에 대해 default box들의 분포가 알맞게 이루어지도록 디자인할 수 있다.
- Hard negative mining
- 위에서 설명한 Matching 과정을 거친 후에, 수많은 default box가 negative로 판단된다.
이는 positive와 negative sample 개수 간에 큰 불균형을 가져온다.
→negative로 판단되는 이유는 image에는 foreground보다 background의 비율이 훨씬 많기 때문에 큰 불균형을 초래하는 것 (detection, segmentation의 고질적인 학습 문제이다.) - 따라서 모든 negative sample들을 사용하지 않고 confidence loss가 높은 negative box 순으로 뽑아서 positive와 negative의 비율이 최대 3:1이 되도록 맞춘다.
이를 통해 최적화가 빨라지고 학습이 안정적으로 가능하다.
- 위에서 설명한 Matching 과정을 거친 후에, 수많은 default box가 negative로 판단된다.
- Data augmentation
- 다양한 물체의 크기와 모양에 강건하도록 다음 방법 중 하나를 통해 랜덤 하게 샘플링된다.
- 입력 이미지 전체를 사용
- 물체와 최소 IoU가 0.1, 0.3, 0.5, 0.7, 0.9인 patch를 추출해 사용
- 랜덤 하게 patch를 추출해 사용
- patch는 0.1~1 배 사이의 이미지 사이즈를 사용하고 종횡비도 0.5 ~ 2배 사이다.
- GT box의 center가 샘플링된 patch가 존재하면 Overlap 된 부분을 유지한다.
- horizontal flip p=0.5 진행, 여러 이미지 왜곡도 진행
- 다양한 물체의 크기와 모양에 강건하도록 다음 방법 중 하나를 통해 랜덤 하게 샘플링된다.
Experimental Results
PASCAL VOC2007
Model analysis
- Data augmentation is crucial
- More default box shapes is better
- Atrous is faster
- Multiple output layers at different resolutions is better
728x90
반응형
'Paper review > 2D Object detection' 카테고리의 다른 글
[논문 리뷰] DETR: End-to-End Object Detection with Transformers (0) | 2022.07.05 |
---|---|
[논문 리뷰] (RetinaNet) Focal Loss for Dense Object Detection (0) | 2022.07.01 |
[논문 리뷰](YOLO)You Only Look Once:Unified, Real-Time Object Detection (0) | 2022.06.28 |
[논문 리뷰] Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks (0) | 2022.06.24 |
[논문 리뷰] Fast R-CNN (4) | 2022.06.24 |