본문 바로가기

YOLO

YOLOv8 정리

roboflow에 Jacob Solawetz 님이 작성한 YOLOv8 Gudie 를 기반으로 작성합니다.


YOLOv8이란?

YOLOv8은 객체 감지, 이미지 분류, 인스턴스 Segmentation Task를 사용할 수 있는 통합 YOLO 모델입니다.

YOLOv8은 YOLOv5를 만든 Ultralytics에서 개발하였고 YOLOv5의 버그 수정, 업데이트 등 다양한 YOLOv5의 경험이 내재되어 있습니다. 

Python 3.10까지 호환이 되고 3.11도 앞으로 호환되도록 진행중이며 Github를 통해 매일 새로운 버그들이 디버깅되고 있습니다.

 

YOLO가 YOLOv8으로 성장한 방법

YOLO는 Joseph Redmond가 2015년에 처음 출시하여 v1~v4까지 Darknet이라는 딥러닝 프레임워크에서 C언어로 개발되었습니다.

v5부터 Pytorch 프레임워크를 사용하여 YOLOv5를 기반한 다양한 파생 버전들이 생겨났습니다.

YOLOv8은 2023년 1월 10일에 출시되었습니다.

 

YOLOv8을 사용해야하는 이유

1. COCO와 Roboflow 100 데이터 셋에서 이전 모델들 보다 더 높은 정확도를 보여줍니다.

2. Python 패키지를 통해 쉽게 설치할 수 있으며, 사용하기 쉽도록 간단한 명령어를 통해 실행시킬 수 있습니다.

3. Github 커뮤니티가 잘되어 있어서 이슈 등이 생겼을 때, 커뮤니티의 전문가들에게 많은 도움을 받을 수 있습니다.

RF100 정확도 비교 [출처:https://blog.roboflow.com/whats-new-in-yolov8/]

 

YOLOv8 Architecture

출판된 논문이 없지만 Github User RangeKing님이 만든 시각화 자료를 통해 YOLOv8의 아키텍처를 들여다볼 수 있습니다.

YOLOv8 아키텍처 [출처:https://blog.roboflow.com/whats-new-in-yolov8/]

Anchor Free Detection

YOLOv8은 Anchor Free 모델로 Anchor box의 offset 대신 객체의 중심을 직접 예측합니다.

Anchor Free Detection은 Anchor box의 수를 줄여 모델 추론 후 NMS(Non-Maximum Suppression)의 속도를 더 높여줍니다.

 

New Convolution Layer

기존 6x6 Conv이 3x3 Conv로 변경되었습니다. 그리고 C3 Layer 또한 변경되어 C2f Layer가 되었습니다.

YOLOv5와 Bottleneck은 동일하지만 첫번째 Conv Layer의 커널 사이즈가 1x1에서 3x3으로 변경되어 2015년에 정의된 ResNet Block으로 돌아갔음을 알 수 있습니다.

이를 통해서, Neck Network에 기존과 같은 채널의 차원수로 Features가 직접 연결될 수 있고 파라미터 수와 Tensor의 전체적인 사이즈가 줄어들었음을 알 수 있습니다.

 

Closing the Mosaic Augmentation

YOLOv5에서 Mosaic Augmentation 기능이 많은 긍정적인 영향을 주었습니다. 

YOLOv8은 Training중 Online으로 이미지를 Aungmentation 합니다.

4개의 이미지를 병합시켜 새로운 label 좌표를 얻을 수 있습니다.

Training 중 전체 이미지를 Mosaic 기법을 사용하면 오히려 성능 저하의 원인이 될 수 있다하여 훈련 종료 전 10 epoch는 Mosaic 기법을 사용하지 않는 방식으로 성능저하를 해결하였습니다.

Mosaic Augmentation 예시 [출처:https://blog.roboflow.com/whats-new-in-yolov8/]

이후 나머지 내용은 YOLOv8 Docs에서 학습 가능하며 Tutorial 형식으로 확인할 수 있습니다.

 

저는 주로 ultralytics 패키지 내 내재되어 있는 datasets의 yaml, parameters setting의 default yaml 파일들을 Customizing해서 YOLOv8 모델을 훈련하고 있습니다.

'YOLO' 카테고리의 다른 글

Mac M2 LabelImg 설치  (0) 2023.07.07