YOLOv8와 YOLOv7#
컴퓨터 비전 분야는 끊임없이 발전하고 있으며, 새로운 아키텍처가 실시간 객체 탐지의 가능성을 확장하고 있습니다. 이 심층 분석에서는 큰 영향을 미친 두 모델인 Ultralytics YOLOv8과 YOLOv7을 비교합니다. 두 모델 모두 개발자 커뮤니티와 학술 연구에 큰 영향을 미쳤으며, 복잡한 시각 작업을 해결하기 위한 고유한 접근 방식을 제공합니다.
이 두 모델의 구조적·방법론적 차이를 이해하는 것은 배포 파이프라인을 최적화하려는 머신 러닝 엔지니어에게 매우 중요합니다. YOLOv7은 원시 처리량에 맞춘 강력한 "bag-of-freebies" 접근 방식을 도입한 반면, Ultralytics YOLOv8은 높은 정확도와 낮은 메모리 사용량, 멀티태스크 유연성의 균형을 이루는 종합적이고 사용하기 쉬운 생태계를 구축하는 데 초점을 맞췄습니다.
Ultralytics YOLOv8: 다목적 생태계 표준#
2023년 초 Ultralytics에서 출시된 YOLOv8은 이전 버전과 크게 다른 아키텍처를 선보였습니다. YOLOv8은 단순한 실시간 객체 탐지기를 넘어, 다양한 비전 작업을 기본적으로 처리할 수 있는 통합 프레임워크로 처음부터 설계되었습니다.
- 저자: Glenn Jocher, Ayush Chaurasia, Jing Qiu
- 조직: Ultralytics
- 날짜: 2023-01-10
- GitHub: ultralytics/ultralytics
- 문서: YOLOv8 문서
아키텍처 혁신#
YOLOv8은 혁신적인 anchor-free 탐지 헤드를 도입했습니다. 이를 통해 사용자 지정 데이터셋의 특정 분포에 따라 anchor box를 수동으로 구성할 필요가 없어져 학습 과정이 근본적으로 단순해집니다. 이러한 설계 선택으로 모델의 견고성이 높아지고 다양한 환경에 더 쉽게 일반화할 수 있습니다.
또한 아키텍처에는 C2f module(두 개의 convolution을 사용하는 Cross-Stage Partial bottleneck)이 포함되어 있습니다. 이는 gradient flow를 개선하고 계산 비용을 크게 늘리지 않으면서 신경망이 더 풍부한 feature representation을 학습할 수 있도록 하는 구조적 업그레이드입니다. 따라서 PyTorch와 같은 표준 딥러닝 프레임워크를 통해 inference를 실행할 때 모델의 효율성이 높습니다.
Ultralytics YOLO 모델은 최고의 학습 효율을 목표로 설계되었습니다. 일반적으로 Transformer 기반 아키텍처나 더 무거운 CNN보다 학습 중 CUDA 메모리를 훨씬 적게 사용합니다. 따라서 일반 소비자용 하드웨어에서도 더 큰 batch size로 학습할 수 있어 개발 주기를 단축할 수 있습니다.
YOLOv7: "Bag-of-Freebies" 접근 방식#
YOLOv7은 2022년 중반에 소개되었으며 학계에서 빠르게 인기 있는 baseline이 되었습니다. 고급 GPU에서 실시간 객체 탐지의 한계를 넓히기 위해 아키텍처 재매개변수화와 gradient path 최적화에 중점을 두었습니다.
- 저자: Chien-Yao Wang, Alexey Bochkovskiy, Hong-Yuan Mark Liao
- 기관: 대만 중앙연구원 정보과학연구소
- 날짜: 2022-07-06
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
아키텍처 혁신#
YOLOv7은 확장형 효율적 레이어 집계 네트워크(E-ELAN)를 사용하여 모델이 더 다양한 feature를 지속적으로 학습할 수 있도록 합니다. 또한 anchor 기반 패러다임에 크게 의존하며, inference 비용을 늘리지 않고 정확도를 향상하는 최적화 방법 모음인 학습 가능한 "bag-of-freebies"를 도입했습니다.
YOLOv7은 MS COCO 데이터셋과 같은 표준 학술 benchmark에서 뛰어난 성능을 보이지만, 아키텍처가 서버급 accelerator에 맞춰 고도로 최적화되어 있습니다. 이러한 모델을 edge device로 export하고 배포하려면 더 현대적이고 간소화된 프레임워크에 비해 수동 구성이 더 많이 필요할 수 있습니다.
상세 성능 비교#
이러한 모델을 평가할 때는 속도, 정확도, 모델 크기 간의 trade-off가 주요 고려 사항입니다. 아래 표에서는 두 모델의 metric을 강조하여 보여 줍니다.
| 모델 | 크기 (픽셀) | mAPval 50-95 | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
데이터에서 볼 수 있듯이 YOLOv8x는 가장 높은 절대 정확도(53.9 mAP)를 달성하며, nano variant(YOLOv8n)는 뛰어난 inference 속도와 매우 가벼운 footprint를 제공합니다. 이러한 다양성 덕분에 YOLOv8은 제약이 있는 하드웨어 환경에 훨씬 더 유연하게 대응할 수 있습니다.
Ultralytics의 강점: 사용 편의성과 생태계#
YOLOv7이 강력한 원시 탐지 metric을 제공하는 반면, Ultralytics YOLOv8은 개발자 경험, 생태계 통합, 멀티태스크 기능 측면에서 크게 앞섭니다.
탁월한 범용성#
YOLOv7은 주로 탐지 모델이며 다른 작업을 위한 실험적 branch를 제공합니다. 반면 YOLOv8은 기본적으로 객체 탐지, 인스턴스 세그멘테이션, 이미지 분류, 포즈 추정, 방향성 BBox(OBB)를 지원합니다. 이러한 통합 접근 방식을 사용하면 팀이 하나의 API만 학습하고 완전히 다른 프로젝트 요구 사항에도 이를 배포할 수 있습니다.
간소화된 배포 및 통합#
production을 위해 모델을 export하는 작업은 병목이 되는 경우가 많습니다. Ultralytics 패키지를 사용하면 한 줄의 Python 코드만으로 ONNX, TensorRT, CoreML과 같은 형식으로 export할 수 있습니다. 따라서 복잡한 anchor 기반 graph를 export할 때 발생할 수 있는 operator 지원 문제를 피할 수 있습니다.
또한 YOLOv8은 MLOps 도구와 원활하게 통합됩니다. Weights & Biases로 experiment를 추적하든 Hugging Face Spaces에서 배포를 테스트하든, Ultralytics 생태계가 복잡한 작업을 처리합니다.
코드 예제: YOLOv8 학습 및 Export#
다음 코드는 Ultralytics Python API의 간결함을 보여 줍니다. 10줄 이내의 코드만으로 모델 초기화부터 학습, edge 배포를 위한 export까지 수행할 수 있습니다.
from ultralytics import YOLO
# Load a pretrained YOLOv8 nano model for fast inference
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
# The API handles data loading, augmentation, and logging automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a test image
predictions = model("https://ultralytics.com/images/bus.jpg")
# Export the trained model to ONNX format for deployment
model.export(format="onnx")model.export() 함수를 사용하면 고성능 inference engine으로 즉시 연결할 수 있어, YOLOv8을 모바일 애플리케이션, 임베디드 시스템 또는 고처리량 cloud server에 쉽게 통합할 수 있습니다.
실제 사용 사례#
두 모델의 아키텍처 차이에 따라 이상적인 배포 시나리오가 결정됩니다.
YOLOv8을 선택해야 하는 경우:
- Edge AI 및 IoT 기기: 초고속 Nano 및 Small 모델을 사용할 수 있으므로 YOLOv8은 smart camera나 drone과 같이 연산 성능이 제한된 하드웨어에 적합합니다.
- 멀티태스크 프로젝트: pipeline에서 human joint를 추적하는 포즈 추정과 obstacle을 매핑하는 세그멘테이션을 동시에 수행해야 한다면 YOLOv8이 이를 기본적으로 처리합니다.
- 신속한 프로토타이핑부터 production까지: 광범위한 Ultralytics 문서와 원활한 Python API를 사용하면 팀이 제품을 더 빠르게 시장에 출시할 수 있습니다.
YOLOv7을 고려해야 하는 경우:
- 학술 benchmark: 재매개변수화 기법의 효과를 연구하는 연구자들은 Papers With Code에서의 인기도가 보여 주듯 YOLOv7을 표준 baseline으로 사용하는 경우가 많습니다.
- 레거시 서버 pipeline: 기존의 고연산 pipeline이 이미 YOLOv7의 특정 anchor output에 맞춰 엄격하게 최적화되어 있다면 단기적으로는 이를 유지하는 것이 실용적일 수 있습니다.
미래 전망: 차세대 기술#
YOLOv8은 여전히 다목적 powerhouse이지만 AI 환경은 빠르게 변화하고 있습니다. 새로운 프로젝트를 시작하는 팀에는 Ultralytics 제품군의 최신 발전 사항을 살펴보기를 적극 권장합니다.
최신 세대 모델인 **YOLO26**은 현재 vision AI의 정점을 보여 줍니다. End-to-End NMS-Free Design을 적용하여 Non-Maximum Suppression 후처리를 제거하고 더 간단하고 빠른 배포를 지원합니다. Distribution Focal Loss(DFL)를 제거하고 LLM에서 영감을 받은 MuSGD Optimizer를 도입한 YOLO26은 더욱 안정적인 학습과 최대 43% 빠른 CPU inference를 제공합니다. 고급 ProgLoss + STAL loss function은 small object 인식을 크게 향상해 현대적인 edge computing과 항공 이미지에 최적의 선택이 되도록 합니다.
이전 시스템에서 전환하는 사용자를 위해 뛰어난 성능의 **YOLO11**과 고전적인 **YOLOv5**도 통합된 Ultralytics 생태계에서 계속 완벽하게 지원됩니다. 따라서 하드웨어 제약에 관계없이 배포할 수 있는 간소화된 고성능 모델을 사용할 수 있습니다.