:)
YOLOv4 review 본문
https://arxiv.org/pdf/2004.10934v1.pdf
- main goal : designing a fast operating speed of an object detector in production systems and optimization for parallel computations
- 1080Ti, 2080Ti 사용 단일 GPU에 적합
- BOF, BOS 기법 적용
Object detection models
- backbone(입력 이미지를 feature map으로 변형)
- VGG
- ResNet
- ResNeXt
- DenseNet
- head(Backbone에서 추출한 feature map의 location 작업) - 두 종류로 구분
- one-stage object detector : Dense Prediction 헤드를 사용, 최근 몇년간 1단계 object detector 개발됨. YOLO, SSD
- two-stage object detector : Faster R-CNN, R-FCN
- neck : recent years often insert some layers between backbone and head, and these layers are usually used to collect feature maps from different stages. Pyramid Network (FPN), Path Aggregation Network (PAN)
Bag of freebies (BOF)
- 비용을 증가시키지 않고 전체 정확도를 개선하기 위해 오프라인으로 훈련
- data augmentation 기술의 파이프 라인
- Semantic Distribution Bias in Datasets(The label smoothing : 데이터 불균형 해소)
- IoU loss, which puts the coverage of predicted BBox area and ground truth BBox area into consideration. (BBox가 얼마나 일치하는지) → 최근 GIoU( include the shape and orientation of object in addition to the coverage area. 겹치지 않은 부분을 고려)
Bag of specials (BOS)
- increase the inference cost by a small amount but can significantly improve the accuracy of object detection.these plugin modules are for enhancing certain attributes.
- Receptive Field를 키워서 검출 성능을 높이기 위해 제안된 Spatial Pyramid Pooling (SPP), atrous convolution(dilated convolution)을 적용한 ASPP, Receptive Field Block (RFB) 등을 사용하였고, Feature를 중간에서 합쳐주는 Skip-connection, Feature Pyramid Network (FPN), Scale wise Feature Aggregation Module (SFAM), adaptively spatial feature fusion (ASFF), BiFPN 등을 사용
- Activation Function :ReLU 계열의 activation function과 AutoML로 찾은 Swish, Swish를 개선시킨 Mish 등을 사용
- post-processing method : 예측된 Bounding box들 중 중복된 Bounding box들을 하나로 합쳐주는 Non Maximum Suppression (NMS), Soft NMS, DIoU NMS 등을 사용
YOLOv4
- CSPDarknet53 backbone 사용
- parameter 수를 키워줌 (다양한 크기의 object를 검출하기 위해)
- YOLOv4 consists of:
- Backbone: CSPDarknet53
- Neck: SPP, PAN
- Head: YOLOv3
- CutMix, Mosaic Augmentation과 Label Smoothing을 적용하여 성능이 약간 향상이 되었고, Activation Function으로는 ReLU대비 Swish는 오히려 안 좋은 결과를 보였고 Mish를 사용할 때 큰 폭의 성능 향상
- CSPResNeXt50 모델이 CSPDarknet53 모델보다 분류 정확도가 높음. but object detection 은 CSPDarknet53 모델이 더 높음
결론
- YOLOv3 보다 정확도를 끌어올림.
- Single GPU로 학습, 테스트
→ 실시간성을 고려한다면 괜찮아보임. 싱글 GPU 사용으로 실용성 좋아보임.
but 우리 프로젝트에는 굳이 실시간성을? 고려 해볼만함.
'AI' 카테고리의 다른 글
Perception 기술 분류 (0) | 2022.05.02 |
---|---|
YOLOv3 시작하기 (0) | 2022.05.02 |
Object Detection (0) | 2022.04.30 |
CNN - Training (0) | 2022.04.29 |
CNN (0) | 2022.04.26 |
Comments