YOLOv9: 객체 감지 기술의 비약적인 발전
YOLOv9는 프로그래밍 가능한 기울기 정보(PGI) 및 일반화된 효율적인 계층 집계 네트워크(GELAN)와 같은 획기적인 기술을 도입하여 실시간 객체 감지 분야에서 상당한 발전을 이루었습니다. 이 모델은 효율성, 정확성 및 적응성에서 놀라운 개선을 보여주며 MS COCO 데이터셋에서 새로운 벤치마크를 설정합니다. YOLOv9 프로젝트는 별도의 오픈소스 팀에 의해 개발되었지만, UltralyticsYOLOv5가 제공하는 견고한 코드베이스를 기반으로 구축되었으며, AI 연구 커뮤니티의 협력 정신을 보여줍니다.
참고: Ultralytics를 사용한 사용자 지정 데이터 기반 YOLOv9 훈련 | 산업용 패키지 데이터셋

YOLOv9 소개
최적의 실시간 객체 감지를 위한 노력에서 YOLOv9는 심층 신경망에 내재된 정보 손실 문제를 극복하기 위한 혁신적인 접근 방식으로 두각을 나타냅니다. PGI와 다재다능한 GELAN 아키텍처를 통합함으로써 YOLOv9는 모델의 학습 능력을 향상시킬 뿐만 아니라 감지 프로세스 전반에 걸쳐 중요한 정보를 유지하여 탁월한 정확성과 성능을 달성합니다.
YOLOv9의 핵심 혁신
YOLOv9의 발전은 심층 신경망의 정보 손실로 인한 문제를 해결하는 데 깊이 뿌리를 두고 있습니다. 정보 병목 현상 원리와 가역 함수의 혁신적인 사용은 YOLOv9 설계의 핵심이며, YOLOv9가 높은 효율성과 정확성을 유지하도록 보장합니다.
정보 병목 현상 원리
정보 병목 원리는 딥 러닝의 근본적인 과제를 보여줍니다. 데이터가 네트워크의 연속적인 레이어를 통과함에 따라 정보 손실 가능성이 증가합니다. 이 현상은 다음과 같이 수학적으로 표현됩니다.
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))
여기서 I 는 상호 정보를 나타내고, f 및 g 는 매개변수가 있는 변환 함수를 나타냅니다. theta 및 phi입니다. YOLOv9는 네트워크 깊이 전체에서 필수 데이터를 보존하는 데 도움이 되는 PGI(Programmable Gradient Information)를 구현하여 이러한 문제를 해결하고, 결과적으로 더 안정적인 그래디언트 생성을 보장하여 더 나은 모델 수렴 및 성능을 제공합니다.
가역 함수
가역 함수의 개념은 YOLOv9 설계의 또 다른 초석입니다. 함수는 다음과 같이 표현되는 것처럼 정보 손실 없이 역변환될 수 있다면 가역적인 것으로 간주됩니다.
X = v_zeta(r_psi(X))
와 함께 psi 및 zeta 는 각각 가역 함수 및 역함수의 매개변수입니다. 이 속성은 딥 러닝 아키텍처는 네트워크가 완전한 정보 흐름을 유지하도록 하여 모델 매개변수에 대한 더 정확한 업데이트를 가능하게 합니다. YOLOv9는 아키텍처 내에 가역 함수를 통합하여 특히 더 깊은 계층에서 정보 저하 위험을 완화하고 객체 감지 작업을 위한 핵심 데이터 보존을 보장합니다.
경량 모델에 미치는 영향
정보 손실을 해결하는 것은 경량 모델에 특히 중요합니다. 경량 모델은 종종 매개변수가 부족하고 순방향 전달 프로세스 중에 상당한 정보를 잃기 쉽습니다. YOLOv9의 아키텍처는 PGI와 가역 함수의 사용을 통해 간소화된 모델에서도 정확한 객체 감지에 필요한 필수 정보가 유지되고 효과적으로 활용되도록 보장합니다.
프로그래밍 가능한 기울기 정보(PGI)
PGI는 정보 병목 현상 문제를 해결하기 위해 YOLOv9에 도입된 새로운 개념으로, 심층 네트워크 계층 전반에 걸쳐 필수 데이터의 보존을 보장합니다. 이를 통해 신뢰할 수 있는 기울기를 생성하고 정확한 모델 업데이트를 촉진하며 전반적인 detect 성능을 향상시킵니다.
일반화된 효율적인 레이어 집계 네트워크(GELAN)
GELAN은 YOLOv9가 우수한 매개변수 활용과 계산 효율성을 달성할 수 있도록 하는 전략적인 아키텍처 발전을 나타냅니다. 그 설계는 다양한 계산 블록의 유연한 통합을 허용하여 YOLOv9가 속도나 정확성을 희생하지 않고 광범위한 응용 분야에 적응할 수 있도록 합니다.

YOLOv9 벤치마크
YOLOv9에서 Ultralytics를 사용한 벤치마킹은 훈련되고 검증된 모델의 실제 시나리오 성능을 평가하는 것을 포함합니다. 이 프로세스에는 다음이 포함됩니다.
- 성능 평가: 모델의 속도와 정확성을 평가합니다.
- 내보내기 형식: 필요한 표준을 충족하고 다양한 환경에서 잘 작동하는지 확인하기 위해 다양한 내보내기 형식에서 모델을 테스트합니다.
- 프레임워크 지원: 이러한 평가를 용이하게 하고 일관되고 신뢰할 수 있는 결과를 보장하기 위해 Ultralytics YOLOv8 내에서 포괄적인 프레임워크를 제공합니다.
벤치마킹을 통해 모델이 제어된 테스트 환경에서 잘 작동할 뿐만 아니라 실제 실제 애플리케이션에서도 높은 성능을 유지할 수 있습니다.
참고: Ultralytics Python 패키지를 사용하여 YOLOv9 모델을 벤치마킹하는 방법
MS COCO 데이터셋 성능
COCO 데이터셋에서 YOLOv9의 성능은 실시간 객체 감지 분야에서 상당한 발전을 보여주며, 다양한 모델 크기에 걸쳐 새로운 벤치마크를 설정합니다. 표 1은 최첨단 실시간 객체 감지기의 종합적인 비교를 제시하며, YOLOv9의 우수한 효율성과 accuracy를 보여줍니다.
성능
| 모델 | 크기 (픽셀) | mAPval 50-95 | mAPval 50 | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | 53.1 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | 63.4 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | 68.1 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | 70.2 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | 72.8 | 58.1 | 192.5 |
| 모델 | 크기 (픽셀) | mAP박스 50-95 | mAP마스크 50-95 | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|
| YOLOv9c-seg | 640 | 52.4 | 42.2 | 27.9 | 159.4 |
| YOLOv9e-seg | 640 | 55.1 | 44.3 | 60.5 | 248.4 |
YOLOv9의 반복은 작은 것부터 시작하여 t 변형에서 광범위한 e 모델은 정확도(mAP 지표)뿐만 아니라 매개변수 수 감소 및 계산 요구 사항(FLOPs) 측면에서 효율성도 개선되었음을 보여줍니다. 이 표는 YOLOv9가 높은 성능을 제공하는 능력을 강조합니다. 정밀도 를 제공하는 동시에 이전 버전 및 경쟁 모델에 비해 계산 오버헤드를 유지하거나 줄일 수 있음을 강조합니다.
비교적으로 YOLOv9는 놀라운 이득을 보여줍니다:
- 경량 모델: YOLOv9s는 매개변수 효율성과 계산 부하 면에서 YOLO MS-S를 능가하며, AP에서 0.4∼0.6%의 개선을 달성했습니다.
- 중대형 모델: YOLOv9m 및 YOLOv9e는 모델 복잡성과 감지 성능 간의 균형을 맞추는 데 괄목할 만한 발전을 보여주며 정확도 향상을 배경으로 파라미터 및 계산에서 상당한 감소를 제공합니다.
특히 YOLOv9c 모델은 아키텍처 최적화의 효과를 강조합니다. 이 모델은 YOLOv7 AF보다 매개변수가 42% 적고 계산 요구량이 21% 적지만, 비슷한 정확도를 달성하여 YOLOv9의 상당한 효율성 개선을 보여줍니다. 또한 YOLOv9e 모델은 YOLOv8x보다 매개변수가 15% 적고 계산 요구량이 25% 적으며, AP에서 1.7%의 점진적인 개선과 함께 대형 모델의 새로운 표준을 설정합니다.
이러한 결과는 YOLOv9의 모델 설계에 있어서 전략적 발전을 보여주며, 실시간 객체 감지 작업에 필수적인 정밀도를 손상시키지 않으면서 향상된 효율성을 강조합니다. 이 모델은 성능 지표의 한계를 뛰어넘을 뿐만 아니라 계산 효율성의 중요성을 강조하여 컴퓨터 비전 분야에서 중요한 발전이 됩니다.
결론
2024년 2월에 출시된 YOLOv9는 실시간 객체 detect 분야에서 중추적인 발전을 이루었으며, 효율성, 정확성 및 적응성 측면에서 상당한 개선을 제공했습니다. PGI 및 GELAN과 같은 혁신적인 솔루션을 통해 중요한 과제를 해결함으로써 YOLOv9는 출시 당시 새로운 벤치마크를 세웠습니다. 그 이후 YOLO11 및 YOLO26과 같은 새로운 모델이 추가 개선 사항과 함께 출시되었지만, YOLOv9의 아키텍처 혁신은 계속해서 이 분야에 영향을 미치고 있습니다.
사용 예시
이 예제는 간단한9 훈련 및 추론 예시를 제공합니다. 이러한 모드 및 기타 모드에 대한 전체 문서는 예측, 훈련, 검증 및 내보내기 문서 페이지를 참조하십시오.
예시
PyTorch 사전 훈련된 *.pt 모델과 구성 *.yaml 파일을 다음으로 전달하여 YOLO() python에서 모델 인스턴스를 생성하는 클래스:
from ultralytics import YOLO
# Build a YOLOv9c model from scratch
model = YOLO("yolov9c.yaml")
# Build a YOLOv9c model from pretrained weight
model = YOLO("yolov9c.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
모델을 직접 실행하는 데 사용할 수 있는 CLI 명령은 다음과 같습니다.
# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=path/to/bus.jpg
지원되는 작업 및 모드
YOLOv9 시리즈는 고성능 객체 감지에 최적화된 다양한 모델을 제공합니다. 이 모델들은 다양한 컴퓨팅 요구 사항과 정확도 요구 사항을 충족하여 광범위한 응용 분야에 다용도로 활용될 수 있습니다.
| 모델 | 파일 이름 | 태스크 | 추론 | 검증 | 훈련 | 내보내기 |
|---|---|---|---|---|---|---|
| 9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | 객체 감지 | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | 인스턴스 분할 | ✅ | ✅ | ✅ | ✅ |
이 표는 YOLOv9 모델 변형에 대한 자세한 개요를 제공하며, 객체 감지 작업에서의 기능과 추론, 검증, 학습 및 내보내기와 같은 다양한 운영 모드와의 호환성을 강조합니다. 이러한 포괄적인 지원은 사용자가 광범위한 객체 감지 시나리오에서 YOLOv9 모델의 기능을 최대한 활용할 수 있도록 보장합니다.
참고
YOLOv9 모델을 학습하려면 동일한 크기의 YOLOv8 모델보다 더 많은 리소스가 필요하고 더 오래 걸립니다.
인용 및 감사의 말씀
실시간 객체 감지 분야에 상당한 기여를 해주신 YOLOv9 저자들에게 감사를 표합니다:
@article{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Liao, Hong-Yuan Mark},
booktitle={arXiv preprint arXiv:2402.13616},
year={2024}
}
원본 YOLOv9 논문은 arXiv에서 찾을 수 있습니다. 저자들은 자신들의 작업을 공개적으로 이용 가능하게 했으며, 코드베이스는 GitHub에서 접근할 수 있습니다. 분야 발전에 기여하고 더 넓은 커뮤니티에 그들의 작업을 접근 가능하게 한 노력에 감사드립니다.
FAQ
YOLOv9는 실시간 객체 detect를 위해 어떤 혁신을 도입했나요?
YOLOv9는 프로그래밍 가능한 기울기 정보(PGI) 및 일반화된 효율적인 계층 집계 네트워크(GELAN)와 같은 획기적인 기술을 도입합니다. 이러한 혁신은 심층 신경망의 정보 손실 문제를 해결하여 높은 효율성, 정확성 및 적응성을 보장합니다. PGI는 네트워크 계층 전반에 걸쳐 필수 데이터를 보존하는 반면, GELAN은 매개변수 활용 및 계산 효율성을 최적화합니다. MS COCO 데이터셋에서 새로운 벤치마크를 설정한 YOLOv9의 핵심 혁신에 대해 자세히 알아보십시오.
YOLOv9는 다른 모델과 비교하여 MS COCO 데이터셋에서 어떻게 성능을 발휘하나요?
YOLOv9는 더 높은 정확성과 효율성을 달성함으로써 최첨단 실시간 객체 감지기를 능가합니다. COCO 데이터셋에서 YOLOv9 모델은 다양한 크기에서 우수한 mAP 점수를 보여주면서 계산 오버헤드를 유지하거나 줄입니다. 예를 들어, YOLOv9c는 YOLOv7 AF보다 42% 적은 매개변수와 21% 적은 계산 요구량으로 유사한 정확도를 달성합니다. 자세한 지표는 성능 비교를 참조하십시오.
Python과 CLI를 사용하여 YOLOv9 모델을 어떻게 훈련시킬 수 있나요?
Python 및 CLI 명령을 모두 사용하여 YOLOv9 모델을 학습할 수 있습니다. Python의 경우, 다음을 사용하여 모델을 인스턴스화합니다. YOLO 클래스를 사용하고 다음을 호출합니다. train 메서드:
from ultralytics import YOLO
# Build a YOLOv9c model from pretrained weights and train
model = YOLO("yolov9c.pt")
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
CLI 학습의 경우 다음을 실행합니다.
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640
학습 및 추론에 대한 사용 예제에 대해 자세히 알아보십시오.
경량 모델에 Ultralytics YOLOv9를 사용하는 것의 장점은 무엇인가요?
YOLOv9는 정보 손실을 완화하도록 설계되었으며, 이는 상당한 정보를 잃기 쉬운 경량 모델에 특히 중요합니다. 프로그래밍 가능한 기울기 정보(PGI)와 가역 함수를 통합함으로써 YOLOv9는 필수 데이터 보존을 보장하여 모델의 정확성과 효율성을 향상시킵니다. 이는 고성능의 소형 모델을 요구하는 애플리케이션에 매우 적합합니다. 자세한 내용은 경량 모델에 대한 YOLOv9의 영향 섹션을 참조하십시오.
YOLOv9는 어떤 작업과 모드를 지원하나요?
YOLOv9는 객체 감지 및 인스턴스 세그멘테이션을 포함한 다양한 작업을 지원합니다. 추론, 검증, 학습 및 내보내기와 같은 여러 운영 모드와 호환됩니다. 이러한 다재다능함은 YOLOv9를 다양한 실시간 컴퓨터 비전 애플리케이션에 적응 가능하게 만듭니다. 자세한 내용은 지원되는 작업 및 모드 섹션을 참조하십시오.