논문명/저자/소속 | YOLO9000: Better, Faster, Stronger |
---|---|
저자(소속) | Joseph Redmon, Ali Farhadi () |
학회/년도 | CVPR 2017, 논문 |
키워드 | Joseph2016b |
데이터셋/모델 | PASCAL VOC 2007, 2012, COCO 2015 |
참고 | 홈페이지v2, 번역, TFKR_PR, Youtube 정리 , 모연 |
코드 | Darknet, pyTorch#1, pyTorch#2 |
YOLO2
1. 개요
YOLOv2는 네트워크의 크기를 조절하여 FPS(Frames Per Second)와 MaP(Mean Average Precision) 를 균형 있게 조절할 수 있다.
성능과 속도를 모두 개선시켜서 SSD(Single Shot MultiBox Detector) 보다 뛰어나다.
2. 특징(YOLO 1 VS. YOLO2 )
- Batch Normalization - 모든 컨볼루션 레이어에 배치 정규화를 추가
- High Resolution Classifier - ImageNet 데이터로 classfication network를 먼저 학습시켜서 고해상도 이미지에도 잘 동작하게 함
- Convolutional - FCL(Fully Conneted Layer)를 Convolution Layer로 대체
- Anchor Boxes - 경계 박스를 처음부터 직접 예측 -> 앵커 박스를 초기값으로 사용하여 예측
- new network - Darknet-19 를 특징 추출기로 사용
- Dimension Clusters - 실제 경계 박스들을 클러스터링하여 최적의 앵커박스를 찾음
- Direct location prediction - 경계 박스의 위치x,y 는 직접 예측(이전 버전과 동일)
- passthrough - 26x26 크기의 중간 특징맵을 skip 하여 13x13레이어에 붙임(concatenate)
- Multi-Scale Training - 학습데이터의 크기를 320x320, 352x352, ..., 608x608 로 resize 하면서 다양한 스케일로 학습시킴
- Fine-Grained Features - 최종 특징맵의 크기를 7x7에서 13x13으로 키움
[출처] YOLOv2 와 YOLO9000|작성자 sogangori
2.1 Batch Normalization
2.2 High Resolution Classifier
3. 구조
YOLO v1,2 의 최종 특징맵 차이
n_boxes = 5
n_classes = 20
YOLO : 7 x 7 x (5 + 5 + n_classes)
YOLOv2 : 13 x 13 x (5 x (5 + n_classes))
그래서 최종 출력은 13x13 크기의 125 채널 특징맵이 된다. (13x13x(5x(5+20)) = 13x13x5x25 = 13 x 13 x 125
YOLO 9000
- Better (YOLOv2)
- Batch normalization
- High resolution classifier
- Convolution with anchor boxes
- Dimension clusters
- Direct location prediction
- Fine-grained features
- Multi-scale training
Faster (YOLOv2)
- Darknet-19
- Training for classification
- Training for detection
Stronger (YOLO9000 - 9000개 클래스)
- Hierarchical classification
- Dataset combination with Word-tree
- Joint classification and detection