Study

[YOLOv8] 새로운 YOLO 모델, YOLOv8 Review

서주녁 2023. 1. 16. 03:06

2022년에 YOLOv5를 이용해 프로젝트를 진행했었는데, 꽤 괜찮은 성능을 보여 만족했던 기억이 있다.

 

특히 Object Detection 관련하여 논문이나 연구들을 찾아보면 YOLOv3나 v5를 활용한 사례들이 많이 보이는데,

 

YOLO 특유의 사용자 편의성과 준수한 성능 때문이 아닐까 생각한다.

 

YOLOv3, YOLOv5 모델 둘다 ultralytics에서 개발했고 꽤나 인기가 많아 아직까지도 많이 사용되고 있는데, (v6는...)

 

이번에 ultralytics에서 새로운 버전인 YOLOv8을 배포하여 리뷰해볼까 한다.

 

참고로 YOLO 모델 같은 경우엔 v4나 v7 같은 차기 버전들도 있지만

 

내가 알기론 개발자가 다른것으로 알고 있어 ultralytics에서 개발한 v8이 제일 의미가 있다고 생각한다.


(리뷰는 ultralytics Github와 Roboflow를 참고했다.)

우선 이번 v8 모델은 Object DetectionInstance Segmentation을 위주로 새로운 기술들을 업데이트했다고 한다.

 

특히 모델 아키텍처에서 큰 개선이 있었고, 신기한 점은 pip 패키지를 통해 새로운 인터페이스를 제공한다고 한다.

YOLOv8 모델의 아키텍처 구조 시각화

YOLO 모델별 파라미터 수Latency에 따른 mAP Score를 나타낸 그래프이다.

 

한 눈에 봐도 v8에서 확연한 성능 차이가 나타나는 것을 볼 수 있다.

 

Anchor Box Concept

 

그리고 큰 차이점은, Anchor Box 개념이 v8에서 없어졌다고 한다.

 

YOLO 모델을 학습시키기 위해 Custom Dataset을 준비해본 사람들은 알겠지만,

 

YOLO 모델의 학습 데이터에 대한 라벨링을 할 때, 다른 모델들 처럼 Bounding Box의 꼭짓점을 라벨링하는게 아닌,

 

중심점으로부터의 종횡비스케일을 구해 라벨링해줘야 하는것을 알고 있을것이다.

 

이게 바로 Anchor Box 때문인데, 이제는 이럴 필요 없이 일반적인 좌표값(?)을 넣으면 인스턴스의 중심을 직접 예측하여

 

Aspect Ratio(종횡비)와 Scale을 직접 구한다고 한다. Custom Dataset을 준비할 때 프로세스가 하나 줄은 셈이다.

 

YOLOv5와 v8 모델의 성능 비교 테이블

결정적으로, v5 모델과 v8 모델을 비교한 표이다.

 

가장 가벼운 모델인 Nano에서 성능이 크게 개선되었고, 무거운 모델일수록 그 차이가 줄어들긴 했지만

 

모든 모델에서 성능이 크게 향상된걸 확인할 수 있다.

YOLOv8n Model Summary

가벼워서 흔히 쓰이는 Nano 모델의 경우 225개의 Layer, 3,157,200개의 파라미터로 구성되어있다.


이번 YOLOv8 모델의 경우 Roboflow에서 API Key를 발급받아 별도의 다운로드 없이 학습 및 사용이 가능하다고 한다.

 

v8 모델이 많이 개선된것치고는 정보가 별로 없는데, 사용할 기회가 된다면 한번 사용해보는 것도 좋을 것 같다.