YOLOv7 대 YOLOv9#
실시간 객체 감지의 영역은 빠르게 발전해 왔으며, 새로운 각 버전은 엣지 디바이스와 클라우드 서버 모두에서 가능한 범위의 한계를 넓혀 왔습니다. 컴퓨터 비전 프로젝트를 위한 아키텍처를 평가할 때 개발자는 기존 벤치마크와 새로운 혁신을 자주 비교합니다. 이 종합 가이드에서는 YOLO 제품군의 두 가지 중요한 이정표인 YOLOv7과 YOLOv9을 비교합니다.
애플리케이션에 적합한 모델을 선택할 수 있도록 두 모델의 아키텍처 혁신, 성능 지표 및 이상적인 배포 시나리오를 분석합니다. 또한 Ultralytics Platform이 이러한 모델을 통합하여 더 쉽게 학습, 검증 및 배포할 수 있도록 하는 방식도 살펴봅니다.
모델 계보 및 기술 사양#
이러한 모델의 기원과 설계 철학을 이해하면 모델의 역량을 파악하는 데 필수적인 맥락을 얻을 수 있습니다. 두 모델은 공통된 연구 계보를 공유하지만 서로 다른 아키텍처 병목 현상을 대상으로 합니다.
YOLOv7: Bag-of-Freebies의 선구자#
2022년 중반에 출시된 YOLOv7은 매우 안정적이고 고도로 최적화된 아키텍처로 자리 잡았습니다. 평균 정밀도 (mAP)를 저하시키지 않으면서 높은 추론 속도를 유지하기 위해 구조적 재매개변수화와 "학습 가능한 공짜 혜택 묶음" 접근 방식을 도입했습니다.
- 저자: Chien-Yao Wang, Alexey Bochkovskiy, Hong-Yuan Mark Liao
- 기관: 대만 중앙연구원 정보과학연구소
- 날짜: 2022년 7월 6일
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
아키텍처 혁신: YOLOv7은 확장, 셔플 및 카디널리티 병합을 통해 모델이 더욱 다양한 특징을 학습할 수 있도록 하는 확장 효율적 레이어 집계 네트워크 (E-ELAN)를 특징으로 합니다. 이 설계는 뛰어난 GPU 활용률과 추론 지연 시간을 제공합니다. 그러나 최신 버전에 비해 복잡한 학습 실행 중 상당한 메모리가 필요할 수 있습니다.
YOLOv9: 정보 병목 현상 해결#
같은 연구팀이 2024년 초에 선보인 YOLOv9은 심층 신경망에 내재된 "정보 병목 현상"을 해결합니다. 데이터가 심층 레이어를 통과하면 중요한 세부 정보가 손실되는 경우가 많습니다. YOLOv9은 근본적으로 새로운 레이어 설계를 통해 이를 완화합니다.
- 저자: Chien-Yao Wang 및 Hong-Yuan Mark Liao
- 기관: 대만 중앙연구원 정보과학연구소
- 날짜: 2024년 2월 21일
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
아키텍처 혁신: YOLOv9은 프로그래밍 가능한 그래디언트 정보 (PGI)와 일반화된 효율적 레이어 집계 네트워크 (GELAN)를 도입합니다. PGI는 신뢰할 수 있는 그래디언트를 보존하고 이를 다시 전달하여 가중치를 정확하게 업데이트하도록 합니다. GELAN은 매개변수 효율성을 극대화하여 YOLOv9이 이전 모델보다 훨씬 적은 FLOPs로 높은 정확도를 달성할 수 있도록 합니다.
성능 분석#
아키텍처를 선택할 때 AI 엔지니어는 정확도, 추론 속도 및 계산 비용 간의 균형을 맞춰야 합니다. 아래 표는 표준 COCO 데이터셋에서 이러한 모델 간의 성능 차이를 강조합니다.
| 모델 | 크기 (픽셀) | 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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
핵심 요점#
- 매개변수 효율성: YOLOv9m은 YOLOv7l의 정확도(51.4% mAP)를 거의 45% 더 적은 매개변수(20.0M 대 36.9M)로 달성합니다. 이러한 획기적인 감소 덕분에 YOLOv9m은 메모리가 제한된 엣지 AI 디바이스에 훨씬 쉽게 배포할 수 있습니다.
- 초소형 배포: YOLOv9t (tiny) 변형은 실시간 제약이 절대적인 환경에서 놀라운 속도(T4에서 2.3ms TensorRT)를 제공합니다.
- 최고 정확도: 정밀도가 가장 중요한 애플리케이션에서 YOLOv9e은 감지 정확도를 55.6% mAP까지 높여 YOLOv7x를 크게 능가합니다.
YOLOv7과 YOLOv9은 강력하지만, 새롭게 출시된 YOLO26은 결정적인 도약을 보여줍니다. YOLO26은 네이티브 종단 간 NMS-free 설계를 도입하여 복잡한 후처리를 제거하고 CPU 추론 속도를 최대 43% 향상합니다. 새로운 MuSGD optimizer와 향상된 ProgLoss + STAL 손실 함수를 활용하는 YOLO26은 탁월한 학습 안정성과 소형 객체 감지 정확도를 제공합니다.
Ultralytics의 강점#
모델 아키텍처를 선택하는 것은 첫 단계일 뿐입니다. 모델을 둘러싼 소프트웨어 생태계에 따라 프로토타입에서 프로덕션으로 얼마나 빠르게 전환할 수 있는지가 결정됩니다. Ultralytics Python API를 통해 이러한 모델을 통합하면 개발자와 연구자에게 상당한 이점을 제공합니다.
사용 편의성 및 학습 효율성#
과거에는 YOLOv7을 학습하려면 복잡한 데이터 준비와 대폭 커스터마이즈된 스크립트가 필요했습니다. Ultralytics 프레임워크는 이러한 딥러닝 복잡성을 추상화합니다. 개발자는 최소한의 코드만으로 아키텍처를 쉽게 전환하고, 하이퍼파라미터 튜닝을 실험하며, 지능형 데이터 증강 파이프라인을 활용할 수 있습니다.
또한 Ultralytics는 학습 및 추론 중 메모리 사용량을 최적화합니다. 무거운 Transformer 모델(예: RT-DETR)과 달리 Ultralytics YOLO 아키텍처는 훨씬 빠르게 학습되며 CUDA 메모리도 훨씬 적게 필요하므로 소비자용 GPU에 적합합니다.
코드 예제: 간소화된 학습#
최첨단 모델 학습은 Ultralytics 생태계에서 원활하게 수행할 수 있습니다. 다음은 YOLOv9 모델을 학습하고 검증하는 방법을 보여주는 완전히 실행 가능한 예제입니다.
from ultralytics import YOLO
# Initialize the model (you can swap 'yolov9c.pt' with 'yolov7.pt' or 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 sample dataset
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # Use GPU 0 if available
batch=16, # Optimized batch size for memory efficiency
)
# Validate the model's performance on the validation set
metrics = model.val()
# Export the trained model to ONNX format for deployment
model.export(format="onnx")다양한 작업을 아우르는 탁월한 유연성#
잘 관리되는 생태계는 다양한 컴퓨터 비전 작업에 대한 접근성을 의미합니다. YOLOv7은 주로 객체 감지를 위해 구축되었지만(이후 다른 작업을 위한 실험적 포크가 등장함), 최신 Ultralytics 모델은 본래부터 다양한 작업을 지원하도록 구축되었습니다. 별도의 설정 없이 인스턴스 세그멘테이션, 포즈 추정, 이미지 분류 및 방향성 바운딩 박스 (OBB) 감지를 원활하게 수행할 수 있습니다.
이상적인 사용 사례 및 적용 분야#
YOLOv7과 YOLOv9 중 무엇을 선택할지는 특정 산업의 제약 조건과 사용 가능한 하드웨어에 따라 결정되는 경우가 많습니다.
YOLOv7을 사용해야 하는 경우#
- 레거시 엣지 배포: YOLOv7의 E-ELAN 아키텍처에 이미 고도로 맞춤화되고 최적화된 하드웨어 환경에서는 산업용 IoT를 위한 견고한 선택으로 여전히 유효합니다.
- 교통 모니터링: YOLOv7의 높은 프레임 레이트와 검증된 안정성은 스마트 시티 인프라와 실시간 교통 관리에 매우 적합합니다.
- 로보틱스 통합: 동적 환경을 탐색하려면 짧은 지연 시간의 처리가 필요하며, YOLOv7 변형은 이러한 시나리오에서 광범위하게 테스트되었습니다.
YOLOv9을 활용할 시기#
- 의료 영상: YOLOv9의 PGI 아키텍처는 심층 레이어를 통과하는 미세한 세부 정보를 보존하는 데 탁월하며, 이는 종양 감지와 같은 복잡한 의료 이미지 분석 작업을 수행할 때 매우 중요합니다.
- 밀집된 소매 분석: 소매점 선반에 빽빽하게 진열된 상품을 추적하고 계수할 때 YOLOv9의 특징 통합은 더 높은 정확도를 제공하고 미검출을 줄입니다.
- 항공 및 드론 이미지: YOLOv9m의 매개변수 효율성은 드론에서 고해상도 이미지를 처리할 수 있도록 하여 배터리 수명을 소모하지 않고 야생동물 보전과 농업 모니터링을 지원합니다.
결론#
YOLOv7과 YOLOv9은 모두 컴퓨터 비전 역사에서 확고한 위치를 차지하고 있습니다. YOLOv7은 실시간 처리를 위한 필수적인 최적화를 도입했으며, YOLOv9은 구조적 딥러닝 병목 현상을 해결하여 매개변수 효율성을 극대화했습니다.
그러나 오늘날 새로운 프로젝트를 시작하는 개발자에게는 Ultralytics 생태계, 특히 YOLO11 및 YOLO26과 같은 차세대 모델을 활용하는 것이 속도, 정확도 및 개발자 경험 간에 가장 유리한 절충안을 제공합니다. MuSGD optimizer와 같은 혁신 및 더 폭넓은 하드웨어 호환성을 위한 Distribution Focal Loss (DFL) 제거를 통해 Ultralytics는 비전 AI 전문가에게 가장 접근성이 높고 강력한 도구를 계속 제공하고 있습니다.