Skip to main content

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;
}
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实例`