📚 知识库

06文字识别

作者: aklai 更新时间: 2026-01-13 02:05 浏览次数: 87

文字识别功能使用教程

概述

文字识别功能是基于文字识别(光学字符识别)技术的智能检测系统,能够识别屏幕上的文字内容并执行相应的操作。系统支持两种主要的动作类型:文字识别->检测文字识别->点击,为自动化脚本提供强大的文字交互能力。

支持的动作类型

  • 文字识别->检测 (文字识别->检测): 检测屏幕上是否存在指定文字

  • 文字识别->点击 (文字识别->点击): 检测文字并点击其位置

核心特性

  • 高效批量检测: 一次文字识别识别多个目标文字,大幅提升检测效率

  • 智能重试机制: 支持自动重试,提高识别成功率

  • 精确定位控制: 支持ROI区域限制和精确偏移设置

  • 灵活后续操作: 丰富的成功/失败后处理选项

  • 模糊匹配支持: 精确匹配和模糊匹配两种检测模式

核心概念

文字识别技术原理

文字识别(Optical Character Recognition)通过图像处理和机器学习技术,将图像中的文字转换为可编辑的文本数据。

识别流程

  1. 截图获取: 捕获当前屏幕画面

  2. 图像预处理: 优化图像质量,提高识别准确率

  3. 文字定位: 定位图像中的文字区域

  4. 字符识别: 将文字区域转换为文本数据

  5. 结果匹配: 将识别结果与目标文字进行匹配

性能优化机制

批量文字识别检测:


传统方式: 每个目标单独文字识别 → N次文字识别调用

优化方式: 一次文字识别识别 → 检测所有目标 → 1次文字识别调用

效率提升: N倍性能提升(N为目标数量)

文字识别结果复用:

  • 相同ROI区域的多个目标共享文字识别结果

  • 减少重复识别,提升整体性能

  • 支持结果缓存机制

检测模式对比

| 特性 | 文字识别->检测 | 文字识别->点击 |

|——|—————|—————|

| 主要功能 | 仅检测文字是否存在 | 检测文字并执行点击操作 |

| 返回结果 | 布尔值(存在/不存在) | 点击执行状态 |

| 应用场景 | 状态判断、条件检测 | 界面交互、按钮点击 |

| 配置复杂度 | 相对简单 | 需要额外的点击参数配置 |

| 性能开销 | 低(仅文字识别识别) | 中(文字识别 + 点击操作) |

文字识别->检测 详解

功能概述

文字识别->检测用于判断屏幕上是否存在指定的文字内容,常用于:

  • 状态检测: 判断应用是否处于特定状态

  • 页面识别: 确认当前所在的页面或界面

  • 条件判断: 作为条件流程控制的判断条件

  • 内容验证: 验证特定内容是否出现

基本配置

1. 选择动作类型

在脚本编辑界面中:

  1. 点击 “添加动作” 按钮

  2. 选择 “文字识别->检测” 动作类型

  3. 进入文字识别检测配置界面

2. 检测模式选择

系统提供两种检测模式:

标准模式 (推荐):

  • 识别多个文字目标,找到任意一个即成功

  • 支持批量文字识别检测,性能优化

  • 配置简单,适合大多数场景

多对象组模式 (高级):

  • 多个对象组,每组有独立的检测目标和处理逻辑

  • 详细说明请参考《多对象组功能使用教程》

3. 添加检测目标

文字目标配置:


目标文字: "确定"          # 要检测的文字内容

模糊匹配: 关闭           # 是否启用模糊匹配

ROI区域: 可选             # 限制识别区域

添加多个目标:

  • 点击 “添加文字识别目标” 按钮增加新目标

  • 支持同时检测多个不同文字

  • 任意一个目标被找到即认为检测成功

4. ROI区域设置

ROI(Region of Interest)用于限制文字识别的区域,提高识别精度和性能。

配置方式:


起点坐标: X(20%) Y(20%)    # 识别区域左上角

终点坐标: X(80%) Y(80%)    # 识别区域右下角

说明: 通过两个对角点确定识别区域

      数值为屏幕百分比坐标

使用建议:

  • 缩小识别区域可以提高精度

  • 避免包含干扰文字的区域

  • 确保目标文字完全在ROI区域内

配置示例

示例1: 简单状态检测

场景: 检测应用是否显示”登录成功”提示


动作类型: 文字识别->检测

检测模式: 标准模式

文字识别目标1:

  目标文字: "登录成功"

  模糊匹配: 关闭

  ROI区域: 未设置 (全屏检测)

重试机制:

  启用重试: 激活

  重试次数: 3

检测成功后操作: 无操作

检测失败后操作: 跳转到动作 1

示例2: 多文字状态判断

场景: 检测页面是否加载完成(显示”完成”、”加载完毕”或”ready”任一文字)


动作类型: 文字识别->检测

检测模式: 标准模式

文字识别目标1:

  目标文字: "完成"

  模糊匹配: 关闭

文字识别目标2:

  目标文字: "加载完毕"

  模糊匹配: 关闭

文字识别目标3:

  目标文字: "ready"

  模糊匹配: 关闭

重试机制:

  启用重试: 激活

  重试次数: 5

检测成功后操作: 跳转到分组 "主要流程"

检测失败后操作: 执行动作组 "页面异常处理"

示例3: 区域限制检测

场景: 仅在屏幕上半部分检测标题文字


动作类型: 文字识别->检测

检测模式: 标准模式

文字识别目标1:

  目标文字: "用户中心"

  模糊匹配: 关闭

  ROI区域:

    起点X: 0%   起点Y: 0%

    终点X: 100% 终点Y: 50%

重试机制:

  启用重试: 激活

  重试次数: 2

检测成功后操作: 无操作

检测失败后操作: 无操作

模糊匹配功能

精确匹配 vs 模糊匹配

精确匹配 (默认):

  • 识别文字必须完全等于目标文字

  • 大小写敏感

  • 适合按钮文字、固定标签等

模糊匹配:

  • 识别文字包含目标文字即可

  • 大小写不敏感

  • 适合动态内容、部分文字匹配

使用场景对比


# 精确匹配示例

目标文字: "确定"

识别结果: "确定" → ✅ 匹配成功

识别结果: "确定按钮" → ❌ 匹配失败

识别结果: "CONFIRM" → ❌ 匹配失败

# 模糊匹配示例  

目标文字: "确定"

模糊匹配: 激活

识别结果: "确定" → ✅ 匹配成功

识别结果: "确定按钮" → ✅ 匹配成功

识别结果: "点击确定继续" → ✅ 匹配成功

重试机制详解

重试原理

当文字识别识别失败时,系统会自动:

  1. 重新截取屏幕画面

  2. 再次执行文字识别识别

  3. 重复此过程直到成功或达到重试上限

重试策略配置


启用重试: 激活/关闭

重试次数: 1-10 (推荐 3-5 次)

总尝试次数 = 1 + 重试次数

例如: 重试次数设为3,总共会尝试4次

重试间隔

系统在每次重试间会:

  • 等待3秒确保截图完成

  • 重新获取最新的屏幕画面

  • 执行完整的文字识别识别流程

后续操作配置

检测完成后可以配置不同的后续操作:

检测成功后操作

  1. 无操作: 仅执行检测,继续下一个动作

  2. 执行动作组: 跳转到指定的动作组

  3. 跳转到动作: 跳转到脚本中的指定动作编号

  4. 跳转到分组: 跳转到脚本中的指定分组

检测失败后操作

提供与成功后操作相同的选项,用于处理识别失败的情况。

配置建议:

  • 成功后操作:继续主要流程

  • 失败后操作:错误处理或重试流程

文字识别->点击 详解

功能概述

文字识别->点击在检测到指定文字后,会自动点击该文字的位置。主要用于:

  • 按钮点击: 点击界面上的文字按钮

  • 菜单选择: 点击菜单项或选项

  • 链接跳转: 点击文字链接

  • 表单操作: 点击输入框、下拉选择等

基本配置

1. 点击偏移设置

由于文字的实际可点击区域可能与文字中心不完全重合,系统提供多种偏移设置:

随机偏移:


点击偏移: 5像素 (推荐)

作用: 在文字中心周围随机偏移,模拟真实用户点击

计算: 随机偏移范围 [-5, +5] 像素

精确偏移:


精确偏移X: 10像素    # 向右偏移10像素

精确偏移Y: -5像素    # 向上偏移5像素

作用: 精确调整点击位置到最佳点击区域

偏移组合:


最终点击位置 = 文字中心 + 精确偏移 + 随机偏移

2. ROI区域设置

与检测功能相同,支持限制识别区域:

  • 提高识别精度

  • 避免误点击其他区域的相同文字

  • 优化性能

配置示例

示例1: 简单按钮点击

场景: 点击”确定”按钮


动作类型: 文字识别->点击

检测模式: 标准模式

文字识别目标1:

  目标文字: "确定"

  模糊匹配: 关闭

  点击偏移: 5像素

  精确偏移X: 0像素

  精确偏移Y: 0像素

  ROI区域: 未设置

重试机制:

  启用重试: 激活

  重试次数: 3

点击成功后操作: 无操作

点击失败后操作: 跳转到动作 1

示例2: 精确定位点击

场景: 点击导航栏中的”设置”,需要精确偏移避免点击到图标


动作类型: 文字识别->点击

检测模式: 标准模式

文字识别目标1:

  目标文字: "设置"

  模糊匹配: 关闭

  点击偏移: 3像素

  精确偏移X: 15像素  # 向右偏移避开图标

  精确偏移Y: 0像素

  ROI区域:

    起点X: 0%   起点Y: 0%

    终点X: 100% 终点Y: 20%  # 限制在屏幕上方导航区域

重试机制:

  启用重试: 激活

  重试次数: 2

点击成功后操作: 等待 2秒 (等待页面加载)

点击失败后操作: 执行动作组 "导航异常处理"

示例3: 多选择点击

场景: 在列表中点击任意可用选项(”选择”、”确认”、”OK”)


动作类型: 文字识别->点击

检测模式: 标准模式

文字识别目标1:

  目标文字: "选择"

  模糊匹配: 关闭

  点击偏移: 5像素

文字识别目标2:

  目标文字: "确认"

  模糊匹配: 关闭

  点击偏移: 5像素

文字识别目标3:

  目标文字: "OK"

  模糊匹配: 关闭

  点击偏移: 5像素

重试机制:

  启用重试: 激活

  重试次数: 3

点击成功后操作: 跳转到分组 "选择完成处理"

点击失败后操作: 执行动作组 "无可选项处理"

点击精度优化

1. 坐标转换机制

系统会自动将识别坐标转换为实际屏幕坐标:


识别坐标 (基于截图) → 屏幕坐标 (基于设备分辨率)

2. 偏移策略

推荐偏移配置:

  • 小按钮: 点击偏移 3-5像素

  • 大按钮: 点击偏移 5-10像素

  • 文字链接: 点击偏移 2-3像素

  • 列表项: 点击偏移 5-8像素

3. ROI区域优化

最佳实践:

  • 按钮区域: 限制在按钮周围区域

  • 菜单项: 限制在菜单范围内

  • 导航栏: 限制在屏幕顶部区域

  • 底部操作: 限制在屏幕底部区域

性能优化策略

批量文字识别优化

优化原理


传统方式:

目标1 → 文字识别调用1 → 识别结果1 → 检查匹配

目标2 → 文字识别调用2 → 识别结果2 → 检查匹配

目标3 → 文字识别调用3 → 识别结果3 → 检查匹配

总计: 3次文字识别调用

优化方式:

(目标1, 目标2, 目标3) → 1次文字识别调用 → 完整识别结果 → 批量检查匹配

总计: 1次文字识别调用

性能提升: 3倍效率提升

自动优化条件

系统会在以下情况自动启用批量优化:

  • 多个目标使用相同的ROI区域

  • 多个目标都是全屏识别

  • 目标数量 ≥ 2个

手动优化建议

  • 合理设置ROI区域,相同区域的目标会自动批量处理

  • 避免过多不必要的独立ROI区域

  • 优先使用标准模式而非多对象组模式

ROI区域优化

性能影响


全屏识别: 100% 区域 → 处理时间 100%

半屏识别: 50% 区域 → 处理时间 ~60%

1/4屏识别: 25% 区域 → 处理时间 ~40%

最佳实践

  1. 精确划分: 根据界面布局合理划分ROI区域

  2. 避免重叠: 不同功能区域使用不同的ROI

  3. 适度限制: 既要包含目标,又要排除干扰

  4. 性能平衡: 在精度和性能之间找到平衡点

重试机制优化

重试次数建议


网络应用: 3-5次 (考虑网络延迟)

本地应用: 2-3次 (响应较快)

游戏应用: 3-4次 (界面变化频繁)

系统界面: 2次 (较稳定)

重试间隔设计

系统固定3秒重试间隔,原因:

  • 确保截图服务完成文件写入 (2秒)

  • 预留图像处理时间 (1秒)

  • 避免过于频繁的重试

高级应用场景

场景1: 动态内容检测

业务需求: 检测聊天应用中的新消息提示


# 动作1: 检测新消息

动作类型: 文字识别->检测

检测模式: 标准模式

文字识别目标1:

  目标文字: "新消息"

  模糊匹配: 激活  # 可能显示为"1条新消息"、"5条新消息"等

文字识别目标2:

  目标文字: "unread"

  模糊匹配: 激活

ROI区域:

  起点X: 70%  起点Y: 0%

  终点X: 100% 终点Y: 30%  # 限制在右上角通知区域

重试机制:

  启用重试: 激活

  重试次数: 2

检测成功后操作: 跳转到分组 "处理新消息"

检测失败后操作: 无操作 (继续其他流程)

场景2: 多状态界面适配

业务需求: 适配不同状态的登录界面


# 动作1: 检测当前登录状态

动作类型: 文字识别->检测

检测模式: 标准模式

文字识别目标1:

  目标文字: "已登录"

  模糊匹配: 关闭

文字识别目标2:

  目标文字: "登录成功"

  模糊匹配: 关闭

文字识别目标3:

  目标文字: "欢迎回来"

  模糊匹配: 激活

重试机制:

  启用重试: 激活

  重试次数: 3

检测成功后操作: 跳转到分组 "主功能区"

检测失败后操作: 跳转到分组 "执行登录"

# 动作2: 执行登录操作

动作类型: 文字识别->点击

检测模式: 标准模式

文字识别目标1:

  目标文字: "登录"

  模糊匹配: 关闭

  点击偏移: 5像素

  ROI区域:

    起点X: 20%  起点Y: 70%

    终点X: 80%  终点Y: 100%  # 限制在底部按钮区域

点击成功后操作: 等待 3秒

点击失败后操作: 执行动作组 "登录异常处理"

场景3: 表单自动化填写

业务需求: 自动化表单填写流程


# 动作1: 点击用户名输入框

动作类型: 文字识别->点击

文字识别目标1:

  目标文字: "用户名"

  点击偏移: 8像素

  精确偏移X: 50像素  # 向右偏移到输入框区域

# 动作2: 输入用户名

动作类型: 粘贴

粘贴内容: "myusername"

# 动作3: 点击密码输入框

动作类型: 文字识别->点击

文字识别目标1:

  目标文字: "密码"

  点击偏移: 8像素

  精确偏移X: 40像素

# 动作4: 输入密码

动作类型: 粘贴

粘贴内容: "mypassword"

# 动作5: 点击提交按钮

动作类型: 文字识别->点击

文字识别目标1:

  目标文字: "提交"

  点击偏移: 5像素

# 动作6: 验证提交结果

动作类型: 文字识别->检测

文字识别目标1:

  目标文字: "提交成功"

  模糊匹配: 激活

检测成功后操作: 跳转到分组 "提交完成"

检测失败后操作: 执行动作组 "提交失败处理"

错误处理与调试

常见问题诊断

1. 识别失败问题

症状: 文字识别一直无法识别目标文字

可能原因:

  • 文字目标设置错误

  • ROI区域设置过小或位置错误

  • 屏幕截图质量问题

  • 文字样式特殊(艺术字、特殊字体等)

解决方案:


1. 检查文字目标:

   - 确认目标文字拼写正确

   - 尝试启用模糊匹配

   - 简化文字目标(避免复杂词汇)

2. 调整ROI区域:

   - 扩大ROI识别范围

   - 验证ROI坐标设置正确

   - 尝试全屏识别排除ROI问题

3. 优化截图质量:

   - 增加重试次数

   - 检查屏幕分辨率设置

   - 确认应用界面清晰显示

4. 替代方案:

   - 改用图像识别功能

   - 使用坐标点击方式

   - 调整应用显示设置

2. 点击位置不准确

症状: 识别成功但点击位置偏移

解决方案:


1. 调整点击偏移:

   - 减小随机偏移范围

   - 设置精确偏移补正

   - 测试不同偏移值

2. 优化ROI区域:

   - 确保目标文字完全在ROI内

   - 避免ROI边界截断文字

   - 使用合适的ROI尺寸

3. 检查坐标转换:

   - 验证设备分辨率设置

   - 检查屏幕缩放比例

   - 确认蓝牙连接正常

3. 性能问题

症状: 文字识别识别速度过慢

优化方案:


1. 启用批量优化:

   - 合并相同ROI区域的目标

   - 减少独立ROI区域数量

   - 使用标准模式而非多对象组

2. 优化ROI设置:

   - 缩小识别区域范围

   - 精确定位目标区域

   - 避免全屏识别

3. 调整重试策略:

   - 减少不必要的重试次数

   - 优化失败后操作流程

   - 使用合理的超时设置

调试技巧

1. 日志分析

系统会详细记录文字识别执行过程:


[脚本名] 动作#3 执行文字识别检测操作: 搜索多个文字 ["确定", "OK"]

[脚本名] 文字识别检测区域: 全屏

[脚本名] 开始文字识别识别 - 目标文字: "确定", 模糊匹配: 关闭

[脚本名] 文字识别识别结果: 共找到5个文字元素

[脚本名] 找到匹配文字: 确定 位置: (650, 450)

日志分析要点:

  • 检查文字识别识别是否正常执行

  • 确认识别结果包含期望的文字

  • 验证匹配逻辑是否正确

2. 分步测试

测试流程:

  1. 先使用简单的单一目标测试

  2. 确认基本功能正常后增加复杂度

  3. 逐步添加ROI区域限制

  4. 最后调整偏移和重试参数

3. 截图验证

手动检查截图文件验证:

  • 截图是否包含目标文字

  • 文字是否清晰可读

  • ROI区域是否覆盖目标文字

最佳实践

1. 配置设计原则

简单性原则:

  • 优先使用标准模式

  • 避免过度复杂的ROI设置

  • 使用合理的重试次数

稳定性原则:

  • 选择稳定显示的文字作为目标

  • 避免使用动态变化的内容

  • 设置适当的容错机制

性能原则:

  • 利用批量文字识别优化

  • 合理设置ROI区域

  • 避免不必要的重试

2. 目标文字选择

优选文字特征:

  • 字体清晰,大小适中

  • 对比度高,容易识别

  • 文字内容相对固定

  • 在界面中位置稳定

避免文字特征:

  • 艺术字或特殊字体

  • 颜色过淡或过小的文字

  • 频繁变化的动态内容

  • 容易与背景混淆的文字

3. ROI区域设计

合理划分:


导航栏: X(0-100%) Y(0-15%)

内容区: X(0-100%) Y(15-85%)

操作栏: X(0-100%) Y(85-100%)

侧边栏: X(0-20%) Y(15-85%)

避免问题:

  • ROI区域过小导致目标文字被截断

  • ROI区域过大影响识别性能

  • 重叠的ROI区域导致重复识别

4. 后续操作设计

成功后操作:

  • 继续主要业务流程

  • 执行相关的后续动作

  • 跳转到下一个处理阶段

失败后操作:

  • 提供错误恢复机制

  • 重试或替代方案

  • 记录异常情况

与其他功能的协作

1. 与条件流程控制结合


# 条件检测

动作1: 条件流程 (IF_THEN)

检测配置:

  检测类型: 文字识别文字检测

  检测目标: ["登录成功"]

满足条件时操作: 跳转到分组 "主功能"

# 替代方案

动作2: 文字识别->检测

文字识别目标: "登录成功"

检测成功后操作: 跳转到分组 "主功能"

2. 与循环功能结合


# 循环检测直到成功

动作1: 循环开始

循环次数: 5

动作2: 文字识别->检测

文字识别目标: "加载完成"

检测成功后操作: 跳转到动作 5 (跳出循环)

动作3: 等待 2秒

动作4: 循环结束

动作5: 继续后续流程...

3. 与动作组结合


# 主脚本

动作1: 文字识别->检测

文字识别目标: "需要登录"

检测成功后操作: 执行动作组 "登录流程"

# 动作组 "登录流程"

动作A1: 文字识别->点击

文字识别目标: "登录按钮"

动作A2: 等待 1秒

动作A3: 文字识别->点击

文字识别目标: "用户名输入框"

总结

文字识别功能是自动化脚本中最强大和实用的功能之一,通过合理的配置和使用,可以实现高度智能的文字交互自动化。

关键要点

  1. 理解两种模式: 掌握检测和点击模式的差异和应用场景

  2. 优化配置参数: 合理设置ROI区域、偏移参数和重试机制

  3. 利用性能优化: 充分利用批量文字识别检测提升执行效率

  4. 完善错误处理: 设计稳定的成功/失败后处理流程

  5. 注重调试验证: 通过日志分析和分步测试确保功能正确性

最佳实践总结

  • 从简单配置开始,逐步增加复杂度

  • 选择稳定清晰的文字作为检测目标

  • 合理设置ROI区域平衡精度和性能

  • 充分利用批量检测优化性能

  • 设计完善的错误处理和恢复机制

正确使用文字识别功能可以让您的自动化脚本更加智能、稳定和高效!