CN113010741B - 基于草图的移动应用模型查询方法 - Google Patents
基于草图的移动应用模型查询方法 Download PDFInfo
- Publication number
- CN113010741B CN113010741B CN202110339294.0A CN202110339294A CN113010741B CN 113010741 B CN113010741 B CN 113010741B CN 202110339294 A CN202110339294 A CN 202110339294A CN 113010741 B CN113010741 B CN 113010741B
- Authority
- CN
- China
- Prior art keywords
- sketch
- similarity
- jump
- mobile application
- apprepo
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000003068 static effect Effects 0.000 claims abstract description 36
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 239000013598 vector Substances 0.000 claims description 31
- 238000013507 mapping Methods 0.000 claims description 19
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000005259 measurement Methods 0.000 claims description 6
- 238000004043 dyeing Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 2
- 238000011161 development Methods 0.000 claims description 2
- 230000000593 degrading effect Effects 0.000 claims 1
- 238000012804 iterative process Methods 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000004927 fusion Effects 0.000 abstract description 2
- 238000012549 training Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 238000011160 research Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 241001273233 Ceratitis simi Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 238000004454 trace mineral analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/83—Querying
-
- 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/903—Querying
-
- 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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于软件工程领域与计算机视觉领域,具体为一种基于草图的移动应用模型查询方法,预定义的草图模型语言为一组基于IFML设计的移动应用布局控件符号语言,且已经建立了一个按照IFML模型规则设计的多维数据融合软件资产库(AppRepo);具体步骤为:用户在纸上根据预定义语言绘制的多UI跳转草图作为本发明的输入,经过预设的识别技术获得草图内静态UI与动态跳转信息;其次通过静态草图UI与库中UI的基本相似性计算结合T步相似性更新定位锚点后,将草图模型与库中模型进行相似度排名;最后模型相似度排名靠前的移动应用结果即为本方法的输出;本方法能有效地将一张多UI跳转草图匹配到一个移动应用的全部或局部。
Description
技术领域
本发明属于软件工程领域与计算机视觉领域。本发明涉及移动应用UI动静态领域内信息与图像的特征提取技术,具体设计一种基于草图的移动应用模型查询方法。
背景技术
软件复用与测试脚本生成已经成为工业界非常重视的问题,这些工作可以促使效率的提升与人力资源成本的减少,因此这些领域也引起了研究人员的兴趣。这些问题能够让研究者对移动应用有更广、更深的理解,同时对应用中的功能进行分析后方便进一步探索功能的可用性,以此为软件测试等领域提供更多可能性,开拓更多研究方向。
在我们已有的移动应用软件资产库的基础上,如何能快速定位目的应用与应用内局部UI间的信息是实现软件复用与测试脚本生成等研究的核心,这也即是一种查询研究。在传统的查询研究领域,往往通过一些如关键词等描述性语义文本信息进行匹配,这种方式类似于搜索引擎原理的实现。然而,文本信息对于UI中各种控件位置、布局以及UI间动态跳转信息难以准确描述,即使能够描述,也难以对这些复杂的语义信息进行匹配研究。此外,对于不了解的应用或方向无法用语言描述,因此仅通过关键字等语义查询方式限制了查询的数据范围。
在这样的背景下,利用草图查询走进研究者的视野,因为草图的便捷性不仅能够利用图画多种多样的表达方式来描述复杂UI信息,还能够给查询者节约时间,他们无需太多先验领域知识即可利用草图形式绘制出查询的目标。一些研究者提出利用电子版或手写板等设备进行草图绘制并查询,这些方式都需要指定的软件平台与设备作为基础支撑,查询者若需查询则还需进行较多提前准备,也即是较为重量级,在快捷、简单、方便的轻量级场景下查询需求难以被满足。此外,大多工作针对某个UI在库中的查询,多个UI之间的关系无法同时获得,因此依然没有动态跳转信息的UI模型查询研究。
若能够利用纸上绘制的多UI间动态跳转草图拍照后识别,利用这些信息在库中做相应的查询,则无需过多提前准备且无需特殊设备的“轻量级”场景下的模型查询便可以做到。在发明之前我们已经获得一种“轻量级”草图描述方式并对草图的内容识别存储,因此如何能利用我们已有的草图识别结果将每个草图UI定位到库中并将UI间关系同时映射到库中是模型查询研究的关键。基于此,本发明提出的查询方法能够将草图UI进行较准确定位并提供模型间跳转关系的映射,同时对草图模型与库中的映射模型进行模型间对比以找到较符合用户需求的移动应用全局或局部信息。
发明内容
本发明的目的在于针对软件复用与测试脚本生成方面对于移动应用快速查询的需求,提出了一种基于草图的移动应用模型查询方法,通过一系列算法将用户绘制的多UI跳转草图转换为查询语言并提供大量移动应用数据资产库中的查询服务,旨在解决现有工作中移动应用UI查询方式偏语义级理解、对用户查询场景有要求以及传统查询方式较为耗时等问题。
为了实现上述目的,本发明所采用的的技术方案是:一种基于草图的移动应用模型查询方法,包含如下步骤:
1)本方法执行前预设一种草图建模语言的规范,给出了一组常见移动应用开发控件的草图画法,且已经提供了针对草图多种信息的识别方法。同时还提供了一个基于IFML规范设计的移动应用资产库AppRepo。用户根据所提供的草图建模语言绘制的手绘多UI跳转草图通过预设的识别方法生成草图的静态与动态信息,作为方法的输入。
2)基于上述输入的草图动静态信息,本方法先通过计算草图图像中的每个UI与AppRepo中UI的基本相似度来确定每个UI的基本定位信息。
3)获得基本相似度后对每个草图UI进行T步的相似度更新,即输入中的草图动态信息表达了草图UI之间的跳转详情,则这些跳转T步影响着当前的相似度。该模块的计算可以将草图UI定位到AppRepo中每个应用的某个UI上。
4)每个草图UI完成定位后,则计算草图跳转模型与库中移动应用模型之间的相似度,即两个模型之间根据草图UI的锚点确定映射后以一定的系数进行计算,计算的结果可以获得AppRepo中每个应用的相似度分数并给出排名,排名靠前的应用结果即为方法的输出。
步骤1)所涉及的草图建模语言是本方法执行前为移动应用UI建模的一种语言,为本方法的输入基础。它基于国际建模标准IFML来定义了7种静态控件与5种动态控件的草图语言规范,即画法标准,具体而言,草图建模语言支持以下几种常见控件:
A.Button(按钮)用于表达文字或小图标,触摸按钮会引发一个事件。
B.EditText(编辑框)用于接收用户输入的文本。
C.TextView(文本展示)用于展示文本。
D.ImageView(图片展示)用于展示图片。
E.Switch(开关)用于用户在两个状态间改变设置的属性(开/关)。
F.RadioButton(单选按钮)用于用户在一组选项中选择唯一的一个。
G.CheckBox(复选按钮)用于用户勾选某一设置属性以表示选中或不选中。
H.LeftArrow(左箭头)用于表示两个UI之间从左到右的跳转。
I.RightArrow(右箭头)用于表示两个UI之间从右到左的跳转。
J.UpArrow(上箭头)用于表示两个UI之间从上到下的跳转。
K.DownftArrow(下箭头)用于表示两个UI之间从下到上的跳转。
L.TriggerButton(触发按钮)用于表示触发了某次跳转的按钮控件。
用户根据以上约束在纸上绘制具有多UI跳转的草图。该草图描述了其期待的移动全部或局部功能,且其中涉及到的控件必须是草图建模语言支持的控件之一。绘制好的草图通过预先设计的识别工具识别后得到草图的动静态信息,其中静态信息包括草图内每个UI的大小范围、每个UI包含控件类型与位置大小的xml文件与每个UI的图像;动态信息为草图内不同UI之间的跳转详情,即某个UI通过某个位置的控件触发跳转到某个UI,以上动静态信息便是整个方法的输入,传递给步骤2)。此外,该步骤还提供了一个基于国际建模标准IFML设计原则的多维数据融合移动应用软件资产库,其保存了300个安卓移动应用的详细信息,包括每个应用内具体UI的xml文件、UI的截图图像与UI之间跳转的详情信息。
步骤2)中,我们计算上一步骤中识别出的每个草图UI与AppRepo中每个应用中UI的相似度,基本相似度计算包含以下子步骤:
A.草图颜色图转换。这一步骤根据用户绘制草图识别的静态信息结果作为参考,因静态信息提供了草图内每个UI的大小与范围,且获得了对应xml文件,根据这个文件能够得出UI内每个控件的类型、位置与大小。为了能将草图UI与AppRepo中UI进行图像层面格式的统一以方便特征向量的生成,本发明提出一个统一格式的颜色图:在原草图UI上根据识别控件的类型进行染色,一种类型对应一种RGB颜色,而控件的矩形范围是xml文件内已经存储的控件最小外接矩形左上角与右下角的横纵坐标。该颜色图能够将草图UI与AppRepoUI内核心控件信息以最直接、最易于计算机理解的方式存储。
B.软件资产库中应用UI的颜色图转换。本发明在该步骤提出一个UI静态内容解析算法,旨在将软件资产库中应用的UI与草图UI以同一种标准进行存储。在AppRepo中可以获得每个移动应用内UI的截图与xml文件的静态信息,其中xml文件以标准树结构将UI每个控件以何种嵌套结构形式进行表述,该树结构表达了控件在UI内的相对位置。这个步骤通过递归遍历每个静态xml文件来生成颜色图,其中每次递归都要判断节点类型,因有些节点可能为不可视的容器元素,这些元素用于规定可视控件的相对位置与页面布局,因此并不具备图像信息,此处忽略。当递归遍历到可视控件时,因每个节点的class类名蕴含着安卓官方的控件信息,因此可通过判断class信息确定控件类型进行对应的染色,以生成标准格式的库中UI颜色图。
C.基于VAE网络的UI图像特征向量生成。有上面步骤的两种颜色图基础后,需要进行同样格式图像的特征向量抽取。VAE网络全称为变分自编码(Variational Auto-encoder),这是一种自监督的神经网络,属于深度学习的范畴,其主要包括编码器与解码器两个模块:
a.编码器模块需要将处理后的颜色图编码成一个N维向量,将图像的核心信息进行降维表达。VAE增加了变分(Variational),即在进行编码时不再对输入图像进行随机采样(传统AE网络做法),而是通过一些限制使得编码器可以使用高斯分布来进行规律性采样,这样生成的隐含向量也遵循着高斯分布。编码器并不是通过对整个输入进行高斯分布采样,而是针对网络的每个节点的高斯分布进行处理,将每个节点的采样值经过处理后生成图像的编码。经过该模块后,VAE会产生两个向量,一个是均值向量,另一个是标准差向量。而这两个向量结合起来会被处理为一个隐藏层的向量作为解码器的输入。
b.解码器模块需要将编码器输出并处理后的向量进行与输入大小一致的图像还原过程,而在这部分采用伯努利分布对数据进行采样。由于VAE网络在中间层多引入了高斯噪声,解码器仍然需要将图像还原,也就说明即使存在高斯噪声,解码器也需要尽可能让输出与输入相似,这也就证明了解码器对噪声的鲁棒性。在引入高斯噪声之前,解码器对输入与输出的映射是离散的,加入高斯噪声之后,便可以看作将离散映射变为连续映射。
经过配置两个模块后,我们需要进行训练数据的构造与模型的训练。对于训练数据的构造,VAE网络只能够对与模型训练集有着相似结构的图像进行正确的编解码,因此进行这一步需要构造出针对颜色图的训练集。本文利用上一步骤算法生成大约10000张颜色图作为训练集进行VAE自监督训练。这些数据集的图像在训练时都会进行统一的清洗并做224*224的大小变换。有了训练数据后需要训练模型,由于颜色图本身特征并不复杂,因此仅训练20个epoch,并按照128张为一个batch输出每轮训练的输入图像与输出图像,观察输出颜色图是否完成对输入的重建。我们进行训练的环境为NVIDIA GeForce GTX 1080 Ti型号的GPU,可以发现第20轮训练的结果已经能够实现对输入图像的重建,因此训练至20轮即停止,该模型作为最终的VAE度量模型。
训练生成的模型便可以将草图UI与AppRepo中应用UI分别作为输入以生成对应的特征向量,输出的特征向量便作为下一步骤的输入。
D.相似度计算。两个同样形式的特征向量进行相似度计算便可以得到两个UI的基本相似度。对于向量相似度计算,图像领域常用的有欧氏距离与余弦相似度两种类型,其中欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析。而余弦距离更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分兴趣的相似度和差异,同时修正了用户间可能存在的度量标准不统一的问题。因此本发明选择利用余弦相似度计算两个UI的特征向量相似程度:
计算结果在-1到1之间,因此还需进行归一化处理,将结果变换到0到1之间,其中
计算结果越接近1则代表草图UI与AppRepo应用UI越相似。
这一步骤产生的基本相似度将作为数据基础,结果将传递给步骤3)。
步骤3)中负责将上个步骤得到的基本相似度进行一个T步迭代的更新以得到更符合草图场景的定位方法。草图经过绘制与识别后,得到的信息有每个草图UI的大小、UI内控件的类型、位置坐标、大小、每张UI转换的颜色图与UI之间的动态跳转文件。基本相似性度量仅关注了前面独立UI内的信息,这里可能面临草图场景下的问题。草图绘制的简易且通过拍照识别,相似性计算的效果会因为绘制的潦草或UI内控件大小的变化从而变得不稳定。此外因为库中应用的状态数量非常大,在大量数据中定位某一个UI仅仅依靠这两个UI内的有限信息,则草图的不稳定性会被放大,让草图UI在库中大量规则且具有标准形式的UI中难以一次性准确定位。因此,本发明提出一种基于T步迭代的相似性更新方法,迭代更新的方法则要关注草图UI之间的动态跳转信息。
草图动态跳转文件的每一行是两个UI之间的跳转信息,包括此次跳转的起点UI,终点UI,触发此次跳转的控件名与该控件在起点UI上的相对位置坐标。而在AppRepo的元模型中,每个应用也存储了同样类型的动态跳转模型,核心也是一次跳转的起点、终点与触发细节。为了能更快地获得草图UI之间的跳转与库中UI的跳转信息,避免每次的查询都需扫描整个文件从而降低查询速度,本发明设计了如下的动态跳转矩阵(DJM)来存储一个应用内的动态UI流信息,帮助内存以O(1)的时间复杂度快速定位任意两个UI之间有无跳转与跳转的详细细节:
DJM的行与列都依次代表着从第一个UI到最后一个UI,而行UI为跳转的起点UI,列UI为跳转的终点UI,根据DJM[i][j]获得的矩阵内某一个值代表着从UI_i到UI_j的跳转细节,存储的数据结构都为字典,根据唯一的控件名能够定位该控件在UI_i中的相对位置坐标。DJM[i][j]可能为空,则UI_i到UI_j不存在动态跳转信息;DJM[i][j]也可能有多项跳转信息,则代表UI_i中多个不同的控件都能够触发从UI_i到UI_j的跳转。
有了统一的存储格式,那么需要进行下一跳UI的T步影响。两个UI一定程度上相似,如果二者的下一跳UI之间相似度也不低,则进一步说明这两张UI在功能上具有更高的相似度,则这两个跳转会对相似度计算造成正影响。相比于任意绘制的一个跳转,草图中某两个UI之间的有效跳转应该具备的条件是:该项跳转能够在资产库中的某UI与其他UI之间诸多跳转中找到对应的一个。而对应的关系基于控件的相对坐标位置差,我们对AppRepo中20组相似功能的标准UI进行控件坐标分析,发现这些UI内承载跳转的相似功能Button的位置坐标都不超过同比变化后的UI长与宽的1/8,因此该经验范围作为有效跳转控件的判断标准。
在有效跳转的基础上,一次跳转的权重即为有效跳转在二者全部跳转间的占比。因为DJM已存储任意两个UI之间的跳转细节,因此此处计算时可直接根据DJM取得草图与AppRepo中两个UI内所有触发了跳转的控件以及位置坐标详细信息,这些位置信息则用来根据上文有效跳转的规定来计算某TrigerButton是否触发了有效跳转以及权重。
结合以上分析,对于T步迭代更新算法的定义如下:
给定草图UI i与AppRepo中UI j,k与l分别为二者的下一跳UI集合中的任意两个UI,则i与j的T步迭代相似性为:
其中Sim值表示上一步骤中的两个UI的基本相似度,而权重即为两个UI有效跳转在其所有跳转中所占比例。
Q值相似度分数有以下特性:
a.Q分数的值域为[0,+∞),最低分为0,最高分没有限制,越高表示两个UI越相似,越低则相反。
b.基本相似性与T步迭代相似性均为0时,Q为0分,但可能性极低。
c.Q最高分不设限,因为我们希望草图绘制越多有效跳转,对于草图的定位是越有帮助的。
d.γ权重值越高代表有效跳转占比越高,当γ为0时表示不存在有效跳转,只计算基本相似度Sim。
e.算法当有效跳转数量为0或已迭代T步时停止。
对AppRepo中应用的跳转信息进行跟踪分析时,发现每个应用平均迭代10次会产生循环依赖现象。因此我们对迭代算法进行T=10的限定,意味着算法在T步小于10之前,每次跳转都计算下一跳的Q值进行进一步迭代且T不断累加。当T到达10步时,无论此时的UI是否存在有效跳转至下一跳则直接计算基本相似度,不再继续进行可能造成死循环的迭代,这也便是算法进行T步限制的意义。
通过这一步骤的计算,用户草图中任意一个UI则可以在AppRepo的应用中找到Q值最高,也即是相似度最高的一个真实UI作为锚点,得到一一映射的节点关系。
步骤4)中对于草图模型与AppRepo中模型的相似度计算则依赖于上一步骤中的T步迭代Q值。动态跳转模型查询额外关注对应跳转之间的UI相似度,除了从功能角度能让UI之间的跳转关系性更强,还可以让查询变得更合理。一个草图模型针对资产库的查询可能对于很多应用映射的节点关系都类似,跳转模式也是类似,则可能出现一次查询得到多个应用相同的分数,这样的查询并不能获得可用结果,且前期的相似性判定结果在节点映射前后没有得到保持。因此,也再次印证模型对比时考虑跳转前后UI相似度的必要性。
根据上文分析,草图与库中模型抽象出的有向图相似性计算需要根据草图UI的锚点确定后,首先将映射前后的节点相似度得以保持,其次还需利用每项跳转的细节信息影响其相似性。因此,我们需要综合以上两个因素的影响,为每项跳转设置一个权重值,使UI之间更相似的跳转得到更高的分,而UI之间相似性不高但存在相同映射的跳转得到较低的分,以此综合一个模型分数,使查询变得更加合理。
对于权重值中节点UI在映射前后的相似性得以保持方面,例如草图节点k到l的跳转,映射在AppRepo中是m到n的跳转,因此该项跳转中一部分权重应为Qkm与Qln的相似性分数结合。为了将一组跳转的起点对应UI与终点对应UI相似性均等考虑,我们给予两组Q值分别1/2的比重。
对于权重值中每项跳转详情对跳转分数的影响方面,结合对有效跳转的权重思考,对于上述例子中k到l跳转分数的内部权重同样设定为草图k,l对应AppRepo中m,n时,草图与库中对比的有效跳转个数在他们之间所有跳转个数中的占比。其中有效跳转与对应占比计算方式与上一步骤的定义相同。
因此,我们为两个有向图模型的相似度定义为如下:
给定草图模型S,AppRepo模型R,假定存在草图UI k到l的一项跳转,映射为AppRepo中UI m到n的跳转。则S与R两个模型的相似性为:
其中Q值为上一步骤中的T步迭代相似度,而γ同样为两个UI有效跳转在其所有跳转中所占比例。而每一项跳转的分数都由100进行等分,这对于每个草图模型来说是公平的。
Simi分数有如下特征:
a.SimiSR值的值域为[0,+∞),分数越低表示模型越不相关,分数越高表示模型相似度越高。
b.SimiSR值的最低分为0,此时草图每项跳转都无法在应用中找到锚点跳转的映射,说明两个模型几乎没有关系。
c.SimiSR值的最高分因为Q值可能无限高则没有最高限制,此时两个模型非常相似。
d.SimiSR是草图模型与AppRepo模型之间的总分,计算公式对每一项草图跳转方法都相同,该总分是草图内所有跳转分数的和。
最终得到与草图模型相似度较高的AppRepo应用模型排名,该排名即为草图查询的结果,利用价值大,可以辅助用户进行快速轻量级场景下的多UI跳转草图的快速查询。
与现有技术相比,本发明的有益效果为:在移动应用查询领域,目前还没有工作能够满足轻量级场景下的快速模型查询,大多都偏语义级理解,利用计算机上某些复杂平台或针对移动应用进行关键字检索。本方法通过用户提供的多UI跳转草图识别结果进行草图UI的定位,将一张草图通过一系列算法定位到基于IFML国际标准设计的移动应用软件资产库(AppRepo)中。基于草图的移动应用模型查询方法在软件工程的基础上,同时采用了计算机视觉中的深度学习技术,有效生成草图UI与库中UI的特征向量,再通过T步迭代方式更精确地为用户在轻量级场景下较快速地草图查询提供了服务。因进行查询的AppRepo为基于国际标准IFML模型设计的,且草图的方式简单轻便成本较低,因此本方法具有高可扩展性,对软件工程与软件测试领域均有贡献,因此后续利用价值较大。
附图说明
图1为本发明的整体查询框架图。
图2为本发明预先提供的草图建模语言的移动应用动静态控件画法。
图3为本发明实施例的输入草图。
图4为本发明中草图识别的动静态结果。
图5为本发明中针对统一格式颜色图的定义。
图6为本发明中的UI静态内容解析算法伪代码。
图7为本发明中VAE模型的原理图。
图8为本发明中有效跳转示意图。
图9为本发明中循环迭代现象示意图。
图10为本发明中草图模型与AppRepo模型的映射关系示意图。
具体实施方式
下面结合附图和实施例,对本发明的技术方案做进一步的详细说明。
本发明的具体实施方式为:
1)设置草图与草图识别结果的基本信息,确定输入。
1.1)本发明的整体草图模型查询架构图如附图1所示,后续步骤均根据此架构。
1.2)预先绘制一个符合本发明定义的草图建模语言要求(如附图2)的移动应用多UI跳转草图,实施例草图如附图3所示。此草图中包含4个UI信息以及UI之间的由不同控件触发的跳转。
1.3)通过预先识别,附图3草图中的动静态信息将会被提取出来,包含静态的UI图像、每个UI的xml文件、每个UI的大小范围信息与动态的UI之间跳转详情信息,如附图4所示。附图4中①表示草图识别的UI图像信息,②表示生成的UI xml静态文件,③表示每个UI的大小范围信息,这些动静态信息作为查询的输入。
2)输入的草图动静态信息首先进行基本相似度计算模块。具体步骤大致如下:
2.1)草图颜色图转换。因静态信息提供了草图内每个UI的大小与范围,且获得了对应xml文件,根据这个文件能够得出UI内每个控件的类型、位置与大小。为了能将草图UI与AppRepo中UI进行图像层面格式的统一以方便特征向量的生成,本发明提出一个统一格式的颜色图:在原草图UI上根据识别控件的类型进行染色,染色范围即为识别结果中每种控件的范围如附图4中②的四个坐标所示,一种类型对应一个RGB颜色,每种颜色如附图5右侧规则所示,用一个数字编号表示,中间的颜色图即为左侧草图UI经过染色后的结果。
2.2)软件资产库中应用UI的颜色图转换。通过一个UI静态内容解析算法,将软件资产库中应用的UI与上述草图UI以同一种标准进行存储。算法的伪代码如附图6所示,该算法通过递归遍历每个静态xml文件来生成颜色图。每次递归都要判断节点类型,当递归遍历到可视控件时,可通过判断class信息确定控件类型进行对应的染色;而遍历到不可视的容器元素时则忽略。
2.3)基于VAE网络的UI图像特征向量生成。在上面步骤的两种颜色图基础后,需要进行同样格式图像的特征向量抽取。本发明选择使用VAE网络来生成颜色图对应的特征向量,VAE网络的结构如附图7所示。这是一种自监督的神经网络,属于深度学习的范畴,主要分为编码器和解码器两个部分:编码器需要将处理后的颜色图编码成一个N维向量,将图像的核心信息进行降维表达,且通过一些限制使得编码器可以使用高斯分布来进行规律性采样,这样生成的隐含向量也遵循着高斯分布;而解码器需要将编码器输出并处理后的向量进行与输入大小一致的图像还原过程,而在这部分采用伯努利分布对数据进行采样。由于VAE网络在中间层多引入了高斯噪声,解码器仍然需要将图像还原,也就说明即使存在高斯噪声,解码器也需要尽可能让输出与输入相似,这也就证明了解码器对噪声的鲁棒性。同时也证明这种对噪声处理较好的网络更能适应草图这种可能存在较多干扰噪声的场景。经过模型训练实验,20轮训练的结果已经能够实现对输入图像的重建,因此训练至20轮即停止,该模型作为最终的VAE度量模型,能够抽取出每张草图UI与资产库UI的特征向量。
2.4)相似度计算。草图UI与资产库UI这两个同样形式的特征向量进行相似度计算便可以得到两个UI的基本相似度。对于向量相似度计算,图像领域常用的有欧氏距离与余弦相似度两种类型,其中欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析。而余弦距离更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分兴趣的相似度和差异,同时修正了用户间可能存在的度量标准不统一的问题。因此本发明选择利用余弦相似度计算两个UI的特征向量相似程度:
由于计算结果在-1到1之间因此还需进行归一化处理,将结果变换到0到1之间,其中计算结果越接近1则代表草图UI与AppRepo应用UI越相似。
3)在上一步骤得到的基本相似度基础上进行T步相似性更新以得到更准确的草图UI定位结果。如前文发明详情中描述的DJM用来存储草图UI与AppRepo的UI的核心跳转信息,则附图3中的DJM表现为:
其中根据DJM[i][j]可获得从UI_i到UI_j的跳转细节,为空则代表这两个UI之间不存在跳转。在DJM的基础上,为了更好确定T步迭代的方法,需要明确的是并不是草图所有的跳转均会对相似性计算造成正影响,因此本发明定义了如附图8的有效跳转含义,草图中某两个UI之间的有效跳转应该具备的条件是:该项跳转能够在AppRepo中的某UI与其他UI之间诸多跳转中找到对应的一个。如附图8中所示,草图UI i与库中UI j进行计算时,1号跳转对应着4号,3号跳转对应着5号,因此只有2条有效跳转,权重即为2/3。因此根据T步迭代更新算法的定义:
可以得到最新的相似度值。然而在迭代中很容易遇到如附图9所示的循环迭代现象,在附图9中计算Qij时,其结果依赖于Qkl,而Qkl依赖于Qpm,可以发现在此处出现了循环依赖,即Qpm再次依赖回Qij,因此计算将陷入死循环从而无法得到结果且浪费计算机内存。因此经过评估,T步迭代的T设置为10时是较为合适的,在T步小于10之前,每次跳转都计算下一跳的Q值进行进一步迭代且T不断累加。当T到达10步时,无论此时的UI是否存在有效跳转至下一跳则直接计算基本相似度,不再继续进行可能造成死循环的迭代,这也便是算法进行T步限制的意义。
4)根据上一步骤Q值相似度的基础,本发明可以将草图模型根据定位到的AppRepo应用模型进行映射并计算模型间的有向图相似度。两种模型间的映射关系如附图10所示,附图10中如草图模型中k到m的跳转,映射到AppRepo应用中l到n的跳转,则根据本发明对模型相似度计算的定义,草图模型S与AppRepo应用模型R的相似度:
其中括号内的系数用于调和模型间,因同一个草图模型在与库中不同移动应用模型计算时都要进行这一步,而我们为了保证两组UI的相似度在映射前后得以保持,这个系数则可以让原本相似的两组UI能对模型相似度造成更高的影响,而原本不太相似的UI组造成较小的影响。
而括号外的γ系数则用于调和模型内,即能够让一个草图模型在内部的有效跳转比例得以利用,更高比例的跳转对本次计算的正影响更大,反之则相反。
最后通过这几个步骤可以将用户的多UI跳转草图与AppRepo中每个移动应用进行匹配得到模型查询的分数排序,排序较高则可能为结果(具体的应用选择权交给用户)。而由于本发明使用的查询资产库为基于国际标准IFML设计的移动应用资产库,因此本发明的查询方法具有可扩展性,可不止利用在此资产库上。
以上仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。本发明未涉及的技术均可通过现有的技术加以实现。
Claims (9)
1.基于草图的移动应用模型查询方法,其特征在于,包括以下步骤:
步骤1:预先设定一种草图建模语言规范,给出一组常见移动应用开发控件的草图画法,并且提供针对草图多种信息的识别方法;
同时提供一个基于IFML规范设计的移动应用资产库AppRepo,用户根据所述草图建模语言所绘制的多UI跳转草图,然后通过所述识别方法生成草图的静态信息与动态信息,作为方法的输入;
步骤2:基于所述草图的静态信息与动态信息,通过计算草图图像中的每个UI与移动应用资产库AppRepo 中UI的基本相似度来确定每个UI的基本定位信息;
步骤3:获得基本相似度后对每个草图UI进行T步的相似度更新,即输入中的草图动态信息表达了草图UI之间的跳转详情,这些跳转T步影响着当前的相似度;
该步骤的计算能够将草图UI定位到移动应用资产库AppRepo 中每个应用的某个UI上;
步骤4:每个草图UI完成定位后,计算草图跳转模型与库中移动应用模型之间的相似度,即两个模型之间根据草图UI的锚点确定映射后以一定的系数进行计算,计算的结果能够获得移动应用资产库AppRepo 中每个应用的相似度分数并给出排名,这个排名即为方法的输出;
所述步骤3中的T步相似性更新算法是一个T步迭代的过程,具体步骤如下:
步骤3.1:根据草图识别的动态信息,若当前的草图UI并不存在下一跳转,则T步更新退化为基本相似性度量;
步骤3.2:若当前草图UI存在下一跳转,但与之计算的移动应用资产库AppRepo 中UI不存在下一跳转,则依然退化为基本相似性度量;
步骤3.3:当进行计算的两个UI均具备下一跳转UI,则二者的下一跳UI相似度会对当前相似度造成影响;
步骤3.4:当跳转进行到某一步出现步骤3.1或步骤3.2的情况时,迭代停止,仅计算基本相似度,否则一直进行迭代,直到T步为止;
所述T的确定在于迭代计算时造成循环依赖情况的平均迭代轮数;
T步迭代更新算法的定义如下:
给定草图UI i与AppRepo中UI j,k与l分别为二者的下一跳UI集合中的任意两个UI,则i与 j的T步迭代相似性为:
其中,为i与 j的T步迭代相似性,/>为k与l的T步迭代相似性;Sim值表示上一步骤中的两个UI的基本相似度,γ为权重,即两个UI有效跳转在其所有跳转中所占比例。
2.根据权利要求1所述的基于草图的移动应用模型查询方法,其特征在于:所述步骤1中的草图建模语言规范定义了描述移动应用UI的草图建模必要元素,所述必要元素包括静态控件和动态控件;
所述静态控件类型有:
Button按钮,用于表达文字或小图标,触摸按钮会引发一个事件;
EditText编辑框,用于接收用户输入的文本;
TextView文本展示,用于展示文本;
ImageView图片展示,用于展示图片;
Switch开关,用于用户在两个状态间改变设置的属性,所述两个状态为开或关;
RadioButton单选按钮,用于用户在一组选项中选择唯一的一个;
CheckBox复选按钮,用于用户勾选某一设置属性以表示选中或不选中;
所述动态控件类型有:
LeftArrow左箭头,用于表示两个UI之间从左到右的跳转;
RightArrow右箭头,用于表示两个UI之间从右到左的跳转;
UpArrow上箭头,用于表示两个UI之间从上到下的跳转;
DownftArrow下箭头,用于表示两个UI之间从下到上的跳转;
TriggerButton触发按钮,用于表示触发了某次跳转的按钮控件。
3.根据权利要求1所述的基于草图的移动应用模型查询方法,其特征在于:所述步骤1中通过针对草图多种信息的识别方法能够将草图转换为静态信息与动态信息,所述静态信息包括:
(1)每个草图UI的大小、位置文件;
(2)表示每个草图UI内控件信息的xml文件;
(3)从草图剥离出的每个草图UI图像文件;
所述动态信息为草图UI之间所有的跳转信息,包括
(1)跳转起点UI与跳转终点UI编号;
(2)触发该次跳转的控件类型与位置信息。
4.根据权利要求1所述的基于草图的移动应用模型查询方法,其特征在于:所述步骤1中的移动应用资产库AppRepo 保存了300个安卓移动应用的详细信息,所述详细信息包括每个UI的大小与位置、每个应用内具体UI的xml文件、UI的截图图像与UI之间的跳转。
5.根据权利要求1所述的基于草图的移动应用模型查询方法,其特征在于,所述步骤2中图像基本相似度的计算方法包括以下步骤:
步骤2.1:利用草图识别的静态信息将草图图像直接转换为颜色图;
步骤2.2:利用UI静态内容解析算法将移动应用资产库AppRepo 中应用UI转换为同样格式的颜色图;
步骤2.3:利用自监督的VAE网络提取每张草图UI的特征向量;
步骤2.4:计算每张草图UI与移动应用资产库AppRepo 中UI的特征向量的余弦值并归一化处理得到基本相似度。
6.根据权利要求5所述的基于草图的移动应用模型查询方法,其特征在于:所述步骤2.1具体为:
预设一个统一格式的颜色图,在原草图UI上根据识别出的控件的类型进行染色,一种类型对应一种RGB颜色,所述控件的矩形范围是xml文件内已经存储的控件最小外接矩形左上角与右下角的横纵坐标,所述颜色图能够将草图UI 与移动应用资产库AppRepo 的UI内核心控件信息以直接且易于计算机理解的方式存储。
7.根据权利要求5所述的基于草图的移动应用模型查询方法,其特征在于:所述步骤2.2具体为:
在移动应用资产库AppRepo 中获得每个移动应用内UI的截图与xml文件的静态信息,其中xml文件以标准树结构将UI每个控件以何种嵌套结构形式进行表述,所述树结构表达了控件在UI内的相对位置;这个步骤通过递归遍历每个静态xml文件来生成颜色图,其中每次递归都要判断节点类型,当递归遍历到可视控件时,因每个节点的class类名蕴含着安卓官方的控件信息,因此通过判断class信息能够确定控件类型进行对应的染色,以生成标准格式的移动应用资产库AppRepo 中UI颜色图。
8.根据权利要求5所述的基于草图的移动应用模型查询方法,其特征在于:所述步骤2.4具体为:
利用余弦相似度计算两个UI的特征向量相似程度:
若计算结果在-1到1之间,则进行归一化处理,将结果变换到0到1之间,其中计算结果越接近1则代表草图UI与移动应用资产库AppRepo 中UI越相似;这一步骤产生的基本相似度将作为数据基础,结果将传递给步骤3。
9.根据权利要求1所述的基于草图的移动应用模型查询方法,其特征在于,步骤4中的草图跳转模型与移动应用资产库AppRepo 中模型的相似度计算基于步骤3的草图UI锚点确定,即通过上述过程将每张草图UI定位到移动应用资产库AppRepo 中相似度最高的一个真实应用UI上,完成映射后根据每对节点的相似度确定权重进行计算,让UI之间的相似度在映射前后得以保持;这一过程即计算出草图跳转模型与移动应用资产库AppRepo中应用模型的相似度排名,排名靠前的即为可能的查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110339294.0A CN113010741B (zh) | 2021-03-30 | 2021-03-30 | 基于草图的移动应用模型查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110339294.0A CN113010741B (zh) | 2021-03-30 | 2021-03-30 | 基于草图的移动应用模型查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010741A CN113010741A (zh) | 2021-06-22 |
CN113010741B true CN113010741B (zh) | 2023-09-05 |
Family
ID=76409209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110339294.0A Active CN113010741B (zh) | 2021-03-30 | 2021-03-30 | 基于草图的移动应用模型查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010741B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08106513A (ja) * | 1994-10-07 | 1996-04-23 | Pfu Ltd | 手書き文字認識装置 |
CN103390011A (zh) * | 2012-05-11 | 2013-11-13 | 株式会社东芝 | 电子装置和手写文档检索方法 |
CN104778242A (zh) * | 2015-04-09 | 2015-07-15 | 复旦大学 | 基于图像动态分割的手绘草图图像检索方法及系统 |
KR20150097250A (ko) * | 2014-02-18 | 2015-08-26 | 에스케이플래닛 주식회사 | 태그 정보를 이용한 스케치 검색 시스템, 사용자 장치, 서비스 제공 장치, 그 서비스 방법 및 컴퓨터 프로그램이 기록된 기록매체 |
CN107133042A (zh) * | 2017-05-04 | 2017-09-05 | 南京大学 | 一种基于IFML的iOS开发建模方法 |
CN108595636A (zh) * | 2018-04-25 | 2018-09-28 | 复旦大学 | 基于深度跨模态相关性学习的手绘草图的图像检索方法 |
CN109308324A (zh) * | 2018-09-08 | 2019-02-05 | 中山大学 | 一种基于手绘风格推荐的图像检索方法及系统 |
CN110032948A (zh) * | 2019-03-22 | 2019-07-19 | 中国科学院软件研究所 | 一种基于交互时序信息的草图手势识别方法 |
CN110766697A (zh) * | 2019-10-16 | 2020-02-07 | 南京大学 | 一种界面草图的图形界面控件图像识别的方法和装置 |
CN110968299A (zh) * | 2019-11-20 | 2020-04-07 | 北京工业大学 | 一种基于手绘网页图像的前端工程化代码生成方法 |
CN111240670A (zh) * | 2018-11-28 | 2020-06-05 | 华中科技大学 | 一种软件图形界面的快速自动生成方法与装置 |
CN111273905A (zh) * | 2020-01-17 | 2020-06-12 | 南京大学 | 基于界面草图的应用检索方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140255B2 (en) * | 2006-01-30 | 2018-11-27 | Fasttac, Inc. | Portable dataport device and method for retrieving, interrelating, annotating and managing electronic documents at a point of need |
CN105493078B (zh) * | 2013-06-14 | 2019-07-23 | 微软技术许可有限责任公司 | 彩色草图图像搜索 |
GB201815725D0 (en) * | 2018-09-26 | 2018-11-07 | Square Enix Ltd | Sketching routine for video games |
-
2021
- 2021-03-30 CN CN202110339294.0A patent/CN113010741B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08106513A (ja) * | 1994-10-07 | 1996-04-23 | Pfu Ltd | 手書き文字認識装置 |
CN103390011A (zh) * | 2012-05-11 | 2013-11-13 | 株式会社东芝 | 电子装置和手写文档检索方法 |
KR20150097250A (ko) * | 2014-02-18 | 2015-08-26 | 에스케이플래닛 주식회사 | 태그 정보를 이용한 스케치 검색 시스템, 사용자 장치, 서비스 제공 장치, 그 서비스 방법 및 컴퓨터 프로그램이 기록된 기록매체 |
CN104778242A (zh) * | 2015-04-09 | 2015-07-15 | 复旦大学 | 基于图像动态分割的手绘草图图像检索方法及系统 |
CN107133042A (zh) * | 2017-05-04 | 2017-09-05 | 南京大学 | 一种基于IFML的iOS开发建模方法 |
CN108595636A (zh) * | 2018-04-25 | 2018-09-28 | 复旦大学 | 基于深度跨模态相关性学习的手绘草图的图像检索方法 |
CN109308324A (zh) * | 2018-09-08 | 2019-02-05 | 中山大学 | 一种基于手绘风格推荐的图像检索方法及系统 |
CN111240670A (zh) * | 2018-11-28 | 2020-06-05 | 华中科技大学 | 一种软件图形界面的快速自动生成方法与装置 |
CN110032948A (zh) * | 2019-03-22 | 2019-07-19 | 中国科学院软件研究所 | 一种基于交互时序信息的草图手势识别方法 |
CN110766697A (zh) * | 2019-10-16 | 2020-02-07 | 南京大学 | 一种界面草图的图形界面控件图像识别的方法和装置 |
CN110968299A (zh) * | 2019-11-20 | 2020-04-07 | 北京工业大学 | 一种基于手绘网页图像的前端工程化代码生成方法 |
CN111273905A (zh) * | 2020-01-17 | 2020-06-12 | 南京大学 | 基于界面草图的应用检索方法和装置 |
Non-Patent Citations (1)
Title |
---|
解温特.基于草图的移动应用建模语言构造与查询研究.《中国优秀硕士学位论文全文数据库 信息科技辑》.2022,(第5期),I138-216. * |
Also Published As
Publication number | Publication date |
---|---|
CN113010741A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110543517B (zh) | 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 | |
CN110334272B (zh) | 基于知识图谱的智能问答方法、装置及计算机存储介质 | |
US11314823B2 (en) | Method and apparatus for expanding query | |
CN111694965B (zh) | 一种基于多模态知识图谱的图像场景检索系统及方法 | |
WO2020088439A1 (zh) | 实现异构图、分子空间结构性质识别的方法、装置和计算机设备 | |
US11899681B2 (en) | Knowledge graph building method, electronic apparatus and non-transitory computer readable storage medium | |
JP5282658B2 (ja) | 画像学習、自動注釈、検索方法及び装置 | |
CN110457431A (zh) | 基于知识图谱的问答方法、装置、计算机设备和存储介质 | |
US20110282861A1 (en) | Extracting higher-order knowledge from structured data | |
US8341205B2 (en) | Fast singular value decomposition for expediting computer analysis system and application thereof | |
CN111966793B (zh) | 基于知识图谱的智慧问答方法、系统和知识图谱更新系统 | |
CN113805871B (zh) | 前端代码的生成方法、装置及计算机设备 | |
Rajput et al. | BNOSA: A Bayesian network and ontology based semantic annotation framework | |
CN111090765B (zh) | 一种基于缺失多模态哈希的社交图像检索方法及系统 | |
CN115062134B (zh) | 知识问答模型训练及知识问答方法、装置和计算机设备 | |
Wu et al. | Iterative closest point registration for fast point feature histogram features of a volume density optimization algorithm | |
Wu et al. | Learning data transformation rules through examples: Preliminary results | |
CN113761124B (zh) | 文本编码模型的训练方法、信息检索方法及设备 | |
CN113010741B (zh) | 基于草图的移动应用模型查询方法 | |
CN117932022A (zh) | 一种智能问答方法、装置、电子设备及存储介质 | |
Alonso et al. | Accelerated probabilistic learning concept for mining heterogeneous earth observation images | |
CN107368525B (zh) | 搜索相关词的方法及装置、存储介质和终端设备 | |
CN113641785B (zh) | 基于多维度的科技资源相似词检索方法及电子设备 | |
Wang et al. | Query-by-sketch image retrieval using homogeneous painting style characterization | |
CN110210691B (zh) | 资源推荐方法、装置、存储介质及设备 |
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 |