Buttercups - Powerpuff Girls

개념 정리/인공지능

YOLOv5🚀 - 개념 살펴보기 (1)

jeonga 2022. 7. 12. 15:19

 

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 모델 종류

small - medium - large - xlarge