YOLOv10과 YOLOv5#
프로덕션 환경에서 성공적인 컴퓨터 비전 파이프라인을 배포하려면 적합한 신경망 아키텍처를 선택하는 것이 중요합니다. 이 페이지에서는 실시간 객체 탐지의 발전 과정에 큰 영향을 미친 두 모델인 YOLOv10과 YOLOv5를 기술적으로 심층 분석하여 비교합니다. 두 모델 모두 AI 커뮤니티에 상당한 영향을 미쳤지만, 딥러닝 아키텍처 설계에서 서로 다른 시대와 철학을 대표합니다.
이 가이드에서는 평균 정밀도(mAP), 추론 지연 시간, 파라미터 효율성, 생태계 지원을 기준으로 두 아키텍처를 평가하여 배포 요구 사항에 가장 적합한 모델을 선택하도록 돕습니다.
모델 개요#
YOLOv10: 실시간 종단 간 객체 감지#
칭화대학교 연구진이 개발한 YOLOv10은 후처리의 필요성을 제거하는 새로운 접근 방식으로 객체 검출을 구현했습니다.
- 저자: Ao Wang, Hui Chen, Lihao Liu 외
- 조직: 칭화대학교
- 날짜: 2024-05-23
- 연구 논문: arXiv:2405.14458
- 소스 코드: YOLOv10 GitHub 저장소
YOLOv10의 핵심적인 혁신은 엔드투엔드 NMS 없는 설계입니다. 과거 YOLO 모델은 중복 바운딩 박스를 걸러내기 위해 비최대 억제(NMS)에 의존했습니다. YOLOv10은 NMS 없는 학습을 위해 일관된 이중 할당을 활용하여 추론 지연 시간의 변동성을 크게 줄이고 배포 로직을 간소화합니다. 또한 연산 중복을 줄이기 위해 다양한 구성 요소를 철저히 최적화하는, 효율성과 정확성을 모두 고려한 전체적인 아키텍처를 갖추고 있습니다.
YOLOv5: 사용 편의성의 업계 표준#
Ultralytics PyTorch 저장소가 시작된 직후 출시된 YOLOv5는 개발자가 오픈 소스 비전 AI 프레임워크에 기대하는 수준을 새롭게 정의했습니다. 현재도 전 세계에서 가장 널리 배포되는 아키텍처 중 하나입니다.
- 저자: Glenn Jocher
- 조직: Ultralytics
- 날짜: 2020-06-26
- 소스 코드: YOLOv5 GitHub 저장소
YOLOv5는 사용 편의성과 잘 관리되는 생태계로 호평받습니다. PyTorch만으로 작성된 YOLOv5는 ONNX 및 TensorRT와 같은 형식으로의 학습, 검증, 내보내기를 기본 지원하여 "초보자에서 전문가까지" 원활한 경험을 제공했습니다. 순수 객체 검출에 주로 초점을 맞추는 YOLOv10과 달리, YOLOv5는 동일한 통합 Python API 내에서 인스턴스 분할과 이미지 분류를 지원하는 뛰어난 다목적성을 보여줍니다.
성능 및 지표 비교#
속도와 정확도의 관계를 시각화하면 주어진 속도 제약에서 가장 높은 정확도를 제공하는 모델을 찾는 데 도움이 됩니다. 이러한 성능 지표를 이해하는 것은 구체적인 하드웨어 제약 조건에 부합하는 모델을 선택하는 데 필수적입니다.
| 모델 | 크기 (픽셀) | mAP검증 50-95 | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
기술 분석#
- 정확도(mAP): YOLOv10은 정확도에서 세대 간 뚜렷한 우위를 보여줍니다. 예를 들어 YOLOv10-X 모델은 54.4% mAPval를 달성하여 YOLOv5x(50.7% mAP)보다 뛰어난 성능을 보입니다. 이러한 도약은 주로 2024년에 도입된 NMS 없는 학습 전략과 아키텍처 개선 덕분입니다.
- 추론 지연 시간: YOLOv5 모델은 순수 T4 TensorRT 벤치마크에서 매우 빠르지만(예: YOLOv5n은 1.12ms), YOLOv10은 NMS 후처리 단계를 완전히 제거합니다. 엔드투엔드 실제 배포에서는 YOLOv10의 NMS 없는 설계가 더 일관되고 결정론적인 지연 시간을 제공하며, 이는 자율주행차 및 로보틱스와 같은 실시간 애플리케이션에 매우 중요합니다.
- 파라미터 효율성: YOLOv10 모델은 경쟁력 있는 성능 균형을 유지합니다. YOLOv10-S는 YOLOv5s와 동일한 7.2M개의 파라미터로 46.3% mAP를 달성하며, YOLOv5s의 mAP는 37.4%입니다.
NVIDIA Jetson과 같은 엣지 AI 디바이스에 배포할 때는 NMS 로직이 없는 모델(YOLOv10 또는 nms=False를 사용해 내보낸 YOLO26 등)이 TensorRT로 더 원활하게 컴파일되는 경우가 많아 CPU 대체 연산을 방지할 수 있습니다.
사용 사례 및 권장 사항#
YOLOv10과 YOLOv5 중 어떤 모델을 선택할지는 구체적인 프로젝트 요구 사항, 배포 제약 조건, 생태계 선호도에 따라 달라집니다.
YOLOv10을 선택해야 하는 경우#
YOLOv10은 다음과 같은 경우에 적합합니다:
- NMS가 필요 없는 실시간 탐지: 비최대 억제 없이 엔드 투 엔드 탐지를 활용하여 배포 복잡성을 줄일 수 있는 애플리케이션입니다.
- 속도와 정확도의 균형: 다양한 모델 규모에서 추론 속도와 탐지 정확도 간의 균형이 중요한 프로젝트입니다.
- 일관된 지연 시간이 필요한 애플리케이션: 로보틱스나 자율 시스템처럼 예측 가능한 추론 시간이 중요한 배포 시나리오입니다.
YOLOv5를 선택할 경우#
다음과 같은 경우 YOLOv5를 권장합니다.
- 프로덕션에서 검증된 시스템: YOLOv5의 오랜 안정성 기록, 방대한 문서, 대규모 커뮤니티 지원을 중요하게 여기는 기존 배포 환경입니다.
- 리소스 제약이 있는 학습: GPU 리소스가 제한된 환경에서 YOLOv5의 효율적인 학습 파이프라인과 적은 메모리 요구 사항이 유리합니다.
- 폭넓은 내보내기 형식 지원: ONNX, TensorRT, CoreML, LiteRT 등 다양한 형식으로 배포해야 하는 프로젝트입니다.
Ultralytics(YOLO26)를 선택해야 하는 경우#
대부분의 신규 프로젝트에는 성능과 개발자 경험을 가장 잘 조합한 Ultralytics YOLO26을 권장합니다.
- NMS가 필요 없는 엣지 배포: 비최대 억제 후처리의 복잡성 없이 일관된 저지연 추론이 필요한 애플리케이션입니다.
- CPU 전용 환경: 전용 GPU 가속 기능이 없는 디바이스에서 YOLO26의 최대 43% 빠른 CPU 추론은 결정적인 이점을 제공합니다.
- 작은 객체 탐지: 항공 드론 이미지나 IoT 센서 분석과 같이 작은 객체의 정확도를 ProgLoss와 STAL이 크게 높여 주는 까다로운 시나리오입니다.
Ultralytics의 강점#
YOLOv10은 뛰어난 검출 성능을 제공하지만, 학술용 저장소에 의존하면 프로덕션 파이프라인이 복잡해질 수 있습니다. 공식 Ultralytics Python 패키지를 사용하면 고급 기능과 함께 YOLOv5와 YOLOv10을 모두 지원하는 통합 생태계를 이용할 수 있습니다.
- 학습 효율성: Ultralytics YOLO 아키텍처는 학습 중 메모리 요구량을 줄이도록 철저히 최적화되어 있습니다. 대량의 CUDA 메모리가 필요한 RT-DETR과 같은 대규모 Transformer 모델과 달리, 일반 소비자용 GPU에서도 YOLOv5와 YOLOv10을 수월하게 학습할 수 있습니다.
- 생태계 통합: Ultralytics Platform과의 통합을 통해 개발자는 데이터 세트를 시각적으로 관리하고, Weights & Biases를 사용해 실험을 추적하며, 하이퍼파라미터를 자동으로 조정할 수 있습니다.
코드 예제: 원활한 학습#
Ultralytics 라이브러리를 사용하면 모델 문자열을 바꾸는 것만으로 두 아키텍처 간에 간단히 전환할 수 있습니다. 학습 파이프라인이 데이터 증강, 스케일링, 옵티마이저 설정을 자동으로 처리합니다.
from ultralytics import YOLO
# YOLOv5를 사용하려면:
# model = YOLO("yolov5su.pt")
# YOLOv10을 사용하려면:
model = YOLO("yolov10s.pt")
# 사용자 지정 데이터 세트로 모델을 학습합니다.
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
batch=16,
device=0, # GPU 0을 사용합니다.
)
# 학습한 모델을 ONNX 형식으로 내보냅니다.
path = model.export(format="onnx")차세대 모델: Ultralytics YOLO26#
오늘 새로운 머신러닝 프로젝트를 시작한다면, 최신 Ultralytics YOLO26을 평가해 보시기를 강력히 권장합니다. 2026년 1월에 출시된 YOLO26은 지난 5년간의 주요 혁신을 결합한 최첨단 모델입니다.
YOLO26은 YOLOv10이 개척한 엔드투엔드 NMS 없는 설계를 선택형 일대일 헤드(nms=False)로 기본 통합하여 빠르고 결정론적인 배포를 지원합니다. 또한 YOLO26은 다음과 같은 주요 혁신을 도입합니다.
- 최대 43% 빠른 CPU 추론: 분포 초점 손실(DFL) 모듈을 제거함으로써 YOLO26은 일반 CPU에서 속도를 크게 향상하며, 모바일 배포와 저전력 IoT 센서에 최적의 선택이 됩니다.
- MuSGD 옵티마이저: Moonshot AI의 Kimi K2와 같은 대규모 언어 모델(LLM) 학습 기법에서 영감을 얻은 YOLO26은 SGD와 Muon의 하이브리드를 사용합니다. 이를 통해 이전 YOLO 모델에 사용된 표준 SGD 및 AdamW 옵티마이저보다 훨씬 안정적으로 학습하고 훨씬 빠르게 수렴합니다.
- ProgLoss + STAL: 이 고급 손실 함수는 소형 객체 인식 성능을 크게 향상하며, 드론 이미지와 항공 보안 애플리케이션에 매우 중요합니다.
- 작업별 전문성: YOLOv10이 바운딩 박스 검출에만 특화된 반면, YOLO26은 포즈용 잔차 로그 우도 추정(RLE)과 방향성 바운딩 박스(OBB)용 특수 각도 손실을 비롯한 모든 작업에 맞춰 아키텍처를 개선했습니다.
객체 검출 분야의 전반적인 동향을 살펴보고 있다면 다른 프레임워크와 이 아키텍처를 비교해 보는 것도 좋습니다. 보다 포괄적인 벤치마킹을 위해 YOLO11과 EfficientDet 비교 또는 RT-DETR과 YOLOv8 비교를 확인해 보세요.
YOLOv5의 검증된 유산, YOLOv10의 NMS 없는 혁신, YOLO26의 탁월한 최첨단 성능 중 무엇을 선택하든, Ultralytics 생태계는 비전 AI 애플리케이션을 빠르고 효율적으로 구현하는 데 필요한 도구를 제공합니다.