YOLO Vers 비교
항목 | v1 | v2 | v3 |
원본 이미지 크기 | 446x446 | 416x416 | 416x416 |
Feature Extractor | Inception 변형 | DarkNet19 | DarkNet53 (resNet의영향 |
Grid당 Anchor Box 수 | 2개 => 셀 별 prediction 2개 (Anchor box는 고정크기) |
5개 | Output Feature Map 당 3개 서로다른 크기와 스케일로 총 9개 |
Anchor Box 결정 방법 | - | Kmeans Clustering | Kmeans Clustering |
Output Feature Map 크기 (Depth 제외) |
7 x 7 | 13 x 13 | 13 x 13, 26 x 26, 52 x 52 3개의 Feature Map 사용 |
Feature Map Scaling 기법 |
- | - | FPN (Feature Pyramid Network) |
YOLO V2 detection 시간 및 성능
- 속도면에서 ssd와 함께 압도적인 성능을 보여줌.
- yolo 중에서도 tiny yolo는 더욱 빠름
YOLO V2 특징
- Batch Normalization
* cnn - batch normali(정규화) - acti(relu)
- High Resolution classifier : 네트웍의 classifier 단을 보다 높은 resolution (448 x 448)로 fine tuning
- classification layer 를 fully connected dense layer에서 fully convolution 으로 변경하고 서로 다른 크기의 image들로 네트
- 13 x 13 feature map 기반에서 개별 grid cell 별 5개의 Anchor box에서 object detection
* Anchor box 크기와 ratio는 kmeans clustering으로 설정
- 예측 bbox의 x,y 좌표가 중심 cell 내에서 벗어나지 않도록 direct location prediction 적용
- darknet-19 classification model 채택 => 예측성능, 수행시간 향상
yolo v2 anchor box로 1cell 에서 여러개 object detection
- SSD와 마찬가지로 1개의 CELL에서 여러개의 Anchor를 통해 개별 cell에서 여러개 object detection가능
- kmeans clustering을 통해 데이터 세트의 이미지크기와 shape ratio따른 5개 군집화 분류를 하여 anchor box 계산
Output feature map
- depth 125개, anchor box 가 5개라서 개당 25개
- yolo v1 : 각 cell의 bbox의 class 확률 : 2개 ( bbox 좌표 4개, confidence 1개) (10개) // 20개의 pascal
- yolo v2 : bbox 25 => bbox 좌표 4개, confidence score 1개, class scores 20개 // 5개 묶음
Direct Location Prediction
(pw, ph) : anchor box size
(tx, ty, tw, th) : 모델 예측 offset 값
(bx, by) : 예측 bounding box 중심 좌표와 size
* center 좌표가 cell 중심을 너무 벗어나지 못하도록 0~1 사이의 시그모이드 값(1/1+e^x)으로 조절
- yolo v1 loss와 유사한 loss 식
Passthrough module을 통한 fine grained feature
- 좀더 작은 오브젝트를 detect하기 위해서 26x26x512 feature map 특징을 유지한 채 13x13x2048로 reshape한 뒤 13x13x1024에 추가하여 feature map 생성
=> 1/4로 줄어듬
- merge module로 넣어서 작은 object를 찾기
- SSD는 각각 feature map에서 끄집어내서 합치고 nms으로 필터링
Multi-scale training
- classification layer가 convolution layer로 생성하여 동적으로 입력 이미지 크기 변경 가능
- 학습 시 10회 배치시 마다 입력 이미지 크기를 모델에서 320부터 608까지 동적으로 변경(32배수로 설정)
Darknet 19 backbone
- classification layer에 fully conneted layer를 제거하고 conv layer를 적용
* vgg-16 : 30.69 bflops, top5 accuracy : 90%
-> 3x3이라 간단해서 선호하는 아키텍처
* yolo v1 : 8.52 bflops, top5 accuracy : 88%
* yolo v2 darknet19 : 5.58 bflops, top5 accuracy : 91.2%
성능 향상
'Computer_Science > Computer Vision Guide' 카테고리의 다른 글
7-7. opencv dnn yolo object detection (0) | 2021.10.27 |
---|---|
7-6~7. YOLO V3 (0) | 2021.10.25 |
7-2~3. yolo v1 (0) | 2021.10.24 |
7-1. YOLO - You Only Look Once (0) | 2021.10.24 |
6-7~8. TF hub pretrained model SSD Inference (0) | 2021.10.22 |