autojs合并EasyEdge

本文涉及的产品
企业资质识别,企业资质识别 200次/月
OCR统一识别,每月200次
文档理解,结构化解析 100页
简介: 牙叔教程 简单易学

牙叔教程 简单易学


声明

本教程仅用于学习, 禁止用于其他用途


使用场景

autojs打包后的app合并百度EasyEdge的功能


百度EasyEdge包括

  • ocr
  • 目标检测
  • 人脸检测
  • 野生动物分类
  • 菜品识别
  • 动物识别
  • 车辆检测
  • ......


效果展示


autojs版本

8.7.7-0


合并简介

把百度EasyEdge app里面的

  • classes.dex
  • so
  • assets

添加到autojs打包后的app里面

就可以在autojs中使用百度EasyEdge了


合并详细步骤

1. 去百度EasyEdge官网下载ocr demo体验app


2. 用autojs打包一个用于调试的app
"ui";
ui.layout(
  <vertical>
    <text gravity="center" textStyle="bold" textSize="30sp">
      牙叔教程 简单易学
    </text>
    <input id="代码内容" w="*"></input>
    <button id="执行代码">执行代码</button>
    <input id="脚本文件路径" w="*"></input>
    <button id="执行脚本文件">执行脚本文件</button>
    <input id="项目入口文件路径" w="*"></input>
    <button id="执行项目">执行项目</button>
    <button id="日志">日志</button>
    <button id="停止脚本" text="停止脚本"></button>
  </vertical>
);
ui.代码内容.setText('toastLog("hello");');
ui.脚本文件路径.setText("/sdcard/脚本/main.js");
ui.项目入口文件路径.setText("/sdcard/脚本/测试/main.js");
ui.执行代码.click(function () {
  eval(ui.代码内容.text());
});
ui.执行脚本文件.click(function () {
  engines.execScriptFile(ui.脚本文件路径.text().trim());
});
ui.执行项目.click(function () {
  let entryFilePath = ui.项目入口文件路径.text().trim();
  engines.execScriptFile(entryFilePath, { path: entryFilePath.replace(/\/[\w.]+?$/, "") });
});
ui.日志.click(function () {
  app.startActivity("console");
});
ui.停止脚本.click(function () {
  engines.all().map((ScriptEngine) => {
    if (engines.myEngine().toString() !== ScriptEngine.toString()) {
      ScriptEngine.forceStop();
    }
  });
});


3. 用mt提取牙叔debug和EasyEdge, 两个app


4. 左边查看牙叔debug


5. 右边查看EasyEdge


6. 右侧的classes.dex改名为classes2.dex, 然后添加到左边


7. 右侧的assets文件夹里面的文件, 全部添加到左边的assets里面


8. 右侧的lib/armeabi-v7a/里面的所有文件都添加到左侧lib/armeabi-v7a/里面, 除了libc++_shared.so


9. 卸载牙叔debug, 安装刚刚修改完的牙叔debug


10. 修改 TestInferOcrTask.java 为js文件, 给autojs使用, 请修改图片路径


importClass(android.content.Context);
importClass(android.graphics.Bitmap);
importClass(android.graphics.BitmapFactory);
importClass(android.graphics.Point);
importClass(android.widget.TextView);
importClass(com.baidu.ai.edge.core.infer.InferConfig);
importClass(com.baidu.ai.edge.core.infer.InferManager);
importClass(com.baidu.ai.edge.core.ocr.OcrResultModel);
importClass(java.io.InputStream);
importClass(java.util.List);
/**
 * 通用arm 开源OCR模型
 */
let NUM_OF_API_CALLS = 1;
let CONFIDENCE = 0.3;
/* 1. 准备配置类,初始化Manager类。可以在onCreate或onResume中触发,请在非UI线程里调用 */
let config = new InferConfig(context.getAssets(), "infer-ocr/config.json");
let manager = new InferManager(context, config, "");
/* 2.1 准备图片,作为Bitmap输入 */
let filePath = java.lang.String("/sdcard/脚本/autojs-test/按钮.png");
log("文件是否存在 = " + files.exists(filePath));
let image = images.read(filePath);
image = image.getBitmap();
log("image = " + image);
log("Image size: " + image.getWidth() + "*" + image.getHeight());
/* 2.2 推理图片及解析结果 */
let results = null;
let resStr;
for (let j = 0; j < NUM_OF_API_CALLS; j++) {
  // 在模型销毁前可以不断调用。但是不支持多线程
  results = manager.ocr(image, CONFIDENCE);
  // 解析结果
  if (results != null) {
    resStr = "{size:" + results.size() + ", firstRes:{";
    if (results.size() > 0) {
      resStr += "labelName:" + results.get(0).getLabel() + ", box:{";
      let points = results.get(0).getPoints();
      var len = points.size();
      log("len = " + len);
      for (var i = 0; i < len; i++) {
        let point = points.get(i);
        resStr += "[" + point.x + "," + point.y + "]";
      }
      resStr += "}";
    }
    resStr += "}}";
  } else {
    resStr = "{}";
  }
  log("Predict " + j + ": " + resStr + "\n");
}
/* 3. 销毁模型。可以在onDestroy或onPause中触发,请在非UI线程里调用 */
!image.isRecycled() && image.recycle();
manager.destroy();
log("Finish running\n");


11.保存上面的文件到 /sdcard/脚本main.js


12. 在牙叔debug中, 点击执行脚本文件


其他注意事项

manager只允许实例化一个, 如果代码出错, 请重启app


参考文章


声明

部分内容来自网络

相关文章
|
7月前
AutoJs4.1.0 部局范围次分析
AutoJs4.1.0 部局范围次分析
75 0
|
Java Android开发
autojs非常见函数2
autojs非常见函数2
1077 0
|
人工智能 前端开发 Java
autojs非常见函数1
牙叔教程 简单易懂
1993 0
|
前端开发 数据可视化 测试技术
autojs裁剪找图
牙叔教程 简单易
294 0
|
7月前
分享一下基于autojs4的片多多源码
分享一下基于autojs4的片多多源码
81 1
|
7月前
|
缓存 数据安全/隐私保护 Python
AutoJs超神级代码分享大更新
AutoJs超神级代码分享大更新
211 0
|
7月前
|
缓存
Autojs4.1.0实战教程---火山极速版清理缓存
Autojs4.1.0实战教程---火山极速版清理缓存
73 0
|
数据可视化 测试技术
autojs查找透明图
牙叔教程 简单易懂
311 0
|
Go Android开发
autojs拖拽排序删除
牙叔教程 简单易懂
320 0
autojs之选择文件
使用场景 调用手机自带的文件管理 选择文件
510 0