[P] Week 9 - 1 Stage Detectors

JaeJun Lee ·2022년 11월 18일
0

부스트캠프 AI Tech

목록 보기
29/30

일반적으로 2 stage detector는 Localization을 수행하고 Classification을 진행하기 때문에 속도가 느리다는 단점이 있어 real-time에 적용하기 힘든 문제로 1 stage detector 연구가 진행되었다.

1 stage에서는 RPN 과정이 사라지고 인풋 이미지에 대해 Localization과 Classifiaction이 동시에 진행된다. 전체 이미지에 대해 특징 추출, 객체 검출이 이루어지기 때문에 간단하고 디자인이 쉬우며 속도가 빠르고 영역을 추출하지 않고 전체 이미지를 보기 때문에 객체에 대한 맥락적 이해가 높은 특징이 있다.

YOLO v1

YOLO는 GoogleNet을 변형한 Network를 사용한다. 입력 이미지를 SxS 그리드 영역으로 나누는데 해당 논문에서는 S=7을 사용한다. 각 그리드 영역마다 B개의 Bounding box와 Confidence score를 계산하고 C개의 class에 대한 클래스 확률을 계산한다.

그리드 당 2개의 bounding box를 포함하고 box 수 만큼의 (x, y, w, h, c : confidence score)와 class 개수에 해당하는 채널 수를 가진다. Inference 과정은 confidence score를 통해 class score를 계산하고 각 class 마다 score가 일정 threshhold보다 낮은 box들은 0으로 만든 뒤 내림차순으로 정렬해 NMS를 진행한다.

YOLO는 당시 real-time detector 및 2 stage 모델들 보다 빠르고 성능은 더 높았다. 그러나 7x7 그리드 영역을 사용하기 때문에 그리드보다 작은 크기의 물체는 검출이 불가능하고 신경망을 통과한 마지막 feature map만 사용한다는 단점이 있다.

SSD

YOLO v1 이후 제안된 SSD에서는 backbone 이후로 추가적인 convolution layers를 사용해 6개의 다양한 scale을 가지는 feature map을 사용하기 때문에 큰 feature map에서는 작은 물체를 탐지하고 작은 feature map에서는 큰 물체를 탐지할 수 있다. Fully connected layer는 Fully Convolutional layer로 대체하여 속도를 향상시켰으며 미리 정의된 anchor box를 사용했다. 결과적으로 YOLO v1보다 속도와 성능을 향상시켰다.

YOLO v2

YOLO v1보다 Better(성능), Faster(속도), Stronger(예측 class 개수) 파트에서 model 향상을 위해 제안되었다.

  • Better: Batch normalization, High resolution classifier 사용
    • Input Image -> YOLO v1: 224x224 vs YOLO v2: 448x448
    • Fully connected layer 제거
    • coco datasets을 분석하여 5개의 anchor box 사용
    • 좌표 값이 아닌 offset을 예측하는 것으로 변경
    • 여러 feature map을 합쳐주는 passthrough layer를 도입해 fine-grained features를 사용
    • 입력 이미지를 다양한 scale로 사용 (not multi-scale feature map)
  • Faster
    • backbone model을 googleNet -> Darknet-19로 변경
    • FC layer를 3x3, 1x1 conv를 사용하는 convolutional layer로 대체
  • Stronger
    • 9000개 class를 예측
    • ImageNet과 COCO dataset를 WordTree로 구성하는데 4:1 비율로 함께 사용

YOLO v3

YOLO v2와 달리 서로 다른 3개의 scale를 가지는 multi-scale feature maps를 사용하고 FPN을 사용했다.

RetinaNet

보통 1 stage detector는 rpn이 없어 이미지에서 객체가 있을법한 영역을 뽑는 것이 아니라 이미지를 그리도 나눈 뒤 각 그리드 별로 bounding box를 무조건 예측하기 때문에 2 stage detector보다 background를 포함하게 될 확률이 많아 class imbalance 문제점이 있다.

이를 개선하기 위해 cross entropy loss + scaling factor인 focal loss를 제시하였고 이 loss는 detection 뿐만 아니라 class imbalance가 심한 dataset을 학습할 때 범용적으로 사용될 수 있다. 결과적으로 1 stage methods의 단점이였던 성능면에서 큰 향상을 이루었다.

0개의 댓글