CN116391174A - 使用计算机视觉来训练人工智能/机器学习模型以识别应用、屏幕和用户界面元素 - Google Patents

使用计算机视觉来训练人工智能/机器学习模型以识别应用、屏幕和用户界面元素 Download PDF

Info

Publication number
CN116391174A
CN116391174A CN202180070042.0A CN202180070042A CN116391174A CN 116391174 A CN116391174 A CN 116391174A CN 202180070042 A CN202180070042 A CN 202180070042A CN 116391174 A CN116391174 A CN 116391174A
Authority
CN
China
Prior art keywords
user
information
applications
model
identify
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.)
Pending
Application number
CN202180070042.0A
Other languages
English (en)
Inventor
P·辛格
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
Application filed by Yupas Co filed Critical Yupas Co
Publication of CN116391174A publication Critical patent/CN116391174A/zh
Pending legal-status Critical Current

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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/40Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)
  • Image Analysis (AREA)

Abstract

用于训练人工智能(AI)/机器学习(ML)模型以使用计算机视觉(CV)来识别应用、屏幕和UI元素,并且用以识别与应用、屏幕和UI元素的用户交互的技术。光学字符识别(OCR)也可以被用来帮助训练AI/ML模型。AI/ML模型的训练可以在没有其他系统输入的情况下执行,其他系统输入诸如系统级信息(例如,按键按下、鼠标点击、位置、操作系统操作等)或应用级信息(例如,来自在计算系统上执行的软件应用的应用编程接口(API)的信息),或者AI/ML模型的训练可以由其他信息来补充,诸如浏览器历史、热图、文件信息、当前运行的应用和位置、系统级和/或应用级信息等。

Description

使用计算机视觉来训练人工智能/机器学习模型以识别应用、 屏幕和用户界面元素
相关申请的交叉引用
这是一份国际申请,其要求于2020年10月14日提交的美国专利申请号17/070,108的权益和优先权。该较早提交的申请的主题通过引用整体并入本文。
技术领域
本发明总体涉及用户界面(UI)自动化,并且更具体地,涉及使用计算机视觉(CV)来训练人工智能(AI)/机器学习(ML)模型以识别应用、屏幕和UI元素,并且用以识别与应用、屏幕和UI元素的用户交互。
背景技术
为了执行UI自动化,RPA技术可以利用驱动程序和/或应用级交互来点击按钮、输入文本以及执行与UI的其他交互。然而,在一些实施例中,或者在构建新的UI自动化平台时,按键按下、鼠标点击和其他内核挂钩信息可能在系统级别不可用。实现此类UI自动化平台通常需要广泛的驱动程序级别和应用级别功能性。因此,用于提供UI自动化的替代技术可能是有益的。
发明内容
本发明的某些实施例可以提供对本领域中当前UI自动化技术尚未完全标识、了解或解决的问题和需求的解决方案。例如,本发明的一些实施例涉及使用CV来训练AI/ML模型以识别应用、屏幕和UI元素,并且用以识别与应用、屏幕和UI元素的用户交互。
在一个实施例中,一种系统包括:一个或多个用户计算系统,该一个或多个用户计算系统包括相应记录器过程和服务器,该服务器被配置为训练AI/ML模型以使用CV来识别应用、屏幕和UI元素并且用以识别与应用、屏幕和UI元素的用户交互。相应记录器过程被配置为记录与相应的用户计算系统相关联的显示器的屏幕截图或视频帧以及其他信息。相应记录器过程还被配置为将记录的屏幕截图或视频帧以及其他信息发送到服务器可访问的存储装置。服务器被配置为使用记录的屏幕截图或视频帧以及其他信息来初始训练AI/ML模型以识别呈现在记录的屏幕截图或视频帧中的应用、屏幕和UI元素。在AI/ML模型能够有把握地识别记录的屏幕截图或视频帧中的应用、屏幕和UI元素之后,服务器还被配置为训练AI/ML模型以识别与UI元素的个体用户交互。
在另一个实施例中,非暂态计算机可读介质存储计算机程序,该计算机程序被配置为训练AI/ML模型以使用CV来识别应用、屏幕和UI元素和/或用以识别与应用、屏幕和UI元素的用户交互。该计算机程序被配置为使至少一个处理器访问与一个或多个计算系统相关联的显示器的记录的屏幕截图或视频帧并且访问与该一个或多个计算系统相关联的其他信息。该计算机程序还被配置为使至少一个处理器使用记录的屏幕截图或视频帧以及其他信息来初始训练AI/ML模型以识别呈现在记录的屏幕截图或视频帧中的应用、屏幕和UI元素。在没有对屏幕截图或视频帧中的应用、屏幕和UI元素的先验知识的情况下执行AI/ML模型的初始训练。
在又一个实施例中,一种用于训练AI/ML模型以使用CV来识别应用、屏幕和UI元素并且用以识别与应用、屏幕和UI元素的用户交互的计算机实现的方法,包括访问与一个或多个计算系统相关联的显示器的记录的屏幕截图或视频帧并且访问与该一个或多个计算系统相关联的其他信息。计算机实现的方法还包括使用记录的屏幕截图或视频帧以及其他信息来初始训练AI/ML模型以识别呈现在记录的屏幕截图或视频帧中的应用、屏幕和UI元素。在AI/ML模型能够有把握地识别记录的屏幕截图或视频帧中的应用、屏幕和UI元素之后,计算机实现的方法还包括训练AI/ML模型以识别与UI元素的个体用户交互。
附图说明
为了容易理解本发明的某些实施例的优点,将参照附图中所图示的特定实施例对上面简要描述的本发明呈现更具体的描述。虽然应该理解这些附图仅描绘了本发明的典型实施例并且因此不应被认为是对其范围的限制,但是将通过使用附图以附加的具体性和细节来描述和解释本发明,其中:
图1是图示根据本发明的实施例的机器人过程自动化(RPA)系统的架构图。
图2是图示根据本发明的实施例的已部署的RPA系统的架构图。
图3是图示根据本发明的实施例的设计器、活动和驱动程序之间的关系的架构图。
图4是图示根据本发明的实施例的RPA系统的架构图。
图5是图示根据本发明的实施例的计算系统的架构图,该计算系统被配置为训练AI/ML模型以使用CV来识别应用、屏幕和UI元素并且识别与应用、屏幕和UI元素的用户交互。
图6是图示根据本发明的实施例的被配置为训练AI/ML模型以使用CV来识别应用、屏幕和UI元素并且识别与应用、屏幕和UI元素的用户交互的系统的架构图。
图7是图示根据本发明的实施例的用于使用CV来训练AI/ML模型以识别应用、屏幕和UI元素并且识别与应用、屏幕和UI元素的用户交互的过程的流程图。
图8是图示根据本发明的实施例的自动化框和眼睛运动跟踪系统的架构图。
除非另有说明,相似的附图标记在整个附图中始终标示对应的特征。
具体实施方式
一些实施例涉及训练AI/ML模型以使用CV来识别应用、屏幕和UI元素并且用以识别与应用、屏幕和UI元素的用户交互。在某些实施例中,光学字符识别(OCR)也可以被用来帮助训练AI/ML模型。在一些实施例中,AI/ML模型的训练可以在没有其他系统输入的情况下执行,其他系统输入诸如系统级信息(例如,按键按下、鼠标点击、位置、操作系统操作等)或应用级信息(例如,来自在计算系统上执行的软件应用的应用编程接口(API)的信息),诸如UiPath StudioTM驱动程序所提供的信息。然而,在某些实施例中,AI/ML模型的训练可以由其他信息来补充,诸如浏览器历史、文件信息、当前运行的应用和位置、系统级和/或应用级信息等。
一些实施例通过向AI/ML模型的初始版本馈送来自一个或多个计算系统的经标记的屏幕图像作为训练输入来开始训练AI/ML模型。AI/ML模型提供预测作为输出,诸如哪个(哪些)应用和图形元素被识别为呈现在屏幕中。标识错误可以由人类审阅者突出显示(例如,通过在错误标识的元素周围绘制一个框并包括正确的标识),并且可以训练AI/ML模型,直到其准确性足够高以被部署来观察呈现在UI屏幕中的应用和图形元素。
在一些实施例中,不是单独从图像中进行训练,跟踪代码也可以被嵌入到用户的计算系统中。例如,一段
Figure BDA0004174693330000041
可以作为监听器被嵌入到web浏览器中,以跟踪用户与哪些组件交互、用户输入了哪些文本、用户用鼠标点击了哪些位置/组件、用户滚动过去了哪些内容、用户在内容的某一部分停留了多长时间等。滚动过去的内容可能指示该内容可能有些接近但不完全是用户想要的。点击可能指示成功。
监听器应用不必是
Figure BDA0004174693330000042
并且在不脱离本发明的范围的情况下可以是任何合适类型的应用并且可以以任何期望的编程语言。这可以允许“概括”监听器应用,以使得它可以跟踪与多个应用或用户正在与之交互的任何应用的用户交互。使用来自scratch的经标记的训练数据可能很困难,因为虽然它可能允许AI/ML模型学习识别各种控件,但是它不包含有关哪些控件是常用的以及如何使用的信息。使用监听器应用,可以生成“热图”以帮助引导AI/ML模型训练过程。热图可以包括各种信息,诸如用户使用应用的频率、用户与应用的组件交互的频率、组件的位置、应用/组件的内容等。在一些实施例中,可以从屏幕分析中导出热图,诸如计算系统的对键入和/或粘贴的文本的检测、插入符跟踪和活动元素检测。一些实施例识别用户在与计算系统相关联的屏幕上的何处键入或粘贴文本,潜在地包括热键或其他不会导致可见字符出现的按键,并基于一个或多个字符出现的位置、光标闪烁的位置或两者(例如,在坐标中)的当前分辨率来提供屏幕上的物理位置。键入或粘贴活动和/或插入符的物理位置可以允许确定用户正在键入或关注的哪个(哪些)字段以及用于过程发现或其他应用的应用是什么。
一些实施例在反馈循环过程中被实现,该过程连续地或周期性地将当前屏幕截图与先前屏幕截图进行比较以标识变化。可以标识屏幕上出现视觉变化的位置,并且可以对出现变化的位置执行光学字符识别(OCR)。然后可以将OCR的结果与键盘队列的内容进行比较(例如,由按键挂钩确定)以确定是否存在匹配。可以通过将来自当前屏幕截图的像素框与来自先前屏幕截图的相同位置中的像素框进行比较来确定出现变化的位置。当找到匹配时,出现变化的位置的文本可以与该位置相关联并且作为监听器信息的一部分而被提供。
一旦已经生成热图,就可以基于初始热图信息来在屏幕图像(可能是数百万图像)上训练AI/ML模型。图形处理单元(GPU)可能能够处理此信息并相对快速地训练AI/ML模型。一旦可以准确地标识图形元素、窗口、应用等,就可以训练AI/ML模型以识别与UI中的应用的所标记的用户交互,以理解用户采取的增量动作。一个或一系列图形元素变化可能指示用户点击按钮、输入文本、与菜单交互、关闭窗口、移动到应用的不同屏幕等。例如,用户点击的菜单项可能会变成带下划线的,按钮在它被按下时可能会被着色得更深,然后在用户释放鼠标按钮时返回原始着色,字母“a”可能会出现在文本字段中,图像可能会改变为不同的图像,当用户移动到一系列屏幕的应用的下一个屏幕时,屏幕可能会显现不同的布局,等等。
标识错误可以再次由人类审阅者突出显示(例如,通过在错误标识的元素周围绘制一个框并包括正确的标识)。然后可以训练AI/ML模型,直到其准确性足够高以被部署来理解与UI的细粒度用户交互。例如,如此经训练的AI/ML模型然后可以被用来观察多个用户并寻找常见应用中的常见交互序列。
在一些实施例中,可以利用来自“自动化框”的信息补充AI/ML模型的训练,“自动化框”经由硬件或软件来实现并观察什么信息来自诸如鼠标或键盘的输入设备。在某些实施例中,可以使用相机来跟踪用户在屏幕上正在查看的地方。来自自动化框和/或相机的信息可能带有时间戳,并与AI/ML模型检测到的图形元素、应用和屏幕结合使用,以协助其训练并更好地了解用户在那时正在做什么。
某些实施例可以被用于机器人过程自动化(RPA)。图1是图示根据本发明的实施例的RPA系统100的架构图。RPA系统100包括允许开发者设计和实现工作流的设计器110。设计器110可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务和业务IT过程的解决方案。设计器110可以促进自动化项目的开发,自动化项目是业务过程的图形表示。简而言之,设计器110促进了工作流和机器人的开发和部署。
自动化项目通过让开发者控制执行顺序和在工作流中开发的步骤(在本文中被定义为“活动”)的自定义集合之间的关系来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是UiPath StudioTM。每个活动可以包括诸如点击按钮、读取文件、写入到日志面板等的动作。在一些实施例中,工作流可以被嵌套或嵌入。
一些类型的工作流可以包括但不限于序列、流程图、FSM和/或全局异常处理程序。序列可能特别适用于线性过程,在不使工作流程混乱的情况下实现从一个活动到另一个活动的流程。流程图可能特别适合于更复杂的业务逻辑,通过多个分支逻辑运算符以更多样化的方式实现决策的集成和活动的连接。FSM可能特别适合于大型工作流。FSM可以在其执行中使用有限数目的状态,这些状态由条件(即转变)或活动来触发。全局异常处理程序可能特别适合用于在遇到执行错误时确定工作流行为以及适合用于调试过程。
一旦在设计器110中开发了工作流,业务过程的执行就由协调器120编排,协调器120编排一个或多个机器人130,机器人130执行在设计器110中开发的工作流。协调器120的实施例的一个商业示例是UiPath OrchestratorTM。协调器120促进了对环境中的资源的创建、监测和部署的管理。协调器120可以充当与第三方解决方案和应用的集成点、或聚合点中的一个。
协调器120可以管理机器人130的队列,连接和执行来自集中式点的机器人130。可以被管理的机器人130的类型包括但不限于有人值守机器人132、无人值守机器人134、开发机器人(类似于无人值守机器人134,但被用于开发和测试目的)和非生产机器人(类似于有人值守机器人132,但是用于开发和测试目的)。有人值守机器人132由用户事件触发,并在相同计算系统上与人类一起操作。有人值守机器人132可以与协调器120一起使用,以用于集中式过程部署和日志记录介质。有人值守机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,过程不能在这种类型的机器人上从协调器120开始和/或它们不能在被锁定的屏幕下运行。在某些实施例中,有人值守机器人132只能从机器人托盘或从命令提示开始。在一些实施例中,有人值守机器人132应该在人类监督下运行。
无人值守机器人134在虚拟环境中无人值守地运行,并且可以使多个过程自动化。无人值守机器人134可以负责远程执行、监测、调度和为工作队列提供支持。在一些实施例中,针对所有机器人类型的调试可以在设计器110中运行。有人值守和无人值守机器人都可以使各种系统和应用自动化,各种系统和应用包括但不限于大型机、web应用、虚拟机、企业应用(例如,由
Figure BDA0004174693330000071
等生产的那些应用)和计算系统应用(例如,台式机和笔记本计算机应用、移动设备应用、可穿戴计算机应用等)。
协调器120可以具有各种能力,包括但不限于供应、部署、版本控制、配置、排队、监测、日志记录和/或提供互连性。供应可以包括创建和维护机器人130和协调器120(例如,web应用)之间的连接。部署可以包括确保将封装版本正确地递送给所指派的机器人130以供执行。在一些实施例中,版本控制可以包括对一些过程或配置的唯一实例的管理。配置可以包括机器人环境和过程配置的维护和递送。排队可以包括提供对队列和队列项的管理。监测可以包括保持对机器人标识数据的跟踪和维护用户权限。日志记录可以包括将日志存储到数据库(例如,SQL数据库)和/或其他存储机制(例如,
Figure BDA0004174693330000081
)并进行索引,这提供存储和快速查询大型数据集的能力。协调器120可以通过充当针对第三方解决方案和/或应用的集中式通信点来提供互连性。
机器人130是运行内置于设计器110中的工作流的执行代理。(多个)机器人130的一些实施例的一个商业示例是UiPath
Figure BDA0004174693330000082
在一些实施例中,机器人130默认安装Microsoft/>
Figure BDA0004174693330000083
服务控制管理器(SCM)管理的服务。结果,此类机器人130可以在本地系统账户下打开交互式/>
Figure BDA0004174693330000084
会话,并具有/>
Figure BDA0004174693330000085
服务的权利。
在一些实施例中,机器人130可以以用户模式来被安装。对于这样的机器人130,这意味着它们具有与已经安装给定机器人130的用户相同的权利。此特征也可用于高密度(HD)机器人,这确保了对每台机器的最大潜力的充分利用。在一些实施例中,任何类型的机器人130都可以被配置在HD环境中。
在一些实施例中,机器人130被拆分成若干组件,每个组件专用于特定的自动化任务。一些实施例中的机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监测
Figure BDA0004174693330000086
会话,并充当协调器120和执行主机(即,在其上执行机器人130的计算系统)之间的代理。这些服务受信任并管理针对机器人130的凭证。控制台应用由本地系统下的SCM启动。
在一些实施例中,用户模式机器人服务管理和监测
Figure BDA0004174693330000091
会话,并充当协调器120和执行主机之间的代理。用户模式机器人服务可以受信任并管理针对机器人130的凭证。如果未安装SCM管理的机器人服务,则可以自动启动/>
Figure BDA0004174693330000092
应用。
执行器可以在
Figure BDA0004174693330000093
会话下运行给定作业(即,它们可以执行工作流)。执行器可以知道每个监视器每英寸点数(DPI)设置。代理可以是/>
Figure BDA0004174693330000094
PresentationFoundation(WPF)应用,其显示系统托盘窗口中的可用作业。代理可以是服务的客户端。代理可以请求开始或停止作业并更改设置。命令行是服务的客户端。命令行是可以请求开始作业并等待其输出的控制台应用。
将机器人130的组件如上面所解释的那样进行拆分有助于开发者、支持用户和计算系统更容易地运行、标识和跟踪每个组件正在执行的内容。可以通过这种方式为每个组件配置特殊行为,诸如为执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可能总是知道每个监视器的DPI设置。结果,工作流可以以任何DPI被执行,而不管在其上创建它们的计算系统的配置如何。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。对于不知道DPI或有意地被标记为不知道的应用,在一些实施例中可以禁用DPI。
图2是图示根据本发明的实施例的所部署的RPA系统200的架构图。在一些实施例中,RPA系统200可以是图1的RPA系统100或者可以是其一部分。应当注意,在不脱离本发明的范围的情况下,客户端侧、服务器侧或两者可以包括任何期望数目的计算系统。在客户端侧上,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可能不在计算系统210上运行。执行器212运行过程。若干业务项目可以同时运行,如图2中所示。在此实施例中,代理214(例如,
Figure BDA0004174693330000095
服务)是针对所有执行器212的单一联系点。在此实施例中的所有消息都被日志记录到协调器230中,协调器230经由数据库服务器240、索引器服务器250或两者进一步处理它们。如上面关于图1所讨论的,执行器212可以是机器人组件。
在一些实施例中,机器人表示机器名称和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行多个交互式会话的计算系统(例如,
Figure BDA0004174693330000101
Server2012)上,多个机器人可以同时运行,每个机器人使用唯一用户名处于单独的/>
Figure BDA0004174693330000102
会话中。这在上文被称为HD机器人。
代理214还负责发送机器人的状态(例如,定期发送指示机器人仍在起作用的“心跳”消息)并下载要被执行的所需版本的封装。在一些实施例中,代理214和协调器230之间的通信总是由代理214发起。在通知场景中,代理214可以打开WebSocket通道,该WebSocket通道稍后由协调器230使用以向机器人发送命令(例如,开始、停止等)。
在服务器侧上,表示层(web应用232、开放数据协议(OData)代表性状态传送(REST)应用编程接口(API)端点234以及通知和监测236)、服务层(API实现/业务逻辑238)和持久层(数据库服务器240和索引器服务器250)被包括在内。协调器230包括web应用232、OData REST API端点234、通知和监测236以及API实现/业务逻辑238。在一些实施例中,用户在协调器230的界面中执行的大多数动作(例如,经由浏览器220)通过调用各种API来执行。在不脱离本发明的范围的情况下,此类动作可以包括但不限于在机器人上开始作业、添加/移除队列中的数据、安排作业以无人值守地运行等。Web应用232是服务器平台的可视层。在此实施例中,web应用232使用超文本标记语言(HTML)和JavaScript(JS)。然而,在不脱离本发明的范围的情况下,可以使用任何期望的标记语言、脚本语言或任何其他格式。在此实施例中,用户经由浏览器220与来自web应用232的网页交互,以便执行各种动作来控制协调器230。例如,用户可以创建机器人群组、将封装指派给机器人、分析每个机器人和/或每个过程的日志、开始和停止机器人等。
除了web应用232之外,协调器230还包括暴露OData REST API端点234的服务层。然而,在不脱离本发明的范围的情况下,可以包括其他端点。REST API由Web应用232和代理214使用。在此实施例中,代理214是客户端计算机上的一个或多个机器人的管理者。
在此实施例中的REST API涵盖配置、日志记录、监测和排队功能性。在一些实施例中,配置端点可以被用来限定和配置应用用户、权限、机器人、资产、发布和环境。日志记录REST端点可以被用来日志记录不同的信息,诸如错误、由机器人发送的显式消息以及其他环境特定的信息。机器人可以使用部署REST端点来查询如果在协调器230中使用开始作业命令时应该执行的封装版本。排队REST端点可以负责队列和队列项管理,诸如将数据添加到队列,从队列中获得事务,设置事务的状态等。
监测REST端点可以监测web应用232和代理214。通知和监测API 236可以是被用于注册代理214、向代理214递送配置设置以及用于从服务器和代理214发送/接收通知的REST端点。在一些实施例中,通知和监测API 236也可以使用WebSocket通信。
在此实施例中,持久层包括一对服务器——数据库服务器240(例如,SQL服务器)和索引器服务器250。在此实施例中,数据库服务器240存储机器人、机器人群组、关联过程、用户、角色、时间表等等的配置。在一些实施例中,此信息通过web应用232来管理。数据库服务器240可以管理队列和队列项。在一些实施例中,数据库服务器240可以存储由机器人日志记录的消息(除了索引器服务器250之外或者代替索引器服务器250)。
在一些实施例中可选的索引器服务器250存储和索引由机器人日志记录的信息。在某些实施例中,索引器服务器250可以通过配置设置而被禁用。在一些实施例中,索引器服务器250使用
Figure BDA0004174693330000111
它是一个开源项目全文搜索引擎。由机器人日志记录的消息(例如,使用像日志消息或写入行这样的活动)可以通过(多个)日志记录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自动化活动330经由允许机器人与期望软件进行交互的驱动程序340和/或AI/ML模型350来促进这些交互。例如,驱动程序340可以包括OS驱动程序342、浏览器驱动程序344、VM驱动程序346、企业应用驱动程序348等。UI自动化活动330可以使用AI/ML模型350中的一个或多个以便确定执行与计算系统的交互。在一些实施例中,AI/ML模型350可以增强驱动程序340或完全取代它们。实际上,在某些实施例中不包括驱动程序340。
驱动程序340可以在低级别与OS进行交互以寻找挂钩、监测按键等。它们可以促进与
Figure BDA0004174693330000131
等的集成。例如,“点击”活动经由驱动程序340而在这些不同的应用中执行相同的角色。
图4是图示根据本发明的实施例的RPA系统400的架构图。在一些实施例中,RPA系统400可以是或包括图1和图2的RPA系统100和/或200。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的web应用来与协调器计算系统420通信。协调器计算系统420继而又能够与数据库服务器430和可选的索引器服务器440通信。
关于图1和图3,应当注意,虽然在这些实施例中使用了web应用,但是在不脱离本发明的范围的情况下可以使用任何合适的客户端/服务器软件。例如,协调器可以运行服务器侧的应用,该应用与客户端计算系统上的非基于web的客户端软件应用通信。
图5是图示根据本发明的实施例的计算系统500的架构图,该计算系统被配置为训练AI/ML模型以使用CV来识别应用、屏幕和UI元素,以及识别与应用、屏幕和UI元素的用户交互。在一些实施例中,计算系统500可以是本文描绘和/或描述的计算系统中的一个或多个。计算系统500包括总线505或用于传递信息的其他通信机制,以及耦合到总线505以用于处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU),其多个实例和/或其任何组合。(多个)处理器510也可以具有多个处理核心,并且核心中的至少一些可以被配置为执行特定功能。在一些实施例中可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一个可以是神经形态电路,其包括模仿生物神经元的处理元件。在一些实施例中,神经形态电路可能不需要冯诺依曼计算架构的典型组件。
计算系统500还包括存储器515,用于存储要由(多个)处理器510执行的信息和指令。存储器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 BDA0004174693330000141
显示器、平面内切换(IPS)显示器或任何用于向用户显示信息的其他合适的显示器。显示器525可以被配置为使用电阻式、电容式、表面声波(SAW)电容式、红外、光学成像、色散信号技术、声学脉冲识别、受抑全内反射等等的触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多点触摸显示器等。在不脱离本发明的范围的情况下,可以使用任何合适的显示设备和触觉输入/输出。
键盘530和光标控制设备535,诸如计算机鼠标、触摸板等,也耦合到总线505以使得用户能够与计算系统500交互。然而,在某些实施例中,可能不存在物理键盘和鼠标,并且用户可以仅通过显示器525和/或触摸板(未示出)来与设备交互。作为设计选择,可以使用任何类型和组合的输入设备。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与其通信的另一个计算系统远程地与计算系统500交互,或者计算系统500可以自主操作。
存储器515存储软件模块,软件模块在由(多个)处理器510执行时提供功能性。模块包括用于计算系统500的操作系统540。模块还包括AI/ML模型训练模块545,其被配置为执行本文所描述的过程的全部或一部分或其衍生物。计算系统500可以包括一个或多个附加功能模块550,其包括附加功能性。
本领域的技术人员将了解,“系统”可以被体现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、手机、平板计算设备、量子计算系统或任何其他合适的计算设备或设备的组合而不脱离本发明的范围。将上述功能呈现为由“系统”执行并非旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例中的一个示例。实际上,本文所公开的方法、系统和装置可以以与包括云计算系统的计算技术相一致的本地化和分布式形式来实现。计算系统可以是局域网(LAN)、移动通信网络、卫星通信网络、互联网、公共或私有云、混合云、服务器场、它们的任意组合等等的一部分或者以其他方式可访问。在不脱离本发明的范围的情况下,可以使用任何本地化或分布式架构。
应当注意,本说明书中描述的一些系统特征已经作为模块被呈现,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,包括定制的超大规模集成(VLSI)电路或门阵列、现成半导体诸如逻辑芯片、晶体管或其他分立组件。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等等的可编程硬件设备中被实现。
模块也可以至少部分地以软件来实现以供各种类型的处理器执行。已标识的可执行代码单元可以例如包括一个或多个计算机指令的物理或逻辑块,其可以例如被组织为对象、过程或函数。然而,已标识模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上连接在一起时,构成该模块并实现该模块的规定目的。此外,模块可以被存储在计算机可读介质上,该介质可以是例如硬盘驱动器、闪存设备、RAM、磁带和/或在不脱离本发明的范围的情况下的任何其他被用来存储数据的非暂态计算机可读介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以被分布在若干不同的代码段上、在不同的程序之中以及在若干存储器设备上。类似地,操作数据可以在本文中在模块内被标识和说明,并且可以以任何合适的形式来体现并被组织在任何合适类型的数据结构内。操作数据可以作为单个数据集而被收集,或者可以分布在不同位置上,包括在不同存储设备上,并且可以至少部分地仅作为系统或网络上的电子信号而存在。
图6是图示根据本发明的实施例的系统600的架构图,该系统被配置训练AI/ML模型以为使用CV来识别应用、屏幕和UI元素并且识别与应用、屏幕和UI元素的用户交互。系统600包括用户计算系统,诸如台式计算机602、平板计算机604和智能电话606。然而,在不脱离本发明范围的情况下,可以使用任何期望的计算系统,包括但不限于智能手表、膝上型计算机等。在一些实施例中,计算系统602、604、606中的一个或多个可以包括自动化框和/或相机。此外,虽然图6中示出了三个用户计算系统,在不脱离本发明的范围的情况下可以使用任何合适数目的计算系统。例如,在一些实施例中,可以使用数十个、数百个、数千个或数百万个计算系统。
每个计算系统602、604、606具有在其上运行的记录器过程610(即,跟踪应用),其记录用户屏幕或其一部分的屏幕截图和/或视频。例如,一段
Figure BDA0004174693330000171
可以作为记录器过程610而被嵌入到web浏览器中,以跟踪用户与哪些组件交互、用户输入了哪些文本、用户用鼠标点击了哪些位置/组件、用户滚动过去了哪些内容、用户在内容的某一部分停留了多长时间等。滚动过去的内容可能指示该内容可能有些接近但不完全是用户想要的。点击可能指示成功。
记录器过程610不必是
Figure BDA0004174693330000172
并且在不脱离本发明的范围的情况下可以是任何合适类型的应用并且可以是任何期望的编程语言。这可以允许“概括”记录器过程610,使得它们可以跟踪与多个应用或用户正在与之交互的任何应用的用户交互。使用来自scratch的经标记的训练数据可能很困难,因为虽然它可能允许AI/ML模型学习识别各种控件,但是它不包含有关哪些控件是常用的以及如何使用的信息。使用记录器过程610,可以生成“热图”以帮助引导AI/ML模型训练过程。热图可以包括各种信息,诸如用户使用应用的频率、用户与应用的组件交互的频率、组件的位置、应用/组件的内容等。在一些实施例中,可以从屏幕分析中导出热图,诸如计算系统602、604、606的对键入和/或粘贴文本的检测、插入符跟踪和活动元素检测。一些实施例识别用户在与计算系统602、604、606相关联的屏幕上的何处键入或粘贴文本,潜在地包括热键或其他不会导致可见字符出现的按键,并基于一个或多个字符出现的位置、光标闪烁的位置或两者的(例如,在坐标中的)当前分辨率来提供屏幕上的物理位置。键入或粘贴活动和/或插入符的物理位置可以允许确定用户正在键入或关注的哪个(哪些)字段以及用于过程发现或其他应用是什么应用。
根据上文,在一些实施例中,记录器过程610可以记录附加的数据以进一步协助训练(多个)AI/ML模型,诸如web浏览器历史、热图、按键按下、鼠标点击、鼠标点击的位置和/或用户正在与之交互的屏幕上的图形元素、用户在不同时间在屏幕上正在查看的位置、与屏幕截图/视频帧相关联的时间戳等。这可能有利于提供按键按下和/或其他可能不会导致屏幕变化的用户动作。例如,当用户按下CTRL+S以保存文件时,一些应用可能不会提供视觉变化。然而,在某些实施例中,可以仅基于所捕获的屏幕图像来训练(多个)AI/ML模型。记录器过程610可以是经由RPA设计器应用、操作系统的一部分、用于个人计算机(PC)或智能电话的可下载应用、或在不脱离本发明的范围的情况下的任何其他软件和/或硬件而生成的机器人。事实上,在一些实施例中,一个或多个记录器过程610的逻辑部分地或完全地通过物理硬件来实现。
一些实施例在反馈循环过程中被实现,该过程连续地或周期性地将当前屏幕截图与先前屏幕截图进行比较以标识变化。可以标识屏幕上发生视觉变化的位置,并且可以对发生变化的位置执行OCR。然后可以将OCR的结果与键盘队列的内容进行比较(例如,由按键挂钩确定)以确定是否存在匹配。可以通过将来自当前屏幕截图的像素框与来自先前屏幕截图的相同位置中的像素框进行比较来确定发生变化的位置。
由记录器过程610记录的图像和/或其他数据(例如,web浏览器历史、热图、按键按下、鼠标点击、鼠标点击的位置和/或用户正在与之交互的屏幕上的图形元素、用户在不同时间在屏幕上正在查看的位置、与屏幕截图/视频帧相关联的时间戳、语音输入、手势、情绪(例如,用户是快乐、沮丧等)、生物特征(例如,指纹、视网膜扫描、用户的脉搏等)、与无用户活动的时段有关的信息(例如,“死人开关”)、来自触觉显示器或触摸板的触觉信息、具有多触摸输入的热图等)经由网络620(例如,局域网(LAN)、移动通信网络、卫星通信网络、互联网、它们的任何组合等)而被发送到服务器630。在一些实施例中,服务器630可以是公共云架构、私有云架构、混合云架构等的一部分。在某些实施例中,服务器630可以在单个计算系统630上托管多个基于软件的服务器。在一些实施例中,服务器630可以运行协调器应用并且来自记录器过程610的数据可以作为心跳消息的一部分而周期性地被发送。在某些实施例中,一旦预定量的数据已被收集、在预定时间段逝去之后,或者两者,可以将数据从记录器过程610发送到服务器630。服务器630将从记录器过程610接收到的数据存储在数据库640中。
在此实施例中,服务器630包括共同形成AI/ML模型的多个AI层632。然而,在一些实施例中,AI/ML模型可以只有一个层。在某些实施例中,可以在服务器630上训练多个AI/ML模型并将其一起用来共同完成更大的任务。AI层632可以采用CV技术并且可以执行各种功能,诸如统计建模(例如,隐马尔可夫模型(HMM)),并利用深度学习技术(例如,长短期记忆(LSTM)深度学习,对先前隐藏状态的编码等)来标识用户交互。最初,需要训练AI/ML模型,使得它可以对数据库640中所捕获的数据执行有意义的分析。在一些实施例中,计算系统602、604、606的用户在图像被发送到服务器630之前对图像进行标记。附加地或备选地,在一些实施例中,诸如经由在计算系统650上运行的应用652随后发生标记处理,应用652允许用户在图形元素周围绘制边界框和/或其他形状,从而提供边界框中包含的内容的文本标签等。
AI/ML模型经历使用此数据作为输入的训练阶段并且被训练直到AI/ML模型足够准确,但是不过度拟合训练数据。可接受的准确性可以取决于应用。标识错误可以由人类审阅者突出显示(例如,通过在错误标识的元素周围绘制一个框并包括正确的标识),并且可以使用这些附加的经标记的数据来重新训练AI/ML模型。一旦被充分训练,AI/ML模型就能够提供预测作为输出,诸如哪个(哪些)应用和图形元素被识别为呈现在屏幕中。
然而,虽然这种级别的训练提供了关于呈现了什么的信息,但是可能需要进一步的信息来确定用户交互,诸如比较两个或更多连续屏幕以确定所键入的字符从一个屏幕出现到另一个屏幕、按钮被按下、出现菜单选择等。因此,在AI/ML模型可以识别屏幕上的图形元素和应用之后,在一些实施例中,AI/ML模型被进一步训练以识别与UI中的应用的所标记的用户交互,以理解用户采取的此类增量动作。标识错误可以再次由人类审阅者突出显示(例如,通过在错误标识的元素周围绘制一个框并包括正确的标识),并且可以训练AI/ML模型直到其准确性足够高以被部署来理解与UI的细粒度用户交互。
一旦被训练以识别用户交互,经训练的AI/ML模型就可以被用来分析来自记录器过程610的视频和/或其他信息。这个所记录的信息可以包括多个/许多用户倾向于执行的交互。然后可以针对常见序列分析这些交互以用于后续自动化。
AI层
在一些实施例中,可以使用多个AI层。每个AI层都是在数据上运行的算法(或模型),而AI模型本身可以是在训练数据中训练的经训练人工“神经元”的深度学习神经网络(DLNN)。层可以以串联、并联或其组合来运行。
AI层可以包括但不限于序列提取层、聚类检测层、视觉组件检测层、文本识别层(例如,OCR)、音频到文本转换层、或其任何组合。然而,在不脱离本发明的范围的情况下,可以使用任何期望数目和(多个)类型的层。使用多个层可以允许系统开发屏幕中正在发生什么的全局画面。例如,一个AI层可以执行OCR,另一个可以检测按钮等。
模式可以由AI层单独确定或由多个AI层共同确定。根据用户动作的概率或输出可以被使用。例如,为了确定按钮的细节、其文本、用户点击的位置等,系统可能需要知道按钮的位置、其文本、在屏幕上的位置等。
然而,应当注意,可以使用各种AI/ML模型而不脱离本发明的范围。虽然在一些实施例中可以使用诸如DLNN、递归神经网络(RNN)、生成对抗网络(GAN)、它们的任何组合等之类的神经网络来训练AI/ML模型,但是在不脱离本发明的范围的情况下,也可以使用其他AI技术,诸如确定性模型、浅层学习神经网络(SLNN)或任何其他合适的AI/ML模型类型和训练技术。
图7是图示根据本发明的实施例的用于训练AI/ML模型以使用CV来识别应用、屏幕和UI元素,以及识别与应用、屏幕和UI元素的用户交互的过程700的流程图。在710处,过程开始于记录与用户计算系统相关联的显示器的屏幕截图或视频帧以及其他信息。在一些实施例中,记录由一个或多个记录器过程来执行。在某些实施例中,记录器过程被实现为反馈循环过程,其连续地或周期性地将当前屏幕截图或视频帧与先前屏幕截图或视频帧进行比较,并且标识当前屏幕截图或视频帧与先前屏幕截图或视频帧之间发生变化的一个或多个位置。在一些实施例中,记录器过程被配置为对发生变化的一个或多个位置执行OCR,将OCR的结果与键盘队列的内容进行比较以确定是否存在匹配,并且当存在匹配时,将与匹配相关联的文本链接到相应的位置。在一些实施例中,其他信息包括web浏览器历史、一个或多个热图、按键按下、鼠标点击、鼠标点击的位置和/或用户正在与之交互的显示器上的图形元素、用户在显示器上正在查看的位置、与屏幕截图或视频帧相关联的时间戳、用户输入的文本、用户滚动过去的内容、用户在显示器中显示的部分内容上停留的时间、用户正在与什么应用交互、或其组合。在某些实施例中,其他信息中的至少部分是使用一个或多个自动化框捕获的。
在720处,生成一个或多个热图作为其他信息的一部分。在一些实施例中,一个或多个热图包括用户使用应用的频率、用户与应用的组件交互的频率、组件在应用中的位置、应用和/或组件的内容、或其组合。在某些实施例中,从显示器分析中导出一个或多个热图,该显示器分析包括对键入和/或粘贴文本的检测、插入符号跟踪、活动元素检测、或其组合。记录的屏幕截图或视频帧以及其他信息然后在730处被发送到一个或多个服务器可访问的存储装置。
在740处,记录的屏幕截图或视频帧以及其他信息被访问(例如,经由被配置为训练AI/ML模型的服务器)。在750处,使用记录的屏幕截图或视频帧以及其他信息来初始训练AI/ML模型以识别呈现在记录的屏幕截图或视频帧中的应用、屏幕和UI元素。在一些实施例中,在没有对屏幕截图或视频帧中的应用、屏幕和UI元素的先验知识的情况下执行AI/ML模型的初始训练。
在AI/ML模型能够有把握地(例如,70%、95%、99.99%等)识别记录的屏幕截图或视频帧中的应用、屏幕和UI元素之后,在760处,训练AI/ML模型以识别与UI元素的个体用户交互。在一些实施例中,个体用户交互包括按钮按下、单个字符或字符序列的输入、活动UI元素的选择、菜单选择、屏幕改变、或其组合。在某些实施例中,训练AI/ML模型以识别与UI元素的个体用户交互包括比较两个或更多连续屏幕截图或视频帧并确定键入的字符从一个屏幕截图出现到另一个屏幕截图、按钮被按下、或者出现菜单选择。在770处,然后部署AI/ML模型,使得它可以被调用过程(例如,RPA机器人)调用和使用。
图8是图示根据本发明的实施例的自动化框和眼睛运动跟踪系统800的架构图。系统800包括计算系统810,其包括被配置为处理来自相机820的输入的眼睛跟踪逻辑(ETL)812和被配置为处理来自自动化框860的输入的自动化框逻辑(ABL)814。在一些实施例中,计算系统810可以是或包括图5的计算系统500。在某些实施例中,可以使用多个相机。
当用户经由鼠标840和键盘850来与计算系统810交互时,相机820记录用户的视频。计算系统810将记录的相机视频转换成视频帧。ETL处理这些帧以标识用户的眼睛并将用户正在看的位置内插到显示器830上的某个位置。可以使用任何合适的(多个)眼睛跟踪技术而不背离本发明的范围,诸如在美国专利申请公开号2018/0046248、美国专利号7,682,026等中描述的那些。时间戳可以与用户的视频帧相关联,使得它们可以与在那时显示在显示器830上的屏幕截图帧相匹配。
在此实施例中,自动化框860还包括自动化框逻辑862,其接收来自鼠标840和键盘850的输入。在一些实施例中,自动化框860可以具有与计算系统810相似的硬件(例如,(多个)处理器、存储器、总线等)。此输入然后可以被传递到计算系统810。虽然在图8中示出了鼠标840和键盘850,但是在不脱离本发明的范围的情况下可以使用任何合适的(多个)输入设备,诸如触摸板、按钮等。在一些实施例中,只有计算系统810或自动化框860包括自动化框逻辑。后者的原因可能是记录用户交互并经由网络870将它们直接发送到服务器(例如,基于云的服务器)以用于后续处理。在这样的实施例中,屏幕截图帧也可以从计算系统810被发送到自动化框860,然后经由网络870发送到服务器上。备选地,计算系统810可以经由网络870发送屏幕截图本身。这样的实施例可以提供即插即用的跟踪解决方案,其可以被插入到计算系统810中,将键盘和鼠标信息中继到计算系统810以供其操作,并且还将键盘和鼠标点击信息中继到远程服务器以用于AI/ML模型的后续训练。
在一些实施例中,自动化框860可以包括运行自动化和模拟输入的致动逻辑。这可以允许自动化框860向计算系统810提供模拟按键按下、鼠标移动和点击等,就好像此信息实际上来自与这些组件进行交互的人类用户一样。然后可以使用UI屏幕截图和其他信息来训练AI/ML模型。这样的实施例的另一个优点是当用户离开计算系统810时可以训练AI/ML模型,潜在地允许更快速地捕获更大量的训练信息,并且因此也潜在地允许更快速地训练AI/ML模型。
在某些实施例中,“信息框”可以被实现为计算系统610上的软件并且可以以类似于图6的记录器过程610的方式起作用。这样的实施例可以存储屏幕截图帧、鼠标点击信息和按键按下信息。在某些实施例中,还可以跟踪眼睛跟踪信息。此信息然后可以经由网络870被发送到服务器,并且凝视跟踪可以潜在地远程执行而不是在计算系统810上执行。
根据本发明的实施例,图10中执行的过程步骤可以由计算机程序执行,对指令进行编码以用于(多个)处理器以执行图7中描述的过程的至少一部分。计算机程序可以被体现在非暂态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、RAM、磁带和/或被用来存储数据的任何其他这样的介质或介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)以实现图7中描述的全部或部分过程步骤的编码指令,其也可以被存储在计算机可读介质上。
计算机程序可以以硬件、软件或混合实现来实现。计算机程序可以由彼此可操作通信的模块组成,并且其被设计为传递信息或指令以显示。计算机程序可以被配置为在通用计算机、ASIC或任何其他合适的设备上操作。
将容易理解的是,如本文附图中大体描述和图示的本发明的各种实施例的组件可以以多种不同的配置来进行布置和设计。因此,如附图中所表示的本发明的实施例的详细描述并非旨在限制所要求保护的本发明的范围,而仅表示本发明的选定实施例。
贯穿本说明书描述的本发明的特征、结构或特性可以以任何合适的方式在一个或多个实施例中进行组合。例如,贯穿本说明书对“某些实施例”、“一些实施例”或类似语言的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言的存在不一定都指代同一组实施例,并且所描述的特征、结构或特性在一个或多个实施例中可以以任何合适的方式来组合。
应该注意的是,贯穿本说明书对特征、优点或类似语言的引用并不意味着可以用本发明实现的所有特征和优点应该是或呈现在本发明的任何单个实施例中。相反,提及特征和优点的语言应被理解为意指结合实施例描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的特征和优点的讨论以及类似语言可能但不一定指代相同的实施例。
此外,所描述的本发明的特征、优点和特性可以以任何合适的方式在一个或多个实施例中进行组合。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定特征或优点的情况下实践本发明。在其他实例中,在某些实施例中可以认识到可能不呈现在本发明的所有实施例中的附加特征和优点。
本领域的普通技术人员将容易理解,如上面所讨论的本发明可以以不同顺序的步骤和/或以与所公开的那些不同的配置的硬件元件来实践。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域的技术人员来说显而易见的是,某些修改、变化和替代构造将是显而易见的,同时保持在本发明的精神和范围内。因此,为了确定本发明的界限和范围,应当对所附权利要求进行参考。

Claims (21)

1.一种系统,包括:
一个或多个用户计算系统,所述一个或多个用户计算系统包括相应记录器过程;以及
服务器,所述服务器被配置为训练人工智能(AI)/机器学习(ML)模型来使用计算机视觉(CV)识别应用、屏幕和用户界面(UI)元素以及识别与所述应用、屏幕和UI元素的用户交互,其中
所述相应记录器过程被配置为:
记录与相应用户计算系统相关联的显示器的屏幕截图或视频帧以及其他信息,以及
将所记录的所述屏幕截图或视频帧以及所述其他信息发送给由所述服务器可访问的存储装置,以及
所述服务器被配置为:
使用所记录的所述屏幕截图或视频帧以及所述其他信息初始训练所述AI/ML模型来识别被呈现在所记录的所述屏幕截图或视频帧中的所述应用、屏幕和UI元素,以及
在所述AI/ML模型能够以一个置信度识别所记录的所述屏幕截图或视频帧中的所述应用、屏幕和UI元素之后,训练所述AI/ML模型来识别与所述UI元素的个体用户交互。
2.根据权利要求1所述的系统,其中所述个体用户交互包括按钮按下、单个字符或字符序列的输入、活动UI元素的选择、菜单选择、屏幕改变、语音输入、手势、提供生物特征信息、触觉交互、或其组合。
3.根据权利要求1所述的系统,其中训练所述AI/ML模型来识别与所述UI元素的所述个体用户交互包括:比较两个或更多个连续屏幕截图或视频帧,以及确定所键入的字符从一个屏幕截图到另一屏幕截图出现、按钮被按下、或者出现菜单选择。
4.根据权利要求1所述的系统,其中所述其他信息包括web浏览器历史、一个或多个热图、按键按下、鼠标点击、鼠标点击的位置和/或所述显示器上的用户正在与其交互的图形元素、所述用户在所述显示器上正在查看的位置、与所述屏幕截图或视频帧相关联的时间戳、所述用户输入的文本、所述用户滚动过去的内容、所述用户停留在所述显示器中所示出的部分内容上的时间、所述用户正在与什么应用交互、语音输入、手势、情绪信息、生物特征、与无用户活动时段有关的信息、触觉信息、多点触摸输入信息、或其组合。
5.根据权利要求1所述的系统,其中
所述一个或多个用户计算系统或所述服务器被配置为生成一个或多个热图,所述其他信息包括所述一个或多个热图,并且
所述一个或多个热图包括用户使用应用的频率、所述用户与所述应用的组件交互的频率、在所述应用中所述组件的位置、所述应用和/或组件的内容、或其组合。
6.根据权利要求5所述的系统,其中所述一个或多个用户计算系统或所述服务器被配置为从显示器分析导出所述一个或多个热图,所述显示器分析包括对键入和/或粘贴的文本的检测、插入符跟踪、活动元素检测、或其组合。
7.根据权利要求1所述的系统,还包括:
自动化框,可操作地被连接到所述一个或多个用户计算系统中的用户计算系统,所述自动化框被配置为:
从一个或多个用户输入设备接收输入,
将时间戳与所述输入相关联,以及
将带时间戳的所述输入发送给由所述服务器可访问的存储装置,其中
所述服务器被配置为使用带时间戳的所述输入以用于所述AI/ML模型的所述初始训练。
8.根据权利要求1所述的系统,其中所述服务器被配置为在没有所述屏幕截图或视频帧中的所述应用、屏幕和UI元素的先验知识的情况下执行所述AI/ML模型的所述初始训练。
9.一种存储计算机程序的非暂态计算机可读介质,所述计算机程序被配置为训练人工智能(AI)/机器学习(ML)模型使用计算机视觉(CV)来识别应用、屏幕和用户界面(UI)元素和/或识别与所述应用、屏幕和UI元素的用户交互,所述计算机程序被配置为使至少一个处理器:
访问与一个或多个计算系统相关联的显示器的所记录的屏幕截图或视频帧,以及访问与所述一个或多个计算系统相关联的其他信息;以及
使用所记录的所述屏幕截图或视频帧以及所述其他信息初始训练所述AI/ML模型来识别被呈现在所记录的所述屏幕截图或视频帧中的所述应用、屏幕和UI元素,其中
所述AI/ML模型的所述初始训练在没有所述屏幕截图或视频帧中的所述应用、屏幕和UI元素的先验知识的情况下被执行。
10.根据权利要求9所述的非暂态计算机可读介质,其中在所述AI/ML模型能够以一个置信度识别所记录的所述屏幕截图或视频帧中的所述应用、屏幕和UI元素之后,所述计算机程序还被配置为使所述至少一个处理器:
训练所述AI/ML模型来识别与所述UI元素的个体用户交互。
11.根据权利要求10所述的非暂态计算机可读介质,其中训练所述AI/ML模型来识别与所述UI元素的所述个体用户交互包括:比较两个或更多个连续屏幕截图或视频帧,以及确定所键入的字符从一个屏幕截图到另一屏幕截图出现、按钮被按下、或者出现菜单选择。
12.根据权利要求10所述的非暂态计算机可读介质,其中所述个体用户交互包括按钮按下、单个字符或字符序列的输入、活动UI元素的选择、菜单选择、屏幕改变、语音输入、手势、提供生物特征信息、触觉交互、或其组合。
13.根据权利要求9所述的非暂态计算机可读介质,其中所述其他信息包括web浏览器历史、一个或多个热图、按键按下、鼠标点击、鼠标点击的位置和/或所述显示器上用户正在与其交互的图形元素、所述用户在所述显示器上正在查看的位置、与所述屏幕截图或视频帧相关联的时间戳、所述用户输入的文本、所述用户滚动过去的内容、所述用户停留在显示器中所示出的部分内容上的时间、所述用户正在与什么应用交互、语音输入、手势、情绪信息、生物特征、与无用户活动时段有关的信息、触觉信息、多点触摸输入信息、或其组合。
14.根据权利要求9所述的非暂态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:
生成一个或多个热图,所述其他信息包括所述一个或多个热图,其中
所述一个或多个热图包括用户使用一个或多个应用的频率、所述用户与所述一个或多个应用的组件交互的频率、在所述一个或多个应用中所述组件的位置、所述一个或多个应用和/或组件的内容、或其组合。
15.根据权利要求14所述的非暂态计算机可读介质,其中所述一个或多个热图从显示器分析导出,所述显示器分析包括对键入和/或粘贴的文本的检测、插入符号跟踪、活动元素检测、或其组合。
16.一种计算机实现的方法,所述方法用于训练人工智能(AI)/机器学习(ML)模型来使用计算机视觉(CV)识别应用、屏幕和用户界面(UI)元素,以及识别与所述应用、屏幕和UI元素的用户交互,所述方法包括:
访问与一个或多个计算系统相关联的显示器的记录的屏幕截图或视频帧,以及访问与所述一个或多个计算系统相关联的其他信息;
使用所记录的所述屏幕截图或视频帧以及所述其他信息来初始训练所述AI/ML模型,以识别被呈现在所记录的所述屏幕截图或视频帧中的所述应用、屏幕和UI元素;以及
在所述AI/ML模型能够有把握地识别所记录的所述屏幕截图或视频帧中的所述应用、屏幕和UI元素之后,训练所述AI/ML模型以识别与所述UI元素的个体用户交互。
17.根据权利要求16所述的计算机实现的方法,其中所述AI/ML模型的所述初始训练在没有所述屏幕截图或视频帧中的所述应用、屏幕和UI元素的先验知识的情况下被执行。
18.根据权利要求16所述的计算机实现的方法,其中训练所述AI/ML模型来识别与所述UI元素的所述个体用户交互包括:比较两个或更多个连续屏幕截图或视频帧,并且确定键入的字符从一个屏幕截图到另一屏幕截图出现、按钮被按下、或者出现菜单选择。
19.根据权利要求16所述的计算机实现的方法,其中所述个体用户交互包括按钮按下、单个字符或字符序列的输入、活动UI元素的选择、菜单选择、屏幕改变、语音输入、手势、提供生物特征信息、触觉交互、或其组合。
20.根据权利要求16所述的计算机实现的方法,其中所述其他信息包括web浏览器历史、一个或多个热图、按键按下、鼠标点击、鼠标点击的位置和/或所述显示器上用户正在与其交互的图形元素、所述用户在所述显示器上正在查看的位置、与所述屏幕截图或视频帧相关联的时间戳、所述用户输入的文本、所述用户滚动过去的内容、所述用户停留在所述显示器中所示出的部分内容上的时间、所述用户正在与什么应用交互、语音输入、手势、情绪信息、生物特征、与无用户活动时段有关的信息、触觉信息、多点触摸输入信息、或其组合。
21.根据权利要求16所述的计算机实现的方法,还包括:
生成一个或多个热图,所述其他信息包括所述一个或多个热图,其中
所述一个或多个热图包括用户使用一个或多个应用的频率、所述用户与所述一个或多个应用的组件交互的频率、在所述一个或多个应用中所述组件的位置、所述一个或多个应用和/或组件的内容、或其组合,并且
所述一个或多个热图从显示器分析导出,所述显示器分析包括对键入和/或粘贴的文本的检测、插入符号跟踪、活动元素检测、或其组合。
CN202180070042.0A 2020-10-14 2021-10-05 使用计算机视觉来训练人工智能/机器学习模型以识别应用、屏幕和用户界面元素 Pending CN116391174A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/070,108 US11782733B2 (en) 2020-10-14 2020-10-14 Training an artificial intelligence / machine learning model to recognize applications, screens, and user interface elements using computer vision
US17/070,108 2020-10-14
PCT/US2021/053484 WO2022081377A1 (en) 2020-10-14 2021-10-05 Training an artificial intelligence / machine learning model to recognize applications, screens, and user interface elements using computer vision

Publications (1)

Publication Number Publication Date
CN116391174A true CN116391174A (zh) 2023-07-04

Family

ID=81078995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180070042.0A Pending CN116391174A (zh) 2020-10-14 2021-10-05 使用计算机视觉来训练人工智能/机器学习模型以识别应用、屏幕和用户界面元素

Country Status (5)

Country Link
US (1) US11782733B2 (zh)
EP (1) EP4229563A1 (zh)
JP (1) JP2023545253A (zh)
CN (1) CN116391174A (zh)
WO (1) WO2022081377A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220405064A1 (en) * 2021-06-17 2022-12-22 International Business Machines Corporation Robotic process automation
US11922192B2 (en) * 2021-12-14 2024-03-05 International Business Machines Corporation Enhancing server virtualization through host sessions
US11803701B2 (en) * 2022-03-03 2023-10-31 Kyocera Document Solutions, Inc. Machine learning optimization of machine user interfaces

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070300179A1 (en) * 2006-06-27 2007-12-27 Observe It Ltd. User-application interaction recording
US7682026B2 (en) 2006-08-22 2010-03-23 Southwest Research Institute Eye location and gaze detection system and method
US9448908B2 (en) * 2012-09-10 2016-09-20 Applitools Ltd. System and method for model based session management
US9829971B2 (en) 2013-01-21 2017-11-28 Facebook, Inc. Systems and methods of eye tracking control
US20160349928A1 (en) * 2015-05-27 2016-12-01 International Business Machines Corporation Generating summary of activity on computer gui
US10169006B2 (en) * 2015-09-02 2019-01-01 International Business Machines Corporation Computer-vision based execution of graphical user interface (GUI) application actions
US10409712B2 (en) 2016-12-30 2019-09-10 Accenture Global Solutions Limited Device based visual test automation
WO2019022849A1 (en) 2017-07-26 2019-01-31 Magic Leap, Inc. FORMATION OF A NEURONAL NETWORK WITH REPRESENTATIONS OF USER INTERFACE DEVICES
US11042784B2 (en) * 2017-09-15 2021-06-22 M37 Inc. Machine learning system and method for determining or inferring user action and intent based on screen image analysis
US11194596B2 (en) 2017-11-30 2021-12-07 Lendingclub Corporation Simulating human interface interaction resilient to user interface changes
US10664999B2 (en) * 2018-02-15 2020-05-26 Adobe Inc. Saliency prediction for a mobile user interface
US20190324781A1 (en) * 2018-04-24 2019-10-24 Epiance Software Pvt. Ltd. Robotic script generation based on process variation detection
US11048619B2 (en) 2018-05-01 2021-06-29 Appdiff, Inc. AI software testing system and method
US11710064B2 (en) * 2018-07-11 2023-07-25 Sap Se Machine learning analysis of user interface design
US11099972B2 (en) * 2018-11-19 2021-08-24 Microsoft Technology Licensing, Llc Testing user interfaces using machine vision
US10949225B2 (en) * 2019-02-06 2021-03-16 Sap Se Automatic detection of user interface elements
CN111124888B (zh) 2019-11-28 2021-09-10 腾讯科技(深圳)有限公司 录制脚本的生成方法和装置及电子装置
US11513670B2 (en) * 2020-04-27 2022-11-29 Automation Anywhere, Inc. Learning user interface controls via incremental data synthesis

Also Published As

Publication number Publication date
US11782733B2 (en) 2023-10-10
EP4229563A1 (en) 2023-08-23
US20220113991A1 (en) 2022-04-14
JP2023545253A (ja) 2023-10-27
WO2022081377A1 (en) 2022-04-21

Similar Documents

Publication Publication Date Title
CN113011828B (zh) 更新或重新训练并更新动态人工智能/机器学习模型
US11541548B2 (en) Artificial intelligence-based process identification, extraction, and automation for robotic process automation
US11688192B2 (en) Retraining a computer vision model for robotic process automation
US11815880B2 (en) Human-in-the-loop robot training for robotic process automation
CN114600141A (zh) 使用人工智能来选择和链接用于机器人流程自动化的模型
US11836626B2 (en) Artificial intelligence layer-based process extraction for robotic process automation
US11782733B2 (en) Training an artificial intelligence / machine learning model to recognize applications, screens, and user interface elements using computer vision
US11592804B2 (en) Task automation by support robots for robotic process automation (RPA)
CN116324831A (zh) 经由人工智能/机器学习的机器人过程自动化异常检测和自我修复
CN114556377A (zh) 机器人过程自动化中的强化学习
CN116508037A (zh) 使用人工智能/机器学习模型确定交互的序列、流程提取和机器人生成
CN116070712A (zh) 使用针对机器人流程自动化的长运行工作流的构建和管理人工智能流
CN114930356A (zh) 经由动作中心来补充人工智能(ai)/机器学习(ml)模型、ai/ml模型重新训练硬件控制以及ai/ml模型设置管理
CN113748436A (zh) 用于机器人流程自动化的机器学习模型再训练流水线
CN118057367A (zh) 在浏览器内的目标应用的自动增强

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