Yolo 비전 선전
선전
지금 참여하기
용어집

ONNX (개방형 신경망 교환)

오픈 신경망 교환(ONNX) 형식을 살펴보세요. 빠른 크로스 플랫폼 배포 및 하드웨어 최적화를 ONNX Ultralytics ONNX 내보내는 방법을 알아보세요.

ONNX Open Neural Network Exchange) 는 머신러닝 모델을 표현하기 위해 설계된 오픈소스 형식으로, 다양한 AI 프레임워크와 도구 간의 상호운용성을 가능하게 합니다. 이는 딥러닝을 위한 범용 번역기 역할을 하여 개발자가 한 프레임워크(예: PyTorch, TensorFlow 또는 Scikit-learn과 같은 하나의 프레임워크에서 모델을 구축하고 추론에 최적화된 다른 환경에 원활하게 배포할 수 있도록 합니다. 공통 연산자 집합과 표준 파일 형식을 정의함으로써, ONNX 모델을 연구 단계에서 생산 환경으로 이동시키기 위해 기존에 필요했던 복잡한 맞춤형 변환 스크립트를 ONNX . 이러한 유연성은 현대 AI 워크플로우에 매우 중요합니다. 훈련은 강력한 클라우드 GPU에서 수행될 수 있지만, 배포 대상은 에지 디바이스, 모바일 기기, 웹 브라우저 등 다양한 하드웨어를 포함하기 때문입니다.

현대 AI ONNX 의 역할

인공지능의 급속히 진화하는 환경에서 연구자와 엔지니어는 개발 라이프사이클의 각 단계에 따라 서로 다른 도구를 사용합니다. 데이터 과학자는 실험과 훈련을 PyTorch 유연성을 선호할 수 있는 반면, 생산 엔지니어는 최적화된 성능이 필요합니다. TensorRT 또는 OpenVINO 최적화된 성능을 OpenVINO 합니다. 표준 교환 형식이 없으면 이러한 생태계 간 모델 이동이 어렵고 오류가 발생하기 쉽습니다.

ONNX 계산 그래프에 대한 공통 정의를 제공함으로써 이러한 격차를 ONNX . 모델이 ONNX 내보내질 때, 네트워크 구조(레이어, 연결)와 매개변수(가중치, 바이어스)를 프레임워크에 구애받지 않는 방식으로 포착하는 형식으로 직렬화됩니다. 이를 통해 ONNX 같이 하드웨어 가속을 위해 특별히 조정된 추론 엔진이 Linux, Windows, macOS, Android, iOS 포함한 다양한 플랫폼에서 모델을 효율적으로 실행할 수 있습니다.

ONNX 사용의 주요 이점

오픈 신경망 교환(ONNX) 형식을 채택하면 AI 프로젝트에 다음과 같은 전략적 이점을 제공합니다:

  • 프레임워크 상호운용성: 개발자는 단일 생태계에 얽매이지 않고 다양한 프레임워크 간 전환이 가능합니다. Python 친화적인 Python 모델을 훈련한 후, C++ 애플리케이션이나 웹 기반 JavaScript 환경에서 사용하기 위해 내보낼 수 있습니다.
  • 하드웨어 최적화: 많은 하드웨어 제조업체들은 ONNX 인터페이스하는 전용 실행 공급자를 제공합니다. 이는 단일 .onnx 파일은 NVIDIA , Intel 또는 모바일 NPU(신경망 처리 장치)에서 다음과 같은 도구를 사용하여 가속화될 수 있습니다. OpenVINO 또는 CoreML.
  • 더 빠른 추론: ONNX 노드 융합 및 상수 접기 같은 그래프 최적화를 적용하여 추론 지연 시간을 크게 줄일 수 있습니다. 이는 자율주행 차량이나 고속 생산 라인 같은 실시간 애플리케이션에 필수적입니다.
  • 간소화된 배포: 각 훈련 프레임워크별로 별도의 배포 파이프라인을 유지 관리하는 대신, 엔지니어링 팀은 ONNX 전달 ONNX 표준화하여 ModelOps 프로세스를 간소화할 수 있습니다.

실제 애플리케이션

ONNX 다용도성은 다양한 산업 분야에서 필수 요소로 자리매김하게 ONNX . 다음은 그 적용 사례 두 가지입니다:

1. 모바일 기기에서의 엣지 AI

실시간 작물 건강 모니터링을 위해 설계된 모바일 애플리케이션을 고려해 보십시오. 이 모델은 방대한 식물 이미지 데이터셋을 활용해 강력한 클라우드 서버에서 훈련될 수 있습니다. 그러나 앱은 농부의 스마트폰에서 오프라인으로 실행되어야 합니다. 훈련된 모델을 ONNX 내보내면 개발자는 ONNX 모바일( ONNX Mobile)을 통해 이 모델을 모바일 앱에 통합할 수 있습니다. 이를 통해 휴대폰 프로세서가 인터넷 연결 없이도 즉시 해충이나 질병을 식별하는 객체 감지 작업을 로컬에서 실행할 수 있습니다.

2. 크로스 플랫폼 웹 추론

전자상거래에서 '가상 피팅' 기능은 자세 추정 기술을 활용해 사용자의 웹캠 영상에 의류를 합성할 수 있습니다. 이 모델 훈련은 Python 수행될 수 있으나, 배포 대상은 웹 브라우저입니다. ONNX 사용하면 모델을 변환하여 ONNX 웹을 통해 사용자 브라우저에서 직접 실행할 수 있습니다. 이는 클라이언트 기기 기능(WebGL 또는 WebAssembly)을 활용해 컴퓨터 비전 작업을 수행하므로, 영상 데이터가 사용자 컴퓨터를 벗어나지 않아 원활하고 개인정보를 보호하는 경험을 보장합니다.

관련 용어와의 비교

ONNX 다른 모델 형식 및 도구 ONNX 구분하는 것이 유용합니다:

  • vs. TensorRT: ONNX 교환 형식 ONNX 반면, TensorRT 는 NVIDIA 전용 추론 엔진 및 최적화 도구입니다. 일반적인 워크플로는 ONNX 모델을 ONNX 내보낸 후, 해당 ONNX 파일을 TensorRT 파싱하여 NVIDIA 최대 처리량을 TensorRT 방식입니다.
  • TensorFlow SavedModel 대: SavedModel TensorFlow의 기본 직렬화 SavedModel TensorFlow의 기본 직렬화 형식입니다. Google 내에서 견고하지만, ONNX 범용 호환성이 떨어집니다. 더 넓은 플랫폼 지원을 ONNX SavedModel을 ONNX 변환하는 도구가 흔히 존재합니다.
  • vs. CoreML: CoreML 은 Apple의 기기 내 머신러닝 프레임워크입니다. 별개의 프레임워크이지만, 모델은 종종 PyTorch ONNX 변환된 후 ONNX CoreML 또는 직접) ONNX 변환되어 iPhone 및 iPad에서 효율적으로 실행됩니다.

Ultralytics ONNX 로 내보내기

Ultralytics YOLO26과 같은 최신 모델을 ONNX 변환하는 과정을 간소화합니다. 내보내기 기능은 라이브러리에 직접 내장되어 복잡한 그래프 탐색과 연산자 매핑을 자동으로 처리합니다.

다음 예제는 배포를 위해 사전 훈련된 YOLO26 모델을 ONNX 내보내는 방법을 보여줍니다:

from ultralytics import YOLO

# Load the YOLO26n model (Nano version recommended for edge deployment)
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
# The 'dynamic' argument enables variable input sizes
path = model.export(format="onnx", dynamic=True)

print(f"Model exported successfully to: {path}")

수출되면 이 .onnx 파일은 다음에서 활용될 수 있습니다. Ultralytics 플랫폼 관리용으로 또는 ONNX 사용하여 에지 장치에 직접 배포함으로써, 거의 모든 환경에서 고성능 컴퓨터 비전을 활용할 수 있게 합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기