YOLOv5 YOLOv10: 실시간 객체 감지의 진화
물체 인식의 환경은YOLOYou Only Look OnceYOLO 시리즈에 의해 크게 형성되었습니다. YOLO 처음부터 속도와 정확성의 균형을 유지하며 컴퓨터 비전 개발자들이 가장 선호하는 아키텍처로 자리 잡았습니다. 이 비교에서는 이 역사에서 중요한 두 가지 순간을 살펴봅니다: Ultralytics YOLOv5의 신뢰성과 다목적성에 대한 업계 표준과 YOLOv10와 칭화대학교에서 최근 학술적으로 발표한 NMS 탐지 기능을 도입하여 효율성을 높인 YOLOv10을 비교합니다.
모델 개요
Ultralytics YOLOv5
2020년 6월에 출시된 글렌 조처와 Ultralytics, YOLOv5 는 AI 모델 배포 방식을 근본적으로 변화시켰습니다. 사용 편의성, 다양한 형식CoreML, ONNX, TFLite)으로의 내보내기, 엣지 하드웨어에서의 강력한 성능을 우선시했습니다. 전 세계적으로 가장 인기 있고 널리 배포된 비전 모델 중 하나로, '작동만 하면 된다'는 철학과 광범위한 커뮤니티 지원으로 인해 여전히 널리 사용되고 있습니다.
주요 저자: Glenn Jocher
조직:Ultralytics
릴리스 날짜: 2020-06-26
GitHub:yolov5
YOLOv10
칭화대학교 연구진이 2024년 5월에 출시한 YOLOv10 이전 버전에서 발견된 후처리 병목 현상을 없애는 것을 목표로 합니다. NMS 훈련을 위해 일관된 이중 할당을 도입함으로써 추론 파이프라인을 최적화하여 지연 시간과 계산 오버헤드를 줄입니다.
주요 저자: 아오 왕, 후이 첸 외.
조직: 칭화대학교
릴리즈 날짜: 2024-05-23
arXiv:YOLOv10: 실시간 엔드투엔드 객체 감지
최신 혁신
이러한 강력한 아키텍처를 비교하면서 새로운 프로젝트를 시작하는 개발자는 다음 사항도 평가해야 합니다. YOLO11. 이 아키텍처는 두 아키텍처의 강점을 바탕으로 최첨단 정확도, 향상된 특징 추출, 포즈 추정 및 방향성 물체 감지와 같은 다양한 작업에 대한 기본 지원을 제공합니다.
아키텍처 및 기술 혁신
YOLOv5 YOLOv10 아키텍처 차이는 성숙한 앵커 기반 신뢰성에서 앵커가 필요 없는 최첨단 효율성으로의 전환을 강조합니다.
YOLOv5: 앵커 기반 표준
YOLOv5 모델 깊이와 너비의 균형을 맞춰 정확도를 유지하면서 플롭을 최소화하는 CSPNet(교차 단계 부분 네트워크) 백본을 사용합니다. 이 모델은 모델이 객체 치수를 예측하는 데 도움이 되는 앵커 박스 사전 정의도형을 사용합니다.
- 백본: CSP-Darknet53은 그라데이션 흐름에 초점을 맞췄습니다.
- 헤드: 앵커 기반 예측과 결합된 헤드입니다.
- 후처리: 중복 탐지를 필터링하기 위해 NMS(Non-Maximum Suppression) 가 필요합니다.
YOLOv10: NMS 필요 없는 효율성
YOLOv10 전체적인 효율성-정확성 중심의 설계를 도입했습니다. 이 모델의 가장 큰 특징은 일관된 이중 할당을 사용하는 NMS 학습 전략입니다. 이를 통해 모델은 추론 중에 객체당 하나의 바운딩 박스를 정확히 예측할 수 있으므로 지연을 유발하는 NMS 단계를 완전히 제거할 수 있습니다.
- 백본: 대규모 커널 컨볼루션과 부분적인 자체 주의로 향상되었습니다.
- 헤드: 일대다 및 일대일 레이블 할당을 결합한 통합 헤드입니다.
- 최적화: 중복성을 줄이기 위한 순위 가이드 블록 설계.
성능 분석
다음 표는 COCO 데이터 세트의 성능 메트릭을 비교한 것입니다. YOLOv5 특히 나노 변형의 경우 CPU 속도에서 여전히 경쟁력이 있지만, YOLOv10 매개변수 및 정확도mAP 측면에서 우수한 효율성을 보여줍니다.
| 모델 | 크기 (픽셀) | mAPval 50-95 | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
메트릭 분석
- 정확도 (mAP): YOLOv10은 평균 Average Precision에서 상당한 도약을 보여줍니다. 예를 들어, YOLOv10n은 YOLOv5n의 28.0 mAP에 비해 39.5 mAP를 달성하여 어려운 객체를 훨씬 더 잘 detect할 수 있습니다.
- 효율성: YOLOv10 더 적은 매개변수(나노 모델의 경우 2.3M 대 2.6M)로 이러한 결과를 달성하여 최적화된 아키텍처 설계의 이점을 보여줍니다.
- 추론 속도: YOLOv5n은 CPU에서 매우 빠른 속도(73.6ms)를 유지하며, 이는 구형 라즈베리파이와 같은 GPU GPU 에지 디바이스에 매우 중요합니다. 그러나 GPU 하드웨어TensorRT)에서는 YOLOv10 더 높은 정확도에도 불구하고 경쟁력 있는 속도를 유지합니다.
강점과 약점
Ultralytics YOLOv5
- 독보적인 에코시스템: 수년간의 개발을 바탕으로 가장 활발한 커뮤니티를 보유하고 있습니다. 문제가 신속하게 해결되고 리소스도 풍부합니다.
- 다목적성: 감지 외에도 이미지 분할과 분류를 기본적으로 지원합니다.
- 사용 편의성: API는 단순성을 위해 설계되었습니다. PyTorch Hub에서 모델을 로드하는 데 코드 한 줄이면 충분합니다.
- 배포: 내보내기 형식에 대한 광범위한 지원으로 휴대폰부터 클라우드 서버까지 모든 기기에서 실행할 수 있습니다.
YOLOv10
- 짧은 지연 시간: NMS 제거하면 후처리 시간이 크게 줄어들어 밀리초 단위가 중요한 실시간 애플리케이션에 매우 중요합니다.
- 매개변수 효율성: 매개변수당 정확도가 높아 저장 공간이나 메모리가 제한된 디바이스에 적합한 솔루션입니다.
- Focus: 강력하지만 주로 물체 감지에 특화되어 있으며, Ultralytics YOLO 시리즈(v8, 11)의 기본 멀티태스크 범위(예: 포즈 추정)가 부족합니다.
메모리 요구 사항
두 모델 모두 경량으로 설계되었습니다. 트레이닝 중에 방대한 양의 CUDA 메모리를 소비하는 대형 트랜스포머 모델과 달리, Ultralytics YOLO 모델은 메모리 효율에 최적화되어 있어 적당한 VRAM을 갖춘 소비자급 GPU에서 트레이닝할 수 있습니다.
실제 사용 사례
YOLOv5 선택해야 하는 경우
YOLOv5 안정성과 광범위한 플랫폼 지원이 필요한 프로덕션 시스템을 위한 실용적인 선택입니다.
- 산업 자동화: 신뢰성이 가장 중요한 품질 관리를 위해 제조 분야에서 널리 사용됩니다.
- 모바일 앱: iOS CoreML 및 Android TFLite)와의 호환성이 입증되어 온디바이스 앱 통합에 이상적입니다.
- 신속한 프로토타이핑: 방대한 양의 튜토리얼과 문서 덕분에 개발자는 몇 시간 만에 콘셉트에서 POC로 전환할 수 있습니다.
YOLOv10 선택해야 하는 경우
YOLOv10 최고의 정확도 대비 효율을 요구하는 시나리오에 탁월합니다.
- 고속 로보틱스: NMS 아키텍처는 자율 로봇의 제어 루프에 매우 중요한 지연 시간 편차를 줄여줍니다.
- 학술 연구: 최신 엔드 투 엔드 detect 패러다임을 벤치마킹하려는 연구자들은 YOLOv10의 아키텍처가 새롭고 효과적이라는 것을 알게 될 것입니다.
- 원격 감시: 제한된 대역폭이나 스토리지에서 작동하는 보안 시스템에는 매개변수 수가 적은 높은 mAP 적합합니다.
교육 및 사용 편의성
Ultralytics 간소화된 개발자 환경을 우선시합니다. 기존 YOLOv5 리포지토리를 사용하든 최신의 ultralytics 패키지를 사용하면 프로세스가 직관적입니다.
YOLOv5 사용
YOLOv5 PyTorch 허브를 통해 쉽게 로드하여 즉시 추론할 수 있는 것으로 유명합니다.
import torch
# Load YOLOv5s from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Perform inference on an image
img = "https://ultralytics.com/images/zidane.jpg"
results = model(img)
# Display results
results.show()
YOLOv10 사용
YOLOv10 다음을 사용하여 통합할 수 있습니다. ultralytics Python 패키지를 통해 동일한 강력한 API의 이점을 누릴 수 있습니다.
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Train the model on COCO data
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference
model.predict("https://ultralytics.com/images/bus.jpg", save=True)
결론
두 아키텍처 모두 컴퓨터 비전의 이정표입니다. YOLOv5 는 견고하고 다재다능하며 방대한 에코시스템의 지원을 받는 업계에서 여전히 신뢰할 수 있는 주력 제품입니다. 다양한 배포 요구 사항을 충족하는 안전하고 "가장 적합한" 선택입니다. YOLOv10 은 NMS 필요 없는 설계로 효율성의 한계를 뛰어넘어, 특히 제한된 하드웨어에서 정확도를 극대화해야 하는 탐지 작업에 집중하는 사용자에게 매력적인 업그레이드를 제공합니다.
Ultralytics 에코시스템 성숙도와 최첨단 정확도 및 속도라는 두 가지 장점을 모두 원하는 개발자에게는 다음을 살펴볼 것을 권장합니다. YOLO11. 이 솔루션은 이러한 발전된 기능을 하나의 강력한 프레임워크로 통합하여 모든 비전 작업에 사용할 수 있습니다.
더 많은 비교를 살펴보고 싶으시다면 YOLOv5 YOLOv8 또는 YOLOv10 YOLO11 확인하세요.