YOLO Vision 2025를 놓치지 마세요!
2025년 9월 25일
10:00 — 18:00 BST
하이브리드 이벤트
Yolo Vision 2024

ONNX 통합을 사용하여 Ultralytics YOLO 모델 내보내기

Abirami Vina

4분 소요

2025년 5월 2일

다양한 하드웨어에서 플랫폼 간 배포를 위해 ONNX 통합을 사용하여 Ultralytics YOLO11과 같은 Ultralytics YOLO 모델을 내보내는 방법을 알아보세요.

AI 솔루션이 처음 주목을 받기 시작했을 때 대부분의 모델은 통제된 환경의 강력한 서버에 배포되었습니다. 그러나 기술이 발전함에 따라 배포는 데이터 센터를 훨씬 넘어 확장되었습니다.

오늘날 AI 모델은 클라우드 서버와 데스크톱에서 스마트폰과 엣지 장치에 이르기까지 모든 곳에서 실행됩니다. 이러한 변화는 더 빠른 처리, 오프라인 기능 및 데이터가 생성되는 위치에 더 가까이에서 작동하는 더 스마트한 시스템을 지원합니다.

이것이 특히 분명한 영역 중 하나는 기계가 시각적 데이터를 해석할 수 있도록 하는 AI의 한 분야인 컴퓨터 비전입니다. 이는 안면 인식, 자율 주행 및 실시간 비디오 분석과 같은 애플리케이션을 구동하는 데 사용되고 있습니다. 이러한 사용 사례가 증가함에 따라 다양한 하드웨어 및 플랫폼에서 원활하게 실행할 수 있는 모델에 대한 필요성도 커지고 있습니다.

그러나 다양한 배포 대상에 컴퓨터 비전 모델을 배포하는 것이 항상 간단한 것은 아닙니다. 장치는 하드웨어, 운영 체제 및 지원되는 프레임워크 측면에서 다르므로 유연성과 호환성이 필수적입니다.

다양한 형식으로 Ultralytics YOLO11과 같은 컴퓨터 비전 모델을 내보낼 수 있는 옵션이 중요한 이유가 바로 여기에 있습니다. 예를 들어 Ultralytics에서 지원하는 ONNX(Open Neural Network Exchange) 통합은 학습과 배포 간의 간극을 좁히는 실용적인 방법을 제공합니다. ONNX는 모델을 프레임워크에 구애받지 않고 다양한 플랫폼에서 배포할 수 있도록 지원하는 개방형 형식입니다.

Fig 1. ONNX를 사용하면 한 프레임워크에서 학습된 모델을 다른 프레임워크에서 쉽게 실행할 수 있습니다.

이 문서에서는 Ultralytics에서 지원하는 ONNX 통합을 자세히 살펴보고 유연한 크로스 플랫폼 배포를 위해 YOLO11 모델을 내보내는 방법을 알아봅니다.

ONNX 및 ONNX Runtime이란 무엇입니까?

Open Neural Network Exchange는 머신러닝 모델을 위한 표준 형식을 정의하는 오픈 소스 프로젝트입니다. 원래 Microsoft와 Facebook에서 개발했으며, 개발자는 PyTorch와 같은 하나의 프레임워크에서 모델을 학습하고 TensorFlow와 같은 다른 프레임워크에서 실행할 수 있습니다. 이를 통해 특히 컴퓨터 비전과 같은 분야에서 AI 개발이 더욱 유연하고 협업적이며 접근성이 높아집니다.

ONNX는 공통 연산자 세트와 통합 파일 형식을 제공하여 다양한 도구, 프레임워크, 런타임 및 컴파일러 간에 모델을 더 쉽게 이동할 수 있도록 합니다. 일반적으로 하나의 프레임워크에서 학습된 모델은 다른 프레임워크와 쉽게 호환되지 않지만 ONNX를 사용하면 모델을 한 번 내보내어 CPU(중앙 처리 장치), GPU(그래픽 처리 장치), 모바일 장치 또는 에지 하드웨어 등 거의 모든 곳에 배포할 수 있습니다.

또한 ONNX Runtime은 ONNX 형식으로 모델을 실행하기 위해 특별히 개발된 고성능 추론 엔진입니다. 서버, 모바일 장치 및 에지 하드웨어를 포함한 광범위한 플랫폼에서 ONNX 모델을 더 빠르고 효율적으로 실행할 수 있도록 설계되었습니다. ONNX Runtime은 PyTorch, TensorFlow, TensorFlow Lite 및 scikit-learn과 같은 널리 사용되는 프레임워크와 호환되므로 다양한 워크플로에 쉽게 통합하고 필요한 곳에 모델을 배포할 수 있습니다.

Fig 2. ONNX 및 ONNX Runtime을 통해 유연한 크로스 플랫폼 모델 배포가 가능합니다.

ONNX의 주요 기능 

YOLO11을 ONNX 형식으로 내보내는 방법에 대해 논의하기 전에 ONNX 모델 형식의 몇 가지 주요 기능을 확인해 보겠습니다. 

도구 간 전환, 다양한 장치에 배포 또는 시스템 업그레이드 등 ONNX는 모든 것이 원활하게 실행되도록 지원합니다. ONNX 모델 형식을 특별하게 만드는 요소는 다음과 같습니다.

  • 단일 표준 형식: ONNX는 레이어 및 연산(빌딩 블록이라고 생각하면 됨)과 같이 모델이 구축되는 방식을 설명하는 공통 방법을 사용합니다. 모델이 ONNX로 변환되면 이 표준을 따르므로 ONNX를 지원하는 모든 시스템에서 모델을 이해하고 실행할 수 있습니다.
  • 역호환성: ONNX가 계속 개선되더라도 이전 모델이 최신 버전에서 계속 작동하도록 보장합니다. 즉, ONNX가 업데이트될 때마다 모델을 다시 학습하거나 다시 빌드할 필요가 없습니다.
  • 그래프 기반 모델 설계: ONNX 모델은 계산 그래프로 구성되며, 각 노드는 연산(예: 레이어 또는 수학 함수)을 나타내고 에지는 데이터 흐름을 나타냅니다. 이 그래프 기반 설계는 유사한 계산 그래프 구조를 활용하는 다양한 시스템과의 통합을 용이하게 합니다.
  • 개발자 친화적인 도구: 모델을 변환, 검증 및 최적화하는 데 도움이 되는 광범위한 도구가 함께 제공됩니다. 이러한 도구는 다양한 프레임워크 간에 모델을 이동하는 프로세스를 간소화하고 특히 컴퓨터 비전 애플리케이션의 배포 속도를 높일 수 있습니다.

ONNX 통합 개요

Ultralytics YOLO11과 같은 Ultralytics YOLO 모델을 ONNX 형식으로 내보내는 것은 간단하며 몇 단계로 수행할 수 있습니다. 

시작하려면 ‘pip’와 같은 패키지 관리자를 사용하여 Ultralytics Python 패키지를 설치합니다. 시작하려면 명령 프롬프트 또는 터미널에서 “pip install ultralytics” 명령을 실행하여 이 작업을 수행할 수 있습니다.

Ultralytics 패키지를 사용하면 다양한 컴퓨터 비전 작업에 대한 모델을 쉽게 학습, 테스트, 미세 조정, 내보내기 및 배포할 수 있으므로 전체 프로세스가 더 빠르고 효율적입니다. 설치하는 동안 어려움이 발생하면 일반적인 문제 가이드에서 해결 방법과 팁을 참조할 수 있습니다.

Ultralytics 패키지가 설치되면 아래 코드를 사용하여 YOLO11 모델을 로드하고 ONNX 형식으로 내보낼 수 있습니다. 이 예제에서는 사전 학습된 YOLO11 모델(yolo11n.pt)을 로드하고 ONNX 파일(yolo11n.onnx)로 내보내어 다양한 플랫폼 및 장치에서 배포할 수 있도록 합니다.

모델을 ONNX 형식으로 변환한 후에는 다양한 플랫폼에 배포할 수 있습니다. 

아래 예제에서는 내보낸 YOLO11 모델(yolo11n.onnx)을 로드하고 이를 사용하여 추론을 실행하는 방법을 보여줍니다. 추론은 단순히 학습된 모델을 사용하여 새 데이터에 대한 예측을 수행하는 것을 의미합니다. 이 경우 버스 이미지의 URL을 사용하여 모델을 테스트합니다.

이 코드를 실행하면 다음 출력 이미지가 runs\detect\predict 폴더에 저장됩니다.

Fig 3. 이미지에서 내보낸 YOLO11 모델을 사용하여 추론을 실행합니다.

ONNX 통합을 선택해야 하는 경우는 언제입니까?

Ultralytics Python 패키지는 TorchScript, CoreML, TensorRT, ONNX를 포함한 다양한 형식으로 모델 내보내기를 지원합니다. 그렇다면 왜 ONNX를 선택해야 할까요?

ONNX의 가장 큰 장점은 프레임워크에 구애받지 않는 형식이라는 점입니다. 다른 많은 내보내기 형식이 특정 도구나 환경에 종속적인 반면, ONNX는 표준화된 형식과 공유된 연산자 세트를 사용합니다. 따라서 클라우드 서버, 모바일 앱, 에지 장치 등 어떤 환경에서 작업하든 이식성이 뛰어나고 하드웨어 친화적이며, 플랫폼 간 배포에 이상적입니다. 

다음은 ONNX 통합이 YOLO11 프로젝트에 이상적인 선택이 될 수 있는 몇 가지 이유입니다.

  • 간편한 배포: ONNX로 내보낸 YOLO11 모델은 코드 변경이나 재학습 없이 다양한 플랫폼에 배포할 수 있습니다.
  • 업계 전반의 지원: ONNX는 주요 AI 기업과 프레임워크에서 지원하므로 신뢰할 수 있고 널리 사용되는 형식입니다. PDF가 여러 장치에서 작동하는 방식과 마찬가지로 장기적인 호환성을 보장합니다.
  • 미래 지향적인 개발: ONNX를 사용하면 모델 투자를 보호할 수 있습니다. 도구가 발전함에 따라 ONNX는 새롭거나 다른 환경에서도 모델을 계속 관련성 있고 유용하게 유지합니다.
  • 벤더 종속성 방지: 일부 도구는 특정 시스템만 사용하도록 제한하여 모델의 활용 범위를 제한할 수 있습니다. ONNX는 단일 설정에 얽매이지 않고 필요에 가장 적합한 플랫폼을 선택할 수 있도록 하여 이러한 문제를 해결합니다.

YOLO11 및 ONNX 모델 형식의 응용 분야

다음으로 ONNX 통합을 통해 YOLO11을 배포할 수 있는 실제 응용 분야를 살펴보겠습니다.

YOLO11을 사용한 창고 재고 추적

붐비는 창고에서는 모든 제품과 패키지를 항상 주시하기 어렵습니다. 컴퓨터 비전 시스템은 작업자가 선반에서 제품을 찾고 제품 수, 유형 등과 같은 정보를 얻는 데 도움을 줄 수 있습니다. 이러한 시스템은 기업이 방대한 재고를 자동으로 관리하고 창고 작업자의 시간을 절약하는 데 도움이 될 수 있습니다.

특히 스마트 창고에서 ONNX로 내보낸 YOLO11 모델을 사용하여 카메라와 에지 장치를 통해 실시간으로 품목을 식별하고 수를 셀 수 있습니다. 내보낸 모델은 선반이나 팔레트를 스캔하여 재고 수준, 누락된 품목 또는 빈 공간을 감지하는 데 도움이 될 수 있습니다. ONNX로 내보내면 모델이 가볍고 효율적이므로 스마트 카메라와 같은 소형 에지 장치에서 직접 실행할 수 있어 고가의 서버나 지속적인 클라우드 액세스가 필요하지 않습니다.

그림 4. 패키지 감지 및 수를 세기 위해 YOLO11을 사용하는 예.

YOLO11을 사용한 병원 폐기물 관리

전 세계 병원에서는 사용한 장갑과 주사기부터 수술 중에 사용한 장비(예: 일회용 또는 오염된 수술 도구(가위, 메스 등))에 이르기까지 매일 엄청난 양의 폐기물을 배출합니다. 실제로 연구에 따르면 병원은 매년 약 5백만 톤의 폐기물을 배출하며, 이는 침대 당 하루에 29파운드의 폐기물에 해당합니다. 

이러한 폐기물을 적절하게 분류하는 것은 위생, 안전 및 규정 준수에 필수적입니다. ONNX 형식으로 내보낸 YOLO11 모델을 통해 병원은 폐기물 처리를 자동화하고 실시간으로 모니터링할 수 있습니다.

예를 들어 수술실이나 복도와 같은 구역의 쓰레기통 근처에 카메라를 설치하여 품목이 버려질 때 모니터링할 수 있습니다. 다양한 유형의 의료 폐기물을 인식하도록 훈련된 맞춤형 YOLO11 모델은 영상을 분석하고 버려지는 품목을 식별할 수 있습니다. 사용한 주사기가 일반 쓰레기통에 버려지는 경우와 같이 품목이 잘못된 쓰레기통에 버려지면 시스템에서 즉시 조명이나 소리로 직원에게 경고하도록 설정하여 오염을 방지하고 규정 준수를 보장할 수 있습니다.

그림 5. 의료 기기 감지를 위해 YOLO11 사용.

YOLO11 기반 작물 모니터링

작물을 수확하기에 적절한 시기를 아는 것은 농산물의 품질과 농장의 전반적인 생산성에 큰 영향을 미칠 수 있습니다. 전통적으로 농부들은 경험과 수동 검사에 의존했지만 최근 기술 발전으로 인해 상황이 바뀌기 시작했습니다.

이제 ONNX 형식으로 내보낸 YOLO11과 같은 컴퓨터 비전 혁신 기술을 통해 농부들은 자동화와 정밀성을 현장에 도입할 수 있습니다. 드론이나 트랙터 또는 기둥에 장착된 카메라를 사용하여 농부들은 토마토, 사과 또는 밀과 같은 작물의 이미지를 캡처할 수 있습니다. 그런 다음 YOLO11을 사용하여 색상, 크기 및 작물 분포와 같은 주요 지표를 감지할 수 있습니다. 이 정보를 바탕으로 농부들은 작물을 수확할 준비가 되었는지, 아직 익어가는 중인지, 이미 최고조에 달했는지 판단할 수 있습니다.

그림 6. YOLO11은 공중 드론 영상에서 작물을 감지하는 데 사용할 수 있습니다. 

고려해야 할 ONNX 제한 사항

ONNX는 이식성, 플랫폼 간 호환성 및 프레임워크 상호 운용성과 같은 수많은 이점을 제공하지만 염두에 두어야 할 몇 가지 제한 사항이 있습니다.

  • 모델 크기: 모델을 ONNX 형식으로 변환하면 원래 형식에 비해 파일 크기가 더 커질 수 있습니다. 양자화 및 가지치기와 같은 기술은 성능에 큰 영향을 미치지 않으면서 모델 크기를 줄여 이 문제를 완화하는 데 도움이 될 수 있습니다.
  • 런타임 호환성: ONNX 런타임은 플랫폼 간 호환성을 고려하여 설계되었지만, 성능 및 지원은 하드웨어 및 운영 체제에 따라 다를 수 있습니다. 
  • 디버깅 문제: ONNX 모델 디버깅은 PyTorch 또는 TensorFlow와 같은 기본 프레임워크에서보다 더 복잡할 수 있습니다. 오류 메시지가 덜 명확하여 문제를 정확히 찾아내기가 더 어려울 수 있습니다. 그러나 모델 시각화를 위한 Netron 및 ONNX 런타임의 로깅 기능과 같은 도구가 문제 해결에 도움이 될 수 있습니다.

주요 내용

Ultralytics YOLO11을 ONNX로 내보내면 훈련된 컴퓨터 비전 모델을 랩톱, 모바일 장치 또는 소형 스마트 카메라 등 거의 모든 곳에 쉽게 배포할 수 있습니다. ONNX 통합을 통해 단일 프레임워크나 플랫폼에 종속되지 않고 애플리케이션에 가장 적합한 환경에서 모델을 유연하게 실행할 수 있습니다. 

이를 통해 훈련에서 실제 배포로의 전환이 더 빠르고 효율적으로 이루어집니다. 창고에서 재고를 추적하거나 병원 폐기물이 올바르게 처리되도록 하는 등, 이 설정은 시스템이 더 원활하게 실행되도록 돕고 오류를 줄이며 귀중한 시간을 절약합니다.

컴퓨터 비전 및 AI에 대해 자세히 알고 싶으십니까? GitHub 리포지토리를 살펴보고, 커뮤니티와 연결하고, 라이선스 옵션을 확인하여 컴퓨터 비전 프로젝트를 시작하십시오. 제조 분야의 AI자동차 산업의 컴퓨터 비전과 같은 혁신을 탐색하고 있다면 솔루션 페이지를 방문하여 자세히 알아보십시오. 

함께 미래의 AI를 만들어 갑시다!

미래의 머신러닝 여정을 시작하세요

무료로 시작하기
클립보드에 링크가 복사되었습니다.