CN104657141A - 一种基于计算机视觉的gui软件包装器及其实现方法 - Google Patents
一种基于计算机视觉的gui软件包装器及其实现方法 Download PDFInfo
- Publication number
- CN104657141A CN104657141A CN201510075408.XA CN201510075408A CN104657141A CN 104657141 A CN104657141 A CN 104657141A CN 201510075408 A CN201510075408 A CN 201510075408A CN 104657141 A CN104657141 A CN 104657141A
- Authority
- CN
- China
- Prior art keywords
- gui
- software
- function
- image
- screen
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开一种基于计算机视觉的GUI软件包装器,包括基础层、功能层和应用层,基础层为软件包装器驱动GUI软件提供基础支持,包括:GUI软件的启动和卸载,GUI软件运行环境维护,鼠标和键盘等输入设备模拟,典型格式数据的剪贴板操作,指定屏幕区域的像素截取。功能层为软件包装器驱动GUI软件提供功能支持,包括:GUI模式的特征提取、屏幕GUI模式匹配、图像文本OCR识别、各种GUI部件功能的自动执行模型。应用层提供封装GUI软件的各种分析计算过程的能力,以实现GUI软件操作流程的自动化,包括:GUI软件操作流程建模引擎,GUI软件操作流程驱动引擎。本发明还公开了上述GUI软件包装器的实现方法。
Description
技术领域
本发明涉及一种软件重用技术,属于软件工程领域。
背景技术
权衡分析是系统设计过程中,比较不同设计方案、分析设计因子对系统响应的影响、综合多种因素进行优化和决策的过程,如图1所示。典型的权衡分析包括灵敏度分析、不确定性分析、系统优化等。
GUI即图形用户接口,是指软件的可见的窗口、图标、菜单、按钮及其它各种可视部分,这些可视的或图形化的模块称为GUI部件。例如,在个人计算机中常见的GUI部件是一个对话框的特殊窗口,用户可以通过这个特殊窗口输入文本或进行选择。通过鼠标、键盘等输入设备操作菜单、按钮等GUI部件,实现与GUI软件的人-机交互。
人工操作GUI软件进行权衡分析,一般在一个初始的系统设计方案基础上,通过手工操作某些GUI部件调整一个或多个设计因子的水平,生成新的设计方案;然后手工操作另外的GUI部件调用软件的计算功能,对新的设计方案进行计算;最后通过输出文件或软件界面上的GUI部件,获得关于系统响应的计算结果。当需要比较多个设计方案,或者设计方案的调整和计算需要很多人-机交互时,手工多次重复这些操作,不仅耗时、费力、繁琐,而且容易出错。通过软件驱动GUI软件自动执行这些重复性操作,尽量减少人-机交互,分析人员就可以比较更多的方案,将精力集中在设计方案本身的分析与决策,有助于获得更好的设计,提出更多的建议,提高权衡分析的效率。
软件包装器是一种驱动软件自动执行的软件模块,也叫软件适配器,其屏蔽了软件的具体实现和使用方式,对外提供封装了的软件分析计算功能的接口。软件包装器响应外部服务请求,包括初始化和终止服务、设计方案生成、计算并获取计算结果等。图2是软件包装器的一种抽象的功能模型。
对命令行接口(CLI)软件或公开应用编程接口(API)的软件,目前已经提出了一些软件包装器实现方法。其中,对基于文件I/O的CLI软件,通过读写输入文件生成设计方案,通过解析输出文件获取系统响应,借助操作系统调用执行软件功能。对公开API的软件,如动态链接库、COM组件、ActiveX组件、JavaBeans等,采用脚本语言或编程方式调用API,实现软件包装器。
上述软件包装器实现方法不适用于GUI软件,原因是:
(1)很多GUI软件特别是一些专业软件不提供源代码,也不提供或不公开API;
(2)大多数GUI软件的功能只能通过人工操作GUI部件的方式调用,不能通过API进行调用,也很难利用操作系统的管理功能进行调用;
(3)在一些GUI软件中,需要人工操作GUI部件设置部分或全部设计因子的水平,以及获取部分或全部系统响应的取值。
发明内容
本发明针对现有软件包装器实现方法的不足,提出了一种基于计算机视觉的GUI软件包装器及其实现方法,用该方法实现的GUI软件包装器不需要GUI软件提供源码或公开接口,而且具有平台无关性。
为实现上述目的,本发明提供一种基于计算机视觉的GUI软件包装器及其实现方法,包括如下步骤:
(1)整理使用该GUI软件分析特定设计方案过程中,在设置因子水平、计算系统响应、获取计算结果时,人工操作的GUI部件,以及这些GUI部件所实现的功能。获取这些GUI部件的图像,提取其模式特征;
(2)整理使用该GUI软件分析特定设计方案过程中,在设置因子水平、计算系统响应、获取计算结果时,人工辨识的GUI状态,以及这些GUI状态之间的间隔时间。获取这些GUI状态的图像,提取其模式特征;
(3)实现屏幕GUI模式匹配,以根据GUI模式及其模式特征,判别目标模式是否存在于屏幕上,以及存在情况下目标模式所占据的屏幕区域;
(4)分析人工操作该GUI软件的GUI部件实现其功能时,所执行的GUI交互的序列,通过模拟鼠标和键盘等输入设备,执行这些GUI交互,以实现GUI部件功能的自动执行;
(5)研究人工操作该GUI软件对特定设计方案进行分析计算,包括因子水平设置、系统响应计算、计算结果获取的过程中,所执行的GUI部件功能的序列,通过驱动这些GUI部件功能的自动执行,实现GUI软件操作流程的自动化。
为实现上述目的,作为本发明的一优选实施例,所实现的GUI软件包装器采用三层结构,包括基础层、功能层和应用层。
基础层为软件包装器驱动GUI软件提供基础支持,包括:GUI软件的启动和卸载,GUI软件运行环境维护,鼠标和键盘等输入设备模拟,典型格式数据的剪贴板操作,指定屏幕区域的像素截取。基础层与GUI软件无关,但与GUI软件的运行环境有关。
功能层为软件包装器驱动GUI软件提供功能支持,包括:GUI模式的特征提取、屏幕GUI模式匹配、图像文本OCR识别、各种GUI部件功能的自动执行模型。功能层的实现与GUI软件及其运行环境无关。
应用层提供封装GUI软件的各种分析计算过程的能力,以实现GUI软件操作流程的自动化,包括:GUI软件操作流程建模引擎,GUI软件操作流程驱动引擎。应用层的实现与GUI软件及其运行环境无关。
作为本发明的一优选实施例,利用现有的或自行开发的屏幕截图工具,手工获取使用GUI软件的过程中所操作的GUI部件的图像,以及所辨识的GUI状态的图像。如果软件提供了比较完善的使用手册,可根据使用手册获取这些GUI部件的图像和GUI状态的图像。
作为本发明的一优选实施例,对歧义GUI部件,获取其图像时可以适当扩大屏幕区域的范围,使其图像包含该GUI部件的描述性信息或其它辅助性信息,如:环绕该GUI部件的描述其作用的文字、该GUI部件临近区域内的像素。
作为本发明的一优选实施例,以环绕GUI部件的文字作为GUI部件图像的模式特征。
作为本发明的一优选实施例,以所提取的视觉词语集合、图像中的环绕文字作为GUI状态图像、较大的GUI部件图像的模式特征。
作为本发明的一优选实施例,根据GUI模式及其模式特征,采用屏幕匹配方法,判断目标模式是否出现在屏幕上、以及出现情况下目标模式所占屏幕区域。屏幕模式匹配的结果是屏幕上的矩形区域。
作为本发明的一优选实施例,屏幕模式匹配支持基于约束算子的匹配策略,即模式匹配在限定的屏幕区域内而非整个屏幕范围内进行。
作为本发明的一优选实施例,如果GUI部件图像较小,如图标或按钮的图像,采用基于归一化交叉验证的模板匹配方法进行屏幕GUI模式匹配。
作为本发明的一优选实施例,如果GUI部件图像包含文字,通过其环绕文字与OCR识别的屏幕文字比较进行屏幕GUI模式匹配。
作为本发明的一优选实施例,对GUI状态图像,或者GUI部件图像较大的情况,基于视觉词语集合和最临近匹配方法进行屏幕GUI模式匹配。
作为本发明的一优选实施例,对动态GUI部件,采用模糊匹配方法,对该GUI部件图像及其模式特征进行屏幕GUI模式匹配。
作为本发明的一优选实施例,对歧义GUI部件,采用基于约束算子的匹配策略,即在限定的屏幕区域内进行屏幕GUI模式匹配。
作为本发明的一优选实施例,利用屏幕GUI摩斯和匹配获得的GUI部件所占屏幕区域信息,通过模拟鼠标和键盘等输入设备执行GUI交互。
作为本发明的一优选实施例,采用时间Petri网模型描述实现GUI部件功能的GUI交互序列。用时间Petri网的瞬时转移表示GUI交互,用时间Petri网的库所表示执行这些交互所需要的条件和所产生的结果。
作为本发明的一优选实施例,将GUI软件包装器驱动GUI软件对设计方案进行分析计算的流程分为顺序执行的五个阶段:服务初始化、设计因子水平设置(设计方案生成)、系统响应计算、计算结果获取、服务终止。
作为本发明的一优选实施例,采用分层时间Petri网模型描述人工操作GUI软件分析特定设计方案的流程。用置换转移表示GUI部件功能,用库所表示实现这些部件功能所需要的条件和所产生的结果。
作为本发明的一优选实施例,将GUI部件功能分为结构性功能和系统性功能。在分层时间Petri网中,对系统性功能用时延置换转移表示,对结构性功能用瞬时置换转移表示。
作为本发明的一优选实施例,将分层时间Petri网的各模型子页中的端口库所与父网中的同名库所相互融合,把父网中与子网对应的置换转移用模型子页来代替,形成统一的时间Petri网系统,模拟GUI软件包装器驱动GUI软件对设计方案进行分析计算的完整流程。
作为本发明的一优选实施例,按照时间Petri网的执行规则,驱动GUI软件操作流程模型的执行。
作为本发明的一优选实施例,采用以下措施提高GUI软件包装器执行效率:在软件包装器首次运行时存储必要信息,包括:GUI部件所占据的屏幕区域、系统性功能的实际执行时间。在该软件包装器后续运行时,以存储的GUI部件的屏幕区域作为部件功能自动执行的输入,以存储的系统性功能的执行时间代替对其预先设置的延迟时间。
作为本发明的一优选实施例,通过终止或最小化或隐藏与该GUI软件无关的进程或窗口、将该GUI软件的特定窗口置于操作系统窗口对象的最前端,维护基于计算机视觉的GUI部件识别、GUI状态判别所需的软件环境。
有益效果:本发明所述的GUI软件包装器及其实现方法,不需要GUI软件的源码,GUI软件可不提供或不公开接口,且软件包装器的实现方法具有平台无关性。
附图说明
图1是权衡分析过程示意图;
图2是软件包装器的一种抽象的功能模型示意图;
图3是本发明实施例基于计算机视觉的GUI软件包装器实现方法的步骤示意图;
图4是本发明实施例所实现的GUI软件包装器的一较佳实施例的结构图;
图5是本发明实施例所述屏幕GUI模式匹配中约束算子的示意图;
图6是本发明实施例所述自动执行按钮选择功能的一较佳实施例的时间Petri网示意图;
图7是本发明实施例所述自动执行编辑框输入文本功能的一较佳实施例的时间Petri网示意图;
图8是本发明实施例所述自动执行编辑框输出文本功能的一较佳实施例的时间Petri网示意图;
图9是本发明实施例所述自动执行下拉列表框选择列表项功能的一较佳实施例的时间Petri网示意图;
图10是本发明实施例所述自动选择菜单项的一较佳实施例的时间Petri网示意图;
图11是本发明实施例所述GUI软件操作流程自动化的一较佳实施例的分层时间Petri网示意图;
图12是本发明实施例所述人工操作GUI部件实现其功能的一较佳实施例的分层时间Petri网示意图;
图13是本发明实施例所述自动设置因子水平的一较佳实施例的分层时间Petri网示意图;
图14自动输入偏心率的分层时间Petri网示意图;
图15是本发明实施例所述自动获取计算结果的一较佳实施例的分层时间Petri网示意图;
图16是自动获取总剂量的分层时间Petri网示意图;
图17是驱动一个简单的GUI软件计算并获取累积辐射剂量的分层时间Petri网示意图;
图18是一个简单的GUI软件的界面示意图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
参阅图3,图3是本发明基于计算机视觉的GUI软件包装器实现方法的步骤;参阅图4,图4是本发明所实现的GUI软件包装器的一较佳实施例的结构图;参阅图5,图5是本发明所述屏幕GUI模式匹配中约束算子的示意图;参阅图6,图6是本发明所述自动执行按钮选择功能的一较佳实施例的时间Petri网示意图;参阅图7,图7是本发明所述自动执行编辑框输入文本功能的一较佳实施例的时间Petri网示意图;参阅图8,图8是本发明所述自动执行编辑框输出文本功能的一较佳实施例的时间Petri网示意图;参阅图9,图9是本发明所述自动执行下拉列表框选择列表项功能的一较佳实施例的时间Petri网示意图;参阅图10,图10是本发明所述自动选择菜单项的一较佳实施例的时间Petri网示意图;参阅图11,图11是本发明所述GUI软件分析流程自动化的一较佳实施例的分层时间Petri网示意图;参阅图12,图12是本发明所述人工操作GUI部件实现其功能的一较佳实施例的分层时间Petri网示意图;参阅图13,图13是本发明所述自动设置因子水平的一较佳实施例的分层时间Petri网示意图;参阅图14,图14自动输入偏心率的分层时间Petri网示意图;参阅图15,图15是本发明所述自动获取计算结果的一较佳实施例的分层时间Petri网示意图;参阅图16,图16是自动获取总剂量的分层时间Petri示意图;参阅图17,图17是驱动一个简单的GUI软件计算并获取累积辐射剂量的分层时间Petri网示意图;参阅图18,图18是一个简单的GUI软件的界面示意图。
本发明实施例中,基于计算机视觉的GUI软件包装器实现方法如图3所示,包括如下步骤。
(1)整理使用该GUI软件分析特定设计方案过程中,在设置因子水平、计算系统响应、获取计算结果时,人工操作的GUI部件,以及这些GUI部件所实现的功能。获取这些GUI部件的图像,提取其模式特征;
(2)整理使用该GUI软件分析特定设计方案过程中,在设置因子水平、计算系统响应、获取计算结果时,人工辨识的GUI状态,以及这些GUI状态之间的间隔时间。获取这些GUI状态的图像,提取其模式特征;
(3)实现屏幕GUI模式匹配,以根据GUI模式及其模式特征,判别目标模式是否存在于屏幕上,以及存在情况下目标模式所占据的屏幕区域;
(4)分析人工操作该GUI软件的GUI部件实现其功能时,所执行的GUI交互的序列,通过模拟鼠标和键盘等输入设备,执行这些GUI交互,以实现GUI部件功能的自动执行;
(5)研究人工操作该GUI软件对特定设计方案进行分析计算,包括因子水平设置、系统响应计算、计算结果获取的过程中,所执行的GUI部件功能的序列,通过驱动这些GUI部件功能的自动执行,实现GUI软件操作流程的自动化。
本发明的依据是,在权衡分析过程中,人工操作GUI软件对多个设计方案进行分析计算,其中所遵循的流程和所执行的操作具有很强的重复性,即分析计算不同设计方案的流程和操作一般是相同的。这些流程和操作,可以用GUI部件识别、GUI交互、GUI状态判别等基本活动的组合以及这些活动的有序执行来描述,而这些活动又可通过软件驱动的方式自动实现。比如,基于屏幕截图和计算机视觉中的特征提取、模式识别、图像匹配等算法,可以实现GUI部件的自动识别与定位,以及GUI状态的自动判别;根据所识别的GUI部件的屏幕区域信息,在操作系统支持下模拟鼠标和键盘等输入设备,可以实现GUI部件功能的自动执行。于是,采用适当的模型将这些自动执行的功能和活动组织起来,就可以实现该GUI软件分析计算功能的有效封装,实现分析计算流程的自动化。
本发明所述GUI部件是指GUI软件界面上的结构性元素,包括:按钮、列表框、下拉列表框、滑块等选择和显示控件,选项卡、滚动条等导航控件,编辑框、组合框等输入控件,标签、状态条等输出控件,以及窗口、菜单、图标、表格等。本发明所述GUI部件不包括光标、调整句柄等GUI软件界面上的交互性元素。
本发明所述GUI部件,除了上述结构性元素自身,还包括构成这些GUI部件的各个可视部分。如:列表框的列表和滚动条;下拉列表框的列表和滚动条;组合框的列表和滚动条以及用于打开列表的按钮;表格的单元格。
本发明所述GUI状态是指GUI软件界面上的GUI部件及其属性取值的组合,如:提示对话框、窗口部件提示、状态栏提示、按钮状态提示等。操作人员通过GUI状态判断软件的内部状态,如:某个功能是否可执行、某次计算是否结束、某个结果是否可获得。
本发明所述GUI模式是指GUI软件界面上特定区域内像素的集合,如:GUI部件的屏幕截图、GUI状态的屏幕截图。
本发明所述GUI交互是指对GUI部件的基本操作,如:点击GUI部件、向GUI部件写入文本、等待GUI部件初始化结束。
本发明所述GUI部件功能是指改变GUI软件内部状态的操作,GUI部件功能的实现涉及对一个GUI部件顺序执行的一个或多个GUI交互。
一种GUI软件包装器的结构,如图4所示,包括基础层、功能层和应用层,以满足GUI软件包装器实现过程中不同层次的需求。
(1)基础层为软件包装器驱动GUI软件提供基础支持,包括:GUI软件的启动和卸载,GUI软件运行环境维护,鼠标和键盘等输入设备模拟,典型格式数据的剪贴板操作,指定屏幕区域的像素截取。基础层与GUI软件无关,但与GUI软件的运行环境有关。
(2)功能层为软件包装器驱动GUI软件提供功能支持,包括:GUI模式的特征提取、屏幕GUI模式匹配、图像文本OCR识别、各种GUI部件功能的自动执行模型。功能层的实现与GUI软件及其运行环境无关。
(3)应用层提供封装GUI软件的各种分析计算过程的能力,以实现GUI软件操作流程的自动化,包括:GUI软件操作流程建模引擎,GUI软件操作流程驱动引擎。应用层的实现与GUI软件及其运行环境无关。
本发明所述GUI部件功能的自动执行是指:利用GUI部件所占屏幕区域信息,在不需要人工干预的情况下,通过软件执行一个GUI交互序列,以自动执行该GUI部件的功能。
本发明所述GUI软件操作流程的自动化是指:在不需要人工干预的情况下,通过软件模拟人工操作GUI软件进行的因子水平设置、系统响应计算、计算结果获取等过程。
基础层利用操作系统提供的管理功能实现。包括:
(1)利用进程管理功能,启动或卸载该GUI软件;
(2)利用进程管理和窗口管理功能,终止或最小化或隐藏与该GUI软件无关的进程或窗口,将该GUI软件的特定窗口置于操作系统窗口对象的最前端;
(3)利用输入设备管理功能,模拟鼠标和键盘等设备的输入,如鼠标的移动、单击、双击、拖拽以及键盘按键等;
(4)利用存储管理和屏幕设备管理功能,实现剪贴板操作和屏幕像素截取。
对GUI部件,使用现有的或自行开发的屏幕截图工具,在该GUI软件界面范围内,截取包含该GUI部件的特定区域内的图像,作为在屏幕上识别和定位该GUI部件的图像。对该图像命名或编号,并以常见图像文件格式(如.png格式)将其存储为磁盘文件。
对歧义GUI部件,获取其图像时可以适当扩大屏幕区域的范围,使其图像包含该GUI部件的描述性信息或其它辅助性信息,如:环绕该GUI部件的描述其作用的文字、该GUI部件临近区域内的像素。
本发明所述歧义GUI部件,是指在GUI软件界面上同时出现的外观相同或相近的多个GUI部件,根据这些GUI部件自身的图像无法在屏幕上对其进行准确识别和定位。
对GUI状态,使用现有的或自行开发的屏幕截图工具,在该GUI软件界面范围内,截取表示该GUI状态的特定区域内的图像,作为在屏幕上辨识该GUI状态的图像。对该图像命名或编号,并以常见图像文件格式(如.png格式)将其存储为磁盘文件。
如果软件提供了比较完善的使用手册,可以根据使用手册获取GUI部件的图像和GUI状态的图像。
以GUI部件图像中环绕该GUI部件的文字作为GUI部件图像的模式特征。
以所提取的视觉词语集合、图像中的环绕文字作为GUI状态图像、较大的GUI部件图像的模式特征。
为实现上述软件包装器,GUI部件图像的模式特征应与时间、表现内容、软件内部状态无关。例如:作为文本输入输出域的GUI部件的模式特征应不包含其中的文本;动态GUI部件的模式特征应与时间和/或软件内部状态无关。
本发明所指动态GUI部件,是指软件内部状态不同则颜色、形状或文本等不同的GUI部件,以及采用动画形式表现的GUI部件。前者比如某些按钮存在使能和不使能两种状态,并且在使能和不使能时其图像具有不同颜色;后者GUI部件图像是随时间动态变化的。
为实现上述软件包装器,GUI状态图像的模式特征应与设计方案无关。
根据GUI模式及其模式特征,采用屏幕匹配方法,判断目标模式是否出现在屏幕上、以及出现情况下目标模式所占屏幕区域。屏幕GUI模式匹配的结果是屏幕上的矩形区域。
屏幕GUI模式匹配支持基于约束算子的匹配策略,即模式匹配在限定的屏幕区域内而非整个屏幕范围内进行,如图5所示,约束算子left,right,above,below,nearby,inside,outside分别表示在2维屏幕坐标系中,在当前屏幕区域的左侧、右侧、上方、下方、附近、内部、外部进行屏幕GUI模式匹配。
如果GUI部件图像较小,如图标或按钮的图像,采用基于归一化交叉验证的模板匹配方法进行屏幕GUI模式匹配。
如果GUI部件图像包含文字,通过其环绕文字与OCR识别的屏幕文字比较进行屏幕GUI模式匹配。
对GUI状态图像,或者GUI部件图像较大的情况,基于视觉词语集合和最临近匹配方法进行屏幕GUI模式匹配。
对动态GUI部件,采用模糊匹配方法,对该GUI部件图像及其模式特征进行屏幕GUI模式匹配。
对歧义GUI部件,采用基于约束算子的匹配策略,即在限定的屏幕区域内进行屏幕GUI模式匹配。
利用屏幕GUI模式匹配获得的GUI部件所占屏幕区域信息,通过模拟鼠标和键盘等输入设备执行GUI交互。
本发明所述GUI部件所占屏幕区域信息,包括该GUI部件的各个可视部分所占屏幕区域。
使用任何GUI部件功能的过程,都可以分解为一个或多个GUI交互构成的序列,采用时间Petri网描述这一序列。其中,用时间Petri网的瞬时转移表示GUI交互,用时间Petri网的库所表示执行这些交互所需要的条件和所产生的结果。
为更好地说明本发明,举例说明使用典型GUI部件的典型功能时,所执行的GUI交互的序列:
例如:按钮的典型功能为选择,其交互序列为:(1)鼠标移动光标至按钮位置;(2)鼠标点击。其时间Petri网如图6所示,输入库所为按钮所占屏幕区域。
例如:编辑框的一个典型功能为输入文本,其交互序列为:(1)鼠标移动光标至编辑框位置;(2)鼠标点击以设置焦点;(3)鼠标双击以全选其文本;(4)(通过剪贴板操作)输入文本字符串。其时间Petri网如图7所示,输入库所为编辑框所占屏幕区域。
例如:编辑框的一个典型功能为输出文本,其交互序列为:(1)鼠标移动光标至编辑框位置;(2)鼠标点击以设置焦点;(3)鼠标双击以全选其文本;(4)(通过剪贴板操作)获取文本。其时间Petri网如图8所示,输入库所为编辑框所占屏幕区域。
例如:下拉列表框的典型功能为选择列表项,其交互序列为:(1)鼠标移动光标至下拉列表按钮位置;(2)鼠标点击打开下拉列表;(3)自动截屏以获取下拉列表图像;(4)待选列表项文本匹配截屏图像的OCR文本确定待选项区域;(5)鼠标移动光标至匹配的待选项区域;(6)鼠标点击以选择列表项。其时间Petri网如图9所示,输入库所1为下拉列表框按钮所占屏幕区域,输入库所2为打开的下拉列表框所占屏幕区域。
例如:选择顶层菜单下的一个菜单项,其交互序列为:(1)鼠标移动光标至顶层菜单位置;(2)鼠标点击打开下级菜单;(3)鼠标移至菜单项位置;(4)鼠标点击选择菜单项。其时间Petri网如图10所示,输入库所1为顶层菜单所占屏幕区域,输入库所2为菜单项所占屏幕区域。
通过GUI软件包装器驱动GUI软件进行设计方案分析计算的任一流程,都可以分解为一个或多个GUI部件功能构成的序列,采用分层时间Petri网描述这一序列。其中,用置换转移表示GUI部件功能,用库所表示执行这些部件功能所需要的条件和所产生的结果。
作为本发明的一个具体实施例,将GUI部件功能分为结构性功能和系统性功能。在分层时间Petri网中,对系统性功能用时延置换转移表示,延迟时间通过预估得到;对结构性功能用瞬时置换转移表示。
本发明所述结构性功能亦称结构性操作,是引起GUI软件界面结构变化的事件,如:关闭窗口、打开菜单、选择菜单项以打开窗口。
本发明所述系统性功能交互亦称系统性操作,是执行系统分析计算等功能的事件,如:选择菜单项加载设计方案、点击按钮进行计算、通过GUI部件设置因子水平和获取系统响应取值等。系统性功能不改变GUI软件界面的结构。
通过GUI软件包装器驱动GUI软件对设计方案进行分析计算的任一完整流程,都包含如下顺序执行的五个阶段:服务初始化、设计因子水平设置(设计方案生成)、系统响应计算、计算结果获取、服务终止.在每个阶段通过GUI软件运行环境维护功能,维护包装器驱动GUI软件所需的软件环境。
GUI软件操作流程的时间Petri网如图11所示,时延转移T1、T5表示服务初始化和服务终止,置换转移T2、T3、T4对应于分析计算流程的三个中间阶段,库所P1、P2、P3、P4对应于其输出转移使能所需的条件。
作为本发明的一个具体实施例,模拟人工操作GUI部件执行其功能的过程,包含如下顺序执行的两个阶段:首先基于GUI部件图像及模式特征,确定GUI部件所占屏幕区域;其次,自动执行GUI部件的功能。其分层时间Petri网如图12所示,输入库所为GUI部件图像及其模式特征,瞬时转移t1表示基于GUI部件图像及其模式特征的屏幕GUI模式匹配,置换转移t2表示GUI部件功能的自动执行,其模型子页为该部件功能自动执行的时间Petri网。
作为本发明的一个具体实施例,认为设计因子水平通过GUI软件界面设置。自动设置因子水平的分层时间Petri网模型如图13所示,输入库所P1表示服务已初始化,输出库所P2表示因子水平设置完成,其分别对应于图11所示时间Petri网的库所P1和P2;置换转移T20表示自动操作GUI软件加载初始设计方案,置换转移T21~T2n表示通过GUI软件界面设置n个设计因子的水平。图13所示分层时间Petri网是图11所示分层时间Petri网的置换转移T2的模型子页。
通过GUI软件界面设置某个设计因子水平的过程包括:(1)通过屏幕GUI模式匹配获得对应的GUI部件所占屏幕区域;(2)自动执行该GUI部件的对应功能设置设计因子水平。
为更好地说明本发明,举例说明通过GUI界面设置设计因子水平的过程:
例如:如图18所示为一个简单的GUI软件的界面,其中表示轨道参数的6个编辑框完全相同。自动设置偏心率的过程为:(1)根据偏心率编辑框前面的文本标签确定偏心率编辑框所占屏幕区域;(2)自动执行编辑框的文本输入功能,输入偏心率数值。其分层时间Petri网如图14所示。
作为本发明的一个实施例,认为计算结果取自GUI软件界面。计算结果自动获取的分层时间Petri网模型如图15所示,输入库所P3表示计算已结束,置换转移T41~T4m表示通过GUI界面获得m个系统响应取值的过程。图15所示分层时间Petri网是图11所示分层时间Petri网的置换转移T4的模型子页。
通过GUI软件界面获得某个系统响应的取值的过程包括:(1)通过屏幕模式匹配获得对应的GUI部件所占屏幕区域;(2)自动执行该GUI部件的对应功能获得该系统响应取值。
为更好地说明本发明,举例说明通过GUI软件界面获取系统响应的过程:
例如:如图18所示为一个简单的GUI软件的界面,获取总剂量的过程为:(1)根据总剂量编辑框前面的文本标签确定总剂量编辑框所占屏幕区域;(2)自动执行编辑框的文本输出功能,获得总剂量数值。其分层时间Petri网如图16所示。
为更好地说明本发明,举例说明自动驱动GUI软件分析设计方案的操作过程:
例如:如图18所示为一个简单的GUI软件的界面。驱动该GUI软件计算并获取累积辐射剂量的分层时间Petri网如图17所示,其步骤描述如下:
(1)自动执行下拉列表框的列表项选择功能,选择屏蔽材料;自动执行对应于屏蔽厚度的编辑框的文本输入功能,设置屏蔽结构厚度;
(2)自动执行按钮的选择功能(以打开其它GUI界面选择和设置能谱文件);
(3)自动执行对应于6个轨道根数的编辑框的文本输入功能,设置飞行器轨道;
(4)自动执行按钮的选择功能进行计算,并等待计算结束;
(5)自动执行4个累积辐射剂量对应的编辑框的文本输出功能,获取计算结果。
将分层时间Petri网各模型子页中的端口库所与父网中的同名库所相互融合,把父网中与子网对应的置换转移用模型子页来代替,形成统一的时间Petri网系统,模拟GUI软件包装器驱动GUI软件对设计方案进行分析计算的完整流程。
按照时间Petri网的执行规则,驱动GUI软件操作流程模型的执行。
为提高GUI软件包装器的运行效率,进行如下优化:在软件包装器首次运行时存储必要信息,包括:GUI部件所占据的屏幕区域、系统性功能的实际执行时间。在该软件包装器后续运行时,以存储的GUI部件的屏幕区域作为部件功能自动执行模型的输入,以存储的系统性功能的执行时间代替对其预先设置的延迟时间。
以上所述,仅为本发明优选实施例的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可不经过创造性劳动获得的变化或替换,都应涵盖在本发明的保护范围之内,本说明书内容亦不应理解为对本发明的限制。
Claims (12)
1.一种基于计算机视觉的GUI软件包装器实现方法,其特征在于,包括如下步骤:
(1)整理使用该GUI软件分析特定设计方案过程中,在设置因子水平、计算系统响应、获取计算结果时,人工操作的GUI部件,以及这些GUI部件所实现的功能,获取这些GUI部件的图像,提取其模式特征;
(2)整理使用该GUI软件分析特定设计方案过程中,在设置因子水平、计算系统响应、获取计算结果时,人工辨识的GUI状态,以及这些GUI状态之间的间隔时间,获取这些GUI状态的图像,提取其模式特征;
(3)实现屏幕GUI模式匹配,以根据GUI模式及其模式特征,判别目标模式是否存在于屏幕上,以及存在情况下目标模式所占据的屏幕区域;
(4)分析人工操作该GUI软件的GUI部件实现其功能时,所执行的GUI交互的序列,通过模拟输入设备,执行这些GUI交互,以实现GUI部件功能的自动执行;
(5)研究人工操作该GUI软件对特定设计方案进行分析计算,包括因子水平设置、系统响应计算、计算结果获取的过程中,所执行的GUI部件功能的序列,通过驱动这些GUI部件功能的自动执行,实现GUI软件操作流程的自动化。
2.如权利要求1所述的GUI软件包装器实现方法,其特征在于,基于计算机视觉的特征提取和模式匹配算法所识别的屏幕GUI模式,并模拟输入设备,通过软件自动实现GUI交互、GUI部件功能、GUI软件操作流程,以取代人工操作GUI部件与GUI软件进行人-机交互的活动。
3.如权利要求1所述的GUI软件包装器实现方法,其特征在于,步骤(1)、(2)中获取GUI部件和GUI状态的图像的方法为:利用现有的或自行开发的屏幕截图工具,手工获取使用GUI软件的过程中所操作的GUI部件的图像,以及所辨识的GUI状态的图像。
4.如权利要求1所述的GUI软件包装器实现方法,其特征在于,步骤(1)中获取GUI部件的图像的方法为:对歧义GUI部件,获取其图像时可以适当扩大屏幕区域的范围,使其图像包含该GUI部件的描述性信息或其它辅助性信息。
5.如权利要求1所述的GUI软件包装器实现方法,其特征在于,步骤(1)、(2)中GUI模式特征提取方法为:以环绕GUI部件的文字为GUI部件图像的模式特征;以所提取的视觉词语集合、图像中的环绕文字作为GUI状态图像、较大的GUI部件图像的模式特征。
6.如权利要求1所述的GUI软件包装器实现方法,其特征在于,步骤(3)中屏幕GUI模式匹配支持基于约束算子的匹配策略,即模式匹配在限定的屏幕区域内而非整个屏幕范围内进行,且屏幕GUI模式匹配方法为:如果GUI部件图像较小,采用基于归一化交叉验证的模板匹配方法;如果GUI部件图像包含文字,通过其环绕文字与OCR识别的屏幕文字比较进行匹配;对GUI状态图像,或者GUI部件图像较大的情况,基于视觉词语集合和最临近匹配方法进行匹配;对动态GUI部件,采用模糊匹配方法,对该GUI部件图像及其模式特征进行匹配;对歧义GUI部件,采用基于约束算子的匹配策略,即在限定的屏幕区域内进行匹配。
7.一种基于计算机视觉的GUI软件包装器,其特征在于,包括基础层、功能层和应用层,基础层为软件包装器驱动GUI软件提供基础支持,包括:GUI软件的启动和卸载,GUI软件运行环境维护,输入设备模拟,典型格式数据的剪贴板操作,指定屏幕区域的像素截取;功能层为软件包装器驱动GUI软件提供功能支持,包括:GUI模式的特征提取、屏幕GUI模式匹配、图像文本OCR识别、各种GUI部件功能的自动执行模型;应用层提供封装GUI软件的各种分析计算过程的能力,以实现GUI软件操作流程的自动化,包括:GUI软件操作流程建模引擎,GUI软件操作流程驱动引擎。
8.如权利要求7所述的GUI软件包装器,其特征在于,基础层利用操作系统提供的管理功能实现,包括:
(1)利用进程管理功能,启动或卸载该GUI软件;
(2)利用进程管理和窗口管理功能,终止或最小化或隐藏与该GUI软件无关的进程或窗口,将该GUI软件的特定窗口置于操作系统窗口对象的最前端;
(3)利用输入设备管理功能,模拟输入设备的输入;
(4)利用存储管理和屏幕设备管理功能,实现剪贴板操作和屏幕像素截取。
9.如权利要求7所述的GUI软件包装器,其特征在于,功能层利用计算机视觉方法实现GUI模式特征提取和屏幕GUI模式匹配,利用时间Petri网描述各GUI部件功能的自动执行模型,其中,用时间Petri网的瞬时转移表示GUI交互,用时间Petri网的库所表示执行这些交互所需要的条件和所产生的结果。
10.如权利要求7所述的GUI软件包装器,其特征在于,应用层利用分层时间Petri网描述GUI软件操作流程模型,其中,用置换转移表示GUI部件功能,用库所表示实现这些部件功能所需要的条件和所产生的结果。
11.如权利要求7所述的GUI软件包装器,其特征在于,应用层将GUI部件功能分为结构性功能和系统性功能,在GUI软件操作流程模型中,对系统性功能用时延置换转移表示,对结构性功能用瞬时置换转移表示。
12.如权利要求7所述的GUI软件包装器,其特征在于,应用层将分层时间Petri网各模型子页中的端口库所与父网中的同名库所相互融合,把父网中与子网对应的置换转移用模型子页来代替,形成统一的时间Petri网系统,按照时间Petri网的执行规则,驱动GUI软件操作流程模型的执行,支持以存储的GUI部件的屏幕区域代替对该GUI部件图像及其模式特征的屏幕GUI模式匹配过程,以存储的系统性功能执行时间代替对该功能预先设置的延迟时间,以提高软件包装器的运行效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510075408.XA CN104657141B (zh) | 2015-02-12 | 2015-02-12 | 一种基于计算机视觉的gui软件包装器及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510075408.XA CN104657141B (zh) | 2015-02-12 | 2015-02-12 | 一种基于计算机视觉的gui软件包装器及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657141A true CN104657141A (zh) | 2015-05-27 |
CN104657141B CN104657141B (zh) | 2017-09-26 |
Family
ID=53248327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510075408.XA Active CN104657141B (zh) | 2015-02-12 | 2015-02-12 | 一种基于计算机视觉的gui软件包装器及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657141B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229481A (zh) * | 2017-12-25 | 2018-06-29 | 中国移动通信集团江苏有限公司 | 屏幕内容分析方法、装置、计算设备及存储介质 |
CN108762765A (zh) * | 2018-06-05 | 2018-11-06 | 河北工业大学 | 基于contiki系统的开发板程序编译下载方法 |
CN109765838A (zh) * | 2019-03-04 | 2019-05-17 | 杭州电子科技大学 | 可编程逻辑控制器组态文件的生成方法及装置 |
WO2019184138A1 (zh) * | 2018-03-30 | 2019-10-03 | 平安科技(深圳)有限公司 | 票据信息录入方法、装置、计算机设备和存储介质 |
US11422696B2 (en) | 2019-02-25 | 2022-08-23 | Micro Focus Llc | Representation of user interface interactive regions |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786891A (zh) * | 2004-12-09 | 2006-06-14 | 三星电子株式会社 | 自动处理图像的方法以及使用该方法的装置 |
CN101082877A (zh) * | 2006-05-30 | 2007-12-05 | 上海科泰世纪科技有限公司 | 图形用户界面程序的自动测试接口及其自动测试方法 |
CN101089826A (zh) * | 2006-06-12 | 2007-12-19 | 国际商业机器公司 | 创建容错和自适应图形用户接口测试自动化的方法和系统 |
US20100229155A1 (en) * | 2009-03-09 | 2010-09-09 | Pandiyan Adiyapatham | Lifecycle management of automated testing |
CN102609341A (zh) * | 2011-07-08 | 2012-07-25 | 李康 | 硬件设备自动化测试系统及其测试方法 |
-
2015
- 2015-02-12 CN CN201510075408.XA patent/CN104657141B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786891A (zh) * | 2004-12-09 | 2006-06-14 | 三星电子株式会社 | 自动处理图像的方法以及使用该方法的装置 |
CN101082877A (zh) * | 2006-05-30 | 2007-12-05 | 上海科泰世纪科技有限公司 | 图形用户界面程序的自动测试接口及其自动测试方法 |
CN101089826A (zh) * | 2006-06-12 | 2007-12-19 | 国际商业机器公司 | 创建容错和自适应图形用户接口测试自动化的方法和系统 |
US20100229155A1 (en) * | 2009-03-09 | 2010-09-09 | Pandiyan Adiyapatham | Lifecycle management of automated testing |
CN102609341A (zh) * | 2011-07-08 | 2012-07-25 | 李康 | 硬件设备自动化测试系统及其测试方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229481A (zh) * | 2017-12-25 | 2018-06-29 | 中国移动通信集团江苏有限公司 | 屏幕内容分析方法、装置、计算设备及存储介质 |
WO2019184138A1 (zh) * | 2018-03-30 | 2019-10-03 | 平安科技(深圳)有限公司 | 票据信息录入方法、装置、计算机设备和存储介质 |
CN108762765A (zh) * | 2018-06-05 | 2018-11-06 | 河北工业大学 | 基于contiki系统的开发板程序编译下载方法 |
US11422696B2 (en) | 2019-02-25 | 2022-08-23 | Micro Focus Llc | Representation of user interface interactive regions |
CN109765838A (zh) * | 2019-03-04 | 2019-05-17 | 杭州电子科技大学 | 可编程逻辑控制器组态文件的生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104657141B (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755347B2 (en) | Method and system for accessing table content in a digital image of the table | |
CN104657141A (zh) | 一种基于计算机视觉的gui软件包装器及其实现方法 | |
US8949742B2 (en) | Compressing tree diagrams | |
US11061661B2 (en) | Image based method and system for building object model and application states comparison and graphic-based interoperability with an application | |
US9274742B2 (en) | Visual-symbolic control of remote devices having display-based user interfaces | |
US9105006B2 (en) | Generating floating desktop representation of extracted model object | |
US9135714B1 (en) | Method and system for integrating a graphical user interface capture for automated test and retest procedures | |
US20110055680A1 (en) | Systems and methods for generating a set of linked rotational views of model objects | |
EP0453386B1 (en) | Hierarchical inter-panel process flow control | |
US20100088627A1 (en) | Method for loading and displaying different process displays on a user interface of an industrial control system | |
US20150082224A1 (en) | Computer graphical user interface system, and method for project mapping | |
US20090327888A1 (en) | Computer program for indentifying and automating repetitive user inputs | |
CN109871256B (zh) | 一种基于rpa集成稽核系统与异构系统的方法及设备 | |
CN103984626B (zh) | 一种生成测试用例脚本的方法及装置 | |
GB2423382A (en) | Generating business process programs using a symbolic representation of operators in a graphical interface | |
CN110442510A (zh) | 一种页面属性获取方法、装置及计算机设备、存储介质 | |
US20060020902A1 (en) | Interactive graphical user interfaces for computer display systems with simplified implementation for exposing completely hidden windows | |
US20060123344A1 (en) | Systems and methods for providing a presentation framework | |
US20120151411A1 (en) | Mechanism to input, search and create complex data strings within a single dialog | |
WO2019241027A1 (en) | Surfacing application functionality for an object | |
CN101216766A (zh) | 原子操作封装装置和方法 | |
CN115964027A (zh) | 基于人工智能的桌面嵌入式rpa流程配置系统及方法 | |
US8799865B2 (en) | Integrated data viewer | |
CN107957868A (zh) | 一种html用户界面可视化编辑方法及装置 | |
Laughery | Computer simulation as a tool for studying human-centered systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |