Ultralytics YOLO를 사용한 모델 벤치마킹
벤치마크 시각화
쿠키 문제로 인해 그래프가 올바르게 표시되지 않을 경우 페이지를 새로고침해야 할 수 있습니다.
소개
모델 학습 및 검증이 완료되면, 다양한 실제 환경에서 성능을 평가하는 것이 논리적인 다음 단계입니다. Ultralytics YOLO26의 벤치마크 모드는 이러한 목적을 위해 다양한 내보내기 형식에 걸쳐 모델의 속도와 정확도를 평가할 수 있는 강력한 프레임워크를 제공합니다.
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
벤치마킹이 중요한 이유는 무엇입니까?
- 정보에 기반한 의사 결정: 속도와 정확도 간의 트레이드오프에 대한 통찰력을 얻습니다.
- 리소스 할당: 서로 다른 하드웨어에서 각기 다른 내보내기 형식이 어떻게 작동하는지 이해합니다.
- 최적화: 특정 사용 사례에 가장 적합한 성능을 제공하는 내보내기 형식을 파악합니다.
- 비용 효율성: 벤치마크 결과를 바탕으로 하드웨어 리소스를 더욱 효율적으로 사용합니다.
벤치마크 모드의 핵심 지표
- mAP50-95: 객체 탐지, 세그멘테이션 및 자세 추정을 위한 지표입니다.
- accuracy_top5: 이미지 분류를 위한 지표입니다.
- 추론 시간: 각 이미지를 처리하는 데 걸리는 시간(밀리초 단위).
지원되는 내보내기 형식
- ONNX: 최적의 CPU 성능을 위해 사용합니다.
- TensorRT: 최대의 GPU 효율성을 위해 사용합니다.
- OpenVINO: Intel 하드웨어 최적화를 위해 사용합니다.
- CoreML, TensorFlow SavedModel 등: 다양한 배포 요구 사항을 충족합니다.
- ONNX 또는 OpenVINO로 내보내어 최대 3배의 CPU 속도 향상을 경험하십시오.
- TensorRT로 내보내어 최대 5배의 GPU 속도 향상을 경험하십시오.
사용 예시
패키지 누락을 방지하기 위해 벤치마킹 전에 내보내기 종속 항목과 함께 Ultralytics를 설치하십시오.
pip install ultralytics[export]지원되는 모든 내보내기 형식(ONNX, TensorRT 등)에 대해 YOLO26n 벤치마크를 실행하십시오. 전체 내보내기 옵션 목록은 아래의 인수 섹션을 참조하십시오.
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")인수
model, data, imgsz, half, device, verbose 및 format과 같은 인수를 사용하여 사용자는 벤치마크를 특정 요구 사항에 맞게 미세 조정하고 서로 다른 내보내기 형식의 성능을 쉽게 비교할 수 있습니다.
| 키 | 기본값 | 설명 |
|---|---|---|
model | None | 모델 파일 경로를 지정합니다. .pt 및 .yaml 형식을 모두 허용하며, 예를 들어 사전 학습된 모델이나 구성 파일에 대해 "yolo26n.pt"를 사용할 수 있습니다. |
data | None | 벤치마킹용 데이터셋을 정의하는 YAML 파일 경로로, 일반적으로 검증 데이터의 경로와 설정을 포함합니다. 예: "coco8.yaml". |
imgsz | 640 | 모델에 대한 입력 이미지 크기입니다. 정사각형 이미지를 위한 단일 정수 또는 정사각형이 아닌 이미지를 위한 튜플 (width, height)(예: (640, 480))를 사용할 수 있습니다. |
half | False | FP16(반정밀도) 추론을 활성화하여 메모리 사용량을 줄이고 호환되는 하드웨어에서 속도를 높일 수 있습니다. 활성화하려면 half=True를 사용하십시오. |
int8 | False | 더욱 최적화된 성능을 위해 INT8 양자화를 활성화하며, 특히 에지 장치에서 유용합니다. 사용하려면 int8=True를 설정하십시오. |
device | None | 벤치마킹을 수행할 연산 장치를 정의합니다(예: "cpu" 또는 "cuda:0"). |
verbose | False | 로그 출력의 세부 수준을 제어합니다. 자세한 로그를 보려면 verbose=True로 설정하십시오. |
format | '' | 지정된 내보내기 형식만 벤치마킹합니다(예: format=onnx). 지원되는 모든 형식을 자동으로 테스트하려면 비워 두십시오. |
내보내기 형식
벤치마크는 아래 나열된 모든 가능한 내보내기 형식에서 자동으로 실행을 시도합니다. 또는 아래 언급된 형식을 허용하는 format 인수를 사용하여 특정 형식에 대해 벤치마크를 실행할 수도 있습니다.
| 형식 | format 인수 | 모델 | 메타데이터 | 인수 |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
전체 export 세부 정보는 내보내기 페이지를 참조하십시오.
FAQ
Ultralytics를 사용하여 YOLO26 모델 성능을 벤치마킹하려면 어떻게 해야 합니까?
Ultralytics YOLO26은 다양한 내보내기 형식에 걸쳐 모델 성능을 평가할 수 있는 벤치마크 모드를 제공합니다. 이 모드는 평균 정밀도(mAP50-95), 정확도 및 밀리초 단위의 추론 시간과 같은 핵심 지표에 대한 통찰력을 제공합니다. 벤치마크를 실행하려면 Python 또는 CLI 명령을 사용할 수 있습니다. 예를 들어 GPU에서 벤치마킹하려면 다음과 같이 하십시오:
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)벤치마크 인수에 대한 자세한 내용은 인수 섹션을 참조하십시오.
YOLO26 모델을 다른 형식으로 내보내면 어떤 이점이 있습니까?
YOLO26 모델을 ONNX, TensorRT 및 OpenVINO와 같은 다른 형식으로 내보내면 배포 환경에 맞춰 성능을 최적화할 수 있습니다. 예를 들면 다음과 같습니다.
- ONNX: 최대 3배의 CPU 속도 향상을 제공합니다.
- TensorRT: 최대 5배의 GPU 속도 향상을 제공합니다.
- OpenVINO: Intel 하드웨어에 특별히 최적화되어 있습니다.
이러한 형식은 모델의 속도와 정확도를 모두 향상시켜 다양한 실제 애플리케이션에서 더욱 효율적으로 만듭니다. 자세한 내용은 내보내기 페이지를 참조하십시오.
YOLO26 모델을 평가할 때 벤치마킹이 중요한 이유는 무엇입니까?
YOLO26 모델을 벤치마킹하는 것은 여러 가지 이유로 필수적입니다.
- 정보에 기반한 의사 결정: 속도와 정확도 간의 트레이드오프를 이해합니다.
- 리소스 할당: 서로 다른 하드웨어 옵션 전반에서 성능을 측정합니다.
- 최적화: 특정 사용 사례에 가장 적합한 성능을 제공하는 내보내기 형식을 결정합니다.
- 비용 효율성: 벤치마크 결과를 기반으로 하드웨어 사용을 최적화합니다.
mAP50-95, Top-5 정확도, 추론 시간과 같은 핵심 지표는 이러한 평가를 수행하는 데 도움이 됩니다. 자세한 내용은 핵심 지표 섹션을 참조하십시오.
YOLO26에서 지원하는 내보내기 형식은 무엇이며, 각각의 장점은 무엇입니까?
YOLO26은 특정 하드웨어와 사용 사례에 맞춰진 다양한 내보내기 형식을 지원합니다.
- ONNX: CPU 성능에 가장 적합합니다.
- TensorRT: GPU 효율성에 이상적입니다.
- OpenVINO: Intel 하드웨어에 최적화되어 있습니다.
- CoreML & TensorFlow: iOS 및 일반 ML 애플리케이션에 유용합니다.
지원되는 형식의 전체 목록과 각 장점은 지원되는 내보내기 형식 섹션을 확인하십시오.
YOLO26 벤치마크를 미세 조정하려면 어떤 인수를 사용할 수 있습니까?
벤치마크를 실행할 때 특정 요구 사항에 맞게 몇 가지 인수를 사용자 정의할 수 있습니다.
- model: 모델 파일 경로(예: "yolo26n.pt").
- data: 데이터셋을 정의하는 YAML 파일 경로(예: "coco8.yaml").
- imgsz: 입력 이미지 크기(단일 정수 또는 튜플).
- half: 더 나은 성능을 위해 FP16 추론을 활성화합니다.
- int8: 에지 장치를 위해 INT8 양자화를 활성화합니다.
- device: 연산 장치 지정(예: "cpu", "cuda:0").
- verbose: 로그 세부 수준을 제어합니다.
전체 인수 목록은 인수 섹션을 참조하십시오.