Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

덕배의 블로그

인공지능(AI) 딥러닝 YOLO 역사 series(yolov4,yolov5)에 대해 알아보자 본문

인공지능

인공지능(AI) 딥러닝 YOLO 역사 series(yolov4,yolov5)에 대해 알아보자

김덕배_KDB 2023. 7. 27. 00:25
반응형

YOLO series

yolov4, yolov5에 대해 알아보기 전에 yolov 전 시리즈가 궁금하다면 밑에 사이트를 참고하면 좋을 듯하다.

https://rkdtmdqja98.tistory.com/21

 

인공지능 딥러닝 YOLO 역사 series(yolov1,yolov2,yolov3)에 대해 알아보자

YOLO series flow 이번엔 YOLO의 역사에 대해서 알아보려 한다. 먼저 yolov1, yolov2, yolov3 순서별로 알아보자 YOLOv 시리즈를 흐름으로 알고 가면 좋을 듯하여 간단명료하게 적어보았다. 자세한 설명들은

rkdtmdqja98.tistory.com

 

딥러닝이 궁금하다면 밑에 사이트에서 확인 바란다.

https://rkdtmdqja98.tistory.com/16

 

인공지능 딥러닝 알고리즘( CNN, RNN, LSTM)에 대해 알아보자

Deep Learning이란? 딥러닝(Deep Learning)이란 여러 층을 가진 인공신경망(Artificial Neural Network, ANN)을 사용하여 머신러닝 학습을 수행하는 것으로 심층학습이라고도 부른다. 따라서 딥러닝은 머신러닝

rkdtmdqja98.tistory.com

 

1. YOLOv4

yolov4
yolov4

1. Backbone

  1. YOLO backbone은 이미지 픽셀을 풀링 하여 다양한 세분성에서 기능을 형성하는 컨볼루션 신경망입니다. 백본은 일반적으로 분류 데이터 세트(일반적으로 ImageNet)에서 사전 훈련된다.
  2. Backbone은 기본적으로 기능 추출기 역할을 하는 딥 러닝 아키텍처
  3. 모든 백본 모델은 기본적으로 분류 모델이다. 

 

2. Neck

  1. YOLO Neck(FPN은 위에서 선택됨)은 예측 헤드로 전달하기 전에 ConvNet 레이어 표현을 결합하고 혼합
  2. Neck은 스페셜 백의 하위 집합이며 기본적으로 백본의 여러 단계에서 기능 맵을 수집 - 기능 수집기

 

3. Head

  1. YOLO Head - 경계 상자 및 클래스 예측을 만드는 네트워크의 일부
  2. Head는 물체 감지기라고도 하며 기본적으로 물체가 있을 수 있는 영역을 찾지만 해당 영역에 어떤 물체가 있는지 알려주지 않는다.
  3. 앵커 기반 감지기와 앵커 프리 감지기로 더 세분화되는 2단계 감지기와 1단계 감지기가 있다.

 

  • 기존 YOLO시리즈의 작은 객체 검출 문제를 해결하고자 한 것이 특징이다.
    • 다양한 작은 object들을 잘 검출하기 위해 input 해상도를 크게 사용하였다. 기존에는 224,256 등의 해상도를 이용하여 학습을 시켰다면 YOLOv4에서는 512를 사용
    • receptive field(수용 범위)을 물리적으로 키워 주기 위해 layer 수를 늘렸으며, 하나의 image에서 다양한 종류, 다양한 크기의 object들을 동시에 검출하려면 높은 표현력이 필요하기 때문에 parameter 수를 키워주었다.

 

BoF(Back of Freebies)이란?

- Inference time은 증가시키지 않으면서 더 높은 정확도를 얻기 위해 학습시키는 방법.

 

 

 

BoS(Back of Special)이란?

- inference time은 조금 증가시키지만 정확도를 크게 향상하기 위해 학습시키는 방법. 모델 및 후 처리에 적용하는 기술.

 

 

 

  • Architecture
    • FPN과 PAN 기술을 도입
    • CSP기반의 backbone 연결과 SPP 등의 새로운 네트워크 구조를 도입하여 성능 향상

 

 

FPN(Feature Pyramid Network)이란?

- 정확성과 속도를 염두에 두고 이러한 피라미드 개념을 위해 설계된 기능 추출기이다.

 

 

CSP(Cross Stage Partial connections)이란?

- CSPNet의 목적은 점점 많은 gradient combiantion이 만들어지는 동안 연산량을 줄이는 것이라고 한다

 

 

PAN(Path Aggregation Network)이란?

- FPN의 한 버전, FPN과 유사하게 작동하지만 그림 14(아래)와 같이 상향식 증강 경로를 추가하여 낮은 수준의 강한 텍스처 응답이 바로 가기 경로(Only ~ 10개의 레이어가 그들 사이에 존재합니다).

 

PAN
PAN

 

 

SPP(Spatial Pyramid Pooling)이란?

- 각기 크기가 다른 CNN 피쳐맵 인풋으로부터 고정된 크기의 feature vector를 뽑아내는 것 , 왜 입력 이미지 크기가 고정되어야 할까? → FC layer가 고정된 입력 크기를 필요로 하기 때문

 

SPP
SPP

2. YOLOv5

  • Yolo v5는 Yolo v4와 마찬가지로 이러한 장점을 가진 CSPNet을 이용하는데, BottleneckCSP를 사용하여 각 계층의 연산량을 균등하게 분배해서 연산 bottleneck을 없애고 CNN layer의 연산 활용을 업그레이드시켰다.

 

  • 다른 Yolo 모델들과 다른 점은 backbone을 depth multiple과 width multiple를 기준으로 하여 크기별로 yolo v5 s, yolo v5 m yolo v5 l, yolo v5x로 나눈다는 것이다.
    • 아래 그림과 같이 yolo v5s가 가장 빠르지만 정확도가 비교적 떨어지며 yolo v5x는 가장 느리지만 정확도는 향상된다.

yolov5
yolov5

 

  • 최적화가 잘 되어 있어 weight file 크기가 이전 모델보다 작다.

 

  • 다양한 크기의 network를 사용하여 상황에 맞는 선택이 가능하다.

 

  • 크기가 작아서 임베디드에 배포 가능하다.

 

 

 

 

다음은 yolov6, yolov7, yolov8에 대해 알아보겠다!