Ultralytics YOLO27:

Ultralytics YOLO 모델 벤치마킹#

Ultralytics YOLO ecosystem and integrations

벤치마크 시각화#

소개#

모델이 학습 및 검증된 후 다음 단계는 다양한 실제 시나리오에서 모델의 성능을 평가하는 것입니다. Ultralytics YOLO26의 벤치마크 모드는 다양한 내보내기 형식에 걸쳐 모델의 속도와 정확도를 평가하기 위한 강력한 프레임워크를 제공함으로써 이 목적을 수행합니다.

초기 속도 벤치마크는 출시되지 않은 YOLO27 미리보기를 참조하십시오.



Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?

벤치마킹이 중요한 이유는 무엇입니까?#

  • 정보에 입각한 결정: 속도와 정확도 간의 트레이드오프에 대한 인사이트를 얻을 수 있습니다.
  • 자원 할당: 서로 다른 하드웨어에서 다양한 내보내기 형식이 어떻게 성능을 발휘하는지 이해할 수 있습니다.
  • 최적화: 특정 사용 사례에 가장 뛰어난 성능을 제공하는 내보내기 형식을 파악할 수 있습니다.
  • 비용 효율성: 벤치마크 결과를 바탕으로 하드웨어 리소스를 더욱 효율적으로 활용할 수 있습니다.

벤치마크 모드의 주요 지표#

  • mAP50-95: 객체 감지, 분할 및 포즈 추정용.
  • accuracy_top1: 이미지 분류용.
  • 추론 시간: 각 이미지에 소요되는 시간(밀리초).

지원되는 Export Format#

  • 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, device=0)

# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")

Arguments#

model, data, imgsz, quantize, device, verbose, format 등의 인수를 통해 사용자는 특정 요구에 맞게 벤치마크를 세밀하게 조정하고 다양한 내보내기 형식의 성능을 손쉽게 비교할 수 있는 유연성을 확보할 수 있습니다.

기본값설명
modelNone모델 파일의 경로를 지정합니다. 사전trained 모델이나 구성 파일의 경우 "yolo26n.pt"와 같이 .pt.yaml 형식을 모두 허용합니다.
dataNone벤치마킹을 위한 데이터셋 YAML 경로로, 일반적으로 검증 데이터의 경로와 설정을 포함합니다. 예시: "coco8.yaml". 분류의 경우 데이터셋 디렉토리 또는 내장 데이터셋 이름(예: imagenet10)을 대신 사용합니다.
imgsz640모델의 입력 이미지 크기입니다. 정사각형 이미지의 경우 단일 정수여야 하며(예: 640), benchmark()은 정사각형 이미지 크기만 지원합니다.
quantizeNone요청된 정밀도: FP16의 경우 16, INT8의 경우 8(PTQ 방식은 data/fraction 보정이 필요하며 가중치 전용 방식은 필요하지 않음). 형식이 지원하는 경우 32/미설정은 FP32입니다. FP32를 내보낼 수 없는 형식은 명시적 32를 거부하거나 필요한 정밀도로 폴백합니다. 네이티브 PyTorch 행은 내보내지지 않습니다. 16만 영향을 미쳐 FP16 추론을 선택하고, 8, 32 및 미설정은 FP32로 실행됩니다. 각 형식은 자체 런타임 정밀도로 추론을 실행합니다. 더 이상 사용되지 않는 half/int8 플래그를 대체합니다.
device'cpu'"cpu" 또는 "cuda:0"과 같이 벤치마킹을 위한 연산 장치를 정의합니다.
verboseFalse로깅 출력의 상세 수준을 제어합니다. 상세한 로그를 보려면 verbose=True을 설정하십시오.
eps0.0010으로 나누는 것을 방지하기 위해 FPS로 변환하기 전 이미지별 추론 시간에 추가되는 작은 엡실론(밀리초)입니다. 거의 변경되지 않습니다.
format''지정된 내보내기 형식만 벤치마킹합니다(예: format=onnx). 지원되는 모든 형식을 자동으로 테스트하려면 비워 두십시오.
독립 실행형 `benchmark()` 함수 기본값

독립 실행형 benchmark() 함수(from ultralytics.utils.benchmarks import benchmark)는 위의 테이블 값 대신 자체 시그니처 기본값을 사용하며, 특히 model="yolo26n.pt"imgsz=160을 사용합니다. yolo benchmark CLI와 일치시키려면 imgsz를 명시적으로 전달하십시오.

내보내기 형식#

벤치마크는 아래에 나열된 모든 가능한 내보내기 형식에서 자동으로 실행을 시도합니다. 또는 아래에 언급된 형식을 허용하는 format 인수를 사용하여 특정 형식에 대한 벤치마크를 실행할 수 있습니다.

형식format Argument모델MetadataArguments
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.aimodelimgsz, batch, quantize

nms=None은(는) 외부 NMS에 대해 기본적으로 원시 출력을 사용합니다. 사용 가능한 NMS 프리 헤드를 선택하려면 nms=False을(를) 설정하세요. 지원되지 않는 형식은 기본 출력 경로로 대체됩니다. 위의 nms 항목은 nms=True(으)로 NMS를 임베드할 수 있는 형식을 식별합니다.

전체 export 세부 정보는 Export 페이지를 참조하십시오.

FAQ#

  • 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, device=0)

    벤치마크 인수에 대한 자세한 내용은 인수 섹션을 참조하십시오.

  • YOLO26 모델을 ONNX, TensorRT, OpenVINO 등의 다양한 형식으로 내보내면 배포 환경에 따라 성능을 최적화할 수 있습니다. 예를 들어:

    • ONNX: 최대 3배 빠른 CPU 속도 향상을 제공합니다.
    • TensorRT: 최대 5배 빠른 GPU 효율성을 제공합니다.
    • OpenVINO: Intel 하드웨어에 특별히 최적화되어 있습니다.

    이러한 형식은 모델의 속도와 정확도를 모두 향상시켜 다양한 실제 응용 프로그램에서 더욱 효율적으로 작동하도록 만듭니다. 자세한 내용은 내보내기 페이지를 방문하십시오.

  • YOLO26 모델 벤치마킹이 필수적인 이유는 다음과 같습니다:

    • 정보에 입각한 결정: 속도와 정확도 간의 트레이드오프를 이해합니다.
    • 자원 할당: 다양한 하드웨어 옵션에 걸친 성능을 측정합니다.
    • 최적화: 특정 사용 사례에 가장 우수한 성능을 제공하는 내보내기 형식을 결정합니다.
    • 비용 효율성: 벤치마크 결과를 바탕으로 하드웨어 사용량을 최적화합니다.

    mAP50-95, Top-1 정확도, 추론 시간 등의 주요 지표는 이러한 평가를 내리는 데 도움이 됩니다. 자세한 내용은 주요 지표 섹션을 참조하십시오.

  • YOLO26은 특정 하드웨어 및 사용 사례에 맞춰진 다양한 내보내기 형식을 지원합니다:

    • ONNX: CPU 성능에 가장 적합합니다.
    • TensorRT: GPU 효율성에 이상적입니다.
    • OpenVINO: Intel 하드웨어에 최적화되어 있습니다.
    • CoreML 및 TensorFlow: iOS 및 일반 ML 응용 프로그램에 유용합니다.

    지원되는 형식의 전체 목록과 각각의 장점은 지원되는 내보내기 형식 섹션을 확인하십시오.

  • 벤치마크를 실행할 때 특정 요구에 맞게 여러 인수를 사용자 정의할 수 있습니다:

    • model: 모델 파일의 경로(예: "yolo26n.pt").
    • data: 데이터셋 YAML의 경로(예: "coco8.yaml"); 분류의 경우 데이터셋 디렉토리 또는 내장 데이터셋 이름(예: imagenet10)을 대신 사용합니다.
    • imgsz: 단일 정수로 나타낸 정사각형 입력 이미지 크기(예: 640). 벤치마크 모드는 공정한 비교를 위해 PyTorch와 내보낸 형식 간에 동일한 정사각형 이미지 크기를 사용합니다.
    • quantize: 요청된 정밀도: FP16의 경우 16, INT8의 경우 8(엣지 장치에 유용함). 형식이 지원하는 경우 32/미설정은 FP32입니다. FP32를 내보낼 수 없는 형식은 명시적 32을 거부하거나 필요한 정밀도로 폴백합니다. 네이티브 PyTorch 행은 내보내지지 않습니다. 16만 영향을 미쳐 FP16 추론을 선택하고, 8, 32 및 미설정은 FP32로 실행됩니다. 각 형식은 자체 런타임 정밀도로 추론을 실행합니다.
    • device: 연산 장치를 지정합니다(예: "cpu", "cuda:0").
    • verbose: 로깅 상세 수준을 제어합니다.

    인수의 전체 목록은 인수 섹션을 참조하십시오.

댓글