开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 23344|回复: 68
收起左侧

[技术专题] YOLO5 V6.2 - OPenCV4.5.5- 易语言5.9.3 调用

[复制链接]
结帖率:87% (79/91)
发表于 2022-1-30 08:52:40 | 显示全部楼层 |阅读模式   江苏省苏州市
屏幕截图 2022-01-30 085149.png
  
窗口程序集名保 留  保 留备 注
程序集1   
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
img_path文本型 
model_path文本型 
testYolo 
net网络类 
color标量类0
R整数型 
G整数型 
B整数型 
i整数型 
result输出0
img多维矩阵类 
img_path = “D:\Desktop\zidane.jpg”
model_path = “D:\Desktop\yolov5n.onnx”
如果 (test.读模型 (net, model_path, ))
视觉_控制台输出 (“读取网络成功!”)
返回 (-1)
视觉_种子_随机 (取启动时间 ())
计次循环首 (80, i)
B = 视觉_随机 () % 256
G = 视觉_随机 () % 256
R = 视觉_随机 () % 256
加入成员 (color, 标量 (B, G, R))
计次循环尾 ()
img = 视觉_图像读取 (img_path, 1)
如果 (test.检测 (img, net, result))
test.绘制预测结果 (img, result, color)
视觉_控制台输出 (“Detect Failed!”)

视觉_控制台命令 (“pause”)
返回 (0)  ' 可以根据您的需要返回任意数值



i支持库列表   支持库注释   
OpenCV(未知支持库)
  
窗口程序集名保 留  保 留备 注
Yolo   
变量名类 型数组备 注
网络宽整数型  
网络高整数型  
类名集文本型0 
网络Anchors小数型3,6 
网络Stride小数型3 
最大抑制阈值小数型  
预测框阈值小数型  
类ID阈值小数型  

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
网络Anchors [1] [1] = 10
网络Anchors [1] [2] = 13
网络Anchors [1] [3] = 16
网络Anchors [1] [4] = 30
网络Anchors [1] [5] = 33
网络Anchors [1] [6] = 23
网络Anchors [2] [1] = 30
网络Anchors [2] [2] = 61
网络Anchors [2] [3] = 62
网络Anchors [2] [4] = 45
网络Anchors [2] [5] = 59
网络Anchors [2] [6] = 119
网络Anchors [3] [1] = 116
网络Anchors [3] [2] = 90
网络Anchors [3] [3] = 156
网络Anchors [3] [4] = 198
网络Anchors [3] [5] = 373
网络Anchors [3] [6] = 326
网络Stride = { 8, 16, 32 }
网络宽 = 640
网络高 = 640
最大抑制阈值 = 0.45
预测框阈值 = 0.25
类ID阈值 = 0.25
类名集 = { “person”, “bicycle”, “car”, “motorcycle”, “airplane”, “bus”, “train”, “truck”, “boat”, “traffic light”, “fire hydrant”, “stop sign”, “parking meter”, “bench”, “bird”, “cat”, “dog”, “horse”, “sheep”, “cow”, “elephant”, “bear”, “zebra”, “giraffe”, “backpack”, “umbrella”, “handbag”, “tie”, “suitcase”, “frisbee”, “skis”, “snowboard”, “sports ball”, “kite”, “baseball bat”, “baseball glove”, “skateboard”, “surfboard”, “tennis racket”, “bottle”, “wine glass”, “cup”, “fork”, “knife”, “spoon”, “bowl”, “banana”, “apple”, “sandwich”, “orange”, “broccoli”, “carrot”, “hot dog”, “pizza”, “donut”, “cake”, “chair”, “couch”, “potted plant”, “bed”, “dining table”, “toilet”, “tv”, “laptop”, “mouse”, “remote”, “keyboard”, “cell phone”, “microwave”, “oven”, “toaster”, “sink”, “refrigerator”, “book”, “clock”, “vase”, “scissors”, “teddy bear”, “hair drier”, “toothbrush” }
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
读模型逻辑型 
参数名类 型参考可空数组备 注
net网络类
netPath文本型
isCuda逻辑型
net = 视觉_读取网络 (netPath, , “”)
判断 (isCuda)  ' cuda
net.设置首选后端 ( #网络_后端_CUDA )
net.设置首选目标 ( #网络_目标_CUDA_FP16 )
' cpu
net.设置首选后端 ( #网络_后端_默认 )
net.设置首选目标 ( #网络_目标_CPU )

返回 ()
子程序名返回值类型公开备 注
检测逻辑型 
参数名类 型参考可空数组备 注
输入图片多维矩阵类
网络网络类
output输出
变量名类 型静态数组备 注
前景目标多维矩阵类 
列数整数型 
行数整数型 
最大长整数型 
网络输入图多维矩阵类 
返回尺寸图多维矩阵类 
网络输出图多维矩阵类0
类ID集整数型0结果id数组
置信度集小数型0结果每个id对应置信度数组
预测框集矩形2i类0每个id矩形框
高比率小数型 
宽比率小数型 
网络宽度整数型 
矩阵数据指针整数型 
步数整数型 
网格_x整数型 
网格_y整数型 
anchor整数型 
anchor_宽小数型 
anchor_高小数型 
i整数型 
预测框_分数小数型 
j整数型 
对象分数多维矩阵类 
类ID坐标点2i类 
最大_类_分数双精度小数型 
x小数型 
y小数型 
w小数型 
h小数型 
左边整数型 
顶边整数型 
最大抑制结果整数型0
结果输出 
idx整数型 
列数 = 输入图片.列数 ()
行数 = 输入图片.行数 ()
最大长 = 取最大 (列数, 行数)
网络输入图 = 输入图片.克隆 ()
如果真 (最大长 > 1.2 × 列数 最大长 > 1.2 × 行数)
返回尺寸图 = 矩阵 (最大长, 最大长, #八位无符号整数_三通道, )
输入图片.复制 (返回尺寸图.感兴区域 (矩形2i (0, 0, 列数, 行数)), )
网络输入图 = 返回尺寸图
前景目标 = 视觉_来自图像的目标 (网络输入图, 1 ÷ 255, 尺寸2i (网络宽, 网络高), 标量 (104, 117, 123), 真, 假, 5)
网络.设置输入 (前景目标, “”, 1, )
网络.向前 (网络输出图, 网络.获取未连接的输出层名称 ())
高比率 = 网络输入图.行数 () ÷ 网络高
宽比率 = 网络输入图.列数 () ÷ 网络宽
网络宽度 = 取数组成员数 (类名集) + 5  ' 输出的网络宽度是类别数+5
矩阵数据指针 = 网络输出图 [1].数据指针 ()
计次循环首 (3, 步数)
网格_x = 网络宽 ÷ 网络Stride [步数]
网格_y = 网络高 ÷ 网络Stride [步数]
计次循环首 (3, anchor)
anchor_宽 = 网络Anchors [步数] [anchor × 2 - 1]
anchor_高 = 网络Anchors [步数] [anchor × 2]
计次循环首 (网格_y, i)
计次循环首 (网格_y, j)
预测框_分数 = 指针到小数 (矩阵数据指针 + 16)  ' 等价于[ 矩阵数据指针[4]  类型小数型] 获取每一行的box框中含有某个物体的概率
如果真 (预测框_分数 > 预测框阈值)
如果真 (预测框_分数 > 类ID阈值)
对象分数 = 矩阵 (1, 取数组成员数 (类名集), #三十二位浮点数_单通道, 到整数 (矩阵数据指针 + 20))
视觉_最小最大位置 (对象分数, , 最大_类_分数, , 类ID坐标, )
如果真 (最大_类_分数 > 类ID阈值)
' 矩形2i [x,y,w,h]   预测矩形框
x = 指针到小数 (矩阵数据指针)  ' //等价于[ 矩阵数据指针[0]  指针类型小数型]
y = 指针到小数 (矩阵数据指针 + 4)  ' //等价于[ 矩阵数据指针[1]  指针类型小数型]
w = 指针到小数 (矩阵数据指针 + 8)  ' //等价于[ 矩阵数据指针[2]  指针类型小数型]
h = 指针到小数 (矩阵数据指针 + 12)  ' //等价于[ 矩阵数据指针[3]  指针类型小数型]
左边 (x - 0.5 × w) × 宽比率
顶边 (y - 0.5 × h) × 高比率
加入成员 (类ID集, 类ID坐标.左边)
加入成员 (置信度集, 最大_类_分数 × 预测框_分数)
加入成员 (预测框集, 矩形2i (左边, 顶边, w × 宽比率, h × 高比率))


矩阵数据指针 = 网络宽度 × 4 + 矩阵数据指针  ' //等价于[ 矩阵数据指针+=网络宽度   指针类型小数型]    下一行
计次循环尾 ()
计次循环尾 ()
计次循环尾 ()
计次循环尾 ()
' 执行非最大抑制以消除具有较低置信度的冗余重叠框(NMS)
视觉_非最大抑制 (预测框集, 置信度集, 类ID阈值, 最大抑制阈值, 最大抑制结果, 1, 0)
计次循环首 (取数组成员数 (最大抑制结果), i)
idx = 最大抑制结果 [i] - 1
结果.类别id = 类ID集 [idx] + 1
结果.置信度 = 置信度集 [idx + 2]
结果.预测框 = 预测框集 [idx + 2]
加入成员 (output, 结果)
计次循环尾 ()
如果 (取数组成员数 (output) > 0)
返回 ()
返回 ()

子程序名返回值类型公开备 注
取最大整数型 
参数名类 型参考可空数组备 注
v1整数型
v2整数型
如果 (v1 > v2)
返回 (v1)
返回 (v2)

子程序名返回值类型公开备 注
绘制预测结果 
参数名类 型参考可空数组备 注
图像多维矩阵类
返回结果输出
颜色标量类
变量名类 型静态数组备 注
i整数型 
左边整数型 
顶边整数型 
颜色索引整数型 
标签文本型 
基线整数型 
标签尺寸尺寸2i类 
计次循环首 (取数组成员数 (返回结果), i)
左边 = 返回结果 [i].预测框.左边
顶边 = 返回结果 [i].预测框.顶边
颜色索引 = i
视觉_矩形 (图像, 返回结果 [i].预测框, 颜色 [返回结果 [i].类别id], 2, 8, 0)
标签 = 类名集 [返回结果 [i].类别id]“:”到文本 (返回结果 [i].置信度)
标签尺寸 = 视觉_获取文本尺寸 (标签, #字体_衬线_简单, 0.5, 1, 基线)
顶边 = 取最大 (顶边, 标签尺寸.高)
' //rectangle(frame, Point(left, top - int(1.5 * labelSize.height)), Point(left + int(1.5 * labelSize.width), top + baseLine), Scalar(0, 255, 0), FILLED);
视觉_放置文本 (图像, 标签, 点2i (左边, 顶边), #字体_衬线_简单, 1, 颜色 [返回结果 [i].类别id], 2, 8, )
计次循环尾 ()
视觉_显示图像 (“YOLO5”, 图像)
' //imwrite("out.bmp", img);
视觉_等待按键 (0)
' //destroyAllWindows();



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


本帖被以下淘专辑推荐:

结帖率:0% (0/1)

签到天数: 22 天

发表于 2024-9-8 15:57:28 | 显示全部楼层   上海市上海市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:50% (2/4)
发表于 2024-9-6 17:24:28 | 显示全部楼层   山西省吕梁市
学习学习
回复 支持 反对

使用道具 举报

发表于 2024-9-4 14:12:05 | 显示全部楼层   上海市上海市
下下来看看
回复 支持 反对

使用道具 举报

发表于 2024-9-4 00:18:06 | 显示全部楼层   河南省新乡市
66666666666666666666
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2024-8-29 19:37:46 | 显示全部楼层   重庆市重庆市
牛牛大佬
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 21 天

发表于 2024-8-15 20:26:29 | 显示全部楼层   湖南省长沙市
  牛牛
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)
发表于 2024-8-14 10:21:57 | 显示全部楼层   云南省昆明市
YOLO数据类型是啥?
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2024-8-5 19:42:16 | 显示全部楼层   湖北省武汉市
6666666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:67% (6/9)

签到天数: 18 天

发表于 2024-7-31 11:03:16 | 显示全部楼层   山东省淄博市
这个挺牛逼的
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 11 天

发表于 2024-4-29 10:33:06 | 显示全部楼层   浙江省宁波市

真是谢谢大佬了...
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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