函数名称

Yolo.RunModel 运行Yolo模型

函数功能

运行Yolo模型并识别返回目标

支持版本:按键精灵安卓版v4.2.0或以上版本

函数语法

result = Yolo.RunModel(index,sim[,options])

函数参数

参数名 参数类型 是否必选 参数说明
index int 运行识别的模型索引序号,建议取值范围:0-9
sim float 相似度阈值,过滤此相似度以下的结果,0到1之间的小数
options table 扩展参数集合,用于额外配置和未来扩展

函数返回

返回名 返回类型 返回说明
result table 返回响应结果信息的键值表

result 包含的字段

字段名 字段类型 字段说明
code int 执行函数的结果状态码,0为执行成功,非0为失败,失败原因查看msg字段
msg string 执行结果的描述,失败则描述具体的失败原因
data table 识别到结果内容的键值表

data 包含的字段:

字段名 字段类型 字段说明
text string 识别到目标的标签字符串
x int 识别到目标的左上角x坐标
y int 识别到目标的左上角y坐标
w int 识别到目标的范围宽度
h int 识别到目标的范围高度
score float 识别到目标的可信度,0到1之间的小数

代码范例

Dim paramPath,binPath,lablePath,ranTime,ret,modelPath = GetTempDir() & "yolov8/"
Dir.Create modelPath
//将配置文件通过附件释放或url下载放置到模型目录皆可
PutAttachment modelPath, "*"
paramPath = modelPath & "model.ncnn.param"
binPath = modelPath & "model.ncnn.bin"
lablePath = modelPath & "classes.txt"
TracePrint dir.Exist(paramPath),dir.Exist(binPath),dir.Exist(lablePath)
//设置模型1,ncnn简化版模型
ret = yolo.setModel(1, 640, paramPath, binPath, lablePath)
//设置模型2,ncnn标准版模型
//ret = yolo.setModel(2, 640, paramPath, binPath, lablePath,1,1,{"modelType":2})
If ret["code"] = 0 Then 
    TracePrint "set model successed"
Else 
    TracePrint "set model failed,error msg:"&ret["msg"]
    ExitScript
End If

Do
    ranTime = TickCount()
    //通过已设置模型1识别返回目标
    ret = Yolo.runModel(1,0.75)
    TracePrint TickCount()-ranTime
    If ret["code"] = 0 Then 
        For i = 1 to len(ret["data"])
            TracePrint "识别到目标:" & ret["data"][i]["text"] &_
            ",左上角x坐标:" & ret["data"][i]["x"] &_
            ",左上角y坐标:" & ret["data"][i]["y"] &_
            ",区域宽:" & ret["data"][i]["w"] &_
            ",区域高:" & ret["data"][i]["h"] &_
            ",可信度:" & ret["data"][i]["score"]
        Next    
    Else
        TracePrint "error code:"& ret["code"] &",error msg:"&ret["msg"]
    End If
    Delay 2000
Loop

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐