Ultralytics YOLOv5
개요
YOLOv5u는 객체 탐지 방법론의 발전을 나타냅니다. Ultralytics가 개발한 YOLOv5 모델의 기본 아키텍처에서 파생된 YOLOv5u는 YOLOv8 모델에서 처음 도입된 앵커 프리(anchor-free) 및 오브젝트니스 프리(objectness-free) 분할 헤드를 통합합니다. 이러한 조정은 모델 아키텍처를 개선하여 객체 탐지 작업에서 정확도와 속도 간의 절충안을 향상시킵니다. 실증적 결과와 파생된 기능을 고려할 때, YOLOv5u는 연구와 실무 응용 분야 모두에서 강력한 솔루션을 찾는 이들에게 효율적인 대안을 제공합니다.

Ultralytics는 앵커 프리 방식의 YOLOv5 모델 변형을 제공합니다. 기존 YOLOv5 저장소를 통해 학습된 모델은 Ultralytics 라이브러리와 함께 사용할 수 없습니다.
Ultralytics 플랫폼에서 YOLOv5 모델을 직접 탐색하고 실행해 보십시오.
주요 특징
-
앵커 프리 분할 Ultralytics 헤드: 전통적인 객체 탐지 모델은 사전에 정의된 앵커 박스에 의존하여 객체 위치를 예측합니다. 하지만 YOLOv5u는 이러한 접근 방식을 현대화했습니다. 앵커 프리 분할 Ultralytics 헤드를 채택함으로써 더 유연하고 적응력 있는 탐지 메커니즘을 보장하며, 결과적으로 다양한 시나리오에서 성능을 향상시킵니다.
-
최적화된 정확도-속도 균형: 속도와 정확도는 흔히 상충되는 관계에 있습니다. 하지만 YOLOv5u는 이러한 상충 관계에 도전합니다. 이 모델은 정확도를 희생하지 않으면서 실시간 탐지를 보장하는 정밀한 균형을 제공합니다. 이 기능은 자율 주행 자동차, 로봇 공학, 실시간 영상 분석과 같이 빠른 응답을 요구하는 애플리케이션에 매우 유용합니다.
-
다양한 사전 학습 모델: 작업마다 필요한 도구가 다르다는 점을 이해하여, YOLOv5u는 풍부한 사전 학습 모델을 제공합니다. 추론(Inference), 검증(Validation), 학습(Training) 중 무엇을 수행하든, 당신에게 꼭 맞는 모델이 준비되어 있습니다. 이러한 다양성은 일률적인 솔루션이 아니라, 사용자의 고유한 과제에 맞춰 특별히 미세 조정된 모델을 사용할 수 있게 합니다.
지원되는 태스크 및 모드
다양한 사전 학습 가중치를 가진 YOLOv5u 모델은 객체 탐지 작업에서 뛰어난 성능을 발휘합니다. 이 모델들은 광범위한 모드를 지원하여 개발에서 배포까지 다양한 애플리케이션에 적합합니다.
| 모델 유형 | 사전 학습된 가중치 | 태스크 | 추론 | 검증 | 학습 | 내보내기 (Export) |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u | 객체 감지 | ✅ | ✅ | ✅ | ✅ |
이 표는 YOLOv5u 모델 변형에 대한 자세한 개요를 제공하며, 객체 탐지 작업에서의 적용 가능성과 추론, 검증, 학습, 내보내기와 같은 다양한 운영 모드에 대한 지원을 강조합니다. 이러한 포괄적인 지원을 통해 사용자는 다양한 객체 탐지 시나리오에서 YOLOv5u 모델의 기능을 최대한 활용할 수 있습니다.
성능 지표
See Detection Docs for usage examples with these models trained on COCO, which include 80 pretrained classes.
| 모델 | YAML | 크기 (픽셀) | mAPval 50-95 | 속도 CPU ONNX (ms) | 속도 A100 TensorRT (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| yolov5nu.pt | yolov5n.yaml | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
| yolov5su.pt | yolov5s.yaml | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 |
| yolov5mu.pt | yolov5m.yaml | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 |
| yolov5lu.pt | yolov5l.yaml | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 |
| yolov5xu.pt | yolov5x.yaml | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 |
| yolov5n6u.pt | yolov5n6.yaml | 1280 | 42.1 | 211.0 | 1.83 | 4.3 | 7.8 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 24.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 65.7 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 137.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.4 | 250.7 |
사용 예시
이 예제는 간단한 YOLOv5 학습 및 추론 사례를 제공합니다. 이러한 모드 및 기타 모드에 대한 전체 문서는 Predict, Train, Val 및 Export 문서 페이지를 참조하십시오.
PyTorch 사전 학습된 *.pt 모델과 구성 *.yaml 파일을 YOLO() 클래스에 전달하여 Python에서 모델 인스턴스를 생성할 수 있습니다:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.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 YOLOv5n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")인용 및 감사의 글
Ultralytics는 모델의 급격한 발전으로 인해 YOLOv5에 대한 공식 연구 논문을 발표하지 않았습니다. 당사는 정적인 문서를 작성하는 대신 기술을 발전시키고 사용 편의성을 높이는 데 집중하고 있습니다. YOLO 아키텍처, 기능 및 사용법에 대한 최신 정보는 GitHub 저장소 및 문서를 참조하십시오.
귀하의 연구에서 YOLOv5 또는 YOLOv5u를 사용하는 경우 다음과 같이 Ultralytics YOLOv5 저장소를 인용해 주십시오:
@software{yolov5,
title = {Ultralytics YOLOv5},
author = {Glenn Jocher},
year = {2020},
version = {7.0},
license = {AGPL-3.0},
url = {https://github.com/ultralytics/yolov5},
doi = {10.5281/zenodo.3908559},
orcid = {0000-0001-5950-6979}
}YOLOv5 모델은 AGPL-3.0 및 Enterprise 라이선스에 따라 제공됩니다.
FAQ
Ultralytics YOLOv5u란 무엇이며 YOLOv5와 어떻게 다른가요?
Ultralytics YOLOv5u는 YOLOv5의 고급 버전으로, 실시간 객체 탐지 작업의 정확도-속도 균형을 개선하는 앵커 프리, 오브젝트니스 프리 분할 헤드를 통합했습니다. 기존 YOLOv5와 달리, YOLOv5u는 앵커 프리 탐지 메커니즘을 채택하여 다양한 시나리오에서 더 유연하고 적응력이 뛰어납니다. 기능에 대한 자세한 정보는 YOLOv5 개요를 참조하십시오.
앵커 프리 Ultralytics 헤드가 YOLOv5u에서 객체 탐지 성능을 어떻게 향상시키나요?
YOLOv5u의 앵커 프리 Ultralytics 헤드는 사전 정의된 앵커 박스에 대한 의존성을 제거하여 객체 탐지 성능을 향상시킵니다. 그 결과, 다양한 객체 크기와 모양을 더 효율적으로 처리할 수 있는 유연하고 적응력 있는 탐지 메커니즘이 구현됩니다. 이러한 개선은 정확도와 속도 사이의 균형을 맞추는 데 직접적으로 기여하여 YOLOv5u를 실시간 애플리케이션에 적합하게 만듭니다. 아키텍처에 대한 자세한 내용은 핵심 기능 섹션에서 확인하십시오.
사전 학습된 YOLOv5u 모델을 다양한 작업 및 모드에 사용할 수 있나요?
네, 사전 학습된 YOLOv5u 모델을 객체 탐지와 같은 다양한 작업에 사용할 수 있습니다. 이 모델들은 추론, 검증, 학습, 내보내기를 포함한 다중 모드를 지원합니다. 이러한 유연성을 통해 사용자는 다양한 운영 요구 사항에 맞춰 YOLOv5u 모델의 기능을 활용할 수 있습니다. 자세한 내용은 지원되는 작업 및 모드 섹션을 확인하십시오.
YOLOv5u 모델의 성능 지표는 플랫폼마다 어떻게 비교되나요?
YOLOv5u 모델의 성능 지표는 사용되는 플랫폼과 하드웨어에 따라 다릅니다. 예를 들어, YOLOv5nu 모델은 COCO 데이터셋에서 34.3 mAP를 달성하며, CPU(ONNX)에서 73.6ms, A100 TensorRT에서 1.06ms의 속도를 보입니다. 다양한 YOLOv5u 모델에 대한 자세한 성능 지표는 다양한 장치 전반에 걸친 포괄적인 비교를 제공하는 성능 지표 섹션에서 찾을 수 있습니다.
Ultralytics Python API를 사용하여 YOLOv5u 모델을 어떻게 학습할 수 있나요?
사전 학습된 모델을 로드하고 데이터셋과 함께 학습 명령을 실행하여 YOLOv5u 모델을 학습할 수 있습니다. 간단한 예시는 다음과 같습니다:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.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)더 자세한 지침은 사용 예시 섹션을 방문하십시오.