函数简介:

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

函数原型:

string AiYoloDetectObjects(x1, y1, x2, y2,prob,iou)

参数定义:

x1 整形数:区域的左上X坐标

y1 整形数:区域的左上Y坐标

x2 整形数:区域的右下X坐标

y2 整形数:区域的右下Y坐标

prob单精度浮点数: 置信度,也可以认为是相似度. 超过这个prob的对象才会被检测

iou 单精度浮点数: 用于对多个检测框进行合并.  越大越不容易合并(很多框重叠). 越小越容易合并(可能会把正常的框也给合并). 所以这个值一般建议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的序号是相同的,那么如果同时执行此接口时,会排队执行.