本帖最后由 z13228604287 于 2022-7-12 08:17 编辑
原yolov5 github地址为:https://github.com/ultralytics/yolov5
项目简介基于Tensorrt加速Yolov5 6.0
环境说明
Cuda 11.4 Cudnn 8.2.2
OpenCV 支持库
运行案例(Windows)
从yolov5 release v6.0下载.pt模型,这里以yolov5s.pt为例。直接到6.0页面download zip。
生成WTS模型将gen_wts.py和刚才下载好的yolov5s.pt拷贝至yolov5 6.0的目录下
运行 python gen_wts.py -w yolov5s.pt -o yolov5s.wts 运行完毕后,yolov5目录下会生成wts模型,这个模型用于之后转换为tensorrt专用的序列化模型。 生成WTS模型 yolov5s.wts 文件 复制到 服务端 目录 运行转换命令
wts到engine (“C:\Users\hanyo\Desktop\YOLO-v6.0\yolov5.exe”, “C:\Users\hanyo\Desktop\YOLO-v6.0\yolov5s.wts”, “C:\Users\hanyo\Desktop\YOLO-v6.0\yolov5.engine”, 模型枚举.YOLO5s, 0, 0, 假, 640, 640, 80, #普通激活 )
转需要很长的时间静静等转换,转换好后我们会得到 yolov5.engine
然后就就可以应 yolov5.engine 进行识别了
运行 yolov5.exe 做位服务端 易语言与其进行数据交互识别
本人笔记本搭载1060 4G的显卡 测试效果如下
10毫秒 还是不错的 YOLO5 6.0 比4快了
附上demo
窗口程序集名 | 保 留 | 保 留 | 备 注 | 程序集1 | | | | 变量名 | 类 型 | 数组 | 备 注 | 数据空间 | 整数型 | | 数据空间指针 | 整数型 | | 预测框 | 张量预测框类 | | 控制器指针 | 整数型 | | 模型枚举 | YOLO5 | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 图 | 多维矩阵类 | | | i | 整数型 | | | 滴答 | 长整数型 | | | ii | 整数型 | | | 初始化枚举 () 如果真 (链接服务端 (“ABC”, 2000000, “Event”)) 计次循环首 (100, i )滴答 = 视觉_取启动时间 ()视觉_张量GPU (数据空间指针, 图, 控制器指针, 预测框 )调试输出 (视觉_取启动时间差异 (滴答, 0 )) 计次循环尾 ()返回 (0)
|
运行服务端 | | | |
服务端路径 | 文本型 | | | | 服务端名称 | 文本型 | | | | 数据_尺寸 | 长整数型 | | | | 控制器名称 | 文本型 | | | | engine模型 | 文本型 | | | | 显卡_ID | 整数型 | | | | 置信阈值 | 小数型 | | | | 宽 | 整数型 | | | | 高 | 整数型 | | | | 类数 | 整数型 | | | | 公告 | 文本型 | | | | 抑制阈值 | 小数型 | | | | 状态 | 整数型 | | | | 运行 (服务端路径 + “ ” + “-d” + “ ” + engine模型 + “ ” + 服务端名称 + “ ” + 到文本 (数据_尺寸 ) + “ ” + 控制器名称 + “ ” + 到文本 (显卡_ID ) + “ ” + 到文本 (置信阈值 ) + “ ” + 公告 + “ ” + 到文本 (宽 ) + “ ” + 到文本 (高 ) + “ ” + 到文本 (类数 ) + “ ” + 到文本 (抑制阈值 ), 假, 状态 )|
链接服务端 | 逻辑型 | | |
服务端名称 | 文本型 | | | | 数据_尺寸 | 长整数型 | | | | 控制器名称 | 文本型 | | | |
数据空间 = 链接数据空间 ( #FILE_MAP_ALL_ACCESS, 假, 服务端名称 )如果真 (数据空间 = 0 )返回 (假)数据空间指针 = 引用数据空间 (数据空间, #FILE_MAP_ALL_ACCESS, 0, 0, 数据_尺寸)如果真 (数据空间指针 = 0 )返回 (假)预测框.初始化 (数据空间指针)控制器指针 = 链接数据空间控制器 ( #EVENT_ALL_ACCESS, 假, 控制器名称 )如果真 (控制器指针 = 0 )返回 (假)返回 (真)|
wts到engine | | | |
服务端路径 | 文本型 | | | | 输入wts模型 | 文本型 | | | | 输出engine模型 | 文本型 | | | | 类型 | 文本型 | | | | gd | 小数型 | | | | gw | 小数型 | | | | 保留 | 逻辑型 | | | | 宽 | 整数型 | | | | 高 | 整数型 | | | | 类数 | 整数型 | | | | 状态 | 整数型 | | | | 运行 (服务端路径 + “ ” + “-s” + “ ” + 输入wts模型 + “ ” + 输出engine模型 + “ ” + 类型 + “ ” + 到文本 (gd ) + “ ” + 到文本 (gw ) + “ ” + 到文本 (保留 ) + “ ” + 到文本 (宽 ) + “ ” + 到文本 (高 ) + “ ” + 到文本 (类数 ), 假, 状态 )模型枚举.YOLO5s = “s”模型枚举.YOLO5m = “m”模型枚举.YOLO5l = “l”模型枚举.YOLO5x = “x”模型枚举.自定义 = “c”
识别结果取回
如果真 (链接服务端 (“ABC”, 2000000, “Event”)) 图 = 视觉_图像解码 ( #狗, #读图_彩色 )如果真 (图. 空 ()) 调试输出 (“图片空”)返回 ()计次循环首 (1, i )滴答 = 视觉_取启动时间 ()视觉_张量GPU (数据空间指针, 图, 控制器指针, 预测框 )调试输出 (视觉_取启动时间差异 (滴答, 0 )) 计次循环首 (预测框. 尺寸 (), i )调试输出 (预测框. 尺寸 (), 预测框. 横坐标 (1 ), 预测框. 纵坐标 (1 ), 预测框. 宽 (1 ), 预测框. 高 (1 )) 计次循环尾 ()计次循环尾 ()
分别代表 目标中心 XY 宽 高
|