赞
踩
1、参考链接:https://blog.csdn.net/weixin_49983900/article/details/124866704
yolov5下载地址:https://github.com/ultralytics/yolov5
2、C#调用yolo的可用方法
使用C#语言调用yolo,网上有好几种方法:
(1)导出onnx模型,c# 部署onnx分类模型。github的代码:[yolo-net-master],直接下载即可。
(2)opencv中调用,c++转c#。网上有一篇教怎么使用opencv调用yolo onnx 模型:https://blog.csdn.net/qq_35135771/article/details/116592203.openCV调用YOLOv5 ONNX模型。需要比较扎实的语言基础,通晓两种语言的转换。
(3)c#中调用python脚本,非常慢。调用前必须打开pycharm,并且保证python文件是可运行、编译无错的。调用时间大概在20s左右,不符合要求。调用代码如下:
private void RunPythonScript(string sArgName, string args = "", params string[] teps) { Process p = new Process(); //string path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + sArgName;// 获得python文件的绝对路径(将文件放在c#的debug文件夹中可以这样操作) string path = @"F:\输入自己的路径\detect.py";//"H:\\python_codes\\0331test.py"; p.StartInfo.FileName = @"F:\输入自己的路径\python.exe";//没有配环境变量的话,可以像我这样写python.exe的绝对路径。如果配了,直接写"python.exe"即可 string sArguments = path; ArrayList arrayList = new ArrayList(); //arrayList.Add("com4"); //arrayList.Add(57600); //arrayList.Add("password"); foreach (var param in arrayList)//添加参数 { sArguments += " " + sigstr; } p.StartInfo.Arguments = sArguments;//python命令的参数 p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; p.Start();//启动进程 Console.ReadLine(); Console.WriteLine("执行完毕!");//查看是否执行了 }
————————————————
版权声明:本文为CSDN博主「weixin_49983900」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_49983900/article/details/124866704
3、C# 部署onnx目标检测模型
打开yolov5 6.1中的 export.py文件,修改代码,选择自己训练出来的模型路径(导出onnx前要提前配置环境),然后运行就能导出一个onnx模型。
导出后的模型可以使用Netron软件查看:https://netron.app/,模型是带有切片的。
4、刚刚下载的yolov5-net-master:https://github.com/mentalstack/yolov5-net是直接可以在c#环境下运行的,修改一下文件
将下面这行代码,更改为标签种类+1:
安装Microsoft.ML.OnnxRuntime安装包:
然后调成release进行运行,可得到以下测试结果:
5、实现自己模型的部署:
按照上面方法,将自己训练的pt或者其他模型转换成onnx格式进行导出,然后修改文件路径:
修改后即可得到自己文件的识别结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。