YOLO函数
说明
yolov8Api.newYolov8 初始化yolov8实例,支持多实例
- 初始化yolov8实例
- 适配EC 10.15.0+
- @return
Yolov8Util
实例对象
function main() {
// 初始化YOLO实例
let yolov8s = yolov8Api.newYolov8();
// 初始化配置选项
let config = yolov8s.getDefaultConfig("yolov8s-640", 640, 0.25, 0.35, "ALL", 0, [
"aixin",
"pinglun"
])
logd("config : " + JSON.stringify(config))
// 初始化 训练过的模型
let paramPath = "/sdcard/model.ncnn.param";
let binPath = "/sdcard/model.ncnn.bin";
let inted = yolov8s.initYoloModel(config, paramPath, binPath);
if (inted) {
logd("初始化yolov8s成功");
} else {
logd("初始化yolov8s失败: " + yolov8s.getErrorMsg());
return;
}
// 截图bitmap格式
let bitmap = image.captureScreenBitmapEx()
// 读取本地图片
// let bitmap = image.readBitmap("/sdcard/a.png");
let result = yolov8s.detectBitmap(bitmap, []);
// 这个带参数的代表只过滤pinglun的分类数据
//let result = yolov8s.detectBitmap(bitmap, ["pinglun"]);
if (result == null || result == "") {
logd("yolov8s 无结果: " + yolov8s.getErrorMsg());
} else {
logd("yolov8s 结果: " + result);
}
if (bitmap != null) {
// 回收图片
bitmap.recycle();
}
// 在需要的时候释放,不要用一次释放一次
yolov8s.release();
}
main();
Yolov8Util.getDefaultConfig 获取 yolov8 默认配置
- 获取 yolov8 默认配置
- 适配EC 10.15.0+
- @param model_name 模型名称 默认写 yolov8s-640 即可
- @param input_size yolov8训练时候的imgsz参数,默认写640即可
- @param input_size 检测框系数,默认写0.25即可
- @param iou_thr 输出系数,,默认写0.35 即可
- @param bind_cpu 是否绑定CPU,选项为ALL,BIG,LITTLE 三个,默认写ALL
- @param use_vulkan_compute 是否启用硬件加速,1是,0否,默认写0 即可
- @param obj_names JSON数组,训练的时候分类名称例如 ["star","common","face"]
- @return JSON数据
代码例子请看 `初始化yolov8实例`
Yolov8Util.initYoloModel 初始化yolov8模型
- 初始化yolov8模型
- 具体如何生成param和bin文件,请参考文件的yolo使用章节,通过yolo的pt转成ncnn的param、bin文件
- 适配EC 10.15.0+
- @param map 参数表 参考 getDefaultConfig函数获取默认的参数
- @param paramPath param文件路径
- @param binPath bin文件路径
- @return boolean true代表成功 false代表失败
代码例子请看 `初始化yolov8实例`
Yolov8Util.detectBitmap 检测图片
- 检测图片
- 适配EC 10.15.0+
- 返回数据例如
[{"name":"heart","confidence":0.92,"left":957,"top":986,"right":1050,"bottom":1078}]
- name: 代表是分类,confidence:代表可信度,left,top,right,bottom代表结果坐标选框
- @param bitmap 安卓的bitmap对象
- @param obj_names JSON数组,不写代表不过滤,写了代表只取填写的分类
- @return string 字符串数据
代码例子请看 `初始化yolov8实例`
Yolov8Util.release 插入数据
- 释放yolov8资源
- 适配EC 10.15.0+
- @return boolean
代码例子请看 `初始化yolov8实例`
释放函数在脚本结束的的时候释放,无需要每次使用都释放
Yolov8Util.getErrorMsg 获取YOLOV8错误消息
- 获取YOLOV8错误消息
- 适配EC 10.15.0+
- @return string 字符串
代码例子请看 `初始化yolov8实例`