YOLO(V2) 이해
YOLO V1에 이어 등장한 YOLO V2의 경우 anchor box 기반의 모델 구성과 Darknet 기반의 backbone모델을 구성함으로써 v1에 비해 inference 성능과 detection성능 모두 높혀졌다.
YOLO V2는 다음과 같은 특징을 가진다고 요약할 수 있다.
- Batch Normalization(배치 정규화) 기법을 적용
- 13*13 feature map기반에 개별 Grid cell별 5개의 Anchor box에서 Object Detection 수행. 이때 anchor box의 크기와 비율은 K-Means Clustering 으로 설정
- 예측 bbox의 x,y 좌표가 중심 cell에서 벗어나지 않도록 Direct Location Prediction을 적용
- Darknet19 classification 모델의 채택
- classification layer를 fully connected layer에서 fully convolution으로 변경하고 서로 다른 크기의 image들로 네트워크 학습 진행
왼쪽 그림과 같이 하나의 cell에 5개의 고정된 anchor box가 만들어지게 되고 anchor box는 K-means clustering을 통해 비율과 크기가 정해지게 된다.
bbox는 총 하나의 cell 마다 5개가 존재하고 각각의 anchor box마다 총 25개의 개별 정보(중심 좌표값, 크기, 길이, class score)가 담겨지게 된다.
Direct Location Prediction
(pw, ph) : anchor box size(width, height)
(tx, ty, tw, th) : 모델 예측 offset 값
(bx, by), (bw, bh) :예측 bbox 중심 좌표와 size
anchor box의 center좌표값이 정해진 cell 중심을 일정 수준 이상 벗어 나지 못하도록 0~1 사이의 sigmoid 값으로 조절
Passthrough module을 통한 fine grained feature
Yolo v2에서는 더 작은 object를 detect하기 위해 26*26*512 feature map에서 그 특징을 그대로 유지한 채 그 크기를 13*13*2048로 reshape한 뒤 13*13*1024 feature map에 추가하여 Merge Module을 구현하였다.
Multi-scale Training
Yolo v2에서는 classification layer가 convolution layer로 바뀌어지면서 동적으로 입력 이미지의 크기를 변경이 가능했다.
학습시 매번 10회 batch 마다 입력 이미지의 크기를 320*320부터 32의 배수로 608까지 동적으로 변경하여 train을 진행하였다.
입력 이미지의 size가 커지면 mAP의 성능은 올라감에 반에 FPS의 성능은 떨어지는 것을 볼 수 있었다.
Yolo-v2의 성능 향상 표
결과적으로 YOLO V2는 전의 V1버전에 비해 성능향상을 이루어 낼 수 있게 되었다.