窗口程序集名 | 保 留 | 保 留 | 备 注 |
程序集1 | | | |
变量名 | 类 型 | 数组 | 备 注 |
置信度阈值 | 小数型 | |
分数阈值 | 小数型 | |
非极大值抑制阈值 | 小数型 | |
输入高 | 整数型 | |
输入宽 | 整数型 | |
分数阈值 = 0.25
置信度阈值 = 0.45
非极大值抑制阈值 = 0.5
输入高 = 1024
输入宽 = 1024
旋转目标检测 (“D:\新建文件夹\train\yolo11n-obb.onnx”,
“C:\Users\Administrator\Desktop\plane.png”,
真)返回 (0
) |
旋转目标检测 | | |
|
模型路径 | 文本型 | | | |
图片路径 | 文本型 | | | | 是否填充为正方形 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
YOLO网络 | 神经网络类 | | |
输出层名称数组 | 数组容器 | | |
图片 | 数据矩阵类 | | |
拷贝图 | 数据矩阵类 | | |
数据块 | 数据矩阵类 | | |
张量数组 | 数组容器 | | |
YOLO网络 =
视觉_从ONNX读取网络 (模型路径
)输出层名称数组 = YOLO网络.
获取未连接输出层名称 () 图片 =
视觉_图像读取 (图片路径,
#读图_彩色 )
如果真 (图片.
空 ())
视觉_控制台输出 (“无法打开或找到图像 :%T”, 图片路径
)
返回 ()拷贝图 = 图片.克隆 ()
如果真 (是否填充为正方形
且 输入高 = 输入宽
)
拷贝图 =
填充为正方形 (拷贝图
)数据块 = 视觉_从图像创建数据块 (拷贝图, 1 ÷ 255, 尺寸整数 (输入宽, 输入高), 标量 (0, 0, 0), 真, 假, 5)YOLO网络.
设置输入 (数据块,
“”, 1,
标量 ())
YOLO网络.
前向传播V (张量数组, 输出层名称数组
)后期处理 (图片, 拷贝图.
尺寸整型 (), 张量数组, YOLO网络, 15
)视觉_显示图像 (“小白鼠YOLO11 OBB”, 图片
)视觉_等待按键 (0
)|
后期处理 | | |
|
图片 | 数据矩阵类 | | | |
输入尺寸 | 尺寸整型结构 | | | | 张量数组 | 数组容器 | | | | YOLO网络 | 神经网络类 | | | | 类数 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
缩放因子X | 小数型 | | |
缩放因子Y | 小数型 | | |
置信度数组 | 数组容器 | | |
目标类别ID数组 | 数组容器 | | |
边界框数组 | 数组容器 | | |
边界框数顶点二维数组 | 数组容器 | | |
边界框数顶点数组 | 数组容器 | | |
检测框数 | 整数型 | | |
属性数 | 整数型 | | |
二维矩阵 | 数据矩阵类 | | |
数据指针 | 小数型指针类 | | |
i | 整数型 | | |
类别分数 | 小数型指针类 | | |
分数 | 数据矩阵类 | | |
类最大分数位置 | 坐标二维整型结构 | | |
类最小分数位置 | 坐标二维整型结构 | | |
类最大分数 | 双精度小数型 | | |
类最小分数 | 双精度小数型 | | |
横坐标 | 小数型 | | |
纵坐标 | 小数型 | | |
宽 | 小数型 | | |
高 | 小数型 | | |
角度 | 小数型 | | |
余弦值 | 小数型 | | |
正弦值 | 小数型 | | |
高旋转量 | 坐标二维小数型结构 | | |
宽旋转量 | 坐标二维小数型结构 | | |
顶点坐标 | 坐标二维小数型结构 | | |
检测框的索引 | 数组容器 | | |
索引 | 整数型 | | |
缩放因子X = 输入尺寸.宽 ÷ 输入宽
缩放因子Y = 输入尺寸.高 ÷ 输入高
检测框数 = 张量数组.
取数据矩阵类 (1
).
尺寸属性 (2
)属性数 = 张量数组.
取数据矩阵类 (1
).
尺寸属性 (1
) 二维矩阵 = 张量数组.
取数据矩阵类 (1
).
重塑 (1, 属性数
) 视觉_转置 (二维矩阵, 二维矩阵
) 数据指针.指针 = 二维矩阵.数据指针
计次循环首 (检测框数, i
)

类别分数.指针 = 数据指针.指针

类别分数.
偏移 (4
)

分数.
初始化指针 (1, 类数,
#矩阵_单通道小数型, 类别分数.指针
)
视觉_最小最大位置 (分数, 类最小分数, 类最大分数, 类最小分数位置, 类最大分数位置,
)

如果真 (类最大分数 > 置信度阈值
)


置信度数组.
加入小数型 (类最大分数
)

目标类别ID数组.
加入整数型 (类最大分数位置.横坐标
)


横坐标 = 数据指针.
读 (0
) × 缩放因子X


纵坐标 = 数据指针.
读 (1
) × 缩放因子Y


宽 = 数据指针.
读 (2
) × 缩放因子X


高 = 数据指针.
读 (3
) × 缩放因子Y


角度 = 数据指针.
读 (19
)


余弦值 =
求余弦 (角度
)

正弦值 =
求正弦 (角度
)


宽旋转量.
初始化 (宽 ÷ 2 × 余弦值, 宽 ÷ 2 × 正弦值
)

高旋转量.
初始化 (-高 ÷ 2 × 正弦值, 高 ÷ 2 × 余弦值
)


顶点坐标.
初始化 (横坐标, 纵坐标
)

边界框数顶点数组.
清空 ()

边界框数顶点数组.
加入坐标二维小数型结构 (顶点坐标.
加 (宽旋转量
).
加 (高旋转量
))


边界框数顶点数组.
加入坐标二维小数型结构 (顶点坐标.
加 (宽旋转量
).
减 (高旋转量
))


边界框数顶点数组.
加入坐标二维小数型结构 (顶点坐标.
减 (宽旋转量
).
减 (高旋转量
))


边界框数顶点数组.
加入坐标二维小数型结构 (顶点坐标.
减 (宽旋转量
).
加 (高旋转量
))



边界框数组.
加入旋转矩形类 (旋转矩形P (边界框数顶点数组.
取坐标二维小数型结构 (1
), 边界框数顶点数组.
取坐标二维小数型结构 (2
), 边界框数顶点数组.
取坐标二维小数型结构 (3
))
)


边界框数顶点二维数组.
加入数组容器 (边界框数顶点数组
)


数据指针.
偏移 (属性数
)
计次循环尾 () 视觉_非最大抑制旋转框 (边界框数组, 置信度数组, 置信度阈值, 非极大值抑制阈值, 检测框的索引, 1, 0
)
计次循环首 (检测框的索引.
成员数 (), i
)
索引 = 检测框的索引.
取整数型 (i
) + 1
绘制预测 (目标类别ID数组.
取整数型 (索引
), 置信度数组.
取小数型 (索引
), 边界框数顶点二维数组.
取数组容器 (索引
), 图片
)
计次循环尾 ()|
绘制预测 | | |
|
类ID | 整数型 | | | |
置信度 | 小数型 | | | | 边界框数顶点数组 | 数组容器 | | | | 图片 | 数据矩阵类 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
标签 | 文本型 | | |
i | 整数型 | | |
基线 | 整数型 | | |
左边 | 整数型 | | |
顶边 | 整数型 | | |
标签尺寸 | 尺寸整型结构 | | |
标签 =
到文本 (类ID
) +
“:” +
到文本 (四舍五入 (置信度 × 100, 1
)) +
“%”
计次循环首 (4, i
)
视觉_线小数 (图片, 边界框数顶点数组.
取坐标二维小数型结构 (i
), 边界框数顶点数组.
取坐标二维小数型结构 (i % 4 + 1
),
标量 (255, 255, 255
), 2, 8, 0
)
计次循环尾 ()视觉_圆小数 (图片, 边界框数顶点数组.
取坐标二维小数型结构 (1
), 3,
标量 (0, 0, 255
), -1, 8, 0
)标签尺寸 =
视觉_获取文本尺寸 (标签,
#字体_简易无衬线, 0.5, 1, 基线
)左边 = 边界框数顶点数组.
取坐标二维小数型结构 (1
).横坐标
顶边 =
视觉_取最大值 (边界框数顶点数组.
取坐标二维小数型结构 (1
).纵坐标, 标签尺寸.高
)视觉_矩形坐标 (图片,
坐标二维整型 (左边, 顶边 - 标签尺寸.高
),
坐标二维整型 (左边 + 标签尺寸.宽, 顶边 + 基线
),
标量 (255, 255, 255
), -1, 8, 0
)视觉_放置文本 (图片, 标签,
坐标二维整型 (左边, 顶边
),
#字体_简易无衬线, 0.5,
标量 (), 1, 8,
假)变量名 | 类 型 | 静态 | 数组 | 备 注 |
最大值 | 整数型 | | |
返回图 | 数据矩阵类 | | |
最大值 =
视觉_取最大值 (图.列数, 图.行数
)返回图.
初始化 (最大值, 最大值,
#矩阵_三通道字节型U, 标量 (114, 114, 114
))
图.
复制 (返回图.
感兴区域 (矩形整型 (0, 0, 图.列数, 图.行数
)),
)返回 (返回图
)