☰
YOLO11 的工程落地遵循一个清晰的“**训练在 Python,推理在 C#**”分离模式
2026/10/7 6:58:54 网站建设 项目流程

YOLO11 的工程落地遵循一个清晰的“训练在 Python,推理在 C#”分离模式。它的安装与命令行使用集中在 Python 侧,而 C# 侧的集成核心是加载 Python 侧导出的 ONNX 模型。

🐍 Python 侧:安装与命令行使用

YOLO11 的安装非常简洁,官方推荐的方式是直接通过 pip 安装ultralytics包。

环境要求:Python >= 3.8,PyTorch >= 1.8。建议在虚拟环境中操作以避免依赖冲突。

安装命令:

pipinstallultralytics

如果网络较慢,可以使用国内镜像源加速:

pipinstallultralytics-ihttps://pypi.tuna.tsinghua.edu.cn/simple

命令行(CLI)使用:安装完成后,yolo命令即可直接使用,采用yolo TASK MODE的格式。

用途命令行示例
推理/预测yolo predict model=yolo11n.pt source='bus.jpg'
训练模型yolo train model=yolo11n.pt data=coco8.yaml epochs=100 imgsz=640
导出为 ONNXyolo export model=yolo11n.pt format=onnx

运行推理命令后,结果会保存在当前目录的runs/文件夹中。首次运行时会自动下载预训练的模型权重文件(如yolo11n.pt)。

💻 C# 侧:ONNX 模型加载与推理

C# 无法直接运行 PyTorch 的.pt文件,因此必须在 Python 侧先将训练好的模型导出为ONNX 格式,然后在 C# 中通过 ONNX Runtime 加载推理。

1. 导出 ONNX 模型(Python 侧)

fromultralyticsimportYOLO model=YOLO('path/to/best.pt')# 或 'yolo11n.pt'model.export(format='onnx')# 生成 best.onnx 或 yolo11n.onnx

2. C# 侧加载与推理(推荐使用封装库)
手动处理 ONNX 的预处理和后处理比较繁琐,推荐使用成熟的 NuGet 包。YoloSharp是一个高性能、内存复用、生产就绪的 C# YOLO 推理库,支持 YOLO11 的全任务类型(检测、分割、姿态、OBB 等)。

安装 NuGet 包:

dotnetaddpackage YoloSharp

C# 调用示例:

usingCompunet.YoloSharp;// 1. 加载 ONNX 模型usingvarpredictor=newYoloPredictor("path/to/model.onnx");// 2. 对图像进行目标检测varresult=predictor.Detect("path/to/image.jpg");// 3. 输出结果Console.WriteLine(result);// 打印检测到的所有目标摘要

如果你的工控机有 NVIDIA 显卡,可以安装YoloSharp.Gpu包,只需将YoloPredictor替换为对应的 GPU 版本即可启用 CUDA 加速。

⚠️ 关键约束与注意点

模型导出时的动态维度:导出 ONNX 时,确保模型支持动态输入尺寸(dynamic_axes),否则 C# 侧只能推理固定尺寸(如 640×640)的图像,灵活性大打折扣。

后处理不要手写:YOLO 的输出包含大量候选框,需要 NMS(非极大值抑制)去重。使用YoloSharp这类封装库的好处是,它们已经内部处理好了坐标还原、置信度过滤和 NMS,你拿到的就是结构化的检测结果。

性能预期:根据官方数据,YOLO11n 在 CPU 上使用 ONNX Runtime 推理 640×640 图像约需56ms,在 T4 GPU 上使用 TensorRT 则仅需1.5ms。对于工业视觉的实时性要求,建议优先使用 GPU 推理。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询