ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

模型训练与导出是 YOLO11 工程中承上启下的关键环节:训练决定模型精度的上限,导出决定模型能否在你的 C# 上位机中跑起来

模型训练与导出是 YOLO11 工程中承上启下的关键环节:训练决定模型精度的上限,导出决定模型能否在你的 C# 上位机中跑起来 模型训练与导出是 YOLO11 工程中承上启下的关键环节训练决定模型精度的上限导出决定模型能否在你的 C# 上位机中跑起来。Python 侧训练与导出的完整链路训练使用ultralytics包加载预训练权重如yolo11n.pt指向你的data.yaml数据集配置指定epochs、batch、imgsz等参数即可启动。fromultralyticsimportYOLO# 加载预训练模型推荐比从头训练收敛快得多modelYOLO(yolo11n.pt)# 训练resultsmodel.train(datadatasets/my_dataset/data.yaml,epochs100,batch16,imgsz640,device0# GPU编号没GPU写 cpu)训练完成后最佳权重保存在runs/detect/train/weights/best.pt最后一次的权重是last.pt。如果训练意外中断用resume参数可以从last.pt继续不用从头跑。导出为 ONNX这是 C# 部署的必经步骤.pt文件 C# 无法直接加载。fromultralyticsimportYOLO modelYOLO(runs/detect/train/weights/best.pt)model.export(formatonnx,imgsz640)导出后生成best.onnx。ONNX 是框架无关的格式被 ONNX Runtime 广泛支持适合跨平台部署。C# 侧ONNX 模型加载与推理推荐使用YoloSharpOnnxNuGet 包名YoloSharpOnnx它基于 OpenCV 和 ONNX Runtime支持 YOLO11 的全任务类型检测、分割、姿态、OBB并且内存复用和批量推理做得很好。安装dotnetaddpackage YoloSharpOnnx dotnetaddpackage OpenCvSharp4.runtime.win dotnetaddpackage Microsoft.ML.OnnxRuntimeCPU 推理usingYoloSharp;usingYoloSharpyolonewYoloSharp(newExecutionProviderCPU(best.onnx));usingMatimageCv2.ImRead(test.jpg);ListDetectionResultresultsyolo.RunDetect(image);yolo.DrawDetections(image,results);Cv2.ImWrite(result.jpg,image);Console.WriteLine(results.Summary());GPU 推理CUDA把ExecutionProviderCPU换成ExecutionProviderCUDA并安装Microsoft.ML.OnnxRuntime.Gpu.Windows。有 NVIDIA 显卡时推理速度通常有数倍提升。训练中的关键参数工业场景参考一份 PLOS ONE 论文的 YOLO11s 训练配置展示了工业场景的典型参数参数值说明epochs200训练轮数imgsz1216大尺寸输入适合小目标batch4小批次适应大图patience1010轮无提升则早停mosaic1.0马赛克增强提升泛化fliplr0.5水平翻转增强close_mosaic10最后10轮关闭马赛克稳定收敛显存不够时优先减小batch或imgsz而不是砍epochs。训练产出的文件训练完成后runs/detect/train/目录下会有weights/best.pt验证集上表现最好的权重部署用这个weights/last.pt最后一轮的权重用于断点续训results.csv每轮的 loss 和 mAP 记录confusion_matrix.png混淆矩阵看哪些类别容易混淆一句话总结训练的核心是用预训练权重微调 合理的增强参数导出的核心是转 ONNX让 C# 能加载。C# 侧用 YoloSharpOnnx 加载 ONNX 推理CPU/GPU 切换只需换一个 ExecutionProvider。训练在 Python推理在 C#ONNX 是两者之间的桥梁。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表