ONNX 통합을 사용하여 Ultralytics YOLO 모델 내보내기
ONNX 통합을 사용하여 Ultralytics YOLO11과 같은 Ultralytics YOLO 모델을 내보내고 다양한 하드웨어 환경에 배포하는 방법을 알아보십시오.

AI solutions이 처음 주목받기 시작했을 때, 대부분의 모델은 통제된 환경의 강력한 서버에 배포되었습니다. 하지만 기술이 발전함에 따라 배포 환경은 데이터 센터를 넘어 훨씬 넓은 영역으로 확장되었습니다.
오늘날 AI 모델은 클라우드 서버와 데스크톱부터 스마트폰과 엣지 디바이스에 이르기까지 모든 곳에서 실행됩니다. 이러한 변화는 더 빠른 처리, 오프라인 기능, 그리고 데이터가 생성되는 곳과 더 가까운 지점에서 작동하는 스마트한 시스템을 지원합니다.
이러한 변화가 가장 두드러지게 나타나는 분야 중 하나는 기계가 시각적 데이터를 해석할 수 있도록 지원하는 AI의 한 분야인 computer vision입니다. 이는 안면 인식, 자율주행, 실시간 비디오 분석과 같은 애플리케이션을 구동하는 데 활용되고 있습니다. 이러한 사용 사례가 증가함에 따라 다양한 하드웨어와 플랫폼에서 원활하게 실행될 수 있는 모델의 필요성도 커지고 있습니다.
하지만 다양한 배포 대상 전반에 걸쳐 컴퓨터 비전 모델을 배포하는 것이 항상 간단한 것은 아닙니다. 디바이스마다 하드웨어, 운영 체제, 지원하는 프레임워크가 다르기 때문에 유연성과 호환성이 필수적입니다.
그렇기 때문에 Ultralytics YOLO11과 같은 computer vision 모델을 다양한 포맷으로 내보낼 수 있는 옵션을 갖추는 것이 핵심입니다. 예를 들어, Ultralytics가 지원하는 ONNX(Open Neural Network Exchange) 통합은 학습과 배포 사이의 간극을 좁힐 수 있는 실용적인 방법을 제공합니다. ONNX는 모델을 프레임워크에 구애받지 않고 다양한 플랫폼에서 바로 배포할 수 있도록 만들어주는 오픈 포맷입니다.

Fig 1. ONNX를 사용하면 한 프레임워크에서 학습된 모델을 다른 프레임워크에서 쉽게 실행할 수 있습니다.
이 글에서는 Ultralytics가 지원하는 ONNX integration을 자세히 살펴보고, 유연한 크로스 플랫폼 배포를 위해 YOLO11 모델을 내보내는 방법을 알아봅니다.
ONNX와 ONNX Runtime이란 무엇인가요?#
Open Neural Network Exchange는 머신 러닝 모델을 위한 표준 형식을 정의하는 오픈 소스 프로젝트입니다. 원래 Microsoft와 Facebook이 공동 개발했으며, 개발자가 PyTorch와 같은 하나의 프레임워크에서 모델을 학습시키고 TensorFlow와 같은 다른 프레임워크에서 실행할 수 있도록 합니다. 이는 특히 컴퓨터 비전과 같은 분야에서 AI 개발을 더욱 유연하고 협력적이며 접근하기 쉽게 만듭니다.
ONNX는 공통 연산자 세트와 통합 파일 포맷을 제공하므로, 서로 다른 도구, 프레임워크, 런타임, 컴파일러 간에 모델을 더 쉽게 이동할 수 있습니다. 일반적으로 한 프레임워크에서 학습된 모델은 다른 프레임워크와 쉽게 호환되지 않지만, ONNX를 사용하면 모델을 한 번 내보내어 CPU(중앙 처리 장치), GPUs (Graphics Processing Units), 모바일 기기, 엣지 하드웨어 등 거의 모든 곳에 배포할 수 있습니다.
또한, ONNX Runtime은 ONNX 형식의 모델을 실행하기 위해 특별히 개발된 고성능 추론 엔진입니다. 이 엔진은 서버, 모바일 디바이스, 엣지 하드웨어를 포함한 광범위한 플랫폼에서 ONNX 모델을 더 빠르고 효율적으로 실행하도록 설계되었습니다. ONNX Runtime은 PyTorch, TensorFlow, TensorFlow Lite, scikit-learn과 같은 대중적인 프레임워크와 호환되므로 다양한 워크플로우에 쉽게 통합하고 필요한 곳에 모델을 배포할 수 있습니다.

Fig 2. ONNX와 ONNX Runtime을 사용하면 유연한 크로스 플랫폼 모델 배포가 가능합니다.
ONNX의 주요 기능#
Ultralytics YOLO11을 ONNX 형식으로 내보내기에 대해 논의하기 전에, ONNX 모델 형식의 주요 특징을 살펴보겠습니다.
도구 간 전환, 서로 다른 디바이스로의 배포, 시스템 업그레이드 등 어떤 상황에서든 ONNX는 모든 것이 원활하게 작동하도록 돕습니다. ONNX 모델 형식을 특별하게 만드는 이유는 다음과 같습니다.
-
하나의 표준 형식: ONNX는 모델이 어떻게 구축되는지를 설명하는 공통적인 방법을 사용합니다(예: 레이어 및 연산, 일종의 빌딩 블록이라고 생각하면 됩니다). 모델이 ONNX로 변환되면 이 표준을 따르게 되어 ONNX를 지원하는 모든 시스템에서 이를 이해하고 실행할 수 있습니다.
-
하위 호환성: ONNX는 지속적으로 개선되고 있지만, 이전 모델이 최신 버전에서도 여전히 작동하도록 보장합니다. 즉, ONNX가 업데이트될 때마다 모델을 다시 학습하거나 재구축할 필요가 없습니다.
-
그래프 기반 모델 디자인: ONNX 모델은 계산 그래프로 구조화되어 있습니다. 여기서 각 노드는 연산(레이어 또는 수학적 함수 등)을 나타내고, 엣지는 데이터 흐름을 나타냅니다. 이러한 그래프 기반 디자인은 유사한 계산 그래프 구조를 사용하는 다양한 시스템과의 통합을 촉진합니다.
-
개발자 친화적인 도구: 모델을 변환, 검증 및 최적화하는 데 도움이 되는 광범위한 도구가 함께 제공됩니다. 이러한 도구는 서로 다른 프레임워크 간에 모델을 이동하는 프로세스를 단순화하며, 특히 컴퓨터 비전 애플리케이션의 경우 배포 속도를 높일 수 있습니다.
ONNX 통합 개요#
Ultralytics YOLO11과 같은 Ultralytics YOLO models을 ONNX 포맷으로 내보내는 과정은 간단하며 몇 가지 단계만 거치면 됩니다.
시작하려면 'pip' 같은 패키지 관리자를 사용하여 Ultralytics Python package를 설치합니다. 명령 프롬프트나 터미널에서 “pip install ultralytics” 명령어를 실행하여 시작할 수 있습니다.
Ultralytics 패키지를 사용하면 다양한 computer vision 작업을 위해 모델을 쉽게 학습, 테스트, 파인튜닝, 내보내기, 배포할 수 있어 전체 프로세스가 더 빠르고 효율적으로 진행됩니다. 설치 중 문제가 발생하는 경우 해결 방법과 팁이 담긴 Common Issues guide를 참고하실 수 있습니다.
Ultralytics 패키지가 설치되면 아래 코드를 사용하여 YOLO11 모델을 로드하고 ONNX 형식으로 내보낼 수 있습니다. 이 예제는 사전 학습된 YOLO11 모델(yolo11n.pt)을 로드하고 이를 ONNX 파일(yolo11n.onnx)로 내보내어 다양한 플랫폼과 디바이스에 배포할 준비를 마칩니다.
모델을 ONNX 형식으로 변환한 후에는 다양한 플랫폼에 배포할 수 있습니다.
아래 예제는 내보낸 YOLO11 모델(yolo11n.onnx)을 로드하고 이를 사용하여 추론을 실행하는 방법을 보여줍니다. 추론이란 학습된 모델을 사용하여 새로운 데이터에 대한 예측을 수행하는 것을 의미합니다. 이 경우, 버스 이미지의 URL을 사용하여 모델을 테스트합니다.
이 코드를 실행하면 다음과 같은 결과 이미지가 runs/detect/predict 폴더에 저장됩니다.

그림 3. 이미지에서 내보낸 Ultralytics YOLO11 모델을 사용하여 추론을 실행하는 모습입니다.
언제 ONNX 통합을 선택해야 할까요?#
Ultralytics Python package는 TorchScript, CoreML, TensorRT, ONNX를 포함한 여러 포맷으로 exporting models하는 기능을 지원합니다. 그렇다면 왜 ONNX를 선택해야 할까요?
ONNX가 돋보이는 이유는 프레임워크에 구애받지 않는 형식이기 때문입니다. 다른 많은 내보내기 형식은 특정 도구나 환경에 묶여 있지만, ONNX는 표준화된 형식과 공유 연산자 집합을 사용합니다. 덕분에 이식성이 뛰어나고 하드웨어 친화적이며 클라우드 서버, 모바일 앱, 엣지 디바이스 등 어디에서든 플랫폼 간 배포에 이상적입니다.
ONNX 연동이 Ultralytics YOLO11 프로젝트에 이상적인 선택이 될 수 있는 몇 가지 이유는 다음과 같습니다:
-
이식성 높은 배포: ONNX로 내보내면 코드 변경이나 재학습 없이 다양한 플랫폼에 Ultralytics YOLO11 모델을 배포할 수 있습니다.
-
업계 전반의 지원: ONNX는 주요 AI 기업과 프레임워크의 지원을 받으므로 신뢰할 수 있고 널리 인정받는 형식입니다. PDF가 디바이스 전반에서 작동하는 것과 마찬가지로 장기적인 호환성을 보장합니다.
-
미래 지향적 개발: ONNX를 사용하면 모델에 대한 투자를 보호할 수 있습니다. 도구가 발전하더라도 ONNX는 새로운 환경이나 다른 환경에서도 모델을 유효하고 사용 가능하게 유지합니다.
-
벤더 종속성 없음: 일부 도구는 특정 시스템만 사용하도록 강제하여 모델이 할 수 있는 일을 제한할 수 있습니다. ONNX는 단일 설정에 얽매이지 않고 필요에 가장 적합한 플랫폼을 자유롭게 선택할 수 있도록 하여 이를 방지합니다.
Ultralytics YOLO11 및 ONNX 모델 포맷의 애플리케이션#
다음으로, ONNX 연동을 통해 Ultralytics YOLO11을 배포할 수 있는 몇 가지 실제 응용 사례를 살펴보겠습니다.
Ultralytics YOLO11을 사용한 창고 재고 추적#
바쁜 창고에서는 모든 제품과 패키지를 항상 주시하기가 어렵습니다. 컴퓨터 비전 시스템은 작업자가 선반에서 제품을 찾고, 제품 수나 유형 등에 대한 인사이트를 얻도록 도울 수 있습니다. 이러한 시스템은 기업이 방대한 재고를 자동으로 관리하고 창고 작업자의 시간을 크게 절약하도록 지원합니다.
구체적으로, 스마트 물류창고에서 ONNX로 내보낸 Ultralytics YOLO11 모델은 카메라와 엣지 디바이스를 사용하여 실시간으로 물품을 식별하고 카운트하는 데 사용할 수 있습니다. 내보낸 모델은 선반이나 팔레트를 스캔하여 재고 수준, 누락된 품목 또는 빈 공간을 감지하는 데 도움을 줍니다. ONNX로 내보내면 모델이 가볍고 효율적이 되므로, 스마트 카메라와 같은 소형 엣지 디바이스에서 직접 실행할 수 있어 고가의 서버나 지속적인 클라우드 연결이 필요하지 않습니다.

Fig 4. YOLO11을 사용하여 패키지를 감지하고 개수를 세는 예시입니다.
Ultralytics YOLO11을 활용한 병원 폐기물 관리#
전 세계의 병원에서는 사용한 장갑과 주사기부터 수술 중에 사용되는 장비(가위나 메스와 같은 일회용 또는 오염된 수술 도구)에 이르기까지 매일 엄청난 양의 폐기물이 발생합니다. 실제로 연구에 따르면 병원은 매년 약 5백만 톤의 폐기물을 배출하며, 이는 waste per bed 기준 하루 29파운드에 달합니다.
이러한 폐기물을 올바르게 분류하는 것은 위생, 안전 및 규정 준수를 위해 필수적입니다. ONNX 형식으로 내보낸 Ultralytics YOLO11 모델을 사용하면 병원은 폐기물 처리를 자동화하고 실시간으로 모니터링할 수 있습니다.
예를 들어, 수술실이나 복도 같은 구역의 폐기물 통 근처에 설치된 카메라는 폐기되는 물품을 모니터링할 수 있습니다. 다양한 유형의 의료 폐기물을 인식하도록 학습된 커스텀 Ultralytics YOLO11 모델은 영상 데이터를 분석하여 버려지는 물품을 식별합니다. 주사기가 일반 쓰레기통에 버려지는 것과 같이 물품이 잘못된 쓰레기통에 들어가면, 시스템이 즉시 불빛이나 소리로 직원에게 경고하도록 설정하여 오염을 방지하고 규정 준수를 보장할 수 있습니다.

그림 5. 의료 장비를 감지하기 위해 Ultralytics YOLO11 사용하기.
Ultralytics YOLO11 기반 작물 모니터링#
작물을 수확할 최적의 시기를 아는 것은 농산물의 품질과 농장의 전반적인 생산성 모두에 큰 영향을 미칩니다. 전통적으로 농부들은 경험과 수동 검사에 의존해 왔지만, 최근 기술의 발전으로 이러한 방식이 변화하고 있습니다.
이제 ONNX 포맷으로 내보낸 YOLO11과 같은 computer vision 혁신 기술을 통해 농부들은 현장에 자동화와 정밀성을 도입할 수 있습니다. 농부들은 드론이나 트랙터 및 폴대에 장착된 카메라를 사용하여 작물(토마토, 사과, 밀 등)의 이미지를 캡처할 수 있습니다. 그런 다음 YOLO11을 사용하여 색상, 크기, distribution of crops과 같은 주요 지표를 감지할 수 있습니다. 이 정보를 바탕으로 농부들은 작물이 수확할 준비가 되었는지, 여전히 성장 중인지, 아니면 수확 적기를 지났는지 판단할 수 있습니다.

Fig 6. YOLO11을 사용하여 공중 드론 영상에서 작물을 감지할 수 있습니다.
고려해야 할 ONNX의 제한 사항#
ONNX는 이식성, 플랫폼 간 호환성, 프레임워크 상호 운용성 등 수많은 이점을 제공하지만, 염두에 두어야 할 몇 가지 제한 사항이 있습니다.
-
Model size: 모델을 ONNX 포맷으로 변환하면 원본 포맷에 비해 파일 크기가 더 커지는 경우가 있습니다. quantization and pruning과 같은 기법은 성능에 큰 영향을 주지 않으면서 모델 크기를 줄여 이 문제를 완화하는 데 도움을 줍니다.
-
런타임 호환성: ONNX Runtime은 플랫폼 간 호환성을 위해 설계되었지만, 성능과 지원 범위는 하드웨어와 운영 체제에 따라 다를 수 있습니다.
-
디버깅의 어려움: ONNX 모델을 디버깅하는 것은 PyTorch나 TensorFlow와 같은 기본 프레임워크보다 더 복잡할 수 있습니다. 오류 메시지가 덜 자세하여 문제를 파악하기 어려울 수 있습니다. 그러나 모델 시각화를 위한 Netron이나 ONNX Runtime의 로깅 기능을 활용하면 문제 해결에 도움을 받을 수 있습니다.
핵심 요약#
Ultralytics YOLO11을 ONNX로 내보내면 학습된 컴퓨터 비전 모델을 가져와 노트북, 모바일 디바이스, 심지어 소형 스마트 카메라에 이르기까지 거의 모든 곳에 쉽게 배포할 수 있습니다. ONNX 통합을 사용하면 단일 프레임워크나 플랫폼에 얽매이지 않고, 애플리케이션에 가장 적합한 환경에서 모델을 실행할 수 있는 유연성을 확보할 수 있습니다.
이를 통해 학습에서 실제 배포까지의 전환이 더 빠르고 효율적으로 이루어집니다. 창고에서 재고를 추적하든 병원 폐기물이 올바르게 처리되도록 관리하든, 이 설정을 사용하면 시스템을 더 원활하게 실행하고 오류를 줄이며 소중한 시간을 절약할 수 있습니다.
computer vision와 AI에 대해 더 알고 싶으신가요? GitHub repository를 탐색하고, our community와 소통하며, computer vision 프로젝트를 빠르게 시작하기 위해 our licensing options을 확인해 보세요. AI in manufacturing 및 computer vision in the automotive 산업 분야의 혁신을 탐구하고 계신다면, 당사의 솔루션 페이지를 방문하여 더 많은 정보를 확인해 보세요.






