YOLOv9 : 종합적인 기술 비교
올바른 객체 감지 아키텍처를 선택하는 것은 컴퓨터 비전 애플리케이션의 효율성, 정확성 및 확장성에 영향을 미치는 중요한 결정입니다. 이 가이드에서는 다음과 같은 기술 비교를 자세히 설명합니다. YOLOv9과 2021년에 출시된 고성능 앵커 프리 디텍터인 YOLOx의 상세한 기술 비교를 제공합니다.
YOLOv9: 딥 네트워크에서 정보 손실 극복하기
데이터가 심층 신경망을 통과할 때 발생하는 정보 손실이라는 근본적인 문제를 해결하기 위해 설계된 YOLOv9 실시간 객체 감지의 중요한 도약을 의미합니다.
저자 왕치엔야오, 홍위안 마크 리아오
조직: 대만 학술원 정보과학연구소
날짜: 2024-02-21
아카이브:arXiv:2402.13616
깃허브:WongKinYiu/yolov9
문서:docs.ultralytics.com/models/yolov9/
아키텍처 및 혁신
YOLOv9 핵심 혁신은 두 가지 핵심 요소에 있습니다: 프로그래밍 가능한 그라데이션 정보(PGI) 와 일반화된 효율적인 레이어 집계 네트워크(GELAN)입니다.
- 프로그래밍 가능한 그라디언트 정보(PGI): 딥 네트워크에서는 특징 추출 과정에서 중요한 입력 데이터가 손실되는 경우가 종종 발생하는데, 이를 정보 병목 현상이라고 합니다. PGI는 안정적인 그라데이션 생성을 보장하는 보조 감독 신호를 제공하여 모델이 추론 비용을 늘리지 않고도 더 효과적인 특징을 학습할 수 있도록 합니다.
- GELAN: 이 아키텍처 설계는 매개변수 활용과 계산 효율성을 최적화합니다. 효율적인 계층 집계 네트워크(ELAN)의 개념을 일반화하여 계산 블록을 유연하게 스태킹할 수 있는 GELAN은 가볍고 빠른 모델을 구현합니다.
이러한 혁신을 통해 YOLOv9 COCO 데이터 세트에서 정확도와 매개변수 효율성 모두에서 이전 버전을 능가하는 최고 수준의 성능을 달성할 수 있었습니다.
욜록스: 앵커 없는 표준
욜록스는 학술 연구와 산업 응용 사이의 간극을 좁히고 앵커 프리 접근 방식을 대중화하기 위해 도입된 YOLO 시리즈입니다.
저자 Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, Jian Sun
조직: Megvii
날짜: 2021-07-18
아카이브:arXiv:2107.08430
깃허브:Megvii-BaseDetection/YOLOX
Docs:yolox.readthedocs.io
주요 아키텍처 기능
욜록스는 앵커 박스를 없애고 분리형 헤드 구조를 채택하여 이전 YOLO 버전과 차별화되었습니다.
- 앵커 프리 디자인: 기존 감지기는 사전 정의된 앵커 박스에 의존하기 때문에 휴리스틱 튜닝과 클러스터링이 필요합니다. YOLOX는 객체 감지를 포인트 예측 문제로 처리하여 설계를 단순화하고 다양한 객체 모양에 대한 일반화를 개선합니다.
- 분리된 헤드: 분류 및 회귀 작업이 별도의 분기(헤드)에서 처리됩니다. 이렇게 분리하면 모델이 각 작업에 대해 독립적으로 최적화할 수 있으므로 수렴 속도가 빨라지고 정확도가 향상됩니다.
- SimOTA: 양성 샘플을 기준 데이터 개체에 동적으로 할당하여 성능을 더욱 향상시키는 고급 라벨 할당 전략입니다.
성능 분석: 메트릭 및 벤치마크
성능을 분석할 때, YOLOv9 최신 아키텍처에 걸맞은 분명한 이점을 보여줍니다. PGI와 GELAN을 활용함으로써 YOLOv9 OLOX에 비해 계산 부하(FLOPs)를 유지하거나 줄이면서 더 높은 평균 정밀도mAP를 달성합니다.
아래 표는 성능 차이를 강조합니다. 특히, YOLOv9 절반 이하의 파라미터 수(25.3M 대 54.2M)로 YOLOX-L (49.7%)보다 훨씬 더 높은 mAP (53.0%)를 달성합니다. 이러한 효율성 덕분에 하드웨어 리소스의 제약이 있지만 높은 정확도가 요구되는 애플리케이션에 YOLOv9 탁월한 선택이 될 수 있습니다.
| 모델 | 크기 (픽셀) | mAPval 50-95 | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
속도와 효율성
YOLOX는 2021년에 인상적인 속도를 선보였지만, YOLOv9 그 한계를 더욱 뛰어넘었습니다. YOLOv9 (Tiny) 모델은 2.0M 매개변수만으로 38.3%의 mAP 제공하는 탁월한 균형을 제공하여 모바일 및 임베디드 애플리케이션에 매우 적합합니다. 반면, YOLOX-Nano는 크기는 더 작지만 정확도(25.8% mAP)가 크게 떨어집니다.
교육 효율성
YOLOv9 최신 트레이닝 레시피와 최적화된 Ultralytics 트레이너의 이점을 활용하여 이전 아키텍처에 비해 트레이닝 중에 더 빠른 컨버전스와 더 낮은 메모리 사용량을 제공합니다.
이상적인 사용 사례
이러한 모델 중에서 선택하는 것은 프로젝트의 특정 요구 사항에 따라 다릅니다.
YOLOv9 선택해야 할 때
YOLOv9 정확도 대비 효율성이 뛰어나 대부분의 최신 컴퓨터 비전 애플리케이션에 권장되는 선택입니다.
- 실시간 엣지 AI: FLOP이 중요한 NVIDIA Jetson과 같은 장치에 배포합니다. YOLOv9 경량 아키텍처는 처리량을 극대화합니다.
- 고정밀 검사: 작은 결함을 감지하는 것이 중요한 산업 품질 관리. YOLOv9 높은 mAP 미세한 디테일까지 캡처할 수 있습니다.
- 자율 시스템: 로보틱스와 드론은 짧은 지연 시간을 필요로 합니다. YOLOv9 최적화된 그래프 구조는 감지 기능의 성능 저하 없이 빠른 추론을 보장합니다.
욜록스를 고려해야 할 때
특정 레거시 워크플로 또는 연구 비교를 위한 강력한 경쟁자로 YOLOX를 꼽을 수 있습니다.
- 학술 연구: 분리형 헤드와 앵커가 없는 디자인으로 물체 감지의 기본을 연구하는 데 있어 고전적인 기준이 됩니다.
- 레거시 배포: 기존 인프라가 특정 욜록스 아키텍처(예: 욜록스 헤드용으로 특별히 제작된 사용자 정의 TensorRT 플러그인)에 크게 최적화된 경우, 레거시 모델을 유지하는 것이 단기적으로 비용 효율적일 수 있습니다.
Ultralytics 이점
Ultralytics 에코시스템을 통해 YOLOv9 도입하면 독립형 구현에 비해 뚜렷한 이점이 있습니다. Ultralytics 프레임워크는 전체 머신 러닝 운영(MLOps) 라이프사이클을 간소화하도록 설계되었습니다.
- 사용 편의성: Ultralytics Python API를 사용하면 단 몇 줄의 코드만으로 모델을 로드, 학습 및 배포할 수 있습니다.
- 잘 관리된 에코시스템: 정기적인 업데이트를 통해 최신 버전의 PyTorch, ONNX 및 CUDA 호환성을 보장합니다.
- 다용도성: YOLOX는 주로 오브젝트 디텍터이지만, Ultralytics 프레임워크는 포즈 추정, 세분화, 분류 등 다양한 작업을 지원하므로 동일한 코드베이스 내에서 아키텍처나 작업을 쉽게 전환할 수 있습니다.
- 메모리 효율성: Ultralytics 모델은 메모리 사용량에 최적화되어 있어 복잡한 트랜스포머 기반 모델이나 최적화되지 않은 레거시 탐지기를 학습할 때 흔히 발생하는 메모리 부족(OOM) 오류를 방지합니다.
코드 예제: YOLOv9 실행
YOLOv9 추론을 실행하는 것은 Ultralytics 패키지를 사용하면 간단합니다.
from ultralytics import YOLO
# Load a pre-trained YOLOv9 compact model
model = YOLO("yolov9c.pt")
# Run inference on a local image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
내보내기 유연성
Ultralytics 학습된 YOLOv9 모델은 다음과 같은 형식으로 쉽게 내보낼 수 있습니다. TensorRT, OpenVINO및 CoreML 을 사용하여 배포 유연성을 극대화합니다.
결론 및 권장 사항
앵커 없는 탐지를 발전시키는 데 YOLOX가 중추적인 역할을 했습니다, YOLOv9 은 현재 개발을 위한 탁월한 선택입니다. 혁신적인 PGI와 GELAN 아키텍처는 더 적은 수의 파라미터로 더 높은 정확도를 제공하며, 기존 딥 네트워크의 한계였던 정보 병목 문제를 해결합니다.
최고의 최신 성능과 기능을 원하는 개발자에게는 다음과 같이 살펴볼 것을 권장합니다. YOLO11는 이러한 개념을 더욱 세분화하여 여러 비전 작업에서 훨씬 더 빠른 속도와 다양한 기능을 제공합니다. 그러나 YOLOX와 직접 비교하기 위해 YOLOv9 컴퓨팅 오버헤드를 줄이면서 감지 안정성을 향상시키는 강력한 업그레이드 경로를 제공합니다.
다른 모델 살펴보기
Ultralytics 에코시스템의 다른 최상위 모델을 비교하여 지식을 넓혀보세요: