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

机器人过程自动化 Download PDF

Info

Publication number
CN107666987B
CN107666987B CN201680031217.6A CN201680031217A CN107666987B CN 107666987 B CN107666987 B CN 107666987B CN 201680031217 A CN201680031217 A CN 201680031217A CN 107666987 B CN107666987 B CN 107666987B
Authority
CN
China
Prior art keywords
computer
activity
display
robot
definition
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
CN201680031217.6A
Other languages
English (en)
Other versions
CN107666987A (zh
Inventor
C·巴塔尔勒
A·贾奎奥特
S·R·托瑞斯
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 Services Ltd
Original Assignee
Accenture Global Services 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
Priority to EP15290172.4 priority Critical
Priority to EP15290172.4A priority patent/EP3112965A1/en
Priority to US15/094,063 priority
Priority to US15/094,063 priority patent/US9555544B2/en
Application filed by Accenture Global Services Ltd filed Critical Accenture Global Services Ltd
Priority to PCT/EP2016/065305 priority patent/WO2017001560A1/en
Publication of CN107666987A publication Critical patent/CN107666987A/zh
Application granted granted Critical
Publication of CN107666987B publication Critical patent/CN107666987B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1679Programme controls characterised by the tasks executed
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object or an image, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36184Record actions of human expert, teach by showing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40116Learn by operator observation, symbiosis, show, watch

Abstract

用于使手动过程自动化的方法、系统以及包括被编码在计算机存储介质上的计算机程序的装置。方法、系统以及装置包括以下动作:标识(i)由与计算机交互的用户手动地执行并且(ii)要被自动化以用于由被配置为与另一计算机交互的机器人执行的过程。附加动作包括:获得当在手动地执行过程中用户与计算机交互时对计算机的显示器取得的一幅或多幅图像;以及应用计算机视觉技术来标识与过程相关联的一个或多个活动。进一步的动作包括:针对所标识的一个或多个活动中的每个活动,生成与活动相关联的活动信息,以及生成过程定义以在使得机器人自动地执行过程中使用。

Description

机器人过程自动化
相关申请的交叉引用
本申请要求于2015年7月2日提交的欧洲专利申请号EP15290172的优先权,其所有内容通过引用并入本文。
技术领域
本公开总体上涉及机器人过程自动化。
背景技术
在计算机上执行的手动过程可能是重复并且耗费时间的。例如,用户可以响应于网络表格提交而发送电子邮件,并且对于每个网络表格提交而言,可能需要与计算机手动地交互,以点击打开用于撰写新电子邮件的窗口的按钮,点击将信息从网络表格提交拷贝到窗口中的按钮,点击写入针对电子邮件的正文的文本的按键,以及点击发送电子邮件的按钮。
发明内容
一般来说,本说明书中所描述的主题的方面可以涉及用于使由人手动地执行的过程自动化的过程。为了使手动过程自动化,在人在执行过程时与计算机手动地交互的同时,系统可以使用计算机视觉技术分析计算机的显示器的图像。根据分析,系统可以确定与过程相关联的活动(例如,键击、鼠标点击或触摸屏触摸)。基于所确定的活动,系统可以然后使得机器人与计算机交互以自动地重复过程。在重复过程时,机器人还可以对计算机的显示器的图像使用计算机视觉技术,以自动地执行与所确定的活动相关联的交互。
在一些方面中,本说明书中所描述的主题可以被实现在方法中,方法可以包括以下动作:标识(i)由与计算机交互的用户手动地执行并且(ii)要被自动化以用于由被配置为与计算机或另一计算机物理地交互的机器人执行的过程。附加动作包括:获得当在手动地执行过程中用户与计算机交互时对计算机的显示器取得的一幅或多幅图像;将计算机视觉技术应用到当在手动地执行过程中用户与计算机交互时对计算机的显示器取得的图像,以标识与过程相关联的一个或多个活动。进一步的动作包括:针对所标识的一个或多个动作中的每个动作,生成与活动相关联的活动信息并且生成过程定义以在使得机器人通过与计算机或另一计算机物理地交互自动地执行过程中使用,其中过程定义指示所标识的一个或多个活动,并且针对每个所标识的活动,指示与活动相关联的活动信息。
其他版本包括对应的系统、装置和被配置成执行方法的动作的计算机程序,其被编码在计算机存储设备上。
这些和其他版本可以各自可选地包括以下特征中的一个或多个。例如,在一些实现中,获得当在手动地执行过程中用户与计算机交互时对计算机的显示器取得的一幅或多幅图像包括:从照相机获得对计算机的显示器取得的一幅或多幅图像。在一些方面中,一幅或多幅图像包括视频。在某些方面中,生成与活动相关联的活动信息包括:生成在活动被执行之前在显示器上示出的屏幕的一部分的快照。在一些实现中,生成与活动相关联的活动信息包括:生成在活动被执行之后在显示器上示出的屏幕的屏幕截图。在一些实现中,活动包括以下各项中的一项或多项:按键按压、鼠标点击、屏幕触摸、前台中的过程变化或场景变化。
在一些方面中,动作包括:访问过程定义并且自动地指示机器人基于由过程定义指示的活动和活动信息,来与计算机或另一计算机物理地交互。在某些方面中,自动地指示机器人基于由过程定义指示的活动和活动信息来与计算机或另一计算机交互包括:标识与由针对特定活动的活动信息指示的快照在视觉上匹配的、另一计算机的另一显示器上示出的屏幕的一部分,并且在对应于部分的中心的位置处物理地接触另一显示器。在一些实现中,自动地指示机器人基于由过程定义指示的活动和活动信息来与另一计算机交互包括:确定在另一显示器上示出的屏幕对应于由针对特定活动的活动信息指示的屏幕截图,并且响应于确定在另一显示器上示出的屏幕对应于由针对特定活动的活动信息指示的屏幕截图,指示机器人基于由过程定义指示的后续活动来与另一计算机物理地交互。在一些方面中,自动地指示机器人基于由过程定义指示的活动和活动信息来与计算机或另一计算机交互包括:标识与由针对特定活动的活动信息所指示的快照在视觉上匹配的、另一计算机的另一显示器上的屏幕的一部分,并且指示机器人向另一计算机提供电子信号,以接收对应于与快照在视觉上匹配的屏幕的一部分的中心的坐标上的点击。在某些方面中,动作包括:生成人可以用于修改过程的过程定义的图形版本。
一个技术优点可以在于,系统可以实现更准确的自动化。例如,不同的计算机可能具有不同的屏幕分辨率、应用窗口位置、应用窗口大小或当基于针对活动的所存储的坐标简单地交互时可能引起问题的其他差异。使用计算机视觉技术,即使按钮、控制、窗口或其他用户接口元素与当手动过程被执行时不同地出现,系统也可以准确地确定何时并且何处交互应当自动地发生。此外,计算机视觉技术可以使得系统能够基于显示器的图像确定自动化交互是否导致活动的成功完成。
其他优点可以包括系统可以实现其中仅所显示的信息容易可用的系统上的自动化。例如,系统可以不与由人使用的计算机电子通信以执行手动过程,并且系统可以仍然能够确定如何自动地执行过程。另一优点可以在于,系统可以使得过程能够在要求物理交互的系统上自动地被执行。例如,计算机可以要求物理输入,并且由系统控制的机器人可以执行物理交互。又一优点可以在于,系统可以是通用的,这是因为机器人能够在不需要专用模块的情况下与各种用户接口进行交互。
在附图和以下描述中阐述本说明书中所描述的主题的一个或多个实现的细节。主题的其他潜在特征、方面和优点将从描述、附图和权利要求变得显而易见。应当理解,即使分离地描述示例,其单个特征也可以被组合为附加的示例。
附图说明
图1是用于使手动过程自动化的示例系统的块图。
图2是用于自动地执行过程的示例系统的块图。
图3是用于使手动过程自动化的示例过程的流程图。
图4图示了示例性通用计算机系统的示意图。
各附图中的相同附图标记指代相同的元素。
具体实施方式
图1是用于使手动过程自动化的示例系统100的块图。简单地并且如下面更详细描述的,系统100可以包括图像采集器110、活动标识器120、活动信息生成器130以及过程定义生成器140。
图像采集器110可以当用户在手动地执行过程中与计算机交互时获得计算机的显示器的图像。例如,图像采集器可以获得示出具有“是”和“否”按钮的用户接口的触摸屏的第一图像以及示出具有响应于由用户接触而突出显示“是”按钮的用户接口的触摸屏的第二图像。在一些实现中,图像采集器110可以是照相机(例如,电荷耦合器件(CCD)照相机或互补金属-氧化物-半导体(CMOS)照相机),其采集在显示器上示出的屏幕的图像。在其他实现中,图像采集器110可以是在计算机上或监视从计算机输出到计算机的显示器的视频的另一计算机上运行的软件过程。
一旦系统100标识(i)由与计算机交互的用户手动地执行并且(ii)要被自动化以用于由被配置为与计算机或另一计算机交互的机器人执行的过程,图像采集器110就可以开始获得图像。例如,用户可以打开使手动过程自动化的应用,提供指示用户将想要使用于生成系统状态日志条目的过程自动化的输入,提供指示用户将开始手动过程的输入,以及提供指示用户已完成手动过程的输入。在示例中,图像采集器110可以在用户提供指示用户愿意使手动过程自动化的输入时开始采集图像,并且可以在用户提供指示用户已完成手动过程时停止采集图像。图像采集器110可以在各种时间获得图像。例如,图像采集器110可以以预定间隔(例如,每隔一毫秒、五毫秒、二十五毫秒、一百毫秒或一些其他间隔)获得图像。
在另一示例中,图像采集器110可以连续地获得图像,并且系统100可以使用机器学习确定何时过程开始并且何时过程结束。例如,系统100中的过程分离器可以使用机器学习确定与过程的开始或结束相关联的特定活动。这样的活动可以包括被示出在显示器上的特定图像(例如,被弹出到前台中的特定软件窗口或被检测的特定标志)。过程分离器可以标识这些特定活动,并且将顺序活动的列表分割为包含与开始和结束相关联的活动之间的所有事件的、活动的不同的子列表。在一些实现中,过程分离器可以试图标识活动的重现的序列(例如,点击应用图标,应用窗口打开,以及点击菜单按钮),并且当活动的重现的序列被标识时,将重现的序列中的第一活动标识为与过程的开始相关联的活动,并且将重现的序列中的最后活动标识为与过程的结束相关联的活动。
图像采集器110可以将所获得的图像提供到活动标识器120。例如,图像采集器110可以获得并且向活动标识器120提供示出具有“是”和“否”按钮的用户接口的触摸屏的第一图像以及示出具有响应于接触而突出显示“是”按钮的用户接口的触摸屏的第二图像。
活动标识器120可以将计算机视觉技术应用到从图像采集器110接收到的图像,以标识与过程相关联的一个或多个活动。例如,活动标识器120可以将计算机视觉技术应用到示出具有“是”和“否”按钮的用户接口的触摸屏的第一图像以及示出具有响应于被接触而突出显示“是”按钮的用户接口的触摸屏的第二图像,并且确定与过程相关联的活动是屏幕触摸。其他活动可以包括例如鼠标点击、按键按压或场景变化。
计算机视觉技术可以包括标识图像之间的差,执行光学字符识别,执行目标识别或其他技术。例如,活动标识器120可以确定基于其中“是”和“否”按钮未突出显示的第一图像与其中“是”按钮突出显示的第二图像之间的差,在触摸屏上触摸“是”按钮。在另一示例中,活动标识器120可以确定在第一图像中鼠标光标在打开菜单的菜单图标上并且在第二图像中图像光标仍然在菜单图标上并且菜单现在打开,并且作为响应,确定菜单图标被左边的鼠标按钮点击。
在又一示例中,活动标识器120可以确定第一图像示出等待空白文本字段中的文本输入的用户接口并且第二图像示出等待文本字段中的字母的用户接口,并且作为响应,确定对应于字母的密钥被按压。在又一示例中,活动标识器120可以确定在显示器上示出的第一图像与第二图像之间的差被改变超过预定量(例如,30%、40%、75%、90%或一些其他百分比),并且作为响应,确定场景改变发生。在另一示例中,活动标识器120可以接收暗屏幕的图像(例如,桌面背景),然后接收亮屏幕的图像,例如,在具有白的图形用户接口的新应用窗口被打开之后,基于逐像素比较两个场景像素之间的强度来生成针对每个像素的得分,对得分进行求平均,确定平均得分超过预定阈值,并且作为响应,确定场景改变已发生。在另一示例中,活动标识器120可以确定闪烁文本光标未出现在文本字段中并且然后出现在文本字段中,这指示左边的鼠标点击在文本字段上发生。在又一示例中,活动标识器120可以基于以下各项中的一项或多项来标识前台中的过程的变化:所示的图形用户接口窗口中的变化或图形用户接口窗口的标题栏中的光学字符识别字母中的变化。
在一些实现中,除了图像之外,活动标识器120还可以附加地使用输入来标识活动。例如,活动标识器120可以从计算机的键盘驱动器接收键盘输入,并且作为响应标识按键按压的活动,或者从计算机的鼠标驱动器接收鼠标输入,并且作为响应标识鼠标点击的活动。其他输入可以包括来自一个或多个当前运行的过程或当前前台过程的、计算机的任务管理器的指示。活动标识器120可以将所标识的活动提供到活动信息生成器130。例如,活动标识器120可以将活动“屏幕触摸”的指示提供到活动信息生成器130。
活动信息生成器130可以生成与活动相关联的活动信息。活动信息可以是描述活动的信息。例如,针对屏幕触摸的活动信息可以描述针对触摸屏上的触摸的坐标、快照,例如二十像素乘以二十像素区域、五十像素乘以五十像素区域、或集中在触摸屏被触摸之前正确触摸的坐标周围的某个其他大小区域,以及在触摸屏被触摸之后的显示器的屏幕截图。在一些实现中,活动信息生成器130可以使用可以自动地确定快照的最优大小的智能裁剪来生成快照。例如,活动信息生成器130可以确定用于任务栏上的程序的标志已经被选择,并且作为响应,仅标识对应于标志的任务栏的一部分,并且生成包括仅任务栏的所标识的一部分的快照。在一些实现中,快照表示被示出在可以例如被用于将控制元素定位在所显示内的一部分(例如,10%、20%、30%或一些其他百分比),并且屏幕截图表示被示出在可以例如被用于确定程序的特定屏幕被显示的显示器上的基本上全部(例如,100%、90%、80%或一些其他百分比)。
在另一示例中,针对按键按压的活动信息可以描述什么按键被按压、在按键被按压之前的显示器的屏幕截图、以及在按键被按压之后的显示器的屏幕截图。在又一示例中,针对鼠标点击的活动信息可以描述鼠标的什么按钮被点击、当鼠标被点击时的鼠标光标的坐标、集中在正好在鼠标被点击之前鼠标光标的坐标周围的快照、以及在鼠标被点击之后显示器的屏幕截图。在又一示例中,针对场景变化的活动信息可以描述花费多久来完成场景改变并且在完成场景改变之后的屏幕截图。
在一些实现中,活动信息生成器130可以基于来自计算机的键盘驱动器的键盘输入来附加地标识活动,并且作为响应生成指示对应于键盘输入的按键的活动信息,或者从计算机的鼠标驱动器接收鼠标输入,并且作为响应生成指示已点击的鼠标的按钮以及鼠标光标的当前坐标的活动信息。
在一些实现中,活动信息生成器130可以基于处理特殊字符标识活动。例如,活动信息生成器130可以基于出现在示出在显示器上的文本输入字段中的大写字母“A”来确定大写字母“A”已经由用户录入,确定生成大写字母“A”涉及保持“移位”按键、按压“A”按键、并且释放“移位”按键或按压“大写锁定”按键、按压“A”按键,并且然后再次“大写锁定”按键,并且作为响应,标识按压那些对应的按键的活动。
活动信息生成器130可以向过程定义生成器140提供活动信息。例如,活动信息生成器130可以向过程定义生成器140提供包括在屏幕被接触之前集中在“是”按钮的屏幕的一部分快照的屏幕触摸活动的活动信息。在其他示例中,活动信息生成器130可以向过程定义生成器140提供描述“回车”按键被按压的按键按压活动和正好在按键被按压之后的屏幕截图的过程的活动信息。在又一示例中,活动信息生成器130可以向过程定义生成器140提供描述“左边的”鼠标按钮在屏幕的右上角中被点击的鼠标点击活动、正好在点击被集中在屏幕的右上角周围之前在显示器上示出的屏幕的一部分的快照、以及在按钮被点击之前在显示器上示出的屏幕的屏幕截图。活动信息的其他示例可以包括鼠标滚轮滚动或与鼠标、键盘、触摸屏或其他输入设备的其他交互。
过程定义生成器140可以生成过程定义,以在使得机器人通过与另一计算机交互来自动地执行过程中使用。例如,过程定义生成器140可以生成过程定义,除了其他方面之外,其还指示机器人应该首先在对应于集中在“是”按钮周围的第一快照的中心的位置处触摸屏幕,然后在对应于集中在“确定当前状态”按钮周围的第二快照的中心的位置处触摸屏幕,并且然后按压“回车”按键。关于图2下面描述了机器人可以如何根据过程定义自动地执行过程的附加细节。
过程定义可以指示所标识的一个或多个活动,并且针对每个所标识的活动,指示与活动相关联的活动信息。例如,针对生成针对当前系统状态的日志条目的过程,过程定义生成器140可以接收与以下各项相关联的屏幕触摸活动的活动信息:(i)示出在屏幕被接触之前的屏幕的一部分的快照,其在按钮被接触之前集中在“是”按钮以及(ii)在“是”按钮被接触之前的屏幕截图;可以接收指示与以下各项相关联的鼠标点击活动的活动信息:(i)在屏幕的右上角中点击的“左边的”鼠标按钮,(ii)正好在点击集中在屏幕的右上角之前在显示器上示出的屏幕的一部分的快照,以及(iii)在按钮被点击之后在显示器上示出的屏幕的屏幕截图;以及接收指示按键按压活动与以下各项相关联的活动信息:(i)“回车”按键被按压以及(ii)正好在按键被按压之后的屏幕截图。过程定义可以指示针对所标识的一个或多个活动的序列。例如,过程定义可以指示首先执行屏幕触摸,然后另一屏幕触摸,以及然后按键按压。
活动标识器120、活动信息生成器130以及过程定义生成器140可以在各种时间执行其相应的功能。例如,活动标识器120可以存储从图像采集器110接收到的图像,并且等到直到接收到过程在将计算机视觉技术应用到图像以标识活动之前完成的指示,活动信息生成器130可以然后一次接收到全部活动的指示并且生成针对全部活动的活动信息,并且过程定义生成器140可以一次接收全部标识的指示和全部活动信息的指示,以及然后生成过程定义。在另一示例中,活动标识器120可以在活动标识器120标识活动时将每个活动的指示提供到活动信息生成器130,活动信息生成器130可以在活动的指示被接收时生成针对每个活动的活动信息,并且过程定义生成器140可以在活动信息的指示被接收时增量地生成过程定义。
在一些实现中,系统100过程定义可以以人类可读格式中被输出为文档,其包括描述所标识的活动以及对应于活动信息的文本或图像的文本。根据一个示例,屏幕截图可以在Word或Visio文档中被叠加或附加有以人类可读格式(例如,自然文本语言)的活动信息。例如,示出按钮上的鼠标指针的屏幕截图可以被修改为还包含描述在其中取得屏幕截图(诸如“左点击”以利用鼠标的左按键指示点击)的时刻所执行的步骤的写入指令。在一些实现中,系统100可以自动地并且无缝地采集不同的过程上的信息。例如,由系统100执行的文档操作还可以使得系统100能够检测用户之间的过程异常或差异,并且确保所创建的最后文档说明了执行过程的最佳方式。
在一些实现中,系统100可以使得人能够修改过程定义。例如,系统100可以提供通过其用户可以添加、移除或修改由过程定义所指示的活动和相关联的活动信息的图形用户接口,并且存储用于稍后使用在自动地执行由经修改的过程定义而定义的过程。
在一些实现中,系统100可以使用过滤器或一组过滤器来修改过程定义。例如,系统100可以使用过滤器创建键击的人类可读表示(例如,按压“大写锁定”按键、“A”按键),并且“大写锁定”按键可以相反由“增加输入‘A’”表示。在另一示例中,系统100可以使用掩蔽敏感信息的过滤器,使得信息在重放期间未被暴露。例如,系统100可以显示具有星号的密码,而不是密码中的实际字符。
可以使用系统100的不同的配置,其中图像采集器110、活动标识器120、活动信息生成器130和过程定义生成器140的功能可以组合、进一步分离、分布或交换。
图2是用于自动地执行过程的示例系统200的块图。系统200可以使用与计算机交互的机器人来自动地执行过程。简单地并且如下面更详细描述的,系统200可以包括图像采集器210、活动触发引擎220、活动执行引擎230以及机器人240。
图像采集器210可以在机器人通过与计算机交互自动地执行过程时获得计算机的显示器的图像。例如,图像采集器210可以获得示出“是”和“否”按钮的用户接口的触摸屏的第一图像。在另一示例中,图像采集器210可以获得示出具有响应于由机器人接触而突出显示“是”按钮的用户接口的触摸屏的第二图像。
在一些实现中,图像采集器210可以是采集在显示器上示出的屏幕的图像的照相机。在其他实现中,图像采集器210可以是监测从计算机输出到计算机的显示器的视频的软件过程。
一旦系统200标识由机器人根据过程定义自动地执行的过程,图像采集器210就可以开始获得图像。例如,用户可以打开根据过程定义自动地执行过程的应用,选择用于自动化过程的过程定义,以及提供触发待执行的自动化过程的输入。在示例中,图像采集器210可以在用户提供触发待执行的自动化过程的输入开始采集图像,并且在由用于自动化过程的过程定义所指示的全部活动已执行时停止采集图像。图像采集器110可以在各种时间获得图像。例如,图像采集器110可以以在预定间隔(例如,每隔一毫秒、五毫秒、二十五毫秒、一百毫秒)获得图像。
图像采集器210可以向活动触发引擎220提供图像。例如,图像采集器210可以提供示出具有“是”和“否”按钮的用户接口的触摸屏的第一图像以及示出具有响应于机器人接触“是”按钮而突出显示“是”按钮的用户接口的触摸屏的第二图像。
活动触发引擎220可以接收图像和过程定义,并且确定何时触发活动。例如,活动触发引擎220可以接收示出具有“是”和“N”按钮的用户接口的触摸屏的图像,接收指示第一活动是屏幕触摸的过程定义,并且该过程定义指示包括正好在用户手动地接触“是”按钮并且集中在“是”按钮之前所显示的屏幕的快照(例如,“快照X”)的相关联的活动信息,并且作为响应,确定触发“是”按钮上的屏幕触摸。
活动触发引擎220可以根据过程定义按顺序触发活动。例如,活动触发引擎220可以首先分析用于匹配用于第一活动的快照X的部分的图像并且然后分析匹配在完成第一活动之后第二活动的快照Y的部分的图像。活动触发引擎220可以在用于触发活动的条件被满足时触发活动。例如,条件可以是在显示器的图像的一部分匹配与活动相关联的快照或先前的活动被完成。
活动触发引擎220可以向活动执行引擎230提供触发。例如,活动触发引擎220可以提供指示屏幕触摸将被执行、按键按压将被执行、鼠标点击将被执行、或场景变化被期望的触发。
活动执行引擎230可以执行活动。例如,活动执行引擎230可以向机器人240提供指令,其中机器人240是虚拟机器人,以视觉地模拟移动“是”按钮上面的鼠标光标和“是”按钮上的“左边的”按钮点击(例如,通过计算机的鼠标驱动器)。在又一示例中,活动执行引擎230可以指示虚拟机器人视觉地模拟“回车”按键的按压(例如,通过计算机的键盘驱动器)。在另一示例中,活动执行引擎230可以向机器人240提供指令,其中机器人240是物理机器人,以移动机器人的手臂以触摸被示出在显示器上的“是”按钮。在另一示例中,活动执行引擎230可以确定等待直到场景变化在转到下一活动之前被完成。在又一示例中,活动执行引擎230可以向机器人240提供指令来移动鼠标,使得光标在在显示器上示出的特定按钮上并且然后点击鼠标上的“左边的”按钮。
活动执行引擎230可以基于视觉地确定机器人240与被示出在显示器上的内容之间的关系,生成针对机器人240的指令。在一些实现中,在执行活动中,活动执行引擎230可以使用来自图像采集器210的图像。例如,为了向机器人240提供触摸“是”按钮的指令,活动执行引擎230可以基于将用于物理屏幕触摸小工具的目标识别应用到图像和显示器上的“是”按钮的位置来确定机器人240的物理屏幕触摸小工具的位置,确定将使得物理屏幕触摸小工具以触摸图像中的“是”按钮的机器人240的物理屏幕触摸小工具的移动,生成对应于所确定的移动的机器人240的移动指令,并且向机器人240提供移动指令。
在另一示例中,活动执行引擎230可以确定按压“回车”按键,并且作为响应,分析示出机器人240的按键按压小工具的当前位置和键盘上的“回车”按键的当前位置的图像,使用图像中的目标识别来确定机器人240的按键按压小工具的当前位置,确定键盘上的“回车”按键的当前位置,确定将使得机器人240的按键按压小工具按压“回车”按键的机器人240的按键按压小工具的移动,生成对应于所确定的移动的机器人240的移动指令,并且向机器人240提供移动指令。
在又一示例中,活动执行引擎230可以确定左点击示出在显示器上的“是”按钮上面的鼠标按钮,并且作为响应,根据图像确定机器人240正保持鼠标,根据图像确定显示器上的鼠标光标的位置,根据图像确定在显示器上示出的“是”按钮的位置,基于鼠标光标与示出在显示器上的“是”按钮之间的距离来确定鼠标的移动量,生成用于机器人240的移动指令以移动鼠标光标移动确定量,并且向机器人240提供指令。
在一些实现中,在生成用于机器人240的指令时,活动执行引擎230可以标识机器人240,确定机器人的移动能力,基于机器人的移动能力和在机器人240与计算机的输入设备之间接近的相对距离来确定用于机器人240做出的移动,确定机器人240理解的移动指令的格式,以及基于机器人240的所确定的移动生成以所确定的格式的移动指令。
活动执行引擎230可以基于过程定义来执行活动。例如,用于屏幕触摸活动的过程定义可以包括集中在“是”按钮上的区域的快照以及示出在“是”按钮被点击之后的屏幕的屏幕截图。因此,在根据过程定义执行屏幕触摸活动时,活动执行引擎230可以确定在何处“是”按钮被示出在显示器上,将一个或多个指令提供到机器人240以触摸“是”按钮,并且然后确定示出在显示器上的屏幕是否匹配由过程定义指示的屏幕截图。如果屏幕未匹配,则活动执行引擎230可以向管理员提供通知或者再次向机器人240发送指令。如果屏幕匹配,则活动执行引擎230可以然后向活动触发引擎220提供活动触发引擎220可以开始确定是否满足用于触发在刚刚执行的活动之后由过程定义指示的活动的条件的指示。
在另一示例中,活动执行引擎230可以确定场景改变基于过程定义被期望,并且作为响应,根据在活动被触发之前的屏幕的图像来确定在显示器上示出的屏幕是否已改变对应于场景保护的预定量(例如,30%、40%、75%、90%或一些其他百分比)。如果场景改变尚未发生,则活动执行引擎230可以重复对机器人的指令或可以向管理员提供通知。
在一些实现中,活动执行引擎230可以附加地基于所存储的坐标和快照的组合来执行活动。例如,过程定义可以指示对应于屏幕的中心的坐标处的鼠标点击和集中在“是”按钮上的快照,但是活动执行引擎230可以确定快照的中心对应于在当前所显示的屏幕的中心的左边五十像素的坐标的快照的中心。作为响应,活动执行引擎230可以修改坐标,例如,平均化坐标并且确定点击屏幕的中心的左边二十五个像素的坐标。在一些实现中,活动执行引擎230首先在不考虑所存储的坐标的情况下使用根据示显示器上出在的屏幕的坐标,如果活动未完成完成,如上文所描述的,使用经修改的(例如,平均的)坐标,如果活动仍然未完成,使用所存储的坐标,并且如果活动仍然未完成,则向管理员提供通知。
图3是用于使手动过程自动化的示例过程300的流程图。以下描述如由参考图1和图2描述的系统100和200的部件所执行的过程300。然而,过程300可以由其他系统或系统配置来执行。
过程300可以包括标识手动地执行的过程(310)。过程可以由与计算机交互的用户手动地执行,并且要被自动化以用于由被配置为与计算机交互的机器人执行。例如,手动地执行的过程可以是响应于网络表格提交而生成模板电子邮件。在标识过程中,用户可以提供指示用户愿意使特定手动过程自动化并且用户正开始执行手动过程的用户输入。
过程300可以包括获得对显示器取得的一幅或多幅图像(320)。当在手动地执行过程中用户与计算机交互时,可以取得图像。例如,图像采集器110可以接收用户正开始待由机器人自动化的手动过程的指示,并且作为响应每隔五毫秒、十毫秒、二十五毫秒、一百毫秒或在一些其他间隔开始采集计算机的显示器的图像。图像可以包括示出“新电子邮件”按钮上面的鼠标光标的第一图像、示出响应于左鼠标点击以不同的颜色突出显示的“新电子邮件”按钮的第二图像以及示出“新电子邮件”窗口打开的第三图像。
过程300可以包括根据图像标识与过程相关联的一个或多个活动(330)。可以通过将一个或多个计算机视觉技术应用到图像来标识活动。例如,活动标识器120可以确定示出“新电子邮件”按钮上面的鼠标光标的第一图像,以及确定示出突出显示的“新电子邮件”按钮的下一第二图像意味着“左边的”点击在“新电子邮件”按钮上发生,并且作为响应,标识鼠标点击的活动。
过程300可以包括生成与活动相关联的活动信息(340)。例如,活动信息生成器130可以接收鼠标点击的活动的指示和图像,并且作为响应,生成包括其中鼠标点击发生的坐标的活动信息,在“新电子邮件”按钮被点击之前的“新电子邮件”按钮周围的三十乘以三十像素区域的快照,以及在“新电子邮件”按钮被点击之后的屏幕截图。
过程300可以包括生成过程定义以在使得机器人自动地执行过程中使用(350)。过程定义可以指示所标识的一个或多个活动,并且针对每个所标识的活动,指示与活动相关联的活动信息。例如,过程定义生成器140可以生成以XML、HTML、C#、XAML或其他一些格式的信息,其指示用于响应于网络表格提交生成模板电子邮件的过程包括“左”鼠标点击与以下各项相关联的“新电子邮件”按钮的第一活动:(i)屏幕的顶部中间的坐标,(ii)在按钮被点击之前“新电子邮件”按钮的快照,以及(iii)示出按钮在点击之后变得突出显示的“新电子邮件”按钮的屏幕截图;与以下各项相关联的场景变化的第二活动:(i)在场景改变开始之前在“新电子邮件”窗口打开之前的屏幕截图以及(ii)在场景改变完成之后在“电子邮件”窗口打开时的屏幕截图,以及附加的其他活动(例如,打开网络表格提交的日志、拷贝用于网络表格提交的主题、选择新电子邮件窗口中的主题栏,以及将用于网络提交的复制主题粘贴到主题栏中)。
过程300可以包括存储过程定义,并且稍后访问过程定义并且自动地指示机器人基于由过程定义指示的活动和活动信息来与计算机交互。例如,用户可以请求机器人自动地执行用于响应于网络表格提交生成模板电子邮件的过程,并且作为响应,图像采集器210可以开始获得计算机的显示器的图像,活动触发引擎220可以确定图像何时包括匹配与“左边的”点击“新电子邮件”按钮的、由过程定义指示的第一活动相关联的快照的一部分,并且活动执行引擎可以指示机器人240移动物理机器人手臂以移动鼠标,直到鼠标光标在“新电子邮件”按钮上面并且点击“左边的”按钮。
过程定义可以由开发者或商业分析员检查,其可以是人类或计算机,例如以便在作为生成用于相同过程不同的机器或用户的多个过程定义的结果的多个过程定义之间选择用于特定过程的最佳过程定义。例如,不同的过程定义可以使用诸如机器学习的技术进行相似性检查,以识别和将类似程序分组为分类系统。一旦选择已经做出,所选择的过程定义就可以被用于自动地执行过程。
图4图示了示例性通用计算机系统的示意图。系统400可以被用于与根据一些实现的过程300相关联所描述的操作。系统400可以被包括在系统100中。
系统400包括处理器410、存储器420、存储设备430以及输入/输出设备440。部件410、420、430和440中的每一个使用系统总线450互连。处理器410能够处理用于在系统400内执行的指令。在一个实现中,处理器410是单线程处理器。在另一实现中,处理器410是多线程处理器。处理器410能够处理被存储在存储器420中或在存储设备430上的指令,以显示用于输入/输出设备上的用户接口的图形信息。
存储器420将信息存储在系统400内。在一个实现中,存储器420是计算机可读介质。在一个实现中,存储器420是易失性存储器单元。在另一实现中,存储器420是非易失性存储器单元。
存储设备430能够为系统400提供海量存储。在一个实现中,存储设备430是计算机可读介质。在各种不同的实现中,存储设备430可以是软盘设备、硬盘设备、光盘设备或磁带设备。
输入/输出设备440为系统400提供输入/输出操作。在一个实现中,输入/输出设备440包括键盘和/或指点设备。在另一实现中,输入/输出设备440包括用于显示图形用户接口的显示单元。
可以在数字电子电路中、在有形实现的计算机软件或固件中、在计算机硬件中实现本说明书中所描述的主题、功能操作以及过程的实施例,其包括本说明书中所公开的结构和其结构等同物或者其中的一个或多个的组合。本说明书中所描述的主题的实施例可以被实现为一个或多个计算机程序(即,被编码在有形非暂态程序载体上用于由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块)。备选地或者附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电子、光学或电磁信号,其被生成以编码信息以用于传输到适合的接收器装置以用于由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储衬底、随机或串行访问存储器设备或它们中的一个或多个的组合。
术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,以示例的方式包括可编程处理器、计算机或多个处理器或计算机。装置可以包括专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。除了硬件之外,装置可以包括创建用于讨论中的计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或者其中的一个或多个的组合的代码。
计算机程序(其还可以被称为或被描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以以任何形式的编程语言被书写,包括编译或者解译语言或者说明性或者程序性语言,并且其可以以任何形式被部署,包括作为单独程序或者作为模块、部件、子例程或适于使用在计算环境中的其它单元。计算机程序可以但是不需要对应于文件系统中的文件。程序可以被存储在保持其他程序或数据(例如,被存储在标记语言文档中的一个或多个脚本)的文件的一部分中、在专用于讨论中的程序的单个文件中、或在多个协调文件中(例如,存储一个或多个模块、子程序或代码的部分的文件)。计算机程序可以被部署以在被定位在一个站点处的一个计算机上或在跨多个站点分布并且由通信网络相互连接的多个计算机上被执行。
本说明书中所描述的过程和逻辑流可以通过一个或多个可编程处理器来执行,其通过对输入数据进行操作并且生成输出来执行一个或多个计算机程序以执行动作。过程和逻辑流还可以通过专用逻辑电路执行并且装置还可以实现为专用逻辑电路,专用逻辑电路例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。
通过示例,适于计算机程序的执行的计算机包括可以基于通用微处理器或者专用微处理器或者二者,或者任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的基本元件是用于执行或者运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机将还包括或者操作性地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或者将数据传送到其、或者以上二者。然而,计算机不需要具有这样的设备。而且,计算机可以被嵌入在另一设备中(例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器)或者便携式存储设备(例如,通用串行总线(USB)闪盘驱动器),仅举几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,以示例的方式包括半导体存储器设备,例如EPROM、EEPROM以及闪速存储器设备;磁盘,例如内部硬盘或者可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以通过专用逻辑电路补充或者被合并在专用逻辑电路中。
为了提供与用户的交互,本说明书中所描述的主题的实施方式可以被实现在计算机上,所述计算机具有用于将信息显示给用户的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户通过其可以向计算机提供输入的键盘和指点设备(例如,鼠标或轨迹球)。其他种类的设备也可以被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感测反馈,例如视觉反馈、听觉反馈或者触觉反馈;并且来自用户的输入可以以任何形式被接收,包括声音、语音或者触觉输入。另外,计算机可以通过将文档发送给由用户所使用的设备和从设备接收文档来与用户交互;例如,通过响应于从网络浏览器所接收的请求而将网页发送给用户的客户端设备上的网络浏览器。
在本说明书中所描述的主题的实施例可以被实现在计算系统中,其包括后端部件(例如,作为数据服务器),或者其包括中间件部件(例如,应用服务器),或者其包括前端部件(例如,具有用户通过其可以与本说明书中所描述的主题的实施方式交互的图形用户接口或网络浏览器的客户端计算机),或者一个或多个这样的后端、中间件或前端部件的任何组合。系统的部件可以以数字数据通信的任何形式或介质(例如通信网络)相互连接。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如,因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系借助于在相应的计算机上运行并且具有彼此的客户端-服务器关系的计算机程序而出现。
虽然本说明书包含许多特定实现细节,但是这些不应当被解释为对方式可以要求保护的内容的范围限制,而是可以为特定于特定实施例的特征的描述。不同的实施例的上下文中的本说明书中所描述的某些特征还可以被组合实现在单个实施例中。相反,单个实施例的上下文中所描述的各种特征还可以分离地实现在多个实施例中或任何适合的子组合中。此外,尽管特征可以上文被描述为在某些组合中作用并且甚至如此初始地要求保护,但是在一些情况下,可以从组合删除所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变型。
类似地,尽管以特定的次序在附图中描绘操作,但是这不应当理解为要求这样的操作以所示的特定次序或者以顺序次序被执行,或者所有所图示的操作被执行以实现期望的结果。在某些情况下,多任务和并行处理可以是有利的。此外,上文所描述的实施例中的各种系统部件的分离不应当被理解为要求所有实施例中的这样的分离,并且应当理解,所描述的程序部件和系统可以通常一起集成在单个软件产品或者封装到多个软件产品中。
已描述了本主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中所记载的动作可以以不同的次序被执行并且仍然实现期望的结果。作为一个示例,附图中所描绘的处理不必要求所示的特定次序或顺序次序来实现期望的结果。在某些实施方式中,多任务和并行处理可以是有利的。可以从所描述的过程提供其他步骤或者可以删除步骤。因此,其他实现在所附权利要求的范围内。
以下项对于理解本发明是有用的:
1.一种计算机系统,其包括存储器和处理器,其被配置为:
获取与被示出在显示器上的图像或图像流有关的信息;
分析与图像或图像流有关的信息以检测显示器上的活动;
记录关于显示器上的所检测的活动的活动信息;以及
生成包括与图像或图像流有关的信息以及活动信息的组合的输出数据。
2.根据项1所述的计算机系统,其中输出数据被生成,使得与图像或图像流有关的信息以及活动信息的组合包括具有以人类可读格式(特别地包括自然文本语言)的叠加的和/或附加的活动信息的至少一幅图像或图像序列。
3.根据前述项中的任一项所述的计算机系统,还包括显示器。
4.根据前述项中的任一项所述的计算机系统,其中显示器上的活动包括以下各项中的至少一项:
过程变化;
场景变化;以及
用户输入,其中用户输入特别地包括以下各项中的至少一项:键入和使用指点设备的指针执行动作。
5.根据前述项中的任一项所述的计算机系统,其中处理器还被配置为:
读取输出数据;以及
基于输出数据再现显示器上的活动。
6.根据项5所述的计算机系统,其中处理器还被配置为使用用于图像匹配的输出数据。
7.根据项5或6所述的计算机系统,其中处理器还被配置为使用光学字符识别从输出数据取回信息。
8.一种计算机实现的方法,包括:
获取与示出在显示器上的图像或图像流有关的信息;
分析与图像或图像流有关的信息以检测显示器上的活动;
记录关于显示器上的所检测的活动的活动信息;以及
生成包括与图像或图像流有关的信息以及活动信息的组合的输出数据。
9.根据项8所述的计算机实现的方法,其中在生成输出数据的步骤中,与图像或图像流有关的信息以及活动信息的组合包括具有以人类可读格式的叠加的和/或附加的活动信息的至少一幅图像或图像序列。
10.根据项9所述的计算机实现的方法,其中人类可读格式包括自然文本语言。
11.根据前述项中的任一项所述的计算机实现的方法,其中显示器上的活动包括以下各项中的至少一项:
过程变化;
场景变化;以及
用户输入,其中用户输入特别地包括以下各项中的至少一项:键入和使用指点设备的指针执行动作。
12.根据前述项中的任一项所述的计算机实现的方法,还包括:
读取输出数据;以及
基于输出数据再现显示器上的活动。
13.根据项12所述的计算机实现的方法,还包括使用用于图像匹配的输出数据。
14.根据项12或13所述的计算机实现的方法,还包括使用光学字符识别从输出数据取回信息。
15.一种计算机程序产品,其包括计算机可读指令,所述计算机可读指令当被加载并且被执行在适合的系统上时执行根据项8至14中的任一项所述的方法的步骤。

Claims (20)

1.一种计算机实现的方法,包括:
标识(i)由与计算机交互的用户手动地执行并且(ii)要被自动化以用于由被配置为与所述计算机或另一计算机交互的机器人执行的过程;
获得当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的显示器取得的图像;
将计算机视觉技术应用到当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的所述显示器取得的所述图像,以确定当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的所述显示器取得的图像中的变化满足与场景变化相对应的预定阈值;
响应于确定当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的所述显示器取得的图像中的变化满足与场景变化相对应的所述预定阈值,标识与在所述过程期间来自所述用户的输入的接收相对应的第一活动,随后是与在所述过程期间的场景变化相对应的第二活动;
针对所标识的活动中的每个活动,生成与所述活动相关联的活动信息;
生成过程定义以在使得所述机器人通过与所述计算机或所述另一计算机交互来自动地执行所述过程中使用,其中所述过程定义指示与来自所述用户的所述输入的接收相对应的所述第一活动,随后是与所述场景变化相对应的所述第二活动,并且针对每个所指示的活动,指示与所述活动相关联的所述活动信息;以及
存储所述过程定义以供后续使用,以使所述机器人通过与所述计算机或所述另一计算机交互来自动执行所述过程。
2.根据权利要求1所述的方法,其中获得当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的显示器取得的图像包括:
从照相机获得对所述计算机的所述显示器取得的图像。
3.根据权利要求1所述的方法,其中所述图像包括视频。
4.根据权利要求1所述的方法,其中生成与所述活动相关联的活动信息包括:
生成在所述活动被执行之前在所述显示器上示出的屏幕的一部分的快照。
5.根据权利要求1所述的方法,其中生成与所述活动相关联的活动信息包括:
生成在所述活动被执行之后在所述显示器上示出的屏幕的屏幕截图。
6.根据权利要求1所述的方法,其中所述活动包括以下各项中的两项或更多项:按键按压、鼠标点击、屏幕触摸、前台中的过程变化或场景变化。
7.根据权利要求1所述的方法,包括:
访问所述过程定义;以及
自动地指示所述机器人基于由所述过程定义指示的所述活动和活动信息来与所述计算机或所述另一计算机物理地交互。
8.根据权利要求7所述的方法,其中自动地指示所述机器人基于由所述过程定义指示的所述活动和活动信息来与所述计算机或所述另一计算机交互包括:
标识与由针对特定活动的所述活动信息指示的快照在视觉上匹配的、所述另一计算机的另一显示器上示出的屏幕的一部分;以及
指示所述机器人在对应于所述一部分的中心的位置处物理地触摸所述另一显示器。
9.根据权利要求7所述的方法,其中自动地指示所述机器人基于由所述过程定义指示的所述活动和活动信息来与所述另一计算机交互包括:
确定在所述另一计算机的另一显示器上示出的屏幕对应于由针对特定活动的所述活动信息指示的屏幕截图;以及
响应于确定在所述另一显示器上示出的所述屏幕对应于由针对特定活动的所述活动信息指示的屏幕截图,指示所述机器人基于由所述过程定义指示的后续活动来与所述另一计算机物理地交互。
10.根据权利要求7所述的方法,其中自动地指示所述机器人基于由所述过程定义指示的所述活动和活动信息来与所述计算机或所述另一计算机交互包括:
标识与由针对特定活动的所述活动信息指示的快照在视觉上匹配的、所述另一计算机的另一显示器上示出的屏幕的一部分;以及
指示所述机器人向所述另一计算机提供电子信号,以接收对应于与所述快照在视觉上匹配的所述屏幕的所述一部分的中心的坐标上的点击。
11.根据权利要求1所述的方法,包括:
生成人能够用于修改所述过程的所述过程定义的图形版本。
12.一种计算机系统,包括:
一个或多个计算机和一个或多个存储设备,所述一个或多个存储设备存储指令,所述指令当由所述一个或多个计算机执行时可操作以使得所述一个或多个计算机执行操作,所述操作包括:
标识(i)由与计算机交互的用户手动地执行并且(ii)要被自动化以用于由被配置为与所述计算机或另一计算机交互的机器人执行的过程;
获得当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的显示器取得的图像;
将计算机视觉技术应用到当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的所述显示器取得的所述图像,以确定当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的所述显示器取得的图像中的变化满足与场景变化相对应的预定阈值;
响应于确定当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的所述显示器取得的图像中的变化满足与场景变化相对应的所述预定阈值,标识与在所述过程期间来自所述用户的输入的接收相对应的第一活动,随后是与在所述过程期间的场景变化相对应的第二活动;
针对所标识的活动中的每个活动,生成与所述活动相关联的活动信息;
生成过程定义以在使得所述机器人通过与所述计算机或所述另一计算机交互来自动地执行所述过程中使用,其中所述过程定义指示与来自所述用户的所述输入的接收相对应的所述第一活动,随后是与所述场景变化相对应的所述第二活动,并且针对每个所指示的活动,指示与所述活动相关联的所述活动信息;以及
存储所述过程定义以供后续使用,以使所述机器人通过与所述计算机或所述另一计算机交互来自动执行所述过程。
13.根据权利要求12所述的系统,其中获得当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的显示器取得的图像包括:
从照相机获得对所述计算机的所述显示器取得的图像。
14.根据权利要求12所述的系统,其中所述图像包括视频。
15.根据权利要求12所述的系统,其中生成与所述活动相关联的活动信息包括:
生成在所述活动被执行之前在所述显示器上示出的屏幕的一部分的快照。
16.根据权利要求12所述的系统,其中生成与所述活动相关联的活动信息包括:
生成在所述活动被执行之后在所述显示器上示出的屏幕的屏幕截图。
17.根据权利要求12所述的系统,其中所述活动包括以下各项中的两项或更多项:按键按压、鼠标点击、屏幕触摸、前台中的过程变化或场景变化。
18.根据权利要求12所述的系统,包括:
访问所述过程定义;以及
自动地指示所述机器人基于由所述过程定义指示的所述活动和活动信息来与所述计算机或所述另一计算机物理地交互。
19.根据权利要求18所述的系统,其中自动地指示所述机器人基于由所述过程定义指示的所述活动和活动信息来与所述计算机或所述另一计算机交互包括:
标识与由针对特定活动的所述活动信息指示的快照在视觉上匹配的、所述另一计算机的另一显示器上示出的屏幕的一部分;以及
指示所述机器人在对应于所述一部分的中心的位置处物理地触摸所述另一显示器。
20.一种非暂态计算机可读介质,其存储包括由一个或多个计算机可执行的指令的软件,所述指令在这样的执行时使得所述一个或多个计算机执行操作,所述操作:
标识(i)由与计算机交互的用户手动地执行并且(ii)要被自动化以用于由被配置为与所述计算机或另一计算机交互的机器人执行的过程;
获得当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的显示器取得的图像;
将计算机视觉技术应用到当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的所述显示器取得的所述图像,以确定当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的所述显示器取得的图像中的变化满足与场景变化相对应的预定阈值;
响应于确定当在手动地执行所述过程中所述用户与所述计算机交互时对所述计算机的所述显示器取得的图像中的变化满足与场景变化相对应的所述预定阈值,标识与在所述过程期间来自所述用户的输入的接收相对应的第一活动,随后是与在所述过程期间的场景变化相对应的第二活动;
针对所标识的活动中的每个活动,生成与所述活动相关联的活动信息;
生成过程定义以在使得所述机器人通过与所述计算机或所述另一计算机交互来自动地执行所述过程中使用,其中所述过程定义指示与来自所述用户的所述输入的接收相对应的所述第一活动,随后是与所述场景变化相对应的所述第二活动,并且针对每个所指示的活动,指示与所述活动相关联的所述活动信息;以及
存储所述过程定义以供后续使用,以使所述机器人通过与所述计算机或所述另一计算机交互来自动执行所述过程。
CN201680031217.6A 2015-07-02 2016-06-30 机器人过程自动化 Active CN107666987B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP15290172.4 2015-07-02
EP15290172.4A EP3112965A1 (en) 2015-07-02 2015-07-02 Robotic process automation
US15/094,063 2016-04-08
US15/094,063 US9555544B2 (en) 2015-07-02 2016-04-08 Robotic process automation
PCT/EP2016/065305 WO2017001560A1 (en) 2015-07-02 2016-06-30 Robotic process automation

Publications (2)

Publication Number Publication Date
CN107666987A CN107666987A (zh) 2018-02-06
CN107666987B true CN107666987B (zh) 2020-10-16

Family

ID=53794164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680031217.6A Active CN107666987B (zh) 2015-07-02 2016-06-30 机器人过程自动化

Country Status (5)

Country Link
US (1) US9555544B2 (zh)
EP (2) EP3112965A1 (zh)
JP (1) JP2018535459A (zh)
CN (1) CN107666987B (zh)
AU (1) AU2016286308B2 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI528218B (zh) * 2013-11-29 2016-04-01 財團法人資訊工業策進會 機敏資料鑑識方法與使用所述方法的資料外洩防範系統
WO2020227429A1 (en) * 2019-05-06 2020-11-12 Strong Force Iot Portfolio 2016, Llc Platform for facilitating development of intelligence in an industrial internet of things system
US10802453B2 (en) 2017-06-02 2020-10-13 Bank Of America Corporation Robotics process automation macro bot
US10449670B2 (en) 2017-07-17 2019-10-22 Bank Of America Corporation Event processing using robotic entities
US10482232B2 (en) 2017-08-16 2019-11-19 Bank Of America Corporation Robotic process automation using controller execution model
JP2019074889A (ja) * 2017-10-13 2019-05-16 BizteX株式会社 ウェブブラウザの操作を伴う業務プロセスを自動化するためのシステム、方法及びプログラム
US10659482B2 (en) 2017-10-25 2020-05-19 Bank Of America Corporation Robotic process automation resource insulation system
US10616280B2 (en) 2017-10-25 2020-04-07 Bank Of America Corporation Network security system with cognitive engine for dynamic automation
US10437984B2 (en) 2017-10-26 2019-10-08 Bank Of America Corporation Authentication protocol elevation triggering system
US10503627B2 (en) 2017-10-30 2019-12-10 Bank Of America Corporation Robotic process automation enabled file dissection for error diagnosis and correction
US10705948B2 (en) 2017-10-30 2020-07-07 Bank Of America Corporation Robotic process automation simulation of environment access for application migration
US10686684B2 (en) 2017-11-02 2020-06-16 Bank Of America Corporation Individual application flow isotope tagging within a network infrastructure
US10575231B2 (en) * 2017-11-03 2020-02-25 Bank Of America Corporation System for connection channel adaption using robotic automation
US10474755B2 (en) 2017-11-03 2019-11-12 Bank Of America Corporation Robotics assisted production support utility
US10120656B1 (en) 2017-11-07 2018-11-06 Bank Of America Corporation Robotic process automation system for functional evaluation and improvement of back end instructional constructs
US10606687B2 (en) 2017-12-04 2020-03-31 Bank Of America Corporation Process automation action repository and assembler
US10452674B2 (en) * 2017-12-07 2019-10-22 Accenture Global Solutions Limited Artificial intelligence and robotic process automation for automated data management
US10802889B1 (en) 2018-07-18 2020-10-13 NTT DATA Services, LLC Systems and methods of virtual resource monitoring for robotic processes
JP6452882B1 (ja) * 2018-07-28 2019-01-16 BizteX株式会社 ウェブブラウザの操作を伴う業務プロセスを自動化するためのシステム、方法及びプログラム
US10878531B2 (en) * 2018-08-17 2020-12-29 Accenture Global Solutions Limited Robotic process automation
WO2020061697A1 (en) * 2018-09-28 2020-04-02 Element Ai Inc. Context-based recommendations for robotic process automation design
US20200206920A1 (en) 2018-12-31 2020-07-02 Kofax, Inc. Systems and methods for identifying processes for robotic automation and building models therefor
CN110248164A (zh) * 2019-06-27 2019-09-17 四川中电启明星信息技术有限公司 Pc自动化作业监控方法及系统
US10817314B1 (en) 2019-10-01 2020-10-27 NTT DATA Services, LLC Augmented shareable video files for robotic process automation

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1372505A (zh) * 2000-04-03 2002-10-02 索尼公司 机器人控制装置和方法
CN1757492A (zh) * 2004-10-05 2006-04-12 发那科株式会社 具有视觉传感器的机器人系统
CN1923470A (zh) * 2005-09-01 2007-03-07 发那科株式会社 机器人监控系统
CN102270139A (zh) * 2011-08-16 2011-12-07 潘天华 一种屏幕截图的方法
CN102269989A (zh) * 2010-03-22 2011-12-07 费希尔-罗斯蒙特系统公司 基于过程控制标签间关系的用于数据驱动界面的方法及装置
CN103443787A (zh) * 2011-02-01 2013-12-11 埃森哲环球服务有限公司 用于标识文本关系的系统
CN104238418A (zh) * 2014-07-02 2014-12-24 北京理工大学 一种交互现实系统和方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4825394A (en) * 1985-05-07 1989-04-25 General Dynamics Corporation Vision metrology system
US6181371B1 (en) * 1995-05-30 2001-01-30 Francis J Maguire, Jr. Apparatus for inducing attitudinal head movements for passive virtual reality
US8330812B2 (en) * 1995-05-30 2012-12-11 Simulated Percepts, Llc Method and apparatus for producing and storing, on a resultant non-transitory storage medium, computer generated (CG) video in correspondence with images acquired by an image acquisition device tracked in motion with respect to a 3D reference frame
US7453451B1 (en) * 1999-03-16 2008-11-18 Maguire Francis J Jr Moveable headrest for viewing images from different directions
JP2001159903A (ja) * 1999-12-01 2001-06-12 Sanshin Ind Co Ltd 組合せ完成品用単位装置の最適化装置
US7830362B2 (en) * 2001-07-05 2010-11-09 Michael Cain Finley Laser and digital camera computer pointer device system
WO2003064116A2 (en) * 2002-01-31 2003-08-07 Braintech Canada, Inc. Method and apparatus for single camera 3d vision guided robotics
US7505604B2 (en) * 2002-05-20 2009-03-17 Simmonds Precision Prodcuts, Inc. Method for detection and recognition of fog presence within an aircraft compartment using video images
SE0203908D0 (sv) * 2002-12-30 2002-12-30 Abb Research Ltd An augmented reality system and method
WO2006016866A2 (en) * 2004-07-08 2006-02-16 Microsoft Corporation Automatic image capture for generating content
US7773799B2 (en) * 2004-04-02 2010-08-10 The Boeing Company Method for automatic stereo measurement of a point of interest in a scene
US7626569B2 (en) * 2004-10-25 2009-12-01 Graphics Properties Holdings, Inc. Movable audio/video communication interface system
WO2007052285A2 (en) * 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
AT539391T (de) * 2007-03-29 2012-01-15 Irobot Corp Konfigurationssystem und -verfahren für eine roboteroperator-steuereinheit
JP5228716B2 (ja) * 2007-10-04 2013-07-03 日産自動車株式会社 情報提示システム
CA2712607A1 (en) * 2008-01-25 2009-07-30 Mcmaster University Surgical guidance utilizing tissue feedback
US8559699B2 (en) * 2008-10-10 2013-10-15 Roboticvisiontech Llc Methods and apparatus to facilitate operations in image based systems
FR2954518B1 (fr) * 2009-12-18 2012-03-23 Aripa Service Innovation Ind " systeme anticollision pour le deplacement d'un objet dans un environnement encombre."
US9104202B2 (en) * 2010-05-11 2015-08-11 Irobot Corporation Remote vehicle missions and systems for supporting remote vehicle missions
KR20140040094A (ko) * 2011-01-28 2014-04-02 인터치 테크놀로지스 인코퍼레이티드 이동형 원격현전 로봇과의 인터페이싱
JP5622647B2 (ja) * 2011-04-11 2014-11-12 株式会社東芝 シナリオ生成装置およびシナリオ生成プログラム
WO2012150602A1 (en) * 2011-05-03 2012-11-08 Yogesh Chunilal Rathod A system and method for dynamically monitoring, recording, processing, attaching dynamic, contextual & accessible active links & presenting of physical or digital activities, actions, locations, logs, life stream, behavior & status
US8793578B2 (en) * 2011-07-11 2014-07-29 International Business Machines Corporation Automating execution of arbitrary graphical interface applications
US10176725B2 (en) * 2011-08-29 2019-01-08 Worcester Polytechnic Institute System and method of pervasive developmental disorder interventions
US9679215B2 (en) * 2012-01-17 2017-06-13 Leap Motion, Inc. Systems and methods for machine control
GB201202344D0 (en) * 2012-02-10 2012-03-28 Isis Innovation Method of locating a sensor and related apparatus
US20130335405A1 (en) * 2012-06-18 2013-12-19 Michael J. Scavezze Virtual object generation within a virtual environment
US8965576B2 (en) * 2012-06-21 2015-02-24 Rethink Robotics, Inc. User interfaces for robot training
US9607787B2 (en) * 2012-09-21 2017-03-28 Google Inc. Tactile feedback button for a hazard detector and fabrication method thereof
US9274742B2 (en) * 2012-10-25 2016-03-01 PixiOnCloud, Inc. Visual-symbolic control of remote devices having display-based user interfaces
CN105101903B (zh) * 2013-02-04 2018-08-24 儿童国家医疗中心 混合控制外科机器人系统
US8868241B2 (en) * 2013-03-14 2014-10-21 GM Global Technology Operations LLC Robot task commander with extensible programming environment
JP5931806B2 (ja) * 2013-06-24 2016-06-08 日本電信電話株式会社 画像認識による自動操作装置、その方法及びプログラム
JP2015028765A (ja) * 2013-06-25 2015-02-12 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 入力制御方法及び入力制御装置
US9179096B2 (en) * 2013-10-11 2015-11-03 Fuji Xerox Co., Ltd. Systems and methods for real-time efficient navigation of video streams
US9672728B2 (en) * 2014-04-07 2017-06-06 Google Inc. Smart hazard detector drills
US9704043B2 (en) * 2014-12-16 2017-07-11 Irobot Corporation Systems and methods for capturing images and annotating the captured images with information

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1372505A (zh) * 2000-04-03 2002-10-02 索尼公司 机器人控制装置和方法
CN1757492A (zh) * 2004-10-05 2006-04-12 发那科株式会社 具有视觉传感器的机器人系统
CN1923470A (zh) * 2005-09-01 2007-03-07 发那科株式会社 机器人监控系统
CN102269989A (zh) * 2010-03-22 2011-12-07 费希尔-罗斯蒙特系统公司 基于过程控制标签间关系的用于数据驱动界面的方法及装置
CN103443787A (zh) * 2011-02-01 2013-12-11 埃森哲环球服务有限公司 用于标识文本关系的系统
CN102270139A (zh) * 2011-08-16 2011-12-07 潘天华 一种屏幕截图的方法
CN104238418A (zh) * 2014-07-02 2014-12-24 北京理工大学 一种交互现实系统和方法

Also Published As

Publication number Publication date
EP3112965A1 (en) 2017-01-04
CN107666987A (zh) 2018-02-06
US9555544B2 (en) 2017-01-31
AU2016286308A1 (en) 2018-01-04
AU2016286308B2 (en) 2018-11-29
US20170001308A1 (en) 2017-01-05
EP3215900A1 (en) 2017-09-13
JP2018535459A (ja) 2018-11-29
EP3215900B1 (en) 2019-11-27

Similar Documents

Publication Publication Date Title
US9448652B2 (en) Method and terminal for activating application based on handwriting input
US9135151B2 (en) Automatic verification by comparing user interface images
US9836192B2 (en) Identifying and displaying overlay markers for voice command user interface
EP3129871B1 (en) Generating a screenshot
US10248542B2 (en) Screenshot validation testing
US9846634B2 (en) Visual graphical user interface verification
US8640037B2 (en) Graphical overlay related to data mining and analytics
US8843858B2 (en) Optimization schemes for controlling user interfaces through gesture or touch
Dixon et al. Prefab: implementing advanced behaviors using pixel-based reverse engineering of interface structure
KR101087450B1 (ko) 문맥-의존 메뉴들의 제공 방법 및 이 방법을 구현하는 컴퓨터 판독 가능 저장 매체
TWI234743B (en) Tool-tip for multimedia files
US20150339213A1 (en) Automated testing of an application system
KR101033017B1 (ko) 변경 요청 폼 주석
US9740506B2 (en) Automating interactions with software user interfaces
US7584435B2 (en) Web usage overlays for third-party web plug-in content
CN102904996B (zh) 一种手机触摸屏性能测试的方法及装置、系统
Grigera et al. Automatic detection of usability smells in web applications
US5321838A (en) Event capturing for computer software evaluation
US8332765B2 (en) Problem reporting system based on user interface interactions
Yeh et al. Sikuli: using GUI screenshots for search and automation
US7669198B2 (en) On-demand translator for localized operating systems
US9182981B2 (en) Systems and methods for implementing pixel-based reverse engineering of interface structure
US10838699B2 (en) Generating data mappings for user interface screens and screen components for an application
Joorabchi et al. Reverse engineering iOS mobile applications
KR20110124223A (ko) 얼굴들을 상관시킴으로써 디지털 이미지들을 구조화하기

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