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

使用截屏图像进行序列提取的制作方法

2022-02-22 09:18:37 来源:中国专利 TAG:

使用截屏图像进行序列提取
1.相关申请的交叉引用
2.本技术要求于2019年10月2日提交的美国申请第16/591,161号的权益,其内容通过引用被并入本文中。


背景技术:

3.为了标识候选过程并提取动作序列,现有技术结合关于用户界面(ui)元素的信息来利用关于用户动作(诸如,用户点击或击键)的通用信息。从ui元素收集的信息的问题在于,它可能因不同平台而异,并且可能包含噪声,因为ui元素依赖于应用级配置。
4.因此,致力于利用机器人过程自动化(rpa)来自动化其过程的企业在标识可以自动化且最终以高专业服务费和/或低roi结束的候选过程上努力。


技术实现要素:

5.公开了用于使用截屏图像进行序列提取以生成机器人过程自动化工作流的系统和方法。该系统和方法涉及自动标识桌面应用上的用于机器人过程自动化(rpa)的候选任务,并且更具体地,涉及用于从用户动作的截屏中标识重复任务的序列提取。该系统和方法包括:使用处理器来捕获由用户对应用执行的步骤的多个截屏;将截屏存储在存储器中;通过将动作随机聚类成任意预定义数目的群集,来从所捕获的截屏中确定动作群集,其中相同动作的不同变型的截屏在群集中被标记;从群集中提取序列,并且从群集中丢弃屏幕上的后续事件;以及基于所提取的序列来生成自动化工作流。
附图说明
6.通过结合附图以示例方式给出的以下描述,可以得到更详细的理解,其中图中的相同附图标记表示相同元素,并且在附图中:
7.图1a是机器人过程自动化(rpa)开发、设计、操作或执行的图示;
8.图1b是rpa开发、设计、操作或执行的另一图示;
9.图1c是计算系统或环境的图示;
10.图2示出了候选标识的描述;
11.图3示出了被聚类以定义模板的一组截屏;
12.图4示出了屏幕级别的动作序列的流程的图;以及
13.图5示出了用于使用截屏图像进行序列提取以生成机器人过程自动化工作流的方法。
具体实施方式
14.对于下面所描述的方法和过程,可以以任何顺序不按序列执行所记载的步骤,并且可以执行未明确描述或示出的子步骤。另外,“耦接”或“可操作地耦接”可以表明对象被链接但在链接对象之间可以具有零个或多个中间对象。而且,在一个或多个实施例中可以
使用所公开的特征/元素的任何组合。当使用提及“a或b”时,它可以包括a、b、或者a和b,它们可以类似地被扩展为更长列表。当使用符号x/y时,它可以包括x或y。备选地,当使用符号x/y时,它可以包括x和y。x/y符号可以类似地被扩展为具有相同解释逻辑的更长列表。
15.该系统和方法涉及自动标识桌面应用上的用于机器人过程自动化(rpa)的候选任务,并且更具体地,涉及用于从用户动作的截屏中标识重复任务的序列提取。公开了用于使用截屏图像进行序列提取以生成机器人过程自动化工作流系统和方法。该系统和方法包括:使用处理器来捕获由用户对应用执行的步骤的多个截屏;将截屏存储在存储器中;通过将动作随机聚类成任意预定义数目的群集,来从所捕获的截屏中确定动作群集,其中相同动作的不同变型的截屏在群集中被标记;从群集中提取序列,并且从群集中丢弃屏幕上的后续事件;以及基于所提取的序列来生成自动化工作流。
16.图1a是rpa开发、设计、操作或执行100的图示。设计器102(有时被称为工作室、开发平台、开发环境等)可以被配置为生成代码、指令、命令等以供机器人执行一个或多个工作流或使该一个或多个工作流自动化。根据计算系统可以提供给机器人的(多个)选择,机器人可以确定由用户或操作者选择的视觉示出的(多个)区域的代表性数据。作为rpa的一部分,多维的诸如正方形、矩形、圆形、多边形、自由形状等的形状可以用于与计算机视觉(cv)操作或机器学习(ml)模型相关的ui机器人开发和运行时。
17.可以由工作流完成的操作的非限制性示例可以是以下一项或多项:执行登录、填写表单、信息技术(it)管理等。为了运行ui自动化的工作流,机器人可能需要唯一地标识特定屏幕元素,诸如按钮、复选框、文本字段、标签等,而不管应用访问或应用开发如何。应用访问的示例可以是本地、虚拟、远程、云、访问的示例可以是本地、虚拟、远程、云、远程桌面、虚拟桌面基础设施(vdi)等。应用开发的示例可以是win32、java、flash、超文本标记语言(html)、html5、可扩展标记语言(xml)、javascript、c#、c 、silverlight等。
18.工作流可以包括但不限于任务序列、流程图、有限状态机(fsm)、全局异常处理程序等。任务序列可以是用于处理一个或多个应用或窗口之间的线性任务的线性过程。流程图可以被配置为处理复杂的业务逻辑,以使得能够通过多个分支逻辑运算符以更多样化的方式实现决策的集成和活动的连接。fsm可以被配置用于大型工作流。fsm可以在它们的执行中使用有限数目的状态,这些状态可以由条件、转变、活动等触发。全局异常处理程序可以被配置为在遇到执行错误时确定工作流行为,被配置用于、调试过程,等等。
19.机器人可以是应用、小应用、脚本等,其可以使对底层操作系统(os)或硬件透明的ui自动化。在部署时,一个或多个机器人可以由指挥器104(有时被称为协调者)管理、控制等。指挥器104可以指示或命令(多个)机器人或自动化执行器106在大型机、web、虚拟机、远程机器、虚拟桌面、企业平台、(多个)桌面应用、浏览器等客户端、应用或程序中执行或监测工作流。指挥器104可以用作中心点或半中心点以指示或命令多个机器人使计算平台自动化。
20.在某些配置中,指挥器104可以被配置用于设置、部署、配置、排队、监测、日志记录和/或提供互连。设置可以包括创建和维护(多个)机器人或自动化执行器106与指挥器104之间的连接或通信。部署可以包括确保将分组版本交付给所分配的机器人以供执行。配置可以包括机器人环境和过程配置的维护和交付。排队可以包括提供对队列和队列项目的管
理。监测可以包括跟踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和索引到数据库(例如,sql数据库)和/或其他存储机制(例如,提供存储和快速查询大型数据集的能力的)。指挥器104可以通过用作第三方解决方案和/或应用的集中式通信点来提供互连性。
21.(多个)机器人或自动化执行器106可以被配置为无人值守108或有人值守110。对于无人值守108操作,可以在没有第三方输入或控制的帮助的情况下执行自动化。对于有人值守110操作,可以通过从第三方组件接收输入、命令、指令、指导等来执行自动化。
22.(多个)机器人或自动化执行器106可以是运行设计器102中所构建的工作流的执行代理。用于ui或软件自动化的(多个)机器人的商业示例是uipath robots
tm
。在一些实施例中,(多个)机器人或自动化执行器106可以默认安装microsoft 服务控制管理器(scm)管理的服务。因此,这样的机器人可以在本地系统帐户下打开交互式会话,并且具有服务的权限。
23.在一些实施例中,(多个)机器人或自动化执行器106可以在用户模式下安装。这些机器人可以与安装给定机器人的用户具有相同的权限。该特征也可以可用于高密度(hd)机器人,这确保了诸如在hd环境中以最高性能充分利用每个机器。
24.在某些配置中,(多个)机器人或自动化执行器106可以被拆分、分布等成若干组件,每个组件专用于特定自动化任务或活动。机器人组件可以包括scm管理的机器人服务、用户模式机器人服务、执行器、代理、命令行等。scm管理的机器人服务可以管理或监测会话并用作指挥器104与执行主机(即,(多个)机器人或自动化执行器106在其上执行的计算系统)之间的代理。这些服务可以被信任并管理(多个)机器人或自动化执行器106的凭证。
25.用户模式机器人服务可以管理和监测会话并用作指挥器104与执行主机之间的代理。用户模式机器人服务可以被信任并管理机器人130的凭证。如果没有安装scm管理的机器人服务,则应用可以自动启动。
26.执行器可以在会话下运行给定作业(即,它们可以执行工作流)。执行器可以知道每个显示器的每英寸点数(dpi)设置。代理可以是在系统托盘窗口中显示可用作业的presentation foundation(wpf)应用。代理可以是服务的客户端。代理可以请求启动或停止作业以及改变设置。命令行可以是服务的客户端。命令行是控制台应用,其可以请求启动作业并等待其输出。
27.在其中(多个)机器人或自动化执行器106的组件如上面所解释的那样拆分的配置中,帮助开发者、支持用户和计算系统更容易地运行、标识和跟踪每个组件的执行。可以通过这种方式针对每个组件配置特殊行为,诸如为执行器和服务设置不同防火墙规则。在一些实施例中,执行器可以知道每个监测器的dpi设置。因此,工作流可以在任何dpi处执行,而不管在其上创建它们的计算系统的配置如何。来自设计器102的项目也可以独立于浏览器缩放级别。在一些实施例中,对于不知道dpi或有意标记为不知道的应用,可以禁用dpi。
28.图1b是rpa开发、设计、操作或执行120的另一图示。工作室组件或模块122可以被配置为生成代码、指令、命令等以供机器人执行一个或多个活动124。可以由客户端上的机
器人使用一个或多个驱动器组件128来执行用户界面(ui)自动化126。机器人可以使用计算机视觉(cv)活动模块或引擎130来执行活动。其他驱动器132可以用于由机器人进行的ui自动化以获取ui元素。它们可以包括os驱动程序、浏览器驱动程序、虚拟机驱动程序、企业驱动程序等。在某些配置中,cv活动模块或引擎130可以是用于ui自动化的驱动程序。
29.图1c是计算系统或环境140的图示,计算系统或环境140可以包括总线142或用于传送信息或数据的其他通信机制、以及耦接到总线142以进行处理的一个或多个处理器144。一个或多个处理器144可以是任何类型的通用或专用处理器,包括中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、控制器、多核处理单元、三维处理器、量子计算设备或其任何组合。一个或多个处理器144还可以具有多个处理核,并且核中的至少一些核可以被配置为执行特定功能。也可以配置多并行处理。另外,至少一个或多个处理器144可以是包括模拟生物神经元的处理元件的神经形态电路。
30.存储器146可以被配置为存储要由(多个)处理器144执行或处理的信息、指令、命令或数据。存储器146可以包括以下各项的任何组合:随机存取存储器(ram)、只读存储器(rom)、闪存、固态存储器、高速缓存、静态存储(诸如,磁盘或光盘)或任何其他类型的非暂态计算机可读介质或其组合。非暂态计算机可读介质可以是可以由(多个)处理器144访问的任何介质,并且可以包括易失性介质、非易失性介质等。介质也可以是可移除的、不可移除的等。
31.通信设备148可以被配置为频分多址(fdma)、单载波fdma(sc-fdma)、时分多址(tdma)、码分多址(cdma)、正交频分复用(ofdm)、正交频分多址(ofdma)、全球移动通信系统(gsm)、通用分组无线电服务(gprs)、通用移动电信系统(umts)、cdma2000、宽带cdma(w-cdma)、高速下行链路分组接入(hsdpa)、高速上行链路分组接入(hsupa)、高速分组接入(hspa)、长期演进(lte)、高级lte(lte-a)、802.11x、wi-fi、zigbee、超宽带(uwb)、802.16x、802.15、家庭node-b(hnb)、bluetooth、射频识别(rfid)、红外数据协会(irda)、近场通信(nfc)、第五代(5g)、新无线电(nr)、或者用于经由一根或多根天线进行通信的任何其他无线或有线设备/收发器。天线可以是单一的、阵列的、定相的、开关的、波束成形的、波束控制的等。
32.一个或多个处理器144还可以经由总线142耦接到显示设备150,诸如等离子、液晶显示器(lcd)、发光二极管(led)、场发射显示器(fed)、有机发光二极管(oled)、柔性oled、柔性基板显示器、投影显示器、4k显示器、高清(hd)显示器、显示器、基于面内切换(ips)的显示器等。显示设备150可以被配置为使用电阻、电容、表面声波(saw)电容、红外、光学成像、色散信号技术、声脉冲识别、受抑全内反射或本领域普通技术人员所理解的用于输入/输出(i/o)的其他技术的触摸、三维(3d)触摸、多输入触摸或多触摸显示器。
33.键盘152和控制设备154(诸如,计算机鼠标、触摸板等)还可以耦接到总线142以用于到计算系统或环境140的输入。另外,可以经由与计算系统或环境140通信的另一计算系统远程地向计算系统或环境140提供输入,或者计算系统或环境140可以自主地操作。
34.存储器146可以存储在由一个或多个处理器144执行或处理时提供功能的软件组件、模块、引擎等。这可以包括用于计算系统或环境140的os 156。模块还可以包括用以执行应用特定过程或其衍生物的定制模块158。计算系统或环境140可以包括具有附加功能的一个或多个附加功能模块160。
35.计算系统或环境140可以被适配或配置为作为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(pda)、手机、平板计算设备、量子计算设备、云计算设备、移动设备、固定移动设备、智能显示器、可穿戴计算机等执行。
36.在本文中所给出的示例中,模块可以被实现为硬件电路,该硬件电路包括定制的超大规模集成(vlsi)电路或门阵列、诸如逻辑芯片等现成半导体、晶体管或其他分立组件。模块还可以在可编程硬件设备中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等。
37.模块可以至少部分以软件实现以供各种类型的处理器执行。所标识的可执行代码单元可以包括一个或多个物理或逻辑计算机指令块,该物理或逻辑计算机指令块可以例如被组织为对象、过程、例程、子例程或功能。共同定位或存储在不同位置中的所标识的模块的可执行文件在逻辑上连结在一起时包括该模块。
38.可执行代码模块可以是分布在若干不同代码段上、在不同程序之间、跨若干存储器设备等的单个指令、一个或多个数据结构、一个或多个数据集、多个指令等。操作或功能数据在本文中可以在模块内被标识和说明,并且可以以合适的形式具体实施并组织在任何合适类型的数据结构内。
39.在本文中给出的示例中,计算机程序可以以硬件、软件或混合实施方式来配置。计算机程序可以由彼此有效通信并传递信息或指令的模块组成。
40.在所包括的实施例中,用户动作的截屏用于提取重复动作的序列。序列提取可以使用动作聚类来进行。动作聚类被配置为标记与相同动作的不同变型有关的截屏。可以使用基于截屏的方法对动作进行无监督聚类。
41.所公开的实施例涉及自动标识桌面应用上的用于rpa的候选任务。可以使用应用于用户动作的截屏的序列提取来提取重复动作的序列,来标识候选任务。序列提取可以包括如下步骤:将动作随机聚类成预定义数目的群集,针对每个群集定义模板,将在模板中使用的特征聚合为样本再次在其中被聚类的稀疏特征空间,并且在将样本统一成群集标签之后引入序列提取方法。模板可以被定义为屏幕独有的该屏幕的布局,尽管理解的是,相似的屏幕遵循该布局。
42.图2示出了候选标识200的描述。候选标识200标识可以自动化且以高专业服务费和/或低roi结束的候选过程。候选标识200包括:聚类动作210,诸如用户动作和ui元素;从经聚类的动作210中提取序列220;以及基于所提取的序列220来理解过程230,以便标识用于自动化的候选过程同时最小化专业费用并改进roi。候选标识200包括动作聚类或聚类动作210,其中多个截屏被聚类以用于定义公共模板。聚类动作210可以包括模板、自适应参数调谐、随机采样、聚类细节和新颖性,如在下面将更详细描述的。候选标识200包括序列提取或提取序列220,序列提取或提取序列220从群集中标识任务的执行序列。提取序列220可以包括前向链路估计、图表示和动作聚类,如下文将更详细描述的。候选标识200包括理解过程230,诸如用于rpa的候选过程标识。
43.聚类动作210利用从截屏中提取的光学字符识别(ocr)数据。在示例性实施方式中,ocr引擎被用于从截屏中提取词和位置数据对。使用截屏上的词集和对应(标准化)坐标,实现了一种自适应的基于粒子的方法,该方法迭代地提取用于聚类的稀疏特征集。聚类动作210可以被随机地聚类成任意预定义数目的群集(群集数目>0)。
44.聚类动作210迭代地利用基于中心的聚类范例。对于每个群集,定义了中心。在该上下文中,中心被称为模板。模板被定义为屏幕独有的该屏幕的布局,尽管理解的是,相似的屏幕遵循该布局。使用该假定,聚类动作210针对每个群集确定模板。在模板中使用的特征的聚合然后被用作样本再次在其中被聚类的稀疏特征空间,如等式1中所示,给定一组n个截屏s:
45.s={s1,s2,...,sn}. 等式1。
[0046][0047]
在每个截屏si中,ocr引擎查找在图像上具有对应位置的mi个词。为了简单起见,每个位置根据屏幕分辨率而被标准化,并且转换为(area,center
x
,centery)格式。在等式2中,在截图si中看到的第j词被示出为w
ij
,其对应位置为l
ij

[0048][0049]
假定聚类π:s

c,其中c={c1,c2,...,ck}是k个群集标签的集合,如果π(si)=ck,则截屏si在群集ck中。可以基于群集中的频繁词和位置来创建模板。可以使用频率阈值方法针对每个群集计算频繁出现词的列表(w)。可以基于频率阈值针对每个群集计算频繁出现位置的列表(l)。在该频率测量中,如果交叉区域覆盖联合区域的90%以上,则两个位置是相似的。如会理解的,w和l可以分开计算。
[0050]
使用w和l,通过生成频率矩阵f来计算每个词或位置(或者,这两者)在样本群集中出现的次数。考虑非频繁词或位置发生的情况,元素被添加到w和l。频率矩阵具有一个额外的行和列(f
|w| 1,|l| 1
,)。在该表示中,f
i,j
示出了w中的第i词已出现在l中的第j位置处的次数,这是通过查看群集的截屏生成的。此外,f
(|w|,j)
指示非频繁词出现在第j频繁位置的次数。当截屏的数据输入位置的各种数据出现在相同位置中时,非频繁词可能出现在第j频繁位置。
[0051]
为了构建模板,选择频繁出现的词和位置的集合(频率大于每一列中的最大观察频率的70%,不包括最后一行和最后一列)。对于最后一行和最后一列,分别使用它们的最大值的70%阈值。如会理解的,也可以使用其他阈值,包括例如60%、80%和在60-80%之间递增地查找到的阈值。可以想象使用0到100%之间的任何阈值,尽管只有高于50%左右的阈值在本技术中是最有用的。
[0052]
模板包括词和位置的组合,说明页面的静态部分、以及具有各种数据的位置,这些数据是在各种位置出现的占位符和频繁词。图3示出了被聚类以定义模板的一组截屏300。
[0053]
在用于聚类动作210的迭代期间可以采用自适应参数调谐。上述模板可以用于评估经聚类的样本并调谐聚类参数以用于未来迭代。为了基于与第k群集ck相对应的模板tk来评估群集,基于等式3来测量群集中模板元素与非模板元素的百分比:
[0054][0055]
在该得分中,是非频繁词和位置的数目。该得分给出了截屏内容与当前群
集中的截屏内容相似的程度的估计。
[0056]
不同应用的截屏导致理想聚类中的不同模板得分。这表明截屏在所需要的聚类粒度上有所不同。因此,模板的方差得分var(score(tk))(其中)用于触发群集数目的改变,其可以基于模板得分的平均值而增加或减少。
[0057]
可以在聚类动作210中使用随机采样以确保稳健的群集并用于可扩展性提议。使用了与传统粒子群优化相似的重采样方法。即,聚类是在数据集的小随机样本上进行的,并且在每次迭代中,加权重采样可以选择先前样本的r%,并且(1-r)%从主数据集中被随机采样。为了鼓励多样化的样本,每次从数据集中抽取样本时,其权重可以减少一半,或者减少一些其他量,以便减少重复样本并增加样本的多样性。
[0058]
在聚类动作210的每次迭代中,针对每个群集提取模板。然后每个样本被表示为二进制特征向量,指示任何模板项的存在。之后,使用小批量k-means方法来对特征向量进行聚类。在迭代结束时或在给定迭代结束时,使用最终模板集来生成用于聚类的截屏的稀疏表示。
[0059]
该聚类动作210分别在每个应用的截屏上执行,并且数据针对每个应用基于各种粒度被聚类。序列提取220可以依赖于语义动作210的适当聚类。该基于粒子的聚类方法学习屏幕的稀疏表示并根据需要调谐聚类粒度,诸如通过处理整个数据集的小子集以生成基于ocr的特征。
[0060]
在将样本统一成由聚类动作210产生的群集标签之后,可以执行序列提取220。最初,通过丢弃相同屏幕上的后续事件来清理数据集。丢弃有助于专注于屏幕级序列提取220。所丢弃的数据可以在后续细节序列提取220中使用。
[0061]
为了提取序列220,可以通过利用前向链路预测模块来评估每个后续事件之间的关系。前向链路预测模块可以个体地考虑每个事件并提前预测以确定哪些未来事件被链接到所考虑的事件。这样做时,每个事件可以表示为其截屏、在动作聚类210中收集的ocr词和位置、以及截屏群集标签。前向链路预测模块将链路预测方法应用于与截屏s相对应的事件中的每个事件。为此,将在接下来的t秒内发生的事件列表收集为e(s),如等式4中所定义的:
[0062]
e(s)={s

,time(s

)-time(s)《t} 等式4。
[0063][0064]
为了估计e(s)中的任何事件是否被链接到e,使用等式5:
[0065][0066]
其中g(t)是均值为零的高斯函数,t=time(s

)-time(s)。等式中的分母基于不是对应屏幕的频繁部分的词的共现,这可能是两个屏幕被链接的指示。使用等式5提供了以标准化频率在群集的样本上测量的概率。
[0067]
可以生成动作序列的图。图4中所示的结果图400说明了屏幕级别的动作序列的流程。通过跟踪对边的权重有贡献的样本,图400可以用于解释用户执行的重复任务。在图中,每个节点410对应于在动作聚类210中发现的屏幕类型。图的边420从每个事件指向其在动
作聚类中标识的链接事件。每个边420被加权为对应的p(s,s

)值。
[0068]
图5示出了用于使用截屏图像进行序列提取以生成机器人过程自动化工作流的方法500。方法500包括:在步骤510,使用处理器来捕获由用户对应用执行的步骤的多个截屏。方法500包括:在步骤520,将截屏存储在存储器中。方法500包括:在步骤530,通过将动作随机聚类成任意预定义数目的群集,来从所捕获的截屏中确定动作群集。相同动作的不同变型的截屏可以在群集中被标记。方法500包括:在步骤540,从群集中提取序列,并且从群集中丢弃屏幕上的后续事件。方法500包括:在步骤550,基于所提取的序列来生成自动化工作流。
[0069]
本实施例通过自动标识重复完成的用户任务来节省时间,保持对共享内容的控制,并且提供增加的效率。
[0070]
尽管在上面以特定组合描述了特征和元素,但是本领域普通技术人员将理解的是,每个特征或元素可以单独使用或与其他特征和元素以任何组合使用。另外,本文中所描述的方法可以在计算机程序、软件或固件中实现,该计算机程序、软件或固件并入计算机可读介质中以供计算机或处理器执行。计算机可读介质的示例包括电子信号(通过有线或无线连接传输)和计算机可读存储介质。计算机可读存储介质的示例包括但不限于只读存储器(rom)、随机存取存储器(ram)、寄存器、高速缓冲存储器、半导体存储器设备、磁介质(诸如,内部硬盘和可移动存储器磁盘)、磁光介质和光介质(诸如,cd-rom磁盘)和数字通用磁盘(dvd)。
再多了解一些

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

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

相关文献