跳到主要内容

💰 AiYoloDetectObjects 检测对象

🎯功能

需要先加载Ai模块. 在指定范围内检测对象

📜语法

结果 = dm.AiYoloDetectObjects(x1, y1, x2, y2, 置信度, 交并比)

📥参数

参数数据类型解释
x1整型数区域的左上角横坐标
y1整型数区域的左上角纵坐标
x2整型数区域的右下角横坐标
y2整型数区域的右下角纵坐标
置信度单精度浮点数也可以认为是相似度. 超过这个置信度的对象才会被检测
交并比单精度浮点数用于对多个检测框进行合并. 越大越不容易合并(很多框重叠). 越小越容易合并(可能会把正常的框也给合并). 所以这个值一般建议0.4-0.6之间. 可以在Yolo综合工具里进行测试.

📤返回

字符串, 返回的是所有检测到的对象.格式是"类名,置信度,x,y,w,h|....". 如果没检测到任何对象,返回空字符串

💡示例

dm.AiYoloUseModel 0
objects = dm.AiYoloDetectObjects(0,0,2000,2000,0.5,0.45)
if len(objects) > 0 then
ss = split(objects,"|")
index = 0
count = UBound(ss) + 1
Do While index < count
TracePrint ss(index)
sss = split(ss(index),",")
class_info = int(sss(0))
prob_info = Csng(sss(1))
x = int(sss(2))
y = int(sss(3))
w = int(sss(4))
h = int(sss(5))
index = index+1
Loop
end if

📘备注

模块内部是全局的,所以调用此接口时得确保没有其它接口去访问此模型. 如果多个线程里,UseModel的序号是相同的,那么如果同时执行此接口时,会排队执行