|
文章地址:https://zhuanlan.zhihu.com/p/536500269
易语言:
一、类构造:
窗口程序集名 | 保 留 | 保 留 | 备 注 | FastestDet | | | 变量名 | 类 型 | 数组 | 备 注 | 输入宽 | 整数型 | | 输入高 | 整数型 | | 类_名 | 文本型 | 0 | 数_类 | 整数型 | | 置信阈值 | 小数型 | | 抑制阈值 | 小数型 | | 网络 | 网络类 | |
输入宽 = 512 输入高 = 512 类_名 = 分割文本 ( #coco, #换行符, )数_类 = 取数组成员数 (类_名 )|
初始化 | | | |
置信度阈值_ | 小数型 | | | | 抑制阈值_ | 小数型 | | | | onnx文件路径 | 文本型 | | | |
网络 = 视觉_读取网络 (“C:\Users\hanyo\Desktop\FastestDet-opencv-dnn-main\FastestDet.onnx”, , “”)置信阈值 = 置信度阈值_ 抑制阈值 = 抑制阈值_ 变量名 | 类 型 | 静态 | 数组 | 备 注 | 预处理图 | 多维矩阵类 | | | 输出数组 | 多维矩阵类 | | 0 | 数_提取 | 整数型 | | | 位置 | 整数型 | | | 置信度数组 | 小数型 | | 0 | 框数组 | 矩形2i类 | | 0 | 类索引数组 | 整数型 | | 0 | i | 整数型 | | | j | 整数型 | | | 行_数 | 整数型 | | | 数_网格_x | 整数型 | | | 数_网格_y | 整数型 | | | 数据指针 | 小数型指针类 | | | 得分 | 多维矩阵类 | | | 类坐标 | 点2i类 | | | 最大_类_得分 | 双精度小数型 | | | 类_索引x | 整数型 | | | 中心左 | 小数型 | | | 中心上 | 小数型 | | | 宽 | 小数型 | | | 高 | 小数型 | | | 左 | 整数型 | | | 顶 | 整数型 | | | indices | 整数型 | | 0 | 索引x | 整数型 | | | 框 | 矩形2i类 | | |
预处理图 = 视觉_图像前景目标 (输入图, 1 ÷ 255, 尺寸2i (输入宽, 输入高 ), , 假, 假, 5 )网络. 设置输入 (预处理图, “”, 1, )网络. 前向计算V (输出数组, 网络. 获取未连接的输出层名称 ()) 数_提取 = 输出数组 [1 ]. 维度元素数 (0 )位置 = 输出数组 [1 ]. 维度元素数 (1 )数_网格_x = 32 数_网格_y = 32 数据指针.指针 = 输出数组 [1 ]. 数据指针 ()变量循环首 (0, 数_网格_y - 1, 1, i )变量循环首 (0, 数_网格_x - 1, 1, j )得分 = 输出数组 [1 ]. 行 (行_数 ). 列范围 (5, 位置 ) 视觉_最小最大位置 (得分, , 最大_类_得分, , 类坐标, )最大_类_得分 = 最大_类_得分 × 数据指针. 读 (0 )如果真 (最大_类_得分 > 置信阈值 )类_索引x = 类坐标.左边 中心左 = (求正切 (数据指针. 读 (1 )) + j ) ÷ 数_网格_x 中心上 = (求正切 (数据指针. 读 (2 )) + i ) ÷ 数_网格_y 宽 = 二分类概率 (数据指针. 读 (3 )) 高 = 二分类概率 (数据指针. 读 (4 )) 中心左 = 中心左 × 输入图. 列数 ()中心上 = 中心上 × 输入图. 行数 ()宽 = 宽 × 输入图. 列数 ()高 = 高 × 输入图. 行数 ()左 = 中心左 - 0.5 × 宽 顶 = 中心上 - 0.5 × 高 加入成员 (置信度数组, 最大_类_得分 )加入成员 (框数组, 矩形2i (左, 顶, 宽, 高 )) 加入成员 (类索引数组, 类_索引x )行_数 = 行_数 + 1数据指针. 偏移 (位置 )变量循环尾 ()变量循环尾 () 视觉_非最大抑制 (框数组, 置信度数组, 置信阈值, 抑制阈值, indices, 1, 0 )计次循环首 (取数组成员数 (indices ), i )索引x = indices [i ] + 1 框 = 框数组 [索引x ]绘制预测框 (置信度数组 [索引x ], 框.左边, 框.顶边, 框.左边 + 框.宽度, 框.顶边 + 框.高度, 输入图, 类索引数组 [索引x ])计次循环尾 ()返回 (1 ÷ (1 + 求反对数 (-x )) )|
绘制预测框 | | | |
置信度 | 小数型 | | | | 左 | 整数型 | | | | 上 | 整数型 | | | | 右 | 整数型 | | | | 下 | 整数型 | | | | 绘制图 | 多维矩阵类 | | | | 类ID | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 标签 | 文本型 | | | 标签尺寸 | 尺寸2i类 | | | 视觉_矩形1 (绘制图, 点2i (左, 上 ), 点2i (右, 下 ), 标量 (0, 0, 255 ), 2, 0, 0 ) 标签 = 到文本 (四舍五入 (置信度, 2 )) 标签 = 类_名 [类ID + 1 ] + “:” + 标签 标签尺寸 = 视觉_获取文本尺寸 (标签, #字体_衬线_简单, 0.5, 1, )上 = 视觉_取最大值 (上, 标签尺寸.高 )视觉_放置文本 (绘制图, 标签, 点2i (左, 上 ), #字体_衬线_简单, 0.75, 标量 (0, 255, 0 ), 1, 8, 假)
二、调用:
窗口程序集名 | 保 留 | 保 留 | 备 注 | FastestDet_Demo | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | FastestDet | FastestDet | | | onnx模型路径 | 文本型 | | | 图片路径 | 文本型 | | | 输入图 | 多维矩阵类 | | |
onnx模型路径 = “C:\Users\hanyo\Desktop\FastestDet-opencv-dnn-main\FastestDet.onnx”FastestDet. 初始化 (0.8, 0.35, onnx模型路径 )图片路径 = “C:\Users\hanyo\Desktop\FastestDet-opencv-dnn-main\data\3.jpg”输入图 = 视觉_图像读取 (图片路径, #读图_彩色 )FastestDet. 检测识别 (输入图 )视觉_显示图像 (“小白鼠”, 输入图 )视觉_等待按键 (0 )返回 (0 )
三、上效果图:
|
|