开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 10375|回复: 7
收起左侧

[技术专题] darknet 版YOLO CPU速度对比(yolov3 yolov4 yolo-faste yolobilest )

[复制链接]
结帖率:91% (75/82)
发表于 2022-8-24 14:20:39 | 显示全部楼层 |阅读模式   江苏省苏州市
先上易语言
  
常量名称常量值公 开备 注
类名<文本长度: 703> 
Demo_YOLOv31 
Demo_YOLOv42 
Demo_YOLO_Fastest3 
Demo_YOLObile4 

  
数据类型名公开备 注
YOLO_网络_配置 
成员名类 型传址数组备 注
置信阈值小数型 置信阈值
抑制阈值小数型 非最大抑制阈值
输入宽度整数型 网络输入图像的宽度
输入高度整数型 网络输入图像的高度
模型配置文本型  
模型权重文本型  
网络名称文本型  

  
窗口程序集名保 留  保 留备 注
YOLO   
变量名类 型数组备 注
置信阈值小数型  
抑制阈值小数型  
输入宽整数型  
输入高整数型  
网络名文本型  
类数组文本型0 
网络网络类  
YOLO_网络YOLO_网络_配置4 

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
' YOLOv3
YOLO_网络 [1].置信阈值 = 0.5
YOLO_网络 [1].抑制阈值 = 0.4
YOLO_网络 [1].输入宽度 = 416
YOLO_网络 [1].输入高度 = 416
YOLO_网络 [1].模型配置 = “E:\BaiduNetdiskDownload\yolov3\yolov3.cfg”
YOLO_网络 [1].模型权重 = “E:\BaiduNetdiskDownload\\yolov3\yolov3.weights”
YOLO_网络 [1].网络名称 = “YOLOv3”
' YOLOv4
YOLO_网络 [2].置信阈值 = 0.5
YOLO_网络 [2].抑制阈值 = 0.4
YOLO_网络 [2].输入宽度 = 608
YOLO_网络 [2].输入高度 = 608
YOLO_网络 [2].模型配置 = “E:\BaiduNetdiskDownload\yolov4\yolov4.cfg”
YOLO_网络 [2].模型权重 = “E:\BaiduNetdiskDownload\yolov4\yolov4.weights”
YOLO_网络 [2].网络名称 = “YOLOv4”
' YOLO_Fastest
YOLO_网络 [3].置信阈值 = 0.5
YOLO_网络 [3].抑制阈值 = 0.4
YOLO_网络 [3].输入宽度 = 320
YOLO_网络 [3].输入高度 = 320
YOLO_网络 [3].模型配置 = “E:\BaiduNetdiskDownload\yolo-fastest\yolo-fastest-xl.cfg”
YOLO_网络 [3].模型权重 = “E:\BaiduNetdiskDownload\yolo-fastest\yolo-fastest-xl.weights”
YOLO_网络 [3].网络名称 = “YOLO_Fastest”
' YOLObile
YOLO_网络 [4].置信阈值 = 0.5
YOLO_网络 [4].抑制阈值 = 0.4
YOLO_网络 [4].输入宽度 = 320
YOLO_网络 [4].输入高度 = 320
YOLO_网络 [4].模型配置 = “E:\BaiduNetdiskDownload\yolobile\csdarknet53s-panet-spp.cfg”
YOLO_网络 [4].模型权重 = “E:\BaiduNetdiskDownload\yolobile\yolobile.weights”
YOLO_网络 [4].网络名称 = “YOLObile”
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
初始化 
参数名类 型参考可空数组备 注
网络整数型
视觉_控制台输出 (“网络 使用 %T\r”, YOLO_网络 [网络].网络名称)
置信阈值 = YOLO_网络 [网络].置信阈值
抑制阈值 = YOLO_网络 [网络].抑制阈值
输入宽 = YOLO_网络 [网络].输入宽度
输入高 = YOLO_网络 [网络].输入高度
网络名 = YOLO_网络 [网络].网络名称
类数组 = 分割文本 ( #类名, #换行符, )
网络 = 视觉_从Darknet读取网络 (YOLO_网络 [网络].模型配置, YOLO_网络 [网络].模型权重)
网络.设置首选后端 ( #网络_后端_OPENCV )
网络.设置首选目备 ( #网络_目标_CPU )
子程序名返回值类型公开备 注
检测识别 
参数名类 型参考可空数组备 注
输入图多维矩阵类
变量名类 型静态数组备 注
预处理多维矩阵类 
输出数组多维矩阵类0
频率双精度小数型 
时间双精度小数型 
网络层计时数组双精度小数型0
标签文本型 
预处理 = 视觉_图像前景目标 (输入图, 1 ÷ 255, 尺寸2i (输入宽, 输入高), 标量 (0, 0, 0), 真, 假, 5)
网络.设置输入 (预处理, “”, 1, )
网络.前向计算V (输出数组, 网络.获取未连接的输出层名称 ())
后期处理 (输入图, 输出数组)
频率 = 视觉_获取滴答频率 () ÷ 1000
时间 = 网络.视觉_获取性能 (网络层计时数组) ÷ 频率
标签 = 网络名 + “ Inference time :”到文本 (四舍五入 (时间, 2))
视觉_放置文本 (输入图, 标签, 点2i (0, 30), #字体_衬线_简单, 1, 标量 (0, 0, 255), 2, 8, )
子程序名返回值类型公开备 注
后期处理 使用非极大值抑制去除置信度低的边界框
参数名类 型参考可空数组备 注
输入图多维矩阵类
输出数组多维矩阵类
变量名类 型静态数组备 注
类ID数组整数型0
置信度数组小数型0
预测框数组矩形2i类0
i整数型 
数据指针小数型指针类 
j整数型 
多维矩阵类 
类ID位置点2i类 
置信度双精度小数型 
中心X整数型 
中心Y整数型 
整数型 
整数型 
整数型 
整数型 
筛选数组整数型0
预测id整数型 
预测框矩形2i类 
计次循环首 (取数组成员数 (输出数组), i)
' 扫描网络输出的所有边框,只保留具有高置信度分数的那些。 将框的类标签分配为类得分最高的框。
数据指针.指针 = 输出数组 [i].数据指针 ()
变量循环首 (0, 输出数组 [i].行数 () - 1, 1, j)
分 = 输出数组 [i]. (j).列范围 (5, 输出数组 [i].列数 ())
' 获取最高分的数值和位置
视觉_最小最大位置 (分, , 置信度, , 类ID位置, )
如果真 (置信度 > 置信阈值)
中心X = 数据指针. (0) × 输入图.列数 ()
中心Y = 数据指针. (1) × 输入图.行数 ()
宽 = 数据指针. (2) × 输入图.列数 ()
高 = 数据指针. (3) × 输入图.行数 ()
左 = 中心X - 宽 ÷ 2
上 = 中心Y - 高 ÷ 2
加入成员 (类ID数组, 类ID位置.左边)
加入成员 (置信度数组, 置信度)
加入成员 (预测框数组, 矩形2i (左, 上, 宽, 高))
数据指针.偏移 (输出数组 [i].列数 ())
变量循环尾 ()
计次循环尾 ()
' // 执行非最大抑制以消除冗余重叠框
' // 降低置信度
视觉_非最大抑制 (预测框数组, 置信度数组, 置信阈值, 抑制阈值, 筛选数组, 1, 0)
计次循环首 (取数组成员数 (筛选数组), i)
预测id = 筛选数组 [i] + 1
预测框 = 预测框数组 [预测id]
绘制预测 (类ID数组 [预测id], 置信度数组 [预测id], 预测框.左边, 预测框.顶边, 预测框.左边 + 预测框.宽度, 预测框.顶边 + 预测框.高度, 输入图)
计次循环尾 ()
子程序名返回值类型公开备 注
绘制预测  
参数名类 型参考可空数组备 注
classId整数型
conf小数型
left整数型
top整数型
right整数型
bottom整数型
frame多维矩阵类
变量名类 型静态数组备 注
baseLine整数型 
labelSize尺寸2i类 
label文本型 
' //原图显示边框的矩形
视觉_矩形P (frame, 点2i (left, top), 点2i (right, bottom), 标量 (0, 0, 255), 3, 8, 0)
' //获取类名的标签及其置信度
label = 到文本 (四舍五入 (conf, 2))
如果真 (取数组成员数 (类数组) ≠ 0)
' //修正易语言数组 偏移
classId = classId + 1
如果真 (classId > 取数组成员数 (类数组))
视觉_控制台输出 (“类名数组 下标错误\n”, )
暂停 ()
label = 类数组 [classId]“:” + label
' //在边框顶部显示标签
labelSize = 视觉_获取文本尺寸 (label, #字体_衬线_简单, 0.5, 1, baseLine)
top = 视觉_取最大值 (top, labelSize.高)
' 视觉_矩形1 (frame, 点2i (left, top - 1.5 × labelSize.高), 点2i (left + 1.5 × labelSize.宽, top + baseLine), 标量 (0, 255, 0), #线类型_填满, 8, 0)
视觉_放置文本 (frame, label, 点2i (left, top), #字体_衬线_简单, 0.75, 标量 (0, 255, 0), 1, 8, )


i支持库列表   支持库注释   
OpenCV(未知支持库)
  
窗口程序集名保 留  保 留备 注
YOLO   
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
YOLO网络YOLO 
图片路径文本型 
输入图片多维矩阵类 
窗口名称文本型 
YOLO网络.初始化 ( #Demo_YOLO_Fastest )
图片路径 = “C:\Users\hanyo\Desktop\yolov34-cpp-opencv-dnn-master\person.jpg”
输入图片 = 视觉_图像读取 (图片路径, 1)
YOLO网络.检测识别 (输入图片)
窗口名称 = “易语言 OpenCV 中的深度学习对象检测”
视觉_创建窗口 (窗口名称, #窗口_标准 )
视觉_显示图像 (窗口名称, 输入图片)
视觉_等待按键 (0)
视觉_销毁所有窗口 ()
返回 (0)  ' 可以根据您的需要返回任意数值



i支持库列表   支持库注释   
OpenCV(未知支持库)


效果展示:
QQ图片20220824141751.png QQ图片20220824141852.png QQ图片20220824141935.png QQ图片20220824142019.png

点评

《cow》   浙江省杭州市  发表于 2022-8-24 15:03
《cow》   新疆维吾尔自治区乌鲁木齐市  发表于 2022-8-24 14:37

发表于 2023-10-4 19:18:09 | 显示全部楼层   黑龙江省哈尔滨市
6666666666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2022-11-6 15:30:59 | 显示全部楼层   四川省成都市
666666666666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2022-9-8 00:56:43 | 显示全部楼层   广东省云浮市
牛逼 哈哈假期时间还纠结
回复 支持 反对

使用道具 举报

发表于 2022-8-30 22:25:03 | 显示全部楼层   安徽省安庆市
很有哦用,不错不错不错,谢谢谢谢
回复 支持 反对

使用道具 举报

结帖率:78% (32/41)

签到天数: 10 天

发表于 2022-8-30 14:45:48 | 显示全部楼层   浙江省杭州市
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表