CN110837403B - 机器人过程自动化 - Google Patents

机器人过程自动化 Download PDF

Info

Publication number
CN110837403B
CN110837403B CN201910754825.5A CN201910754825A CN110837403B CN 110837403 B CN110837403 B CN 110837403B CN 201910754825 A CN201910754825 A CN 201910754825A CN 110837403 B CN110837403 B CN 110837403B
Authority
CN
China
Prior art keywords
image
difference
control
images
determining
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.)
Active
Application number
CN201910754825.5A
Other languages
English (en)
Other versions
CN110837403A (zh
Inventor
C·D·威特
J·范登赫维尔
P·M·K·普拉萨德
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.)
Accenture Global Solutions Ltd
Original Assignee
Accenture Global Solutions Ltd
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 Accenture Global Solutions Ltd filed Critical Accenture Global Solutions Ltd
Publication of CN110837403A publication Critical patent/CN110837403A/zh
Application granted granted Critical
Publication of CN110837403B publication Critical patent/CN110837403B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0014Image feed-back for automatic industrial control, e.g. robot with camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Robotics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Image Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

包括在计算机存储介质上编码的计算机程序的方法、系统和装置,用于创建用于机器人自动化的用户界面控件图像。方法之一包括在训练过程期间检测控件选择事件;取回第一图像和第二图像;确定表示该第一图像和该第二图像之间的差异的差异图像;使用该差异图像,确定该差异图像中包括的像素的多种颜色,该像素可能位于该控件的控件位置之外;确定该差异图像中描绘的一个或多个形状,该一个或多个形状各自具有除了该多种颜色中的全部颜色之外的颜色;从该一个或多个形状中并使用该事件位置选择可能表示该控件的特定形状;以及存储从该两个或更多个图像之一提取的该控件的裁剪图像。

Description

机器人过程自动化
技术领域
本公开一般涉及机器人处理自动化。
背景技术
在计算机上执行的手动处理可能是重复且耗时的。例如用户可以发送电子邮件以响应网页表单提交,并且对于每个网页表单提交,可能需要手动与计算机交互以单击按钮以打开用于撰写新电子邮件的窗口,单击按钮以将网页表单提交中的信息复制到窗口中,单击按键以写入电子邮件正文的文本,然后单击按钮发送电子邮件。
发明内容
在一些实现中,机器人训练系统可以使用计算机视觉和用户界面组件分析来标识在机器人训练系统自动化的过程期间选择的用户界面控件,例如图标。机器人训练系统可以分析用户界面的多个图像之间的差异,以确定它们之间的相似性和差异,例如在至少两个图像之间。机器人训练系统可以使用差异和控件选择位置来确定所选择的用户界面中的控件的图像。
例如差异可能指示选择前后控件的颜色的改变。机器人训练系统可以使用用于颜色改变的信息来确定所选控件的位置。机器人训练系统可以使用所确定的位置来隔离例如由用户选择的控件。机器人训练系统可以从多个图像中的一个图像中提取控件的表示,以用于为该过程创建自动化脚本。
通常,本说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中:在机器人训练过程期间检测控件选择事件,该控件选择事件标识对计算机的显示器上描绘的控件的选择;从存储器中取回第一图像和第二图像,第一图像和第二图像各自i)描绘显示器的一部分并且ii)在从控件选择事件发生的时间的阈值时间段内被捕获;确定表示第一图像和第二图像之间的差异的差异图像;响应于确定表示第一图像和第二图像之间的差异的差异图像,使用差异图像和用于控件选择事件的事件位置,确定在差异图像中包括的像素的多种颜色,像素可能位于控件的控件位置之外;响应于确定多个颜色,使用差异图像确定差异图像中描绘的一个或多个形状,该一个或多个形状各自具有在差异图像中包括的像素的多种颜色中的颜色的全部颜色之外的颜色,该像素可能位于控件位置之外;响应于确定一个或多个形状,从一个或多个形状中并使用事件位置,选择可能表示控件的特定形状;并且在数据库中存储使用特定形状从两个或更多个图像中的一个提取的控件的裁剪图像。该方面的其他实施例包括记录在一个或多个计算机存储设备上的对应计算机系统、装置和计算机程序,计算机系统、装置和计算机程序各自被配置为执行方法的动作。一个或多个计算机的系统可以被配置为借助于在系统上安装软件、固件,硬件或它们的组合来执行特定操作或动作,其在操作中使系统执行动作。一个或多个计算机程序可以被配置为借助于包括当由数据处理装置执行时使装置执行动作的指令来执行特定操作或动作。
前述和其他实施例可以各自可选地单独或组合地包括以下特征中的一个或多个。从存储器中取回第一图像和第二图像可以包括从存储器中取回三个或更多个图像,该三个或更多个图像各自i)描绘显示器的一部分并且ii)在从控件选择事件发生的时间的阈值时间段内被捕获,三个或更多个图像包括第一图像的和包括第二图像的两个或更多个第二图像。确定表示第一图像和第二图像之间的差异的差异图像可以包括:对于两个或更多个第二图像中的每一个,生成表示相应的第二图像和第一图像之间的差异的相应差异图像;并且,选择来自两个或更多个差异图像的图像作为差异图像,所述图像表示第一图像和两个或更多个第二图像之间的最大改变。从存储器中取回三个或更多个图像可以包括从多个图像中确定在控件选择事件发生的时间的一秒内各自被捕获的三个或更多个图像;并且响应于确定在控件选择事件发生的时间的一秒内各自被捕获的三个或更多个图像,从存储器中取回所确定的三个或更多个图像。从存储器中取回三个或更多个图像可以包括选择三个或更多个图像,三个或更多个图像各自在显示器上围绕事件位置描绘内容。选择来自两个或更多个差异图像的、表示第一图像和两个或更多个第二图像之间的最大改变的的图像作为差异图像可以包括从两个或更多个差异图像中选择具有最大数量的像素的图像作为差异图像,差异图像表示来自第一图像和来自两个或更多个第二图像的相应图像的对应像素的差异。
在一些实现中,使用用于控件选择事件的差异图像和事件位置来确定差异图像中包括的可能位于用于控件的控件位置之外的像素的多个颜色可以包括使用像素列和像素行中描绘的颜色来确定多种颜色,像素列和像素行各自a)包括来自差异图像的像素,并且b)与事件位置相交。使用像素列和像素行中描绘的颜色确定多种颜色可以包括选择(a)在像素列和像素行两者中出现的,以及(b)发生超过阈值次数的颜色,作为多种颜色。使用用于控件选择事件的差异图像和事件位置确定差异图像中包括的可能位于用于控件的控件位置之外的像素的多种颜色可以包括确定以事件位置为中心的差异图像中的轮廓;以及将在轮廓的外边缘中包括的多个像素中的每个像素的颜色确定为多个颜色。轮廓可以是圆形、三角形或矩形。
在一些实现中,确定表示当前图像与另一图像之间的差异的差异图像可以包括确定仅描绘显示器的一部分的差异图像。确定仅描绘显示器的一部分的差异图像可以包括确定具有200像素乘200像素的大小的差异图像。确定一个或多个形状可以包括使用差异图像生成二值化图像,该二值化图像(i)在差异图像中的对应位置处具有多种颜色之一的每个像素位置处描绘第一颜色,并且(i)在差异图像中的对应位置处不具有多种颜色中的一种颜色的每个剩余像素位置处描绘第二颜色;并且,使用一个或多个第二像素组作为一个或多个形状,一个或多个第二像素组各自包括仅具有第二颜色的连接像素作为相应组的像素,连接像素各自(a)与具有第二颜色的另一像素相邻或(b)通过具有第二颜色的一个或多个像素的路径连接到具有第二颜色的另一像素。确定差异图像可以包括生成表示第一图像和第二图像之间的差异的灰度差异图像。使用差异图像确定多种颜色可以包括使用灰度差异图像确定灰度中的多种颜色。选择可能表示控件的特定形状可以包括从具有围绕事件位置的外边界的一个或多个形状确定第二形状;并且从第二形状中的全部中选择具有最小限定区域的第二形状作为特定形状。选择可能表示控件的特定形状可以包括确定围绕差异图像中的特定形状的边界框;并且使用边界框的位置从第一图像或第二图像创建裁剪图像。
在一些实现中,第一图像和第二图像可以是显示器的屏幕截图。第一图像和第二图像可以仅包括显示器的对应屏幕截图的一部分。该方法可以包括与控件选择事件同时捕获第一屏幕截图;并且在控件选择事件之前或之后捕获第二屏幕截图,第一图像是第一屏幕截图或第二屏幕截图中的一个,第二图像是第一屏幕截图或第二屏幕截图中的另一个。检测控件选择事件可以包括与键盘事件同时地检测主按钮选择、辅助按钮选择、单击触摸板事件、双击触摸板事件或控件选择事件中的一个。在数据库中存储裁剪图像可以包括生成计算机脚本,该计算机脚本定义用于在机器人自动化过程期间执行的另一系统的一个或多个操作,并且对于操作之一包括对裁剪图像的引用以使另一个系统使用计算机视觉标识控件;并存储计算机脚本。该方法可以包括将计算机脚本和控件的裁剪图像提供给另一系统以使另一系统在没有人为干预的情况下自动地执行机器人自动化过程,包括使用裁剪图像对控件的选择。
本说明书中描述的主题可以在各种实施例中实现,并且可以产生以下优点中的一个或多个。在一些实现中,本文档中描述的系统和方法可以增加机器人自动化稳健性。例如当在软件应用的自动化过程中使用的按钮周围的背景内容在记录(例如计算机脚本的创建)和重放(例如计算机脚本的运行时使用)期间,机器人自动化系统可以具有改进的软件应用的稳健性。在一些示例中,当在两个不同设备上执行记录和重放时,机器人自动化系统可以具有改进的软件应用的稳健性。在一些实现中,本文档中描述的系统和方法可以通过使用图像之间的差异(例如屏幕截图)来为机器人自动化过程创建更准确的图标图像,以检测所选图标的位置。例如与差异图像中描绘的其他颜色分离的背景颜色的标识可以改进用于检测所选图标的系统精度。通过存储所选图标的紧密裁剪的描述,与其他系统相比,本文档中描述的系统和方法可以减少存储器存储要求,例如用于将图标图像数据发送到运行时机器人系统的网络带宽要求,或两者。例如机器人训练系统可以通过不在数据库中将图标外部描绘的内容存储在图标的图像中来减少训练过程的存储器需求。机器人系统在运行时期间可能会降低存储器需求,因为较小的图像仅描绘了图标。在一些实现中,机器人系统在运行时期间使用较少量的计算机资源,因为它仅需要将脚本标识的实际图标与在用户界面中包括的图标进行比较,并且不需要尝试将图标附近需要附加分析的任何内容和附加资源进行比较。这也可以改进运行时机器人系统的准确性。在一些实现中,所选图标的紧密裁剪描绘的使用可以使运行时系统能够使用第三方光学字符识别(“OCR”)库;能够实现描述要执行的动作的更健壮、更高质量或两者的运行时脚本的创建;或这些中的两者的组合。例如本文档中描述的方法和系统的使用来创建裁剪图标可以使运行时系统能够使用第三方OCR库,该第三方OCR库不是专门为选择用户界面图标的自动化机器人系统开发的。
在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实现的细节。根据说明书、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1描绘了示例环境,其中机器人训练系统标识用于自动机器人过程的所选用户界面图标。
图2是用于创建用于机器人过程自动化的图标图像的过程的流程图。
图3是可以结合本文档中描述的计算机实现的方法使用的计算系统的框图。
各附图中类似的附图标记和命名指示类似的元件。
具体实施方式
机器人系统可以使用例如执行定义一个或多个操作的脚本来执行对应的过程。该过程可以包括与一个或多个应用的交互,包括应用,应用包括可选择的用户界面图标。当脚本定义用户界面交互的操作时,机器人系统可以使用该脚本以将脚本引用的用户界面图标的图像与由应用生成的用户界面中包括的图标进行比较,机器人系统与其交互以确定选择哪个图标。
鉴于机器人系统依赖于用户界面图标的图像,图像的质量可能影响机器人系统在执行某些过程中的准确性。例如如果图像描绘了错误的图标或与图标相邻的内容,则机器人系统可能难以在用户界面内定位图标、选择图标或两者。例如当图像描绘图标和与图标相邻的菜单的一部分时,机器人系统可能在尝试执行相应的脚本操作时错误地选择与图标相邻的菜单部分,这可能阻止机器人系统执行脚本定义的过程。
为了提高机器人系统的准确性,机器人训练系统使用描绘用户界面的图像之间的差异来检测图标选择。机器人训练系统可以使用差异来确定可能在图标外部发生的“背景”颜色。机器人训练系统可以分析除背景颜色之外的颜色,以检测差异中表示的形状。机器人训练系统选择涵盖鼠标事件位置的检测到的形状,例如鼠标点击位置,作为定义图标的表示的位置。机器人训练系统使用形状的外边缘来定位图像中的中一个的图标的描绘,并使用形状的外边缘创建裁剪图像,该裁剪图像仅包括图标的内容。
“背景”颜色可以是出现在包括图标的按钮区域之外、在围绕图标的按钮区域中、或两者的颜色。例如当按钮包括围绕按钮的图标的灰色区域,并且包括该按钮的用户界面是蓝色和白色时,背景颜色可以包括灰色、蓝色和白色,例如假设这些颜色都不被包括在图标中。围绕图标的按钮区域可以是“按钮背景”,而按钮外部的区域可以是“用户界面背景”。
图1描绘了示例环境100,其中机器人训练系统102例如从一组多个图标中标识所选择的用户界面图标,以用于自动机器人过程。例如机器人训练系统102可以分析在图标选择发生的时间周围捕获的多个图像,例如屏幕截图,并确定图像中的差异以从一组图标中定位所选图标。机器人训练系统102可在创建自动过程时使用所选图标,例如定义机器人系统要执行的操作的脚本。
机器人训练系统102使用基于图标的选择的多个图像之一中的图标外观的改变来检测图标。例如机器人训练系统102使用以下事实:在选择时突出显示图标,或者在选择之后改变外观以指示设置改变,或以其他方式改变外观以检测图标的位置。
机器人训练系统102可以分析图标选择事件周围的多个图像,以标识用户界面窗口和在那些窗口中呈现的图标可以移动的环境中的图像之间的差异。例如围绕图标选择事件在预定时间段内对多个图像的分析可以使机器人训练系统102能够分析可能描绘相同位置中的用户界面窗口的多个图像。这可以使机器人训练系统102能够专注于可能由图标选择事件而不是另一事件引起的图像之间的差异,诸如用户界面窗口的移动或可能出现在显示器上的其他内容,例如被包括在设备116中或被连接到设备116。
机器人训练系统102包括从设备116接收图像数据124的图像接收设备104。设备116可以是生成用户界面的任意适当类型的计算设备。例如设备116可以是个人计算机、移动通信设备或生成用户界面的其他类型的设备。设备116可以包括例如当设备116是智能电话或一体式计算机时的集成显示器、连接到外部显示器或两者时。
设备116生成描绘背景120和多个图标122a-b的用户界面118。用户界面118用于机器人训练系统102正在生成自动化脚本的应用。机器人系统可以使用自动化脚本来执行脚本中定义的操作,以例如在没有用户输入的情况下自动地与应用交互。
当设备116执行呈现用户界面118的应用时,设备116可以接收识别图标122a-b中的一个或多个的选择的输入。输入可以是任意适当类型的输入,诸如鼠标点击事件;鼠标悬停事件,例如在图标中的一个之上;或触摸输入。
当设备116检测到对图标122a-b之一的选择时,设备116执行为所选图标定义的相应动作。例如当所选图标定义用于调整在用户界面118中呈现的图像的操作时,设备116执行定义的调整操作。
响应于图标选择,设备116向机器人训练系统102提供数据。数据可以包括图标选择事件的位置,例如标识鼠标光标的位置或触摸屏事件。数据可以包括图像数据124,其包括在显示器上呈现的用户界面(包括用户界面118)的数据。例如设备116可以向机器人训练系统102提供针对任意适当数量(例如五个)的图像的图像数据124。设备116可以与图标选择事件同时捕获至少一个图像,例如“当前图像”。设备116可以在图标选择事件之前或之后捕获图像中的一些,例如“最近的图像”。
图像数据124可以是包括用于在显示器上描绘的用户界面的内容的任意适当类型的数据。例如图像数据124可以是描绘用户界面118的内容的屏幕截图、包含用户界面118的内容的图像数据和界定用户界面118的任意相邻用户界面、屏幕截图的一部分、或这些中的两种或更多种的组合。当设备116包括多个(例如两个)显示器时,图像数据124可以包括用于显示器中的全部、例如图标选择事件发生在其上的显示器之一、或者显示器的一些其他组合的数据。
在一些实现中,由图像数据124表示的图像不描绘光标。例如当没有图像包括标识所选图标的光标时,机器人训练系统102分析图像以确定所选图标。
设备116可以在任意适当的时间段期间将图像数据124提供给机器人训练系统102。例如设备116可以重复地将图像数据124提供给机器人训练系统102,例如作为具有离散帧的视频流。设备116可以在图标选择事件发生的大约时间段内将图像数据124提供给机器人训练系统102。例如设备116可以在连接到设备116的存储器中存储描绘用户界面118的多个图像。当设备116检测到图标选择事件时,设备116可以从存储器中取回在图标选择事件的预定时间内捕获的图像的数据。设备116可以取回在图标选择事件之前、图标选择事件之后或两者捕获的图像。预定时间可以是一秒或另一适当时间。
图像接收设备104可以是能够捕获或接收图像数据124的任意适当类型的设备。在机器人训练系统102包括设备116的实现中,图像接收设备104可以在设备116上实现。例如图像接收设备104可以是安装在捕获图像数据124的设备116上的计算机程序(例如操作系统)的一部分。
图像差异生成器106从图像接收设备104接收图像124a-d,例如图像数据124。设备116可以在图标选择事件之前捕获第一图像124a和第二图像124b。例如第一图像124a和第二图像124b可以描绘第一图标122a和第二图标122b两者处于未选择状态。设备116可以在图标选择事件期间,例如当鼠标悬停在第一图标122a之上或选择第一图标122a时或者稍微在开始这样的事件之后,捕获第三图像124c。第三图像124c包括表示第一图标122a的选择的第一图标122a的改变的描绘。例如当用户界面118接收指示第一图标122a的选择的输入时,用户界面118(例如生成用户界面118的应用)可以引起第一图标122a的呈现的改变。设备116可以在图标选择事件之后捕获第四图像124d。在该示例中,第四图像124d描绘了第二图标122b的轻微改变。该改变可能是由以下各项引起的:在第二图标122b上发生的鼠标悬停事件;由第一图标122的选择导致设置改变,其导致第二图标的外观改变;或由另一计算机事件。
尽管该示例描述了四个图像,但是图像差异生成器106可以接收和分析任意适当数量的图像的数据。设备116应捕获并向图像接收设备104提供在图标选择事件发生的时间段期间捕获的至少一个图像。例如设备116可以在图标选择事件之前和之后包括更多或更少的图像,但是应该包括在图标选择事件期间捕获的第三图像124c。
图像差异生成器106分析图像124a-d以确定图像124a-d中的一些之间的差异。图像差异生成器106可以使用任意适当的方法来确定图像之间的差异。例如图像差异生成器106可以将一个图像(例如在图标选择事件期间捕获的第三图像124c)与其他图像中的每一个进行比较。图像差异生成器106可以执行逐像素比较、像素块比较或其他类型的比较。在一些示例中,图像差异生成器106可以从另一图像的值中减去一个图像的值,以确定两个图像之间的差异。
图像差异生成器106使用图像124a-d中的一些之间的差异来选择最不同的两个图像。例如图像差异生成器106可以选择在图标选择事件期间捕获的图像,例如第三图像124c,以及与该图像最不同的另一图像。图像差异生成器106可能不关心图像之间的差异类型,而是关注差异的数量、差异的大小、例如不同的像素的数量、或两者。
在一些示例中,图像差异生成器106可以使用基于包括在下面的表1中的伪代码的过程。在表1中,currentImage是与图像捕获事件同时,例如在图像捕获事件期间所捕获的图像,例如第三图像124c。recentImageList标识图像差异生成器106分析的其他图像,例如图像124a-b和124d。recentImageList可以包括指向相应图像的指针,或者相应图像的数据。在一些实现中,recentImageList不包括currentImage。在一些实现中,recentImageList包括currentImage。
直方图函数可以是currentImage和来自recentImageList的图像之间的图像之间的逐像素代数差分运算。例如直方图函数可以确定在两个输入图像之间的差异中最频繁出现哪种颜色。在一些示例中,直方图函数可以确定除黑色之外的最频繁的颜色,例如其表示两个图像之间没有差异。这种频繁的颜色可以是按钮背景,例如因为只有图标周围的按钮区域的颜色应该在currentImage和来自recentImageList的图像之间改变。然后,和函数可以通过对该颜色的图像像素求和来确定差异图像中具有该频繁颜色的像素的数量。
Figure BDA0002168404030000111
图像差异生成器106创建指示图像124a-d中的两个之间的差异的差异图像126。例如图像差异生成器106确定来自图像124a-d的两个图像,其中两个图像之间存在最大的改变。图像差异生成器106可以确定两个图像,其包括在图标选择事件期间捕获的图像作为两个图像之一,例如第三图像124c。在一些示例中,当图像差异生成器106从另一个图像中减去一个图像的值时,图像差异生成器106可以使用所得到的值作为差异图像126的值。例如图像差异生成器106可以使用在图标选择事件期间捕获的图像与最不同于该图像的另一图像之间的绝对差异来生成差异图像126。
图像差异生成器106可以在选择最不同的两个图像之前或之后创建差异图像。例如图像差异生成器106可以创建多个差异图像,然后使用表1中的伪代码来选择差异图像之一,例如以选择最佳差异图像。在一些示例中,图像差异生成器106可以选择最不同的两个图像,并且然后使用两个所选图像创建差异图像。
在一些实现中,图像差异生成器106可以在差异图像126的创建期间使用颜色分析设备108。例如颜色分析设备108可以在图像124a-d中的一些中或在图像124a-d中的全部中确定在相应图像中具有出现至少阈值量的颜色的图像124a-d中的一些中描绘的像素的数量。图像差异生成器106可以使用具有至少出现阈值量的颜色的像素的数量来选择另一图像以与在创建差异图像126时在图标选择事件期间捕获的图像一起使用。如上表1中所示如图像所示,图像差异生成器106可以使用来自图像124a-d的具有最大量的像素的图像,其具有出现至少阈值量的颜色,以生成差异图像。在一些示例中,图像差异生成器106可以执行该分析。
颜色分析设备108从图像差异生成器106接收差异图像126,并分析差异图像126以确定差异图像126中描绘的一种或多种颜色以及这些颜色的出现量。例如颜色分析设备108可以确定图标被选择的事件位置128,例如当图标被选择时鼠标指针的位置或触摸屏事件。颜色分析设备108可以确定差异图像126中与事件位置128相交的行130和列132。行130、列132或两者可以具有跨越对应长度的一个像素的维度或者跨越对应长度的多个像素的维度。
颜色分析设备108可以使用任意适当的轮廓来确定差异图像中描绘的一种或多种颜色。颜色分析设备108可以使用圆形、三角形或矩形(例如正方形)作为轮廓。轮廓可以以事件位置128为中心。
颜色分析设备108使用事件位置128从差异图像126确定一种或多种颜色。例如颜色分析设备108确定在行130和列132中出现的颜色。颜色分析设备108可以确定每个确定的颜色出现在行130、列132或两者中的次数。颜色分析设备108可以确定在行130、列132或两者中出现的颜色超过阈值量。颜色分析设备108可仅分析在行130和列132中描绘的颜色以减少差异图像126的必要处理量,例如使得颜色分析设备108不必分析整个差异图像126。
颜色分析设备108可以执行差异图像126的该处理,以确定差异图像126中不太可能是所选图标的一部分的像素。例如差异图像126可以具有围绕图标122a-b的大像素部分,每个像素部分具有单色,因为在用于创建差异图像126的两个图像中这些部分中描绘的内容是相同的。当在两个图像的相同位置中描绘的内容相同时,差异图像126可能具有表示该内容的单个颜色,例如,在两个图像的那些部分之间给出零差异的黑色。在一些实现中,在用户界面的部分或图像124a-d的其他部分中的两个图像之间可能存在颜色改变,其不描绘图标。假设所选图标的尺寸通常较小,则颜色分析设备108可调整在差异图像126中频繁出现的颜色以考虑这些颜色改变并使机器人训练系统102能够更容易地标识在差异图像126中描绘的形状。颜色分析设备108可以通过使用图标122a-b的尺寸或预测尺寸来确定阈值量来执行该调整。
颜色分析设备108可以基于图标122a-b的大小来选择阈值量。例如颜色分析设备108可以选择预定阈值量。颜色分析设备108可以预测可能的图标尺寸,利用该尺寸确定阈值量,使得用于描绘差异图像126中的第一图标122a的至少一些颜色或所有颜色具有较低的确定可能性。
机器人训练系统102可以使用任意适当类型的色标。例如当机器人训练系统102使用8位彩色图形时,颜色分析设备108可以使用256个入口阵列来识别哪些颜色出现的次数大于阈值量。阵列中的每个条目可以表示相应的颜色是否出现至少阈值量。例如第一条目可以指示颜色的出现量;出现数量是否满足阈值量,例如大于或等于或者大于或者等于阈值量;或两者。
在一些实现中,颜色分析设备108可以使用基于下面的表2中包括的伪代码的过程来确定颜色。在表2中,阵列包括基于8位色标的256个位置。颜色分析设备108可以使用任意适当的色标、阵列尺寸或两者。在表2中,diffImage是差异图像126,并且eventLocation是图标选择事件发生的事件位置128,例如鼠标点击位置。颜色分析设备108可以通过确定columnHistogram和rowHistogram的乘积来确定在行130和列132两者中出现的颜色。在一些示例中,颜色分析设备108可以对productHistogram进行归一化以指示对应的值是否满足阈值量,例如值“1”指示对应颜色的量满足阈值量,并且值“0“指示对应颜色的量不满足阈值量。
Figure BDA0002168404030000141
二值化图像生成器110从颜色分析设备108接收标识所确定的颜色的数据。二值化图像生成器110使用所确定的颜色来检测差异图像126中描绘的形状。例如二值化图像生成器110可以从差异图像126中移除所确定的颜色以创建二值化图像134。当创建二值化图像134时,二值化图像生成器110可以将差异图像126中的所确定的颜色中的任意一个改变为值“1”并且将差异图像中的任意其他颜色改变为值“0”。与包括可以以色标(例如8位灰度色标)的任意颜色的差异图像相反,二值化图像134仅包括黑色和白色像素。该转换可以使机器人训练系统能够更好地识别标识表示差异图像126中描绘的形状的像素簇。可以由二值化图像生成器110执行的过程的伪代码的示例被包括在下面的表3中。
Figure BDA0002168404030000142
Figure BDA0002168404030000151
在一些示例中,二值化图像生成器110可以裁剪差异图像的大小以移除差异图像126的仅包括预定颜色的区域。例如二值化图像生成器110可以确定差异图像126包括仅描绘一些确定的颜色的上半部分。二值化图像生成器110可以在创建二值化图像134时移除差异图像126的上半部分。差异图像126或差异图像126的裁剪版本可以具有200像素乘200像素的大小。在一些示例中,机器人训练系统102的另一个组件可以裁剪差异图像126或者创建差异图像126的较小版本。
图标选择器112从二值化图像生成器110接收二值化图像134。图标选择器112分析二值化图像134以选择围绕事件位置128的形状。例如图标选择器112可以确定二值化图像134包括四个对象:两个山的第一黑色轮廓、围绕两个山的第一白色区域、包括三个连接的框的第二黑色形状、以及围绕第二黑色形状的第二白色区域。图标选择器112可以分析四个形状中的一个或多个以确定哪些形状围绕事件位置128。图标选择器112可以确定第二黑色形状和第二白色区域不围绕事件位置128。图标选择器112可以确定第一白色区域完全包围事件位置128,例如因为第一白色区域在所有侧面上界定事件位置128。在一些示例中,图标选择器112可以确定由例如边界框的第一黑色轮廓定义的空间围绕事件位置128,因为由第一黑色轮廓定义的空间的下部延伸到事件位置128下方,并且第一黑色轮廓在其他三个边上界定事件位置128。根据实现,图标选择器112可以确定第一黑色轮廓或第一白色区域包围事件位置并选择相应的形状。
下面的表4描绘了可以由图标选择器112执行的过程的示例伪代码。在表4中,ConnectedComponent是由连接的像素集合定义的形状。ccList是ConnectedComponents的列表,例如阵列。表4中描述的过程返回bestCc(最佳ConnectedComponent),其中包围ConnectedComponent的边界框包括事件位置128。在表4中,该处理选择具有最高像素数的ConnectedComponent,例如第一个上面描述的白色区域。在一些示例中,过程可以选择具有最少像素数的ConnectedComponent。该过程可以从ConnectedComponents列表中排除围绕图标122a-b的背景部分,例如大于阈值大小。
Figure BDA0002168404030000161
图标选择器112确定围绕所选形状的边界框。图标选择器112使用边界框的位置从图像124a-d之一中提取图像内容136。提取的图像内容136描绘了所选择的第一图标122a的至少一部分。
图标选择器112可以从除了描绘改变的第一图标122a的第三图像124c之外的图像124a-d之一提取图像内容136。例如图标选择器112可以从用于生成差异图像126的另一图像中提取图像内容136,例如从第四图像124d提取图像内容136,使得提取的图像内容136不包括第一图标122a的改变的外观,其在图标选择事件期间捕获的第三图像124c中被描绘。
图标选择器112可以将提取的图像内容136存储在图像数据库114中。例如图标选择器112将表示所提取的图像内容136的数据提供给图像数据库114。
机器人训练系统102可以使用所提取的图像内容136来创建自动化脚本以使机器人系统能够与用户界面118交互。例如机器人训练系统102可以使用如2016年4月8日提交的美国申请No.15/094,063中所描述的过程,其于2017年1月31日被发布为美国专利No.9,555,544,其内容通过引用结合到本文中。自动化脚本可以定义机器人系统执行以完成任务的一个或多个操作。操作可以引用提取的图像内容136以使机器人系统能够确定在用户界面118中描绘的图标,以选择作为任务的一部分。自动化脚本可以包括对图像数据库114中存储所提取的图像内容136的位置的引用。自动化脚本可以包括提取的图像内容136的副本。自动化脚本可以定义机器人系统在无需人为干预的情况下自动地执行的操作。
机器人训练系统102可以使用任意适当的色标来生成差异图像、二值化图像或两者。例如机器人训练系统102可以以灰度、8位颜色或者使用另一种适当的色标来生成差异图像。机器人训练系统102可以使用两种预定颜色,例如黑色和白色或红色和蓝色,生成二值化图像。在一些示例中,机器人训练系统102可以生成包括多于两种颜色的二值化图像。例如机器人训练系统102可以使用多个不同的阈值来生成具有三种颜色的二值化图像。具有满足第一阈值的差异图像颜色的第一像素可以是第一颜色,具有满足第二阈值的差异图像颜色的第二像素可以是第二颜色,以及例如满足两个阈值、或者是在两个阈值之间、或者不满足任一阈值的任意剩余像素可以是与第一颜色和第二颜色不同的第三颜色。
在一些实现中,机器人训练系统102,例如图像差异生成器106,分析多于两个图像,例如三个图像124a-c、四个图像124a-d或更多图像。机器人训练系统102可以分析在图标选择事件发生的一段时间期间捕获的多个图像。例如设备116可以在检测到图标选择事件的开始(例如鼠标点击)时开始捕获多个图像。设备116可以在处理图标选择事件并且响应于图标选择事件执行操作时,例如在图标选择事件期间时,继续捕获图像。例如当图标选择事件是应用的执行时,设备116可以在接收到指示应用的图标的选择的输入时开始捕获图像直到应用的窗口启动。这可以使机器人训练系统102能够在图标选择事件开始时不立即发生图标外观的改变时分析多个图像,而不是开始稍后时。
机器人训练系统102可以针对每个图标选择事件分析预定数量的图像。例如机器人训练系统102可以针对每个图标选择事件分析四个图像。
在一些实现中,机器人训练系统102分析图标选择事件的动态数量的图像。例如机器人训练系统102可以基于图标选择事件的长度、图标选择事件的类型或两者来动态地确定图标选择事件的图像的数量。机器人训练系统102可以分析比鼠标输入事件更多的图像用于触摸输入事件,例如因为触摸输入通常可以具有比鼠标输入更长的持续时间。
机器人训练系统102可以分析在任意适当的时间段间隔捕获的图像。一些图像124a-d可以在后续图像的捕获之间具有相同的时间距离,例如200毫秒。图像124a-d中的一些可以在后续图像的捕获之间具有改变的时间距离,例如第一图像和第二图像之间具有100毫秒,并且在第二图像和第三图像之间具有200毫秒。
在一些实现中,机器人训练系统102可以在确定组中最不同的两个图像时、在创建差异图像126时或两者时,将一组图像中的每个图像与该组中的其他图像进行比较。例如机器人训练系统102(例如图像差异生成器106)可以将第一图像124a与第二、第三和第四图像124b-d中的每一个进行比较,将第二图像124b与第三和第四图像124c-d中的每一个进行比较,并将第三图像124c与第四图像124d进行比较。机器人训练系统102(例如图像差异生成器106)可以使用比较的结果来确定最不同的两个图像,以生成差异图像126或两者。
机器人训练系统102可包括若干不同的功能组件,包括图像接收装置104、图像差异生成器106、颜色分析设备108、二值化图像生成器110、图标选择器112和图像数据库114。机器人训练系统102的各种功能组件可以作为单独的功能组件或作为相同功能组件的不同模块安装在一个或多个计算机上。例如可以实现图像接收设备104、图像差异生成器106、颜色分析设备108、二值化图像生成器110、图标选择器112、图像数据库114或这些中的两个或更多个的任意组合,作为安装在一个或多个位置中的一个或多个计算机上的计算机程序,这些一个或多个计算机通过网络彼此耦合。例如在基于云的系统中,这些组件可以由分布式计算系统的单独计算节点实现。
图2是用于为机器人过程自动化创建图标图像的过程200的流程图。例如过程200可以由机器人训练系统或该系统的各种组件从环境100使用。
机器人训练系统检测选择在计算机的显示器上描绘的图标的图标选择事件(202)。图标选择事件可以是任意适当类型的事件,诸如选择图标的鼠标点击、选择图标的触摸输入或另一输入。
在机器人训练系统在与呈现图标的应用相同的硬件上执行的实现中,例如在计算机上,机器人训练系统可以从输入设备接收输入,例如鼠标或触摸屏幕。在机器人训练系统在不同硬件上执行的实现中,机器人训练系统可以从计算机接收用于图标选择事件的数据。用于图标选择事件的数据可以是输入事件位置和图像数据,例如多个屏幕截图。
输入事件位置可以是任意适当类型的用户界面坐标。例如输入事件位置可以指示接收输入的一个或多个像素。当输入是触摸屏输入时,输入事件可以用于多个像素。输入事件可以是相对于特定显示器定义的位置,例如当计算机连接到多个显示器时。
机器人训练系统从存储器取回第一图像和第二图像(204)。例如机器人训练系统从计算机接收多个图像并将图像存储在存储器中。机器人训练系统可以从存储器取回第一图像和第二图像的数据。第一图像和第二图像以及多个图像中的每一个可以具有相同的尺寸。例如多个图像中的每个可具有由显示器定义的尺寸。
机器人训练系统确定表示第一图像和第二图像之间的差异的差异图像(206)。不同的图像可以是灰度图像。机器人训练系统可以使用第一图像和第二图像中的相应像素位置处的颜色之间的差异的绝对值来确定不同的图像。
在一些实现中,机器人训练系统可以丢弃具有满足阈值差值的差值的差异图像。例如机器人训练系统可以确定表示用于创建差异图像的两个图像之间的差异量的差值。机器人训练系统可以使用以下各项来计算差值:两个图像之间不同的像素数;两个图像之间的颜色改变,例如位置处的像素改变颜色的程度;差异的另一种表示;或者这些中的两种或多种的组合。机器人训练系统可以丢弃具有差值大于或等于、或者大于、或者等于阈值差值的差异图像。该过程可以使机器人训练系统能够丢弃在计算机的显示器上呈现的窗口或窗口位置发生改变的差异图像。
机器人训练系统确定在差异图像中包括的像素的多种颜色,该像素可能位于图标的图标位置之外(208)。例如机器人训练系统在图标的图标位置之外的位置处确定具有至少阈值可能性的颜色,其是第一图像、第二图像或两者中描绘的颜色。机器人训练系统可以基于图标选择事件位置,例如鼠标或触摸屏输入的位置,预测图标位置。机器人训练系统可以基于图标的预测大小、图像的大小或两者来确定阈值可能性,例如颜色的出现的阈值量。
机器人训练系统确定差异图像中描绘的一个或多个形状(210)。例如机器人训练系统确定具有颜色的、直接或间接连接到具有相同颜色的其他像素的像素。机器人训练系统可以使用连接到具有相同颜色的其他像素的每组像素作为形状。在一些示例中,机器人训练系统可以对差异图像进行归一化,例如创建二值化图像,以确定差异图像中描绘的形状。
机器人训练系统选择可能表示图标的特定形状(212)。例如机器人训练系统可以为确定的形状中的每一个生成边界框。边界框可以涵盖相应的形状,同时包括尽可能少的像素,例如边界框可以包括相应形状的最外边缘上的像素。机器人训练系统可以选择具有包括图标选择事件位置的边界框的形状作为特定形状。
机器人训练系统可以选择具有包括图标选择事件位置的最大或最小边界框的特定形状。例如机器人训练系统可以选择可能包括来自所选图标的更多内容的大型形状,而不包括所选图标之外的内容。
在一些实现中,机器人训练系统可以丢弃具有满足阈值大小(例如大于或等于、或者大于、或者小于阈值大小)的大小的特定形状的数据。例如机器人训练系统可以丢弃尺寸大于可能的图标尺寸的形状的数据,例如取决于屏幕时间的屏幕尺寸的四分之一或一半。与例如台式机或膝上型计算机的具有通常较大屏幕的计算机相比,诸如智能电话的移动设备的可能图标大小可能不同。
机器人训练系统在数据库中存储使用特定形状从两个或更多个图像中的一个提取的图标的裁剪图像(214)。例如机器人训练系统使用特定形状的边界框来创建图标的裁剪图像。机器人训练系统可以使用边界框的位置来从两个或更多个图像中的一个提取像素。机器人训练系统可以使用提取的像素作为裁剪图像。
机器人训练系统可以将裁剪的图像存储在包括用于其他图标的其他图像数据的数据库中。例如数据库可以包括多个条目,其标识用于机器人自动化过程中的各种图标的图像数据。
数据库或另一数据库可包括定义机器人自动化过程的操作的计算机自动化脚本。脚本中的每一个可以引用,例如包括或标识指向数据库中的图像数据的指针。机器人系统可以例如在没有人类输入的接收的情况下使用计算机自动化脚本和引用的图像数据来执行自动化过程。
机器人训练系统生成计算机脚本,该计算机脚本包括对裁剪图像的引用(216)。例如机器人训练系统可以执行步骤202至214,以用于正被自动化的过程中的步骤。机器人训练系统可以针对正被自动化的过程中的多个步骤中的每个步骤执行步骤202至214。计算机脚本可以为正被自动化的过程中的每个步骤定义计算机操作,包括对表示步骤中的某一些的相应图标的裁剪图像的引用。例如计算机脚本可以包括对机器人系统将需要在应用中选择图标的步骤的相应图标的引用。当机器人系统执行计算机脚本并到达引用图标的步骤时,机器人系统可以将当前用户界面与所引用图标的裁剪图像进行比较。例如通过在当前用户界面的图像中搜索对所引用的图标的描绘,机器人系统可以使用机器视觉来检测当前用户界面中描绘所引用图标的位置。机器人系统可以使用任意适当的方法来检测当前用户界面的图像中的引用图标的描绘。
机器人训练系统可以将计算机脚本存储在数据库或另一数据库中。例如机器人训练系统可以将计算机脚本存储在数据库中,该数据库包括用于多个计算机脚本中的每一个的条目。多个计算机脚本可以用于不同的过程。例如当单个过程包括多个步骤、访问多个应用或两者时,多个计算机脚本中的一些可以用于相同的过程。
机器人训练系统将计算机脚本和图标的裁剪图像提供给另一系统(218)。例如机器人训练系统可以将计算机脚本和裁剪的图标图像提供给用于执行计算机脚本的机器人系统,以执行自动化过程。机器人系统可以例如在没有用户输入的接收的情况下自动地执行计算机脚本。
上述处理200中的步骤顺序仅是示意性的,并且可以以不同顺序执行用于机器人过程自动化的创建图标图像。例如机器人训练系统可以与检测图标选择事件并将裁剪的图像存储在数据库中同时生成计算机脚本。
在一些实现中,过程200可以包括附加步骤、更少步骤,或者步骤中的一些可以分成多个步骤。例如过程200可以包括步骤204至214,而不包括其他步骤。在一些示例中,机器人训练系统可以针对正被自动化的过程中的多个步骤执行步骤202至214。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件中实现,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即,在有形非暂时性程序载体上编码的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。替代地或另外地,程序指令可以在人工生成的传播信号上编码,例如机器生成的电、光或电磁信号,其被生成以编码信息以便传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
术语“数据处理装置”指的是数据处理硬件并且涵盖用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、或者他们中的一个或多个的组合的代码。
计算机程序也可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码,可以用任意形式的编程语言编写,包括编译或者解释性语言、或声明性或处理性语言,并且其可以以任意形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本,专用于所讨论的程序的单个文件中,或者存储在多个协调文件中,例如存储一个或多个模块、子程序或代码部分的文件。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于执行计算机程序的计算机包括,例如通用或专用微处理器或两者,或任意其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传递到一个或多个大容量存储设备以用于存储数据,或者两者,例如磁盘、磁光盘或光盘。但是,计算机不需要这样的设备。此外,计算机可以嵌入在另一个设备中,例如移动电话、智能电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器、或者便携式存储设备,例如通用串行总线(USB)闪存驱动器,仅举几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移除磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如LCD(液晶显示器)、OLED(有机发光二极管)或其他监视器)和键盘以及指示设备(例如鼠标或轨迹球)的计算机上实现,用户可以通过其向计算机提供输入。其他类型的设备也可用于提供与用户的交互;例如提供给用户的反馈可以是任意形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收以任意形式来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如通过响应于从网页浏览器接收的请求将网页发送到用户设备上的网页浏览器。
本说明书中描述的主题的实施例可以在计算系统中实现,计算系统包括后端组件例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面或网页浏览器的客户端计算机,用户可通过其与本说明书中描述的主题的实现进行交互,或者一个或多个这样的后端、中间件或前端组件的任意组合。系统的组件可以通过数字数据通信的任意形式或介质的互连,例如通信网络。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将例如超文本标记语言(HTML)页面的数据发送到用户设备,例如用于向与用户设备交互的用户显示数据并从与用户设备交互的用户接收用户输入的目的,其充当客户端。可以从服务器处的用户设备接收在用户设备处生成的数据,例如用户交互的结果。
图3中示出了一种这样类型的计算机的示例,其示出了通用计算机系统300的示意图。根据一个实现,系统300可以用于与先前描述的任何计算机实现的方法相关联地描述的操作。系统300包括处理器310、存储器320、存储设备330和输入/输出设备340。组件310、320、330和340中的每一个使用系统总线350互连。处理器310能够处理指令用于在系统300内执行。在一个实现中,处理器310是单线程处理器。在另一实现中,处理器310是多线程处理器。处理器310能够处理存储在存储器320中或存储设备330上的指令,以在输入/输出设备340上显示用户界面的图形信息。
存储器320存储系统300内的信息。在一个实现中,存储器320是计算机可读介质。在一个实现中,存储器320是易失性存储器单元。在另一实现中,存储器320是非易失性存储器单元。
存储设备330能够为系统300提供大容量存储。在一个实现中,存储设备330是计算机可读介质。在各种不同的实现中,存储设备330可以是软盘设备、硬盘设备、光盘设备或磁带设备。
输入/输出设备340为系统300提供输入/输出操作。在一个实现中,输入/输出设备340包括键盘和/或指示设备。在另一实现中,输入/输出设备340包括用于显示图形用户界面的显示单元。
虽然本说明书包含许多具体实现细节,但这些不应被解释为对可要求保护的范围的限制,而是作为特定于特定实施例的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任意合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此声明,但是在某些情况下可以从组合中切除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或按有序顺序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。
已经描述了本主题的特定实施例。其他实施例在以下权利要求的范围内。例如权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。

Claims (23)

1.一种用于处理图像的系统,包括一个或多个计算机和一个或多个存储设备,在所述存储设备上存储指令,所述指令在由所述一个或多个计算机执行时,可操作以使所述一个或多个计算机执行操作,所述操作包括:
在机器人训练过程期间检测控件选择事件,所述控件选择事件标识对计算机的显示器上描绘的控件的选择;
从存储器中取回第一图像和第二图像,所述第一图像和所述第二图像中的每个图像i)描绘所述显示器的一部分并且ii)在从所述控件选择事件发生的时间的阈值时间段内被捕获;
确定表示所述第一图像和所述第二图像之间的差异的差异图像;
响应于确定表示所述第一图像和所述第二图像之间的差异的所述差异图像,使用所述差异图像和所述控件选择事件的事件位置,确定所述差异图像中包括的像素的多种颜色,所述像素可能位于所述控件的控件位置之外;
响应于确定所述多种颜色,使用所述差异图像确定所述差异图像中描绘的一个或多个形状,所述一个或多个形状各自具有除了所述差异图像中包括的像素的所述多种颜色中的全部颜色之外的颜色,所述像素可能位于所述控件位置之外;
响应于确定所述一个或多个形状,从所述一个或多个形状并使用所述事件位置选择可能表示所述控件的特定形状;以及
在数据库中存储使用所述特定形状从两个或更多个图像之一提取的所述控件的裁剪图像。
2.根据权利要求1所述的系统,其中:
从所述存储器中取回所述第一图像和所述第二图像包括:从所述存储器中取回三个或更多个图像,所述三个或更多个图像各自i)描绘所述显示器的所述一部分并且ii)在从所述控件选择事件发生的时间的所述阈值时间段内被捕获时,所述三个或更多个图像包括所述第一图像和包括所述第二图像的两个或更多个第二图像;以及
确定表示所述第一图像和所述第二图像之间的差异的所述差异图像包括:
对于所述两个或更多个第二图像中的每一个第二图像,生成表示相应的所述第二图像和所述第一图像之间的差异的相应差异图像;以及
从所述两个或更多个差异图像中选择表示所述第一图像和所述两个或更多个第二图像之间的最大改变的所述图像作为所述差异图像。
3.根据权利要求2所述的系统,其中从所述存储器中取回所述三个或更多个图像包括:
从多个图像中确定在所述控件选择事件发生的时间一秒内被各自捕获的所述三个或更多个图像;以及
响应于确定在所述控件选择事件发生的所述时间的一秒内被各自捕获的所述三个或更多个图像,从所述存储器中取回所确定的所述三个或更多个图像。
4.根据权利要求2所述的系统,其中从所述存储器中取回所述三个或更多个图像包括:选择所述三个或更多个图像,所述三个或更多个图像各自在所述显示器上围绕所述事件位置描绘内容。
5.根据权利要求2所述的系统,其中从所述两个或更多个差异图像中选择表示所述第一图像和所述两个或更多个第二图像之间的最大改变的图像作为所述差异图像包括:从所述两个或更多个差异图像中选择具有表示来自所述第一图像和来自所述两个或更多个第二图像的相应的所述第二图像的对应像素中的差异的最大像素数量的所述图像作为所述差异图像。
6.根据权利要求1所述的系统,其中使用所述差异图像和所述控件选择事件的所述事件位置,确定所述差异图像中包括的可能位于所述控件的控件位置之外的像素的所述多种颜色包括:使用像素列和像素行中描绘的颜色来确定所述多种颜色,所述像素列和像素行各自a)包括来自所述差异图像的像素,并且b)与所述事件位置相交。
7.根据权利要求6所述的系统,其中使用所述像素列和所述像素行中描绘的所述颜色来确定所述多种颜色包括:选择(a)在所述像素列和所述像素行两者中出现的和(b)发生超过阈值次数的颜色作为所述多种颜色。
8.根据权利要求1所述的系统,其中使用所述差异图像和所述控件选择事件的所述事件位置,确定所述差异图像中包括的可能位于所述控件的控件位置之外的像素的所述多种颜色包括:
确定以所述事件位置为中心的所述差异图像中的轮廓;以及
将在所述轮廓的外边缘中包括的多个像素中的每个像素的颜色确定为所述多种颜色。
9.根据权利要求8所述的系统,其中所述轮廓包括圆形、三角形或矩形。
10.根据权利要求1所述的系统,其中确定表示当前图像与另一图像之间的所述差异的所述差异图像包括:确定仅描绘显示器的一部分的所述差异图像。
11.根据权利要求10所述的系统,其中确定仅描绘所述显示器的所述一部分的所述差异图像包括:确定具有200像素乘200像素的大小的所述差异图像。
12.根据权利要求1所述的系统,其中确定所述一个或多个形状包括:
使用所述差异图像来生成二值化图像,所述二值化图像(i)在所述差异图像中的对应位置处具有所述多种颜色中的颜色的每个像素位置处描绘第一颜色,以及(i)在所述差异图像中的对应位置处不具有所述多种颜色中的颜色的每个剩余像素位置处描绘第二颜色;以及
使用一个或多个第二像素组作为所述一个或多个形状,所述一个或多个第二像素组各自包括仅具有所述第二颜色的连接像素作为相应的所述组的像素,所述连接像素各自(a)与具有所述第二颜色的另一像素相邻或(b)通过具有所述第二颜色的一个或多个像素的路径连接到具有所述第二颜色的另一像素。
13.根据权利要求1所述的系统,其中:
确定所述差异图像包括:生成表示所述第一图像和所述第二图像之间的差异的灰度差异图像;以及
使用所述差异图像确定所述多种颜色包括:使用所述灰度差异图像确定灰度中的所述多种颜色。
14.根据权利要求1所述的系统,其中选择可能表示所述控件的所述特定形状包括:
从具有围绕所述事件位置的外边界的所述一个或多个形状确定第二形状;以及
选择具有来自所述第二形状中的全部第二形状的最小限定区域的所述第二形状作为所述特定形状。
15.根据权利要求1所述的系统,其中选择可能表示所述控件的所述特定形状包括:
确定围绕所述差异图像中的所述特定形状的边界框;以及
使用所述边界框的位置从所述第一图像或所述第二图像创建所述裁剪图像。
16.根据权利要求1所述的系统,其中所述第一图像和所述第二图像是所述显示器的屏幕截图。
17.根据权利要求16所述的系统,其中所述第一图像和所述第二图像仅包括所述显示器的对应的所述屏幕截图的一部分。
18.根据权利要求16所述的系统,所述操作包括:
与所述控件选择事件同时捕获第一屏幕截图;以及
在所述控件选择事件之前或之后捕获第二屏幕截图,所述第一图像是所述第一屏幕截图或所述第二屏幕截图中的一个,并且所述第二图像是所述第一屏幕截图或所述第二屏幕截图中的另一个。
19.根据权利要求1所述的系统,其中检测所述控件选择事件包括:在键盘事件的同时检测主按钮选择、辅助按钮选择、单击触摸板事件、双击触摸板事件、或控件选择事件之一。
20.根据权利要求1所述的系统,其中在所述数据库中存储所述裁剪图像包括:
生成计算机脚本,所述计算机脚本定义用于在机器人自动化过程期间另一系统执行的一个或多个操作,并且对于所述操作中的操作包括对所述裁剪图像的引用,以使得所述另一系统能够使用计算机视觉来标识所述控件;以及
存储所述计算机脚本。
21.根据权利要求20所述的系统,所述操作包括:
将所述计算机脚本和所述控件的所述裁剪图像提供给所述另一系统,以使得所述另一系统在没有人为干预的情况下自动执行所述机器人自动过程,包括使用所述裁剪图像对所述控件的选择。
22.一种非暂态计算机存储介质,被编码有指令,所述指令当由一个或多个计算机执行时,使得所述一个或多个计算机执行操作,所述操作包括:
在机器人训练过程期间检测控件选择事件,所述控件选择事件标识对计算机的显示器上描绘的控件的选择;
从存储器中取回第一图像和第二图像,所述第一图像和所述第二图像各自i)描绘所述显示器的一部分并且ii)在从所述控件选择事件发生的时间的阈值时间段内被捕获;
确定表示所述第一图像和所述第二图像之间的差异的差异图像;
响应于确定表示所述第一图像和所述第二图像之间的差异的所述差异图像,使用所述差异图像和所述控件选择事件的事件位置,确定所述差异图像中包括的像素的多种颜色,所述像素可能位于所述控件的控件位置之外;
响应于确定所述多种颜色,使用所述差异图像确定所述差异图像中描绘的一个或多个形状,所述一个或多个形状各自具有除了所述差异图像中包括的像素的所述多种颜色中的全部颜色之外的颜色,所述像素可能位于所述控件位置之外;
响应于确定所述一个或多个形状,从所述一个或多个形状中并使用所述事件位置选择可能表示所述控件的特定形状;以及
在数据库中存储使用所述特定形状从所述两个或更多个图像之一提取的所述控件的裁剪图像。
23.一种计算机实现的方法,包括:
在机器人训练过程期间检测控件选择事件,所述控件选择事件标识对计算机的显示器上描绘的控件的选择;
从存储器中取回第一图像和第二图像,所述第一图像和所述第二图像各自i)描绘所述显示器的一部分并且ii)在从所述控件选择事件发生的时间的阈值时间段内被捕获;
确定表示所述第一图像和所述第二图像之间的差异的差异图像;
响应于确定表示所述第一图像和所述第二图像之间的差异的所述差异图像,使用所述差异图像和所述控件选择事件的事件位置,确定所述差异图像中包括的像素的多种颜色,所述像素可能位于所述控件的控件位置之外;
响应于确定所述多种颜色,使用所述差异图像确定所述差异图像中描绘的一个或多个形状,所述一个或多个形状各自具有除了所述差异图像中包括的像素的所述多种颜色中的全部颜色之外的颜色,所述像素可能位于所述控件位置之外;
响应于确定所述一个或多个形状,从所述一个或多个形状中并使用所述事件位置选择可能表示所述控件的特定形状;以及
在数据库中存储使用所述特定形状从两个或更多个图像之一提取的所述控件的裁剪图像。
CN201910754825.5A 2018-08-17 2019-08-15 机器人过程自动化 Active CN110837403B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/998,853 US10878531B2 (en) 2018-08-17 2018-08-17 Robotic process automation
US15/998,853 2018-08-17

Publications (2)

Publication Number Publication Date
CN110837403A CN110837403A (zh) 2020-02-25
CN110837403B true CN110837403B (zh) 2023-04-28

Family

ID=67438498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910754825.5A Active CN110837403B (zh) 2018-08-17 2019-08-15 机器人过程自动化

Country Status (3)

Country Link
US (1) US10878531B2 (zh)
EP (1) EP3614317A1 (zh)
CN (1) CN110837403B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11113095B2 (en) 2019-04-30 2021-09-07 Automation Anywhere, Inc. Robotic process automation system with separate platform, bot and command class loaders
US11481304B1 (en) 2019-12-22 2022-10-25 Automation Anywhere, Inc. User action generated process discovery
US20210349430A1 (en) * 2020-05-11 2021-11-11 UiPath, Inc. Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation
US20220084306A1 (en) * 2020-07-14 2022-03-17 Kalpit Jain Method and system of guiding a user on a graphical interface with computer vision
US20220032457A1 (en) * 2020-08-03 2022-02-03 Automation Anywhere, Inc. Robotic Process Automation with Resilient Playback of Recordings
US11775321B2 (en) * 2020-08-03 2023-10-03 Automation Anywhere, Inc. Robotic process automation with resilient playback capabilities
US11507259B2 (en) 2020-09-08 2022-11-22 UiPath, Inc. Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
US11921608B2 (en) 2020-10-30 2024-03-05 Accenture Global Solutions Limited Identifying a process and generating a process diagram
US20220188143A1 (en) * 2020-12-11 2022-06-16 UiPath, Inc. Process mining for multi-instance processes
CN113327097B (zh) * 2021-06-10 2023-07-04 广东电网有限责任公司 一种分析绘图方法及装置
US11968182B2 (en) 2021-07-29 2024-04-23 Automation Anywhere, Inc. Authentication of software robots with gateway proxy for access to cloud-based services

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1439154A (zh) * 2000-04-10 2003-08-27 微软公司 文本字符的词干位置的自动优化
US9135714B1 (en) * 2011-11-28 2015-09-15 Innovative Defense Technologies, LLC Method and system for integrating a graphical user interface capture for automated test and retest procedures
US9373057B1 (en) * 2013-11-01 2016-06-21 Google Inc. Training a neural network to detect objects in images
CN106506805A (zh) * 2016-09-29 2017-03-15 乐视控股(北京)有限公司 联系人头像图片生成方法及装置
CN107677371A (zh) * 2013-02-13 2018-02-09 3形状股份有限公司 记录颜色的聚焦扫描装置
CN107771336A (zh) * 2015-09-15 2018-03-06 谷歌有限责任公司 基于颜色分布的图像中的特征检测和掩模
EP3364299A1 (en) * 2017-02-15 2018-08-22 Blue Prism Limited System for optimising distribution of processing an automated process
CN108701249A (zh) * 2016-01-25 2018-10-23 渊慧科技有限公司 使用神经网络生成图像

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101640463B1 (ko) * 2009-05-19 2016-07-18 삼성전자 주식회사 휴대 단말기의 운용 방법 및 이를 지원하는 휴대 단말기
US20170017393A1 (en) * 2010-04-23 2017-01-19 Handscape Inc., A Delaware Corporation Method for controlling interactive objects from a touchpad of a computerized device
US10289959B2 (en) 2010-05-26 2019-05-14 Automation Anywhere, Inc. Artificial intelligence and knowledge based automation enhancement
US10430180B2 (en) 2010-05-26 2019-10-01 Automation Anywhere, Inc. System and method for resilient automation upgrade
US8504803B2 (en) 2010-05-26 2013-08-06 Tethys Solutions LLC System and method for creating and executing portable software
US20170060108A1 (en) 2010-05-26 2017-03-02 Automation Anywhere, Inc. Roi based automation recommendation and execution
US9462042B2 (en) 2010-05-26 2016-10-04 Tethys Solutions LLC System and method for enabling application discovery by automation needs
US9954819B2 (en) 2010-05-26 2018-04-24 Automation Anywhere, Inc. System and method for compliance based automation
US20180004823A1 (en) 2010-05-26 2018-01-04 Automation Anywhere, Inc. System and method for data profile driven analytics
US8793578B2 (en) * 2011-07-11 2014-07-29 International Business Machines Corporation Automating execution of arbitrary graphical interface applications
US11195057B2 (en) * 2014-03-18 2021-12-07 Z Advanced Computing, Inc. System and method for extremely efficient image and pattern recognition and artificial intelligence platform
US11137832B2 (en) * 2012-12-13 2021-10-05 Eyesight Mobile Technologies, LTD. Systems and methods to predict a user action within a vehicle
GB2517408A (en) 2013-07-05 2015-02-25 Blue Prism Ltd System for automating processes
EP3112965A1 (en) * 2015-07-02 2017-01-04 Accenture Global Services Limited Robotic process automation
US10404636B2 (en) * 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
US10235192B2 (en) * 2017-06-23 2019-03-19 Accenture Global Solutions Limited Self-learning robotic process automation
US10616280B2 (en) * 2017-10-25 2020-04-07 Bank Of America Corporation Network security system with cognitive engine for dynamic automation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1439154A (zh) * 2000-04-10 2003-08-27 微软公司 文本字符的词干位置的自动优化
US9135714B1 (en) * 2011-11-28 2015-09-15 Innovative Defense Technologies, LLC Method and system for integrating a graphical user interface capture for automated test and retest procedures
CN107677371A (zh) * 2013-02-13 2018-02-09 3形状股份有限公司 记录颜色的聚焦扫描装置
US9373057B1 (en) * 2013-11-01 2016-06-21 Google Inc. Training a neural network to detect objects in images
CN107771336A (zh) * 2015-09-15 2018-03-06 谷歌有限责任公司 基于颜色分布的图像中的特征检测和掩模
CN108701249A (zh) * 2016-01-25 2018-10-23 渊慧科技有限公司 使用神经网络生成图像
CN106506805A (zh) * 2016-09-29 2017-03-15 乐视控股(北京)有限公司 联系人头像图片生成方法及装置
EP3364299A1 (en) * 2017-02-15 2018-08-22 Blue Prism Limited System for optimising distribution of processing an automated process

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Amy Hurst.Automatically identifying targets users interact with during real world tasks.《 Proceedings of the 15th international conference on Intelligent user interfaces》.2010,11-20. *
柏森.以分形图形为载体的信息隐藏算法.《计算机应用》.2018,第38卷(第8期),2306-2310. *

Also Published As

Publication number Publication date
CN110837403A (zh) 2020-02-25
EP3614317A1 (en) 2020-02-26
US20200059441A1 (en) 2020-02-20
US10878531B2 (en) 2020-12-29

Similar Documents

Publication Publication Date Title
CN110837403B (zh) 机器人过程自动化
US11604663B2 (en) Detection of user interface controls via invariance guided sub-control learning
EP3215900B1 (en) Robotic process automation
US9703462B2 (en) Display-independent recognition of graphical user interface control
US11605150B2 (en) Method for converting landscape video to portrait mobile layout using a selection interface
US9098313B2 (en) Recording display-independent computerized guidance
KR101346539B1 (ko) 얼굴들을 상관시킴으로써 디지털 이미지들을 구조화하기
WO2018106692A1 (en) Method for converting landscape video to portrait mobile layout using a selection interface
US11322117B2 (en) Media rendering with orientation metadata
US9405558B2 (en) Display-independent computerized guidance
US11482001B2 (en) Image processing device, image processing method, and image processing system
WO2017001560A1 (en) Robotic process automation
CN112131121B (zh) 用户界面的模糊检测方法、装置、电子设备和存储介质
CN110909739B (zh) 图片识别并操作的方法、装置、计算机设备及存储介质
US20230054688A1 (en) Systems and methods for determining gui interaction information for an end user device
US20230282013A1 (en) Automated key-value pair extraction
US20220254141A1 (en) Image processing device, image processing method, and program
Alvenkrona et al. Semi-Automatic ImageAnnotation Tool
KR20230171892A (ko) 의료 정보를 추출하는 장치 및 방법
KR20230053263A (ko) 어노테이션 리뷰 피드백 제공 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
CN113785301A (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
GR01 Patent grant
GR01 Patent grant