认知控制框架中的假设的结构性内容过滤的制作方法

文档序号:6554009阅读:177来源:国知局

专利名称::认知控制框架中的假设的结构性内容过滤的制作方法认知控制框架中的假设的结构性内容过滤
背景技术
1.领域本发明总体上涉及软件应用程序的自动控制和图像分析,更具体的,涉及分析由应用程序显示的图形用户界面(GUI)图像,用以应用程序随后执行的自动控制。2.说明通常的应用程序分析系统捕捉由用户输入的键盘输入数据和鼠标输入数据。然后可以将所捕捉的输入数据用于重复执行应用程序。这些系统依赖于应用程序在用于捕捉输入数据的同一计算机系统上的再现,从而不是可移植的。一些现有的应用程序分析系统使用图像识别技术,其依赖于屏幕分辨率和/或绘制方案,或者对所使用的底层操作系统(OS)有强烈的依赖性。这种系统通常依赖于诸如Windows32或X-Windows应用编程接口(API)之类的依附对象。这限制了它们的可移植性和实用性。因此,就希望获得用于分析应用程序的GUI的更好的技术。根据本发明以下的详细说明,本发明的特点和优点会变得显而易见,其中图1是根据本发明的一个实施例的认知控制框架系统的框图;图2是流程图,示出了根据本发明的一个实施例的认知控制框架中的处理;图3是在记录阶段期间所捕捉并保存的应用程序的GUI的实例显示;图4是在再现阶段期间捕捉的应用程序的GUI的实例显示;图5是示出了在根据本发明的一个实施例的记录阶段的轮廓描绘操作期间所识别的对象的一个实例图像;图6是示出了在根据本发明的一个实施例的记录阶段的活动对象的一个实例图像;图7是示出了在根据本发明的一个实施例的再现阶段的轮廓描绘操作期间所识别的对象的一个实例图像;图8是示出了在根据本发明的一个实施例的再现阶段期间的假设的一个实例图像;图9是示出了在根据本发明的一个实施例的再现阶段期间GUI中的高亮显示项的一个实例图像;图10是示出了在根据本发明的一个实施例的再现阶段期间GUI中没有高亮显示项的一个实例图像;图11是示出了在根据本发明的一个实施例的再现阶段期间用于GUI的项的复杂高亮显示的一个实例图像;图12是示出在根据本发明的一个实施例的再现阶段期间,对于GUI的被搜索项的没有高亮显示的图像;图13是实例图像,示出了在根据本发明的一个实施例的再现阶段期间GUI中的对象的轮廓;图14是示出了在根据本发明的一个实施例的再现阶段期间GUI中的对象的轮廓的另一个实例图像;图15是示出了根据本发明的一个实施例的图11的变换的一个实例图像;图16是示出了根据本发明的一个实施例的图12的变换的一个实例图像;图17是示出了根据本发明的一个实施例,在识别了对于其他非文本对象的全部假设的轮廓之后,且在呈现过滤结果之前,用于应用程序的GUI的一个实例图像;以及图18是流程图,示出在根据本发明的一个实施例的再现阶段期间的对于假设的结构性内容过滤。具体实施方式本发明的实施例包括认知控制框架(CCF),用于具有图形用户界面(GUI)的软件应用程序的自动控制。这种应用程序的实例可以在当前操作系统上执行,例如,诸如MicrosoftWindows⑤和Linux,以及其它操作系统。本发明的一个实施例创建了一个系统,该系统模拟人类用户与应用程序的GUI之间的交互,并使用GUI进行应用程序的自动控制,而无需依赖于诸如专用图形库、窗口系统,或可视化控制界面或实现之类的依附对象(dependency).CCF包括易用的跨平台工具,其可用于基于模式识别的GUI测试。通过独立于任何OS专用的控制和图形库,CCF可以用于与非标准的图形界面以及公知的界面进行交互。该系统用来记录用户在操作应用程序的GUI时所执行的任何种类的键盘和鼠标动作,并随后提供对所记录的场景(scenario)的再现。在本发明中,对所捕捉的显示数据(例如诸如屏幕截图)执行图像分析,以识别与用户输入数据相对应的应用程序的动作。可以将这些动作和输入数据进行存储,以便将来在相同用户场景的再现中使用,用以自动与应用程序进行交互。本发明的实施例包括两个阶段的操作记录阶段和再现阶段。在记录阶段期间,系统"学习"如何控制应用程序。系统登记并捕捉由用户提供的输入动作(例如,诸如鼠标点击或经键盘的文本输入),并显示图像数据(例如屏幕截图),该图像数据是由应用程序响应于这些动作而显示的。用户动作、在动作之间的时间间隔、所产生的应用程序的GUI显示数据、以及可能的其它数据和/或命令构成了执行场景。通过遵循执行场景,在再现阶段期间系统提供对应用程序的相同的但完全自动的执行(模拟用户控制,但无需用户的实际存在)。由于在记录和再现阶段期间将多个图像分析和结构性技术相应地用于图像,因此使自动执行成为可能。图1是根据本发明的一个实施例的认知控制框架(CCF)系统100的框图。图1显示了两个部件,记录部件102和再现部件104。这些部件可以实现为软件、固件或硬件,或者软件、固件和硬件的组合。在记录部件中,CCF系统在块106登记并捕捉用户输入活动。例如,用户可以用鼠标、键盘或其它输入设备,对由计算机系统执行的应用程序做出随着时间进展的输入选择。该输入数据被CCF系统捕捉并存储。接下来,在块108,可以捕捉显示数据(例如,进行屏幕截图)。在一个实施例中,当用户输入已经被应用程序接收时,可以仅捕捉显示数据。显示数据也被保存。在块IIO,可以对在块106和108期间所捕捉的数据进行分析和保存。这些过程可以多次重复。记录部件的处理结果包括用于由系统正在处理的应用程序的执行场景112。在一个实施例中,执行场景包括含有可扩展标记语言(XML)标签的脚本。该执行场景描述了对于应用程序的用户输入序列、在应用程序的GUI上的相应的显示图像、以及指示应用程序执行一些动作的命令。在稍后的时间点,在再现阶段期间可以启动再现部件104。在块114,可以基于所述执行场景产生模拟的用户活动。就是说,为了使用CCF系统进行自动控制,可以将来自所述执行场景的所保存的输入和命令输入到应用程序中。在应用程序处理该数据时,作为结果,在显示器上的显示数据可能改变。在块116,CCF系统对当前作为应用程序处理的结果而显示的再现显示数据和在记录阶段期间所捕捉的显示数据执行图像分析。在块118,可以对所记录的时间状态进行检查,以考虑在再现中的可能变化。例如,对象出现的时刻可以在基于所记录时间的时间间隔内。例如,在一个实施例中,可以从执行场景中所保存的数据中提取下限时刻(开始搜索的时刻),上限时刻可以是下限时刻加上10%或者一些其它的适当值。块114、116和118的处理每一个都导致数据被存储在报告120中。在块119,CCF系统基于图像分析的结果,控制应用程序的执行。可以对来自执行场景的用户输入数据项的序列中的每一项重复块U4、116和118。在连续动作之间的时间间隔是所捕捉的执行场景的一部分。然而,在再现阶段中遵循执行方案时,不应期望在再现时的任何两个动作之间的时间间隔会等于在记录阶段期间相同的两个动作之间的时间间隔。对于为何该间隔在再现时会与在记录期间不同,存在多种客观原因。例如,记录和再现期间的应用程序可能是在具有不同处理器速度的不同计算机系统上执行的,或者由于对外部数据或资源的访问,因此对于在再现期间的相同动作,应用程序可能需要不同的时间。这表明了对于在CCF系统中处理灵活的时间状态的要求,例如处理对于再现阶段期间的动作之间时间间隔的一些容限。在再现时的该时间间隔期间,系统数次将所记录的显示数据与再现显示数据进行核对,以确定再现显示数据是否基本上与所记录的显示数据相似。发现两者基本相似,就表明了先前的用户动作已经完成,系统可以前进到执行场景中的下一动作。该活动可以类似于以下情况用户与应用程序交互,并周期性地暂停来观看显示器,以确定是否应用程序是否己经基于先前的动作对显示做出了预期的可见改变。如果是这样,则可以执行新的动作。如果在时间间隔的上限结束时,应用程序还没有在显示器上产生CCF系统根据执行场景而预期的图像,则CCF系统就会中断执行场景的再现,并产生错误报告,说明执行场景如何未被遵循。在一个实施例中,可以校正该场景,并且可以要求CCF系统使用其它分支来继续。本发明的实施例的认知控制框架(CCF)系统对来自应用程序的GUI的显示数据执行图像分析和对象检测处理。CCF系统包括将在记录阶段期间所捕捉的图像(称为IR)与在再现阶段期间所捕捉的相应图像(称为IP)进行比较。系统的一个任务是检测IR中用户对其施加了动作的对象,在IP中找到相应的对象,并通过对检测到的对象施加动作,来继续在执行场景的执行路径上的处理。可以对图像内的多个对象重复这些步骤,并可以对随着时间进展的多对IR和IP重复这些步骤。用户对其施加了动作的对象可以称为"动作对象"。在IP中缺少与在IR所找到的动作对象相对应的动作对象就意味着应在稍后再次捕捉该IP,并再次尝试査找该动作对象。最后,或者可以在IP中找到该动作对象,或者中止场景的执行并产生描述错误状态是如何造成的报告,且会不再继续该场景。在本发明的实施例中,该对动作对象的检测可以在再现阶段期间实时进行,从一个动作前进到另一个。这样,所釆用的图像分析处理必须具有良好的性能,以便对再现时的时间状态仅引入最小的干扰。本发明实施例的CCF系统包括图像分析和检测处理。这种处理至少具有两个要求。首先,该处理应能够克服在所捕捉的图像中的一些变化,例如不同的配色方案、字体、以及可见元素的布局和状态。在一个实施例中,可以根据具体需要,将用于检査这些项(配色方案、字体等)的比较约束设定为指定的参数。克服这些变化是值得做的,因为可能在不同的操作环境中执行记录和再现,例如不同的屏幕分辨率、不同的可视方案、不同窗口布局、等等。另外,在相应的IR(通常在将动作施加到所关注对象之后捕捉的)与IP(在完成先前动作之后捕捉的)对中,可能会存在无关紧要的区别。其次,图像分析和对象检测处理的实施必须足够快,从而在再现期间仅引入最小的干扰和应用程序执行延迟。通过对所捕捉的图像进行处理,系统依据呈现在图像上的对象建立对图像的描述。每一个显示对象都可以由其轮廓和多个属性来表示。表I列举了用于本发明的一些可能的轮廓属性。在其它实施例中,也可以使用其它属性。<table>tableseeoriginaldocumentpage11</column></row><table>表l.轮廓属性图2是流程图,示出了根据本发明的一个实施例的CCF系统的处理。在由记录部件102负责的记录阶段220期间,在块200,系统确定IR中的对象的轮廓。在块202,系统检测当前的活动对象。在块204,系统检测IR中与当前活动对象相邻的其他对象。可以随着时间进展对在记录阶段中应用程序执行期间所有的活动对象重复这些步骤(200、202和204)。接下来,在由再现部件104负责的再现阶段222期间,在块206,CCF系统确定IP中多个对象的轮廓。在块208,CCF系统借助尺寸对多个轮廓进行过滤,以确定可能会变为对于有效对象的假设的轮廓和将它们相连接的轮廓。在块210,CCF系统借助IP中的基本空间布局对这些对象进行过滤,以便确定对于其他有效对象的假设的多个子集。例如,用于空间布局的过滤标准可以包括表格、向导和菜单。在一个实施例中,用户(或者具有级联搜索的CCF方案)可以设定精确(例如"照此")条件和模糊(例如"对象可以彼此接近")条件。在块212,CCF系统借助内容对多个对象进行过滤,以产生对于其他有效对象的假设的进一步的子集。例如,借助内容的过滤标准可以包括图像和文本。而且,在一个实施例中,用户(或具有级联搜索的CCF方案)可以设定精确(例如"图像应在几个点上具有区别,文本应具有基于Levenstein距离的最小区别")条件和模糊(例如"图像可以对高亮显示保持稳定并具有无关紧要的结构变化,在不考虑阿拉伯数字的情况下文本可以具有基于Levenstein距离的明显区别")条件。在块214,CCF系统对这些对象执行结构性过滤,以产生对于有效对象的最佳假设。最后,在块216,CCF系统借助于根据所述执行场景施加动作,来为新的对象重新计算旧动作。例如,假设用户(通过鼠标)选择屏幕位置(X-70,Y=200),并在(Xh50,Yl=150,X2=100,Y2^00)所指示的矩形处显示一个按钮。在IP中,该按钮可以表示为(X1-250,Y1-300,X2-200,Y2-100)所指示的矩形。总的来看,矩形左上角坐标和尺寸可以改变。可以基于按钮的位置和所调整的尺寸(对于X和Y坐标)重新计算鼠标点击(用户选择)。该计算提供了新的鼠标点击坐标(例如,X=290,Y=350)。表II示出了用于图2的图像分析处理的输入数据和输出。表II.图像分析处理<table>tableseeoriginaldocumentpage12</column></row><table><table>tableseeoriginaldocumentpage13</column></row><table>在每一步的过滤期间都有对具体轮廓属性的评估(如对于具体滤波器所要求的)。以这样的方式设计该过滤流水线当轮廓(假设)数量较小时,在处理流水线中将最耗时的评估步骤移动到靠后位置处。通过使用该方案,可以减小总体计算时间成本,由此有助于确保系统的良好性能。有用的是,保持折衷以便确保系统不会在早期步骤中过滤出一些以下情况的轮廓这些轮廓可能在稍后被确定为是活动对象的假设或者与活动对象相连的对象。在这点上,可以将预定输入参数设定为对其他轮廓(假设)的处理花费稍微多一点时间的宽泛的限制,但确保了系统不会遗漏重要的轮廓。用于本发明一个实施例实例伪代码在表III中示出。_表m.伪代码实例_BEGINCCF<<《<《<记录〉>>〉>》LOOP严记录,例如,直到特定键组合为止*/等待用户动作/*鼠标、键盘,也可能设定为其他*/钩住(hood)并保存屏幕截图/M列如〈Screenshotfilename="1.png"/>*/保存从先前动作计的时间间隔/*例如,<Sleepduration="2000"/>*/保存有关用户动作的信息/*例如,<Mouseaction=,,RightClick,,x=,,100"y=,,200,,/>*/ENDLOOP/*记录,例如,直到特定键组合为止VEXIT《<<《后处理〉》》〉>将所保存的数据处理为更紧凑的格式。用户可以按照他或她的需要对其进行改变。LOOP/*直到所保存的数据的末尾*/加载时间间隔并按照其进行等待IF[动作依赖于屏幕上坐标]/*例如,鼠标点击"THEN加载所保存的屏幕截图检测动作对象/*例如按钮*/、最接近的结构布局/*例如按钮周围的菜单项*/以及在所保存屏幕截图上的其他有用信息TimeCondition—label:勾住当前屏幕截图使用图像处理在当前屏幕截图上找到相应对象/*可以在搜索期间从所保存的屏幕截图获得更多信息*/IF[未找到对象]THENIF[核对时间状态]严例如,可以以例如1000毫秒的步长重复3次搜索VTHENGOTOTimeCondition一IabelELSE以错误代码EXIT/*而且可以发送相应报告到日志文件*/ENDIFELSE基于几个新找到的对象重新计算动作/*例如,重新计算鼠标点击的新坐标*/ENDIFENDIF产生动作/*其可以是图像处理之后改变的动作;而且,在动作期间可以在错误条件的情况下结束执行*/ENDLOOP/*直到所保存数据的末尾*/EXITENDCCF_可以通过以下的使用性能分析器应用程序的实例,来说明包括对两个图像的图像分析和活动对象检测的本发明实施例。这些附图显示了将图2的处理块用于来自记录阶段的第一图像(IR)和来自再现阶段的相应图像(IP)的情况。图3是在记录阶段期间捕捉并保存的应用程序的GUI的实例显示。该IR屏幕截屏显示了用户用鼠标选择"TimingActivity"项。图4是在再现阶段期间捕捉的应用程序的GUI的实例显示。注意,与图3相比,在所显示的窗口中有一些无关紧要的变化。图5是示出了在根据本发明的一个实施例的、在图3的图像上所执行的记录阶段的轮廓描绘操作期间所识别的对象的一个实例图像。图5显示了从图2的块200输出的样本。图6是示出了在根据本发明的一个实施例的、在对图5的图像执行时的记录阶段的活动对象的一个实例图像。在对图5的图像执行了图2的块202和204之后,这些轮廓被识别。在该实例中,具有标记为"Timing"的文本的轮廓被确定为是当前活动对象。图7是示出了在根据本发明的一个实施例的再现阶段的轮廓描绘操作期间所识别的对象的一个实例图像。该图像依据对图4的样本图像执行图2的块206而输出的。最后,图8是示出了在根据本发明的一个实施例的再现阶段期间的假设的一个实例图像。图8示出了依据图7的、对于来自图6的活动对象"TuningActivity"的假设。已经执行了块206—214的尺寸、空间、内容和结构性过滤。椭圆表示依据执行图2的块216而被选择为最佳假设的轮廓。相对于该给定对象(即,显示对象"timing")重新计算鼠标点击的新的点。在一些场景中,根据块208到212的过滤仍然得到很多要考虑的假设。当假设数量较大时,就需要更多的计算资源。在本发明的一个实施例中,可以使用用于假设过滤的结构性内容方法,来减小在空间(对屏幕截屏是二维(2D)的,通常情况下是多维的)中对于对象的GUI假设的数量。该结构性内容方法包括搜索方案,其简单但对选择正确的假设仍是有效的,尽管存在几个GUI噪声状况。在本发明的实施例中,所述噪声状况可以包括可变的配色方案、项的高亮显示、来自视频设备的噪声、抗锯齿及其它影响。在预过滤(如图2的块208到212中一样,根据尺寸、文本等)之后,对于图4的对象许多假设会保留下来。在此所用的术语"假设"意思是指在再现图像上的对象的轮廓,其与在该时间点在记录图像上的对象的轮廓相对应。这意味着先前施加的过滤不会拒绝该对应性。本发明实施例的假设过滤的结构性内容方法在图1的块116和图2的块214内的应用减小了有效假设的数量。可以参考一个实际例子(但为用于解释目的的相对简单的例子,以避免复杂的视觉表示)来理解对假设过滤的结构性内容方案。本发明的实施例解决的一般性问题是在GUI噪声状况的情况下,如何减小GUI假设的数量,所述噪声状况包括可变的配色方案、高亮显示、视频设备、抗锯齿等。本方案在认知控制框架中用作搜索过滤器的一个重要部分,以检测正确的假设。本发明的实施例在产品评估期间适于按照应用程序进行改变。起初,可以识别出不应该用于拒绝正确假设的几个GUI噪声伪像。例如,对于对象轮廓的一部分,高亮显示的项可以改变颜色(但不仅是由黑反白及与此相反的情况)。图9和IO表示了该实例。图9是示出了在根据本发明的一个实施例的再现阶段期间GUI中的高亮显示项的一个实例图像。图IO是示出了在根据本发明的一个实施例的再现阶段期间GUI中没有高亮显示项的一个实例图像。注意图9所示的屏幕截屏的一部分是在记录阶段期间捕捉的。在使用GUI的应用程序操作期间,用户从"File"菜单选择"New"项。用于该给定活动的具体行为可以如下(通常使用鼠标活动,但"热键"可选方案的使用也是可能的)。用户从"File"菜单首部将鼠标移动到"New"项,并选择该项。对所选项的高亮显示可以在来自图9所示的记录阶段的记录图像上见到。图IO显示了可以在再现阶段期间捕捉的屏幕截屏。图10不包括该高亮显示的内容,因为在该实例中系统在寻找先前的项,并且用户鼠标位于另一位置处。换句话说,在记录期间,当鼠标指向"New"项且发生高亮显示时,进行屏幕截屏,但在再现期间,在先前步骤中鼠标点击"File"项,随后在鼠标指向该"File"项时进行屏幕截屏。对于高亮显示可能有更多难以解决的状态,尤其是当轮廓描绘算法不能将文本与附近的图标分开时。图ll是示出了在根据本发明的一个实施例的再现阶段期间用于GUI的项的复杂高亮显示的一个实例图像。图12是示出在根据本发明的一个实施例的再现阶段期间,对于被搜索的GUI项没有高亮显示的一个图像。图11和12呈现具有在文本和图标之间的精确边界的高亮显示(在该实例中,高亮显示具有虚线的边界)。此外,由于对文本的抗锯齿处理,可能存在一些随机差别(注意光学字符识别(OCR)不是本滤波器的一部分)。另外,有时,可以基于没有任何高亮显示的对象,找到高亮显示的对象(见图9和IO的逆问题),换句话说,在所记录的屏幕截屏上的对象没有高亮显示,但在再现屏幕截屏上的相应对象具有高亮显示的情况下,可以考虑逆问题。一些应用,尤其是基于Web的应用,将所关注对象进行高亮显示,但在点击这些对象的情况下关闭高亮显示。实际上,视频驱动器软件也可以改变屏幕截屏中的一些像素。这些变化会是无关紧要的,但仍会出现(例如,发现是RGB(254,0,0),而不是RGB(255,0,0))。GUI噪声会影响轮廓描绘过程,尤其是噪声与轮廓宽度有关时。其他有效对象在记录图像和再现图像中可能具有不同的尺寸。在此可能有合并的和分割的轮廓。图13是示出了在根据本发明的一个实施例的再现阶段期间GUI中的对象的轮廓的一个实例图像。图14是示出了在根据本发明的一个实施例的再现阶段期间GUI中的对象的轮廓的另一个实例图像。图13和14分别表示了图9和IO的可能情形(在该实例中,变化为灰色阴影)。在本发明实施例的方法的应用期间,这种情况必须不会导致拒绝正确的假设。按照一个观点,应为对象尺寸设定较宽限度,以便即使在借助对象尺寸进行过滤之后,也会保留正确假设。按照另一个观点,如果限度被设定得过窄,在尺寸过滤之后就保留了多个不正确的假设。在该过滤步骤后存在许多不正确的对象就影响了其它随后过滤的效果和性能,尤其是空间结构性过滤。本发明实施例的结构性内容过滤适当地减小了假设的数量。该方法对于其他对象的过滤执行得很好,尤其是对于非文本对象的过滤。它是用于认知控制框架中降噪的滤波器的有用部件。通常,必须将本结构性内容过滤搜索方案用于几个对象。用于记录和再现图像的第一次变换可以一次进行。随后,可以从变换后的记录图像种获得子图像,并用于变换后的再现图像的搜索。让我们考虑具有宽度W和高度H的记录图像。图像的每一个像素的颜色可以由数值对C(ij)来描述。可以按照如下所示,对彩色记录图像应用简单的变换,以将其变换为黑白(二进制)图像(例如,每一个像素的颜色是B(i,j)时)。B(0,j)=l,0<=j<H(等式1)B(i,j)=C(i-1,j)&C(i,j),0<i<W,0<=j<H(等式2)或B(W-1,j)=1,0<=j<H(等式3)B(i,j)=C(i,j)&C(i+1,j),0<=i<W-1,0<=j<H(等式4)图15是示出了在根据本发明的一个实施例的图11的变换的一个实例图像。图16是示出了在根据本发明的一个实施例的图12的变换的一个实例图像。图15和16为根据等式(1)和(2)对图11和12进行变换的结果;在此仅示出了该变换,因为等式(3)和(4)的操作是类似的。注意黑色可以用于B(0,j)=0,白色用于B(0,j)-l,以避免不想要的黑色硬拷贝视图。在本发明的一个实施例中,可以使用具有CV—TM一SQDIFF键的模板匹配(MatchTemplate)函数。CVJTM一SQDIFF键意思是该函数(模板匹配)使用平方差之和,来将多个图像区域与模板图像(变换后的)进行比较。在可以从Intel公司公开获得的OpenCV库中提供了该模板匹配函数。在其它实施例中,也可以使用其它的方法。模板匹配函数"滑动"(例如从左上角像素到右下角像素)模板(例如变换后的记录图像)穿过一个图像(例如变换后的再现图像),用指定的(CV—TM一SQDIFF)方法将尺寸为wXh的图像重叠部分与模板(例如来自变换后的所保存图像的子图像滩行比较,并将比较结果存储为单通道32比特浮点结果。如果该图像的尺寸是WXH,模板尺寸是wXh,则所得到结果的尺寸就必定是W-w+lXH-h+l。等式5定义了该函数中所使用的公式,其中I表示图像,T表示模板,R表示结果。在模板和/或图像的一部分上进行求和x'=0...w-l,y'=0...h-l:R(x,y)=sumxy[T(x',y')-I(x+x',y+y')]2(等式5)注意,对该情况可以使用比等式(5)更简单的变换R(x,y)=sumx'y,|T(x',y')-I(x+x',y+y')|(等式6)让我们考虑来自图15的子图像,其与来自图11和13的所选轮廓相对应,例如在图像左侧的"QuickPerformanceAnalysisWizard"小图标。让我们使用模版,通过在图16上进行搜索(即,模板匹配函数)来获得结果图像。使我们的模板具有wXh的尺寸。可以投定系数Qm,其有助于从结果图像(R沖检测到点(RM)的子集RM{(x,y)IR(x,y)/O*h)<QM}(等式7)该滤波器是非常有效的,以致于其可以使用非常灵活的限度QM,例如0.25(其实际上意味着在结构中约有22-27%的差别)。无论如何,在本实例中仅具有三个接近的点RM(3,3)"0.107,RM(2,3)^0.225,RM(3,3)^0.226。这是一个采用非常灵活的实际系数的具体实例。模板匹配函数提供了具有实际数值点的结果图像。只有三个点具有适当的值。最后,必须过滤出图12的再现图像中的错误的假设。来自Rm集合的每一点都表示尺寸为wXh的矩形的左上角。如果假设的轮廓不与来自RM的任何矩形相交,那么假设就被拒绝。还可以对过滤使用效力更强的过程,例如对于在来自RM的矩形的左上角与假设轮廓之间距离的限制。让我们考虑一个更复杂的实例,其展示了如图17所示的本发明实施例的能力。图n是示出了在根据本发明的一个实施例,在识别了对于其他非文本对象的全部假设轮廓之后,且在呈现过滤结果之前,应用程序的GUI的一个实例图像。在应用了本发明实施例的结构性内容过滤方法之后,在认知控制框架中的其它过程,尤其是模糊文本和空间结构性过滤,可以用于帮助完成对于正确的有效对象的搜索。图18是流程图,示出在根据本发明的一个实施例的再现阶段期间的假设的结构性内容过滤。在块300,可以根据等式1和2,或者可替换地根据等式3和4,来变换记录图像和再现图像。在块302,可以从变换后的所记录图像中获得与在变换后的再现图像中要搜索的对象相对应的子图像。在块304,可以根据等式5或6和7在变换后的再现图像上确定具有与子图像相匹配的适当值的一组点。在块306,可以过滤出与在块304期间所识别的点子集中任意一点的距离大于所选定距离的假设,其结果将会是错误假设数量的减小。来自RM集合的每一点都表示尺寸为wXh的矩形左上角。如果假设的轮廓不与来自RM的任何矩形相交,则假设就被拒绝。在本发明的另一实施例中,可以为过滤使用效力更强的过程,例如対于来自Rm的矩形左上角与假设的轮廓之间的距离的限制。块300—306的结果是错误假设数量的减小。根据本发明实施例的结构性内容过滤在用于测试应用程序的GUI时,有助于有效的刷新场景。这有助于容易地将用于应用的旧测试更新为新产品版本。场景的易适应性在软件产品的GUI更新期间是非常有用的。而且,本方法可以用于在认知控制框架内的搜索方案,例如降噪运行和对图像对象的过滤。其它用途可以是在计算机视觉、人机界面和产品版本控制领域。结构性内容过滤方法减少了在搜索期间的GUI假设的数量,尽管存在几种GUI噪声(例如,可变的配色方案,高亮显示,来自设备的屏幕噪声、抗锯齿效果、等等),但是该方法是稳定的。对于假设过滤的结构性内容方案至少具有几个优点。该方案的第一个优点是其可用于在任何平台和操作系统上显露出可视界面的任何应用程序,且不依赖于具体API或可视系统实现的结构(如Win32或X-WindowsAPI)、或者具体操作系统。这与跨平台运行的总体认知控制框架方案的优点相关联。所有其它已知的系统在采用可视元素运行时,都程度或大或小地依赖于系统API。该方案的第二个优点是以容易的方式明显减少了对于有效对象的假设的数量。第三个优点是以容易的方式帮助将旧场景自动移植到产品的新版本上。这减少了支持用于应用程序测试的场景的基线(baseline)所需的时间。第四个优点是该方法与其它方法相比,无需大量计算资源。其在再现期间的应用执行中仅引入了最小的干扰和延迟。在说明书中对本发明的"一个实施例"的引用意思是结合该实施例描述的具体特征、结构或属性包括在本发明的至少一个实施例中。因此,出现在说明书全文中不同位置的短语"在一个实施例中"的出现并非必然完全指代同一实施例。尽管在此详述的操作可以被描述为顺序处理,实际上其中一些操作可以并行地或并发地执行。另外,在一些实施例中操作的顺序可以重新排列,而不会脱离本发明的范围。在此描述的技术不限于任何具体硬件或软件结构;它们可以在任何计算或处理环境中找到可用性。该技术可以采用硬件、软件或二者组合来实现。该技术可以采用程序实现,该程序在可编程机器上执行,例如可移动或固定计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机,以及其它电子设备,其每一个都包括处理器、可由处理器读取的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及一个或多个输出设备。将程序代码应用于用输入设备所输入的数据,以执行所述的功能,并产生输出信息。该输出信息可以应用于一个或多个输出设备。本领域普通技术人员会意识到,本发明可以采用各种计算机系统结构来实现,包括多处理器系统、微型计算机、主机等。本发明还可以在分布式计算环境中实现,在此任务可以由通过通信网络相链接的远程处理设备来执行。每一个程序都可以采用高级程序式编程语言或面向对象的编程语言实现,来与处理系统通信。然而,如果希望的话,程序可以采用汇编语言或机器语言实现。在任何情况下,都可以编译或解释该语言。程序指令可以用于使以指令编程的通用或专用处理系统执行在此所述的操作。可替换地,所述操作可以由特定硬件部件来执行,其包含用于执行所述操作的硬连线的逻辑电路,或者由编程的计算机部件与定制硬件部件的任何组合来执行。在此所述的方法可以作为计算机程序产品来提供,所述计算机程序产品可以包括机器可访问介质,在其上存储了指令,所述指令可以用于对处理系统或其它电子设备进行编程,以执行所述方法。在此所用的术语"机器可访问介质"应包括能够存储或编码由机器执行并使机器执行在此所述的任一方法的指令序列的任何介质。相应的,术语"机器可访问介质"应包括但不限于固态存储器、以及光盘和磁盘。而且,本领域通常将一种形式或另一种形式(例如程序、过程、处理、应用、模块、逻辑等等)的软件说成是采取动作或导致结果。这样的表达仅是陈述由处理系统执行软件以便使处理器执行产生结果的动作的简略表达方式。权利要求1.一种计算机实施的结构性内容过滤的方法,用以减少在由应用程序的图形用户界面(GUI)产生的所记录图像中对于有效对象位置的假设的数量,所述方法包括以下步骤变换所述所记录图像和相应的再现图像;从所述变换后的所记录图像中确定与在所述变换后的再现图像中要搜索的对象相对应的子图像;在所述变换后的再现图像上确定具有与所述子图像相匹配的适当值的一组点;以及在所述再现图像上过滤出与所述点子集中任意一点的距离大于所选定距离的假设。2.如权利要求l所述的方法,其中,变换所述所记录图像和相应的再现图像的步骤包括将所述图像中像素的颜色值改变为黑色像素和白色像素中的至少一种。3、如权利要求l所述的方法,其中,所述对象包括非文本对象。4、如权利要求l所述的方法,其中,所述过滤出的假设是对于所述有效对象的不正确假设。5、如权利要求l所述的方法,其中,假设包括在所述再现图像上的、与在所述所记录图像上的对象的轮廓相对应的对象的轮廓。6、如权利要求l所述的方法,其中,过滤出假设的步骤包括如果一假设的轮廓不与任何左上角位于所述点子集中的一个点处且具有预定宽度及高度的矩形相交,则拒绝该假设。7、如权利要求l所述的方法,其中,过滤出假设的步骤包括如果在所述点子集中的一个点与一假设的轮廓之间的距离大于预定距离,则拒绝该假设。8、一种产品,包括包含指令的机器可访问介质,当所述指令被执行时,导致结构性内容过滤,用以减少在由应用程序的图形用户界面(GUI)产生的所记录图像中对于有效对象位置的假设的数量,这是通过以下步骤实现的变换所述所记录图像和相应的再现图像;从所述变换后的所记录图像中确定与在所述变换后的再现图像中要搜索的对象相对应的子图像;在所述变换后的再现图像上确定具有与所述子图像相匹配的适当值的一组点;以及在所述再现图像上过滤出与所述点子集中任意一点的距离大于所选定距离的假设。9、如权利要求8所述的产品,其中,用于变换所述所记录图像和相应的再现图像的指令包括用于将所述图像中像素的颜色值改变为黑色像素和白色像素中的至少一种的指令。10、如权利要求8所述的产品,其中,所述对象包括非文本对象。11、如权利要求8所述的产品,其中,所述过滤出的假设是对于所述有效对象的不正确假设。12、如权利要求8所述的产品,其中,假设包括在所述再现图像上的、与在所述所记录图像上的对象的轮廓相对应的对象的轮廓。13、如权利要求8所述的产品,其中,用于过滤出假设的指令包括用于以下的指令如果一假设的轮廓不与任何左上角位于所述点子集中的一点处且具有预定宽度及高度的矩形相交,则拒绝该假设。14、如权利要求8所述的产品,其中,用于过滤出假设的指令包括用于以下的指令如果在所述点子集中的一个点与一假设的轮廓之间的距离大于预定距离,则拒绝该假设。15、一种认知控制框架系统,用于自动控制具有图形用户界面的应用程序的执行,包括记录部件,适于在对于所述应用程序的执行的记录阶段期间,捕捉用户输入数据和由所述图形用户界面所显示的图像,并分析所述捕捉的用户输入数据和所显示的图像,以便在所述记录阶段期间产生执行场景;以及再现部件,适于对由所述图形用户界面显示的图像执行图像分析,作为对在再现阶段期间的模拟的用户输入数据和来自所述记录阶段的所述捕捉的显示图像进行处理的结果,所述再现部件适于减少用于在由所述图形用户界面产生的所记录图像中有效对象位置的假设的数量,这是通过以下步骤实现的变换所述所记录图像和相应的再现图像;从所述变换后的所记录图像中确定与在所述变换后的再现图像中要搜索的对象相对应的子图像;在所述变换后的再现图像上确定具有与所述子图像相匹配的适当值的一组点;以及在所述再现图像上过滤出与所述点子集中任意一点的距离大于所选定距离的假设。16、如权利要求15所述的系统,其中,变换所述所记录图像和相应的再现图像的步骤包括将所述图像中像素的颜色值改变为黑色像素和白色像素中的至少一种。17、如权利要求15所述的系统,其中,所述对象包括非文本对象。18、如权利要求15所述的系统,其中,所述过滤出的假设是对于所述有效对象的不正确假设。19、如权利要求15所述的系统,其中,假设包括在所述再现图像上的、与在所述所记录图像上的对象的轮廓相对应的对象的轮廓。20、如权利要求15所述的系统,其中,过滤出假设的步骤包括如果一假设的轮廓不与任何左上角位于所述点子集中的一个点处且具有预定宽度及高度的矩形相交,则拒绝该假设。21、如权利要求15所述的系统,其中,过滤出假设的步骤包括如果在所述点子集中的一个点与一假设的轮廓之间的距离大于预定距离,则拒绝该假设。全文摘要结构性内容过滤用于减少在由应用程序的图形用户界面(GUI)产生的所记录图像中对于有效对象位置的假设的数量,其是通过以下实现的变换所述所记录图像和相应的再现图像;从所述变换后的所记录图像中确定与在所述变换后的再现图像中要搜索的对象相对应的子图像;在所述变换后的再现图像上确定具有与所述子图像相匹配的适当值的一组点;以及在所述再现图像上过滤出与所述点子集中任意一点的距离大于所选定距离的假设。文档编号G06T7/00GK101292262SQ200580051829公开日2008年10月22日申请日期2006年11月14日优先权日2005年11月14日发明者D·S·米洛夫申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1