目的
按键精灵是一款可以模拟鼠标和键盘操作的自动化工具。它可以帮助用户自动完成一些重复的、繁琐的任务,节省大量人工操作的时间。但按键精灵是不包含图色功能,无法识别屏幕上的图像,根据图像的变化自动执行相应的操作。本篇文章主要讲解下按键精灵纯本地离线yolo插件如何使用和集成。
准备工作
1、下载按键精灵手机助手开发工具

2、下载TomatoYolo纯本地离线文字识别插件:下载地址

- 目前插件支持yolov5\yolov8\yolov11,其他版本理论上也支持;
- 支持多个模型加载;
- 支持模型加密,保证模型安全
- 支持设定图片输入尺寸;
- 支持标签安全,可以以序号代替;
- 支持懒人的多线程;
- 超高的稳定性,速度快;
- 不联网、不联网、不联网;
插件集成
1、插件并解压,打开按键精灵,将TomatoOCR.luae文件,导入到按键精灵助手的插件命令中(点击插件命令,右键导入TomatoOCR.luae文件)


2、将armeabi-v7a/x86目录下的TomatoOCR文件和资源文件目录下的opt结尾的4个文件,添加到按键精灵助手中附件中

注:真机一般使用armeabi-v7a,模拟器一般使用x86
3、首先将训练的好的yolo模型通过调试工具【点击下载】转换成可用的模型,然后集成如下代码,init和setLicense代码是与OCR共用的,不需要重复调用.
注意:目前测试 v5、v8和v11 能正常使用,其他版本如不能使用,请联系客服。

4、记事本打开调用说明文件,并拷贝到项目的lua文件中,
//******************************************************************************
//******欢迎使用TomatoOCR文字识别插件,加入群【469843332】可获取最新版本!!******
//******************************************************************************
Import "TomatoOCR.luae"
dim tmp = GetTempDir()
TomatoOCR.clear(tmp) // 清楚释放的文件
TomatoOCR.PutAttachment (tmp) // 释放附件中的 opt文件和TomatoOCR
TomatoOCR.init (tmp) // 初始化
dim license = "" // 设置license,见授权码获取
dim remark = "测试" // 设置备注,可在控制台的列表中查看
dim flag = TomatoOCR.setLicense(license, remark)
TracePrint flag
// yolo初始化
dim key = "yolo1" // 可以同时初始化多个,这里通过key进行区分
dim yolo_secret = "" // yolo模型解密密钥
dim yolo_model_path = "" // yolo模型路径,必传
dim yolo_label_path = "" // yolo标签路径,可不传,不传返回的是分类编号
TomatoOCR.initYolo(key, yolo_secret, yolo_model_path, yolo_label_path)
// ----------------------注:以上代码全局只需写一次-------------------------------
Function yolo_start()
dim yolo_key = "yolo1"
dim size = 640 // 图片输入大小
dim score_thresh = 0.35 // 置信度阈值,默认0.35
dim nms_thresh = 0.45 // 非极大值抑制阈值,默认0.45
// 例子
SnapShot tmp & "test.png", x1, y1, x2 ,y2
// dim imageData = Image.SetRotation(tmp & "test.png", 270)
// Image.SavePixelData(imageData,tmp & "test.png") // 旋转图片270度,并保存到原路径中
dim result = TomatoOCR.yoloFile(yolo_key, tmp & "test.png", size, score_thresh, nms_thresh)
TracePrint(result)
If result <> "" Then
dim tmps = Encode.JsonToTable(result)
For Each tmp In tmps
dim label = tmp["label"]
dim score = tmp["score"]
dim location = tmp["location"]
TracePrint label, score, location[1], location[2], location[3], location[4]
TracePrint "中心点:", (location[1] + location[3])/2, (location[2] + location[4])/2
Next
End If
End Function
yolo_start()
5、 其中的方法说明如下
|------------------|----------------------------------------------------------------------------------------------------------------|
| 方法名 | 说明 |
| init | 初始化 |
| setLicense | license获取 |
| initYolo | 初始化yolo模型,四个参数: 1、可以同时初始化多个,这里通过key进行区分 2、yolo模型解密密钥 3、yolo模型路径,必传 4、 yolo标签路径,可不传,不传返回的是分类编号 |
| yoloFile | 五个参数: 1、这里通过key进行区分调用对应的yolo模型 2、image,图片 3、图片输入大小,默认640 4、置信度阈值,默认0.35 5、非极大值抑制阈值,默认0.45 如果识别为不到时,返回的数据为""字符串 |
| releaseYolo | 释放yolo模型 |
6、运行

以上就是所有的运行情况。
完毕
相对来说,在按键精灵进行插件开发还是比较困难的,官方提供的lua语言功能太少,原生插件集成无法采用直连的方式,但相比部署在服务器上,还是减少了很多资源占用情况,更加方便便捷。