一、简介
RPA (Robotic Process Automation, 机器人流程自动化)是在人工智能和自动化技术的基础上,依据预先录制的脚本与现有用户系统进行交互并完成预期任务的技术。
二、适用场景
适用于所有在数字化设备中完成的具有高重复性、强规则性的流程与工作任务。这些任务均可以通过软件机器人进行自动化,大大提高人的工作效率,降低企业成本。
网页上的数据批量采集
· 比如从指定网站上爬取外汇指标、中标数据、客户信息
· 外部系统依赖:在业务处理过程中必须从第三方系统/网站获取数据,并且该系统只有客户端没有接口的,比如人行征信检查、发票防伪查询等
重复繁琐的工作自动化完成
· 系统内部操作自动化:比如原有系统不支持批量操作,必须人工一条一条处理,就可以通过RPA实现批量审批、批量入账、批量回退等;
· 邮件、OA工单处理:扫描邮件或OA待办事项列表,根据主题自动收取附件,并根据附件内容自动完成转录到生产系统(比如保函开单),报备到第三方网站(如报备)、附件合并(比如数据调查)等;
· 外部系统报备:自动登录第三方系统,录入表单数据,完成数据报备的,比如国税局报税、房管局房贷网报备、人行对公户异动报备、中登机构异动报备等;
结合AI的智能场景
· 人脸识别:自动识别开户或交易视频中的人脸,通过和身份证的一致性校验完成身份认证等;
· 文字识别:自动识别企业营业执照、开户申请表完成后续开户系统转录;自动识别发票内容,完成发票自动入账等;
· 语音语义识别:完成识别语音及语义,完成话术校验、语音驱动等功能。
三、基本架构
编辑器
设计器是RPA的设计生产工具,用于建立软件机器人的配置或设计机器人。主要有以下功能:
1. 可视化流程图:一些RPA厂商为方便开发者更好地操作RPA开发平台,会推出流程图可视化操作。比如UiBot开发平台就包含三种视图,流程视图、可视化视图、源码视图,分别对应不同用户的需求。
2. 记录仪:也称之为“录屏”,用以配置软件机器人。就像Excel中的宏功能,记录仪可以记录用户界面(UI)里发生的每一次鼠标动作和键盘输入。
3. 插件/扩展:为了让配置的运行软件机器人变得简单,大多数平台都提供许多插件和扩展应用。一般提供Python、C/C++、Lua、.Net、js、java等多种编程语言的扩展接口。
运行器
运行器是用来运行在编辑器中完成编辑的已有软件机器人的工具。
控制器
主要用于软件机器人的部署与管理,包括开始/停止机器人的运行,为机器人制作日程表,维护和发布代码,重新部署机器人的不同任务,管理许可证和凭证等。
四、技术实现
rpa主要以来于以下技术:
1.抓屏技术
根据信息抓取的技术实现方式划分,抓屏技术又可以分为:依据对象句柄元素抓取、依据网页标签抓取、依据图像抓取、利用OCR识别、依据坐标位置抓取以及其他特别类型的抓取方式。
依据对象句柄元素实现抓取
句柄是指操作系统内存里指向某个结构体的指针,如在Windows中设立句柄是由于内存管理的需要,就像公安部门对社区人口的户籍管理一样,操作系统也需要知道每个应用程序的内存位置,因此Windows用句柄来记载数据地址的变更。句柄标识了应用程序中不同类型的对象实例,如窗口、按钮、图标、滚动条、输出设备、控件或者文件等。同时,Windows也提供了相关的API来获取这些窗口句柄,如FindWindow(获取窗口句柄)、EnumWindows和EnumChildWindows(获取所有顶层窗口以及它们的子窗口)等函数。
依据网页标签
实现抓取大多数Web网页源代码都是通过HTML语言编写的,页面中的数据通过各种HTML标签所标识,如、
利用图像对比技术
利用图像抓取技术的主要原理就是预先保存好需要查询的某对象的图像,如一个按钮或下拉控件的图像,当机器人在桌面窗口查询这个对象时,根据预存的该对象的图像对整个窗口的图像做查询和比对。如果匹配成功,机器人就可以获取该图像的坐标位置,进行下一步操作。通常,为了提高图像查询的稳定性,RPA软件中可预先设置对象图像的比对范围、对比模式、重试次数、精度要求等参数。图像抓取技术通常是作为辅助手段来使用的,比如UiPath会利用图像抓取技术选择辅助项作为锚点,再获取相对位置的某个对象元素,如某个对话框。AutomationAnywhere的ImageRecognize支持在识别对象附近偏移指定像素点的操作。图像抓取方式的缺点是:查询速度比较慢,远低于前面谈到的直接按照属性查询对象的方式的速度;如果页面中出现两个图像一致的控件对象,或者想获取的对象被隐藏或没有显示在图像中,那么就无法做出准确的抓取了。
借助OCR识别技术实现抓取
OCR(光学字符识别)技术是首先扫描识别整个屏幕图像,获取所有的文字信息,然后在其中查询某个关键字,确定它的坐标位置后再做其他处理动作。OCR还可以用来识别某个页面对象中的文字信息,如利用标准的抓取方式获得了某个对象,却无法获得对象中所显示的文字内容,OCR便可以通过该对象所对应的图像信息来识别其中的文字。OCR识别方式的缺点是:只能对图像已经展示出来的文字进行识别,而对表格中未显示完整的信息就无法识别;另外,受制于界面展示语言的问题,会出现OCR识别率偏低,而无法进行后续处理的情况。
依据界面坐标位置实现抓取
RPA软件通常也会提供依据界面坐标位置来获取界面要素的功能,这种功能在早期的自动化软件中经常被使用。但由于每次应用界面开启位置的不确定性和界面的低分辨率等问题,目前RPA技术实现中已经很少采用这种方式。但如果出现了前面所谈到的各种技术都无法实现,且客户端程序的界面位置不能随意调整,大小也不能缩放的情况,我们也可以采用这种方式。
其他特别类型的抓取
如果一些应用程序是采用Java、Flex、Silverlight或其他特殊技术实现的,或者是像SAPGUI这种被特殊封装过的应用界面,标准的抓取方式通常是无效的,需要在RPA中提供单独的技术组件来实现。例如一些独立的程序或单独的插件,或者调整应用程序中的配置来适应RPA的访问,或者采用前面提到的图像比对、OCR识别和界面坐标定位的方式。这类实现自动化的方式差异很大,也比较繁杂,且大多是在实践中不断发现问题并解决问题的经验成果。
2.模拟鼠标和键盘技术
RPA一项重要的技术就是模拟人工对鼠标和键盘的一些操作,比如单击、双击、右击、拖拽等鼠标操作,或者键盘输入、快捷键使用、组合键使用等键盘操作,这项技术常用于游戏外挂的开发。
RPA中有三种模拟技术。
第一种是应用级模式,可以模拟键盘消息发给目标应用程序,例如利用Windows中提供的API函数,如SendMessage和PostMessage。
第二种是系统级模拟,可以模拟全局键盘消息发送给所有程序的窗口,如利用API函数keybd_event或者全局钩子函数HOOK来模拟键盘消息。
第三种是驱动级模拟,可以直接读写键盘的硬件端口。这样的实现方式相当于绕过了应用层和操作系统层,直接与物理硬件进行对话。而普通应用程序是无权操作系统端口的,需要利用相应的驱动程序来实现。鼠标控制的方式是利用全局函数,需要给出横纵坐标才能确定鼠标的操作,如MOUSEEVENTF_MOVE(移动鼠标)、MOUSEEVENTF_LEFTDO-WN(按下鼠标左键)和MOUSEEVENTF_LEFTUP(放开鼠标左键)等。
3.工作流技术
工作流(Workflow)技术是基于业务流程管理(BusinessProcessManagement,BPM)理论和实践而诞生的一套技术解决方案。在这里工作流技术通常用来控制和管理文档在各个计算机之间自动传递,而不是某个任务中步骤的自动化处理。而RPA通过操作用户界面来访问应用程序,实现了像人类用户一样在业务逻辑上的连续处理。在这个过程中,RPA需要操作一个或多个界面,在每个界面又须处理一些数据项,被视为一种微观层面的工作流处理。所以RPA须具有工作流技术的相关特征,如流程触发、流程嵌套、分支(IFELSE)、循环、暂停、取消、延时和错误处理等,同时在流程中须支持常量、变量的定义。
4.OCR技术
所谓光学字符识别(
OpticalCharacterRecognition,OCR)技术,是指基于电子设备(如扫描仪或数码相机)扫描件的文字,通过OCR技术检测扫描件上暗、亮的模式以确定文字的形状,然后用字符识别方法将形状翻译成文字的过程。整个过程是首先需要对纸质文本资料进行扫描,然后对图像文件进行分析处理,最后获取文字及版面信息。 由于企业员工在办理业务过程中,仍然需要与真实的物理世界打交道,小到发票识别、文档识别、银行卡和身份证的识别,大到广告、海报的识别,而RPA却不能直接读取这些图像信息,因此需要借助OCR技术。另外,如果遇到需要识别远程桌面或无法获取本地桌面的字段的情况,也需要借助OCR技术来识别。例如,财务领域的自动化应用中,经常需要利用OCR技术对发票进行识别和处理5.自然语言处理
自然语言处理(NaturalLanguageProcessing,NLP)是研究如何让计算机理解并生成人类自然语言的一种技术。在RPA的应用过程中,NLP的应用场景主要有以下几种情况。
【1】当机器人接收到的要处理的信息不是结构化字段,也不是待OCR处理的扫描图像,而是一段人类自然语言表达的文字时,这就需要NLP从中提取出关键的字段信息,然后自动录入系统或者与系统中的信息做比对。
【2】在OCR技术识别完信息之后,NLP技术可用来做优化处理,在识别完的文字中找出最合乎逻辑的词,做出文字修正。
【3】当需要处理大量信息时,RPA可以利用NLP进行检索或分类处理。
【4】NLP技术可以在RPA处理完成以后以自然语言的方式反馈给用户。五、价值与发展趋势
RPA可以比人类更快、更准确、无差错、7*24小时地执行重复性任务,让企业员工更加集中精力于创造性的高价值工作上。
1.降低人力成本
仅需少数员工,即可完成之前同样的工作;
2.沉淀知识
复杂操作、业务逻辑都沉淀下来,可以有效应对部门知识建设需求,应对人员变动风险;
3.产生创造力
让员工从疲于应付的繁琐、低价值劳动中释放,从事更高价值、具有创造力的工作;
4.全天候响应
7×24×365,规则如一,安全稳定执行,不知疲倦的“机器人员工”,增强了部门的服务能力;
5.安全可控
错误率为0%,应对复杂规则的场景比如清算、报表等更加得心应手;
RPA 的火热是社会发展的必然趋势,主要基于以下几点:
1.我国人口红利逐渐消失,正加速步入老龄化社会,劳动力的不足情况正在出现
2.人工成本增加为企业带来了巨大的财务负担
3.互联网技术发展迅速,旧系统无法满足需求,急需扩展业务能力
4.人工智能技术逐步从实验室走向市场六、成熟产品案例
国外:Uipath
国内:影刀、华为、阿里云、京东云
国内开源:UiAuto。地址: https://gitee.com/legion-spider-man/UiAuto?_from=gitee_search