YOLOv5 🚀 is a family of object detection architectures and models pretrained on the COCO dataset, and represents Ultralytics open-source research into future vision AI methods, incorporating lessons learned and best practices evolved over thousands of hours of research and development.
💭 YOLO (You Only Look Once)
- 이미지를 한번 보는 것으로 Object의 종류와 위치를 추측하는 딥러닝 기반의 물체인식 알고리즘
(이전에 R-CNN은 이미지를 여러장 분할해서 CNN 모델을 통해 이미지를 분석했다.)
- 단일 네트워크를 통해 여러개의 테두리 상자(Bounding Box)에 대한 객체 확률을 계산한다.
- 버전 명시 방법: YOLOv<버전>
💭 YOLOv5
- 기존의 YOLO 시리즈보다 빠른 이유? Backbone과 Head의 차이
Backbone: 이미지로부터 Feature Map을 추출하는 부분 => CSPNet(Cross Stage Partial Network)을 사용했다.
* CSPNet: CNN의 학습능력을 향상 시킬 수 있는 새로운 Backbone이다. ImageNet이나 COCO 같은 컴퓨터 비전의 대표적인 데이터에서 성능을 크게 향상 시켰다.
Head: Feature Map을 바탕으로 물체의 위치를 찾는다. Anchor box를 처음에 설정하고 이를 이용해 최종적인 Bounding Box를 찾아낸다. 3개의 scale에서 Bounding Box를 생성하고 각 스케일에서 3개의 Anchor box를 사용한다. (총 9개의 앵커 박스를 사용한다.)
- 아키텍처
4개의 Convolution Layer를 사용한다.
Conv1, Conv4 -> Convolution을 하고 Conv2, Conv3 -> Convolution + Batch norm을 한다.
CSP 구조 특성상 y1은 Conv1에서 Conv3로 갈때의 연산값이 나오고, y2는 Conv2의 값을 받는다. 그리고 이를 Conv4에 합친다.
* CSP 구조 특징: 점점 많은 gradient combniation이 만들어지는 동안 연산량을 줄이는 것이다. Base Layer에서 두개의 파트로 나눈 다음 마지막 Cross-stage 계층에서 합침으로써 실현 가능하다. 이 작업(두개의 파트로 나누었다가 합쳐지는)은 gradient가 전파될 때 transition step에서 correlation difference가 있는 것을 확인한다. 이 작업은 연산량을 크게 줄여주고, 정확도 향상과 inference time을 줄여준다.
💭 YOLOv5 모델 종류
'개념 정리 > 인공지능' 카테고리의 다른 글
[Windows/YOLOX] 개발환경 세팅 (0) | 2022.07.14 |
---|---|
[YOLOX] 개념 (0) | 2022.07.14 |
[object detection] 혼동행렬 - Confusion Matrix (0) | 2022.07.13 |
[Matplotlib] 데이터 시각화 라이브러리 사용 방법 정리 (0) | 2022.07.13 |
[Object Detection/딥러닝] 학습할 때 유의할 점 & 필수로 구현할 기능 (0) | 2022.07.13 |