的 OpenVINO 模型,核心思路是用 Intel 的推理引擎替代 ONNX Runtime)
OpenVINO 的特长在 C# WinForm 中部署 YOLOv8以及更新的 YOLO11的 OpenVINO 模型核心思路是用 Intel 的推理引擎替代 ONNX Runtime在 Intel 硬件CPU/核显上获得更优的推理速度。 方案一YoloSharpOnnx OpenVINO推荐代码最简YoloSharpOnnx这个 NuGet 包直接内置了ExecutionProviderOpenVINO让你能用几行代码切换到 OpenVINO 推理。它比手写 OpenVINO C# API 封装省事得多。安装 NuGet 包dotnetaddpackage YoloSharpOnnx dotnetaddpackage OpenCvSharp4.runtime.win dotnetaddpackage Intel.ML.OnnxRuntime.OpenVinoC# 核心调用替换你代码中的Yolov8ManagerusingYoloSharp;usingOpenCvSharp;// 使用 OpenVINO 执行提供器指定设备类型CPU 或 NPUusingYoloSharpyolonewYoloSharp(newExecutionProviderOpenVINO(yolov8n.onnx,IntelDeviceType.CPU));usingMatimageCv2.ImRead(test.jpg);ListDetectionResultresultsyolo.RunDetect(image);yolo.DrawDetections(image,results);Cv2.ImWrite(result.jpg,image);Console.WriteLine(results.Summary());这套写法可以直接嵌入你现有的 WinForm 事件处理中RunDetect的输入输出与之前一致替换的只是底层执行引擎。 方案二OpenVINO C# API 原生调用控制力最强如果追求极致控制可以使用guojin-yan开发的OpenVINO C# API。这是一个专门为 .NET 封装的 OpenVINO 接口库提供了完整的原生调用能力。NuGet 安装dotnetaddpackage OpenVINO.CSharp.API dotnetaddpackage OpenVINO.runtime.win dotnetaddpackage OpenVINO.CSharp.API.Extensions.OpenCvSharpC# 推理流程参考 YOLO26 部署案例usingOpenVinoSharp;usingOpenCvSharp;CorecorenewCore();CompiledModelcompiledModelcore.compile_model(yolov8n_openvino_model/yolov8n.xml,CPU);InferRequestinferRequestcompiledModel.create_infer_request();// 图像预处理BGR → RGB → Letterbox → 归一化 → NCHWMatimageCv2.ImRead(test.jpg);MatrgbMatimage.CvtColor(ColorConversionCodes.BGR2RGB);rgbMatResize.letterbox_img(rgbMat,640,outvarscales);MatnormalizedMatnewMat();rgbMat.ConvertTo(normalizedMat,MatType.CV_32FC3,1.0/255.0f);// 转换为 float[] 并设置输入张量float[]dataPermute.run(normalizedMat);TensorinputTensorinferRequest.get_input_tensor();inputTensor.set_data(data);// 推理inferRequest.infer();varoutputTensorinferRequest.get_output_tensor();varoutputoutputTensor.get_datafloat((int)outputTensor.get_size());// 后处理YOLOv8 输出 [1, 84, 8400] 或 [1, 8400, 84]// ... 解析输出应用 NMS绘制结果 ... 性能参考异步推理是关键OpenVINO 在 Intel 集成显卡上的表现非常突出。根据实测数据异步推理接口相比同步模式有数倍提升推理模式预处理推理后处理总耗时FPS同步11.97 ms34.68 ms1.58 ms48.23 ms20.73异步14.26 ms0.01 ms1.22 ms15.49 ms64.56异步模式下CPU 在等待推理结果时可以进行下一帧的预处理从而将 GPU/CPU 利用率最大化。在 Intel Iris Xe 核显上YOLOv8s 可以跑到60 FPS完全满足工业实时检测需求。⚠️ 与你现有代码的适配建议你现在的代码中Form1_Load里加载的是yolov8n.xmlOpenVINO IR 格式的模型描述文件。如果用YoloSharpOnnx需要把模型换成ONNX 格式因为该库走的是 ONNX Runtime 的 OpenVINO EP 路线。而如果用OpenVINO C# API则可以继续使用.xml.bin的 IR 模型与你现有的LoadWeights逻辑更契合。对于button3_Click中的摄像头循环建议将推理放在Task.Run中UI 更新用BeginInvoke回主线程避免界面卡死。你现有的 FPS 统计逻辑可以保留用Stopwatch测量的异步推理时间会大幅下降。