AIWROK软件关闭/点赞场景 YOLOv5 检测示例
AIWROK软件关闭/点赞场景 YOLOv5 检测示例https://www.yuque.com/aiwork/nba2pr/cx3tzty1qm0xeg7u
// ====== 关闭/点赞场景 YOLOv5 检测示例 ======
//初始化yolov5
var yolo = new yoloV5();
// close模型文件在"资源"目录下,需要用getResPath()获取路径
var resPath = project.getResourcesPath();
var label = resPath + "close.txt";
var param = resPath + "close.param";
var bin = resPath + "close.bin";
printl("模型路径: " + bin);
//加载模型(GPU优先,无GPU走CPU)
var model;
if (yolo.CheckGPU == true) {
model = yolo.loadModel(label, param, bin, 4, false); // 4线程, GPU
} else {
model = yolo.loadModel(label, param, bin, 4, true);// 4线程, CPU
}
if (model != null) {
printl("close模型加载失败,请检查close.bin/param/txt是否在资源目录中");
} else {
printl("close模型加载成功,标签: 赞 / 收藏");
//截图(全屏)
var img = screen.screenShotFull();
try {
//检测,返回JSON字符串
var resStr = yolo.detectJson(img, 0.45, 0.55, 640);
printl("检测结果: " + resStr);
//JSON字符串转数组
var res;
try {
res = JSON.parse(resStr);
} catch (e) {
printl("JSON解析失败: " + e);
res = null;
}
//解析结果并逐个点击
if (res && res.length > 0) {
for (var i = 0; i < res.length; i++) {
var item = res;
var name = item["标签"]; // 标签名: "赞" 或 "收藏"
var conf = item["精度"]; // 置信度
var x = item["X"]; // 检测框中心X
var y = item["Y"]; // 检测框中心Y
printl("检测到 [" + name + "] 置信度:" + conf + " 坐标:" + x + "," + y);
//无碍模式点击:try-catch包裹,失败不影响后续
try {
auto.clickPoint(x, y);
printl("点击完成: " + x + "," + y);
} catch (e) {
printl("点击异常(已忽略): " + e);
}
sleep.second(1);
}
} else {
printl("未检测到目标");
}
} finally {
//释放截图Mat,防止内存泄漏
try { img.recycle(); } catch (e) {}
}
}
//释放模型
yolo.Close();
printl("检测完成,已释放模型");
页:
[1]