YOLOv7 YOLOv10: 아키텍처의 진화 및 성능 분석
추론 속도와 감지 정확도 사이의 영원한 트레이드오프 사이에서 균형을 잡는 YOLO (You Only Look Once) 제품군의 진화는 컴퓨터 비전 발전의 흥미로운 타임라인을 보여줍니다. 이 비교에서는 두 가지 중요한 이정표를 자세히 살펴봅니다: YOLOv72022년에 새로운 벤치마크를 설정한 강력한 모델과 YOLOv10와 2024년에 출시될 NMS 학습으로 패러다임의 전환을 가져올 YOLOv10 입니다.
두 모델 모두 물체 감지를 위한 탁월한 선택이지만, 서로 다른 아키텍처 철학에 부합합니다. YOLOv7 훈련 가능한 '공짜 가방'과 그라데이션 경로 최적화의 한계를 뛰어넘는 반면, YOLOv10 실시간 엔드투엔드 효율성을 달성하기 위해 후처리 병목 현상을 제거하는 데 중점을 둡니다.
YOLOv7: 그라데이션 경로 최적화하기
2022년 7월에 출시된 YOLOv7 추론 비용 증가 없이 훈련 프로세스를 최적화하는 데 중점을 둔 아키텍처 변경을 도입했습니다. COCO 데이터 세트에 대한 높은 정확도로 인해 범용 컴퓨터 비전 작업에 빠르게 인기를 얻었습니다.
저자 왕 치엔야오, 알렉세이 보흐코브스키, 홍위안 마크 리아오
조직: 대만 학술원 정보과학연구소
날짜: 2022-07-06
ArXiv:YOLOv7: 훈련 가능한 공짜 가방, 실시간 물체 감지기의 새로운 지평을 열다
GitHub:WongKinYiu/yolov7
주요 아키텍처 기능
YOLOv7 확장된 효율적인 레이어 집계 네트워크(E-ELAN)를 도입했습니다. 이 아키텍처를 통해 모델은 최단 및 최장 경사 경로를 제어하여 보다 다양한 특징을 학습할 수 있으며, 학습 중에 네트워크가 효과적으로 수렴하도록 보장합니다.
또한, YOLOv7 추론 비용을 늘리지 않고도 학습 중 정확도를 향상시키는 '백오브프리비(Bag-of-Freebies)' 방법을 많이 활용합니다. 여기에는 복잡한 학습 구조를 간소화된 추론 구조로 단순화하여 학습된 성능을 유지하면서 지연 시간을 줄이는 모델 재파라미터화가 포함됩니다.
YOLOv10: NMS 종말
칭화대학교 연구진이 2024년 5월에 출시한 YOLOv10 물체 감지의 오랜 병목 현상을 해결합니다: 비최대 억제NMS입니다. 기존의 YOLO 모델은 단일 객체에 대해 여러 개의 경계 상자를 예측하고 중복된 객체를 필터링하기 위해 NMS 의존합니다. 이 후처리 단계는 씬의 오브젝트 수에 따라 달라지는 지연 시간을 추가합니다.
저자 왕 아오, 후이 첸, 리하오 리우 등.
조직: 칭화대학교
날짜: 2024-05-23
ArXiv:YOLOv10: 실시간 엔드투엔드 객체 감지
GitHub:THU-MIG/yolov10
주요 아키텍처 기능
YOLOv10 일관된 이중 할당 전략을 도입했습니다. 학습 중에 모델은 일대다 헤드(풍부한 감독을 위해)와 일대일 헤드(엔드투엔드 예측을 위해)를 모두 사용합니다. 추론 중에는 일대일 헤드만 사용되므로 NMS 전혀 필요하지 않습니다. 따라서 예측 가능하고 지연 시간이 짧은 추론이 가능하므로 처리 시간이 일정해야 하는 엣지 AI 애플리케이션에 매우 적합합니다.
기술 비교: 아키텍처 및 성능
이 모델들의 주요 차이점은 추론 효율성에 대한 접근 방식에 있습니다. YOLOv7 고도로 최적화된 백본 (E-ELAN)에 의존하여 특징을 효율적으로 추출하지만 여전히 기존의 후처리가 필요합니다. YOLOv10 기본 탐지 헤드를 수정하여 후처리 단계를 제거함으로써 비슷한 정확도 수준에서 지연 시간을 단축합니다.
성능 지표
아래 표에서 볼 수 있듯이 YOLOv10 뛰어난 효율성을 보여줍니다. 예를 들어, YOLOv10b는 더 높은 mAP (52.7%)를 달성하는 반면, 훨씬 적은 수의 매개변수(24.4M 대 36.9M)와 부동소수점 연산(FLOP)을 사용합니다(51.4%).
지연 시간 이해
"속도" 메트릭은 YOLOv10 NMS 설계의 영향을 강조합니다. NMS 단계를 제거함으로써 YOLOv10 추론 중 계산 오버헤드를 줄여주며, 이는 후처리가 병목 현상이 발생할 수 있는 TensorRT 같은 하드웨어 가속기에서 특히 유용합니다.
| 모델 | 크기 (픽셀) | mAPval 50-95 | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
강점과 약점
YOLOv7 강점:
- 검증된 견고성: 2022년부터 다양한 학술 및 산업 환경에서 광범위하게 테스트되었습니다.
- 고해상도 지원: 특정 W6/E6 변형을 통해 고해상도 입력(예: 1280픽셀)에서 뛰어난 성능을 발휘합니다.
- 커뮤니티 리소스: 오래된 만큼 많은 양의 튜토리얼과 타사 구현이 존재합니다.
YOLOv7 약점:
- 복잡성: 재매개변수화 및 보조 헤드 구조는 최신 Ultralytics 모델에 비해 학습 파이프라인을 복잡하게 만들 수 있습니다.
- NMS 종속성: 추론 속도는 부분적으로 NMS 인한 씬 밀도에 따라 달라집니다.
YOLOv10 강점:
- 가장 짧은 지연 시간: NMS 아키텍처로 매우 빠른 추론이 가능하여 실시간 추론에 이상적입니다.
- 효율성: 더 적은 매개변수와 더 낮은 메모리 사용량으로 최첨단 정확도를 달성합니다.
- 배포 용이성: NMS 단계를 제거하면 ONNX 및 TensorRT 같은 형식으로 내보내기 프로세스가 간소화됩니다.
YOLOv10 약점:
- 작업 특이성: 주로 객체 감지에 초점을 맞춘 반면, Ultralytics 에코시스템의 다른 모델(예: YOLO11)은 기본적으로 통합 프레임워크에서 세분화, 포즈 추정, OBB를 지원합니다.
이상적인 사용 사례
YOLOv7 YOLOv10 중 선택은 배포 환경의 특정 제약 조건에 따라 달라지는 경우가 많습니다.
- 다음과 같은 경우 YOLOv7 사용합니다: 이미 v7 아키텍처를 통합한 레거시 프로젝트에서 작업 중이거나 추론 속도가 원시 정밀도보다 중요한 큰 이미지에서 작은 물체를 감지하기 위해 특정 고해상도 변형(예: YOLOv7)이 필요한 경우입니다.
- 다음과 같은 경우 YOLOv10 사용하세요: 리소스가 제한된 에지 디바이스(Raspberry Pi, Jetson Nano, 휴대폰)에 배포하거나 자율 주행 또는 고속 로보틱스와 같은 애플리케이션에 절대적으로 최소한의 지연 시간이 필요한 경우. 메모리 사용량이 적기 때문에 클라우드 환경에서도 더 저렴하게 실행할 수 있습니다.
Ultralytics 이점
YOLOv7 선택하든 YOLOv10 선택하든, Ultralytics Python API를 통해 이를 활용하면 원시 리포지토리 코드를 사용하는 것보다 상당한 이점을 얻을 수 있습니다. Ultralytics 이러한 모델을 사용 편의성, 교육 효율성 및 다양성을 우선시하는 통합된 에코시스템에 통합했습니다.
간소화된 사용자 경험
복잡한 딥 러닝 모델을 학습하려면 지금까지는 복잡한 구성 파일과 종속성을 관리해야 했습니다. Ultralytics 프레임워크는 이 프로세스를 표준화합니다. 개발자는 아키텍처 간(예: YOLOv10n에서 YOLOv10s 또는 심지어 YOLO11) 데이터 로더나 유효성 검사 스크립트를 다시 작성하지 않고도 단일 문자열 인수를 변경하여 아키텍처를 전환할 수 있습니다.
코드 예제
다음 예제에서는 이러한 모델을 로드하고 예측하는 방법을 Ultralytics 패키지를 사용하여 보여줍니다. 기본 모델 아키텍처에 관계없이 API가 일관성을 유지하는 방법에 주목하세요.
from ultralytics import YOLO
# Load a pre-trained YOLOv10 model (NMS-free)
model_v10 = YOLO("yolov10n.pt")
# Load a pre-trained YOLOv7 model
model_v7 = YOLO("yolov7.pt")
# Run inference on an image
# The API handles underlying differences automatically
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v7 = model_v7("https://ultralytics.com/images/bus.jpg")
# Print results
for result in results_v10:
result.show() # Display predictions
에코시스템 및 미래 대비
YOLOv7 YOLOv10 강력하지만, Ultralytics 에코시스템은 지속적으로 진화하고 있습니다. 최신 YOLO11 모델은 v7(기능 통합)과 v10(효율성)에서 얻은 교훈을 바탕으로 구축되었습니다.
- 잘 유지 관리됩니다: 잦은 업데이트를 통해 최신 버전의 PyTorch, CUDA 및 내보내기 형식CoreML, ONNX, TensorRT)과의 호환성을 보장합니다.
- 메모리 효율성: Ultralytics 모델은 트레이닝 중 GPU VRAM 사용량을 최소화하도록 설계되어 많은 트랜스포머 기반 대안(예: RT-DETR)에 비해 소비자 하드웨어에서 더 큰 배치 크기를 사용할 수 있습니다.
- 트레이닝 효율성: 사전 조정된 하이퍼파라미터와 '스마트' 데이터 세트 스캔을 통해 훈련 수렴 속도가 빨라져 컴퓨팅 비용을 절감할 수 있습니다.
오늘 새로운 프로젝트를 시작하는 개발자를 위해 다음과 같은 내용을 살펴보세요. YOLO11 의 속도와 이전 버전의 강력한 특징 추출이 정교하게 균형을 이루고 인스턴스 분할 및 포즈 추정과 같은 단순 감지 이상의 작업에 대한 기본 지원을 제공하므로 적극 권장합니다.
다른 모델 살펴보기
추가 비교 또는 다른 아키텍처에 관심이 있다면 다음 리소스를 참조하세요:
- YOLO11 YOLOv8 - 최신 최신 모델을 비교하세요.
- RT-DETR YOLOv10 - 트랜스포머 기반 탐지 대 CNN 기반 효율성 비교.
- 프로그래밍 가능한 그라데이션 정보(PGI)와 NMS 디자인 비교 - YOLOv9 YOLOv10 비교.