콘텐츠로 건너뛰기

Intel OpenVINO 내보내기

OpenVINO 에코시스템

이 가이드에서는 YOLOv8 모델로 내보내는 방법을 다룹니다. OpenVINO 형식으로 내보내는 방법을 다루며, 최대 3배 CPU 속도를 높이고 YOLO 추론을 가속화하는 방법과 Intel GPUNPU 하드웨어에 대해 설명합니다.

OpenVINO, short for Open Visual Inference & Neural Network Optimization toolkit, is a comprehensive toolkit for optimizing and deploying AI inference models. Even though the name contains Visual, OpenVINO also supports various additional tasks including language, audio, time series, etc.



Watch: 추론을 위해 Ultralytics YOLOv8 모델을 내보내고 최적화하는 방법 OpenVINO.

사용 예

YOLOv8n 모델을 OpenVINO 형식으로 내보내고 내보낸 모델로 추론을 실행합니다.

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolov8n_openvino_model/'

# Load the exported OpenVINO model
ov_model = YOLO("yolov8n_openvino_model/")

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

인수

가치설명
format'openvino'형식으로 내보낼 수 있습니다.
imgsz640이미지 크기를 스칼라 또는 (h, w) 목록(예: (640, 480))으로 지정합니다.
halfFalseFP16 양자화
int8FalseINT8 양자화
batch1batch size for inference
dynamicFalse동적 입력 크기 허용

다음과 같은 이점이 있습니다. OpenVINO

  1. 성능: OpenVINO 는 Intel CPU, 통합형 및 개별형 GPU, FPGA의 성능을 활용하여 고성능 추론을 제공합니다.
  2. 이기종 실행 지원: OpenVINO 은 한 번 작성하여 지원되는 모든 Intel 하드웨어(CPU, GPU, FPGA, VPU 등)에 배포할 수 있는 API를 제공합니다.
  3. Model Optimizer: OpenVINO provides a Model Optimizer that imports, converts, and optimizes models from popular deep learning frameworks such as PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle, and Caffe.
  4. 사용 편의성: 툴킷에는 툴킷의 다양한 측면을 알려주는 80개 이상의 튜토리얼 노트북 ( YOLOv8 최적화 포함)이 포함되어 있습니다.

OpenVINO 내보내기 구조

모델을 OpenVINO 형식으로 내보내면 다음이 포함된 디렉터리가 생성됩니다:

  1. XML 파일입니다: 네트워크 토폴로지를 설명합니다.
  2. BIN 파일: weights and biases 바이너리 데이터를 포함합니다.
  3. 매핑 파일: 원본 모델 출력 텐서를 OpenVINO tensor 이름으로 매핑합니다.

이러한 파일을 사용하여 OpenVINO 추론 엔진으로 추론을 실행할 수 있습니다.

배포에서 OpenVINO 내보내기 사용

OpenVINO 파일이 있으면 OpenVINO 런타임을 사용하여 모델을 실행할 수 있습니다. 런타임은 지원되는 모든 Intel 하드웨어에서 추론할 수 있는 통합 API를 제공합니다. 또한 Intel 하드웨어에서의 로드 밸런싱 및 비동기 실행과 같은 고급 기능도 제공합니다. 추론 실행에 대한 자세한 내용은 OpenVINO 런타임을 사용한 추론 가이드를 참조하세요.

런타임에서 모델을 올바르게 설정하고 사용하려면 XML 및 BIN 파일은 물론 입력 크기, 정규화를 위한 배율 등 애플리케이션별 설정이 필요하다는 점을 기억하세요.

배포 애플리케이션에서는 일반적으로 다음 단계를 수행합니다:

  1. 다음을 생성하여 OpenVINO 초기화 core = Core().
  2. 를 사용하여 모델을 로드합니다. core.read_model() 메서드를 사용합니다.
  3. 다음을 사용하여 모델을 컴파일합니다. core.compile_model() 함수입니다.
  4. 입력(이미지, 텍스트, 오디오 등)을 준비합니다.
  5. 다음을 사용하여 추론을 실행합니다. compiled_model(input_data).

자세한 단계와 코드 스니펫은 OpenVINO 문서 또는 API 튜토리얼을 참조하세요.

OpenVINO YOLOv8 벤치마크

YOLOv8 benchmarks below were run by the Ultralytics team on 4 different model formats measuring speed and accuracy: PyTorch, TorchScript, ONNX and OpenVINO. Benchmarks were run on Intel Flex and Arc GPUs, and on Intel Xeon CPUs at FP32 precision (with the half=False 인수).

참고

아래 벤치마킹 결과는 참고용이며 시스템의 정확한 하드웨어 및 소프트웨어 구성과 벤치마크 실행 시점의 시스템 현재 워크로드에 따라 달라질 수 있습니다.

모든 벤치마크는 다음에서 실행됩니다. openvino Python 패키지 버전 2023.0.1.

Intel Flex GPU

인텔® 데이터 센터 GPU 플렉스 시리즈는 지능형 비주얼 클라우드를 위해 설계된 다목적의 강력한 솔루션입니다. GPU 미디어 스트리밍, 클라우드 게임, AI 시각적 추론, 가상 데스크톱 인프라 워크로드 등 다양한 워크로드를 지원합니다. 개방형 아키텍처와 AV1 인코드에 대한 기본 지원으로 고성능, 크로스 아키텍처 애플리케이션을 위한 표준 기반 소프트웨어 스택을 제공하는 것이 특징입니다. Flex 시리즈( GPU )는 집적도와 품질에 최적화되어 높은 안정성, 가용성 및 확장성을 제공합니다.

아래 벤치마크는 인텔® 데이터 센터 GPU Flex 170에서 FP32 정밀도로 실행되었습니다.

Flex GPU 벤치마크
모델형식상태크기(MB)mAP50-95(B)추론 시간(ms/im)
YOLOv8nPyTorch6.20.370921.79
YOLOv8nTorchScript12.40.370423.24
YOLOv8nONNX12.20.370437.22
YOLOv8nOpenVINO12.30.37033.29
YOLOv8sPyTorch21.50.447131.89
YOLOv8sTorchScript42.90.447232.71
YOLOv8sONNX42.80.447243.42
YOLOv8sOpenVINO42.90.44703.92
YOLOv8mPyTorch49.70.501350.75
YOLOv8mTorchScript99.20.499947.90
YOLOv8mONNX99.00.499963.16
YOLOv8mOpenVINO49.80.49977.11
YOLOv8lPyTorch83.70.529377.45
YOLOv8lTorchScript167.20.526885.71
YOLOv8lONNX166.80.526888.94
YOLOv8lOpenVINO167.00.52649.37
YOLOv8xPyTorch130.50.5404100.09
YOLOv8xTorchScript260.70.5371114.64
YOLOv8xONNX260.40.5371110.32
YOLOv8xOpenVINO260.60.536715.02

이 표는 네 가지 형식(PyTorch, TorchScript, ONNX, OpenVINO)의 다섯 가지 모델(YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x)에 대한 벤치마크 결과를 나타내며, 각 조합의 상태, 크기, mAP50-95(B) 지표 및 추론 시간을 제공합니다.

Intel Arc GPU

Intel® Arc™ represents Intel's foray into the dedicated GPU market. The Arc™ series, designed to compete with leading GPU manufacturers like AMD and NVIDIA, caters to both the laptop and desktop markets. The series includes mobile versions for compact devices like laptops, and larger, more powerful versions for desktop computers.

Arc™ 시리즈는 세 가지 카테고리로 나뉩니다: Arc™ 3, Arc™ 5, Arc™ 7이며, 각 숫자는 성능 수준을 나타냅니다. 각 카테고리에는 여러 모델이 포함되며 GPU 모델 이름의 'M'은 모바일 통합형 모델을 의미합니다.

초기 리뷰에서 Arc™ 시리즈, 특히 통합형 A770M GPU 은 인상적인 그래픽 성능으로 호평을 받고 있습니다. Arc™ 시리즈의 출시 여부는 지역에 따라 다르며, 곧 추가 모델이 출시될 예정입니다. 인텔® 아크™ GPU는 게임부터 콘텐츠 제작에 이르기까지 다양한 컴퓨팅 요구사항을 충족하는 고성능 솔루션을 제공합니다.

아래 벤치마크는 인텔® Arc 770 GPU 에서 FP32 정밀도로 실행되었습니다.

Arc GPU 벤치마크
모델형식상태크기(MB)metrics/mAP50-95(B)추론 시간(ms/im)
YOLOv8nPyTorch6.20.370988.79
YOLOv8nTorchScript12.40.3704102.66
YOLOv8nONNX12.20.370457.98
YOLOv8nOpenVINO12.30.37038.52
YOLOv8sPyTorch21.50.4471189.83
YOLOv8sTorchScript42.90.4472227.58
YOLOv8sONNX42.70.4472142.03
YOLOv8sOpenVINO42.90.44699.19
YOLOv8mPyTorch49.70.5013411.64
YOLOv8mTorchScript99.20.4999517.12
YOLOv8mONNX98.90.4999298.68
YOLOv8mOpenVINO99.10.499612.55
YOLOv8lPyTorch83.70.5293725.73
YOLOv8lTorchScript167.10.5268892.83
YOLOv8lONNX166.80.5268576.11
YOLOv8lOpenVINO167.00.526217.62
YOLOv8xPyTorch130.50.5404988.92
YOLOv8xTorchScript260.70.53711186.42
YOLOv8xONNX260.40.5371768.90
YOLOv8xOpenVINO260.60.536719

Intel 제온 CPU

The Intel® Xeon® CPU is a high-performance, server-grade processor designed for complex and demanding workloads. From high-end cloud computing and virtualization to artificial intelligence and machine learning applications, Xeon® CPUs provide the power, reliability, and flexibility required for today's data centers.

특히, 제온® CPU는 높은 컴퓨팅 밀도와 확장성을 제공하므로 중소기업과 대기업 모두에 이상적입니다. 인텔® 제온® CPU를 선택함으로써 조직은 가장 까다로운 컴퓨팅 작업을 자신 있게 처리하고 혁신을 촉진하는 동시에 비용 효율성과 운영 효율성을 유지할 수 있습니다.

아래 벤치마크는 4세대 인텔® 제온® 스케일러블 CPU 에서 FP32 정밀도로 실행되었습니다.

제온 CPU 벤치마크
모델형식상태크기(MB)metrics/mAP50-95(B)추론 시간(ms/im)
YOLOv8nPyTorch6.20.370924.36
YOLOv8nTorchScript12.40.370423.93
YOLOv8nONNX12.20.370439.86
YOLOv8nOpenVINO12.30.370411.34
YOLOv8sPyTorch21.50.447133.77
YOLOv8sTorchScript42.90.447234.84
YOLOv8sONNX42.80.447243.23
YOLOv8sOpenVINO42.90.447113.86
YOLOv8mPyTorch49.70.501353.91
YOLOv8mTorchScript99.20.499953.51
YOLOv8mONNX99.00.499964.16
YOLOv8mOpenVINO99.10.499628.79
YOLOv8lPyTorch83.70.529375.78
YOLOv8lTorchScript167.20.526879.13
YOLOv8lONNX166.80.526888.45
YOLOv8lOpenVINO167.00.526356.23
YOLOv8xPyTorch130.50.540496.60
YOLOv8xTorchScript260.70.5371114.28
YOLOv8xONNX260.40.5371111.02
YOLOv8xOpenVINO260.60.537183.28

Intel 핵심 CPU

인텔® 코어® 시리즈는 Intel 의 고성능 프로세서 제품군입니다. 라인업에는 코어 i3(보급형), 코어 i5(중급형), 코어 i7(고급형) 및 코어 i9(극한의 성능)이 포함됩니다. 각 시리즈는 일상적인 작업부터 까다로운 전문 워크로드까지 다양한 컴퓨팅 요구 사항과 예산을 충족합니다. 새로운 세대가 나올 때마다 성능, 에너지 효율성 및 기능이 개선됩니다.

아래 벤치마크는 13세대 인텔® 코어® i7-13700H CPU 에서 FP32 정밀도로 실행되었습니다.

핵심 CPU 벤치마크
모델형식상태크기(MB)metrics/mAP50-95(B)추론 시간(ms/im)
YOLOv8nPyTorch6.20.4478104.61
YOLOv8nTorchScript12.40.4525112.39
YOLOv8nONNX12.20.452528.02
YOLOv8nOpenVINO12.30.450423.53
YOLOv8sPyTorch21.50.5885194.83
YOLOv8sTorchScript43.00.5962202.01
YOLOv8sONNX42.80.596265.74
YOLOv8sOpenVINO42.90.596638.66
YOLOv8mPyTorch49.70.6101355.23
YOLOv8mTorchScript99.20.6120424.78
YOLOv8mONNX99.00.6120173.39
YOLOv8mOpenVINO99.10.609169.80
YOLOv8lPyTorch83.70.6591593.00
YOLOv8lTorchScript167.20.6580697.54
YOLOv8lONNX166.80.6580342.15
YOLOv8lOpenVINO167.00.0708117.69
YOLOv8xPyTorch130.50.6651804.65
YOLOv8xTorchScript260.80.6650921.46
YOLOv8xONNX260.40.6650526.66
YOLOv8xOpenVINO260.60.6619158.73

Intel Ultra 7 155H Meteor Lake CPU

The Intel® Ultra™ 7 155H represents a new benchmark in high-performance computing, designed to cater to the most demanding users, from gamers to content creators. The Ultra™ 7 155H is not just a CPU; it integrates a powerful GPU and an advanced NPU (Neural Processing Unit) within a single chip, offering a comprehensive solution for diverse computing needs.

This hybrid architecture allows the Ultra™ 7 155H to excel in both traditional CPU tasks and GPU-accelerated workloads, while the NPU enhances AI-driven processes, enabling faster and more efficient machine learning operations. This makes the Ultra™ 7 155H a versatile choice for applications requiring high-performance graphics, complex computations, and AI inference.

The Ultra™ 7 series includes multiple models, each offering different levels of performance, with the 'H' designation indicating a high-power variant suitable for laptops and compact devices. Early benchmarks have highlighted the exceptional performance of the Ultra™ 7 155H, particularly in multitasking environments, where the combined power of the CPU, GPU, and NPU leads to remarkable efficiency and speed.

As part of Intel's commitment to cutting-edge technology, the Ultra™ 7 155H is designed to meet the needs of future computing, with more models expected to be released. The availability of the Ultra™ 7 155H varies by region, and it continues to receive praise for its integration of three powerful processing units in a single chip, setting new standards in computing performance.

Benchmarks below run on Intel® Ultra™ 7 155H at FP32 and INT8 precision.

벤치마크

모델형식정밀도상태크기(MB)metrics/mAP50-95(B)추론 시간(ms/im)
YOLOv8nPyTorchFP326.20.638135.95
YOLOv8nOpenVINOFP3212.30.61178.32
YOLOv8nOpenVINOINT83.60.57919.88
YOLOv8sPyTorchFP3221.50.696779.72
YOLOv8sOpenVINOFP3242.90.713613.37
YOLOv8sOpenVINOINT811.20.70869.96
YOLOv8mPyTorchFP3249.70.737202.05
YOLOv8mOpenVINOFP3299.10.733128.07
YOLOv8mOpenVINOINT825.50.725921.11
YOLOv8lPyTorchFP3283.70.7769393.37
YOLOv8lOpenVINOFP32167.00.052.73
YOLOv8lOpenVINOINT842.60.786128.11
YOLOv8xPyTorchFP32130.50.7759610.71
YOLOv8xOpenVINOFP32260.60.74873.51
YOLOv8xOpenVINOINT866.00.808551.71

Intel Core Ultra GPU benchmarks
모델형식정밀도상태크기(MB)metrics/mAP50-95(B)추론 시간(ms/im)
YOLOv8nPyTorchFP326.20.638134.69
YOLOv8nOpenVINOFP3212.30.609239.06
YOLOv8nOpenVINOINT83.60.596818.37
YOLOv8sPyTorchFP3221.50.696779.9
YOLOv8sOpenVINOFP3242.90.713682.6
YOLOv8sOpenVINOINT811.20.708329.51
YOLOv8mPyTorchFP3249.70.737202.43
YOLOv8mOpenVINOFP3299.10.728181.27
YOLOv8mOpenVINOINT825.50.728551.25
YOLOv8lPyTorchFP3283.70.7769385.87
YOLOv8lOpenVINOFP32167.00.7551347.75
YOLOv8lOpenVINOINT842.60.767591.66
YOLOv8xPyTorchFP32130.50.7759603.63
YOLOv8xOpenVINOFP32260.60.7479516.39
YOLOv8xOpenVINOINT866.00.8119142.42

Intel Core Ultra CPU benchmarks
모델형식정밀도상태크기(MB)metrics/mAP50-95(B)추론 시간(ms/im)
YOLOv8nPyTorchFP326.20.638136.98
YOLOv8nOpenVINOFP3212.30.610316.68
YOLOv8nOpenVINOINT83.60.594114.6
YOLOv8sPyTorchFP3221.50.696779.76
YOLOv8sOpenVINOFP3242.90.714432.89
YOLOv8sOpenVINOINT811.20.706226.13
YOLOv8mPyTorchFP3249.70.737201.44
YOLOv8mOpenVINOFP3299.10.728454.4
YOLOv8mOpenVINOINT825.50.726830.76
YOLOv8lPyTorchFP3283.70.7769385.46
YOLOv8lOpenVINOFP32167.00.753980.1
YOLOv8lOpenVINOINT842.60.750852.25
YOLOv8xPyTorchFP32130.50.7759609.4
YOLOv8xOpenVINOFP32260.60.7637104.79
YOLOv8xOpenVINOINT866.00.807764.96

Intel Core Ultra NPU benchmarks

결과 재현

모든 내보내기 형식에서 위의 Ultralytics 벤치마크를 재현하려면 다음 코드를 실행하세요:

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
results = model.benchmarks(data="coco8.yaml")
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

벤치마킹 결과는 시스템의 정확한 하드웨어 및 소프트웨어 구성과 벤치마크를 실행할 당시 시스템의 현재 작업량에 따라 달라질 수 있다는 점에 유의하세요. 가장 신뢰할 수 있는 결과를 얻으려면 많은 수의 이미지가 포함된 데이터 세트를 사용하세요. data='coco128.yaml' (128 val images), ordata='coco.yaml'` (5000개 val 이미지).

결론

벤치마킹 결과는 YOLOv8 모델을 OpenVINO 형식으로 내보낼 때의 이점을 명확하게 보여줍니다. 다양한 모델과 하드웨어 플랫폼에서 OpenVINO 형식은 비슷한 정확도를 유지하면서 추론 속도 측면에서 다른 형식보다 일관되게 우수한 성능을 보였습니다.

인텔® 데이터 센터 GPU 플렉스 시리즈의 경우, OpenVINO 형식은 원래 PyTorch 형식보다 거의 10배 빠른 추론 속도를 제공할 수 있었습니다. 제온 CPU 에서는 OpenVINO 형식이 PyTorch 형식보다 두 배 더 빨랐습니다. 모델의 정확도는 서로 다른 형식에서 거의 동일하게 유지되었습니다.

이 벤치마크는 딥러닝 모델을 배포하는 도구로서 OpenVINO 의 효율성을 강조합니다. 개발자는 모델을 OpenVINO 형식으로 변환함으로써 상당한 성능 향상을 달성할 수 있으며, 실제 애플리케이션에 이러한 모델을 더 쉽게 배포할 수 있습니다.

OpenVINO 사용에 대한 자세한 정보와 지침은 공식 OpenVINO 문서를 참조하세요.

자주 묻는 질문

YOLOv8 모델을 OpenVINO 형식으로 내보내려면 어떻게 하나요?

YOLOv8 모델을 OpenVINO 형식으로 내보내면 CPU 속도가 크게 향상되고 GPU 및 NPU 가속을 Intel 하드웨어에서 활성화할 수 있습니다. 내보내려면 아래 그림과 같이 Python 또는 CLI 을 사용하면 됩니다:

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolov8n_openvino_model/'
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

자세한 내용은 내보내기 형식 문서를 참조하세요.

YOLOv8 모델과 함께 OpenVINO 을 사용하면 어떤 이점이 있나요?

Intel 의 OpenVINO 툴킷을 YOLOv8 모델과 함께 사용하면 몇 가지 이점이 있습니다:

  1. 성능: CPU 추론에서 최대 3배의 속도 향상을 달성하고 Intel GPU 및 NPU를 가속에 활용하세요.
  2. 모델 옵티마이저: PyTorch , TensorFlow, ONNX 과 같은 인기 있는 프레임워크에서 모델을 변환, 최적화 및 실행합니다.
  3. 사용 편의성: 사용자가 시작하는 데 도움이 되는 80개 이상의 튜토리얼 노트북이 제공되며, 여기에는 YOLOv8 용 노트북도 포함되어 있습니다.
  4. 이기종 실행: 통합 API를 사용하여 다양한 Intel 하드웨어에 모델을 배포하세요.

자세한 성능 비교는 벤치마크 섹션에서 확인하세요.

OpenVINO 으로 내보낸 YOLOv8 모델을 사용하여 추론을 실행하려면 어떻게 해야 하나요?

YOLOv8 모델을 OpenVINO 형식으로 내보낸 후 Python 또는 CLI 을 사용하여 추론을 실행할 수 있습니다:

from ultralytics import YOLO

# Load the exported OpenVINO model
ov_model = YOLO("yolov8n_openvino_model/")

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

자세한 내용은 예측 모드 설명서를 참조하세요.

OpenVINO 내보내기에 다른 모델 대신 Ultralytics YOLOv8 을 선택해야 하는 이유는 무엇인가요?

Ultralytics YOLOv8 는 높은 정확도와 속도로 실시간 물체 감지에 최적화되어 있습니다. 특히 OpenVINO 와 결합하면 YOLOv8 을 제공합니다:

  • Intel CPU에서 최대 3배 속도 향상
  • Intel GPU 및 NPU에서 원활한 배포
  • 다양한 내보내기 형식에서 일관되고 비교 가능한 정확도 제공

자세한 성능 분석은 다양한 하드웨어에 대한 자세한 벤치마크(YOLOv8 )를 확인하세요.

PyTorch, ONNX, OpenVINO 과 같은 다른 형식의 YOLOv8 모델을 벤치마킹할 수 있나요?

예, PyTorch, TorchScript, ONNX, OpenVINO 등 다양한 형식의 YOLOv8 모델을 벤치마킹할 수 있습니다. 다음 코드 스니펫을 사용하여 선택한 데이터 세트에서 벤치마크를 실행하세요:

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and [accuracy](https://www.ultralytics.com/glossary/accuracy) on the COCO8 dataset for all export formats
results = model.benchmarks(data="coco8.yaml")
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

자세한 벤치마크 결과는 벤치마크 섹션과 내보내기 형식 문서를 참조하세요.

📅 Created 11 months ago ✏️ Updated 25 days ago

댓글