CN112131121B - 用户界面的模糊检测方法、装置、电子设备和存储介质 - Google Patents
用户界面的模糊检测方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112131121B CN112131121B CN202011031319.2A CN202011031319A CN112131121B CN 112131121 B CN112131121 B CN 112131121B CN 202011031319 A CN202011031319 A CN 202011031319A CN 112131121 B CN112131121 B CN 112131121B
- Authority
- CN
- China
- Prior art keywords
- user interface
- control
- picture
- fuzzy
- control picture
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Abstract
本申请涉及计算机技术领域,尤其涉及人工智能技术领域,提供了一种用户界面的模糊检测方法、装置、电子设备和存储介质,用以提升不同DPI下用户界面显示清晰度的检测效率,其中,方法包括:根据获取到的屏幕显示分辨率缩放比,调用操作系统的API设置DPI感知级别,以使设置后的DPI感知级别与待检测应用程序的DPI感知级别一致;获取在当前DPI感知级别下显示的待检测应用程序的至少一个用户界面中,至少一个操作控件的控件图片;对获取的控件图片进行模糊识别,获取用于表示控件图片是否模糊的模糊检测结果。本申请通过调用操作系统的API接口来全自动地实现不同DPI切换及UI显示,提高了用户界面显示清晰度的检测效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及人工智能技术领域,提供了一种用户界面的模糊检测方法、装置、电子设备和存储介质。
背景技术
目前很多的应用程序在正常的100%的缩放比例下,能够正常的显示程序窗口等用户界面,但是在高DPI(Dots Per Inch,每英寸点数)下缩放比例较高,显示效果也较差,往往会存在UI(User Interface,用户界面)控件图片拉伸模糊、字体文本不清晰等现象。
针对在不同DPI下UI的显示情况的验证,目前尚未有比较完整的方案,基本都是采用全人工的方式。但是人工检查需要不断操作用户界面,来回切换,测试效率低;此外,通过人眼去检查,本身标准无法统一,因人而异;并且容易受到测试人员自身的精神状况影响,不利于进行大批量的图片处理,有遗漏的风险存在。
发明内容
本申请实施例提供一种用户界面的模糊检测方法、装置、电子设备和存储介质,用以提升不同DPI下用户界面显示清晰度的检测效率。
本申请实施例提供的一种用户界面的模糊检测方法,包括:
根据获取到的屏幕显示分辨率缩放比,调用操作系统的API(ApplicationProgramming Interface,应用程序编程接口)设置DPI感知级别,以使设置后的DPI感知级别与所述待检测应用程序的DPI感知级别一致;
获取在当前DPI感知级别下显示的待检测应用程序的至少一个用户界面中,至少一个操作控件的控件图片;
对获取的控件图片进行模糊识别,获取用于表示控件图片是否模糊的模糊检测结果。
本申请实施例提供的一种用户界面的模糊检测装置,包括:
设置单元,用于根据获取到的屏幕显示分辨率缩放比,调用操作系统的API设置DPI感知级别,以使设置后的DPI感知级别与所述待检测应用程序的DPI感知级别一致;
图片获取单元,用于获取在当前DPI感知级别下显示的待检测应用程序的至少一个用户界面中,至少一个操作控件的控件图片;
控件检测单元,用于对获取的控件图片进行模糊识别,获取用于表示控件图片是否模糊的模糊检测结果。
可选的,所述图片获取单元具体用于:
响应于针对检测界面中的第一运行控件的触发操作,根据选中的目标布局文件,获取在当前DPI感知级别下显示的待检测应用程序的目标用户界面中的各个操作控件的控件图片,其中所述目标用户界面是根据所述目标布局文件渲染得到的;或
响应于针对检测界面中的第二运行控件的触发操作,获取在当前DPI感知级别下显示的待检测应用程序的各个用户界面中的各个操作控件的控件图片。
可选的,所述检测界面还包括用于显示用户界面的界面预览区域,用于显示控件图片的控件预览区域,以及用于展示检测结果的结果显示区域;
所述控件检测单元具体用于:
对各个控件图片进行模糊识别的过程中,在所述检测界面中的界面预览区域显示当前正在检测的控件图片所在的用户界面,在所述检测界面中的控件预览区域显示当前正在检测的控件图片;以及
对各个控件图片进行模糊识别后,在所述检测界面中的结果显示区域显示各个控件图片对应的操作控件的模糊检测结果,或者显示针对各个控件图片所在的目标用户界面的模糊检测结果,其中所述目标用户界面的模糊检测结果是根据所述目标用户界面中的各个操作控件的模糊检测结果确定的。
可选的,所述图片获取单元具体用于:
针对任意一个用户界面,基于所述用户界面的布局文件,获取至少一个操作控件在所述用户界面中的位置信息,并根据所述位置信息,在所述用户界面中截取至少一个操作控件的控件图片;或
基于所述操作系统的第三API,遍历查找所述用户界面上的操作控件后,在所述用户界面中截取至少一个操作控件的控件图片;或
通过将所述用户界面与预先设置的操作控件的模板图片进行比对,遍历查找所述用户界面上的操作控件后,在所述用户界面中截取至少一个操作控件的控件图片。
可选的,所述图片获取单元具体用于:
通过对所述布局文件进行解析,查找出具有目标属性的操作控件的控件名称;
基于所述控件名称获取对应的UI引擎控件对象,以根据所述UI引擎控件对象获取所述操作控件的位置信息。
可选的,所述控件检测单元具体用于:
分别对各个控件图片进行拉普拉斯变换,提取各个控件图片的拉普拉斯梯度特征信息;以及
分别对各个控件图片进行DCT变换(DCT for Discrete Cosine Transform,离散余弦变换),提取各个控件图片的DCT系数特征信息;
分别根据各个控件图片的所述拉普拉斯梯度特征信息以及所述DCT系数特征信息,对各个控件图片进行模糊识别,获取用于表示各个控件图片是否模糊的模糊检测结果。
可选的,所述控件检测单元具体用于:
将所述控件图片的所述拉普拉斯梯度特征信息以及所述DCT系数特征信息输入已训练的分类模型,基于所述已训练的分类模型对所述控件图片进行分类,获取用于表示所述控件图片是否模糊的模糊检测结果;
其中,所述已训练的分类模型是根据训练样本数据集训练得到的,所述训练样本数据集中的训练样本为已标注类别标签的样本图片,所述样本图片包括拉普拉斯梯度特征信息和DCT系数特征信息。
可选的,所述装置还包括:
模型训练单元,用于通过下列方式训练得到所述已训练的分类模型:
从所述训练样本数据集中选取训练样本;
针对任意一个训练样本,将所述训练样本包含的样本图片的拉普拉斯梯度特征信息和DCT系数特征信息输入未训练的分类模型,获得所述未训练的分类模型输出的所述训练样本的类别预估结果;
根据输出的类别预估结果和所述训练样本上标注的类别标签之间的差异,对所述未训练的分类模型的网络参数进行多次调整,得到所述已训练的分类模型。
本申请实施例提供的一种电子设备,包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述任意一种用户界面的模糊检测方法的步骤。
本申请实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任意一种用户界面的模糊检测方法的步骤。
本申请实施例提供一种计算机可读存储介质,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行上述任意一种用户界面的模糊检测方法的步骤。
本申请有益效果如下:
本申请实施例提供的用户界面的模糊检测方法、装置、电子设备和存储介质,由于本申请实施例通过调用操作系统的API接口,全自动地实现不同DPI的切换及UI的显示;进而,在不同DPI下获取待检测应用程序的至少一个用户界面中的操作控件的控件图片,通过图像处理等技术对获取到的控件图片进行自动化的模糊识别,不需要人眼去检查,并且不需要不断操作UI窗口界面,来回切换,实现了在不同DPI环境下UI模糊的自动化检测,提高了不同DPI下用户界面显示清晰度的检测效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为相关技术中的一种全人工模糊检测方法的示意图;
图2为本申请实施例中的一种应用场景的一个可选的示意图;
图3为本申请实施例中的一种用户界面的模糊检测方法的流程示意图;
图4A为本申请实施例中的一种游戏发行平台客户端的用户界面示意图;
图4B为本申请实施例中的另一种游戏发行平台客户端的用户界面示意图;
图5A为本申请实施例中的一种清晰的控件图片的示意图;
图5B为本申请实施例中的一种模糊的控件图片的示意图;
图6为本申请实施例中的一种检测界面的示意图;
图7A为本申请实施例中的一种布局文件示例的示意图;
图7B为本申请实施例中的一种用户界面示例的示意图;
图8为本申请实施例中的AOI定位及图片截取流程的示意图;
图9为本申请实施例中的一种控件图片模糊识别的方法的示意图;
图10为本申请实施例中的一种SVM的分类原理的示意图;
图11为本申请实施例中的一种SVM分类模型的训练方法的示意图;
图12A为本申请实施例中的一种实验结果的示意图;
图12B为本申请实施例中的另一种实验结果的示意图;
图13为本申请实施例中的一种RBF核函数类型下的分类结果的示意图;
图14为本申请实施例中的一种用户界面的模糊检测的完整方法的流程示意图;
图15为本申请实施例中的一种用户界面的模糊检测装置的组成结构示意图;
图16为应用本申请实施例的一种电子设备的组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
下面对本申请实施例中涉及的部分概念进行介绍。
屏幕分辨率和屏幕显示分辨率缩放比:屏幕分辨率是指纵横向上的像素点数。屏幕分辨率确定计算机屏幕上显示多少信息的设置,以水平和垂直像素来衡量。就相同大小的屏幕而言,当屏幕分辨率低时(例如640x480),在屏幕上显示的像素少,单个像素尺寸比较大。屏幕分辨率高时(例如1600x1200),在屏幕上显示的像素多,单个像素尺寸比较小。显示分辨率就是屏幕上显示的像素个数,分辨率160×128的意思是水平方向含有像素数为160个,垂直方向像素数128个。屏幕尺寸一样的情况下,分辨率越高,显示效果就越精细和细腻。屏幕显示分辨率缩放比指显示器的缩放比例。
操作系统(Operating System,OS):是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。在本申请实施例中,操作系统是指运行待检测应用程序的操作系统,例如Windows系统。
DPI:是一个量度单位,用于点阵数码影像,指每一英寸长度中,取样、可显示或输出点的数目。在显示器上就是每英寸的像素个数。图像每英寸长度内的像素点数。具体是指每英寸的像素,也就是扫描精度。DPI越低,扫描的清晰度越低。在本申请实施例中,DPI与屏幕显示分辨率缩放比具有一定的对应关系,DPI越高,屏幕显示分辨率缩放比例也就越高。
应用DPI感知级别:与上述所例举的DPI不同。在本申请实施例中,调整DPI具体是指调整屏幕的分辨率缩放比,而调整应用DPI感知级别是告诉操作系统程序对DPI变化所作何种处理。Windows下对高DPI的支持有几个等级,分别是不感知、系统级别感知、显示器级别感知。不感知则由系统强制缩放,界面模糊。系统级别感知只能获得系统级别的DPI,在更改缩放比例但没有注销的情况下会模糊,在将窗口移动到另外一个不同DPI的显示器时会模糊。显示器级别感知指能够感知每一个显示器的DPI并正常显示。
UI:是指对软件的人机交互图形界面。具体是指对软件的人机交互、操作逻辑、界面美观的整体设计,是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。用户界面是介于用户与硬件而设计彼此之间交互沟通相关软件,目的在使得用户能够方便有效率地去操作硬件以达成双向之交互,完成所希望借助硬件完成之工作,用户界面定义广泛,包含了人机交互与图形用户接口,凡参与人类与机械的信息交流的领域都存在着用户界面。
AOI(Area Of Interesting,感兴趣区域):往往用于在图像处理中,图像的局部区域。在本申请实施例中,主要用于定位出感兴趣的控件图片,具体的,可基于AOI定位技术来定位出用户感兴趣的操作控件在用户界面中的位置坐标,进而即可基于该位置坐标截取用户界面中操作控件的控件图片,以便进行模糊检测。
客户端(Client)或称为用户端:是指与服务器相对应,为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行。因特网发展以后,较常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,如数据库服务,电子邮件服务等等,这样在客户机和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行。
检测软件和检测界面:本申请实施例中的模糊检测方法可以实现为程序产品,例如软件的形式,本申请实施例中的检测软件是用于对用户界面进行模糊检测的。检测界面是本申请实施例中所列举的一种面向用户的操作界面,具体是指检测软件的一个操作界面。该操作界面上包括运行控件,用户可通过点击等操作触发运行控件,之后检测软件即可对待检测应用程序的用户界面进行模糊检测。此外,检测界面还包括用于显示用户界面的界面预览区域,用于显示控件图片的控件预览区域,以及用于展示检测结果的结果显示区域。
本申请实施例涉及人工智能(Artificial Intell igence,AI)和机器学习技术,基于人工智能中的计算机视觉技术和机器学习(MachineLearning,ML)而设计。
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。
人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术主要包括计算机视觉技术、自然语言处理技术、以及机器学习/深度学习等几大方向。随着人工智能技术研究和进步,人工智能在多个领域展开研究和应用,例如常见的智能家居、智能客服、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、机器人、智能医疗等,相信随着技术的发展,人工智能将在更多的领域得到应用,并发挥越来越重要的价值。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
在本申请实施例中提出的用户界面的模糊检测方法可分为两部分,包括训练部分和应用部分;其中,训练部分就涉及到机器学习这一技术领域,在训练部分中,通过机器学习这一技术训练分类模型,使得训练样本中样本图片的拉普拉斯梯度特征信息和DCT系数特征信息通过分类模型后,得到该样本图像的类别预估结果,并通过优化算法不断调整模型参数,得到已训练的分类模型;应用部分用于通过使用在训练部分训练得到的分类模型,对用户界面中的操作控件的控件图片进行模糊检测等。
下面对本申请实施例的设计思想进行简要介绍:
目前大部分windows的应用一般都需要具备与用户进行交互的能力,即所谓的客户端应用程序。客户端应用程序的UI显示是客户评价产品的第一直观感受,因此有良好的UI设计及体验对用户持续使用该产品具有重大的意义,而UI的正常显示(例如图片文本清晰不模糊,控件布局显示正常不错位等)是产品良好体验中极其重要的部分,因此确保用户界面程序正常显示是质量保障工作中必不可少的一环。
然而,在相关技术中还没有尚未有比较完整的检测方案。针对在不同DPI下UI的显示情况的验证,大多测试采用的都是全人工方式。参阅图1所示,其为相关技术中的一种全人工模糊检测方法的示意图。传统或者大部分的测试都是基于此全人工检查方案,测试人员通过手动设置显示屏的分辨率缩放比后,注销或者重启电脑以使设置生效,接下来启动待测试的应用程序,然后逐个点击查看程序中能够触发弹窗显示UI的菜单或者按钮,手动遍历UI,最后通过人眼去观察UI的控件显示是否异常,是清晰还是模糊。针对不同DPI的显示,则需要不断重复上述的操作流程。
上述所列举的人工检查的方案,通过人眼去检查,本身标准无法统一,因人而异;并且容易受到测试人员自身的精神状况影响,不利于进行大批量的图片处理,有遗漏的风险存在。
有鉴于此,本申请实施例提出了一种用户界面的模糊检测方法、装置、电子设备和存储介质。由于本申请实施例通过调用操作系统的API接口,全自动地实现不同DPI的切换及UI的显示;进而,在不同DPI下获取待检测应用程序的至少一个用户界面中的操作控件的控件图片,通过图像处理等技术对获取到的控件图片进行自动化的模糊识别,不需要人眼去检查,并且不需要不断操作UI窗口界面,来回切换,实现了在不同DPI环境下UI模糊的自动化检测,提高了不同DPI下用户界面显示清晰度的检测效率。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图2所示,其为本申请实施例的应用场景示意图。该应用场景图中包括两个终端设备210和一个服务器230,可通过终端设备210登录应用程序的用户界面220。终端设备210与服务器230之间可以通过通信网络进行通信。
在一种可选的实施方式中,通信网络是有线网络或无线网络。终端设备210以及服务器230可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在本申请实施例中,终端设备210为用户使用的电子设备,该电子设备可以是个人计算机、手机、平板电脑、笔记本、电子书阅读器、智能家居等具有一定计算能力并且运行有即时通讯类软件及网站或者社交类软件及网站的计算机设备。各终端设备210通过无线网络与服务器230,服务器230可以是独立的物理服务器230,也可以是多个物理服务器230构成的服务器230集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器230。
其中,每个终端设备中可以安装有应用,本申请实施例涉及的应用可以是软件,也可以是网页、小程序等客户端,服务器则是与软件或是网页、小程序等相对应的应用服务器,不限制客户端的具体类型。
需要说明的是,本申请实施例中提供的模糊检测方法可以实现为程序产品,例如软件的形式,在本申请实施例中称作检测软件,即用于进行模糊检测的应用程序,该应用程序可安装在终端设备210上,在需要检测其他应用程序的用户界面时,例如对社交软件、拍照软件、视频软件等进行检测时,即可基于本申请实施例中所列举的检测软件来实现,社交软件、拍照软件、视频软件等都属于待检测应用程序。
另外,本申请实施例中还提供了一种用于对控件图片进行分类的分类模型,该分类模型可以部署在图2所示的终端设备210上,也可以部署在服务器230上,在此不做具体限定。
参阅图3所示,为本申请实施例提供的一种用户界面的模糊检测方法的实施流程图,应用于上述终端设备,该方法的具体实施流程如下:
S31:根据获取到的屏幕显示分辨率缩放比,调用操作系统的API设置DPI感知级别,以使设置后的DPI感知级别与待检测应用程序的DPI感知级别一致;
在本申请实施例中,以待检测应用程序为某游戏运行平台为例,则通过调用操作系统的API设置检测软件的DPI感知级别,使得检测软件的DPI感知级别与游戏运行平台业务系统的DPI感知级别一致。
其中,在获取屏幕显示分辨率缩放比时,屏幕显示分辨率缩放比可由用户进行设置,获取用户输入的屏幕显示分辨率缩放比,一般适用于屏幕显示分辨率缩放比发生变化的情况下,在用户设置不同的屏幕显示分辨率缩放比时,通过该方式即可测试不同DPI下显示的用户界面;此外,若仅需要测试当前DPI感知级别下显示的用户界面时,直接获取当前的屏幕显示分辨率缩放比即可。
考虑到在相关技术中,在测试不同DPI下待检测应用程序的UI时,需要全人工操作,测试人员需要不断重复同样的操作,一方面枯燥乏味降低测试人员的积极性,另一方面,若同时采用多主机来测试不同DPI时,需要更多的机器支持,容易造成资源的浪费。本申请实施例中提出了基于操作系统的API的组合调用,全自动实现不同DPI的切换及UI的显示的方法。
可选的,操作系统的API包括用于设置屏幕DPI的第一API,以及用于设置应用程序DPI感知级别的第二API;在执行步骤S31时,具体可分为以下两个步骤:
S311:获取输入的屏幕显示分辨率缩放比后,调用操作系统的第一API,以使第一API根据屏幕显示分辨率缩放比调整屏幕DPI;
S312:调用操作系统的第二API,以使第二API设置DPI感知级别,使得设置后的DPI感知级别与待检测应用程序的DPI感知级别一致。
参阅表1所示,其为本申请实施例中所列举的一种DPI与缩放比例的对应关系,如表1所示:
表1
系统DPI | 缩放比例 |
96 | 100% |
120 | 125% |
144 | 150% |
168 | 175% |
192 | 200% |
216 | 225% |
240 | 250% |
288 | 300% |
在本申请实施例中,系统DPI(即屏幕DPI)越高,对应的缩放比例也越大。其中,很多应用界面程序能够正常适配96DPI下的显示,但是,在较高的DPI下显示时,用户界面会拉伸,同时用户界面上的操作控件也会跟随变化,包括操作控件上的背景图片、文本等,如果没有更高清晰度的资源对应,结果就会是操作控件被拉伸造成视觉上模糊不清晰的感观。
在本申请实施例中,以操作系统为Windows系统为例,Windows系统提供了用于切换屏幕DPI的系统API:ChangeDisplaySettings,其为本申请实施例中所列举的一种第一API,用于根据屏幕显示分辨率缩放比调整屏幕DPI。不过需要注意的是,要使设置生效,需要重启电脑(Win7及以下)或者注销系统(Win8及以上)。也就是说,在获取用户输入的屏幕显示分辨率缩放比后,即可调用ChangeDisplaySettings接口,对系统DPI进行调整,并重启或注销系统,以使设置生效。
进而,再通过调用操作系统的第二API来设置检测软件的DPI感知级别,以保证在对检测软件设置DPI感知级别后,所得到的检测软件的DPI感知级别与待检测应用程序的DPI感知级别一致,以便检测软件中预先配置的UI引擎库在渲染界面时根据当前的DPI值进行缩放。例如表2所示,其为本申请实施例中所列举的三种应用DPI感知级别,对应的描述如下:
表2
在本申请实施例中,检测软件也是一种应用,通过对检测软件调用系统SetProcessDPIAware接口设置System-DPI Aware,来对检测软件的DPI感知级别进行调整,以保持检测软件的DPI感知级别与待检测应用程序业务系统DPI感知级别一致,以便检测软件中配置的UI引擎在渲染用户界面时,能够根据当前的DPI值进行缩放。
在上述实施方式中,通过对操作系统API的组合调用,可以全自动地实现不同DPI的切换,进而实现不同DPI显示下待检测应用程序的用户界面的检测,无需测试人员手动操作,大大提高了检测效率和检测速度。
S32:获取在当前DPI感知级别下显示的待检测应用程序的至少一个用户界面中,至少一个操作控件的控件图片;
在本申请实施例中,待检测应用程序的用户界面指在当前DPI感知级别下显示的用户界面,具体可以是待检测应用程序的主界面,tab(标签)界面,或者是各种弹窗界面。
考虑到大部分的客户端界面应用程序基本上都是基于开源应用界面框架或者自研的界面UI库框架来开发的,前者包含UI基础类库和一个应用程序框架,一般属于重量级的,其特点包含UI的布局文件(例如.rc文件,.UI布局文件),应用程序与UI布局文件强耦合,无法通过其他程序来加载该UI布局文件。后者是纯UI引擎框架,属于轻量级的,一般能编译成一个或多个的dll库(Dynamic Link Library,动态链接库),其特点是包含UI的布局文件(例如.xml文件,或者是.tpf文件,其实.tpf也是xml文件格式),需要被主程序加载调用,可以独立加载UI布局文件并且显示图形窗口,因此可以通过其他程序来调用该引擎库从而加载做纯粹的界面显示,无任何业务逻辑的嵌入。
因而,本申请实施例中所显示的待检测应用程序的用户界面也可基于UI布局文件渲染得到。可选的,用户界面可以是通过预先配置的UI引擎库加载用户界面的布局文件后,根据布局文件渲染得到的。在本申请实施例中,检测软件中配置有自研发的UI引擎库,用以加载待检测应用程序的布局文件,渲染得到用户界面。
参阅图4A和图4B所示,其为本申请实施例示出的一种游戏发行平台客户端的两个不同的用户界面示意图,其中游戏发行平台客户端即为待检测应用程序。这两个示意图就是通过本申请实施例中自研的UI引擎库加载布局文件渲染出来的,包括主界面,tab界面以及各种弹窗界面。在不同DPI下,UI上操作控件的背景图片如果没有做好适配会有不同程度的拉伸模糊,因此为保证产品质量体验,需要检测出模糊的图片显示。
在上述实施方式中,通过布局文件来渲染UI时,只需要关注UI显示部分即可,不需要关心待检测应用程序的业务逻辑,模拟类比真实的系统应用显示,可以减少测试主体的依赖。并且,基于布局文件直接进行渲染即可得到待检测应用程序的各类主界面、tab界面、弹窗界面等,相比于相关技术中的有些场景的UI需要满足一定的条件(如网络、时间、内部事件等等)来触发弹窗显示,通过手动去构造往往比较困难,或者耗时较长浪费,或者根本无法构造的情况,本申请实施例无需受到上述条件的限制,不需要人工构造,能够覆盖所有场景,此外不需要用户不断操作UI窗口界面以来回切换,并且不需要依赖多程序多组件多业务的支持,不需要繁琐地环境搭建,提高了测试效率。
S33:对获取的控件图片进行模糊识别,获取用于表示控件图片是否模糊的模糊检测结果。
在本申请实施例中,按钮、滚动条、输入框等都属于UI的操作控件。参阅图5A所示,其为本申请实施例中所列举的一种清晰的控件图片的示意图。参阅图5B所示,其为本申请实施例中所列举的一种模糊的控件图片的示意图。
其中,图5A左上角白线框部分的控件图片是清晰的,而图5B左上角白线框部分的控件图片是模糊的。在本申请实施例中,根据图5A和图5B的对比分析可知,UI整体显示基本无差异,只是左上角位置的控件图片显示上,图5B比图5A模糊。基于在不同DPI下的用户界面相比,图片整体清晰,只是在局部位置上存在模糊的这一特点,如果采用对整个UI图片进行处理或者无目标局部图片分析,模糊特征量有限,将大大增加对图片模糊的检测难度。针对以上问题,本申请实施例中仅对用户界面中的需要检测的操作控件的控件图片进行模糊识别。
在上述实施方式中,本申请实施例通过调用操作系统的API接口,全自动地实现不同DPI的切换及UI的显示;进而,在不同DPI下获取待检测应用程序的至少一个用户界面中的操作控件的控件图片,通过图像处理等技术对获取到的控件图片进行自动化的模糊识别,不需要人眼去检查,并且不需要不断操作UI窗口界面,来回切换,实现了在不同DPI环境下UI模糊的自动化检测,提高了不同DPI下用户界面显示清晰度的检测效率。
进一步地,在通过预先配置的UI引擎库加载用户界面的布局文件,进而根据布局文件渲染得到待检测应用程序的用户界面时,可以根据目标布局文件选软得到目标用户界面,即只检测待检测应用程序中的目标用户界面,也可遍历待检测应用程序的所有布局文件,渲染得到所有的用户界面,对待检测应用程序的所有用户界面都进行检测。
在一种可选的实施方式中,在执行步骤S32时,具体可分为以下两种方式:
方式一、响应于针对检测界面中的第一运行控件的触发操作,根据选中的目标布局文件,获取在当前DPI感知级别下显示的待检测应用程序的目标用户界面中的各个操作控件的控件图片,其中目标用户界面是根据目标布局文件渲染得到的;
其中,检测界面为本申请实施例中所列举的检测软件的一个操作界面。参阅图6所示,其为本申请实施例中所列举的一种检测界面的示意图。在图6所示下方中显示有几个运行控件,分别为手动运行,调试运行和自动运行。
其中,手动运行指用户可通过手动添加布局文件的方式来选择目标布局文件,在用户选中目标布局文件之后,可通过点击等方式触发手动运行控件,即用户点一下手动运行,可以读一个布局文件,检测一个用户界面。自动运行指基于检测软件自动遍历待检测应用程序的所有布局文件,不可人为控制。调试运行指基于检测软件自动遍历待检测应用程序的所有布局文件,但是可人为控制,可暂停。例如用户在遍历基于检测软件的过程中,可点击调试运行控件触发暂停操作,当用户再次点击调试运行控件可继续遍历布局文件。
其中,第一运行控件即图6所示的手动运行控件,用户可通过在“当前检测UI布局文件名”中添加上目标布局文件的文件名,以选中目标布局文件,例如图6所示,所选中的目标布局为文件的文件名为“add_game_popup.tdf”。在用户选中目标布局文件之后,点击手动运行,即可对该目标布局文件对应的目标用户界面中的各个操作控件的控件图片进行检测。
方式二、响应于针对检测界面中的第二运行控件的触发操作,获取在当前DPI感知级别下显示的待检测应用程序的各个用户界面中的各个操作控件的控件图片。
其中,第二运行控件指图6所示的自动运行控件或调试运行控件。例如在用户点击自动运行之后,即可自动检测待检测应用程序的各个用户界面中的各个操作控件。假设待检测应用程序共有215个布局文件,则待检测应用程序的用户界面即为根据215个布局文件渲染得到的。
需要说明的是,上述实施例中提供的模糊检测方法主要适用于具有独立的UI引擎及相关资源文件,如UI布局文件(此外还可以是图片或者文本文件等等)的应用程序的用户界面显示验证需求,需要在不同DPI下进行UI模糊检查的场景。
以某游戏运行平台应用程序为例,比如该游戏运行平台应用程序需要适配不同DPI下的显示,以免在高DPI下UI界面拉伸造成模糊。该情况下,即可将该游戏运行平台应用程序中各用户界面的布局文件,通过UI引擎库加载到本申请实施例提供的检测软件中,进而基于该检测软件来对该游戏运行平台应用程序进行模糊检测。
在上述实施方式中,可通过加载布局文件,渲染得到待检测应用程序的用户界面,进而获取渲染得到的用户界面中的操作控件的控件图片以进行模糊识别,可以模拟类比真实的系统应用显示,能够覆盖所有场景,且提高了测试效率。
在本申请实施例中,若要对某个待检测应用程序的用户界面进行模糊检测,首先需要加载该待检测应用程序的用户界面的布局文件,在本申请实施例中,可通过检测软件中预先配置的UI引擎库来加载。假设一个用户界面可以对应1个布局文件,例如图7A所示,其为本申请实施例中所列举的一种某个游戏发行平台的各个布局文件的示意图,在本申请实施例中,使用检测软件对待检测应用程序进行用户界面的模糊检测时,即可先加载该待检测应用程序的各个布局文件,并通过图7A所示的界面展示给用户。在图7A中,通过UI引擎所加载的布局文件都是tpf文件。进一步地,可基于这些布局文件进行渲染,得到该待检测应用程序的各个用户界面,并通过图7B所示的界面展示给用户,以便用户查阅。当然,图7B所列举的界面只是举例说明,也可不展示给用户,直接进行检测。
针对任意一个用户界面,下面对获取该用户界面中的操作控件图片的方式进行举例说明:
方式一、基于用户界面的布局文件,获取至少一个操作控件在用户界面中的位置信息,并根据位置信息,在用户界面中截取至少一个操作控件的控件图片。
其中,需要检测的这些操作控件即可作为本申请实施例中的感兴趣区域,基于AOI定位技术来获得这些操作控件的位置信息。
具体的,在基于用户界面的布局文件来获取操作控件的位置信息时,首先需要通过对布局文件进行解析,查找出具有目标属性的操作控件的控件名称;进而基于控件名称获取对应的UI引擎控件对象,以根据UI引擎控件对象获取操作控件的位置信息。
参阅图8所示,其为本申请实施例中所列举的一种AOI定位及图片截取流程的示意图。在采用AOI目标区域定点锁定来简化获取需要检测的部分时,通过对UI布局xml文件的解析,查找出具有目标属性(如背景图片、文本图片等)的控件名称,进而利用控件名称来获取UI引擎控件对象,从而获取到操作控件的位置坐标,即位置信息。在定位出AOI位置之后,就可以很方便的利用windows的截屏技术,截取到AOI图片,也就是本文所提到的控件图片。
在上述实施方式中,通过解析布局文件来定位操作控件时,可以有效避免不同DPI显示下操作控件变形导致其位置变化所带来的影响。此外,通过分析布局文件的方式来实现AOI定位,简单便捷,可以有效提高检测效率。
方式二、基于操作系统的第三API,遍历查找用户界面上的操作控件后,在用户界面中截取至少一个操作控件的控件图片。
其中,操作系统的第三API与上述所列举的第一API和第二API不同,本申请实施例中的第三API是用于查找操作控件的。以窗体式的用户界面为例,比如通过windows api遍历窗口及窗口下面的控件时,例如:在窗体上放置一个button(按钮)和listBox1(列表)控件。可基于EnumWindows(一种计算机函数)枚举顶级窗口,使用EnumChildWindows枚举子窗口,或者使用EnumThreadWindows枚举与某个线程关联的所有非子窗口;如果是遍历某个窗口的所有控件则可以用FindWindow(FindWindow这个函数检索处理顶级窗口的类名和窗口名称匹配指定的字符串。这个函数不搜索子窗口)找到该窗口句柄,然后用EnumChildWindows遍历它的所有控件。
方式三、通过将用户界面与预先设置的操作控件的模板图片进行比对,遍历查找用户界面上的操作控件后,在用户界面中截取至少一个操作控件的控件图片。
该方式即为通过图片对比找操作控件,具体的,将查找到的用户界面上的各局部区域的图片与模板图片进行比对,来查找需要进行检测的操作控件的控件图片。其中,在查找各局部区域的图片时,也可基于AutoIt或AutoHotkey等来实现。其中,AutoIt主要针对标准Windows窗口和控件。而AutoHotkey是一种自由开源的编程语言,通常用于Windows平台的自动化。
在上述实施方式中,也可快速准确的获取到操作控件的控件图片以进行模糊识别,提高检测效率。
在一种可选的实施方式中,检测界面还包括用于显示用户界面的界面预览区域,用于显示控件图片的控件预览区域,以及用于展示检测结果的结果显示区域;在本申请实施例中,在对各个控件图片进行模糊识别的过程中,在检测界面中的界面预览区域显示当前正在检测的控件图片所在的用户界面,在检测界面中的控件预览区域显示当前正在检测的控件图片;在对各个控件图片进行模糊识别后,在检测界面中的结果显示区域显示各个控件图片对应的操作控件的模糊检测结果,或者,在结果显示区域中显示针对各个控件图片所在的目标用户界面的模糊检测结果,其中目标用户界面的模糊检测结果是根据目标用户界面中的各个操作控件的模糊检测结果确定的。
仍以图6所示的检测界面为例,例如图6中所示的右侧部分所示,其中左侧部分所显示的运行日志即为对用户界面中的控件图片进行模糊检测时的运行日志。右侧部分具体包括界面预览区域S61,控件预览区域S62,以及结果显示区域S63。
其中,结果显示区域S63中的检测数可以表示所检测的操作控件的数量,通过数即所检测的操作控件中,清晰的操作控件的数量。可选的,结果显示区域中的检测数还可以表示检测的布局文件的数量,即检测的用户界面的数量,通过数即为清晰的用户界面的数量。一般地,若一个用户界面中如果有一个图标(操作控件对应的控件图片)是模糊的,就表示该用户界面检测不通过,该用户界面为模糊的用户界面。例如图6所示的检测数为例,表示当前已检测4个布局文件所对应的用户界面,通过数为0,表示所检测的用户界面都是模糊的。
需要说明的是,本申请实施例中通过检测界面可以直观地向用户展示正在检测的用户界面,正在检测的控件图片,另外还可直观地向用户反馈控件图片的模糊检测结果。
参阅图9所示,其为本申请实施例中所列举的一种控件图片模糊识别的方法的示意图。在对控件图片进行模糊识别时,具体可分为以下过程:
首先,需要对控件图片进行图像处理,之后进行特征提取,最后基于提取到的特征进行模式识别,也就是模糊识别),分析该控件图片是清晰的控件图片还是模糊的控件图片,进而得到该控件图片的模糊识别结果。
考虑到清晰图片与模糊图片的最大区别在于:前者拥有更加丰富的纹理细节,在像素矩阵中的表现为有更大的梯度向量值。基于此,本申请实施例采用图像的Lapalace梯度特征值(即拉普拉斯梯度特征信息)、DCT系数特征值(即DCT系数特征信息)双纹理特征值作为进行模糊识别时的主要参考。在本申请实施例中,主要是提取控件图片的纹理特征,之后再基于控件图片的纹理特征,来对该控件图片进行模式识别。
可选的,纹理特征具体包括:拉普拉斯梯度特征信息和DCT系数特征信息。因而,在对获取的控件图片进行模糊识别时,首先进行图像处理,包括:对各个控件图片进行拉普拉斯变换,以及对各个控件图片进行DCT变换。在进行图像处理之后,即可进行特诊提取,分别提取各个控件图片的拉普拉斯梯度特征信息,以及各个控件图片的DCT系数特征信息;最后,进行模式识别,分别根据各个控件图片的拉普拉斯梯度特征信息以及DCT系数特征信息,对各个控件图片进行模糊识别,获取用于表示各个控件图片是否模糊的模糊检测结果。
采用上述实施方式,即可实现高DPI下UI自动化检测,可以将UI的控件图片显示模糊检查出来,具有比人工检测更好的测试误差值。需要说明的是,本申请实施例不仅可以对图片的模糊,拉伸不均匀进行检测,同时对文本的显示模糊检测也具有一定的效果,例如对于文本类型的控件,也可截取得到相应的控件图片进行模糊检测。
进一步的,本申请实施例中的图像内容的模糊检测方法也可结合人工智能技术来实现,其中,人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
具体的步骤为:针对任意一个控件图片,将控件图片的拉普拉斯梯度特征信息以及DCT系数特征信息输入已训练的分类模型,基于已训练的分类模型对控件图片进行分类,获取用于表示控件图片是否模糊的模糊检测结果;
其中,已训练的分类模型是根据训练样本数据集训练得到的,训练样本数据集中的训练样本为已标注类别标签的样本图片,样本图片包括拉普拉斯梯度特征信息和DCT系数特征信息。其中,类别标签表示样本图片是清晰图片,还是模糊图片。
在对控件图片进行模糊识别时,主要问题在于是否能够准确的提取出图像的特征参数,以及基于特征参数的差异性做出准确的结果判断。基于本申请实施例中所采用的图像数量不是很庞大,且是非线性的分类问题;同时待检测应用程序操作控件显示的应用场景下能够准确获取目标区域的图片而无其他太多的干扰因素,另外对于图片是否模糊具有事先的认知,故本申请实施例采用带标签的有监督机器学习算法SVM来完成AOI图片的模糊识别。
具体的,本申请实施例中的分类模型可以是非线性的SVM分类模型。考虑到SVM在分类与回归问题上应用十分广泛,它是把优化训练误差当作优化目的,最终目标是能够将置信范围的数值达到最小。其核心思想是:利用数学方法建立出最适宜的分类界限,最终把两个需要分开的样本数据分类。SVM的分类原理如图10所示,φ(x)则是找到的映射函数。
下面对该分类模型的训练过程进行详细介绍,具体过程如下:
从训练样本数据集中选取训练样本;针对任意一个训练样本,将训练样本包含的样本图片的拉普拉斯梯度特征信息和DCT系数特征信息输入未训练的分类模型,获得未训练的分类模型输出的训练样本的类别预估结果;根据输出的类别预估结果和训练样本上标注的类别标签之间的差异,对未训练的分类模型的网络参数进行多次调整,得到已训练的分类模型。
其中,分类模型为使用包含多组训练样本数据的训练样本数据集,通过机器学习训练得出的,多组训练样本数据中的每组训练样本数据均包括第一类数据组和第二类数据组。需要说明的是,本申请实施例中,在训练分类模型时的样本图片都是包含拉普拉斯梯度特征信息和DCT系数特征信息的控件图片。
其中,第一类数据组的每组数据均包括:类别标签标记为清晰的控件图片;第二类数据组的每组数据均包括:类别标签标记为模糊的控件图片。具体训练流程为:首先对采用训练的样本图片(包括清晰和模糊)进行Lapalace和DCT变换,以提取图片双特征值(Lapalace梯度特征值和DCT系数特征值);然后对提取的特征值向量做标签,清晰图片特征值向量为标签1,模糊图片特征值向量为标签2;再将标签与特征值向量输入未训练的SVM分类模型进行训练,以获得调整SVM分类模型的参数,获得已训练的SVM分类模型。在训练得到SVM分类模型,还可采用同样的方式,使用测试样本进行对该SVM分类模型,并根据测试结果适当调整模型参数,若测试通过即可将模型上线使用。其中,测试样本也分为第一类数据组和第二类数据组这两大类。在本申请实施例中,SVM分类模型的训练过程可参阅图11。将控件图片的Lapalace梯度特征值以及DCT系数特征值输入SVM分类模型,进行分类,划分清晰图片和模糊图片。
在使用SVM分类模型时,同训练过程类型,将要识别的控件图片的Lapalace梯度特征值和DCT系数特征值作为输入参数,输入SVM分类模型就可以预测出该控件图片的类型,即该控件图片是模糊图片还是清晰图片。
假设,图像库中包含不同操作控件的清晰图片60幅,模糊图片60幅。参阅图12A和图12B所示,其为本申请实施例所列举的一种基于该图像库进行实验得到的实验结果,其中图12A列出了三种不同操作控件清晰图片的特征值,图12B列出了这三种不同操作控件模糊图片的特征值。
其中,对于第一个控件图片,由图12A可知该控件图片的清晰图片的Lapalace梯度特征值为5770.3,DCT系数特征值为6.1,由图12B可知该控件图片的清晰图片的Lapalace梯度特征值为588.2,DCT系数特征值为3.7;对于第二个控件图片,由图12A可知该控件图片的清晰图片的Lapalace梯度特征值为981.6,DCT系数特征值为1.8,由图12B可知该控件图片的清晰图片的Lapalace梯度特征值为483.5,DCT系数特征值为2.4;对于第三个控件图片,由图12A可知该控件图片的清晰图片的Lapalace梯度特征值为2636.0,DCT系数特征值为1.6,由图12B可知该控件图片的清晰图片的Lapalace梯度特征值为886.7,DCT系数特征值为4.5。
在本申请实施例中,用图像Lapalace梯度特征值、DCT系数特征值作为SVM分类模型的输入参数时,采用RBF(RadialBasisFunction,径向基函数)作为核函数类型,得出基于样本数据的训练模型图形画面如图13所示。其中,该图显示的是利用SVM Toy对样本数据进行分类所得到的分类结果,其中不同的颜色代表不同的图片类别,分别为清晰图片和模糊图片。
实验结果表明,基于该游戏发行平台的UI,对控件部分在高DPI下显示是否存在模糊采用本申请实施例的方法能够有效的识别出来,满足待检测应用程序在不同DPI下显示模糊的自动化验证。不过在实际的运用中,通过本申请实施例实现的检测软件可作为初步的筛查,为确保最终的准确,也可以进一步进行人工定点的复核。
此外,需要说明的是,本申请实施例中采用SVM分类模型作为分类模型时,可以有效避免局部极值这一项难题,比如神经网络(BP)算法就存在这个难解的问题;此外,在寻找分类最优解时是根据数量有限制的样本数据,在目前所拥有的数据中搜索最优解,并不是寻找数据信息无穷时的最好结果。
另外,本申请实施例中所列举的以SVM分类模型作为分类模型只是举例说明,实际上还有很多其他可行的方式,比如基于CNN(卷积神经网络)的图片识别、在清晰图像中检测出局部模糊区域等等。在应对不同的场景时,这些方法都是可以去尝试的方向。在此不做具体限定。
参阅图14所示,其为本申请实施例中的一种用户界面的模糊检测的完整方法的流程示意图。该方法的具体实施流程如下:
步骤S140:设置检测软件的启动参数;
步骤S141:检测软件启动(指启动检测软件);
步骤S142:判断检测软件是否退出,如果是,则结束本流程,否则,执行步骤S143;
步骤S143:判断是否设置屏幕显示分辨率缩放比,如果是,则执行步骤S144,否则,执行步骤S146;
步骤S144:设置屏幕显示分辨率缩放比;
步骤S145:系统重启,返回步骤S41;
步骤S146:设置检测软件的DPI感知级别;
步骤S147:加载UI布局文件;
步骤S148:基于UI布局文件进行操作控件的AOI定位及截图,获取操作控件的控件图片;
步骤S149:基于机器学习对控件图片进行模糊检测;
步骤S1410:保存结果;
步骤S1411:设置运行参数,返回步骤S142。
其中,步骤S1411中的运行参数设置是指设置当前检查进度,测试了哪几种分辨率下的显示等。这些参数都是指导性的参数,参数根据具体的项目决定调整,在此不做具体限定。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种用户界面的模糊检测装置。如图15所示,其为模糊检测装置1500的结构示意图,可以包括:
设置单元1501,用于根据获取到的屏幕显示分辨率缩放比,调用操作系统的API设置DPI感知级别,以使设置后的DPI感知级别与待检测应用程序的DPI感知级别一致;
图片获取单元1502,用于获取在当前DPI感知级别下显示的待检测应用程序的至少一个用户界面中,至少一个操作控件的控件图片;
控件检测单元1503,用于对获取的控件图片进行模糊识别,获取用于表示控件图片是否模糊的模糊检测结果。
可选的,操作系统的API包括用于设置屏幕DPI的第一API,以及用于设置应用程序DPI感知级别的第二API;
设置单元1501具体用于:
获取输入的屏幕显示分辨率缩放比后,调用操作系统的第一API,以使第一API根据屏幕显示分辨率缩放比调整屏幕DPI;
调用操作系统的第二API,以使第二API设置DPI级别,使得设置后的DPI感知级别与待检测应用程序的DPI感知级别一致。
可选的,用户界面为通过预先配置的UI引擎库加载用户界面的布局文件后,根据布局文件渲染得到的。
可选的,图片获取单元1502具体用于:
响应于针对检测界面中的第一运行控件的触发操作,根据选中的目标布局文件,获取在当前DPI感知级别下显示的待检测应用程序的目标用户界面中的各个操作控件的控件图片,其中目标用户界面是根据目标布局文件渲染得到的;或
响应于针对检测界面中的第二运行控件的触发操作,获取在当前DPI感知级别下显示的待检测应用程序的各个用户界面中的各个操作控件的控件图片。
可选的,检测界面还包括用于显示用户界面的界面预览区域,用于显示控件图片的控件预览区域,以及用于展示检测结果的结果显示区域;
控件检测单元1503具体用于:
对各个控件图片进行模糊识别的过程中,在检测界面中的界面预览区域显示当前正在检测的控件图片所在的用户界面,在检测界面中的控件预览区域显示当前正在检测的控件图片;以及
对各个控件图片进行模糊识别后,在检测界面中的结果显示区域显示各个控件图片对应的操作控件的模糊检测结果,或者显示针对各个控件图片所在的目标用户界面的模糊检测结果,其中目标用户界面的模糊检测结果是根据目标用户界面中的各个操作控件的模糊检测结果确定的。
可选的,图片获取单元1502具体用于:
针对任意一个用户界面,基于用户界面的布局文件,获取至少一个操作控件在用户界面中的位置信息,并根据位置信息,在用户界面中截取至少一个操作控件的控件图片;或
基于操作系统的第三API,遍历查找用户界面上的操作控件后,在用户界面中截取至少一个操作控件的控件图片;或
通过将用户界面与预先设置的操作控件的模板图片进行比对,遍历查找用户界面上的操作控件后,在用户界面中截取至少一个操作控件的控件图片。
可选的,图片获取单元1502具体用于:
通过对布局文件进行解析,查找出具有目标属性的操作控件的控件名称;
基于控件名称获取对应的UI引擎控件对象,以根据UI引擎控件对象获取操作控件的位置信息。
可选的,控件检测单元1503具体用于:
分别对各个控件图片进行拉普拉斯变换,提取各个控件图片的拉普拉斯梯度特征信息;以及
分别对各个控件图片进行DCT变换,提取各个控件图片的DCT系数特征信息;
分别根据各个控件图片的拉普拉斯梯度特征信息以及DCT系数特征信息,对各个控件图片进行模糊识别,获取用于表示各个控件图片是否模糊的模糊检测结果。
可选的,控件检测单元1503具体用于:
将控件图片的拉普拉斯梯度特征信息以及DCT系数特征信息输入已训练的分类模型,基于已训练的分类模型对控件图片进行分类,获取用于表示控件图片是否模糊的模糊检测结果;
其中,已训练的分类模型是根据训练样本数据集训练得到的,训练样本数据集中的训练样本为已标注类别标签的样本图片,样本图片包括拉普拉斯梯度特征信息和DCT系数特征信息。
可选的,装置还包括:
模型训练单元1504,用于通过下列方式训练得到已训练的分类模型:
从训练样本数据集中选取训练样本;
针对任意一个训练样本,将训练样本包含的样本图片的拉普拉斯梯度特征信息和DCT系数特征信息输入未训练的分类模型,获得未训练的分类模型输出的训练样本的类别预估结果;
根据输出的类别预估结果和训练样本上标注的类别标签之间的差异,对未训练的分类模型的网络参数进行多次调整,得到已训练的分类模型。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
在介绍了本申请示例性实施方式的用户界面的模糊检测方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。该电子设备可以用于用户界面的模糊检测。在一种实施例中,该电子设备可以是服务器,如图2所示的服务器230,也可以是其他电子设备,如图2所示的终端设备210。在该实施例中,电子设备的结构可以如图16所示,包括存储器1601,通讯模块1603以及一个或多个处理器1602。
存储器1601,用于存储处理器1602执行的计算机程序。存储器1601可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器1601可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1601也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器1601是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1601可以是上述存储器的组合。
处理器1602,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器1602,用于调用存储器1601中存储的计算机程序时实现上述用户界面的模糊检测方法。
通讯模块1603用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器1601、通讯模块1603和处理器1602之间的具体连接介质。本公开实施例在图16中以存储器1601和处理器1602之间通过总线1604连接,总线1604在图16中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1604可以分为地址总线、数据总线、控制总线等。为便于表示,图16中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1601中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的用户界面的模糊检测方法。处理器1602用于执行上述的用户界面的模糊检测方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在一些可能的实施方式中,本申请提供的用户界面的模糊检测方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的用户界面的模糊检测方法中的步骤,例如,计算机设备可以执行如图3中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (13)
1.一种用户界面的模糊检测方法,其特征在于,该方法包括:
根据获取到的屏幕显示分辨率缩放比,调用操作系统的第一应用程序编程接口API调整所述操作系统的每英寸点数DPI;以及,调用所述操作系统的第二API,设置所述操作系统的DPI感知级别,使得设置后所述操作系统的DPI感知级别与待检测应用程序的DPI感知级别一致;
获取在当前DPI感知级别下显示的所述待检测应用程序的至少一个用户界面中,至少一个操作控件的控件图片;
对获取的控件图片进行模糊识别,获取用于表示控件图片是否模糊的模糊检测结果。
2.如权利要求1所述的方法,其特征在于,所述用户界面为通过预先配置的用户界面UI引擎库加载所述用户界面的布局文件后,根据所述布局文件渲染得到的。
3.如权利要求1所述的方法,其特征在于,所述获取在当前DPI感知级别下显示的所述待检测应用程序的至少一个用户界面中,至少一个操作控件的控件图片,具体包括:
响应于针对检测界面中的第一运行控件的触发操作,根据选中的目标布局文件,获取在当前DPI感知级别下显示的待检测应用程序的目标用户界面中的各个操作控件的控件图片,其中所述目标用户界面是根据所述目标布局文件渲染得到的;或
响应于针对检测界面中的第二运行控件的触发操作,获取在当前DPI感知级别下显示的待检测应用程序的各个用户界面中的各个操作控件的控件图片。
4.如权利要求3所述的方法,其特征在于,所述检测界面还包括用于显示用户界面的界面预览区域,用于显示控件图片的控件预览区域,以及用于展示检测结果的结果显示区域;
所述对获取的控件图片进行模糊识别,获取用于表示控件图片是否模糊的模糊检测结果,具体包括:
对各个控件图片进行模糊识别的过程中,在所述检测界面中的界面预览区域显示当前正在检测的控件图片所在的用户界面,在所述检测界面中的控件预览区域显示当前正在检测的控件图片;以及
对各个控件图片进行模糊识别后,在所述检测界面中的结果显示区域显示各个控件图片对应的操作控件的模糊检测结果,或者显示针对各个控件图片所在的目标用户界面的模糊检测结果,其中所述目标用户界面的模糊检测结果是根据所述目标用户界面中的各个操作控件的模糊检测结果确定的。
5.如权利要求1所述的方法,其特征在于,所述获取在当前DPI感知级别下显示的所述待检测应用程序的至少一个用户界面中,至少一个操作控件的控件图片时,针对任意一个用户界面,具体包括:
基于所述用户界面的布局文件,获取至少一个操作控件在所述用户界面中的位置信息,并根据所述位置信息,在所述用户界面中截取至少一个操作控件的控件图片;或
基于所述操作系统的第三API,遍历查找所述用户界面上的操作控件后,在所述用户界面中截取至少一个操作控件的控件图片;或
通过将所述用户界面与预先设置的操作控件的模板图片进行比对,遍历查找所述用户界面上的操作控件后,在所述用户界面中截取至少一个操作控件的控件图片。
6.如权利要求5所述的方法,其特征在于,所述基于所述用户界面的布局文件,获取至少一个操作控件在所述用户界面中的位置信息,具体包括:
通过对所述布局文件进行解析,查找出具有目标属性的操作控件的控件名称;
基于所述控件名称获取对应的UI引擎控件对象,以根据所述UI引擎控件对象获取所述操作控件的位置信息。
7.如权利要求1~6中任一项所述的方法,其特征在于,所述对获取的控件图片进行模糊识别,获取用于表示控件图片是否模糊的模糊检测结果,具体包括:
分别对各个控件图片进行拉普拉斯变换,提取各个控件图片的拉普拉斯梯度特征信息;以及
分别对各个控件图片进行离散余弦变换DCT变换,提取各个控件图片的DCT系数特征信息;
分别根据各个控件图片的所述拉普拉斯梯度特征信息以及所述DCT系数特征信息,对各个控件图片进行模糊识别,获取用于表示各个控件图片是否模糊的模糊检测结果。
8.如权利要求7所述的方法,其特征在于,所述分别根据各个控件图片的所述拉普拉斯梯度特征信息以及所述DCT系数特征信息,对各个控件图片进行模糊识别,获取用于表示各个控件图片是否模糊的模糊检测结果时,针对任意一个控件图片,具体包括:
将所述控件图片的所述拉普拉斯梯度特征信息以及所述DCT系数特征信息输入已训练的分类模型,基于所述已训练的分类模型对所述控件图片进行分类,获取用于表示所述控件图片是否模糊的模糊检测结果;
其中,所述已训练的分类模型是根据训练样本数据集训练得到的,所述训练样本数据集中的训练样本为已标注类别标签的样本图片,所述样本图片包括拉普拉斯梯度特征信息和DCT系数特征信息。
9.如权利要求8所述的方法,其特征在于,通过下列方式训练得到所述已训练的分类模型:
从所述训练样本数据集中选取训练样本;
针对任意一个训练样本,将所述训练样本包含的样本图片的拉普拉斯梯度特征信息和DCT系数特征信息输入未训练的分类模型,获得所述未训练的分类模型输出的所述训练样本的类别预估结果;
根据输出的类别预估结果和所述训练样本上标注的类别标签之间的差异,对所述未训练的分类模型的网络参数进行多次调整,得到所述已训练的分类模型。
10.一种用户界面的模糊检测装置,其特征在于,包括:
设置单元,用于根据获取到的屏幕显示分辨率缩放比,调用操作系统的第一API调整所述操作系统的DPI;以及,调用所述操作系统的第二API,设置所述操作系统的DPI感知级别,使得设置后所述操作系统的DPI感知级别与待检测应用程序的DPI感知级别一致;
图片获取单元,用于获取在当前DPI感知级别下显示的所述待检测应用程序的至少一个用户界面中,至少一个操作控件的控件图片;
控件检测单元,用于对获取的控件图片进行模糊识别,获取用于表示控件图片是否模糊的模糊检测结果。
11.如权利要求10所述的装置,其特征在于,所述用户界面为通过预先配置的UI引擎库加载所述用户界面的布局文件后,根据所述布局文件渲染得到的。
12.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~9中任一所述方法的步骤。
13.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~9中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011031319.2A CN112131121B (zh) | 2020-09-27 | 2020-09-27 | 用户界面的模糊检测方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011031319.2A CN112131121B (zh) | 2020-09-27 | 2020-09-27 | 用户界面的模糊检测方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112131121A CN112131121A (zh) | 2020-12-25 |
CN112131121B true CN112131121B (zh) | 2021-09-28 |
Family
ID=73840554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011031319.2A Active CN112131121B (zh) | 2020-09-27 | 2020-09-27 | 用户界面的模糊检测方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131121B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112598604A (zh) * | 2021-03-04 | 2021-04-02 | 成都东方天呈智能科技有限公司 | 一种盲脸复原方法及系统 |
CN113256555A (zh) * | 2021-03-26 | 2021-08-13 | 东北大学 | 一种基于机器学习的外观异常gui控件检测方法 |
CN113050860B (zh) * | 2021-04-27 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 一种控件识别方法和相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108734656A (zh) * | 2017-04-18 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 缩放处理方法及装置 |
CN110047071A (zh) * | 2019-04-26 | 2019-07-23 | 杭州智趣智能信息技术有限公司 | 一种图像质量评估方法、装置和介质 |
CN110865812A (zh) * | 2019-10-24 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 一种用户界面识别方法和装置 |
CN111258467A (zh) * | 2020-01-07 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 界面显示方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180157386A1 (en) * | 2016-12-05 | 2018-06-07 | Jiawen Su | System and Method for detection, exploration, and interaction of graphic application interface |
US10168704B2 (en) * | 2017-06-05 | 2019-01-01 | Hanzhou Zero Zero Technology Co., Ltd. | System and method for providing easy-to-use release and auto-positioning for drone applications |
CN111553431A (zh) * | 2020-04-30 | 2020-08-18 | 上海眼控科技股份有限公司 | 图片清晰度检测方法、装置、计算机设备及存储介质 |
-
2020
- 2020-09-27 CN CN202011031319.2A patent/CN112131121B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108734656A (zh) * | 2017-04-18 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 缩放处理方法及装置 |
CN110047071A (zh) * | 2019-04-26 | 2019-07-23 | 杭州智趣智能信息技术有限公司 | 一种图像质量评估方法、装置和介质 |
CN110865812A (zh) * | 2019-10-24 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 一种用户界面识别方法和装置 |
CN111258467A (zh) * | 2020-01-07 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 界面显示方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
"Intel()Tablet App Showcase应用的设计";瞿曦;《中国优秀硕士学位论文全文数据库电子期刊 信息科技辑》;20170315;第1-63页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112131121A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112131121B (zh) | 用户界面的模糊检测方法、装置、电子设备和存储介质 | |
CN107666987B (zh) | 机器人过程自动化 | |
US11966758B2 (en) | Method and system for accessing table content in a digital image of the table | |
US10540167B2 (en) | Image based method and system for building object model and application states comparison and graphic-based interoperability with an application | |
US10878531B2 (en) | Robotic process automation | |
US10852898B2 (en) | System for interactive help | |
CN108229485B (zh) | 用于测试用户界面的方法和装置 | |
US10169853B2 (en) | Score weights for user interface (UI) elements | |
EP3103088A1 (en) | Behavioral event measurement system and related method | |
US20210311723A1 (en) | Method and system for providing image-based interoperability with an application | |
CN113748413B (zh) | 文本检测、插入符号追踪以及活动元素检测 | |
CN111309618A (zh) | 页面元素定位方法、页面测试方法及相关装置 | |
WO2023027812A1 (en) | Automated adaptation of video feed relative to presentation content | |
US20210366172A1 (en) | Commodity guiding method, electronic device and storage medium | |
CN112930538B (zh) | 文本检测、插入符号追踪以及活动元素检测 | |
CN112100074A (zh) | 一种界面诊断方法、装置、终端和计算机可读存储介质 | |
CN113552977A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
US10631050B2 (en) | Determining and correlating visual context on a user device with user behavior using digital content on the user device | |
CN114842476A (zh) | 水印检测方法及装置、模型训练方法及装置 | |
Simko et al. | Screen recording segmentation to scenes for eye-tracking analysis | |
WO2016101768A1 (zh) | 终端以及基于触摸操作的搜索方法和装置 | |
CN110851349A (zh) | 页面异常显示的检测方法、终端设备及存储介质 | |
US11644960B1 (en) | Image data augmentation using user interface element attributes | |
CN113657230B (zh) | 训练新闻视频识别模型的方法、检测视频的方法及其装置 | |
Ma et al. | Generating Summarized Preview for Education Resource based on Exploring and Comparing GUIs. |
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 |