상세 컨텐츠

본문 제목

[5주차/이서연/논문리뷰] YOLOv5

2023 Summer Session/CV Team 1

by 쏘니냐 2023. 8. 3. 23:50

본문

*YOLOv5은 논문이 존재하지 않아 reference를 참고해서 모델 리뷰를 진행해보았습니다.

YOLOv5

YOLO 시리즈 흐름

  • YOLOv1 : 2016년에 발표된 최초 버전으로, 실시간 객체 검출을 위한 딥러닝 기반의 네트워크
  • YOLOv2 : 2017년에 발표된 두 번째 버전으로, 성능을 개선하고 속도를 높인 것이 특징, Darknet19을 제안, Anchor Box 도입으로 인한 학습 안정화
  • YOLOv3 : 2018년에 발표된 세 번째 버전으로, 네트워크 구조와 학습 방법을 개선하여 객체 검출의 정확도와 속도를 모두 개선, v2 모델에 비해 탐지 속도는 약간 느려졌지만 탐지 성능을 또 대폭 개선, Darknet-53로 변경
  • YOLOv4 : 2020년 4월에 발표된 네 번째 버전으로, SPP와 PAN 등의 기술이 적용되어 더욱 정확한 객체 검출과 더 높은 속도를 제공, 기존 YOLO시리즈의 작은 객체 검출 문제를 해결하고자 한 것

  • YOLOv5 : 2020년 6월에 발표된 버전으로 YOLOv4와 비교하여 객체 검출 정확도에서 10% 이상 향상되었으며, 더 빠른 속도와 더 작은 모델 크기를 가짐
  • YOLOv7 : 2022년 7월 발표된 버전으로, 훈련 과정의 최적화에 집중하여 훈련 cost를 강화화는 최적화된 모듈과 최적 기법인 trainable bag-of-freebies를 제안
  • YOLOv6 : 2022년 9월 발표된 버전으로, 여러 방법을 이용하여 알고리즘의 효율을 높이고, 특히 시스템에 탑재하기 위한 Quantization과 distillation 방식도 일부 도입하여 성능 향상
  • YOLOv8 : 2023년 1월 발표된 버전으로, YOLO 모델을 위한 완전히 새로운 리포지토리를 출시하여 개체 감지, 인스턴스 세분화 및 이미지 분류 모델을 train하기 위한 통합 프레임워크 로 구축됨

특징

  • YOLOv3를 구현한 사람과 동일인
  • YOLO의 기존 특성과 많이 다름

  • YOLOv3 : FPS(Frame per seconds)는 높고, mAP(mean Average Precision)는 비교적 낮은 모델 →YOLOv5는 FPS와 mAP 측면에서 모두 뛰어난 성능을 발휘
  • Yolov5s, Yolov5m, Yolov5l, Yolov5x -> small, medium,large, xlarge
  • 기준 = depth multiple(model depth multiple), width multiple(layer width multiple)YOLOv5는 다른 yolo 모델과 달리 크기별로 나눠짐

  • yolo v5-s의 depth&width_multiple이 가장 작고(depth_multiple : 0.33, width_multiple : 0.50), x의 depth&width_multiple은 (1.33, 1.25)로 가장
  • 정확도와 속도 반비례. s 가 가장 빠른 대신 정확도는 떨어지고 x가 가장 느린 대신 정확도는 향상됨.

YOLOv5가 기존의 yolo 시리즈보다 빠른 이유?

  • Backbone 차이 : 이미지에서 feature map을 추출하는 부분
      • CNN의 학습 능력을 향상 시킬 수 있는 새로운 backbone
      • 목적 : 컴퓨팅 파워가 낮은 환경이 감당하기 힘든 연산량을 완화시킬 수 있는 모델, 점점 많은 gradient combination이 만들어지는 동안 연산량을 줄이는 것.
      • 구현 방안 : base layer에서 두 개의 파트로 나눈 다음 마지막 cross-stage 계층에서 합침으로써 실현 가능 / 피처맵의 일부에만 컨볼루셔널 연산을 수행하고, 나머지 부분과 통합시키는 방법
      • CSPNet을 이용한 object detection의 장점
        1. CNN의 학습능력 강화 : 정확도 유지하며 경량화 가능
        2. 연산 Bottleneck 삭제 : 각 계층의 연산량을 균등하게 분배해서 연산 bottleneck을 없애고 CNN layer의 연산 활용을 업그레이드
        3. 메모리 cost 감소
      • method :

  • Bottleneck CSP 사용 : 4개의 CNN layer 생성

-> Conv1,Conv4 -> convolution을 하고 Conv2, Conv3 -> convolution+ batch_norm

-> CSP 구조 답게 y 값을 2개 생성. y1은 conv1에서 conv3로 갈 때의 연산값, y2는 conv2의 값을 받음. 그리고 이를 conv4에 합치고 반환.

  • Head 차이 : 물체의 위치를 찾는 부분
    1. Anchor Box를 설정한 후 최종적으로 Bounding Box를 생성 → 8 pixel의 정보를 가진 작은 물체, 16 pixel의 정보를 가진 중간 물체, 32 pixel의 정보를 가진 큰 물체를 인식을 할 수 있는 3가지 scale의 bounding box를 생성.

YOLOv5 구조

Reference

https://keyog.tistory.com/30

 

CSPNet : CNN의 학습능력을 향상 시킬 수 있는 새로운 Backbone

SOTA를 확인하다 읽었던 CSPNet에 대해 작성해보려고 한다. 논문의 제목은 CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN 으로 직역 하자면 이 포스팅의 제목과 같이 CNN의 학습능력을 향상 시킬

keyog.tistory.com

https://iambeginnerdeveloper.tistory.com/180

 

YOLOv5 모델 아키텍쳐 분석 | YOLOv5 Training 및 Inference

Object Detection을 하면서 가장 쉽게, 많이 사용하는 모델인 Yolo v5 모델 아키텍쳐를 간단하게 분석을 해 보았다. Yolo v5 Github : https://github.com/ultralytics/yolov5 GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONN

iambeginnerdeveloper.tistory.com

https://bigdata-analyst.tistory.com/194

 

YOLOv5 - Introduction

YOLOv5는 가장 최근에 나온 yolo 시리즈다. 이에 대해서 직접 학습하고 실행해보았다. 일단 개발환경은 Ubuntu 18.04.5, GPU : TitanXP 이다. anaconda 버전은 가장 최근 버전을 사용하였다. Training dataset은 COCO

bigdata-analyst.tistory.com

https://velog.io/@qtly_u/n4ptcz54

 

[YOLO] YOLO 버전별 비교 - Yolo v1부터 Yolo v8까지 (23.03.기준)

이번 글에서는 YOLO 시리즈별 구조 및 특징에 대해 정리해보겠습니다. 23년 3월 기준 YOLO는 버전 8까지 나와있습니다. < YOLO 버전별 출시 시점 > - YOLOv1 : 2016년에 발표된 최초 버전으로, 실시간 객체

velog.io

 

관련글 더보기

댓글 영역