! 使用 CoreML 推理器对图像进行推理 (:predict)
声明
返回结果 = 视觉推理器对象:predict(需要推理的图片)
参数
- 需要推理的图片
图片对象,需要进行推理的图像参数
返回值
-
返回结果
表型目标检测模型返回结构
{
{
["y"] = number_value,
["x"] = number_value,
["w"] = number_value,
["h"] = number_value,
["confidence"] = number_value(0.0 ~ 100.0),
["name"] = string_value,
},
...
}图像分类模型返回结构
{
{
["confidence"] = number_value(0.0 ~ 100.0),
["name"] = string_value,
},
...
}其它类型模型返回结构
{
...
}
说明
- 软件版本在 1.3.8 或以上方可使用
- 不支持 iOS 13 以下版本系统
- 使用图像推理上下文对图像进行推理并返回推理结果
示例
compiled_model_path = XXT_HOME_PATH..'/models/yolo11m.mlmodelc' -- 编译好的模型存放位置
local noexecute = require('no_os_execute')
noexecute.rm_rf(compiled_model_path) -- 测试模型阶段每次都重新编译,模型训练完备不再修改可注释掉此行
if not file.exists(compiled_model_path) then -- 如果还没有编译好的模型,则编译一份
local tmp_path, err = coreml.compile_model(XXT_HOME_PATH..'/models/yolo11m.mlpackage') -- 编译模型
if not tmp_path then
error(err)
end
local noexecute = require('no_os_execute')
noexecute.cp_r(tmp_path, compiled_model_path) -- 将编译好的模型移动到指定位置
noexecute.rm_rf(tmp_path) -- 删除临时文件
end
vnrequest, err = coreml.new_vision_request(compiled_model_path) -- 从模型创建推理器
if not vnrequest then
error(err)
end
rets = vnrequest:predict(screen.image()) -- 使用推理器推理图片
nLog(rets)