CN114868109A - 用户界面自动化中的自动锚点确定和目标图形元素标识 - Google Patents

用户界面自动化中的自动锚点确定和目标图形元素标识 Download PDF

Info

Publication number
CN114868109A
CN114868109A CN202180004276.5A CN202180004276A CN114868109A CN 114868109 A CN114868109 A CN 114868109A CN 202180004276 A CN202180004276 A CN 202180004276A CN 114868109 A CN114868109 A CN 114868109A
Authority
CN
China
Prior art keywords
graphical element
target
target graphical
anchor point
anchor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202180004276.5A
Other languages
English (en)
Other versions
CN114868109B (zh
Inventor
C·沃伊库
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yupas Co
Original Assignee
Yupas Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/100,146 external-priority patent/US11200073B1/en
Application filed by Yupas Co filed Critical Yupas Co
Publication of CN114868109A publication Critical patent/CN114868109A/zh
Application granted granted Critical
Publication of CN114868109B publication Critical patent/CN114868109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

公开了用于用户界面(UI)自动化中的目标图形元素标识的自动锚点确定。基于上下文的机制有助于在重复的目标UI元素候选之间进行区分。更具体地,可以针对提供上下文并且在目标周围的区域中可见的目标UI元素确定并且自动添加附加锚点。在设计时间的期间,目标UI元素可以由设计器应用的用户指示并且对应的锚点可以被确定。当UI元素对被发现与目标锚点对具有相同或相似的特性和/或关系时,无需请求用户输入即可自动标识附加锚点。附加锚点可以从目标UI元素的半径内的UI元素中被选择。

Description

用户界面自动化中的自动锚点确定和目标图形元素标识
相关申请的交叉引用
本申请要求于2020年11月20日提交的美国非临时专利申请第17/100,146号的权益。该较早提交的申请的主题通过引用整体并入本文。
技术领域
本发明总体上涉及用户界面(UI)自动化,更具体地涉及用于UI自动化中的目标图形元素标识的自动锚点确定。
背景技术
在基于计算机视觉(CV)的UI自动化中,应该在其上进行操作的UI元素(在本文中也被称为“图形元素”)的瞄准或定位(例如,由机器人过程自动化(RPA)机器人输入图形元素、点击按钮等)是使用锚点来完成的。在创建工作流时,开发人员在屏幕上指示目标图形元素。为了将目标图形元素的位置与其他类似的UI元素区分开来,锚点可以被使用。
然而,重复锚点的检测需要用户干预和手动输入。此外,锚点的选择可以因不同用户而异。因此,改进的方法可能是有益的。
发明内容
本发明的某些实施例可以提供对本领域中尚未被当前RPA技术完全标识、领会或解决的问题和需求的解决方案。例如,本发明的一些实施例涉及用于UI自动化中的目标图形元素标识的自动锚点确定。
在一个实施例中,一种计算机实现的方法包括:在设计时检查图像中的目标图形元素是否能够以至少一个置信度而被标识。当目标不能以至少一个置信度而被标识目标时,该计算机实现的方法还包括自动确定目标图形元素的邻近范围内的附加锚点并存储自动确定的附加锚点和目标图形元素以用于在运行时标识目标图形元素时使用。
在另一实施例中,非瞬态计算机可读介质存储用于在设计时在UI自动化中执行用于目标图形元素标识的自动锚点确定的程序。该计算机程序被配置为使至少一个处理器在设计时检查图像中的目标图形元素是否能够以至少一个置信度而被标识。当目标不能以至少一个置信度而被标识目标时,计算机程序还被配置为使至少一个处理器自动确定目标图形元素的邻近范围内的附加锚点并存储自动确定的附加锚点和目标图形元素以用于在运行时标识目标图形元素时使用。邻近范围由距目标图形元素的半径定义。
在又一实施例中,一种计算系统包括:存储用于在运行时在UI自动化中执行用于目标图形元素标识的自动锚点确定的计算机程序指令的存储器,以及被配置为执行计算机程序指令的至少一个处理器。计算机程序指令被配置为使至少一个处理器以:针对目标图形元素和先前针对目标图形元素确定的、与自动确定的锚点相匹配的一个或多个可见锚点进行搜索。计算机程序指令还被配置为使至少一个处理器以:使用一个或多个匹配可见锚点与目标图形元素之间的几何关系来标识UI中的目标图形元素。
在又一实施例中,一种计算系统包括存储用于在UI自动化中执行目标图形元素检测的计算机程序指令的存储器和被配置为执行该计算机程序指令的至少一个处理器。计算机程序指令被配置为使至少一个处理器以:针对目标图形元素和与与目标图形元素相关联的锚点相匹配的一个或多个可见锚点进行搜索。当在搜索中找到目标图形元素时,计算机程序指令被配置为使至少一个处理器使用一个或多个匹配可见锚点与目标图形元素之间的几何关系来标识用户界面中的目标图形元素。当在搜索中目标图形元素时未被找到时,计算机程序指令被配置为使至少一个处理器尝试补救动作以使得目标图形元素可见。
在另一实施例中,一种用于在UI自动化中执行目标图形元素标识的计算机实现的方法包括:由RPA机器人针对目标图形元素和与与目标图形元素相关联的锚点相匹配的一个或多个可见锚点进行搜索。当在搜索中目标图形元素未被找到时,计算机实现的方法包括由RPA机器人尝试补救动作以使得目标图形元素可见。
在又一实施例中,非瞬态计算机可读介质存储用于在UI自动化中执行目标图形元素检测的计算机程序。该计算机程序被配置为使至少一个处理器针对目标图形元素和与与该目标图形元素相关联的锚点相匹配的一个或多个可见锚点进行搜索。当在搜索中目标图形元素未被找到时,计算机程序被配置为使至少一个处理器从运行VM的服务器接收与正在运行的应用、打开的窗口和打开的窗口的位置有关的信息,并通过使用接收到的信息来生成鼠标点击信息、按键信息,或者两者来尝试补救操作,这引起服务器将与目标图形元素相关联的窗口移动到UI的前景中,启动与目标图形元素相关联的应用,或者两者。
附图说明
为了容易理解本发明的某些实施例的优点,将通过参考在附图中图示出的特定实施例来呈现以上简要描述的本发明的更具体的描述。虽然应该理解这些附图仅描绘了本发明的典型实施例并且因此不应被认为是对其范围的限制,但是将通过使用附图以附加的具体性和细节来描述和解释本发明,其中:
图1是图示了根据本发明实施例的机器人过程自动化(RPA)系统的架构图。
图2是图示了根据本发明实施例的部署的RPA系统的架构图。
图3是图示了根据本发明实施例的设计器、活动和驱动程序之间的关系的架构图。
图4是图示了根据本发明实施例的RPA系统的架构图。
图5是图示了根据本发明实施例的被配置为在UI自动化中执行用于目标图形元素标识的自动锚点确定的计算系统的架构图。
图6A图示了根据本发明实施例的具有某些状态的交易应用窗口。
图6B图示了根据本发明实施例的具有目标和锚点的指示的交易应用窗口的UI。
图6C图示了根据本发明实施例的交易应用窗口的UI,其中指示的目标和锚点没有唯一标识目标。
图6D图示了根据本发明实施例的交易应用窗口,其中目标和多个锚点的组合唯一标识目标。
图6E图示了根据本发明实施例的交易应用窗口,其中目标和多个锚点的组合没有唯一标识目标。
图6F图示了根据本发明实施例的交易应用窗口,其中在目标的特定半径内的所有附加锚点被标识和选择,但对用户不可见。
图6G图示了根据本发明实施例的交易应用窗口,其中在目标的特定半径内的所有附加锚点被标识和选择,并且对用户可见。
图6H图示了根据本发明实施例的交易应用窗口,其中该窗口的尺寸被水平缩小使得该窗口的一部分未被示出。
图6I图示了根据本发明实施例的图6H的交易应用窗口,其中在窗口中在目标的某些半径内的可见锚点被检测。
图6J图示了根据本发明实施例的部分覆盖交易应用窗口的另一窗口。
图6K图示了根据本发明实施例的部分覆盖图6J的交易应用窗口的另一窗口,其中在目标的某些半径内的可见锚点被检测。
图6L图示了根据本发明实施例的交易应用窗口,其中该窗口的尺寸被水平缩小使得该窗口的一部分未被示出并且另一窗口与该交易应用的窗口相邻。
图6M图示了根据本发明实施例的图6L的场景的运行时实现,其中在交易应用窗口中在目标的特定半径内的可见锚点被检测。
图6N图示了根据本发明实施例的图6J的场景的设计时间实现,其中在交易应用窗口和另一窗口中在目标的特定半径内的可见锚点被检测。
图7是图示了根据本发明实施例的用于执行自动锚点确定的过程的流程图。
图8A和图8B是图示了根据本发明实施例的用于执行自动锚点确定和目标图形元素标识的过程的流程图。
图9是图示了根据本发明实施例的在目标的窗口看起来被挡住或者目标未以其他方式被发现或可用的情况下用于尝试(多个)补救动作的过程的流程图。
图10A-图10C图示了根据本发明实施例的请求用户确认和辅助的弹出窗口。
图10D图示了根据本发明实施例的具有被边界框包围的“提交”按钮的应用窗口。
除非另有说明,相似的参考字符在整个附图中一致地标示对应的特征。
具体实施方式
一些实施例涉及用于UI自动化中的目标图形元素标识的自动锚点确定。如本文中所使用的,“图形元素”和“UI元素”可互换使用。这样的实施例可以提供在重复目标候选者之间进行区分的基于上下文的机制。更具体地,可以针对提供上下文并且在目标周围的区域中可见的目标UI元素确定并自动添加附加锚点。
在设计时间期间,目标UI元素可以由设计器应用(例如,UiPath StudioTM)的用户指示并且对应的锚点可以被确定。当发现UI元素对与目标锚点对具有相同或相似的特性和/或关系时(例如,参见图6C),无需请求用户输入即可自动标识附加锚点。在一些实施例中,可以从目标UI元素的半径内的UI元素中选择附加锚点。可以添加多个附加锚点,因为在设计时不一定知道哪些锚点将在运行时实际存在。在一些情形中,如果搜索范围内没有其他锚点,则可能只收集到单个可选锚点。然而,这对于大多数现实世界的实现来说是不可能的。在运行时期间,搜索多个可选锚点以适应运行时更改。在一些实施例中,自动锚点检测可以被应用于桌面应用和虚拟环境中的自动化。
根据上述内容,一些实施例采用多锚点UI元素标识方法。当目标图形元素图像本身在UI中不是唯一的时,可能会发生这种情况。在这种情况下,可以自动选择或由用户指定多个附加锚点。
锚点是可以被用于辅助唯一地标识目标UI元素的其他UI元素。例如,如果UI中包括多个相同形状和大小的文本字段,则仅搜索文本字段图像不足以唯一地标识给定文本字段。因此,一些实施例寻找附加信息以便唯一地标识期望的目标UI元素。使用文本字段示例,用于输入名字的文本字段可能出现在标签“名字”的右侧。这个名字标签可以被设置为“锚点”,以帮助唯一地标识作为“目标”的文本字段。
在一些实施例中,可以在一个或多个容差内可以使用目标和锚点之间的各种定位和/或几何关联,以唯一地标识目标。例如,目标和锚点的边界框的中心可以被用来定义线段。然后可以要求该线段具有容差内的特定长度和/或容差内的斜率,以使用目标/锚点对唯一地标识目标。然而,在不脱离本发明的范围的情况下,可以在一些实施例中使用与目标和/或锚点相关联的位置的任何期望定位。例如,线段的端点可以在中心、左上角、右上角、左下角、右下角、边界框的边界上的任何其他位置、边界框内的任何位置、与边界框属性相关地标识的边界框之外的位置、其组合(例如,目标的边界框的中心和锚点的边界框的右上角)等。在某些实施例中,目标和一个或多个锚点可以在其用于几何匹配的边界框之内或之外具有不同的位置。
根据上述内容,单个锚点可能并不总是足以以某个置信度唯一地标识屏幕上的目标元素。例如,考虑一个Web表单,其中用于输入名字的两个文本字段出现在屏幕上的不同位置的相应标签“名字”的右侧。在该示例中,一个或多个附加锚点可用于唯一标识给定目标。实际上,锚点和目标之间的几何属性(例如,具有容差的线段长度、角度和/或相对位置)可以被用来唯一地标识目标。在一些实施例中,可以自动添加锚点直到目标的匹配强度超过阈值。
在一些实施例中,可以使用UI描述符来描述目标和锚点图形元素。UI描述符其核心是标识图形元素(例如,文本字段、按钮、标签、菜单、复选框等)。一些类型的UI描述符包括但不限于选择器、CV描述符、图像匹配描述符、OCR描述符、可以串联或并行使用多个不同类型的UI描述符的统一目标描述符等。UI描述符可以被用以将给定UI描述符的属性与运行时在UI中找到的UI元素的属性进行比较。
在一些实施例中,UI描述符例如在可扩展标记语言(XML)片段中存储相应的UI元素及其父元素的属性。在运行时,可以为了与相应RPA工作流活动的属性的匹配而搜索在UI中找到的UI元素的属性,并且如果在匹配阈值内找到完全匹配或“足够接近”的匹配,则UI元素可以被标识并相应地进行交互。属性可以包括基于文本的标识符(ID)、类、角色等。针对CV,属性可以包括目标元素的类型以及与可以在多锚点匹配方法中使用的一个或多个锚点元素的关系。针对OCR,属性可以包括例如存储的字符串形式的文本以及经由OCR找到的在执行期间与存储的字符串模糊匹配的文本。在不脱离本发明的范围的情况下,可以使用任何合适的属性和图形元素检测技术。
一些实施例使用UI描述符,其将UI元素及其父元素的属性存储在XML片段中。在现代计算系统中,操作系统通常将每个用户界面表示为通常被称为UI树的分层数据结构。示例UI树可以包括位于由网络浏览器应用渲染的网页之下的文档对象模型(DOM)。
选择器是一种类型的UI描述符,其在一些实施例中可以被用来检测UI元素。在一些实施例中,选择器具有以下结构:<node_1/><node_2/>...<node_N/>
最后一个节点表示感兴趣的GUI元素,并且所有先前的节点表示该元素的父元素。<node_1>通常被称为根节点,并且表示应用的顶部窗口。
每个节点可以具有一个或多个属性,这些属性有助于正确标识选择的应用的特定级别。在一些实施例中,每个节点具有以下格式:
<ui_system attr_name_1=′attr_value_l′...attr_name_N=′attr_value_N′/>每个属性都可以具有被分配的值,并且可以选择具有恒定值的属性。这是因为每次启动应用时更改属性值可以导致选择器无法正确标识关联的元素。
UI描述符是用于查找UI元素的指令集。在一些实施例中,UI描述符是封装的数据/结构格式,其包括(多个)UI元素选择器、(多个)锚点选择器、(多个)CV描述符、(多个)OCR描述符、结合两种或更多种类型的(多个)统一目标描述符UI描述符、屏幕图像捕获(上下文)、元素图像捕获、其他元数据(例如,应用和应用版本)、它们的组合等。封装的数据/结构格式可以随着平台的未来更新而是可扩展的并且不限于上述定义。在不脱离本发明的范围的情况下,可以使用用于标识屏幕上的UI元素的任何合适的UI描述符。UI描述符可以从RPA工作流中的活动中被提取,并被添加到结构化架构中,其按UI应用、屏幕和UI元素来对UI描述符进行分组。
在一些实施例中,UI描述符可以与统一目标一起工作,该目标包含多个或所有UI元素检测机制,通过这些机制执行图像检测和定义。统一目标可以将标识和自动化UI元素的多种技术合并到单个内聚方法中。统一目标描述符将多种类型的UI描述符串联在一起,并行使用它们,或者首先使用至少一种技术(例如,选择器)一段时间,然后并行运行至少一种其他技术,或者在第一种技术在时间段内没有找到匹配的情况下备选地运行至少一种其他技术。在一些实施例中,统一目标描述符可以像有限状态机(FSM)一样起作用,其中在第一上下文中,应用第一UI描述符机制,在第二上下文中,应用第二UI描述符,等等。在一些实施例中,统一目标可以优先考虑基于选择器和基于驱动程序的UI检测机制,并且如果前两种机制不成功,则回退到CV、图像匹配和/或其他机制来查找图形元素。
在一些实施例中,可以采用模糊匹配,其中使用字符串度量(例如,Levenshtein距离、Hamming距离、Jaro-Winkler距离等)、它们的组合等,一个或多个属性应该在特定范围内以特定准确度(例如,70%匹配、80%匹配、99%匹配等)进行匹配。本领域的普通技术人员将领会,相似性度量可以量化相似性的量,以及两个属性值之间的不匹配的量。此外,在各种实施例中,相似性阈值可以表示匹配所需的最小相似性量或最大不匹配的量。
取决于选择的计算相似性度量的方式,相似性阈值可以有不同的解释。例如,相似性阈值可以指示在两个字符串之间可以不同的最大字符计数或被计算为字符总计数(例如,组合的字符串长度)的比例的不匹配的分数程度。在一些实施例中,相似性阈值可以被重新缩放到预先确定的间隔,诸如在0和1之间、0和100之间、7和34之间等。在一个非限制性示例中,相对高的相似性阈值(例如,接近到1或100%)指示要求几乎精确匹配,即,运行时目标中的模糊属性值仅允许与设计时目标中的相应属性的值略微偏离。相反,当相似性阈值相对较低(例如,接近于0)时,相应的模糊属性的几乎任何值都被认为是匹配的。
在某些实施例中,匹配容差可以基于每个属性而不同。例如,可能需要对一个或多个属性进行确切匹配(例如,可能期望找到某个确切名称),并且可能对一个或多个其他属性执行模糊匹配。在一些实施例中,从每个图形元素检测技术使用的属性的数目和/或类型可以由RPA开发人员定制规定。
在一些实施例中,属性可以被存储为属性-值对和/或属性-值-容差对(例如,模糊匹配)。在一些实施例中,属性-值对可以指示由相应节点表示的UI元素的名称和类型。然而,本领域技术人员将领会,在不脱离本发明的范围的情况下,除了属性-值对的列表之外,可以存在多种方式来表示UI树内的特定节点的位置。
在一些实施例中,这些属性-值对和/或属性-值-容差对可以被存储在标签中,并且每个标签可以包括字符序列,其中序列用特定于实现的定界符进行书夹(例如,以“<”开头并且以“/>”结束)。在一些实施例中,属性-值对可以指示由相应节点表示的UI元素的名称和类型。然而,本领域技术人员将领会,在不脱离本发明的范围的情况下,除了属性-值对的列表之外,可以存在多种方式来表示UI树内的特定节点的位置。
为了使得RPA机器人能够成功且理想地明确标识,一些实施例使用表征相应的UI元素的元素ID来表示每个UI元素。在一些实施例中,元素ID指示目标节点在UI树内的位置,其中目标节点表示相应UI元素。例如,元素ID可以将目标节点/UI元素标识为所选节点子集的成员。选择的节点子集可以形成系谱,即通过UI树的血统线,其中每个节点要么是另一节点的祖先,要么是另一节点的后代。
在一些实施例中,元素ID包括节点指示符的有序序列,该序列跟踪通过UI树的系谱路径,并且路径以相应的目标节点/UI元素结束。每个节点指示符可以表示相应UI的对象层次结构的成员及其在与相应层次结构一致的序列内的定位。例如,序列的每个成员可以表示前一成员的后代(例如,子节点),并且可以具有随后的成员作为后代(例如,子节点)。在一个超文本标记语言(HTML)示例中,表示单独的表单字段的元素ID可以指示相应表单字段是HTML表单的子项,而HTML表单又是网页特定部分的子项等。在一些实施例中,谱系不需要是完整的。
一些实施例可以使用一个或多个多锚点匹配属性。锚点是其他UI元素,其可以被用来帮助唯一地标识目标UI元素。例如,如果UI中包括多个文本字段,仅搜索文本字段不足以唯一标识给定文本字段。因此,一些实施例寻找附加信息以便唯一标识给定UI元素。使用文本字段示例,用于输入名字的文本字段可能出现在标签“名字”的右侧。这个名字标签可以被设置为“锚点”,以帮助唯一地标识作为“目标”的文本字段。
在一些实施例中,可以在一个或多个容差内可以使用目标和锚点之间的各种定位和/或几何关联,以唯一标识目标。例如,目标和锚点的边界框的中心可以被用以定义线段。然后可以要求该线段具有容差内的特定长度和/或容差内的斜率,以使用目标/锚点对唯一标识目标。然而,在不脱离本发明的范围的情况下,可以在一些实施例中使用与目标和/或锚点相关联的位置的任何期望定位。例如,用于绘制线段的点可以在中心、左上角、右上角、左下角、右下角、边界框的边界上的任何其他位置、边界框内的任何位置、与边界框属性相关地标识的边界框之外的位置等等。在某些实施例中,目标和一个或多个锚点可以在其用于几何匹配的边界框之内或之外具有不同的位置。
根据上述内容,单个锚点可能并不总是足以以某个置信度唯一地标识屏幕上的目标图形元素。例如,考虑一个Web表单,其中用于输入名字的两个文本字段出现在屏幕上的不同位置的相应标签“名字”的右侧。在该示例中,一个或多个附加锚点可用于唯一地标识给定目标。锚点和目标之间的几何属性(例如,具有容差的线段长度、角度和/或相对位置)可以被用来唯一地标识目标。可能需要用户继续添加锚点,直到目标的匹配强度超过阈值。
某些实施例可以被用于机器人过程自动化(RPA)。图1是图示了根据本发明实施例的RPA系统100的架构图。RPA系统100包括允许开发人员设计和实现工作流的设计器110。设计器110可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务和业务IT过程的解决方案。设计器110可以促进自动化项目的开发,自动化项目是业务过程的图形表示。简而言之,设计器110促进工作流和机器人的开发和部署。
自动化项目通过让开发人员控制工作流中开发的一组自定义步骤(在本文中被定义为“活动”)之间的执行顺序以及关系来实现基于规则的流程的自动化。设计器110的实施例的一个商业示例是UiPath StudioTM。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,可以嵌套或嵌入工作流。
某些类型的工作流可以包括但不限于序列、流程图、FSM和/或全局异常处理程序。序列可以特别适用于线性过程,实现了从一个活动流向另一活动,而不会使工作流混乱。流程图可以特别适用于更复杂的业务逻辑,通过多个分支逻辑运算符以更多样化的方式实现了决策的集成和活动的连接。FSM可以特别适用于大型工作流。FSM可以在其执行中使用有限数目的状态,这些状态由条件(即转换)或活动来触发。全局异常处理程序可以特别适用于在遇到执行错误时用于确定工作流行为以及用于调试过程。
一旦在设计器110中开发了工作流,业务过程的执行就由指挥器120编排,其编排执行设计器110中开发的工作流的一个或多个机器人130。指挥器120的实施例的一个商业示例是UiPath OrchestratorTM。指挥器120促进了对环境中的资源的创建、监控和部署的管理。指挥器120可以作为与第三方解决方案和应用的集成点或聚合点中的一个集成点或聚合点。
指挥器120可以管理一组机器人130,从集中点连接和执行机器人130。可以管理的机器人130的类型包括但不限于有人值守机器人132、无人值守机器人134、开发机器人(类似于无人值守机器人134,但被用于开发和测试目的)和非生产机器人(类似于有人值守机器人132,但被用于开发和测试目的)。有人值守机器人132可以由用户事件来触发或被调度自动发生,并在相同的计算系统上与人类一起操作。有人值守机器人132可以与指挥器120一起用于集中化过程部署和日志记录介质。有人值守机器人132可以帮助人类用户完成各种任务,并且可以由用户事件来触发。在一些实施例中,在这种类型的机器人上不能从指挥器120启动过程和/或它们不能在锁定屏幕下运行。在某些实施例中,有人值守机器人132只能从机器人托盘或从命令提示符启动。在一些实施例中,有人值守机器人132应该在人类的监督下运行。
无人值守机器人134在虚拟环境中或在物理机器上无人值守地运行,并且可以使许多过程自动化。无人值守机器人134可以负责远程执行、监控、调度和为工作队列提供支持。在一些实施例中,可以从设计器110运行针对所有机器人类型的调试。有人值守和无人值守机器人都可以使各种系统和应用自动化,包括但不限于大型机、网络应用、VM、企业应用(例如,由
Figure BDA0003442542850000131
等生产的那些)和计算系统应用(例如,台式机和笔记本电脑应用、移动设备应用、可穿戴计算机应用等)。
指挥器120可以具有各种能力,包括但不限于供应、部署、版本控制、配置、队列、监控、日志记录和/或提供互连性。供应可以包括创建和维护机器人130和指挥器120之间的连接(例如,网络应用)。部署可以包括确保将包装版本正确地递送给所指派的机器人130以用于执行。在一些实施例中,版本控制可以包括对一些过程或配置的独特实例的管理。配置可以包括机器人环境和过程配置的维护和递送。队列可以包括提供对队列和队列项的管理。监控可以包括跟踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和索引到数据库(例如,SQL数据库)和/或其他存储机制(例如,提供存储和快速查询大型数据集的能力的
Figure BDA0003442542850000132
指挥器120可以通过充当第三方解决方案和/或应用的集中化通信点来提供互连性。
机器人130是运行在设计器110中构建的工作流的执行代理。(多个)机器人130的一些实施例的一个商业示例是UiPath RobotsTM。在一些实施例中,机器人130被默认安装Microsoft
Figure BDA0003442542850000133
服务控制管理器(SCM)管理的服务。结果,这样的机器人130可以在本地系统账户下打开交互式
Figure BDA0003442542850000135
会话,并且具有
Figure BDA0003442542850000134
服务的权限。
在一些实施例中,机器人130可以以用户模式被安装。对于这样的机器人130,这意味着它们与已经安装给定机器人130的用户具有相同的权利。此特征也可用于高密度(HD)机器人,其确保了充分利用每台机器的最大潜力。在一些实施例中,可以在HD环境中配置任何类型的机器人130。
在一些实施例中,机器人130被拆分成若干组件,每个组件专用于特定的自动化任务。一些实施例中的机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监控
Figure BDA0003442542850000141
会话并充当指挥器120和执行主机(即,机器人130在其上执行的计算系统)之间的代理。这些服务被机器人130信任并管理机器人130的凭证。控制台应用由本地系统下的SCM启动。
在一些实施例中,用户模式机器人服务管理和监控
Figure BDA0003442542850000142
会话并且充当指挥器120和执行主机之间的代理。用户模式机器人服务可以被机器人130信任并管理机器人130的凭证。如果没有安装SCM管理的机器人服务,则可以自动启动
Figure BDA0003442542850000143
应用。
执行器可以在
Figure BDA0003442542850000144
会话下运行给定的作业(即,它们可以执行工作流。执行器可能知晓每显示器的每英寸点数(DPI)设置。代理可以是
Figure BDA0003442542850000145
PresentationFoundation(呈现架构)(WPF)应用,其显示系统托盘窗口中的可用作业。代理可以是服务的客户端。代理可以请求开始或停止作业以及更改设置。命令行是服务的客户端。命令行是可以请求启动作业并等待其输出的控制台应用。
将机器人组件130如上所述进行拆分有助于开发人员、支持用户和计算系统更容易地运行、标识和跟踪每个组件正在执行什么。可以通过这种方式为每个组件配置特殊行为,诸如为执行器和服务设立不同的防火墙规则。在一些实施例中,执行器可以总是知晓每个监视器的DPI设置。结果,工作流可以在任何DPI执行,而不管创建它们的计算系统的配置如何。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。对于未察觉DPI或被有意标记为不知晓的应用,在一些实施例中可以禁用DPI。
图2是图示了根据本发明实施例的部署的RPA系统200的架构图。在一些实施例中,RPA系统200可以是图1的RPA系统100或者可以是图1的RPA系统100的一部分。应当注意,在不脱离本发明的范围的情况下,客户端、服务器端或两者可以包括任何期望数目的计算系统。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可能不在计算系统210上运行。执行器212正在运行过程。若干业务项目可以同时运行,如图2中所示。在该实施例中,代理214(例如,
Figure BDA0003442542850000151
服务)是所有执行器212的单个联系点。该实施例中的所有消息都被日志记录到指挥器230中,指挥器230经由数据库服务器240、索引器服务器250或两者而进一步处理它们。如以上关于图所讨论的,执行器212可以是机器人组件。
在一些实施例中,机器人表示机器名称和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行多个交互式会话的计算系统(例如,
Figure BDA0003442542850000152
Server2012)上,多个机器人可以同时运行,每个机器人都在分开的
Figure BDA0003442542850000153
会话中使用唯一的用户名。这在上面被称为HD机器人。
代理214还负责发送机器人的状态(例如,周期性地发送指示机器人仍在运行的“心跳”消息)并下载要执行的所需版本的包装。在一些实施例中,代理214和指挥器230之间的通信总是由代理214发起。在通知场景中,代理214可以打开WebSocket通道,稍后由指挥器230使用该通道向机器人发送命令(例如,启动、停止等)。
在服务器侧,呈现层(网络应用232、开放数据协议(OData)表示状态传输(REST)应用编程接口(API)端点234和通知与监控236)、服务层(API实现/业务逻辑238)和持久层(数据库服务器240和索引器服务器250)被包括。指挥器230包括网络应用232、OData REST API端点234、通知与监控236以及API实现/业务逻辑238。在一些实施例中,用户(例如,经由浏览器220)在指挥器230的界面中执行的大多数动作是通过调用各种API来执行。在不脱离本发明的范围的情况下,这种动作可以包括但不限于在机器人上启动作业、在队列中添加/移除数据、调度作业以无人值守地运行等。网络应用232是服务器平台的可视层。在该实施例中,网络应用232使用超文本标记语言(HTML)和JavaScript(JS)。然而,在不脱离本发明的范围的情况下,可以使用任何期望的标记语言、脚本语言或任何其他格式。在本实施例中,用户经由浏览器220来与来自网络应用232的网页交互,以便执行各种动作来控制指挥器230。例如,用户可以创建机器人组、将包装指派给机器人、分析每个机器人和/或每个过程的日志,启动和停止机器人等。
除了网络应用232之外,指挥器230还包括暴露OData REST API端点234的服务层。然而,在不脱离本发明的范围的情况下可以包括其他端点。REST API由网络应用232和代理214两者使用。在该实施例中,代理214是客户端计算机上的一个或多个机器人的监督者。
本实施例中的REST API涵盖配置、日志记录、监控和队列功能性。在一些实施例中,配置端点可以被用来定义和配置应用用户、许可、机器人、资产、发布和环境。日志记录REST端点可以被用来记录不同的信息,诸如错误、机器人发送的显式消息以及其他特定于环境的信息。如果在指挥器230中使用启动作业命令,则机器人可以使用部署REST端点来查询应该执行的包装版本。队列REST端点可以负责队列和队列项管理,诸如向队列添加数据,从队列中获取事务,设置事务的状态等。
监控REST端点可以监控网络应用232和代理214。通知与监控API 236可以是REST端点,其被用于注册代理214、向代理214递送配置设置以及用于从服务器和代理发送/接收通知214。在一些实施例中,通知与监控API 236也可以使用WebSocket通信。
在本实施例中,持久层包括服务器对——数据库服务器240(例如,SQL服务器)和索引器服务器250。本实施例中的数据库服务器240存储机器人、机器人组、关联过程、用户、角色、时间表等的配置。在一些实施例中,通过网络应用232来管理该信息。数据库服务器240可以管理队列和队列项。在一些实施例中,数据库服务器240可以存储由机器人日志记录的消息(作为索引器服务器250的附加或替代)。
索引器服务器250在一些实施例中是可选的,其存储和索引由机器人日志记录的信息。在某些实施例中,可以通过配置设置禁用索引器服务器250。在一些实施例中,索引器服务器250使用作为开源项目全文搜索引擎的
Figure BDA0003442542850000171
机器人日志记录的消息(例如,使用诸如日志消息或写行的活动)可以通过日志记录REST端点而被发送到索引器服务器250,在那里它们被索引以备将来利用。
图3是图示了根据本发明实施例的设计器310、活动320、330、驱动程序340和AI/ML模型350之间的关系300的架构图。根据上述内容,开发人员使用设计器310来开发由机器人执行的工作流。工作流可以包括用户定义的活动320和UI自动化活动330。在一些实施例中,用户定义的活动320和/或UI自动化活动330可以调用一个或多个AI/ML模型350,其可以本地地位于机器人正在操作的计算系统上和/或与该计算系统远离。一些实施例能够标识图像中的非文本视觉组件,这在本文中被称为计算机视觉(CV)。与这种组件有关的一些CV活动可以包括但不限于点击、键入、获取文本、悬停、元素存在、刷新范围、突出显示等。在一些实施例中,点击例如使用CV、光学字符识别(OCR)、模糊文本匹配、多锚点等等来标识元素并点击它。键入可以使用上述来标识元素并在元素中进行键入。获取文本可以标识特定文本的位置并使用OCR对其进行扫描。悬停可以标识元素并将鼠标悬停在它上面。元素存在可以使用上述技术检查元素是否存在于屏幕上。在一些实施例中,可能存在数百甚至数千个可以在设计器310中实现的活动。然而,在不脱离本发明的范围的情况下,任何数目和/或类型的活动都是可用的。
UI自动化活动330是用低级别代码编写的特殊低别级活动的子集(例如,CV活动)并促进通过UI层来与应用的交互。在某些实施例中,例如,UI自动化活动300可以通过窗口消息等来模拟“用户输入”。UI自动化活动330经由允许机器人与期望软件交互的驱动程序340和/或AI/ML模型350来促进这些交互。例如,驱动程序340可以包括OS驱动程序342、浏览器驱动程序344、VM驱动程序346、企业应用驱动程序348等。AI/ML模型350中的一个或多个可以由UI自动化活动330使用以便确定执行与计算系统的交互。在一些实施例中,AI/ML模型350可以增强驱动程序340或完全替换它们。实际上,在某些实施例中,不包括驱动程序340。
驱动程序340可以在低级别与操作系统交互以寻找挂钩(hook)、监控密钥等。它们可以促进与
Figure BDA0003442542850000181
等的集成。例如,“点击”活动经由驱动程序340在这些不同的应用中执行相同的角色。
图4是图示了根据本发明实施例的RPA系统400的架构图。在一些实施例中,RPA系统400可以是包括图1和/或图2的RPA系统100和/或200或包括图1和/或图2的RPA系统100和/或200。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的网络应用来与指挥器计算系统420通信。指挥器计算系统420进而能够与数据库服务器430和可选的索引器服务器440通信。
关于图1和图3,应当注意,虽然在这些实施例中使用了网络应用,但是在不脱离本发明的范围的情况下可以使用任何合适的客户端和/或服务器软件。例如,指挥器可以运行与客户端计算系统上的非基于web的客户端软件应用进行通信的服务器端应用。
图5是图示了根据本发明实施例的被配置为在UI自动化中执行用于目标图形元素标识的自动锚点确定的计算系统500的架构图。在一些实施例中,计算系统500可以是本文描绘和/或描述的计算系统中的一个或多个。计算系统500包括用于传送信息的总线505或其他通信机制,以及耦合到总线505用于处理信息的处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例和/或其任何组合。(多个)处理器510还可以具有多个处理核,并且至少一些核可以被配置为执行特定功能。在一些实施例中可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一个处理器可以是包括模拟生物神经元的处理元件的神经形态电路。在一些实施例中,神经形态电路可以不需要冯诺依曼计算架构的典型组件。
计算系统500还包括用于存储信息和要由(多个)处理器510执行的指令的存储器515。存储器515可以由随机存取存储器(RAM)、只读存储器(ROM)、闪存、高速缓存、静态存储(诸如磁盘或光盘)或任何其他类型的非瞬态计算机可读介质或其组合的任何组合组成。非瞬态计算机可读介质可以是可由(多个)处理器510访问的任何可用介质并且可以包括易失性介质、非易失性介质或两者。介质也可以是可移除的、不可移除的,或者两者。
附加地,计算系统500包括诸如收发器的通信设备520,以经由无线和/或有线连接提供对通信网络的访问。在一些实施例中,在不脱离本发明的范围的情况下,通信设备520可以被配置为使用频分多址(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、家庭节点B(HnB)、蓝牙、射频标识(RFID)、红外数据协会(IrDA)、近场通信(NFC)、第五代(5G)、新无线电(NR)、其任何组合和/或任何其他当前存在或未来实现的通信标准和/或协议。在一些实施例中,通信设备520可以包括一个或多个天线,在不脱离本发明的范围的情况下,这些天线是单一的、阵列的、定相的、切换的、波束成形的、波束控制的、它们的组合和/或任何其他天线配置。
(多个)处理器510还经由总线505耦合到显示器525,诸如等离子显示器、液晶显示器(LCD)、发光二极管(LED)显示器、场发射显示器(FED)、有机发光二极管(OLED)显示器、柔性OLED显示器、柔性基板显示器、投影显示器、4K显示器、高清显示器、
Figure BDA0003442542850000191
显示器、面内切换(IPS)显示器或任何用于向用户显示信息的其他合适的显示器。显示器525可以被配置为使用电阻、电容、表面声波(SAW)电容的触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多触摸显示器等、红外、光学成像、色散信号技术、声脉冲识别、受抑全内反射等。在不脱离本发明的范围的情况下,可以使用任何合适的显示设备和触觉I/O。
键盘530和光标控制设备535,诸如计算机鼠标、触摸板等,进一步耦合到总线505以使得用户能够与计算系统500交互。然而,在某些实施例中,物理键盘和鼠标可以不存在,并且用户可以仅通过显示器525和/或触摸板(未示出)来与设备交互。根据设计选择,可以使用任何类型和组合的输入设备。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与其通信的另一个计算系统来远程地与计算系统500交互,或者计算系统500可以自主地操作。
存储器515存储在由(多个)处理器510执行时提供功能性的软件模块。模块包括用于计算系统500的操作系统540。模块还包括自动锚点确定模块545,其被配置为执行全部或部分本文所述的过程或其衍生产品。计算系统500可以包括一个或多个包括附加功能性的附加功能模块550。
本领域技术人员将理解,在不脱离本发明范围的情况下,“系统”可以被体现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、手机、平板计算设备、量子计算系统或任何其他合适的计算设备或设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例中的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的本地化和分布式的形式(包括云计算系统)来实现。计算系统可以是以下配置的一部分或可以通过以下配置以其他方式访问:局域网(LAN)、移动通信网络、卫星通信网络、互联网、公共或私有云、混合云、服务器群、它们的任何组合等等。在不脱离本发明的范围的情况下,可以使用任何本地化或分布式架构。
应该注意的是,本说明书中描述的一些系统特征已经作为模块而被呈现,以便更特别地强调它们的实现独立性。例如,模块可以被实现为硬件电路,该硬件电路包括定制的超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片、晶体管或其他分立组件的现成半指挥器。模块还可以被实现在可编程硬件器件中,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等。
模块也可以至少部分地以软件实现以用于各种类型的处理器执行。被标识的可执行代码单元可以例如包括一个或多个物理或逻辑计算机指令块,其可以例如被组织为对象、过程或功能。然而,标识模块的可执行文件不需要物理地放置在一起,而是可以包括存储在不同位置的不同指令,当逻辑连接在一起时,这些指令包括模块并实现模块的所述目的。此外,模块可以被存储在计算机可读介质上,例如其可以是硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他这种非瞬态计算机可读介质,而没有脱离本发明的范围。
事实上,可执行代码模块可以是单条指令,也可以是多条指令,并且甚至可以分布在若干不同的代码段上、不同的程序之中和多个存储器设备上。类似地,操作数据可以在本文中被标识和图示在模块内,并且可以以任何合适的形式被体现并且可以被组织在任何合适类型的数据结构内。操作数据可以作为单个数据集来收集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号而存在。
图6A图示了根据本发明实施例的具有某些状态的交易应用窗口600。例如,交易应用窗口600可以是它在存款交易期间的某个点出现的。使用设计器应用,诸如图1的设计器应用110或图3的设计器应用310,在一些实施例中,用户可以启用允许用户在屏幕上指示图形元素的功能性。例如,用户可以指定通过RPA工作流中的活动要与之交互的目标UI元素。转到图6B,如果用户选择文本字段610作为目标并且选择“存入”标签612作为锚点,这对足以唯一地标识屏幕上的文本字段610,并且不需要标识附加锚点。在该实施例中,针对最后选择的目标或锚点UI元素而出现圆圈中的“x”。在一些实施例中,自动锚点确定逻辑可以在确定目标独自在屏幕上不是唯一的之后自动选择锚点而不需要用户输入(例如,选择最靠近的锚点、选择在目标和锚点组合唯一地标识目标的所在位置所找到的第一个锚点、选择从某个起始方向顺时针或逆时针的第一个锚点等)。
然而,在被用于目标检测的逻辑下,一些目标-锚点对可能不是唯一的。例如,考虑图6C。在该示例中,用户已经选择文本字段620作为目标并且选择“美国支票”标签622作为锚点。然而,文本字段624和“非美国支票”标签626的“美国支票”部分分别与文本字段620和“非美国支票”标签622的图像相同。此外,这些对的边界框之间的线段的长度和角度也是相同的。因此,设计器应用致使文本字段624和“非美国支票”标签626的“美国支票”部分被突出显示,因此用户可以看到重复检测。
为了解决这个问题,可以自动选择一个或多个锚点。转到图6D,“Cash In”标签628的选择和包含允许唯一地标识文本字段620。例如,虽然文本字段620和“美国支票”标签622的边界框与文本字段624和“非美国支票”标签626的“美国支票”部分之间的线段的长度和角度是相同的,但是文本字段620和“Cash In”标签628之间与文本字段624和“Cash In”标签628之间的线段的长度和角度不同。
然而,并非所有附加锚点选择都允许对所有检测逻辑进行唯一地标识。例如,在图6E中,如果仅使用段之间的角度关系,则“存款交易”标签630和文本字段620之间以及“存款交易”标签630和文本字段624之间的段具有可能没有充分偏离容差的相似角度。如果还使用了长度,这也可能发生,但是长度偏差的容差涵盖了两个段。例如,容差可以被用来适应针对应用UI的变化和/或在设计时和运行时之间发生的屏幕分辨率的变化。在一些实施例中可以使用角度容差(例如,1%、2%、5%、1°、2°、5°等)和/或段长度容差(例如,1%、2%、5%、1个归一化像素、5个归一化像素、20个归一化像素等)。
图6F图示了根据本发明实施例的交易应用窗口600,其中目标620的某些半径640内的所有附加锚点642被标识和选择,但对用户不可见。在一些实施例中,基于适应不同显示器中不同数目和/或大小的像素的归一化像素来定义半径。例如,
Figure BDA0003442542850000231
视网膜显示器的像素大约比大多数其他显示器的像素小三倍。
在该实施例中,用户选择“美国支票”标签622作为第一锚点。由于该目标/锚点组合没有唯一地标识目标620,所以半径640内的附加锚点642被标识。锚点位于目标的“上下文”内。在本示例中,“上下文”指的是应用中的其他UI元素。
通过捕获在半径640内的附加锚点642,这可以在运行时提供更可靠的目标标识。这包括目标的应用中的至少一个UI元素在设计时和运行时之间改变的情况,另一窗口在运行时部分地覆盖目标的应用窗口等。在一些实施例中,在设计时捕获的附加锚点可能并非都在相同的应用窗口内,诸如在用于另一应用的窗口部分地覆盖与目标相关联的应用的窗口和/或其他应用的元素在半径内的情况下。例如,当记录的屏幕截图正在被处理并被指示以用于过程提取时,情况尤其如此。
在一些实施例中,附加锚点和/或半径可以(参见图6G)或可以不(参见图6F)显示给用户。如果附加锚点的自动选择失败(例如,半径内没有附加锚点,附加锚点不允许对目标的唯一标识等),则设计器应用可以请求用户提供附加输入(例如,选择半径之外的一个或多个锚点,增加半径等)。在某些实施例中,如果不能用初始半径执行目标的唯一标识,则半径可以自动增加(即,扩展),并且如果没有发现促进唯一标识的附加元素,则可以执行该增加多次。如果将半径增加到一定大小之后仍然无法唯一标识目标,则可以请求用户提供附加输入。
在一些实施例中,多个半径可以被使用,并且附加锚点可以基于它们被检测到的第一个半径而被分组。在运行时,UI自动化应用(例如,RPA机器人)然后可以使用第一个半径的锚点,如果这不能唯一地标识目标,和/或找不到锚点,则使用第二个半径的锚点,等等。在不脱离本发明的范围的情况下,可以使用任何合适数目和大小的半径。
在一些实施例中,一些潜在的锚点可以具有很多非元素区域或空白空间。空白空间可以包括未使用的UI部分或对象周围的空间。在某些实例中,目标图形元素附近可能没有图形元素,并且因此在某些半径内没有合适的锚点来拾取。在一些实施例中,算法将按照距目标UI元素的距离的顺序来拾取元素,因此即使没有元素靠近目标,也将找到并使用较远的锚点。在一些实施例中,可以基于某些标准丢弃锚点候选(例如,锚点候选的超过一定百分比的像素包含空白空间、锚点候选是冗余的并且在UI内被找到多次等)。
存储目标和锚点,以使得当用户在设计时设计工作流时,以及随后在运行时期间,自动选择唯一标识目标的上下文。因此,对于单个目标/锚点组合不能唯一标识目标的每个目标,一个或多个附加锚点自动被用于目标标识。在一些实施例中并非所有附加锚点都被使用。相反,UI自动化应用可以尝试一个附加锚点,并且如果这不能帮助唯一标识目标,则尝试下一个附加锚点等,直到目标被唯一标识为止。不将所有锚点指定为强制性的也是新颖的。在一些实施例中,一个强制性锚点和多个可选锚点的组合可以帮助找到正确的目标,同时不给出误报或漏报。在一些情况下,其他组合(例如,只有多个强制性锚点或只有多个可选锚点)可以给出误报或漏报。
可以出现这样一种场景,其中具有目标UI元素的应用的窗口被缩小(例如,图6H和图6I)或被另一窗口(例如,图6J和图6K)部分覆盖,使得它的一些锚点图形元素被覆盖。在图6H和图6I中,交易应用窗口600的大小被水平缩小,使得窗口的一部分未被示出。在这种情况下,例如,在图6F中是可见的交易号标签和现金计数按钮的附加锚点部分被隐藏,使得它们未被检测到。然而,剩余的锚点仍然被检测到。如果用户自行决定以这种方式调整窗口大小,则在设计时可能会发生这种场景,在这种情况下,稍后将在运行时使用可见的附加锚点。当用户手动调整窗口大小时,这种场景也可以随后在运行时发生。在设计时将所有锚点包括半径内可以有助于使UI自动化在运行时更加稳健。
在图6J和图6K中,网络浏览器窗口650大约覆盖交易应用窗口600的下半部分。在这种情况下,“非美国支票”标签的附加锚点被隐藏并且其相关联的文本字段仅部分可见,但是剩余的锚点仍然被检测到。这种情况可以发生在设计时或运行时,具体取决于用户正在做什么。
以下场景也是可能的:另一窗口与目标UI元素的应用窗口相邻(例如,图6L-图6N),或者甚至两者重叠部分覆盖目标UI元素的应用窗口。在图6L中,网络浏览器650的一部分在该视图中是可见的并且位于交易应用窗口600旁边。例如,如果如图6F和图6G中所示目标和锚点在设计时被配置,并且如图6L中所示的场景发生在运行时,则如图6M中所示可见锚点可以被检测到。然而,如果预期场景在设计时发生,则窗口650中的半径内的附加锚点可以被检测并与交易应用窗口600的锚点结合使用以用于检测目标UI元素,如图6N中所示。这对于预期相邻窗口可能在运行时邻近目标UI元素的情况尤其有用。
在一些实施例中,可以训练机器学习(ML)模型来检测窗口(例如,通过使用带有选择的窗口的带标记的屏幕截图样本)。然后可以使用这种经训练的ML模型来检测与主要锚点相关联的窗口(例如,图6A-图6N中的“美国支票”标签)。在使用AI/ML模型检测到该窗口之后,在该窗口中的其他锚点可以被检测到。
如果目标的窗口看起来被挡住或者目标未被发现或可用,则一些实施例可以尝试采取(多个)补救动作。例如,如果使用CV以高置信度(例如,95%、100%等)检测到锚点中的一个或多个但未检测到目标,或者没有检测到目标/锚点,则可以假设该应用窗口被另一窗口挡住,其一部分不在屏幕上,或者相关联的应用没有打开。然后,RPA机器人可以执行一个动作或一系列动作,以使得整个应用窗口或其至少一部分应用窗口(包括目标和潜在的至少一个锚点)可见,包括但不限于:(1)按下ALT-TAB并选择应用,以将应包含目标的应用窗口带到最前面;(2)将鼠标移动到屏幕上与检测到的锚点相关联的位置(如果锚点UI元素执行一些动作,诸如提交按钮,则在某个阈值内与其相邻),按下ALT-SPACE或CTRL+ALT+SPACE,选择“Move”(移动)菜单选项,并移动窗口以使得窗口可见;(3)使用这种机制移动挡住应具有目标的应用窗口的其他窗口;(4)尝试打开应用——如果它尚未打开;(5)使用操作系统级API调用来执行这种功能性;或(6)它们的任何组合。然后,RPA机器人可以尝试使用目标/锚点技术(诸如本文所述的那些技术)再次找到目标。在一些实施例中,可以在尝试标识目标UI元素之前抢先采取这样的动作。
在某些运行时场景中,用户可以正在使用虚拟机,其中用户终端不在本地执行应用。相反,用户终端可以发送与例如按键按下、鼠标移动和鼠标点击有关的信息,并且用户终端可以从正在执行软件应用的远程服务器或云系统接收视频流。在这种情况下,可能不知道哪些窗口与哪些应用相关联,或者甚至不知道应用窗口是否存在。但是,如果使用ML模型,则ML模型可以能够检测到该信息。
因此,例如,一些实施例可以存储初始屏幕的图像,然后使用ALT-TAB将下一窗口带到前面。然后可以使用目标/锚点逻辑来分析该屏幕图像。如果未找到目标,则可以将下一应用窗口带到前面并且可以分析屏幕,这在一些实施例中可以重复预先确定的次数或者直到屏幕与初始屏幕相匹配,在此时设计器应用(设计时)或机器人(运行时)可以请求用户进行辅助。
在一些有人值守的实施例中,RPA机器人可以在尝试采取(多个)补救动作之前等待用户停止与计算系统交互一段时间。这可以防止RPA机器人以干扰用户当前试图完成的事情的方式控制计算系统。例如,在不脱离本发明的范围的情况下,RPA机器人可以监控按键按下、鼠标点击、鼠标移动等、订阅组件对象模型(COM)对象和/或任何其他合适的机制。如果用户在一段时间内(例如,3秒、5秒、10秒、1分钟、10分钟等)没有与计算系统交互,则RPA机器人可以尝试(多个)补救动作。在某些实施例中,RPA机器人仅在用户不太可能使用计算系统的一个或多个时间段的期间(例如,从午夜到早上6:00)运行。在一些实施例中,RPA机器人可以提示用户是否应该采取(多个)补救动作。
在桌面场景中可以从操作系统获取关于许多应用的有关窗口所在的位置及其所属的内容的信息,与桌面场景不同,在虚拟环境的CV中,可能特别难以知道正在运行的内容。在桌面环境中可能可用的附加信息,诸如自动化ID、图形元素名称、状态等,在虚拟环境中可能不容易获得。实际上,在一些实施例中,用于虚拟环境的CV可以检测屏幕和文本上的图形元素,但是可能无法确定哪些特定应用正在运行/可见以及哪些图形元素属于哪个应用。由于文本和图形元素可以出现在屏幕上的不同位置,因此这种有限的信息集合可能导致更频繁地依赖于辅助锚点。此外,在ID被更改或回收的桌面场景中(例如,在许多网络浏览器应用中),使用辅助锚点也可以是有益的。
在应用打开但在VM上被最小化的情况下,可以通过点击任务栏图标或者通过点击较新版本的
Figure BDA0003442542850000271
右下角中的插入图标(caret icon)来显示应用窗口、识别图标并且点击它来显示应用窗口。这可以经由在设计时训练的ML模型来完成。在某些实施例中,补救逻辑可以被移动到服务器侧(例如,经由在促进VM功能性的远程服务器上运行的RPA机器人)。服务器侧的RPA机器人可以从在用户计算系统上运行的客户端侧的RPA机器人接收指示未找到目标图形元素的信息。然后,服务器侧的RPA机器人可以向客户端侧的RPA机器人发送有关VM上正在运行的内容和位置的信息。在一些实施例中,VM可以是基于云的,诸如由
Figure BDA0003442542850000272
和远程桌面协议(RDP)所提供的那些。
一些实施例需要用于目标检测的强制性锚点。如果没有找到强制性锚点,则可以假设目标也被丢失。强制性锚点可以防止错误报数。如果没有强制性锚点,那么在运行时,出自设计时捕获的潜在的许多可选锚点中,运行时在屏幕上的图形元素可能看起来与目标图形元素相似,即使运行时图形元素不是正确目标图形元素。
图7是图示了根据本发明实施例的用于执行自动锚点确定的过程700的流程图。在710处,该过程开始,检查目标单独是否足够独特。在不脱离本发明的范围的情况下,这可以使用CV、图像匹配、图形元素大小和/或形状、一个或多个容差内的(多个)颜色和/或任何其他合适的机制来完成。如果在720处可以以某个置信度唯一标识目标,则在730处执行与目标相关联的处理(例如,配置RPA工作流的活动以在设计时单独使用目标信息用于它的标识,基于运行时RPA工作流的活动逻辑来与目标交互等等)。
然而,如果在720处不能唯一标识目标,则在740处可以使用目标和单个锚点之间的几何关系(例如,段长度、段角度等)。在一些实施例中,单个锚点是用户选择的锚点。然而,在某些实施例中,锚点是自动选择的锚点。
如果在750处可以使用目标/锚点组合唯一标识目标,则过程继续在730处执行与目标相关联的处理。然而,如果在750处不能唯一标识目标,则在760处系统自动标识目标的半径内的一个或多个附加锚点并尝试处使用目标和至少两个锚点之间的几何关系来唯一地标识目标。如果在770处使用目标和至少两个锚点的组合可以唯一地标识目标,则过程继续在730处执行与目标相关联的处理。然而,如果在770处找不到目标,则在780处请求用户进行输入或抛出错误。
图8A和图8B是图示了根据本发明实施例的用于分别在设计时和运行时执行自动锚点确定和目标图形元素标识的过程的流程图。转到图8A,在805处,过程开始,检查是否可以在设计时以至少一个置信度来标识图像中的目标图形元素。这可以在一个或多个容差内使用CV、图像匹配、图形元素大小和/或形状、(多个)颜色和/或任何其他合适的机制来完成而不脱离本发明的范围。如果在810处可以以某个置信度唯一标识目标,则在815处执行与目标相关联的处理(例如,配置RPA工作流的活动以在设计时单独使用目标信息用于它的标识,基于运行时RPA工作流的活动逻辑来与目标交互等等)。
然而,如果在810处不能以至少一个置信度唯一地标识目标,在一些实施例中,可以在820处接收(并且潜在的要求)或自动执行主要锚点或强制性锚点的指定。在825处,在目标图形元素的邻近范围内自动搜索附加锚点。在一些实施例中,邻近范围由距目标图形元素的半径来定义。如果在830处发现附加锚点,则在835处存储锚点并且过程结束或前进到图8B。
在一些实施例中,可以利用ML模型来检测包括指定主要锚点的窗口。可以标识检测到的窗口中的自动确定的锚点的匹配可见锚点。然后可以在运行时使用这些匹配的可见锚点来标识目标图形元素。
在一些实施例中,忽略具有多于预先确定的量的空白空间或其中在目标图形元素和相应的锚点候选之间存在多于预先确定的量的空白空间的锚点候选。在某些实施例中,自动确定的锚点中的一个或多个锚点位于与目标图形元素不同的应用窗口中。
如果在830处没有找到附加锚点,则在840处搜索的邻近范围被扩展。例如,这可以重复直到找到附加锚点、达到最大邻近范围或者整个UI已经被搜索。在找到锚点的情况下,过程进行到步骤835。如果没有找到锚点,则可以提示用户进行引导或者可以抛出错误。
转向图8B,这考虑了在运行时没有发现单独的目标能够成功标识目标图形元素并且需要附加锚点的情况。在845处,针对目标图形元素和先前针对目标图形元素确定的与自动确定的锚点相匹配的一个或多个可见锚点执行搜索。在一些实施例中,一个或多个匹配可见锚点与目标图形元素之间的几何关系可以被用来标识UI中的目标图形元素。在某些实施例中,至少部分地使用CV和一个或多个匹配可见锚点中的至少一个匹配可见锚点与目标图形元素之间的几何关系的组合来执行目标图形元素的标识。在一些实施例中,几何关系包括一个或多个线段长度、一个或多个角度或两者。在一些实施例中,可以要求主要或强制性锚点的存在,如果包括的话。在某些实施例中,仅当目标图形元素与指定的主要或强制性锚点之间的关系在运行时没有唯一标识目标图形元素时才搜索与自动确定的锚点相匹配的一个或多个可见锚点。在一些实施例中,在目标图形元素的半径内执行对一个或多个匹配可见锚点的搜索。
在一些实施例中,匹配可见锚点的子集被用来标识目标图形元素。在某些实施例中,一次尝试一个匹配可见锚点,直到标识目标图形元素或者已经尝试了所有匹配可见锚点而没有成功标识目标图形元素。在一些实施例中,一个或多个匹配可见锚点中的一个或多个位于与目标图形元素不同的应用窗口中。在某些实施例中,ML模型被用来标识窗口中的匹配可见锚点并且仅使用那些可见锚点。
如果在850处目标被找到,则在855处针对UI自动化执行与目标的交互,并且继续UI自动化的执行。然而,当在850处在目标图形元素的半径内的一个或多个匹配可见锚点没有引起对目标图形元素的标识,或者在半径内没有找到匹配可见锚点时,在860处扩展半径并且自动确定在扩展的半径内一个或多个匹配可见锚点。可以重复此步骤,直到找到匹配可见锚点,达到最大半径,已经搜索了整个UI等。如果在865处从(多个)扩展的半径中基于(多个)匹配可见锚点找到目标,则过程进行到步骤855。然而,如果没有找到目标,则在870处可以请求用户帮助或抛出错误。
图9是图示了根据本发明实施例的用于在目标的窗口看起来被挡住或者目标未以其他方式被发现或可用的情况下用于尝试(多个)补救动作的过程900的流程图。在910处,该过程开始,搜索目标图形元素。在一些实施例中,可以根据图7、图8A或图8B中的关联搜索步骤来执行搜索。如果在920处目标被找到,则在930处与目标图形元素相关联的处理(例如,配置RPA工作流的活动以在设计时独自使用目标信息以用于它的标识,基于运行时RPA工作流的活动逻辑来与目标交互等等)或为UI自动化执行与目标的交互。在一些实施例中,如果在UI自动化的后续步骤中要与另一目标图形元素交互,则过程针对该目标再次继续到步骤910。
然而,如果在920处目标未被找到,诸如如果使用CV以高置信度(例如,95%、100%等)检测锚点中的一个或多个锚点但是目标未被检测到,或者任何一个目标/锚点没有被检测到,则可以假设应用窗口被另一窗口挡住,其一部分在屏幕外,或者关联的应用没有打开。在一些实施例中,在940处(例如,如由RPA机器人执行的)UI自动化在用户不太可能使用计算系统时等待一个时间窗口或等待一段时间。然后UI自动化在950处尝试一个或多个补救动作。例如,UI自动化然后可以执行一个动作或一系列动作以使整个应用窗口或其至少一部分(包括目标和潜在的至少一个锚点)可见。一个动作或一系列动作可以包括但不限于:(1)按下ALT-TAB(例如,模拟这些键的按下)并选择应用,以将应包含目标的应用窗口带到用户界面;(2)将鼠标指针移动到屏幕上与检测到的锚点相关联的位置(如果锚点UI元素执行一些动作,诸如提交按钮,则在某个阈值内与其相邻),按下ALT-SPACE或CTRL+ALT+SPACE,选择“Move”(移动)菜单选项,并且移动窗口以使得窗口可见;(3)使用这种机制移动挡住应具有目标的应用窗口的其他窗口(或多个窗口);(4)尝试打开应用——如果它尚未打开;(5)使用操作系统级API调用来执行这种功能性;或(6)它们的任何组合。
在一些虚拟实施例中,RPA机器人可以无法在本地确定应用和窗口信息。在这样的实施例中,RPA机器人可以从运行VM的服务器接收关于正在运行的应用、打开的窗口和打开的窗口的位置的信息。RPA机器人然后可以使用接收到的信息来生成鼠标点击信息、按键信息或两者,这致使服务器将与目标图形元素相关联的窗口移动到UI的前景中,启动与目标图形元素相关联的应用或两者。以这种方式,可以在VM环境中执行与上述操作类似的操作。
如果在960处目标成功被找到,则过程进行到步骤930。然而,如果在采取(多个)补救动作之后目标没有被成功找到,则在970处可以请求用户帮助或抛出错误。应当注意,在一些实施例中,可以在步骤910之前执行步骤940和/或950,以试图抢先使目标UI元素和潜在的一个或多个锚点可见。
在一些实施例中,步骤970可以涉及获取目标图形元素的指示或记录用户采取的补救动作。例如,在一些实施例中,可以接收标识UI中未检测到的目标图形元素的边界框或指示,可以确定与边界框或指示相关联的目标图形元素的UI描述符,以及可以更新与UI自动化相关联的逻辑或者可以重新训练ML模型以使用确定的UI描述符。在某些实施例中,可以启动记录器来观察与计算系统的补救用户交互,可以记录补救用户交互,并且可以使用记录的补救用户交互来更新与UI自动化相关联的逻辑或重新训练ML模型以找到目标图形元素。
根据上述内容,可以发生图形元素根本不在屏幕上或在那里但未被检测到的情况(例如,由于选择器的变化是动态的并且不再匹配机器人预期的内容)。在这种实例中,可以显示弹出窗口,诸如图10A的弹出窗口1000,以询问用户目标图形元素在屏幕上是否可见。如果是,则弹出窗口可以询问用户他或她是否想要指定目标图形元素。参见例如图10B。用户然后可以在屏幕上指定目标图形元素。例如,在图10D的购物车邮寄信息窗口1010中,用户可以围绕目标图形元素绘制边界框1012。备选地,用户可以在目标图形元素的位置上点击,并且RPA机器人可以找出哪个图形元素位于该位置处。然后机器人可以使用该信息在未来找到图形元素。例如,RPA机器人可以将其图形元素的选择器信息与用户指示的元素的选择器进行比较。机器人然后可以在未来使用这个选择器信息。在某些实施例中,该信息可以被用于重新训练局部或全局ML模型。在许多用户机器上使能的这种特征可以引起更稳健的全局ML模型。
在一些实施例中,当目标图形元素根本不在屏幕上时,用户可以能够启动记录器,其观察用户的补救步骤。例如,如果用户点击图10A中的“否”按钮,则弹出窗口1000可以询问用户是否启动记录器,如图10C中所示。然后记录器应用可以在后台运行,或者记录器逻辑可以由RPA机器人运行。记录器应用或RPA机器人然后可以记录用户采取的每个动作,诸如用户点击后退按钮以返回到包括目标图形元素的先前网页并点击它。这个记录的信息(例如,鼠标点击和位置、按键按下、每个动作的顺序等)可以被用以教导RPA机器人如何重现用户采取的补救动作或训练ML模型以执行补救动作。
在一些实施例中,实现记录器功能性的RPA机器人可以发送记录的补救信息(例如,作为XAML文件)以用于RPA开发人员在RPA设计器应用中使用。然后RPA开发人员可以修改RPA机器人的工作流以纠正其逻辑。在某些实施例中,记录的补救信息可以被合并到RPA机器人的工作流中,而无需RPA开发人员的动作。
根据本发明实施例,图7-图9中执行的过程步骤可以由计算机程序来执行,对(多个)处理器的指令进行编码以执行图7-图9中描述的(多个)过程的至少一部分。计算机程序可以被体现在非瞬态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他这样的介质或介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)的编码指令以实现图7-图9中描述的过程步骤的全部或部分,其也可以被存储在计算机可读介质上。
计算机程序可以以硬件、软件或混合实现而被实现。计算机程序可以由彼此操作通信的模块组成,并且这些模块被设计为传递信息或指令以进行显示。计算机程序可以被配置为操作在通用计算机、ASIC或任何其他合适的设备上。
很容易理解,本发明的各种实施例的组件,如本文附图中一般描述和图示的,可以以多种不同的配置而被布置和设计。因此,如附图中所表示的本发明实施例的详细描述不旨在限制所要求保护的本发明的范围,而仅代表本发明的选择的实施例。
在整个说明书中描述的本发明的特征、结构或特性可以以任何合适的方式被组合在一个或多个实施例中。例如,在整个说明书中对“某些实施例”、“一些实施例”或类似语言的引用意味着结合实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,在整个说明书中出现的短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似的语言不一定都指的是同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式来组合。
应当注意,在整个说明书中对特征、优点或类似语言的引用并不暗示可以通过本发明实现的所有特征和优点应该是或在本发明的任何单个实施例中。相反,提及特征和优点的语言被理解为意指结合实施例描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,在整个本说明书中对特征和优点的讨论以及类似的语言可以但不一定指相同的实施例。
此外,在一个或多个实施例中,本发明的所述特征、优点和特性可以以任何合适的方式来组合。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定特征或优点的情况下实践本发明。在其他实例中,可能不存在于本发明的所有实施例中的附加特征和优点可以在某些实施例中被认识到。
本领域的普通技术人员将容易理解,可以以不同顺序的步骤和/或与所公开的那些不同的配置中的硬件元件来实践如上面所讨论的本发明。因此,尽管基于这些优选实施例描述了本发明,但对于本领域技术人员来说显而易见的是,在保持在本发明的精神和范围内的同时,某些修改、变化和替代构造将是明显的。因此,为了确定本发明的界限和范围,应对所附权利要求进行参考。

Claims (32)

1.一种计算机实现的方法,包括:
在设计时检查图像中的目标图形元素是否能够以至少一个置信度而被标识;以及
当所述目标不能以所述至少一个置信度而被标识时:
自动确定所述目标图形元素的邻近范围内的附加锚点,以及
存储自动确定的所述附加锚点和所述目标图形元素以用于在运行时标识所述目标图形元素时使用。
2.根据权利要求1所述的计算机实现的方法,其中
所述目标图形元素的所述标识至少部分地使用计算机视觉(CV)和自动确定的所述附加锚点中的至少一个附加锚点与所述目标图形元素之间的几何关系的组合而被执行,以及
所述几何关系包括一个或多个线段长度、一个或多个角度,或者两者。
3.根据权利要求1所述的计算机实现的方法,还包括:
针对所述目标图形元素指定主要锚点;以及
仅当所述目标图形元素和指定的所述主要锚点之间的关系没有唯一地标识所述目标图形元素时,才自动确定所述附加锚点。
4.根据权利要求3所述的计算机实现的方法,其中所述主要锚点的指定是自动执行的。
5.根据权利要求1所述的计算机实现的方法,其中所述邻近范围由距所述目标图形元素的半径定义。
6.根据权利要求1所述的计算机实现的方法,其中在运行时,所述方法还包括:
针对所述目标图形元素和与自动确定的所述锚点相匹配的一个或多个匹配可见锚点进行搜索;以及
使用所述一个或多个匹配可见锚点和所述目标图形元素之间的几何关系来标识所述目标图形元素。
7.根据权利要求1所述的计算机实现的方法,其中当自动确定的在所述目标图形元素的邻近范围内的所述锚点没有引起对所述目标图形元素的标识时,所述方法还包括:
扩展所述邻近范围并且自动确定在扩展的所述邻近范围内的一个或多个锚点。
8.根据权利要求1所述的计算机实现的方法,还包括:
当所述目标图形元素没有被标识时,提示用户进行输入。
9.根据权利要求1所述的计算机实现的方法,其中具有多于预先确定的量的空白空间的锚点候选被忽略,或者其中在所述目标图形元素和相应的所述锚点候选之间存在多于预先确定的量的空白空间的锚点候选被忽略。
10.根据权利要求1所述的计算机实现的方法,其中自动确定的锚点的子集被用以在运行时标识所述目标图形元素。
11.根据权利要求1所述的计算机实现的方法,其中在运行时,一次尝试一个自动确定的所述锚点,直到所述目标图形元素被标识或者所有自动确定的所述锚点已经被尝试而没有成功标识所述目标图形元素。
12.根据权利要求1所述的计算机实现的方法,其中在运行时,自动确定的所述锚点的子集在所述图像中是可见的。
13.根据权利要求1所述的计算机实现的方法,其中自动确定的所述锚点中的一个或多个锚点位于与所述目标图形元素不同的应用窗口中。
14.根据权利要求1所述的计算机实现的方法,还包括:
针对所述目标图形元素指定主要锚点;
使用机器学习(ML)模型检测包括指定的所述主要锚点的窗口;以及
在检测到的所述窗口中标识自动确定的所述锚点的匹配可见锚点。
15.根据权利要求1所述的计算机实现的方法,还包括:
针对所述目标图形元素指定强制性主要锚点;以及
要求对所述强制性锚点进行检测以便检测所述目标图形元素。
16.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质存储用于在设计时在用户界面(UI)自动化中执行用于目标图形元素标识的自动锚点确定的程序,所述计算机程序被配置为使至少一个处理器以:
在设计时检查图像中的目标图形元素是否能够以至少一个置信度而被标识;以及
当所述目标不能以所述至少一个所述置信度而被标识时:
自动确定所述目标图形元素的邻近范围内的附加锚点,以及
存储自动确定的所述附加锚点和所述目标图形元素以用于在运行时标识所述目标图形元素时使用,其中
所述邻近范围由距所述目标图形元素的半径定义。
17.根据权利要求16所述的非瞬态计算机可读介质,其中
所述目标图形元素的所述标识至少部分地使用计算机视觉(CV)和自动确定的所述附加锚点中的至少一个附加锚点与所述目标图形元素之间的几何关系的组合而被执行,以及
所述几何关系包括一个或多个线段长度、一个或多个角度,或者两者。
18.根据权利要求16所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器以:
针对所述目标图形元素指定主要锚点;以及
仅当所述目标图形元素和指定的所述主要锚点之间的关系没有唯一地标识所述目标图形元素时,才自动确定所述附加锚点。
19.根据权利要求18所述的非瞬态计算机可读介质,其中所述主要锚点的指定被自动执行。
20.根据权利要求16所述的非瞬态计算机可读介质,其中当自动确定的在所述目标图形元素的邻近范围内的所述锚点没有引起对所述目标图形元素的标识时,所述计算机程序还被配置为使得至少一个处理器以:
扩展所述邻近范围并且自动确定在扩展的所述邻近范围内的一个或多个锚点。
21.根据权利要求16所述的非瞬态计算机可读介质,其中具有多于预先确定的量的空白空间的锚点候选被忽略,或者其中在所述目标图形元素和相应的所述锚点候选之间存在多于预先确定的量的空白空间的锚点候选被忽略。
22.根据权利要求16所述的非瞬态计算机可读介质,其中自动确定的所述锚点中的一个或多个锚点位于与所述目标图形元素不同的应用窗口中。
23.根据权利要求16所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器以:
针对目标图形元素指定主要锚点;
使用机器学习(ML)模型检测包括指定的所述主要锚点的窗口;以及
在检测到的所述窗口中标识自动确定的所述锚点的匹配可见锚点。
24.根据权利要求16所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:
针对目标图形元素指定强制性主要锚点;以及
要求对所述强制性锚点进行检测以便检测所述目标图形元素。
25.一种计算系统,包括:
存储器,所述存储器存储用于在运行时在用户界面(UI)自动化中执行用于目标图形元素标识的自动锚点确定的计算机程序指令;以及
至少一个处理器,所述至少一个处理器被配置为执行所述计算机程序指令,其中所述计算机程序指令被配置为使所述至少一个处理器以:
针对目标图形元素和先前针对所述目标图形元素确定的、与自动确定的锚点相匹配的一个或多个可见锚点进行搜索,以及
使用所述一个或多个匹配可见锚点与所述目标图形元素之间的几何关系来标识UI中的所述目标图形元素。
26.根据权利要求25所述的计算系统,其中
所述目标图形元素的所述标识至少部分地使用计算机视觉(CV)和所述一个或多个匹配可见锚点中的至少一个匹配可见锚点与目标图形元素之间的几何关系的组合而被执行,以及
所述几何关系包括一个或多个线段长度、一个或多个角度,或者两者。
27.根据权利要求25所述的计算系统,其中当主要锚点已经针对所述目标图形元素而被指定时,所述计算机程序指令还被配置为使所述至少一个处理器以:
仅当所述目标图形元素与指定的所述主要锚点之间的关系在运行时没有唯一地标识所述目标图形元素时,才针对与自动确定的所述锚点相匹配的所述一个或多个可见锚点进行搜索。
28.根据权利要求25所述的计算系统,其中
在所述目标图形元素的半径内,针对所述一个或多个匹配可见锚点进行搜索,以及
当在所述目标图形元素的所述半径内的所述一个或多个匹配可见锚点没有引起对所述目标图形元素的标识时,或者在所述半径内匹配可见锚点没有被找到时,所述计算机程序指令还被配置为使所述至少一个处理器以:
扩展所述半径并且自动确定在扩展的所述半径内的一个或多个匹配可见锚点。
29.根据权利要求25所述的计算系统,其中所述匹配可见锚点的子集被用来标识所述目标图形元素。
30.根据权利要求25所述的计算系统,其中一次尝试一个所述匹配可见锚点,直到所述目标图形元素被被标识或者所有所述匹配可见锚点已经被尝试而没有成功标识所述目标图形元素为止。
31.根据权利要求25所述的计算系统,其中所述一个或多个匹配可见锚点中的一个或多个匹配可见锚点位于与所述目标图形元素不同的应用窗口中。
32.根据权利要求25所述的计算系统,其中所述计算机程序指令还被配置为使所述至少一个处理器以:
针对目标图形元素指定主要锚点;
使用机器学习(ML)模型检测包括指定的所述主要锚点的窗口;以及
标识位于在检测到的所述窗口中的所述一个或多个匹配可见锚点的可见锚点。
CN202180004276.5A 2020-11-20 2021-10-28 用户界面自动化中的自动锚点确定和目标图形元素标识 Active CN114868109B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/100,146 2020-11-20
US17/100,146 US11200073B1 (en) 2020-11-20 2020-11-20 Automatic anchor determination and target graphical element identification in user interface automation
PCT/US2021/056919 WO2022108721A1 (en) 2020-11-20 2021-10-28 Automatic anchor determination and target graphical element identification in user interface automation

Publications (2)

Publication Number Publication Date
CN114868109A true CN114868109A (zh) 2022-08-05
CN114868109B CN114868109B (zh) 2023-06-02

Family

ID=80496120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180004276.5A Active CN114868109B (zh) 2020-11-20 2021-10-28 用户界面自动化中的自动锚点确定和目标图形元素标识

Country Status (4)

Country Link
EP (1) EP4028876A4 (zh)
JP (1) JP7332845B2 (zh)
KR (1) KR102363774B1 (zh)
CN (1) CN114868109B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116051868B (zh) * 2023-03-31 2023-06-13 山东大学 一种面向windows系统的界面元素识别方法
CN116630990B (zh) * 2023-07-21 2023-10-10 杭州实在智能科技有限公司 Rpa流程元素路径智能修复方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124495A1 (en) * 2009-11-23 2012-05-17 Nitsan Amichai System and method for object relationship identification in a user interface
US9075918B1 (en) * 2014-02-25 2015-07-07 International Business Machines Corporation System and method for creating change-resilient scripts
US20150339213A1 (en) * 2014-05-21 2015-11-26 Cgi Technologies And Solutions Inc. Automated testing of an application system
CN107679214A (zh) * 2017-10-16 2018-02-09 深圳视界信息技术有限公司 链接定位方法、装置、终端与计算机可读存储介质
US20190310868A1 (en) * 2017-01-26 2019-10-10 Nice Ltd. Method and system for accessing table content in a digital image of the table
CN111158828A (zh) * 2019-12-30 2020-05-15 青岛海尔科技有限公司 应用程序app的用户界面确定方法及装置、存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009022368A (ja) * 2007-07-17 2009-02-05 Toshiba Corp 医用画像観察支援システム
US10593085B2 (en) * 2016-07-06 2020-03-17 Facebook, Inc. Combining faces from source images with target images based on search queries
KR20200037816A (ko) * 2017-08-02 2020-04-09 스트롱 포스 아이오티 포트폴리오 2016, 엘엘씨 대규모 데이터 세트들을 갖는 산업 사물 인터넷 데이터 수집 환경에서의 검출을 위한 방법들 및 시스템들
JP7367917B2 (ja) * 2019-05-13 2023-10-24 株式会社Cinnon 情報処理システム及びプログラム
US11487973B2 (en) * 2019-07-19 2022-11-01 UiPath, Inc. Retraining a computer vision model for robotic process automation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124495A1 (en) * 2009-11-23 2012-05-17 Nitsan Amichai System and method for object relationship identification in a user interface
US9075918B1 (en) * 2014-02-25 2015-07-07 International Business Machines Corporation System and method for creating change-resilient scripts
US20150339213A1 (en) * 2014-05-21 2015-11-26 Cgi Technologies And Solutions Inc. Automated testing of an application system
US20190310868A1 (en) * 2017-01-26 2019-10-10 Nice Ltd. Method and system for accessing table content in a digital image of the table
CN107679214A (zh) * 2017-10-16 2018-02-09 深圳视界信息技术有限公司 链接定位方法、装置、终端与计算机可读存储介质
CN111158828A (zh) * 2019-12-30 2020-05-15 青岛海尔科技有限公司 应用程序app的用户界面确定方法及装置、存储介质

Also Published As

Publication number Publication date
JP2023503532A (ja) 2023-01-31
KR102363774B1 (ko) 2022-02-16
CN114868109B (zh) 2023-06-02
JP7332845B2 (ja) 2023-08-24
EP4028876A1 (en) 2022-07-20
EP4028876A4 (en) 2022-09-07

Similar Documents

Publication Publication Date Title
US11307876B1 (en) Automated remedial action to expose a missing target and/or anchor(s) for user interface automation
CN112241581A (zh) 重新训练机器人视觉模型以用于机器人过程自动化
CN113011828A (zh) 更新或重新训练并更新动态人工智能/机器学习模型
US11650874B2 (en) Anomaly detection and self-healing for robotic process automation via artificial intelligence / machine learning
CN116057504A (zh) 机器人流程自动化的用户界面(ui)描述符、ui对象库、ui对象储存库和ui对象浏览器
US20230168654A1 (en) Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation
CN114868109B (zh) 用户界面自动化中的自动锚点确定和目标图形元素标识
CN114556391A (zh) 用于机器人流程自动化的基于人工智能层的过程提取
CN116324697A (zh) 用于机器人过程自动化的用户接口(ui)映射器
JP2023545253A (ja) コンピュータビジョンを使ったアプリケーション、画面、およびユーザーインターフェース要素を認識するための人工知能/機械学習モデルの訓練
JP7115805B2 (ja) テキスト検出、キャレット追跡、及びアクティブ要素検出
CN113366492B (zh) 专用图形元素检测
KR102444398B1 (ko) 그래픽 요소 검색 기술 선택, 앵커 및 타겟의 퍼지 논리 선택, 및/또는 로봇 프로세스 자동화를 위한 계층적 그래픽 요소 식별
EP3909722A1 (en) Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation
CN114902254A (zh) 使用组合的串行和延迟并行执行统一目标技术、默认图形元素检测技术或两者的图形元素检测
KR102447072B1 (ko) 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출
JP7115804B2 (ja) テキスト検出、キャレット追跡、及びアクティブ要素検出
US20220276767A1 (en) Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
JP2023523375A (ja) ロボティックプロセスオートメーションのためのロボット実行の画面応答確認

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant