AI 도입은 AI 솔루션의 접근성에 달려 있으며, 그 중 가장 중요한 부분은 사람들이 이미 보유하고 있는 하드웨어에 쉽게 배포할 수 있도록 하는 것입니다. GPU(그래픽 처리 장치)에서 AI 모델을 실행하는 것은 성능과 병렬 처리 능력 측면에서 훌륭한 옵션입니다.
그러나 현실은 모든 사람이 특히 엣지 환경이나 일상적인 노트북에서 하이엔드 GPU에 액세스할 수 있는 것은 아닙니다. 그렇기 때문에 중앙 처리 장치(CPU), 통합 GPU, 신경 처리 장치(NPU) 등 보다 널리 사용되는 하드웨어에서 효율적으로 실행되도록 모델을 최적화하는 것이 매우 중요합니다.
예를 들어 컴퓨터 비전은 기계가 이미지와 비디오 스트림을 실시간으로 분석하고 이해할 수 있게 해주는 AI의 한 분야입니다. Ultralytics YOLO11과 같은 비전 AI 모델은 소매 분석에서 의료 진단에 이르는 애플리케이션을 지원하는 객체 감지 및 인스턴스 세분화와 같은 주요 작업을 지원합니다.
컴퓨터 비전에 더 폭넓게 액세스할 수 있도록, Ultralytics는 CPU, GPU, NPU에서 AI 추론을 최적화하고 실행하기 위한 오픈 소스 프로젝트인 OpenVINO 툴킷과의 업데이트된 통합 기능을 출시했습니다.
이 통합을 통해 CPU에서 최대 3배 빠른 추론과 인텔 GPU 및 NPU에서 가속화된 성능으로 YOLO11 모델을 내보내고 배포하는 것이 더 쉬워졌습니다. 이 글에서는 Ultralytics Python 패키지를 사용해 YOLO11 모델을 OpenVINO 형식으로 내보내고 이를 추론에 사용하는 방법을 안내합니다. 시작해 보겠습니다!
Ultralytics가 지원하는 OpenVINO 통합에 대해 자세히 알아보기 전에, YOLO11이 안정적이고 영향력 있는 컴퓨터 비전 모델인 이유를 자세히 살펴봅시다. YOLO11은 속도와 정확도가 크게 개선된 Ultralytics YOLO 시리즈의 최신 모델입니다.
주요 특징 중 하나는 효율성입니다. 예를 들어, Ultralytics YOLO11m은 Ultralytics YOLOv8m보다 파라미터 수가 22% 더 적지만 COCO 데이터 세트에서 더 높은 평균 정밀도(mAP)를 달성합니다. 즉, 더 빠르게 실행되고 물체를 더 정확하게 감지하므로 성능과 응답성이 중요한 실시간 애플리케이션에 이상적입니다.
YOLO11은 객체 감지 외에도 인스턴스 분할, 포즈 추정, 이미지 분류, 객체 추적, 방향성 경계 상자 감지와 같은 다양한 고급 컴퓨터 비전 작업을 지원합니다. 또한 YOLO11은 개발자 친화적이며, 모델 훈련, 평가, 배포를 위한 간단하고 일관된 인터페이스를 제공하는 Ultralytics Python 패키지를 통해 개발자가 쉽게 사용할 수 있습니다.
이 외에도, Ultralytics Python 패키지는 OpenVINO, ONNX, TorchScript를 비롯한 다양한 통합과 여러 내보내기 형식을 지원하므로 YOLO11을 다양한 배포 파이프라인에 쉽게 통합할 수 있습니다. 클라우드 인프라, 에지 디바이스, 임베디드 시스템 등 대상에 관계없이 내보내기 프로세스는 간단하며 하드웨어 요구 사항에 맞게 조정할 수 있습니다.
OpenVINO™(오픈 시각 추론 및 신경망 최적화)는 다양한 하드웨어에서 AI 추론을 최적화하고 배포하기 위한 오픈 소스 툴킷입니다. 이를 통해 개발자는 CPU, 통합 및 개별 GPU, NPU, FPGA(필드 프로그래머블 게이트 어레이) 등 다양한 인텔 플랫폼에서 고성능 추론 애플리케이션을 효율적으로 실행할 수 있습니다.
OpenVINO는 디바이스별 플러그인을 통해 하드웨어 차이를 추상화하는 통합 런타임 인터페이스를 제공합니다. 즉, 개발자는 코드를 한 번만 작성하고 일관된 API를 사용하여 여러 인텔 하드웨어 대상에 배포할 수 있습니다.
다음은 OpenVINO를 배포하기에 적합한 몇 가지 주요 기능입니다:
OpenVINO의 정의와 그 중요성에 대해 살펴보았으니 이제 YOLO11 모델을 OpenVINO 형식으로 내보내고 인텔 하드웨어에서 효율적으로 추론을 실행하는 방법에 대해 알아보겠습니다.
모델을 OpenVINO 형식으로 내보내려면 먼저 Ultralytics Python 패키지를 설치해야 합니다. 이 패키지는 YOLO11을 포함한 YOLO 모델을 훈련, 평가 및 내보내는 데 필요한 모든 것을 제공합니다.
터미널이나 명령 프롬프트에서"pip install ultralytics" 명령을 실행하여 설치할 수 있습니다. 주피터 노트북이나 Google Colab과 같은 대화형 환경에서 작업하는 경우 명령 앞에 느낌표를 추가하면 됩니다.
또한 설치 중 또는 내보내는 동안 문제가 발생하는 경우, Ultralytics 설명서 및 문제 해결 가이드는 문제를 해결하는 데 도움이 되는 훌륭한 리소스입니다.
Ultralytics 패키지가 설정되면 다음 단계는 YOLO11 모델을 로드하고 이를 OpenVINO와 호환되는 형식으로 변환하는 것입니다.
아래 예시에서는 사전 학습된 YOLO11 모델("yolo11n.pt")을 사용하고 있습니다. 내보내기 기능은 이 모델을 OpenVINO 형식으로 변환하는 데 사용됩니다. 이 코드를 실행하면 변환된 모델이 "yolo11n_openvino_model"이라는 새 디렉터리에 저장됩니다.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="openvino")
YOLO11 모델을 OpenVINO 형식으로 내보낸 후에는 두 가지 방법으로 추론을 실행할 수 있습니다: Ultralytics Python 패키지 또는 기본 OpenVINO 런타임을 사용합니다.
내보낸 YOLO11 모델은 아래 코드 스니펫에 표시된 것처럼 Ultralytics Python 패키지를 사용하여 쉽게 배포할 수 있습니다. 이 방법은 빠른 실험과 인텔 하드웨어에 대한 간소화된 배포에 이상적입니다.
또한 시스템에서 사용 가능한 인텔 하드웨어에 따라 "intel:cpu", "intel:gpu" 또는 "intel:npu"와 같이 추론에 사용할 장치를 지정할 수도 있습니다.
ov_model = YOLO("yolo11n_openvino_model/")
results = ov_model("https://ultralytics.com/images/bus.jpg", device="intel:gpu")
위 코드를 실행하면 출력 이미지가 "runs/detect/predict" 디렉터리에 저장됩니다.
특히 프로덕션 환경에서 추론을 실행하는 사용자 정의 가능한 방법을 찾고 있다면 OpenVINO 런타임을 통해 모델 실행 방식을 더 잘 제어할 수 있습니다. 비동기 실행(여러 추론 요청을 병렬로 실행) 및 로드 밸런싱(추론 워크로드를 인텔 하드웨어에 효율적으로 분산)과 같은 고급 기능을 지원합니다.
네이티브 런타임을 사용하려면 내보낸 모델 파일, 즉 네트워크 아키텍처를 정의하는 .xml 파일과 모델의 학습된 가중치를 저장하는 .bin 파일이 필요합니다. 애플리케이션에 따라 입력 크기나 전처리 단계와 같은 추가 매개변수를 구성할 수도 있습니다.
일반적인 배포 흐름에는 OpenVINO 코어 초기화, 대상 장치에 대한 모델 로드 및 컴파일, 입력 준비, 추론 실행이 포함됩니다. 자세한 예제 및 단계별 지침은 공식 Ultralytics OpenVINO 설명서를 참조하세요.
Ultralytics 통합을 살펴보는 동안, Ultralytics Python 패키지가 YOLO11 모델을 TorchScript, CoreML, TensorRT 및 ONNX와 같은 다양한 형식으로 내보낼 수 있도록 지원한다는 것을 알게 될 것입니다. 그렇다면 왜 OpenVINO 통합을 선택해야 할까요?
다음은 OpenVINO 내보내기 형식이 인텔 하드웨어에 모델을 배포하는 데 적합한 몇 가지 이유입니다:
또한 OpenVINO™ 모델 허브에서 다양한 인텔® 플랫폼에 대한 YOLO11 모델의 성능 벤치마크를 평가할 수 있습니다. OpenVINO 모델 허브는 개발자가 인텔 하드웨어에서 AI 모델을 평가하고 인텔 CPU, 내장 GPU, NPU 및 외장 그래픽 전반에서 OpenVINO의 성능 이점을 발견할 수 있는 리소스입니다.
OpenVINO 통합의 도움으로 실제 상황에서 인텔 하드웨어에 YOLO11 모델을 배포하는 것이 훨씬 간단해졌습니다.
스마트 리테일의 좋은 예로, YOLO11은 실시간으로 빈 진열대를 감지하고, 어떤 제품이 부족한지 추적하며, 고객이 매장을 어떻게 이동하는지 분석하는 데 도움을 줄 수 있습니다. 이를 통해 리테일러는 재고 관리를 개선하고 매장 레이아웃을 최적화하여 고객 참여도를 높일 수 있습니다.
마찬가지로 스마트 시티에서는 차량 수를 세고, 보행자를 추적하고, 실시간으로 신호 위반을 감지하여 교통량을 모니터링하는 데 YOLO11을 사용할 수 있습니다. 이러한 인사이트는 교통 흐름 최적화를 지원하고 도로 안전을 개선하며 자동화된 단속 시스템을 지원할 수 있습니다.
또 다른 흥미로운 사용 사례는 산업 검사로, 생산 라인에 YOLO11을 배치하여 누락된 부품, 정렬 불량 또는 표면 손상과 같은 시각적 결함을 자동으로 감지할 수 있습니다. 이를 통해 효율성을 높이고 비용을 절감하며 제품 품질을 개선할 수 있습니다.
OpenVINO를 사용하여 YOLO11 모델을 배포할 때 최상의 결과를 얻기 위해 염두에 두어야 할 몇 가지 중요한 사항이 있습니다:
Ultralytics YOLO11을 OpenVINO 형식으로 내보내면 인텔 하드웨어에서 빠르고 효율적인 Vision AI 모델을 쉽게 실행할 수 있습니다. 코드를 다시 학습하거나 변경할 필요 없이 CPU, GPU, NPU에 배포할 수 있습니다. 이는 간단하고 확장성을 유지하면서 성능을 향상시킬 수 있는 좋은 방법입니다.
Ultralytics Python 패키지에 내장된 지원을 통해 OpenVINO로 추론을 내보내고 실행하는 것은 매우 간단합니다. 몇 단계만 거치면 모델을 최적화하고 다양한 인텔 플랫폼에서 실행할 수 있습니다. 스마트 리테일, 교통 모니터링, 산업 검사 등 어떤 작업을 하든 이 워크플로를 사용하면 개발에서 배포까지 빠르고 자신 있게 진행할 수 있습니다.
YOLO 커뮤니티에 가입하고 Ultralytics가 지원하는 영향력 있는 통합에 대해 자세히 알아보려면 Ultralytics GitHub 리포지토리를 확인하세요. 또한, 지금 바로 컴퓨터 비전을 시작하려면 Ultralytics 라이선스 옵션을 살펴보세요!
예정된 웨비나에 등록하여 Ultralytics × OpenVINO 통합이 실제로 작동하는 모습을 확인하고, OpenVINO 웹사이트를 방문하여 대규모로 AI를 최적화하고 배포하는 도구를 살펴보세요.