Meet YOLO26: next-gen vision AI.

Link to this sectionYOLO26 모델을 위한 ONNX 내보내기#

~43% 더 빠른 추론.
  • Ultralytics YOLO26 모델을 ONNX로 내보내면 추론 속도가 최대 43% 향상되어 더 빠르고 효율적인 배포가 가능합니다.

컴퓨터 비전 모델을 배포할 때는 유연하면서도 여러 플랫폼과 호환되는 모델 형식이 필요한 경우가 많습니다.

Ultralytics YOLO26 모델을 ONNX 형식으로 내보내면 배포가 간소화되고 다양한 환경에서 최적의 성능을 보장합니다. 이 가이드에서는 YOLO26 모델을 ONNX로 쉽게 변환하고 실제 애플리케이션에서 확장성과 효율성을 향상시키는 방법을 알려드립니다.



Watch: Ultralytics YOLO26 vs Ultralytics YOLO11 ONNX Inference Test | ~43% Faster Inference with YOLO26 🚀

Link to this sectionONNX 및 ONNX Runtime#

ONNX, which stands for Open Neural Network Exchange, is a community project that Facebook and Microsoft initially developed. The ongoing development of ONNX is a collaborative effort supported by various organizations like IBM, Amazon (through AWS), and Google. The project aims to create an open file format designed to represent machine learning models in a way that allows them to be used across different AI frameworks and hardware.

ONNX 모델은 서로 다른 프레임워크 간에 원활하게 전환하는 데 사용할 수 있습니다. 예를 들어, PyTorch에서 학습된 딥러닝 모델을 ONNX 형식으로 내보낸 후 TensorFlow로 쉽게 가져올 수 있습니다.

ONNX model portability across deep learning frameworks

또는 ONNX 모델을 ONNX Runtime과 함께 사용할 수도 있습니다. ONNX Runtime은 PyTorch, TensorFlow, TFLite, scikit-learn 등과 같은 프레임워크와 호환되는 다목적 크로스 플랫폼 머신러닝 모델 가속기입니다.

ONNX Runtime은 하드웨어별 기능을 활용하여 ONNX 모델의 실행을 최적화합니다. 이러한 최적화 덕분에 CPU, GPU 및 특수 가속기를 포함한 다양한 하드웨어 플랫폼에서 모델이 효율적이고 높은 성능으로 실행될 수 있습니다.

ONNX Runtime cross-platform inference acceleration

ONNX Runtime을 단독으로 사용하든 병행하여 사용하든, ONNX는 머신러닝 모델 배포 및 호환성을 위한 유연한 솔루션을 제공합니다.

Link to this sectionONNX 모델의 주요 특징#

다양한 형식을 처리하는 ONNX의 능력은 다음과 같은 주요 특징 덕분입니다:

  • 공통 모델 표현: ONNX는 공통 연산자 집합(컨볼루션, 레이어 등)과 표준 데이터 형식을 정의합니다. 모델이 ONNX 형식으로 변환되면 해당 아키텍처와 가중치가 이 공통 표현으로 변환됩니다. 이러한 통일성은 ONNX를 지원하는 모든 프레임워크에서 모델을 이해할 수 있도록 보장합니다.

  • 버전 관리 및 하위 호환성: ONNX는 연산자에 대한 버전 관리 시스템을 유지합니다. 이는 표준이 발전하더라도 이전 버전에서 생성된 모델을 계속 사용할 수 있도록 보장합니다. 하위 호환성은 모델이 빠르게 구식이 되는 것을 방지하는 중요한 기능입니다.

  • 그래프 기반 모델 표현: ONNX는 모델을 계산 그래프로 표현합니다. 이 그래프 기반 구조는 노드가 연산이나 계산을 나타내고 엣지가 그 사이를 흐르는 텐서를 나타내는 머신러닝 모델을 표현하는 보편적인 방법입니다. 이 형식은 모델을 그래프로 표현하는 다양한 프레임워크에 쉽게 적응할 수 있습니다.

  • 도구 및 생태계: ONNX 주변에는 모델 변환, 시각화 및 최적화를 지원하는 풍부한 도구 생태계가 있습니다. 이러한 도구를 사용하면 개발자가 ONNX 모델을 더 쉽게 다루고 서로 다른 프레임워크 간에 모델을 원활하게 변환할 수 있습니다.

Link to this sectionONNX의 일반적인 용도#

YOLO26 모델을 ONNX 형식으로 내보내는 방법을 살펴보기 전에 ONNX 모델이 일반적으로 어디에 사용되는지 알아보겠습니다.

Link to this sectionCPU 배포#

ONNX 모델은 ONNX Runtime과의 호환성 때문에 CPU에 배포되는 경우가 많습니다. 이 런타임은 CPU 실행에 최적화되어 있습니다. 추론 속도를 크게 향상시키고 실시간 CPU 배포를 가능하게 합니다.

Link to this section지원되는 배포 옵션#

ONNX 모델은 일반적으로 CPU에서 사용되지만 다음과 같은 플랫폼에도 배포할 수 있습니다:

  • GPU 가속: ONNX는 특히 NVIDIA CUDA를 통한 GPU 가속을 완전히 지원합니다. 이를 통해 높은 계산 능력이 필요한 작업에 대해 NVIDIA GPU에서 효율적인 실행이 가능합니다.

  • 엣지 및 모바일 장치: ONNX는 온디바이스 및 실시간 추론 시나리오에 적합한 엣지 및 모바일 장치로 확장됩니다. 경량이며 엣지 하드웨어와 호환되고, Snapdragon 장치용 Qualcomm QNN 및 Rockchip NPU용 RKNN과 같은 공급업체 NPU 형식의 기초가 됩니다.

  • 웹 브라우저: ONNX는 웹 브라우저에서 직접 실행되어 대화형 및 동적 웹 기반 AI 애플리케이션을 구동할 수 있습니다.

Link to this sectionYOLO26 모델을 ONNX로 내보내기#

YOLO26 모델을 ONNX 형식으로 변환하여 모델 호환성과 배포 유연성을 확장할 수 있습니다. Ultralytics YOLO26은 다양한 플랫폼에서 모델 성능을 크게 향상시킬 수 있는 간편한 내보내기 프로세스를 제공합니다.

Link to this section설치#

필수 패키지를 설치하려면 다음을 실행하십시오:

설치
# Install the required package for YOLO26
pip install ultralytics

설치 프로세스와 관련된 자세한 지침 및 모범 사례는 YOLO26 설치 가이드를 참조하십시오. YOLO26용 필수 패키지를 설치하는 동안 어려움이 발생하면 일반적인 문제 해결 가이드에서 해결 방법과 팁을 확인하십시오.

Link to this section사용법#

사용 지침을 살펴보기 전에 Ultralytics에서 제공하는 YOLO26 모델 범위를 확인하십시오. 이를 통해 프로젝트 요구 사항에 가장 적합한 모델을 선택하는 데 도움이 됩니다.

ONNX 형식은 내보내기(Export), 예측(Predict)검증(Validate) 모드를 지원합니다. 모델을 내보낸 다음 내보낸 모델을 로드하여 추론을 실행하거나 정확도를 검증하십시오.

내보내기 (Export)
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo26n.onnx'

# Export an INT8-quantized ONNX model with calibration data
model.export(format="onnx", int8=True, data="coco8.yaml")  # creates 'yolo26n_int8.onnx'
예측 (Predict)
from ultralytics import YOLO

# Load the exported ONNX model
model = YOLO("yolo26n.onnx")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
검증(Validate)
from ultralytics import YOLO

# Load the exported ONNX model
model = YOLO("yolo26n.onnx")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this section내보내기 인수#

YOLO26 모델을 ONNX 형식으로 내보낼 때 특정 배포 요구 사항에 맞게 최적화하기 위해 다양한 인수를 사용하여 프로세스를 사용자 지정할 수 있습니다:

인수유형기본값설명
formatstr'onnx'내보낸 모델의 대상 형식으로, 다양한 배포 환경과의 호환성을 정의합니다.
imgszint 또는 tuple640모델 입력에 필요한 이미지 크기입니다. 정사각형 이미지의 경우 정수일 수 있으며, 특정 치수의 경우 (height, width) 튜플일 수 있습니다.
halfboolFalseFP16(반정밀도) 양자화를 활성화하여 모델 크기를 줄이고 지원되는 하드웨어에서 추론 속도를 잠재적으로 높입니다.
int8boolFalsedata의 보정 이미지를 사용하여 ONNX Runtime으로 INT8 정적 양자화를 활성화하여 _int8.onnx 모델을 생성합니다.
datastrNoneINT8 보정에 사용되는 데이터셋 YAML입니다. int8=True와 함께 생략하면 Ultralytics가 모델 작업에 대한 기본 보정 데이터셋을 선택합니다.
fractionfloat1.0INT8 양자화에 사용할 보정 이미지의 비율입니다.
dynamicboolFalse동적 입력 크기를 허용하여 다양한 이미지 크기를 처리하는 유연성을 향상시킵니다.
simplifyboolTrueonnxslim으로 모델 그래프를 단순화하여 성능과 호환성을 잠재적으로 향상시킵니다.
opsetintNone서로 다른 ONNX 파서 및 런타임과의 호환성을 위해 ONNX opset 버전을 지정합니다. 설정하지 않으면 지원되는 최신 버전이 사용됩니다.
nmsboolFalse정확하고 효율적인 감지 후처리에 필수적인 NMS(Non-Maximum Suppression)를 추가합니다.
batchint1내보내기 모델 배치 추론 크기 또는 내보낸 모델이 predict 모드에서 동시에 처리할 최대 이미지 수를 지정합니다.
devicestrNone내보내기 장치를 지정합니다: GPU(device=0), CPU(device=cpu), Apple silicon용 MPS(device=mps).

내보내기 프로세스에 대한 자세한 내용은 내보내기에 관한 Ultralytics 문서 페이지를 방문하십시오.

Link to this section내보낸 YOLO26 ONNX 모델 배포#

Ultralytics YOLO26 모델을 ONNX 형식으로 성공적으로 내보냈다면 다음 단계는 다양한 환경에 이 모델을 배포하는 것입니다. ONNX 모델 배포에 대한 자세한 지침은 다음 리소스를 확인하십시오:

  • ONNX Runtime Python API 문서: 이 가이드는 ONNX Runtime을 사용하여 ONNX 모델을 로드하고 실행하는 데 필요한 필수 정보를 제공합니다.

  • 엣지 장치에 배포: 엣지에서 ONNX 모델을 배포하는 다양한 예제는 이 문서 페이지를 확인하십시오.

  • GitHub의 ONNX 튜토리얼: 다양한 시나리오에서 ONNX 모델을 사용하고 구현하는 여러 측면을 다루는 포괄적인 튜토리얼 모음입니다.

  • Triton Inference Server: 고성능 확장형 배포를 위해 NVIDIA의 Triton Inference Server로 ONNX 모델을 배포하는 방법을 알아보십시오.

Link to this section요약#

이 가이드에서는 Ultralytics YOLO26 모델을 ONNX 형식으로 내보내 다양한 플랫폼에서 상호 운용성과 성능을 높이는 방법을 배웠습니다. 또한 ONNX Runtime과 ONNX 배포 옵션에 대해서도 소개받았습니다.

ONNX 내보내기는 Ultralytics YOLO26에서 지원하는 많은 내보내기 형식 중 하나일 뿐이며, 거의 모든 환경에 모델을 배포할 수 있습니다. 특정 요구 사항에 따라 최대 GPU 성능을 위한 TensorRT나 Apple 장치용 CoreML과 같은 다른 내보내기 옵션을 살펴볼 수도 있습니다.

사용법에 대한 자세한 내용은 ONNX 공식 문서를 방문하십시오.

또한 다른 Ultralytics YOLO26 통합에 대해 자세히 알고 싶다면 통합 가이드 페이지를 방문하십시오. 그곳에서 유용한 리소스와 통찰력을 많이 찾을 수 있습니다.

Link to this sectionFAQ#

Link to this sectionUltralytics를 사용하여 YOLO26 모델을 ONNX 형식으로 내보내려면 어떻게 해야 합니까?#

Ultralytics를 사용하여 YOLO26 모델을 ONNX 형식으로 내보내려면 다음 단계를 따르십시오:

사용법
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo26n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo26n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")

자세한 내용은 내보내기 문서를 방문하십시오.

Link to this sectionYOLO26 모델 배포에 ONNX Runtime을 사용하면 어떤 이점이 있습니까?#

YOLO26 모델 배포에 ONNX Runtime을 사용하면 다음과 같은 여러 이점이 있습니다:

  • 크로스 플랫폼 호환성: ONNX Runtime은 Windows, macOS, Linux와 같은 다양한 플랫폼을 지원하여 모델이 여러 환경에서 원활하게 실행되도록 합니다.
  • 하드웨어 가속: ONNX Runtime은 CPU, GPU 및 전용 가속기에 대한 하드웨어별 최적화를 활용하여 고성능 추론을 제공할 수 있습니다.
  • 프레임워크 상호 운용성: PyTorch 또는 TensorFlow와 같은 인기 있는 프레임워크에서 학습된 모델을 ONNX 형식으로 쉽게 변환하고 ONNX Runtime을 사용하여 실행할 수 있습니다.
  • 성능 최적화: ONNX Runtime은 기본 PyTorch 모델 대비 최대 3배의 CPU 속도 향상을 제공할 수 있어 GPU 리소스가 제한된 배포 시나리오에 이상적입니다.

ONNX Runtime 문서를 확인하여 자세히 알아보십시오.

Link to this sectionONNX로 내보낸 YOLO26 모델에 어떤 배포 옵션을 사용할 수 있습니까?#

ONNX로 내보낸 YOLO26 모델은 다음을 포함한 다양한 플랫폼에 배포할 수 있습니다:

  • CPU: 최적화된 CPU 추론을 위해 ONNX Runtime을 활용합니다.
  • GPU: 고성능 GPU 가속을 위해 NVIDIA CUDA를 활용합니다.
  • 엣지 장치: 실시간 온디바이스 추론을 위해 엣지 및 모바일 장치에서 경량 모델을 실행합니다.
  • 웹 브라우저: 대화형 웹 기반 애플리케이션을 위해 웹 브라우저 내에서 직접 모델을 실행합니다.
  • 클라우드 서비스: 확장형 추론을 위해 ONNX 형식을 지원하는 클라우드 플랫폼에 배포합니다.

자세한 내용은 모델 배포 옵션 가이드를 살펴보십시오.

Link to this sectionUltralytics YOLO26 모델에 ONNX 형식을 사용해야 하는 이유는 무엇입니까?#

Ultralytics YOLO26 모델에 ONNX 형식을 사용하면 다음과 같은 수많은 이점이 있습니다:

  • 상호 운용성: ONNX를 사용하면 서로 다른 머신러닝 프레임워크 간에 모델을 원활하게 전송할 수 있습니다.
  • 성능 최적화: ONNX Runtime은 하드웨어별 최적화를 활용하여 모델 성능을 향상시킬 수 있습니다.
  • 유연성: ONNX는 다양한 배포 환경을 지원하여 수정 없이 여러 플랫폼에서 동일한 모델을 사용할 수 있습니다.
  • 표준화: ONNX는 업계 전반에서 널리 지원되는 표준화된 형식을 제공하여 장기적인 호환성을 보장합니다.

YOLO26 모델을 ONNX로 내보내기에 관한 포괄적인 가이드를 참조하십시오.

Link to this sectionYOLO26 모델을 ONNX로 내보낼 때 발생하는 문제를 어떻게 해결할 수 있습니까?#

YOLO26 모델을 ONNX로 내보낼 때 종속성 불일치나 지원되지 않는 연산자와 같은 일반적인 문제가 발생할 수 있습니다. 이러한 문제를 해결하려면:

  1. 필수 종속성의 올바른 버전이 설치되었는지 확인하십시오.
  2. 공식 ONNX 문서에서 지원되는 연산자와 기능을 확인하십시오.
  3. 오류 메시지에서 단서를 검토하고 Ultralytics 일반적인 문제 가이드를 참조하십시오.
  4. simplify=True와 같은 다른 내보내기 인수를 사용하거나 opset 버전을 조정해 보십시오.
  5. 동적 입력 크기 문제의 경우 내보내기 중에 dynamic=True를 설정하십시오.

문제가 지속되면 Ultralytics 지원팀에 문의하여 추가 지원을 받으십시오.

댓글