基于 ONNX Runtime 的 C# 模型封装与推理实现
本文介绍如何在 Windows 窗体应用中集成 ONNX Runtime,加载自定义的 ONNX 模型并进行图像推理。ONNX (Open Neural Network Exchange) 是一个开放的机器学习模型格式,支持跨平台部署。通过 Microsoft 提供的 ONNX Runtime 库,开发者可以在 C# 环境中高效地执行模型推理。
环境准备
在开始之前,请确保已正确安装配置了 Visual Studio 2017 或更高版本以及 .NET Framework 开发环境。建议使用最新的稳定版 SDK。
项目创建
- 打开 Visual Studio,选择
文件->新建->项目。 - 选择
Windows 窗体应用 (.NET Framework)模板。 - 将项目名称命名为
ClassifyBear(或其他符合命名规范的名称)。
界面设计
在解决方案资源管理器中找到 Form1.cs,双击打开界面设计器。从工具箱中向 Form 中依次拖入控件并调整布局,最终效果应包含以下元素:
- Label 控件:位于左侧上方,内容修改为'输入要识别的图片地址:'。
- TextBox 控件:用于输入图片 URL 或本地路径,建议拉长以方便查看。
- Button 控件:内容修改为'识别',触发推理逻辑。
- Label 控件:用于显示识别后的结果文本。由于默认无边框,建议调大字体以便清晰阅读。
- PictureBox 控件:位于右侧,用于预览输入的图片。建议将
SizeMode属性更改为StretchImage,并将长宽设置为相同值(如 224x224),保持正方形形状,这与大多数视觉模型的输入要求一致。
添加模型文件到项目中
- 在解决方案资源管理器中,右键点击项目节点,选择
添加->现有项。 - 在弹出的对话框中,将文件类型过滤器改为
所有文件 (*.*)。 - 导航到模型所在目录,选择
.onnx模型文件(例如BearModel.onnx)并添加。 - 关键配置:选中刚添加的模型文件,在属性面板中将
生成操作属性改为内容,将复制到输出目录属性改为如果较新则复制。这确保了编译时模型文件会被复制到程序运行目录,避免运行时找不到文件。
集成 ONNX Runtime 库
微软开源的 ONNX Runtime 提供了 NuGet 包,可方便地集成到 Visual Studio 项目中。
- 在解决方案资源管理器中,右键点击
引用,选择管理 NuGet 程序包。 - 切换到
浏览选项卡,搜索Microsoft.ML.OnnxRuntime。 - 找到该包并点击安装。当前推荐版本通常为最新稳定版(示例中使用 0.4.0 作为参考,实际使用时请检查最新版本)。
- 架构设置:NuGet 发布的库通常支持 x64 及 x86 架构。建议使用 x64 以获得更好的性能。
- 右键点击解决方案,选择
配置管理器。 - 将活动解决方案平台切换为
x64。如果没有,在下拉框中选择新建,按提示创建 x64 平台。
- 右键点击解决方案,选择
处理输入并加载模型进行推理
在 上右键,选择 ,打开代码编辑窗口。


