CN111273905B - 基于界面草图的应用检索方法和装置 - Google Patents
基于界面草图的应用检索方法和装置 Download PDFInfo
- Publication number
- CN111273905B CN111273905B CN202010050903.6A CN202010050903A CN111273905B CN 111273905 B CN111273905 B CN 111273905B CN 202010050903 A CN202010050903 A CN 202010050903A CN 111273905 B CN111273905 B CN 111273905B
- Authority
- CN
- China
- Prior art keywords
- image
- tree
- layout tree
- control layout
- application
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Human Computer Interaction (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了基于界面草图的应用检索方法和装置。该方法对输入的图像进行预处理后,通过对预处理后的图像进行递归分割,对各分割后的图像识别边缘矩形框,然后识别边缘矩形框内的图元标识,根据图元标识对应的控件种类识别出各种类型的控件,并根据边缘矩形框的位置确定该控件在界面上的位置,结合递归的层次关系组成用以表示控件间的层次布局的控件布局树,然后将该生产的控件布局树与应用库中各应用对应的控件布局树进行布局树相似度值计算,根据布局树相似度值是否大于阈值得到匹配的应用。软件研发人员可以依据本发明的方法和装置检索相似的界面的应用,为设计软件图形应用界面提供便利。
Description
技术领域
本发明涉及软件图形界面设计领域,特别涉及基于应用UI界面的应用检索。
背景技术
在软件开发中,图形用户界面非常重要。一个具有丰富且交互友好用户图形界面的软件更容易被用户所接受和青睐。在移动应用软件或者在台式桌面应用软件中,友好的用户图形界面在市场上具有更强的市场竞争力。为软件设计友好的用户图形界面需要耗费很多精力和资源。虽然目前各种应用软件开发平台大都支持图形界面控件拖拽式的所见即所得的图形界面生成平台。然而,这种拖拽的图形界面生成平台往往需要进行复杂的环境配置,这是一种重量级的应用背景,而这些行为不仅对图形界面设计的空间场景有较高要求,且需要用户具有领域内一定的先验知识。
如何评价图形用户界面好坏对设计人员来说是一个重大问题。一种非常好的思路是,软件设计人员可以根据设计好的图形用户界面进行应用检索,根据检索到的应用结果可以评价所设计的图形用户界面是否符合用户一般的操作习惯,是否符合美学潮流。另一方面,设计人员也可以根据检索到的结果参考其他关联页面的设计,由此可以大大提高软件开发图形用户界面设计的效率。当然,软件设计人员在设计阶段不可能根据已经开发完成的应用提取图形用户界面进行检索,因此,根据图形用户界面进行应用检索时,最好能够根据图形界面草图进行应用检索。草图作为人类自然沟通的一种重要方式,保存了思维的核心,有利于创造性思维的快速表达。通过图形界面草图进行应用检索,并通过图形界面草图进行图形用户界面建模将大大提高软件应用开发设计人员的效率。
发明内容
本发明所要解决的问题:设计一种基于图形界面的应用检索系统,特别是,基于图形界面草图的应用检索系统,为软件开发设计人员设计用户图形界面提供便利。
为解决上述问题,本发明采用的方案如下:
根据本发明的基于界面草图的应用检索方法,该方法包括如下步骤:
S1:对输入的图像进行预处理;所述预处理包括依次进行的灰度化处理步骤、二值化处理步骤、去噪声处理步骤、以及线体单像素细化步骤;
S2:对图像进行递归分析处理,生成控件布局树;
S3:将所生成的控件布局树与应用库中各应用对应的控件布局树分别做相似度比较,计算相应的布局树相似度值;
S4:选取布局树相似度值超过预先设定阈值的应用;
所述步骤S2包括:
S21:对图像进行连续性分割,得到图像分割块和所述图像分割块的位置信息;
S22:识别所述图像分割块的边缘矩形框;
S23:若所述图像分割块能够识别到边缘矩形框,则将所述图像分割块清除所述边缘矩形框后得到的图像作为步骤S2的输入转步骤S2进行递归;
S24:若所述图像分割块未能识别到边缘矩形框,则识别所述图像分割块内的图元标识;所述图元标识是用于区分控件种类的标识图像;每一种控件种类对应特定的图元标识;
S25:根据识别到的图元标识和所述图像分割块所对应的边缘矩形框确定控件种类,结合所述图像分割块的位置信息,组成控件布局树节点,进而构建相应的控件布局树;
所述步骤S3包括:
S31:将所生成的控件布局树和应用对应的控件布局树进行匹配,找出最佳匹配子树,并计算该最佳匹配子树的树重值Wm,i;
S32:计算所生成的控件布局树的树重值Wt和应用对应的控件布局树的树重值Wi;
S33:计算所生成的控件布局树与应用对应的控件布局树的布局树相似度值:
其中,Si表示为第i个应用对应的控件布局树与所生成的控件布局树的布局树相似度值;Wi表示为第i个应用对应的控件布局树的树重值;Wm,i表示为第i个应用对应的控件布局树与所生成的控件布局树之间最佳匹配子树的树重值。
进一步,根据本发明的基于界面草图的应用检索方法,该方法还包括步骤:
S5:根据布局树相似度值大小对步骤S4获得的应用进行排序。
进一步,根据本发明的基于界面草图的应用检索方法,所述控件布局树的树重值采用如下公式进行计算:
其中,N为控件布局树的节点数;Cj为第j个节点的子孙节点数;Hj为第j个节点与根节点的距离;Vj为第j个节点根据其控件类型所确定的加权系数。
进一步,根据本发明的基于界面草图的应用检索方法,所述步骤S24中,若所述图像分割块未能识别到边缘矩形框,则识别所述图像分割块内的图元标识单元;所有图像分割块识别结束后,根据当前递归层次下识别到的若干个所述图元标识单元以及所述图元标识单元之间的位置信息组成图元标识;
所述识别所述图像分割块内的图元标识单元包括如下步骤:
S241:将所述图像分割块的图像缩放至所述图元标识单元对应模板图像的尺寸大小;
S242:统计缩放后的图像分别在横向和纵向上的投影分布的有色像素数;
S243:统计缩放后的图像分别与中心点的按距离分布的有色像素数和与中心点的按角度分布的有色像素数;
S244:根据所述在横向和纵向上的投影分布的有色像素数以及所述与中心点的按距离分布的有色像素数和所述与中心点的按角度分布的有色像素数作为特征向量与所述图元标识单元对应模板图像进行相似度比较,判断所述图像分割块的图像是否为相应的图元标识单元。
进一步,根据本发明的基于界面草图的应用检索方法,所述步骤S242为:统计缩放后的图像在横向上的投影的有色像素数GTx={tx1,tx2,...,txW}和在纵向上的投影的有色像素数GTy={ty1,ty2,...,tyH};其中,W为所述图元标识单元对应模板图像横向上的尺寸,H为所述图元标识单元对应模板图像纵向上的尺寸,txi|i∈(1..W)为所述缩放后的图像在横向上第i位置纵向上的有色像素数;tyj|j∈(1..H)为所述缩放后的图像在纵向上第j位置横向上的有色像素数;所述有色像素为区别于背景色的像素点;
所述步骤S243为:统计缩放后的图像与中心点的距离分布的有色像素数GTl={tl1,tl2,...,tlL}和与中心点的等角分布的有色像素数GTb={tb1,tb2,...,tbB};其中,L为与中心点的距离数,B为与中心点的等角数,tlk|k∈(1..L)为所述缩放后的图像与中心点距离落在区间[rk,rk+1)的有色像素数;tbc|c∈(1..B)为所述缩放后的图像与中心点的角度落在区间[ac,ac+1)的有色像素数;r1,r2,...,rL+1为与中心点的距离分割点;a1,a2,...,aB+1为中心点的角度分割点;
所述步骤S244为:将GTx、GTy、GTl和GTb组成向量GT,并通过余弦相似度公式计算向量GT与所述图元标识单元对应模板图像对应的向量GM之间的相似度,然后根据得到的相似度判断所述图像分割块的图像是否为相应的图元标识单元。
根据本发明的基于界面草图的应用检索装置,该装置包括如下模块:
M1,用于:对输入的图像进行预处理;所述预处理包括依次进行的灰度化处理步骤、二值化处理步骤、去噪声处理步骤、以及线体单像素细化步骤;
M2,用于:对图像进行递归分析处理,生成控件布局树;
M3,用于:将所生成的控件布局树与应用库中各应用对应的控件布局树分别做相似度比较,计算相应的布局树相似度值;
M4,用于:选取布局树相似度值超过预先设定阈值的应用;
所述模块M2包括:
M21:对图像进行连续性分割,得到图像分割块和所述图像分割块的位置信息;
M22:识别所述图像分割块的边缘矩形框;
M23:若所述图像分割块能够识别到边缘矩形框,则将所述图像分割块清除所述边缘矩形框后得到的图像作为模块M2的输入转模块M2进行递归;
M24:若所述图像分割块未能识别到边缘矩形框,则识别所述图像分割块内的图元标识;所述图元标识是用于区分控件种类的标识图像;每一种控件种类对应特定的图元标识;
M25:根据识别到的图元标识和所述图像分割块所对应的边缘矩形框确定控件种类,结合所述图像分割块的位置信息,组成控件布局树节点,进而构建相应的控件布局树;
所述步骤M3包括:
M31,用于:将所生成的控件布局树和应用对应的控件布局树进行匹配,找出最佳匹配子树,并计算该最佳匹配子树的树重值Wm,i;
M32,用于:计算所生成的控件布局树的树重值Wt和应用对应的控件布局树的树重值Wi;
M33,用于:计算所生成的控件布局树与应用对应的控件布局树的布局树相似度值:
其中,Si表示为第i个应用对应的控件布局树与所生成的控件布局树的布局树相似度值;Wi表示为第i个应用对应的控件布局树的树重值;Wm,i表示为第i个应用对应的控件布局树与所生成的控件布局树之间最佳匹配子树的树重值。
进一步,根据本发明的基于界面草图的应用检索装置,该装置还包括模块:
M5:根据布局树相似度值大小对模块M4获得的应用进行排序。
进一步,根据本发明的基于界面草图的应用检索装置,所述控件布局树的树重值采用如下公式进行计算:
其中,N为控件布局树的节点数;Cj为第j个节点的子孙节点数;Hj为第j个节点与根节点的距离;Vj为第j个节点根据其控件类型所确定的加权系数。
进一步,根据本发明的基于界面草图的应用检索装置,所述模块M24中,若所述图像分割块未能识别到边缘矩形框,则识别所述图像分割块内的图元标识单元;所有图像分割块识别结束后,根据当前递归层次下识别到的若干个所述图元标识单元以及所述图元标识单元之间的位置信息组成图元标识;
所述识别所述图像分割块内的图元标识单元包括如下模块:
M241,用于:将所述图像分割块的图像缩放至所述图元标识单元对应模板图像的尺寸大小;
M242,用于:统计缩放后的图像分别在横向和纵向上的投影分布的有色像素数;
M243,用于:统计缩放后的图像分别与中心点的按距离分布的有色像素数和与中心点的按角度分布的有色像素数;
M244,用于:根据所述在横向和纵向上的投影分布的有色像素数以及所述与中心点的按距离分布的有色像素数和所述与中心点的按角度分布的有色像素数作为特征向量与所述图元标识单元对应模板图像进行相似度比较,判断所述图像分割块的图像是否为相应的图元标识单元。
进一步,根据本发明的基于界面草图的应用检索装置,所述模块M242为:统计缩放后的图像在横向上的投影的有色像素数GTx={tx1,tx2,...,txW}和在纵向上的投影的有色像素数GTy={ty1,ty2,...,tyH};其中,W为所述图元标识单元对应模板图像横向上的尺寸,H为所述图元标识单元对应模板图像纵向上的尺寸,txi|i∈(1..W)为所述缩放后的图像在横向上第i位置纵向上的有色像素数;tyj|j∈(1..H)为所述缩放后的图像在纵向上第j位置横向上的有色像素数;所述有色像素为区别于背景色的像素点;
所述模块M243为:统计缩放后的图像与中心点的距离分布的有色像素数GTl={tl1,tl2,...,tlL}和与中心点的等角分布的有色像素数GTb={tb1,tb2,...,tbB};其中,L为与中心点的距离数,B为与中心点的等角数,tlk|k∈(1..L)为所述缩放后的图像与中心点距离落在区间[rk,rk+1)的有色像素数;tbc|c∈(1..B)为所述缩放后的图像与中心点的角度落在区间[ac,ac+1)的有色像素数;r1,r2,...,rL+1为与中心点的距离分割点;a1,a2,...,aB+1为中心点的角度分割点;
所述模块M244为:将GTx、GTy、GTl和GTb组成向量GT,并通过余弦相似度公式计算向量GT与所述图元标识单元对应模板图像对应的向量GM之间的相似度,然后根据得到的相似度判断所述图像分割块的图像是否为相应的图元标识单元。
本发明的技术效果如下:通过本发明方法和装置,软件研发人员可以输入界面草图,然后根据本发明的方法检索出出相似的界面的应用,由此为软件研发人员设计用户图形界面提供便利。
附图说明
图1是本发明实施例图形界面草图识别的流程图。
图2是本发明实施例输入的图形界面草图示例。
图3是本发明实施例图形界面草图识别的另一实施方式流程图。
图4是图2中的图像分割示例。
图5是本发明实施例图元标识单元模板示例。
图6是本发明根据图2中的图元标识单元组成的图元标识和控件对应表的示例。
图7是本发明实施例根据图4的草图示例得到的控件布局树。
图8是本发明实施例另一实施方式下的图元标识和控件对应表的示例。
具体实施方式
下面结合附图对本发明做进一步详细说明。
本实施例涉及一种安卓应用下载服务系统,该系统除了为普通用户提供安卓应用下载服务之外,还为软件研发人员提供基于界面草图的应用检索服务。该系统被配置于远程服务器上。软件研发人员可以通过客户端接入该系统。软件研发人员通过客户端接入该系统后,在客户端输入图形界面草图,并通过客户端将输入的图形界面草图上传至该系统,该系统通过本发明的基于界面草图的应用检索方法得到检索出的应用列表并返回至客户端。
本发明的基于界面草图的应用检索方法主要包括两个步骤:第一个步骤是界面草图的识别,第二步骤是匹配计算布局树相似度值并根据布局树相似度值选取应用。第一个步骤的输入是来自于客户端上传的图形界面草图;输出为控件布局树。第二步骤的输入是控件布局树,也就是第一个步骤的输出;输出是检索后匹配的应用列表。
界面草图的识别步骤又分成两个步骤:第一个步骤是草图预处理步骤,第二个步骤是对预处理后的草图进行递归处理步骤。来自于客户端上传的图形界面草图,可以是由扫描仪扫描纸件上的图形界面草图得到的图像,或者由相机拍摄纸件或白板或黑板得到的图像,也可以是客户端手绘的图形界面草图。无论是扫描仪扫描得到的图像还是相机拍摄得到的图像,本领域技术人员理解,通常为JPG格式的图片,包含有大量的噪音信息,为此需要对该输入的草图进行预处理。
草图预处理步骤,也就是前述步骤S1。本实施例中,包括依次进行的灰度化处理步骤、二值化处理步骤、去噪声处理步骤、以及线体单像素细化步骤。
灰度化处理步骤也就是将彩色化的JPG格式的图片转换成灰度化表示,具体来说将图像每个像素RGB表示的彩色转换成每个像素的灰度值形成灰度化表示,本领域技术人员理解,灰度值可以根据公式:Gray=(R×77+G×151+B×28)>>8进行快速计算,得到的灰度值Gray位于区间0~255。本实施例的示例中,通过直接调用MatLab中的rgb2gray函数实现。rgb2gray函数输入的是彩色图像,输出为灰度图像。
二值化处理步骤也就是将前述得到的灰度图像做进一步处理使得灰度图像转换成0和255或0和1的二值图像,使得整个图像呈现为非黑即白和非白即黑的黑白效果。本领域技术人员理解二值化处理可以通过对灰度图像的每个灰度值统计得到灰度值的直方图HH={h0,h1,h2,...,h255}后,然后通过聚类算法对灰度值的直方图聚类分析后,得到背景色和前景色的中心灰度值,然后根据背景色和前景色的中心灰度值划分出背景色的灰度值范围和前景色的灰度值范围,灰度值落入背景色的灰度值范围的设为0,落入前景色的灰度值范围的设为255或1,从而得到二值灰度的二值图像。直方图HH={h0,h1,h2,...,h255}中,h0,h1,h2,...,h255分别为灰度图像各个灰度值的统计值。本实施例的示例中,通过直接调用MatLab中的graythresh函数实现。graythresh函数输入的是灰度图像,输出为0和255的二值图像。
去噪声处理步骤,也即是剔除二值图像中面积小于预先设定阈值的图像块。比如,在0和255表示的二值图像中,0为背景色,255为前景色,剔除掉颜色为255前景色的面积小于预先设定阈值的图像块替换成背景色0表示。本实施例的示例中,通过直接调用MatLab中的bwareaopen函数实现。函数bwareaopen用于删除二值图像BW中面积小于预先设定阈值的对象。预先设定阈值可以定义为5~15。
线体单像素细化步骤。草图绘制中,绘制的图像通常通过线体表示。但草图绘制的线体粗细通常不一,体现在去噪声处理步骤后的二值图像中,对应的线体可能是1~N个像素宽度,为便于后续的第二个步骤的递归处理,本实施例将线体单像素细化,该步骤处理后,线体宽度全都转换成单像素宽度。本实施例的示例中,通过直接调用MatLab中的bwmorph函数实现。
经上述预处理后的图像进行递归分析处理也就是前述步骤S2。步骤S2如图1所示,大体包括:步骤S21,图像分割步骤;步骤S22,识别边缘矩形框步骤;步骤S23,清除边缘矩形框后递归调用步骤S2的步骤;步骤S24,识别图元标识步骤;步骤S25,构建控件布局树步骤。步骤S2的递归处理体现在步骤S23中。
步骤S21图像分割步骤是根据图像前景色的连续性划分区块而形成图像分割块。图像分割步骤分割得到的图像分割块可能有多块,因此需要对多块图像分割块进行循环遍历。判断步骤T1分割块是否都遍历过是循环遍历过程中的循环结束判断步骤。步骤S22、S23和S24是针对某个图像分割块所处理的步骤。对于该图像分割块首先执行步骤S22识别边缘矩形框。如果步骤S22能够识别到边缘矩形框,则执行步骤S23,清除边缘矩形框后留下边缘矩形框内的图像内容输入至步骤S2进行递归,递归结束后返回图像分割块的遍历过程;如果步骤S22不能够识别到边缘矩形框则执行步骤S24识别图元标识。步骤S24识别图元标识后,一个图像分割块的处理结束,返回至判断步骤T1,进行下一个图像分割块的处理。若判断步骤T1判断到所有的图像分割块均遍历过,则执行步骤S25,构建控件布局树,之后结束当前层次的递归过程返回至上一层次。返回上一层次的递归时,存在两种可能性,第一种是递归分析处理整体处理步骤结束,第二种是通过步骤S23返回至上一层次后继续下一图像分割块的遍历过程。
图2是本实施例的一个图形界面草图输入示例。该图形界面草图中,矩形框F1、F11、F12、F13、F14、F15、F16、F161、F1611、F1612、F1613以及F17即为边缘矩形框,由于经图像分割后得到相应的图像分割块中,这些矩形框位于该图像分割块的边缘,因此,本发明称之为边缘矩形框。该图形界面草图经步骤S1的草图预处理后进行递归处理过程时,首先执行步骤S21,步骤S21执行后得到一个矩形框F1所圈定范围的图像分割块,此时执行步骤S22时,能够识别到矩形框F1作为该图像分割块的边缘矩形框,因此,转步骤S23。步骤S23后清除作为边缘矩形框的矩形框F1后,剩下矩形框F1内的图像内容作为步骤S2的输入进行下一层次的递归。对矩形框F1内的图像内容进行递归时,步骤S21执行后能够得到多个图像分割块,分别为矩形框F11、F12、F13、F14、F15、F16和F17各自所圈定的范围作为图像分割块。矩形框F11、F12、F13、F14、F15、F16和F17各自所对应的图像分割块,识别到相应的矩形框F11、F12、F13、F14、F15、F16和F17后,执行步骤S23清除相应的矩形框F11、F12、F13、F14、F15、F16和F17后,剩下矩形框F11、F12、F13、F14、F15、F16和F17内的图像内容再输入至步骤S2进行递归调用。对于矩形框F11所对应的图像分割块,去除矩形框F11,剩下圆圈F111。剩下圆圈F111的图像内容输入至步骤S2进行递归调用时,步骤S22识别不到矩形框,则执行步骤S24。对于矩形框F12所对应的图像分割块,去除矩形框F12后剩下三个叉F121,则执行步骤S24。同理对于矩形框F13、F14和F15以及F17均如此。而对于矩形框F16所对应的图像分割块,去除矩形框F16后剩下矩形框F161和箭头F162,此时执行步骤S21时能够分割出两个图像分割块分别为:矩形框F161所圈定范围的图像分割块和箭头F162所对应的图像分割块。矩形框F161所对应的图像分割块在执行步骤S22时,能够识别到相应的矩形框F162作为边缘矩形框,因此,转步骤S23,清除边缘矩形框F162后得到三个矩形框F1611、F1612、F1613的剩余图像进行步骤S2的递归。而对于箭头F162所对应的图像分割块则在步骤S22中识别不到相应的边缘矩形框,则执行步骤S24。对于三个矩形框F1611、F1612和F1613的剩余图像进行步骤S2递归时,在步骤S21中分割成矩形框F1611、F1612和F1613各自对应的图像分割块。矩形框F1611、F1612和F1613各自所对应的图像分割块,识别到相应的矩形框F1611、F1612和F1613后,执行步骤S23清除相应的矩形框F1611、F1612和F1613后,剩下矩形框F1611、F1612和F1613内的图像内容再输入至步骤S2进行递归调用。对于矩形框F1611所对应的图像分割块,去除矩形框F1611,剩下三角形F16111。剩下三角形F16111的图像内容输入至步骤S2进行递归调用时,步骤S22识别不到矩形框,则执行步骤S24。而对于矩形框F1612和F1613所对应的图像分割块的处理同前述的矩形框F12。
根据前述图2的示例,步骤S21就是对二值图像内图像内容的连续性分割,这对本领域技术人员来说为并不难实现,为本领域技术人员所熟悉。本实施例中,为简单起见,同时也考虑到,矩形框是水平摆放的,当矩形框出现明显不合理的倾斜、线条扭曲等情况是不合理的控件的摆放方式,不予识别,为此,将输入的图像向横向和纵向上进行投影,提取在横向上和纵向上的投影连续区域则作为预分割块。若预分割块向横向和纵向上进行投影时,若在横向上和纵向上的投影连续,则作为图像分割块,否则提取在横向上和纵向上的投影连续区域则作为预分割块,然后再对这些预分割块分别进行向横向和纵向上进行投影判读其连续性。也就是说,本实施例步骤S21的图像分割本身为递归处理过程,而且该递归过程与前述的递归过程结合,参照图3。
图3显示了本发明步骤S2又一实施方式下的流程。相比于图1中的流程,图1中的步骤S1在图3所显示的流程中被分解成:步骤S211、T11、T12、S212。步骤S211投影分割即为前述的输入的图像向横向和纵向上进行投影,提取在横向上和纵向上的投影连续区域则作为预分割块。步骤S211投影分割所分割到的预分割块可能由多块,因此有判断步骤T1l,预分割块是否都遍历过。判断步骤T11类似于前述图1中的判断步骤T1,是为循环遍历步骤的中的循环判断条件。步骤T12的投影判断细分用于判断该预分割块是否可以进一步进行细分,若能够细分,则表明该预分割块由多个前述的图像分割块所组成而执行步骤S212递归调用步骤S2,若不能够细分,则表明该预分割块独立构成前述的图像分割块,则对该图像分割块执行前述图1中的步骤S22、S23和S24。步骤T12的投影判断细分也就是前述的将预分割块向横向和纵向上进行投影,若在横向上和纵向上的投影连续,则该预分割块不能细分独立构成图像分割块,否则表明该预分割块由多个图像分割块组成。图3实施方式下,图像分割成图像分割块的过程与对图像分割块的遍历混淆,逻辑上不是很清楚,因此本发明优先采用图1实施方式下,将图像先分割成若干图像分割块后再循环遍历各个图像分割块。
步骤S21分割得到的图像分割块或者步骤S211分割得到的预分割块为矩形区域。图2中的矩形框F16所对应的图像分割块为如图4所示的虚线框E16所标注的矩形区域,而对于三角形F16111所对应的图像分割块为如图4所示的虚线框E16111所标注的矩形区域。
步骤S22识别边缘矩形框。边缘矩形框的识别方法很多,本实施例采用如下方法,首先,统计图像分割块横向上的直方图HX={hxi|i∈[1..MX]}和纵向上的直方图HY={hyi|i∈[1..MY]},其中,MX为图像分割块的宽度,MY为图像分割块的高度。hxi为第i个横向坐标在纵向上的前景色像素点值;hyi为第i个纵向坐标在横向上的前景色像素点值。然后对直方图HX={hxi|i∈[1..MX]}和HY={hyi|i∈[1..MY]}用卷积核{-1,-1,-1,-1,8,-1,-1,-1,-1}进行卷积,分别得到卷积直方图SX={sxi|i∈[1..MX]}和SY={syi|i∈[1..MY]};然后判断i<9和i<MX-9时是否存在sxi>0.6×MY以及i<9和i<MY-9时是否存在syi>0.6×MX,若条件满足,则存在边缘矩形框。
步骤S23清除边缘矩形框采用如下方法:对图像分割块每一水平线进行自左到右和自右到左扫描,将扫描到第一个前景色像素点替换成背景色,以及对图像分割块每一垂直线进行自上而下和自下而上扫描,将扫描到的扫描到第一个前景色像素点替换成背景色。由于,本实施例在步骤S1中对边缘矩形框的线体进行了单像素操作,因此,上述处理后,即清除了边缘矩形框。
步骤S24识别图元标识中,图元标识是用于区分控件种类的标识图像,每一种控件种类对应特定的图元标识。图元标识的标识图像具有特定形状以区分控件种类。本实施例中,图元标识基于图元标识单元。图元标识由单个图元标识单元或多个图元标识单元组成。每个图元标识单元通过特定的图形进行区分。图5显示了本实施例所定义的图元标识单元。本实施例定义了8种图元标识单元,分别为:竖直线VertLine,圆Cirle,三角形Triangle,叉Cross,勾Check,水平线HorzLine,向下箭头Arrow,以及矩形Rectangle。图6则显示了本实施例所定义的图元标识与控件类型的对应表,该表定义了9中图元标识,分别为:文本编辑框EditBox,按钮Button,图片框ImageBox,文本框TextBox,复选框RadioBox,勾选框CheckBox,状态切换按钮SwitchButton,工具条ToolBar和列表List。其中,文本编辑框EditBox的图元标识为单个的竖直线VertLine;按钮Button的图元标识为单个的圆Cirle;图片框ImageBox的图元标识为单个的三角形Triangle;文本框TextBox的图元标识由三个叉Cross组成;复选框RadioBox的图元标识由一个圆Cirle和两个叉Cross组成;勾选框CheckBox的图元标识由一个勾Check和两个叉Cross组成;状态切换按钮SwitchButton的图元标识由一个圆Cirle和一个水平线HorzLine组成;工具条ToolBar的图元标识由三个水平线HorzLine和一个圆Cirle组成;列表List由一个矩形Rectangle和一个向下箭头Arrow组成,以此表示若干个相同类型的矩形Rectangle圈定的范围组成的列表。此外,多个图元标识单元组成图元标识时,多个图元标识单元之间具有相对固定的位置关系。
由于本实施例中的图元标识由多个独立的图元标识单元,因此步骤S24采用如下方法,也就是,若图像分割块未能识别到边缘矩形框,则识别图像分割块内的图元标识单元;在所有图像分割块识别结束后,根据当前递归层次下识别到的若干个图元标识单元以及图元标识单元之间的位置信息组成图元标识。其中,图元标识单元的识别具体采用如下步骤:
S241:将图像分割块的图像缩放至图元标识单元对应模板图像的尺寸大小;
S242:统计缩放后的图像分别在横向和纵向上的投影分布的有色像素数;
S243:统计缩放后的图像分别与中心点的按距离分布的有色像素数和与中心点的按角度分布的有色像素数;
S244:根据在横向和纵向上的投影分布的有色像素数以及与中心点的按距离分布的有色像素数和与中心点的按角度分布的有色像素数作为特征向量与图元标识单元对应模板图像进行相似度比较,判断图像分割块的图像是否为相应的图元标识单元。
其中,图元标识单元对应模板图像即为图5中所定义的图元标识单元模板图像,有色像素即为像素二值化灰度为前景色的像素,与此对应的无色像素为像素二值化灰度为背景色的像素。这里的统计缩放后的图像分别在横向和纵向上的投影分布的有色像素数,即为前述步骤S22中的统计图像分割块横向上的直方图HX={hxi|i∈[1..MX]}和纵向上的直方图HY={hyi|i∈[1..MY]},也就是,横向上的直方图HX={hxi|i∈[1..MX]}和纵向上的直方图HY={hyi|i∈[1..MY]}即为横向和纵向上的投影分布的有色像素数,只不过这里的MX和MY对应于图元标识单元模板图像的宽度和高度,也可表示成:在横向上的投影的有色像素数GTx={tx1,tx2,...,txw}和在纵向上的投影的有色像素数GTy={ty1,ty2,...,tyH};其中,W为图元标识单元对应模板图像横向上的尺寸,H为图元标识单元对应模板图像纵向上的尺寸,txi|i∈(1..W)为缩放后的图像在横向上第i位置纵向上的有色像素数;tyi|j∈(1..H)为缩放后的图像在纵向上第j位置横向上的有色像素数。步骤S243中,缩放后的图像分别与中心点的按距离分布的有色像素数和与中心点的按角度分布的有色像素数可以表示成:与中心点的距离分布的有色像素数GTl={tl1,tl2,...,tlL}和与中心点的等角分布的有色像素数GTb={tb1,tb2,...,tbB};其中,L为与中心点的距离数,B为与中心点的等角数,tlk|k∈(1..L)为缩放后的图像与中心点距离落在区间[rk,rk+1)的有色像素数;tbc|c∈(1..B)为缩放后的图像与中心点的角度落在区间[ac,ac+1)的有色像素数;r1,r2,...,rL+1为与中心点的距离分割点;a1,a2,...,aB+1为中心点的角度分割点。本实施例中,与中心点的按角度分布中的角度分布为等角度分布。与中心点的按距离分布可以是等距离分布,也可以是其他分布,比如等对数距离分布。等对数距离分布也就是与中心点的距离分割点r1,r2,...,rL+1满足:ri=ln(rxi),其中rx1,rx2,...,rxL+1满足等距分布。
步骤S244中,相似度比较的方法有很多种,本实施例第一种实施方式是,将GTx、GTy、GTl和GTb组成向量GT,并通过余弦相似度公式计算向量GT与图元标识单元对应模板图像对应的向量GM之间的相似度,然后根据得到的相似度判断图像分割块的图像是否为相应的图元标识单元。其中,GT={tx1,tx2,...,txW,ty1,ty2,...,tyH,tl1,tl2,...,tlL,tb1,tb2,...,tbB}。其中,图元标识单元对应模板图像对应的向量GM由GMx、GMy、GMl和GMb组成,GMx、GMy、GMl和GMb分别为图元标识单元对应模板图像在横向上的投影的有色像素数、在纵向上的投影的有色像素数、与中心点的按距离分布的有色像素数和与中心点的按角度分布的有色像素数,分别定义如下:GMx={mx1,mx2,...,mxW};GMy={my1,my2,...,myH};GMl={ml1,ml2,...,mlL};GMb={mb1,mb2,...,mbB};其中,mxi|i∈(1..W)为图元标识单元对应模板图像在横向上第i位置纵向上的有色像素数;myj|j∈(1..H)为图元标识单元对应模板图像在纵向上第j位置横向上的有色像素数;mlk|k∈(1..L)为图元标识单元对应模板图像与中心点距离落在区间[rk,rk+1)的有色像素数;mbc|c∈(1..B)为图元标识单元对应模板图像与中心点的角度落在区间[ac,ac+1)的有色像素数。对应于向量GT,向量GM则有:
GM={mx1,mx2,…,mxw,my1,my2,…,myH,ml1,ml2,…,mlL,mb1,mb2,…,mbB}。
向量之间的余弦相似度公式为本领域技术人员所熟悉,本说明书不再赘述。此外,需要说明的是,由于图元标识单元对应的模板图像是预先设定的,因此,向量GM可以预先计算得到。此外,相似度也可以采用原点距离公式计算,也即是对于向量GT={ti|i∈[1..WHLB]}和向量GM={mi|i∈[1..WHLB]},其中WHLB=W+H+L+B;原点距离公式有:或者简单点地:此种方式下,步骤S242中可以直接统计缩放后的图像和图元标识单元对应模板图像在横向上的投影的有色像素数差值Gx={x1,x2,...,xW}和在纵向上的投影的有色像素数差值Gy={y1,y2,...,yH};其中,Gx=GTx-GMx;Gy=GTy-GMy;步骤243中可直接统计缩放后的图像和所述图元标识单元对应模板图像与中心点的距离分布的有色像素数差值Gl={l1,l2,...,lL}和与中心点的等角分布的有色像素数差值Gb={b1,b2,...,bB};其中,Gl=GTl-GMl;Gb=GTb-GMb。于是步骤S244中可将向量Gx、Gy、Gl和Gb组成向量G,并计算向量G的原点距。此时向量G=GT-GM={gi|i∈[1..WHLB]}。向量G的原点距或者而易见地有gi=ti-mi。
此外,需要指出的是,对于部分图元标识单元,比如,竖直线VertLine和水平线HorzLine可以对上述步骤S242至步骤S244进行简化:对于竖直线VertLine,仅需要统计缩放后的图像分别在横向上的投影分布的有色像素数,此时有向量GT=GTx;而对于水平线HorzLine,仅需要统计缩放后的图像分别在纵向上的投影分布的有色像素数,此时有GM=GMy。
此外,对于矩形Rectangle的图元标识单元无需步骤S24进行识别,矩形Rectangle的图元标识单元的识别由步骤S22实现。
此外,需要说明的是,上述循环遍历过程中,所有图像分割块识别结束后,根据当前递归层次下识别到的若干个图元标识单元以及图元标识单元之间的位置信息组成图元标识。因此需要在步骤S24中判断当前的图像分割块是否为最后一个图像分割块。或者也可以将步骤“所有图像分割块识别结束后,根据当前递归层次下识别到的若干个图元标识单元以及图元标识单元之间的位置信息组成图元标识”提至循环遍历过程之后进行。本实施例优选后者实施方式。
在上述前提之下,也就是,步骤“所有图像分割块识别结束后,根据当前递归层次下识别到的若干个图元标识单元以及图元标识单元之间的位置信息组成图元标识”提至循环遍历过程之后,步骤S25之前进行。步骤S22、S23和S24的循环结束后,将得到每个图像分割块的图元标识单元识别信息(Type,Postion,SubTree),其中,Type表示为图元标识单元类型;Postion表示为图像分割块的位置信息,可以表示为:(XB,YB,WB,HB),其中,XB,YB,WB,HB分别为图像分割块的横坐标、纵坐标以及宽度和高度,SubTree表示为控件布局树。多个图像分割块的图元标识单元识别信息(Type,Postion,SubTree)组成图元标识单元识别信息表{(Type,Postion,SubTree)i|i∈[1..K]};其中K为图像分割块的数目。显而易见地,这里的控件布局树SubTree为子树,而且,只有当图元标识单元类型Type为矩形Rectangle时,才有可能带有控件布局树,其他类型的图元标识单元不可能带有控件布局树。
根据得到的图元标识单元识别信息表{(Type,Postion,SubTree)i|i∈[1..K]}识别图元标识进而执行步骤S25构建出控件布局树。图7显示了根据图2所示的界面草图所生成的控件布局树。比如,对于图2的矩形框F12内的图像分割块进行遍历时,三个叉F121对应的图像分割块识别后形成的图元标识单元识别信息表为{(Cross,Postion,0)i|i∈[1..3]};其中0标识为控件布局树为空,然后根据对{(Cross,Postion,0)i|i∈[1..3]}内三个叉Cross的位置匹配比较得到当前的图元标识类型为TextBox。图元标识类型也就是控件类型,于是在相应的步骤S25中构建出图7所示的单个节点构成的控件布局树TF12。返回上一次层次后,在对矩形框F1内的图像进行循环遍历后,矩形框F12对应的图像分割块所对应的图元标识单元识别信息为(Rectange,Postion,TF1);在对矩形框F1内的图像执行步骤S25后,该Rectange内的控件布局树TF12作为子树加入至图7所示的控件布局树TF1内。再比如对于矩形框F16内的图像分割块进行循环遍历后,得到图元标识单元识别信息表为{(Rectange,Postion,TF16),(Arrow,Postion,0)},其中,控件布局树TF161包含带有单个节点子树:TF161,TF1612和TF1613。TF1611,TF161和TF1613分别对应三个矩形框F1611、F1612和F1613。根据对图元标识单元识别信息表{(Rectange,Postion,TF1),(Arrow,Postion,0)}中矩形框F161和箭头F162的位置匹配比较后,当前的图元标识类型为List,于是在相应的步骤S25中构建出图7所示的控件布局树TF16,控件布局树TF16包含有子树TF16。由此在对在对矩形框F1内的图像进行循环遍历后,矩形框F16对应的图像分割块所对应的图元标识单元识别信息为(Rectange,Postion,TF16),于是,在对在对矩形框F1内的图像进行循环遍历后所生成的图元标识单元识别信息表为:(Rectange,Postion,TF11),(Rectange,Postion,TF12),(Rectange,Postion,TF1),(Rectange,Postion,TF14),(Rectange,Postion,TF1),(Rectange,Postion,TF16),(Rectange,Postion,TF17),由于该图元标识单元识别信息表无法识别出相应的图元标识,直接执行步骤S25,构建出图7所示的控件布局树TF1,控件布局树TF11、TF12、TF13、TF14、TF15、TF16、TF17则作为控件布局树TF1的子树。之后回到上一次层次步骤S2中执行时,步骤S22至步骤S4循环遍历结束后,得到图元标识单元识别信息表仅包含矩形框F1对应的图形分割块所生成的图元标识单元识别信息,该图元标识单元识别信息为(Rectange,Postion,TF1),之后通过步骤S25的执行,控件布局树TF1加入根节点后,得到最终的控件布局树TRoot。控件布局树的每个节点可以表示为(ControlType,Postion,SubNodes)。ControlType表示为控件类型;Postion表示为控件所处的位置;SubNodes表示为控件布局树的子节点。需要指出的是,控件类型除了前述的EditBox,Button,ImageBox,TextBox,RadioBox,CheckBox,SwitchButton,ToolBar和List之外,本实施例中,还包括Block类型。Block表示为由矩形框圈定的块体。图7中,控件布局树TRoot的根节点、控件布局树TF1的根节点以及控件布局树TF16的根节点的控件类型均为Block。此外,List控件类型表示若干个相同类型的矩形Rectangle圈定的范围组成的列表,由此可以将List类型视为Block类型的一种。在此基础上,仅有Block类型的节点才有可能包含有控件布局树的子节点和控件布局树的子树。其他类型的控件均只能作为控件布局树的叶子节点。
此外,需要指出的是,上述实施方式中,“所有图像分割块识别结束后,根据当前递归层次下识别到的若干个图元标识单元以及图元标识单元之间的位置信息组成图元标识”建立在图元标识可能有多个图元标识单元组成的情况下,本领域技术人员理解,若每种图元标识均只有一个图元标识单元,那么该图元标识单元也就是图元标识,比如图8所显示的表格中,每种控件类型对应一种图元标识,每种图元标识仅有一个图元标识单元组成。此种情形下,步骤S24可以直接完成对图元标识的识别。
第二个步骤,匹配计算布局树相似度值并根据布局树相似度值选取应用,也就是,将所生成的控件布局树与应用库中各应用对应的控件布局树分别做相似度比较,计算相应的布局树相似度值,然后选取布局树相似度值超过预先设定阈值的应用,也就是前述步骤S3和S4。
本实施例涉及的安卓应用下载服务系统所针对应用均为基于安卓系统的应用。对于基于安卓系统的应用,提取相应的APK文件并分析其资源文件夹res/layout下的可用xml文件,即可提取该应用对应的控件布局树。本实施例中,为提高性能,当安卓应用被上传至安卓应用下载服务系统时,安卓应用下载服务系统即提取相应的控件布局树,并存入应用库中。因此在本步骤进行分析进行匹配计算布局树相似度值时,可直接从应用库中提取应用所对应的控件布局树。
本步骤是一个循环遍历步骤,也就是,遍历应用库中各个应用,对其中每个应用所对应的控件布局树分别与所生成的控件布局树做相似度比较并计算相应的布局树相似度值。应用所对应的控件布局树与所生成的控件布局树做相似度比较并计算相应的布局树相似度值包括如下步骤:
S31:将所生成的控件布局树和应用对应的控件布局树进行匹配,找出最佳匹配子树,并计算该最佳匹配子树的树重值Wm,i;
S32:计算所生成的控件布局树的树重值Wt和应用对应的控件布局树的树重值Wi;
S33:计算所牛成的控件布局树与应用对应的控件布局树的布局树相似度值:
其中,Si表示为第i个应用对应的控件布局树与所生成的控件布局树的布局树相似度值;Wi表示为第i个应用对应的控件布局树的树重值;Wm,i表示为第i个应用对应的控件布局树与所生成的控件布局树之间最佳匹配子树的树重值。
步骤S31中,找出最佳匹配子树的方法有很多种,第一种实施方式是将控件布局树按父子结构转换成布局树字符串的表示方式,然后将找出两个布局树字符串之间最长的字符串匹配片段,然后将该最长的字符串匹配片段逆向转换成控件布局树作为最佳匹配子树。以图7示例的控件布局树为例,该控件布局树转换成布局树字符串为:“Block{Block{Button,TextBox,TextBox,TextBox,TextBox, List{Block{ImageBox, TextBox,TextBox}}, Button}}”
也就是以每个控件类型作为该节点转化成字符串的基础,父子节点关系通过“{}”表示,兄弟节点之间通过“,”分割,转换成布局树字符串。本领域技术人员理解,上述布局树字符串仅仅是控件布局树的字符串形式的表示方式,因此,将控件布局树转换成上述布局树字符串或者将布局树字符串逆向转换成控件布局树并不困难,本说明书不再赘述。
上述实施方式对本领域技术人员来说实现非常简单,但该实施方式存在着一个问题,比如布局树字符串中,“Button,TextBox”和“TextBox,Button”完全不同,但本领域技术人员理解,在实际应用中,这两种控件之间的关系结构差异性可能并不是很大。另外,根部的差异性与叶子节点的差异性显而易见地会有较大差异。为此,本实施例优先采用如下方式:
步骤S311,对两个控件布局树分别进行根部压缩,若根节点对应的控件类型为Block,且根节点的子节点为仅有一个并且该子节点对应的控件类型为Block或List,则将该子节点作为根节点,重复上述压缩直到不满足上述条件为止。两个控件布局树分别为:所生成的控件布局树和应用对应的控件布局树。比如,以布局树字符串表示的控件布局树:“Block{Block{List{Button,TextBox,...}}}”进行根部压缩后的控件布局树“List{Button,TextBox,...}”;再比如,以布局树字符串表示的控件布局树为:“Block{List{Block{Button, TextBox,...}}}”,进行根部压缩后的控件布局树“List{Block{Button,TextBox,...}}”。
步骤S312,以根节点为基础对两个控件布局树进行逐层比较,提取同一层中共有的控件加入最佳匹配子树,若某节点的类型相同,并且具有子节点,则以该节点为根节点进行递归重复步骤S312。
以图7示例为例,所生成的空间布局树进行根部压缩后的控件布局树为:
“Block{Button,TextBox,TextBox,TextBox,TextBox,List{Block{ImageBox,TextBox,TextBox}},Button}”;
而某应用所对应的控件布局树为:
“Block{Button,TextBox,TextBox,Button,List{Block{ImageBox,TextBox,Button}}}”;
根据上述步骤S311和步骤S312得到的最佳匹配子树为:
“Block{Button,TextBox,TextBox,List{Block{ImageBox,TextBox}},Button}”,或者:
“Block{Button,TextBox,TextBox,Button,List{Block{ImageBox,TextBox}}}”。
步骤S31中的最佳匹配子树的树重值Wm,i和步骤S32中的所生成的控件布局树的树重值Wt以及步骤S32中的应用对应的控件布局树的树重值Wi计算方法相同。也就是输入控件布局树后得到控件布局树的树重值。控件布局树的树重值计算方法很多:第一种最为简单的,可以统计控件布局树的节点数作为树重值;第二种方法,根据控件类型进行加权求和,比如,控件类型Block的节点加权系数为10,控件类型List的节点加权系数为20,控件类型Button的节点加权系数为3,控件类型TextBox的节点加权系数为5,控件类,ImageBox的节点加权系数为2,…等。本实施例中,控件布局树的树重值的计算优先采用如下公式进行计算:
其中,N为控件布局树的节点数;Cj为第j个节点的子孙节点数;Hj为第j个节点与根节点的距离;Vj为第j个节点根据其控件类型所确定的加权系数。需要指出的是,本实施例中,上述控件布局树的树重值计算时,输入的控件布局树为根部压缩的控件布局树。以前述进行根部压缩后的控件布局树“Block{Button,TextBox,TextBox,TextBox,TextBox,List{Block{ImageBox,TextBox,TextBox}},Button}”为例,架设控件类型Block的节点加权系数为10,控件类型List的节点加权系数为20,控件类型Button的节点加权系数为3,控件类型TextBox的节点加权系数为5,控件类,ImageBox的节点加权系数为2,则计算得到的图7示例控件布局树的树重值为:92.64。同理,某应用所对应的控件布局树为“Block{Button,TextBox,TextBox,Button,List{Block{ImageBox,TextBox,Button}}}”计算得到的树重值为:72.72,最佳匹配子树“Block{Button,TextBox,TextBox,List{Block{ImageBox,TextBox}},Button}”的树重值为71.97。由此,最终计算得到所生成的控件布局树与该应用对应的控件布局树的布局树相似度值为:0.77。本实施例,步骤S4中“选取布局树相似度值超过预先设定阈值的应用”的阈值预先设定为0.70。因此,该应用所对应的控件布局树为“Block{Button,TextBox,TextBox,Button,List{Block{ImageBox,TextBox}}}”与图7示例中的控件布局树相似。此外,本实施例中还将具有相似控件布局树的应用根据布局树相似度值进行排序后再返回至客户端。该排序过程即为前述步骤S5。
显而易见地,前述最佳匹配子树可能还存在其他的确定方法,控件布局树的树重值的计算也存在可能的方法,不同的最佳匹配子树确定方法和控件布局树的树重值计算方法与步骤S4中的阈值存在一定的关联性,因此不同的最佳匹配子树确定方法和控件布局树的树重值计算方法影响步骤S4中的阈值的设定。
Claims (10)
1.基于界面草图的应用检索方法,其特征在于,该方法包括如下步骤:
S1:对输入的图像进行预处理;所述预处理包括依次进行的灰度化处理步骤、二值化处理步骤、去噪声处理步骤、以及线体单像素细化步骤;
S2:对图像进行递归分析处理,生成控件布局树;
S3:将所生成的控件布局树与应用库中各应用对应的控件布局树分别做相似度比较,计算相应的布局树相似度值;
S4:选取布局树相似度值超过预先设定阈值的应用;
所述步骤S2包括:
S21:对图像进行连续性分割,得到图像分割块和所述图像分割块的位置信息;
S22:识别所述图像分割块的边缘矩形框;
S23:若所述图像分割块能够识别到边缘矩形框,则将所述图像分割块清除所述边缘矩形框后得到的图像作为步骤S2的输入转步骤S2进行递归;
S24:若所述图像分割块未能识别到边缘矩形框,则识别所述图像分割块内的图元标识;所述图元标识是用于区分控件种类的标识图像;每一种控件种类对应特定的图元标识;
S25:根据识别到的图元标识和所述图像分割块所对应的边缘矩形框确定控件种类,结合所述图像分割块的位置信息,组成控件布局树节点,进而构建相应的控件布局树;
所述步骤S3包括:
S31:将所生成的控件布局树和应用对应的控件布局树进行匹配,找出最佳匹配子树,并计算该最佳匹配子树的树重值Wm,i;
S32:计算所生成的控件布局树的树重值Wt和应用对应的控件布局树的树重值Wi;
S33:计算所生成的控件布局树与应用对应的控件布局树的布局树相似度值:
其中,Si表示为第i个应用对应的控件布局树与所生成的控件布局树的布局树相似度值;Wi表示为第i个应用对应的控件布局树的树重值;Wm,i表示为第i个应用对应的控件布局树与所生成的控件布局树之间最佳匹配子树的树重值。
2.如权利要求1所述的基于界面草图的应用检索方法,其特征在于,该方法还包括步骤:
S5:根据布局树相似度值大小对步骤S4获得的应用进行排序。
4.如权利要求1所述的基于界面草图的应用检索方法,其特征在于,所述步骤S24中,若所述图像分割块未能识别到边缘矩形框,则识别所述图像分割块内的图元标识单元;所有图像分割块识别结束后,根据当前递归层次下识别到的若干个所述图元标识单元以及所述图元标识单元之间的位置信息组成图元标识;
所述识别所述图像分割块内的图元标识单元包括如下步骤:
S241:将所述图像分割块的图像缩放至所述图元标识单元对应模板图像的尺寸大小;
S242:统计缩放后的图像分别在横向和纵向上的投影分布的有色像素数;
S243:统计缩放后的图像分别与中心点的按距离分布的有色像素数和与中心点的按角度分布的有色像素数;
S244:根据所述在横向和纵向上的投影分布的有色像素数以及所述与中心点的按距离分布的有色像素数和所述与中心点的按角度分布的有色像素数作为特征向量与所述图元标识单元对应模板图像进行相似度比较,判断所述图像分割块的图像是否为相应的图元标识单元。
5.如权利要求4所述的基于界面草图的应用检索方法,其特征在于,所述步骤S242为:统计缩放后的图像在横向上的投影的有色像素数GTx={tx1,tx2,…,txW}和在纵向上的投影的有色像素数GTy={ty1,ty2,…,tyH};其中,W为所述图元标识单元对应模板图像横向上的尺寸,H为所述图元标识单元对应模板图像纵向上的尺寸,txi|i∈(1..W)为所述缩放后的图像在横向上第i位置纵向上的有色像素数;tyj|j∈(1..H)为所述缩放后的图像在纵向上第j位置横向上的有色像素数;所述有色像素为区别于背景色的像素点;
所述步骤S243为:统计缩放后的图像与中心点的距离分布的有色像素数GTl={tl1,tl2,…,tlL}和与中心点的等角分布的有色像素数GTb={tb1,tb2,…,tbB};其中,L为与中心点的距离数,B为与中心点的等角数,tlk|k∈(1..L)为所述缩放后的图像与中心点距离落在区间[rk,rk+1)的有色像素数;tbc|c∈(1..B)为所述缩放后的图像与中心点的角度落在区间[ac,ac+1)的有色像素数;r1,r2,…,rL+1为与中心点的距离分割点;a1,a2,…,aB+1为中心点的角度分割点;
所述步骤S244为:将GTx、GTy、GTl和GTb组成向量GT,并通过余弦相似度公式计算向量GT与所述图元标识单元对应模板图像对应的向量GM之间的相似度,然后根据得到的相似度判断所述图像分割块的图像是否为相应的图元标识单元。
6.基于界面草图的应用检索装置,其特征在于,该装置包括如下模块:
M1,用于:对输入的图像进行预处理;所述预处理包括依次进行的灰度化处理步骤、二值化处理步骤、去噪声处理步骤、以及线体单像素细化步骤;
M2,用于:对图像进行递归分析处理,生成控件布局树;
M3,用于:将所生成的控件布局树与应用库中各应用对应的控件布局树分别做相似度比较,计算相应的布局树相似度值;
M4,用于:选取布局树相似度值超过预先设定阈值的应用;
所述模块M2包括:
M21:对图像进行连续性分割,得到图像分割块和所述图像分割块的位置信息;
M22:识别所述图像分割块的边缘矩形框;
M23:若所述图像分割块能够识别到边缘矩形框,则将所述图像分割块清除所述边缘矩形框后得到的图像作为模块M2的输入转模块M2进行递归;
M24:若所述图像分割块未能识别到边缘矩形框,则识别所述图像分割块内的图元标识;所述图元标识是用于区分控件种类的标识图像;每一种控件种类对应特定的图元标识;
M25:根据识别到的图元标识和所述图像分割块所对应的边缘矩形框确定控件种类,结合所述图像分割块的位置信息,组成控件布局树节点,进而构建相应的控件布局树;
所述步骤M3包括:
M31,用于:将所生成的控件布局树和应用对应的控件布局树进行匹配,找出最佳匹配子树,并计算该最佳匹配子树的树重值Wm,i;
M32,用于:计算所生成的控件布局树的树重值Wt和应用对应的控件布局树的树重值Wi;
M33,用于:计算所生成的控件布局树与应用对应的控件布局树的布局树相似度值:
其中,Si表示为第i个应用对应的控件布局树与所生成的控件布局树的布局树相似度值;Wi表示为第i个应用对应的控件布局树的树重值;Wm,i表示为第i个应用对应的控件布局树与所生成的控件布局树之间最佳匹配子树的树重值。
7.如权利要求6所述的基于界面草图的应用检索装置,其特征在于,该装置还包括模块:
M5:根据布局树相似度值大小对模块M4获得的应用进行排序。
9.如权利要求6所述的基于界面草图的应用检索装置,其特征在于,所述模块M24中,若所述图像分割块未能识别到边缘矩形框,则识别所述图像分割块内的图元标识单元;所有图像分割块识别结束后,根据当前递归层次下识别到的若干个所述图元标识单元以及所述图元标识单元之间的位置信息组成图元标识;
所述识别所述图像分割块内的图元标识单元包括如下模块:
M241,用于:将所述图像分割块的图像缩放至所述图元标识单元对应模板图像的尺寸大小;
M242,用于:统计缩放后的图像分别在横向和纵向上的投影分布的有色像素数;
M243,用于:统计缩放后的图像分别与中心点的按距离分布的有色像素数和与中心点的按角度分布的有色像素数;
M244,用于:根据所述在横向和纵向上的投影分布的有色像素数以及所述与中心点的按距离分布的有色像素数和所述与中心点的按角度分布的有色像素数作为特征向量与所述图元标识单元对应模板图像进行相似度比较,判断所述图像分割块的图像是否为相应的图元标识单元。
10.如权利要求9所述的基于界面草图的应用检索装置,其特征在于,所述模块M242为:统计缩放后的图像在横向上的投影的有色像素数GTx={tx1,tx2,…,txW}和在纵向上的投影的有色像素数GTy={ty1,ty2,…,tyH};其中,W为所述图元标识单元对应模板图像横向上的尺寸,H为所述图元标识单元对应模板图像纵向上的尺寸,txi|i∈(1..W)为所述缩放后的图像在横向上第i位置纵向上的有色像素数;tyj|j∈(1..H)为所述缩放后的图像在纵向上第j位置横向上的有色像素数;所述有色像素为区别于背景色的像素点;
所述模块M243为:统计缩放后的图像与中心点的距离分布的有色像素数GTl={tl1,tl2,…,tlL}和与中心点的等角分布的有色像素数GTb={tb1,tb2,…,tbB};其中,L为与中心点的距离数,B为与中心点的等角数,tlk|k∈(1..L)为所述缩放后的图像与中心点距离落在区间[rk,rk+1)的有色像素数;tbc|c∈(1..B)为所述缩放后的图像与中心点的角度落在区间[ac,ac+1)的有色像素数;r1,r2,…,rL+1为与中心点的距离分割点;a1,a2,…,aB+1为中心点的角度分割点;
所述模块M244为:将GTx、GTy、GTl和GTb组成向量GT,并通过余弦相似度公式计算向量GT与所述图元标识单元对应模板图像对应的向量GM之间的相似度,然后根据得到的相似度判断所述图像分割块的图像是否为相应的图元标识单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010050903.6A CN111273905B (zh) | 2020-01-17 | 2020-01-17 | 基于界面草图的应用检索方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010050903.6A CN111273905B (zh) | 2020-01-17 | 2020-01-17 | 基于界面草图的应用检索方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111273905A CN111273905A (zh) | 2020-06-12 |
CN111273905B true CN111273905B (zh) | 2023-04-18 |
Family
ID=71002031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010050903.6A Active CN111273905B (zh) | 2020-01-17 | 2020-01-17 | 基于界面草图的应用检索方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111273905B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733735B (zh) * | 2021-01-13 | 2024-04-09 | 国网上海市电力公司 | 一种采用机器学习进行图纸布局分类识别的方法 |
CN113010741B (zh) * | 2021-03-30 | 2023-09-05 | 南京大学 | 基于草图的移动应用模型查询方法 |
CN113204296B (zh) * | 2021-04-23 | 2023-04-18 | 万翼科技有限公司 | 图元高亮显示方法、装置、设备及存储介质 |
CN117573118A (zh) * | 2023-11-16 | 2024-02-20 | 南京数睿数据科技有限公司 | 基于草图识别的应用页面生成方法、装置和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107169323A (zh) * | 2017-05-11 | 2017-09-15 | 南京大学 | 一种基于布局簇图的安卓应用重打包检测方法 |
CN107315680A (zh) * | 2017-05-26 | 2017-11-03 | 北京航空航天大学 | Hybrid移动应用用户界面的检测方法及系统 |
CN109190370A (zh) * | 2018-07-02 | 2019-01-11 | 南京大学 | 一种基于控件区域分布特征的安卓界面相似度计算方法 |
CN109815699A (zh) * | 2018-12-24 | 2019-05-28 | 南京大学 | 一种基于界面图标特征的安卓软件重打包检测方法 |
CN109815150A (zh) * | 2019-01-29 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 应用测试方法、装置、电子设备及存储介质 |
CN109918291A (zh) * | 2019-01-17 | 2019-06-21 | 深圳壹账通智能科技有限公司 | 软件界面检测方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8732831B2 (en) * | 2011-07-14 | 2014-05-20 | AVG Netherlands B.V. | Detection of rogue software applications |
-
2020
- 2020-01-17 CN CN202010050903.6A patent/CN111273905B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107169323A (zh) * | 2017-05-11 | 2017-09-15 | 南京大学 | 一种基于布局簇图的安卓应用重打包检测方法 |
CN107315680A (zh) * | 2017-05-26 | 2017-11-03 | 北京航空航天大学 | Hybrid移动应用用户界面的检测方法及系统 |
CN109190370A (zh) * | 2018-07-02 | 2019-01-11 | 南京大学 | 一种基于控件区域分布特征的安卓界面相似度计算方法 |
CN109815699A (zh) * | 2018-12-24 | 2019-05-28 | 南京大学 | 一种基于界面图标特征的安卓软件重打包检测方法 |
CN109918291A (zh) * | 2019-01-17 | 2019-06-21 | 深圳壹账通智能科技有限公司 | 软件界面检测方法、装置、计算机设备及存储介质 |
CN109815150A (zh) * | 2019-01-29 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 应用测试方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111273905A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111273905B (zh) | 基于界面草图的应用检索方法和装置 | |
Ravì et al. | Semantic segmentation of images exploiting DCT based features and random forest | |
CN110766697B (zh) | 一种界面草图的图形界面控件图像识别的方法和装置 | |
Carlinet et al. | MToS: A tree of shapes for multivariate images | |
CN110866896B (zh) | 基于k-means与水平集超像素分割的图像显著性目标检测方法 | |
Gong et al. | Advanced image and video processing using MATLAB | |
CN109086777B (zh) | 一种基于全局像素特征的显著图精细化方法 | |
CN111027559A (zh) | 一种基于扩张点卷积空间金字塔池化的点云语义分割方法 | |
CN110909724B (zh) | 一种多目标图像的缩略图生成方法 | |
CN109299303B (zh) | 基于可变形卷积与深度网络的手绘草图检索方法 | |
CN113609896A (zh) | 基于对偶相关注意力的对象级遥感变化检测方法及系统 | |
Chang et al. | Pedestrian detection in aerial images using vanishing point transformation and deep learning | |
CN110853039B (zh) | 一种多数据融合的草图图像分割方法、系统、装置及存储介质 | |
CN110517270B (zh) | 一种基于超像素深度网络的室内场景语义分割方法 | |
CN113343950A (zh) | 一种基于多特征融合的视频行为识别方法 | |
CN112348056A (zh) | 点云数据分类方法、装置、设备及可读存储介质 | |
CN115393635A (zh) | 一种基于超像素分割以及数据增强的红外小目标检测方法 | |
CN111709317A (zh) | 一种基于显著性模型下多尺度特征的行人重识别方法 | |
CN109190637A (zh) | 一种图像特征提取方法 | |
JP6194260B2 (ja) | 画像分類装置、画像分類方法及び画像分類プログラム | |
CN116386048A (zh) | 一种印章去除方法、装置、设备及存储介质 | |
CN108460406B (zh) | 基于最小单纯形融合特征学习的场景图像属性识别方法 | |
Hong et al. | Advances in Multimedia Information Processing–PCM 2018: 19th Pacific-Rim Conference on Multimedia, Hefei, China, September 21-22, 2018, Proceedings, Part III | |
Hanbury | How do superpixels affect image segmentation? | |
Vantaram et al. | Multiresolution adaptive and progressive gradient-based color-image segmentation |
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 |