목표
5회차: 23/08/05 13:00~16:00
계획: YOLO 논문 분석 (3)
방향: 'A COMPREHENSIVE REVIEW OF YOLO: FROM YOLOV1 AND
BEYOND' 논문 분석
결과
YOLOv5
G. Jocher, “YOLOv5 by Ultralytics.” https://github.com/ultralytics/yolov5, 2020
- 오픈 소스 기반이며 Pytorch 환경에서 개발
- 자체 개발한 AutoAnchor 알고리즘, k-means clustering, GE 알고리즘을 활용해 anchor를 예측
- Albumentation 패키지를 적용해 다양한 데이터 증강 기법을 이용 Mosaic, Copy Paste, Random Affine, MixUp, HSV augmentation, Random Horizontal Flip, etc.
- 여러 크기의 모델을 제공 YOLOv5n(nano), YOLOv5s(small), YOLOv5m(medium), YOLOv5l(large), YOLOv5x(extra large)
- Classification, Instance Segmentation 가능
- Architecture
Backbone | Neck | Head |
---|
CSPDarknet53 + Stem Layer | SPPF, CSP-PAN | YOLOv3 |
- stem layer를 적용한 CSPDarknet53을 backbone으로 사용
- Stem Layer: kernel size가 큰 strided convolution layer를 이용해 메모리와 연산량을 줄임
- SPPF(Spatial Pyramid Pooling Fast): SPP의 빠른 버전으로 이미지 크기에 상관 없이 동일한 크기의 feature를 추출
- SiLU(Swish, Sigmoid Linear Unit) Activation( x∗σ(x)) 사용
YOLOX
Z. Ge, S. Liu, F. Wang, Z. Li, and J. Sun, “Yolox: Exceeding yolo series in 2021,” arXiv preprint
arXiv:2107.08430, 2021
YOLOv3(Ultralytics, Pytorch)를 기반으로 Pytorch 환경에서 개발
- Developments
- Anchor-Free: YOLOv2부터 사용되어 오던 anchor를 사용하지 않음으로써 학습 과정을 간단히 함
- Multi Positives
- YOLOv3의 방식을 따르는 상태에서 anchor의 부재는 오직 하나의 positive sample만 예측하는데 이는 주변의 다른 sample을 무시하게 됨
- 이를 막고자 예측한 sample의 중심 좌표를 기준으로 3×3 구간 내의 픽셀에 다른 sample의 중심 좌표가 있다면 이를 채택
- Decoupled Head: classification과 localization 과정 간의 충돌을 막고자, 이 두 task를 2개의 head로 분리해서 수행
- Advanced Label Assignment(SimOTA)
- OT(Optimal Transport) Problem: ground truth label assignment 수행 시 여러 object의 bbox가 겹칠 때 발생하는 문제
- OT problem을 해결하기 위해 SimOTA 기법 도입
- Strong Augmentations: MixUP, Mosaic 기법의 데이터 증강 도입
- Architecture Decoupled Head가 적용되어 classification(Cls.과 localization(Reg. + IoU.) 과정을 분리
YOLOv6
C. Li, L. Li, H. Jiang, K. Weng, Y. Geng, L. Li, Z. Ke, Q. Li, M. Cheng, W. Nie, et al., “Yolov6: A single-stage object detection framework for industrial applications,” arXiv preprint arXiv:2209.02976, 2022
YOLOv6-N부터 YOLOv6-L6까지 여러 크기의 모델 존재
- Developments
- A New Backbone Based on RepVGG
- RepVGG: training과 inference 시에 구조가 바뀌는(re-parameterized) network
- New Classification and Regression Loss
- Varifocal Loss: 클래스 불균형 문재를 해결하기 위한 focal loss를 개선한 함수로서 focal loss의 가중치 조정 방식을 개선
- SIoU/GIoU Regression Loss: 개선된 형태의 IoU 기반의 loss를 적용
- Quantization: 양자화를 적용해 더 빠른 모델 제작
- Architecture
Backbone | Neck | Head |
---|
RepVGG blocks | PAN | Decoupled |