一、引言:RPA 流程的“视觉”能力
挑战:传统的 RPA 严重依赖 UI 元素的底层属性(XPath, ID, Class)。但面对复杂的、定制化的 UI 元素(如图片按钮、Flash/内嵌组件)、动态验证码或环境兼容性问题(参考主题 16),这些属性往往失效或根本不存在。
痛点:流程因无法识别屏幕上的视觉元素而中断,特别是验证码的出现要求 RPA 具备强大的“视觉”处理能力。
目标:探讨如何将图像识别(Image Recognition)和光学字符识别(OCR)技术集成到 RPA 流程中,作为辅助或备用定位方案,提高流程的鲁棒性。
二、图像识别(Template Matching)在 RPA 中的应用
图像识别是一种通过比对屏幕截图与预存模板图片来实现元素定位的技术。
2.1 模板匹配原理与应用
原理:RPA 工具截取当前屏幕,然后使用算法(如 SIFT, SURF, 或简单的像素比对)在屏幕上搜索预先录制的模板图片。
应用场景:
图片按钮和图标:例如,企业微信中的**“发起群聊”图标或自定义表情包**。
不规则形状元素:无法通过矩形边框属性准确定位的元素。
环境差异适应:模板匹配对相对位置的变化不敏感,对绝对位置的变动有良好的适应性。
2.2 模板的鲁棒性优化
多模板策略:为一个元素创建多个不同状态、不同分辨率的模板截图,以应对环境变化(如亮色/暗色模式、高分屏)。
容错率设置:匹配时应设置合理的容错率(Threshold)(例如 90%)。容错率过高会导致微小像素变化即失败;过低则可能误识别。
三、光学字符识别(OCR)与动态验证码处理
OCR 技术允许 RPA读取屏幕上显示的文本,将其转化为可操作的字符串数据。
3.1 OCR 的核心应用
动态验证码:这是 OCR 在 RPA 中最重要的应用之一。流程将验证码区域截图,通过 OCR 引擎(如 Tesseract、Baidu AI 等)识别字符。
非结构化文本读取:读取客户端弹窗中的错误提示信息或状态文本,特别是那些无法通过底层属性获取的文本(参考主题 22)。
3.2 提高 OCR 准确率的技术细节
预处理(Pre-processing):在将截图发送给 OCR 引擎之前,进行图像优化:
灰度化与二值化:减少颜色信息,只保留文字与背景的对比。
去噪与平滑:消除验证码背景中的干扰点和线条。
标准化尺寸:统一图像的 DPI 和尺寸,提高识别率。
多模型与服务:对付复杂的、扭曲的验证码,可以集成高精度云端 OCR 服务,或训练专门的机器学习模型。
四、综合定位策略:图像与属性的结合
图像识别和 OCR 应作为 RPA 的辅助或备用方案,而非首选。
优先级:定位策略应遵循优先级:唯一 ID/Class Name > 精确 XPath > 图像识别/OCR。
验证:使用图像识别定位到元素后,应尝试获取其底层属性(如果有)进行二次验证,提高可靠性。
适应性定位:使用图像识别作为锚点(Anchor)。先通过图像识别定位到屏幕上的一个稳定区域(如标题栏),然后从该锚点出发,使用相对坐标或相对 XPath定位目标元素。
五、总结与建议
核心价值:图像识别赋予了 RPA **“视觉容错”**能力,使其能够处理传统方法无法解决的非结构化 UI 和验证码问题。
成本考量:图像识别的CPU 消耗通常高于属性定位,且识别耗时较长,应谨慎使用。
实践建议:在客户端版本升级或UI 属性频繁变动时(参考主题 16),图像识别可以作为流程的回退策略,确保流程的持续运行。
实施建议:客户联系功能启用步骤
操作步骤
- 权限申请
请通过QiWe开放平台管理后台,提交“客户联系”功能的使用权限申请。 - 获取访问凭证
请使用企业corpidcorpid(企业ID)和corpsecretcorpsecret(应用密钥)作为参数,调用相应接口以获取access_tokenaccess_token(访问令牌)。
目的
完成上述轻量级开发部署后,即可启用通过接口进行客户联系管理的能力。