다양한 하드웨어에 걸쳐 크로스 플랫폼 배포를 위해 ONNX 통합을 사용하여 Ultralytics YOLO11 같은 Ultralytics YOLO11 모델을 내보내는 방법을 알아보세요.
AI 솔루션이 처음 주목받기 시작했을 때 대부분의 모델은 통제된 환경의 강력한 서버에 배포되었습니다. 하지만 기술이 발전함에 따라 배포 범위가 데이터 센터를 넘어 훨씬 더 넓어졌습니다.
오늘날 AI 모델은 클라우드 서버와 데스크톱부터 스마트폰과 엣지 디바이스에 이르기까지 모든 곳에서 실행됩니다. 이러한 변화는 더 빠른 처리, 오프라인 기능, 데이터가 생성되는 곳에서 더 가깝게 작동하는 더 스마트한 시스템을 지원합니다.
특히 컴퓨터 비전은 기계가 시각적 데이터를 해석할 수 있도록 하는 AI의 한 분야입니다. 컴퓨터 비전은 얼굴 인식, 자율 주행, 실시간 비디오 분석과 같은 애플리케이션을 구동하는 데 사용되고 있습니다. 이러한 사용 사례가 증가함에 따라 다양한 하드웨어와 플랫폼에서 원활하게 실행할 수 있는 모델에 대한 필요성도 커지고 있습니다.
하지만 다양한 배포 대상에 컴퓨터 비전 모델을 배포하는 것이 항상 간단한 것은 아닙니다. 장치마다 하드웨어, 운영 체제, 지원되는 프레임워크가 다르기 때문에 유연성과 호환성이 필수적입니다.
그렇기 때문에 다음과 같은 컴퓨터 비전 모델을 내보낼 수 있는 옵션이 있어야 합니다. Ultralytics YOLO11 과 같은 컴퓨터 비전 모델을 다양한 형식으로 내보낼 수 있는 옵션이 중요한 이유입니다. 예를 들어, Ultralytics 지원하는 ONNX (Open Neural Network Exchange) 통합은 훈련과 배포 사이의 간극을 메울 수 있는 실용적인 방법을 제공합니다. ONNX 프레임워크에 구애받지 않고 여러 플랫폼에 걸쳐 모델을 배포할 수 있는 개방형 형식입니다.
이 글에서는 Ultralytics 지원하는 ONNX 통합에 대해 자세히 살펴보고 유연한 크로스 플랫폼 배포를 위해 YOLO11 모델을 내보내는 방법을 살펴봅니다.
오픈 신경망 교환은 머신 러닝 모델의 표준 형식을 정의하는 오픈 소스 프로젝트입니다. 원래 Microsoft Facebook에서 개발한 이 프로젝트는 개발자가 PyTorch 같은 하나의 프레임워크에서 모델을 훈련하고 TensorFlow 같은 다른 프레임워크에서 실행할 수 있게 해줍니다. 이를 통해 특히 컴퓨터 비전과 같은 분야에서 AI 개발의 유연성, 협업성, 접근성을 높일 수 있습니다.
ONNX 공통 연산자 세트와 통합 파일 형식을 제공하므로 서로 다른 도구, 프레임워크, 런타임 및 컴파일러 간에 모델을 쉽게 이동할 수 있습니다. 일반적으로 한 프레임워크에서 학습된 모델은 다른 프레임워크와 쉽게 호환되지 않지만 ONNX 사용하면 모델을 한 번 내보낸 후 CPU(중앙 처리 장치), GPU(그래픽 처리 장치), 모바일 디바이스 또는 에지 하드웨어 등 거의 모든 곳에 배포할 수 있습니다.
또한 ONNX 런타임은 ONNX 형식의 모델을 실행하기 위해 특별히 개발된 고성능 추론 엔진입니다. 서버, 모바일 디바이스, 엣지 하드웨어 등 다양한 플랫폼에서 ONNX 모델을 보다 빠르고 효율적으로 실행할 수 있도록 설계되었습니다. ONNX Runtime은 PyTorch, TensorFlow, TensorFlow Lite, scikit-learn과 같은 인기 있는 프레임워크와 호환되므로 다양한 워크플로에 쉽게 통합하고 필요한 곳에 모델을 배포할 수 있습니다.
YOLO11 ONNX 형식으로 내보내는 방법에 대해 설명하기 전에 ONNX 모델 형식의 몇 가지 주요 기능을 확인해 보겠습니다.
도구 간 전환, 다른 기기로 배포, 시스템 업그레이드 등 모든 작업을 원활하게 진행할 수 있도록 ONNX 도와줍니다. 다음은 ONNX 모델 형식의 고유한 특징입니다:
Ultralytics YOLO11 같은 Ultralytics YOLO11 모델을 ONNX 형식으로 내보내는 것은 간단하며 몇 단계로 완료할 수 있습니다.
시작하려면 'pip'와 같은 패키지 관리자를 사용하여 Ultralytics Python 패키지를 설치합니다. 명령 프롬프트나 터미널에서 "pip install ultralytics" 명령을 실행하여 시작할 수 있습니다.
Ultralytics 패키지를 사용하면 다양한 컴퓨터 비전 작업을 위한 모델을 쉽게 훈련, 테스트, 미세 조정, 내보내기 및 배포할 수 있어 전체 프로세스를 더 빠르고 효율적으로 진행할 수 있습니다. 설치하는 동안 문제가 발생하면 일반적인 문제 가이드를 참조하여 해결 방법과 팁을 확인할 수 있습니다.
Ultralytics 패키지가 설치되면 아래 코드를 사용하여 YOLO11 모델을 로드하고 ONNX 형식으로 내보낼 수 있습니다. 이 예에서는 사전 학습된 YOLO11 모델(yolo11n.pt)을 로드하고 이를 ONNX 파일(yolo11nonnx)로 내보내 다양한 플랫폼과 디바이스에 배포할 수 있도록 준비합니다.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="onnx")
모델을 ONNX 형식으로 변환한 후에는 다양한 플랫폼에 배포할 수 있습니다.
아래 예는 내보낸 YOLO11 모델(yolo11nonnx)을 로드하고 이를 통해 추론을 실행하는 방법을 보여줍니다. 추론이란 간단히 말해 학습된 모델을 사용하여 새로운 데이터를 예측하는 것을 의미합니다. 이 예에서는 버스 이미지의 URL을 사용하여 모델을 테스트해 보겠습니다.
onnx_model = YOLO("yolo11n.onnx")
results = onnx_model("https://ultralytics.com/images/bus.jpg",save=True)
이 코드를 실행하면 실행/감지/예측 폴더에 다음 출력 이미지가 저장됩니다.
Ultralytics Python 패키지는 TorchScript, CoreML, TensorRT 및 ONNX 포함한 여러 형식으로 모델을 내보낼 수 있습니다. 그렇다면 왜 ONNX 선택해야 할까요?
ONNX 돋보이는 이유는 프레임워크에 구애받지 않는 형식이라는 점입니다. 다른 많은 내보내기 형식이 특정 도구나 환경에 종속되어 있는 반면, ONNX 표준화된 형식과 공유 연산자 세트를 사용합니다. 따라서 휴대성이 뛰어나고 하드웨어 친화적이며 클라우드 서버, 모바일 앱, 엣지 디바이스 등 크로스 플랫폼 배포에 이상적입니다.
다음은 ONNX 통합이 YOLO11 프로젝트에 이상적인 선택이 될 수 있는 몇 가지 이유입니다:
다음으로 ONNX 통합을 통해 YOLO11 배포할 수 있는 몇 가지 실제 애플리케이션을 살펴보겠습니다.
바쁜 물류창고에서는 모든 제품과 포장을 항상 주시하기 어렵습니다. 컴퓨터 비전 시스템은 작업자가 선반에서 제품을 찾고 제품 수, 유형 등과 같은 인사이트를 얻을 수 있도록 도와줍니다. 이러한 시스템을 통해 기업은 방대한 재고를 자동으로 관리하고 창고 작업자의 시간을 크게 절약할 수 있습니다.
특히 스마트 물류창고에서는 ONNX 내보낸 YOLO11 모델을 사용하여 카메라와 엣지 디바이스를 사용하여 실시간으로 품목을 식별하고 계산할 수 있습니다. 내보낸 모델은 선반이나 팔레트를 스캔하여 재고 수준, 누락된 품목 또는 빈 공간을 감지하는 데 도움이 될 수 있습니다. ONNX 내보내면 모델이 가볍고 효율적이므로 스마트 카메라와 같은 소형 엣지 디바이스에서 직접 실행할 수 있으므로 값비싼 서버나 지속적인 클라우드 액세스가 필요하지 않습니다.
전 세계 병원에서는 사용한 장갑과 주사기부터 수술 중 사용한 장비(일회용 또는 오염된 가위와 메스 같은 수술 도구)에 이르기까지 매일 많은 양의 폐기물이 발생합니다. 실제로 연구에 따르면 병원에서는 매년 약 5백만 톤의 폐기물이 발생하는데, 이는 하루에 침대 한 개당 29파운드의 폐기물이 발생하는 양입니다.
이러한 폐기물을 올바르게 분류하는 것은 위생, 안전 및 규정 준수를 위해 필수적입니다. 병원에서는 ONNX 형식으로 내보낸 YOLO11 모델을 통해 폐기물 처리를 자동화하고 실시간으로 모니터링할 수 있습니다.
예를 들어 수술실이나 복도와 같은 공간의 쓰레기통 근처에 카메라를 설치하면 버려지는 물품을 모니터링할 수 있습니다. 다양한 유형의 의료 폐기물을 인식하도록 훈련된 맞춤형 YOLO11 모델은 영상을 분석하여 무엇이 버려지는지 식별할 수 있습니다. 사용한 주사기를 일반 쓰레기통에 버리는 등 잘못된 쓰레기통에 품목이 버려지면 시스템이 빛이나 소리로 직원에게 즉시 경고하도록 설정할 수 있어 오염을 방지하고 규정을 준수할 수 있습니다.
농작물을 수확할 적절한 시기를 아는 것은 농산물의 품질과 농장의 전반적인 생산성 모두에 큰 영향을 미칠 수 있습니다. 전통적으로 농부들은 경험과 수작업 검사에 의존했지만 최근 기술의 발전으로 이러한 방식이 바뀌기 시작했습니다.
이제 농부들은 ONNX 포맷으로 수출되는 YOLO11 같은 컴퓨터 비전 혁신을 통해 자동화와 정밀성을 현장에 도입할 수 있습니다. 농부들은 드론이나 트랙터나 기둥에 장착된 카메라를 사용하여 토마토, 사과, 밀과 같은 농작물의 이미지를 캡처할 수 있습니다. 그런 다음 YOLO11 사용하여 농작물의 색상, 크기, 분포와 같은 주요 지표를 감지할 수 있습니다. 농부들은 이 정보를 바탕으로 농작물이 수확할 준비가 되었는지, 아직 숙성 중인지, 아니면 이미 정점을 지났는지 판단할 수 있습니다.
ONNX 이식성, 플랫폼 간 호환성, 프레임워크 상호 운용성 등 다양한 이점을 제공하지만, 염두에 두어야 할 몇 가지 제한 사항이 있습니다.
Ultralytics YOLO11 ONNX 내보내면 훈련된 컴퓨터 비전 모델을 노트북, 모바일 장치, 소형 스마트 카메라 등 거의 모든 곳에 쉽게 배포할 수 있습니다. ONNX 통합을 사용하면 단일 프레임워크나 플랫폼에 종속되지 않으므로 애플리케이션에 가장 적합한 환경에서 모델을 유연하게 실행할 수 있습니다.
이를 통해 교육에서 실제 배포로 더 빠르고 효율적으로 전환할 수 있습니다. 창고에서 재고를 추적하든 병원 폐기물을 올바르게 처리하든, 이 설정은 시스템을 보다 원활하게 운영하고 오류를 줄이며 귀중한 시간을 절약하는 데 도움이 됩니다.
컴퓨터 비전과 AI에 대해 자세히 알아보고 싶으신가요? GitHub 리포지토리를 살펴보고, 커뮤니티와 소통하고, 라이선스 옵션을 확인하여 컴퓨터 비전 프로젝트를 시작하세요. 제조 분야의 AI와 자동차 산업의 컴퓨터 비전과 같은 혁신을 모색하고 있다면 솔루션 페이지를 방문하여 자세한 내용을 알아보세요.