【OpenVINO™】在 Intel Ultra AI PC 设备上使用 OpenVINO™ C# API本地部署YOLOv11与YOLOv12

该文章已生成可运行项目,


​ 最新的英特尔® 酷睿™ Ultra 处理器(第二代)让我们能够在台式机、移动设备和边缘中实现大多数 AI 体验,将 AI 加速提升到新水平,在 AI 时代为边缘计算提供动力。英特尔® 酷睿™ Ultra 处理器提供了一套全面的专为 AI 定制的集成计算引擎,包括 CPU、GPU 和 NPU,提供高达 99 总平台 TOPS。近期,YOLO系列模型发布了YOLOv12, 对 YOLO 框架进行了全面增强,特别注重集成注意力机制,同时又不牺牲 YOLO 模型所期望的实时处理能力,是 YOLO 系列的一次进化,突破了人工视觉的极限。本文中,我们将使用英特尔® 酷睿™ Ultra 处理器AI PC设备,结合OpenVINO™ C# API 使用最新发布的OpenVINO™ 2025.0 部署YOLOv11 和 YOLOv12 目标检测模型,并在AIPC设备上,进行速度测试:

  OpenVINO™ C# API项目链接:

https://github.com/guojin-yan/OpenVINO-CSharp-API.git

  本文使用的项目源码链接为:

https://github.com/guojin-yan/YoloDeployCsharp/blob/yolov1/demo/yolo_openvino_demo/

1. 前言

1.1 英特尔® 酷睿™ Ultra 处理器(第二代)

全新英特尔酷睿Ultra 200V系列处理器对比上代Meteor Lake,升级了模块化结构、封装工艺,采用全新性能核与能效核、英特尔硬件线程调度器、Xe2微架构锐炫GPU、第四代NPU…由此也带来了CPU性能提升18%,GPU性能提升30%,整体功耗降低50%,以及120TOPS平台AI算力。

酷睿Ultra 200V系列处理器共有9款SKU,包括1款酷睿Ultra 9、4款酷睿Ultra 7以及4款酷睿Ultra 5,全系8核心8线程(4个性能核与4个能效核),具体规格如下。

58e2c01af4412ce82c359088a11434d

作为新一代旗舰,酷睿Ultra 9 288V性能核频率最高5.1GHz、能效核频率最高3.7GHz,拥有12MB三级缓存。GPU方面,集成锐炫140V显卡,拥有8个全新Xe2核心、8个光线追踪单元,频率最高2.05GHz,可以实现67TOPSAI算力。而NPU集成6个第四代神经计算引擎,AI算力提升至48TOPS。

图片

在当前项目测试,使用的是Intel® Core™ Ultra 9 288V设备,处理器信息如下表所示:

设备 规格 参数
CPU 名称 Intel® Core™ Ultra 9 288V
内核数 8(4个性能核+4个低功耗高效内核)
总线程数 8
最大睿频频率 5.1 GHz
缓存 12 MB Intel® Smart Cache
支持的人工智能软件框 OpenVINO™, WindowsML, DirectML, ONNX RT, WebNN
GPU 名称 Intel® Arc™ Graphics 140V
显卡最大动态频率 2.05 GHz
GPU 峰值 TOPS(Int8) 67 TOPS
支持的人工智能软件框架 OpenVINO™, WindowsML, DirectML, ONNX RT, WebGPU, WebNN
NPU 名称 Intel® AI Boost
NPU 峰值 TOPS(Int8) 48 TOPS
支持的人工智能软件框架 OpenVINO™, WindowsML, DirectML, ONNX RT, WebNN

1.2 OpenVINO™ C# API

  英特尔发行版 OpenVINO™ 工具套件基于 oneAPI 而开发,可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,适用于从边缘到云的各种英特尔平台上,帮助用户更快地将更准确的真实世界结果部署到生产系统中。通过简化的开发工作流程,OpenVINO™ 可赋能开发者在现实世界中部署高性能应用程序和算法。

  OpenVINO™ 2025.0版本在生成式AI和硬件支持方面实现了多项重大突破。生成式AI推理速度大幅提升,特别是Whisper语音模型和图像修复技术的加速,让AI应用的实时性和效率得到显著改善。同时,新增支持Qwen 2.5和DeepSeek-R1等中文大模型,优化了长文本处理和7B模型的推理吞吐量。在硬件方面,新一代Intel Core Ultra和Xeon处理器带来了更强的FP16推理能力,同时OpenVINO还推出了全球首个支持torch.compile的NPU后端,提升了异构计算能力。GPU优化和Windows Server原生支持也让硬件性能得到更大释放,边缘计算领域的优化使IoT设备能效大幅提高。

  OpenVINO™ C# API 是一个 OpenVINO™ 的 .Net wrapper,应用最新的 OpenVINO™ 库开发,通过 OpenVINO™ C API 实现 .Net 对 OpenVINO™ Runtime 调用,使用习惯与 OpenVINO™ C++ API 一致。OpenVINO™ C# API 由于是基于 OpenVINO™ 开发,所支持的平台与 OpenVINO™ 完全一致,具体信息可以参考 OpenVINO™。通过使用 OpenVINO™ C# API,可以在 .NET、.NET Framework等框架下使用 C# 语言实现深度学习模型在指定平台推理加速。

1.3 YOLOv11与YOLOv12

  YOLO系列目标检测模型自2016年提出以来,始终以"实时检测"为核心优势,通过端到端架构和网格化预测思想,在目标检测领域持续引领技术革新。从YOLOv1的7x7网格基础框架,到YOLOv8的骨干网络优化,再到YOLOv10的C3K2模块创新,该系列通过特征提取增强、后处理优化和计算效率提升,不断突破速度与精度的平衡极限 。

YOLOv11特色由Ultralytics公司开发,通过改进CSPNet主干网络和颈部架构,实现参数精简与精度提升的双重突破。其核心创新在于:

  • 增强型特征提取:采用跨阶段特征融合技术,在复杂场景中捕捉细微目标特征

  • 动态计算优化:通过自适应计算分配策略,在保持45ms推理速度的同时,mAP提升3.2%

  • 轻量化设计:相比YOLOv8减少18%参数量,更适合边缘设备部署

YOLOv12的开发人员通过其最新模型在开创性版本中树立了计算机视觉领域的新标准。YOLOv12 以其无与伦比的速度、准确性和多功能性而闻名,是 YOLO 系列的一次进化,突破了人工视觉的极限。YOLOv12 对 YOLO 框架进行了全面增强,特别注重集成注意力机制,同时又不牺牲 YOLO 模型所期望的实时处理能力。

  • 以注意力为中心的设计: YOLOv12 具有区域注意力模块,该模块通过分割特征图来保持效率,将计算复杂度降低一半,同时使用 FlashAttention 来缓解实时检测的内存带宽限制。

  • 分层结构:该模型采用残差高效层聚合网络(R-ELAN)来优化特征集成并减少梯度阻塞,并简化了最后阶段以实现更轻、更快的架构。

  • 架构增强:通过用 7x7 可分离卷积取代传统位置编码,YOLOv12 有效地保留了位置信息。自适应 MLP 比率可以更好地分配计算资源,在实时约束下支持多样化数据集。

  • 训练和优化:该模型使用 SGD 和自定义学习计划训练了 600 多个时期,实现了高精度。它采用 Mosaic 和 Mixup 等数据增强技术来提高泛化能力,从而提升了 YOLOv12 快速、准确检测物体的能力。

两代模型分别代表了YOLO系列在传统架构优化与新型注意力机制融合两个方向的最新突破,其中YOLOv12更开创性地将Transformer优势融入实时检测框架,标志着该系列进入"注意力增强"新阶段。

2. 模型获取

2.1 配置环境

  安装模型下载以及转换环境,此处使用Anaconda进行程序集管理,输入以下指令创建一个yolo环境:

conda create -n yolo python=3.10
conda activate yolo
pip install ultralytics

image-20250223221643442

2.2 下载并转换ONNX模型

  首先导出目标识别模型,此处以官方预训练模型为例,目前ultralytics已经集成了,依次输入以下指令即可:

yolo export model=yolo11s.pt format=onnx

image-20250223211846079

目前OpenVINO™支持直接调用ONNX模型,因此此处只导出ONNX模型即可,如需要导出OpenVINO™格式的模型,可以参考OpenVINO™官方文档。

3. Yolo 项目配置

3.1 项目创建与环境配置

  在Windows平台开发者可以使用Visual Studio平台开发程序,但无法跨平台实现,为了实现跨平台,此处采用dotnet指令进行项目的创建和配置。

  首先使用dotnet创建一个测试项目,在终端中输入一下指令:

dotnet new console --framework net8.0 --use-program-main -o yolo_sample

  此处以Windows平台为例安装项目依赖,首先是安装OpenVINO™ C# API项目依赖,在命令行中输入以下指令即可:

dotnet add package OpenVINO.CSharp.API
dotnet add package OpenVINO.runtime.win
dotnet add package OpenVINO.CSharp.API.Extensions
dotnet add package OpenVINO.CSharp.API.Extensions.OpenCvSharp

  关于在不同平台上搭建 OpenVINO™ C# API 开发环境请参考以下文章: 《在Windows上搭建OpenVINO™C#开发环境》《在Linux上搭建OpenVINO™C#开发环境》《在MacOS上搭建OpenVINO™C#开发环境》

接下来安装使用到的图像处理库 OpenCvSharp,在命令行中输入以下指令即可:

dotnet add package OpenCvSharp4
dotnet add package OpenCvSharp4.Extensions
dotnet add package OpenCvSharp4.runtime.win

  关于在其他平台上搭建 OpenCvSharp 开发环境请参考以下文章:《【OpenCV】在Linux上使用OpenCvSharp》《【OpenCV】在MacOS上使用OpenCvSharp》

添加完成项目依赖后,项目的配置文件如下所示:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="OpenCvSharp4" Version="4.10.0.20241108" />
    <PackageReference Include="OpenCvSharp4.Extensions" Version="4.10.0.20241108" />
    <PackageReference 
本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椒颜皮皮虾྅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值