一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用卷积神经网络检测机器人过程自动化中的用户界面元素的制作方法

2022-06-01 20:52:38 来源:中国专利 TAG:

使用卷积神经网络检测机器人过程自动化中的用户界面元素
1.相关申请的交叉引用
2.本技术要求了2019年10月8日提交的申请号为16/595,727的美国非临时专利申请的权益。该较早提交的申请的主题通过引用其整体而并入本文。
技术领域
3.本发明总体上涉及机器人过程自动化(rpa),更具体地涉及使用卷积神经网络(cnn)检测rpa中的用户界面(ui)元素。


背景技术:

4.机器人过程自动化(rpa)允许执行重复性和手动密集型的活动的自动化。例如,rpa能够用于通过用户界面(ui)与软件应用进行交互,类似于人类与应用的交互方式。与ui的交互通常由rpa应用针对返回坐标集的函数(即,“选择器”)使用应用编程接口(api)调用来执行。然后rpa应用能够使用该信息来模拟按钮的鼠标点击,例如,这会使目标应用表现得就像用户手动点击了按钮一样。
5.如上所述,在本地计算系统的典型rpa实现中,选择器使用ui的图形元素的底层属性来工作以标识应用中的图形元素(例如,按钮、文本字段等)。然而,当尝试在vde中自动化相同的软件时,诸如由和(远程桌面)提供的软件,这种技术就失效了。失效的原因是vde以类似于视频流服务的方式传输远程桌面的图像。在视频的图像(即,“帧”)中根本没有要被标识的选择器。例如,rpa应用因此不能进行api调用以确定要被提供给应用的图形元素的位置。已经尝试使用光学字符识别(ocr)和vde场景的图像匹配来解决这一挑战。然而,这些技术已经被证明是不够可靠的,并且已经引起了维护问题,因为ui中甚至很小的变化都会破坏自动化。
6.例如,的计算机视觉
tm
(cv)通过使用人工智能(ai)、ocr、文本模糊匹配和锚定系统的混合来解决这个问题。cv模型标识图像中的特定图形元素。这提供了对图形元素(诸如文本字段、按钮、复选框、图标等)的更准确的标识。
7.为了识别图形元素,人工智能算法,诸如更快的基于区域的卷积神经网络(r-cnn)可以被使用。参见例如shaoqing ren等人的“faster r-cnn:towards real-time object detection withregionproposal networks,arxiv:1506.01497v3”(2015年6月4日提交)。更快的r-cnn通过具有扩张卷积(也称为空洞(atrous)卷积)的resnet传递目标应用界面的图像,扩张卷积输出特征图或张量(即,具有2048个通道的较小图像)。这些特征图进一步通过另一神经网络被传递,即,区域提议网络(rpn),其提议成千上万个可能的矩形(在矩形中感兴趣的图形元素被认为潜在地已经被发现)以及关于哪些区域被认为是图形元素的猜测,作为坐标列表。特征图是网格,网格上的每个方块都有提议(也称为锚点)。针对每个锚点,rpn提供分类。此外,存在介于0和1之间的图形元素匹配分数和指示锚点需要被移动多远以匹配特定图形元素的回归部分。换句话说,rpn输出它认为在其中发现了图形元素的区域,以及这些图形元素被认为潜在地是什么以及相关的概率。
8.根据这些提议,许多剪裁是由来自主干(backbone)resnet的特征张量输出制成的。在这些大特征张量中,特征尺寸被剪裁。剪裁后的方框再次通过cnn的几层,这样可以输出更精确的位置和类别分布。用于图形元素检测的这种更快的r-cnn 100在图1中示出。
9.然而,由于这种重复的剪裁,某些较小的图形元素在过程结束时可能不具有代表性的像素。例如,2048
×
2048的输入图像通过resnet主干传递,resnet主干产生具有2048个通道、标准步长为32的特征映射,每次将维数减少到原来的二分之一,例如,10
×
10的复选框在resnet过程结束时将不具有代表性像素。此外,例如分辨率、操作系统(os)缩放因子、每英寸点数(dpi)设置的改变,以及由于应用和网站的ui定制而引起的改变,很难使用当前的技术来适应。因此,改进的ui元素检测方法可能是有益的。


技术实现要素:

10.本发明的某些实施例可以为当前图像分析技术尚未完全标识、理解或者解决的现有技术中的问题和需求提供解决方案。例如,本发明的一些实施例关于使用cnn检测rpa中的ui元素。一些实施例通过提供基于神经网络的处理来增强检测图形元素(例如,控制对象)的准确性,该基于神经网络的处理对于各种ui因素(诸如不同的分辨率、不同的os缩放因子、不同的dpi设置和由于应用和网站的ui定制而引起的变化)的变化是鲁棒的。
11.在一个实施例中,计算机程序被包含在非暂态计算机可读介质上,程序被配置成使至少一个处理器通过直接从cnn将在其上操作的环境收集图像来创建原始数据集,并且增强原始数据集以产生增强数据集。程序还被配置成使至少一个处理器使用增强数据集来训练cnn,并且使用已训练的cnn来检测ui中的图形元素。
12.在另一个实施例中,一种计算机实现的方法包括由计算系统使用通道随机化、色调偏移、颜色反转、随机剪裁、随机缩放、图像模糊、或者其任意组合来增强原始数据集,以产生增强数据集。计算机实现的方法还包括由计算系统使用增强数据集来训练cnn。计算机实现的方法还包括由计算系统使用已训练的cnn来检测ui中的图形元素。
13.在又一个实施例中,一种系统包括存储计算机程序指令的存储器和被配置成执行计算机程序指令的至少一个处理器。至少一个处理器被配置成使用更快的r-cnn网络来检测ui中的图形元素。检测包括将多个矩形作为网格覆盖在图像上,并且为网格中的每个矩形提供预定数量的提议。这些提议包括标度和步幅距离。步幅距离定义了矩形之间的距离。每次两个矩形被比较时,并集上的交集或最小值上的交集与给定的阈值一起被使用。阈值是取决于给定的矩形面积的自适应阈值。
附图说明
14.为了便于理解本发明某些实施例的优点,将参考附图中所示的具体实施例,对上文简要描述的本发明进行更详细的描述。虽然应当理解,这些附图仅描绘了本发明的典型实施例,因此不应被认为是对其范围的限制,但是将通过使用附图以附加的特征和细节来描述和解释本发明,在附图中:
15.图1图示了更快的r-cnn的实现。
16.图2是图示根据本发明实施例的rpa系统的架构图。
17.图3是图示根据本发明实施例的已部署的rpa系统的架构图。
18.图4是图示根据本发明实施例的设计方、活动和驱动器之间关系的架构图。
19.图5是图示根据本发明实施例的rpa系统的架构图。
20.图6是图示根据本发明实施例的被配置为使用cnn检测rpa系统中的ui元素的计算系统的架构图。
21.图7是图示根据本发明实施例的用于训练神经网络的过程的流程图。
22.图8是图示根据本发明实施例的用于训练神经网络的过程的流程图。
具体实施方式
23.一些实施例关于使用cnn检测rpa中的ui元素。这个过程可以特别适合于检测太小而不能用传统技术检测的图形元素。例如,在一些用户界面中,复选框的大小可以在8
×
8像素和32
×
32像素之间变化,编辑框的大小可以在20
×
10像素和3500
×
32像素之间变化。然而,在一些实施例中,可以检测任何大小的图形元素,而不脱离本发明的范围。实际上,一些实施例通过提供基于神经网络的处理来增强检测图形元素(例如,控制对象)的准确性,基于神经网络的处理对于各种ui因素的变化是鲁棒的,诸如不同的分辨率(例如,800
×
600到3840
×
2160或以外)、不同的os缩放因子(例如,75%到200%)、不同的dpi设置和由于应用和网站的ui定制而引起的变化。
24.如上所述,在一些实施例中,视频图像可以来自vde服务器,并且可以是视觉显示或其一部分。一些示例vm包括但不限于由远程桌面等提供的vm。然而,图像也可以来自其他来源,包括但不限于flash、silverlight或者pdf文档、各种格式的图像文件(例如,jpg、bmp、png等)、或者任何其他合适的图像源,而不脱离本发明的范围。这种图像可以包括但不限于窗口、文档、财务收据、发票等。
25.图2是图示根据本发明实施例的rpa系统200的架构图。rpa系统200包括允许开发方设计和实现工作流的设计方210。设计方210可以提供用于应用集成以及自动化第三方应用、管理信息技术(it)任务和商业it过程的解决方案。设计方210可以促进自动化项目的开发,该自动化项目是业务过程的图形表示。简而言之,设计方210促进工作流和机器人的开发和部署。
26.自动化项目通过给予开发方对执行顺序和在工作流中开发的自定义步骤集之间的关系的控制,来启用基于规则的过程的自动化,在本文中工作流被限定为“活动”。设计方210的实施例的一个商业示例是uipath studio
tm
。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流可以是嵌套的或者嵌入的。
27.工作流的一些类型可以包括但不限于序列、流程图、有限状态机(fsm)和/或全局异常处理程序。序列可以特别适合线性过程,使能够从一个活动流向另一活动,而不会使工作流变得混乱。流程图可以特别适合更复杂的业务逻辑,通过多个分支逻辑操作符以更多样化的方式启用决策的集成和活动的连接。fsm可以特别适合大型工作流。fsm可以在它们的执行中使用有限数目的状态,这些状态由条件(即,转换)或者活动触发。全局异常处理程序可以特别适合用于在遇到执行错误时确定工作流行为以及用于调试过程。
28.一旦在设计方210中开发出工作流之后,指挥方220协调业务过程的执行,指挥方220协调一个或多个机器人230执行设计方210中已开发的工作流。指挥方220的实施例的一个商业示例是uipath orchestrator
tm
。指挥方220促进管理环境中资源的创建、监控和部
署。指挥方220可以充当与第三方解决方案和应用的集成点。
29.指挥方220可以管理机器人230的编队、从集中点连接和执行机器人230。可以被管理的机器人230的类型包括但不限于:有人参与机器人232、无人参与机器人234、开发机器人(类似于无人参与机器人234,但用于开发和测试目的)和非生产机器人(类似于有人参与机器人232,但用于开发和测试目的)。有人参与机器人232由用户事件触发,并且在同一计算系统上与人类一起工作。有人参与机器人232可以与指挥方220一起用于集中式过程部署和记录介质。有人参与机器人232可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,过程不能从这种类型的机器人上的指挥方220启动,和/或它们不能在锁定的屏幕下运行。在某些实施例中,有人参与机器人232只能从机器人托盘或者从命令提示符来启动。在一些实施例中,有人参与机器人232应当在人类的监督下运行。
30.无人参与机器人234在虚拟环境中无人参与地运行并且可以自动化许多过程。无人参与机器人234可以负责远程执行、监控、调度和针对工作队列提供支持。在一些实施例中,针对所有机器人类型的调试可以在设计方210中运行。有人参与机器人和无人参与机器人两者可以自动化各种系统和应用,包括但不限于大型机、web应用、vm、企业应用(例如,由等生产的应用)、以及计算系统应用(例如,桌面和膝上型应用、移动设备应用、可穿戴计算机应用等)。
31.指挥方220可以具有各种功能,包括但不限于供应、部署、配置、排队、监控、记录和/或提供互连性。供应可以包括:创建和维护机器人230与指挥方220之间的连接(例如,web应用)。部署可以包括:确保将数据包版本正确地递送给指定的机器人230用于执行。配置可以包括机器人环境和过程配置的维护和递送。排队可以包括:提供队列和队列项的管理。监控可以包括:跟踪机器人标识数据和维护用户许可。记录可以包括:将日志存储到和索引到数据库(例如,sql数据库)和/或另一存储机制(例如,提供存储和快速查询大型数据集的能力的)。指挥方220可以通过充当针对第三方解决方案和/或应用的集中通信点来提供互连性。
32.机器人230是运行设计方210内置工作流的执行代理。(多个)机器人230的一些实施例的一个商业示例是uipath robotstm。在一些实施例中,机器人230默认安装微软服务控制管理器(scm)管理的服务。因此,此类机器人230可以在本地系统账户下打开交互式会话,并且具有服务的权限。
33.在一些实施例中,机器人230可以以用户模式安装。针对这种机器人230,这意味着它们具有与已经安装的给定机器人230的用户相同的权利。此功能也可以用于高密度(hd)机器人,确保机器中的每个机器的最大潜能得到充分利用。在一些实施例中,可以在hd环境中配置任何类型的机器人230。
34.某些实施例中的机器人230分为多个组件,每个组件专用于特定的自动化任务。一些实施例中的机器人组件包括但不限于scm管理的机器人服务、用户模式机器人服务、执行方、代理和命令行。scm管理的机器人服务对会话进行管理和监控,并且充当指挥方220与执行主机(即,机器人230在其上被执行的计算系统)之间的代理。这些服务可以被委托并且管理针对机器人230的凭证。本地系统下的scm启动控制台应用。
35.在一些实施例中,用户模式机器人服务管理和监控会话,并且充当指挥方220与执行主机之间的代理。用户模式机器人服务可以被委托并且管理针对机器人230的凭证。如果没有安装scm管理的机器人服务,则应用可以自动启动。
36.执行方可以在会话下运行给定作业(即,它们可以执行工作流)。执行方可以知道每个监控器的每英寸点数(dpi)设置。代理可以是在系统托盘窗口中显示可用作业的呈现基础(wpf)应用。代理可以是服务的客户端。代理可以请求启动或者停止作业以及更改设置。命令行是服务的客户端。命令行是控制台应用,其可以请求启动作业并且等待其输出。
37.如上所述地将机器人230的组件分开有助于开发方、支持用户和计算系统更轻松地运行、标识和跟踪每个组件正在执行什么。可以以这种方式为每个组件配置特殊行为,诸如针对执行方和服务设置不同的防火墙规则。在一些实施例中,执行方可以总是知道每个监控器的dpi设置。因此,工作流可以在任何dpi处执行,而无论创建工作流的计算系统的配置如何。在一些实施例中,来自设计方210的项目也可以独立于浏览器缩放级别。对于不知道dpi或者故意地标记为不知道的应用,在一些实施例中可以禁用dpi。
38.图3是图示根据本发明实施例的已部署rpa系统300的架构图。在一些实施例中,rpa系统300可以是图2的rpa系统200,或者可以是其部分。应当注意,客户端侧、服务器侧或两者可以包括任何期望数目的计算系统,而不脱离本发明的范围。在客户端侧,机器人应用310包括执行方312、代理314和设计方316。然而,在一些实施例中,设计方316可以不在计算系统310上运行。执行方312正在运行过程。多个业务项目可以同时运行,如图3所示。在本实施例中,代理314(例如,服务)是针对所有执行方312的单联系点。本实施例中的所有消息都被记录到指挥方330中,指挥方330经由数据库服务器340、索引器服务器250或两者进一步处理它们。如上关于图2所述,执行方312可以是机器人组件。
39.在一些实施例中,机器人代表机器名称与用户名之间的关联。机器人可以同时管理多个执行方。在支持同时运行的多个交互式会话的计算系统(例如,server 2012)上,多个机器人可以同时运行,每个机器人使用唯一的用户名在单独的会话中运行。这就是上面提到的hd机器人。
40.代理314还负责发送机器人的状态(例如,定期地发送指示机器人仍在运行的“心跳”消息)和下载要执行的数据包的所需版本。在一些实施例中,代理314与指挥方330之间的通信总是由代理314发起。在通知场景中,代理314可以打开随后由指挥方330用来向机器人发送命令(例如,开始、停止等)的websocket通道。
41.在服务器侧,包括了表示层(web应用332、开放数据协议(odata)代表状态传输(rest)应用编程接口(api)端点334以及通知和监控336)、服务层(api实现/业务逻辑338)和持久层(数据库服务器340和索引器服务器350)。指挥方230包括web应用332、odata rest api端点334、通知和监控336以及api实现/业务逻辑338。在一些实施例中,用户在指挥方330的界面中执行的大多数动作(例如,经由浏览器320)是通过调用各种api来执行的。这种动作可以包括但不限于在机器人上启动作业、在队列中添加/移除数据、调度作业以进行无
人参与运行等,而不脱离本发明的范围。web应用332是服务器平台的可视层。在本实施例中,web应用332使用超文本标记语言(html)和javascript(js)。然而,在不脱离本发明的范围的情况下,可以使用任何期望的标记语言、脚本语言或者任何其他格式。在本实施例中,用户经由浏览器320与来自web应用332的网页交互,以便执行各种动作来控制指挥方330。例如,用户可以创建机器人组、向机器人分配数据包、分析每个机器人的和/或每个过程的日志、启动和停止机器人等。
42.除了web应用332,指挥方330还包括公开odata rest api端点334的服务层。然而,可以包括其他端点,而不脱离本发明的范围。rest api由web应用332和代理314两者消费。在本实施例中,代理314是客户端计算机上的一个或多个机器人的监管方。
43.本实施例中的rest api涵盖配置、记录、监控和排队功能。在一些实施例中,配置端点可以用于限定和配置应用用户、许可、机器人、资产、发布和环境。记录rest端点可以用于记录不同的信息,诸如错误、由机器人发送的明确消息以及其他特定于环境的信息。如果在指挥方330中使用启动作业命令,则机器人可以使用部署rest端点来查询应该被执行的数据包版本。排队rest端点可以负责队列和队列项管理,诸如向队列添加数据、从队列获取事务(transaction)、设置事务的状态等。
44.监控rest端点可以监控web应用332和代理314。通知和监控api 336可以是rest端点,其用于注册代理314、向代理314递送配置设置、以及用于从服务器和代理314发送/接收通知。在一些实施例中,通知和监控api 336也可以使用websocket通信。
45.在本实施例中,持久层包括服务器对——数据库服务器340(例如,sql服务器)和索引器服务器350。本实施例中的数据库服务器240存储机器人、机器人组、相关过程、用户、角色、调度等的配置。在一些实施例中,该信息通过web应用332而被管理。数据库服务器340可以管理队列和队列项。在一些实施例中,数据库服务器340可以存储由机器人记录的消息(附加于索引器服务器350或者代替索引器服务器350)。
46.索引器服务器350(其在一些实施例中为可选的)存储并且索引由机器人记录的信息。在某些实施例中,可以通过配置设置来禁用索引器服务器350。在一些实施例中,索引器服务器350使用(其是开源项目全文搜索引擎)。由机器人记录的消息(例如,使用日志消息或者写入行等的活动)可以通过(多个)记录rest端点而被发送到索引器服务器350,在索引器服务器250处它们被索引用于将来使用。
47.图4是图示根据本发明实施例的设计方410、活动420、430和驱动器440之间的关系400的架构图。如上所述,开发方使用设计方410来开发由机器人执行的工作流。工作流可以包括用户限定的活动420和ui自动化活动430。一些实施例能够标识图像中的非文本视觉成分,这在本文中被称为计算机视觉(cv)。与这些组件相关的一些cv活动可以包括但不限于点击、键入、获取文本、悬停、元素存在、刷新范围、突出显示等。在一些实施例中,点击使用例如cv、ocr、模糊文本匹配和多锚点来标识元素,并且点击元素。键入可以使用上述和元素中的类型来标识元素。获取文本可以标识特定文本的位置并且使用ocr对其扫描。悬停可以标识元素并且悬停在其上。元素存在可以使用上述技术来检查元素是否存在于屏幕上。在一些实施例中,可能有数百甚至数千个活动可以在设计方410中实现。然而,任何数目和/或类型的活动都是可用的,而不脱离本发明的范围。
48.ui自动化活动430是以较低等级代码编写的特殊较低等级活动的子集(例如,cv活
动)并且有益于与屏幕的互动。ui自动化活动430经由驱动器440来促进这些交互,该驱动器440允许机器人与期望的软件交互。例如,驱动器440可以包括os驱动器442、浏览器驱动器444、vm驱动器446、企业应用驱动器448等。
49.驱动器440可以在较低等级处与os互动,寻找挂钩,监控密钥等。它们可以促进与等的集成。例如,“点击”活动经由驱动器440在这些不同的应用中执行相同的角色。
50.图5是图示根据本发明实施例的rpa系统500的架构图。在一些实施例中,rpa系统500可以是或者可以包括图1和/或图2的rpa系统200和/或300。rpa系统500包括运行机器人的多个客户端计算系统510。计算系统510能够经由运行在其上的web应用来与指挥方计算系统520通信。指挥方计算系统520转而又能够与数据库服务器530和可选的索引器服务器540通信。
51.关于图3和图5,应注意的是,虽然在这些实施例中使用了web应用,可以使用任何合适的客户/服务器软件,而不脱离本发明范围。例如,指挥方可以运行与客户端计算系统上的非基于网络的客户软件应用通信的服务器侧应用。
52.图6是图示根据本发明实施例的被配置为使用ml自动完成rpa工作流的计算系统600的架构图。在一些实施例中,计算系统600可以是本文描绘和/或描述的计算系统中的一个或多个计算系统。计算系统600包括总线605或者用于传递信息的其他通信机制,以及耦合到总线605用于处理信息的(多个)处理器610。(多个)处理器510可以是任何类型的通用处理器或者专用处理器,包括中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、其多个实例和/或其任何组合。(多个)处理器610还可以具有多个处理核,并且这些核中的至少一些核可以被配置为执行特定功能。在一些实施例中可以使用多并行处理。在某些实施例中,(多个)处理器610中的至少一个处理器可以是包括模拟生物神经元的处理元件的神经形态电路。在一些实施例中,神经形态电路可以不需要冯诺依曼计算架构的典型组件。
53.计算系统600还包括存储器615,用于存储信息和要由(多个)处理器610执行的指令。存储器615可以由随机存取存储器(ram)、只读存储器(rom)、闪存、高速缓存、诸如磁盘或者光盘静态存储器或者任何其他类型的非暂态计算机可读介质或者其组合的任意组合组成。非暂态计算机可读介质可以是能够由(多个)处理器610访问的任何可用介质,并且可以包括易失性介质、非易失性介质或两者。介质也可以是可移动的、不可移动的或两者。
54.附加地,计算系统600包括通信设备620,诸如收发器,以经由无线和/或有线连接提供对通信网络的访问。在一些实施例中,通信设备620可以被配置为使用频分多址(fdma)、单载波fdma(sc-fdma)、时分多址(tdma)、码分多址(cdma)、正交频分复用(ofdm)、正交频分多址(ofdma)、全局移动通信系统(gsm)、通用分组无线业务(gprs)、通用移动电信系统(umts)、cdma2000、宽带cdma(w-cdma)、高速下行链路分组接入(hsdpa)、高速上行链路分组接入(hsupa)、高速分组接入(hspa)高级lte(lte-a)、802.11x、wi-fi、zigbee、超宽带(uwb)、802.16x、802.15、家庭节点b(hnb)、蓝牙、射频标识(rfid)、红外数据协会(irda)、近场通信(nfc)、第五代(5g)、新无线电(nr)、它们的任何组合、和/或任何其他当前存在的或者未来实现的通信标准和/或协议,而不脱离本发明的范围。在一些实施例中,通信设备520可以包括一个或多个天线,这些天线是单一的、阵列的、相控的、切换的、波束成形的、波束
控制的、它们的组合,和/或任何其他天线配置,而不脱离本发明的范围。
55.(多个)处理器610还经由总线605耦合至显示器625,诸如等离子显示器、液晶显示器(lcd)、发光二极管(led)显示器、场发射显示器(fed)、有机发光二极管(oled)显示器、柔性oled显示器、柔性基板显示器、投影显示器、4k显示器、高清显示器、显示器、面内切换(ips)显示器或者任何其他适用于向用户显示信息的显示器。显示器625可以被配置为触摸(触觉)显示器、三维(3d)触摸显示器、多输入触摸显示器、多点触摸显示器等。使用电阻、电容、表面声波(saw)电容、红外、光学成像、色散信号技术、声脉冲标识、受抑全内反射等。可以使用任何合适的显示设备和触觉i/o,而不脱离本发明的范围。
56.键盘630和光标控制设备635(诸如,计算机鼠标、触摸板等)还耦合至总线605,以使用户能够与计算系统交互。然而,在某些实施例中,可以不存在物理键盘和鼠标,并且用户可以仅通过显示器625和/或触摸板(未示出)来与设备交互。根据设计选择,可以使用任何类型和组合的输入设备。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与计算系统600通信的另一计算系统远程地与计算系统600交互,或者计算系统600可以自主地操作。
57.存储器615存储由(多个)处理器610执行时提供功能的软件模块。这些模块包括针对计算系统600的操作系统640。这些模块还包括自动工作流完成模块645,其被配置为执行本文描述的全部或部分过程或者其导出。计算系统600可以包括一个或多个包括附加功能的附加功能模块650。
58.本领域技术人员将理解,“系统”可以被具化为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(pda)、蜂窝电话、平板计算设备、量子计算系统或者任何其他合适的计算设备或者设备组合,而不脱离本发明范围。将上述功能表示为由“系统”执行并且不旨在以任何方式限制本发明的范围,而是旨在提供本发明的多个实施例中的一个示例。实际上,本文公开的方法、系统和设备可以以与计算技术(包括云计算系统)一致的局部化和分布式形式来实现。
59.应注意的是,本说明书中描述的一些系统特征已作为模块而被表示,以便更具体地强调其实现独立性。例如,模块可以被实现为硬件电路,包括定制的超大规模集成(vlsi)电路或门阵列、诸如逻辑芯片、晶体管或者其他分立元件的现成半导体。模块也可以在可编程硬件设备中实现,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
60.模块也可以至少部分地在软件中实现,用于由各种类型的处理器执行。可执行代码的标识的单元可以例如包括计算机指令的一个或多个物理块或逻辑块,其可以例如被组织为对象、程序或者功能。然而,标识的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时,构成该模块并且实现针对该模块的所描述目的。此外,模块可以存储在计算机可读介质上,计算机可读介质可以是例如硬盘驱动、闪存设备、ram、磁带和/或用于存储数据的任何其他这种非暂态计算机可读介质,而不脱离本发明的范围。
61.实际上,可执行代码模块可以为单个指令或者多个指令,甚至可以在多个不同代码段上、不同程序中以及跨多个存储设备中分布。类似地,操作数据在本文可以在模块内被标识和示出,并且可以以任何合适的形式被具化并且被组织在任何合适类型的数据结构
内。操作数据可以作为单个数据集来收集,或者可以分布在不同的位置,包括在不同的存储设备上,并且可以至少部分地仅作为系统或者网络上的电子信号而存在。
62.图7是图示根据本发明的实施例的用于训练神经网络的过程700的流程图。过程开始于在710将问题框定为图形元素检测问题。接下来,在720创建原始数据集。在一些实施例中,通过直接从cnn将在其上运行的环境收集图像(即,不同应用用户界面的截屏)来创建原始数据集。在一些实施例中,原始数据集包括来自广泛变化的应用的屏幕截图,以试图使经训练的算法更加鲁棒。原始数据集也可以从合成数据中创建,合成数据提供了与来自真实截屏的图像相似的图像。
63.在一些实施例中,合成数据可由生成其他程序的程序创建。然后可以抓取生成的程序的界面以获得“截屏”。在一些实施例中,界面可以看起来类似于期望的软件应用,例如企业资源规划(erp)系统。
64.原始数据集然后在730被增强,创建增强数据集。增强数据集是从原始数据集创建的,以便创建除原始数据点之外的附加数据点以训练神经网络,并且增强数据集也可以包括原始数据集。作为用于可视化目的的非限制性示例,考虑收集一只猫的五幅图像作为原始数据的场景。可以通过以各种方式修改猫的图像来创建增强数据,这些方式包括但不限于水平地翻转图像、改变颜色、人工添加噪声、人工添加照明、或者其任意组合。这有助于模拟现实世界中可能发生的场景。因此,增强数据集为神经网络提供了更多的数据点,使神经网络在训练后对现实世界的场景更加鲁棒。
65.在一些实施例中,使用通道随机化、色调偏移、颜色反转、随机剪裁、随机缩放、图像模糊、或者其任意组合来增强数据集。通道随机化使cnn对不同的颜色方案鲁棒。通道随机化涉及改变通道顺序(例如,将红色转换成蓝色),从而产生新的图像并且帮助网络理解颜色。色调偏移和颜色反转也使网络对不同的颜色方案更加鲁棒。后者可能特别有益,因为大多数ui具有白色或黑色主题。
66.由于锚点步幅和网络卷积步幅,随机剪裁有助于实现转换效果。这有助于解决架构中固有的步幅问题。可以通过覆盖大量的矩形(例如,几十个矩形)来执行随机剪裁,这些矩形通常被布置成网格,然后与实际标签相匹配。如果匹配出现,则将已剪裁图像作为正样本来训练网络。然而,如果匹配没有出现,则已剪裁图像被用作负样本来训练网络。
67.锚点具有粒度(标度)和框之间的步幅距离。因此,例如,如果在两个文本框之间存在复选框,则在一些实施例中的算法将不会错过它。所提提议的网络甚至可以对小的平移(例如,四个像素的平移)敏感。
68.在某些实现中,不同的剪裁技术可以用于不同的控件。例如,为了标识作为图像的图形元素,可以在底部对其进行剪裁。类似地,在一些实施例中,表格可以按大小调整,并且其他一般文本可以在中间被剪裁。在一些实施例中,使用不同的剪裁技术可以产生更好的结果,但是这可能事先不知道。
69.随机缩放可以允许覆盖不同系统和应用的现实生活分布的更大部分。例如,以800
×
600分辨率呈现的按钮可能有16
×
16像素。然而,当在4k监视器中呈现相同的按钮时,按钮区域中的像素数量将会显著增加。使用这种方法可以针对不同的标度训练神经网络。图像的模糊也可以用于使网络对实际实现中可能出现的不同压缩和大小调整模糊更加鲁棒。
70.在产生增强数据集之后,在740使用为图形元素检测设计的更快的r-cnn架构来检
测图形元素。在一些实施例中,更快的r-cnn架构被修改为适合于检测小的ui图形元素和/或通过使算法对ui中的变化更鲁棒来提高图形元素检测准确度。例如,可以绕过图像大小调整。传统的更快的r-cnn调整大小为固定的形状,但是一些实施例不这样做。空洞卷积可以用于帮助寻找更大的ui元素并且考虑更多的上下文。此外,可以使用可变的提议大小。例如,通常期望在较大的屏幕截图中比在较小的屏幕截图中找到更多的图形元素。
71.在与其他架构的比较测试中,更快的r-cnn被发现是最有效的架构。然而,任何其他合适的架构,例如ssd、retinanet、yolo等可以在不脱离本发明范围的情况下被修改。此外,尽管一些实施例的rpn主干是resnet-101,在测试期间具有最快的性能和最佳的wmap,但是可以使用任何期望的rpn主干,而不脱离本发明的范围。
72.一些实施例的更快的r-cnn实现可以是tensorflow对象检测api。在这样的实施例中,可以使用具有大致遵循指数衰减规则的学习率的动量优化器。由于对象大小的范围,我们针对实际实施做出了以下决定。决定在resnet-101主干中使用扩张的卷积来增加感受域,而不会导致模型大小的损失。为此,first_stage_atrous_rate设置为2。还使用了以下锚点设置:(1)宽度=64并且高度=64的基本大小;(2)宽度=8并且高度=8的步幅;(3)0.25、0.5、1.0和2.0的标度;以及(4)0.5、1.0和2.0的纵横比。两个阶段的提议的数量都设定为400。提议是针对两阶段检测网络的超参数。
73.如果所有步幅都等于1,则cnn体系结构对于平移只是固有地不变的。否则,差异就开始出现了。此外,由于锚点的步幅,在平移方面出现了更大的问题。因此,数据集应该被增强以包括平移。
74.在一些实施例中,每次两个框被比较时,并集上的交集或最小值上的交集与给定阈值一起使用。在一些实施例中,可以使用取决于框面积的自适应阈值。对于小的图形元素,小的阈值效果很好。然而,对于较大的图形元素,较大的阈值可以是优选的。
75.在一些实施例中,每个预测都带有网络对于该预测的“置信度”。阈值可以是考虑该预测的最小置信度。例如,如果最小置信度为70%,则在一些实施例中,仅使用至少具有该置信度值的预测。在某些实施例中,置信度是根据精确度/召回率动态计算的。
76.在一些实施例中,模型提供固定数量的检测控制。基于精度/召回的权衡,这些提议可以针对设计时间(即,当开发方定义自动化时)和运行时间(即,当机器人自己运行自动化时)用不同的阈值来过滤。在设计时间,可以使用使精度最大化的阈值(即,仅示出被认为以高度的确定性被准确标识的图形元素)。例如,在一些实施例中,可以需要90%以上的置信度作为高度肯定。然而,在不脱离本发明的范围的情况下,可以使用任何期望的更高置信度。以这种方式,在运行时间找到图形元素的机会很高。
77.然而,在运行时间,可以使用较低的阈值来最大化召回。因此,可以标识大量的潜在图形元素。诸如申请号为16/517,225的美国专利申请中描述的多锚点后处理可以用于帮助标识期望的控件,即使是在低精度(高噪声)检测的情况下。
78.一些实施例实现了优于现有图像识别技术的各种优势。例如,一些实施例提供了更准确的召回(即,更少的ui元素被遗漏或者被错误标识)。一些实施例对ui主题改变和ui缩放更加鲁棒。某些实施例可以通过添加更多数据,以及通过添加架构改变(例如,改变神经网络的内部机制,但是仍然具有相同的输入/输出)来逐步改进。
79.图8是示出根据本发明的实施例的用于训练神经网络的过程800的流程图。在810
该过程开始于通过直接从cnn将在其上运行的环境收集图像来创建原始数据集。在一些实施例中,原始数据集是从模拟真实截屏的合成数据创建的。
80.接下来,在820原始数据集被增强以产生增强数据集。在一些实施例中,原始数据集的增强包括水平地翻转图像、改变颜色、人工添加噪声、人工添加照明、或者其任意组合。在某些实施例中,原始数据的增强包括使用通道随机化、色调偏移、颜色反转、随机剪裁、随机缩放、图像模糊、或者其任意组合。在一些实施例中,增强数据集包括平移。
81.在使用随机剪裁产生已剪裁图像的实施例中,原始数据集的增强可包括在已剪裁图像上覆盖多个矩形作为网格,将覆盖的多个矩形与实际标签匹配,当匹配出现时使用已剪裁图像作为正样本来训练cnn,当匹配没有出现时使用已剪裁图像作为负样本来训练cnn。在某些实施例中,为网格中的每个矩形提供提议。这些提议包括标度和步幅距离,步幅距离定义了矩形之间的距离。在一些实施例中,每次比较两个矩形时,将并集上的交集或最小值上的交集与给定阈值一起使用。在某些实施例中,阈值是取决于给定矩形面积的自适应阈值。在一些实施例中,使用不同的剪裁技术来标识至少两种不同的图形元素类型。
82.然后,在830使用增强数据集训练cnn。在一些实施例中,cnn包括更快的r-cnn架构。在某些实施例中,在具有两个阶段的rpn主干中使用了扩张的卷积,使用了不同的标度,并且使用了不同的纵横比。
83.然后,在840使用已训练的cnn在ui中检测图形元素。在一些实施例中,图形元素的检测包括针对每个图形元素提供固定数量的提议。在某些实施例中,对于设计时间和运行时间,使用不同的阈值来过滤提议,运行时间阈值比设计时间阈值需要更高的检测概率。
84.根据本发明的实施例,图7和图8中执行的过程步骤可以由计算机程序执行,针对处理器的指令进行编码,以执行图7和图8中描述的至少部分过程。计算机程序可以被具化在非暂态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、ram、磁带和/或用于存储数据的任何其他这样的介质或者介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图6的计算系统600的(多个)处理器610)以实现图7和图8中描述的全部或者部分过程步骤的编码指令,该编码指令也可以存储在计算机可读介质上。
85.计算机程序可以在硬件、软件或者混合实施方式中实现。计算机程序可以由彼此可操作通信的模块组成,并且被设计为传递信息或者指令以显示。计算机程序可以被配置为在通用计算机、asic或者任何其他合适的设备上操作。
86.容易理解的是,本发明各种实施例的组件,如本文附图中一般描述和说明的,可以按各种不同配置进行排列和设计。因此,如附图中所示,本发明的实施例的详细描述不旨在限制所要求保护的本发明的范围,而仅是本发明的所选择的实施例的代表。
87.本说明书中描述的本发明的特征、结构或者特性可以在一个或多个实施例中以任何合适的方式进行组合。例如,在整个说明书中,对“某些实施例”、“一些实施例”或者类似语言的引用意味着结合本实施例所描述的特定特征、结构或者特性包括在本发明的至少一个实施例中。因此,在整个说明书中出现的短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或者类似语言不必然都指同一组实施例,并且所描述的特征、结构或者特性可以以任何合适的方式组合在一个或多个实施例中。
88.应注意,贯穿本说明书中提及的特征、优点或者类似语言并且不意味着本发明可
以实现的所有特征和优点应当位于本发明的任何单个实施例中。相反,关于特征和优点的语言被理解为意味着结合实施例描述的特定特征、优点或者特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的特征和优点的讨论以及类似的语言可以但不必然指同一实施例。
89.此外,本发明的所述特征、优点和特性可以在一个或多个实施例中以任何合适的方式进行组合。相关领域的技术人员将认识到,本发明可以在没有特定实施例的一个或多个具体特征或者优点的情况下实践。在其他实例中,可以在某些实施例中认识到附加的特征和优点,这些特征和优点可能不存在于本发明的所有实施例中。
90.本领域普通技术人员将容易理解,上述本发明可以利用不同顺序的步骤和/或利用不同于所公开配置的硬件元件而被实践。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域的技术人员,在保持在本发明的精神和范围内的同时,某些修改、变型和备选结构将是明显的。因此,为了确定本发明的界限和边界,应当参考所附权利要求。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献