本发明涉及移动应用的gui页面组件识别,特别涉及一种基于sam大模型的移动应用gui页面布局结构生成方法。
背景技术:
1、移动应用的gui布局理解对于对许多gui自动化和gui测试任务至关重要,获取图形用户界面元素的准确位置和类别也是进行图形用户界面逆向工程或图形用户界面测试的第一步。移动应用的gui界面与一颗布局树一一对应,树中的节点对应gui界面中的一个组件,节点中标识了gui组件的类别、位置等属性,树中的节点的父子关系反应了gui界面组件的嵌套关系,及父节点在位置坐标上包含子节点。
2、理解完整的移动应用的gui界面对许多的下游任务具有重要的意义,目前的gui界面理解技术可以分为基于深度学习的方法和基于传统图像处理的方法两类。基于深度学习的方法在一个标注的数据集上训练一个识别模型,之后利用该模型来对新的数据进行识别,然而该方案依赖于数据集的质量和数量,而数据标注的成本十分高,数据集的不足会严重影响所训练的模型的效果。基于传统图像处理的方法利用传统的边缘检测、洪水覆盖等算法,对gui页面的组件进行识别,然而传统的图像处理方法依赖于许多预设的规则,例如边缘检测算法通过比较相邻像素的差异是否大于一个阈值来判断该像素是否是一个边缘像素,因此阈值的选取会影响最终的识别效果,且不具有通用性。
3、近些年来,大模型技术步入了快速发展的阶段,一些大参数量、在大规模数据集上进行训练的模型在很多的场景中表现出了良好的效果。sam(segment anything model)是一个图像分割大模型,其在1100万张图像上训练了超过10亿个掩码,实现了强大的零样本泛化,能够在不进行额外训练的情况下直接迁移到新的图像分割任务中。
技术实现思路
1、为了解决现有的移动应用gui布局理解任务中的问题,我们利用sam大模型实现了一种新的gui布局生成方法,该方法利用sam模型对gui页面截图进行元素分割,然后在分割的基础上对gui组件元素区域进行合并,最终再通过图神经网络进行节点的分类,对于给定的移动应用gui界面,该方法能够生成与之对应的布局结构信息。本发明通过以下技术方案来实现。
2、一种基于sam大模型的移动应用gui页面布局结构生成方法,其特征在于,该方法包括以下步骤:
3、步骤1)输入一个移动应用gui界面截图,使用ocr模型预处理所述gui页面截图;
4、步骤2)利用sam大模型将gui界面截图进行元素区域的像素级分割;
5、步骤3)设计形状识别算法,识别界面中的矩形和非矩形区域;
6、步骤4)设计不规则区域合并算法,将界面中的非矩形区域进行合并;
7、步骤5)设计树状结构生成算法,根据gui界面分割结果生成布局的树状结构;
8、步骤6)使用图神经网络对树状结构的节点进行分类,得到gui界面组件的结构和类别。
9、进一步的,所述步骤1)使用ocr模型预处理gui页面截图包括以下步骤:
10、步骤11)使用开源的easyocr文本识别模型对整个gui界面进行识别,得到整个界面中所有的文本区域的坐标;
11、步骤12)使用纯色矩形块粘贴在gui界面中的文本区域上,覆盖所述文本区域的文本内容。
12、进一步的,所述步骤2)使用sam分割模型对gui区域进行像素级分割的过程包括以下步骤:
13、步骤21)使用sam的自动分割功能对整个gui区域进行分割,得到界面上每一个元素的像素区域;
14、步骤22)将每个元素按照像素区域从大到小排序,判断区域的嵌套关系,若区域a完全包含区域b,则认为区域a嵌套区域b,即区域b是区域a的一部分。
15、进一步的,所述步骤3)设计形状识别算法,识别界面中的矩形和非矩形区域的具体实现过程包括以下步骤:
16、步骤31)对于每一个区域,使用边缘检测技术得到区域的边缘;
17、步骤32)对于每一个区域的边缘,将所述区域边缘内部完全填充,并得到区域的高度和宽度;
18、步骤33)对于每一个区域,根据不同的弧度生成不同的矩形模板区域;
19、步骤34)对于每一个区域,判断所述区域与所述步骤33)生成的矩形模板区域的重合度是否大于90%,若大于则认为所述区域是一个类似于矩形模板区域的矩形区域,否则认为所述区域不是矩形区域。
20、进一步的,所述步骤4)设计不规则区域合并算法,将界面中的非矩形区域进行合并的具体实现过程包括以下步骤:
21、步骤41)对于每一个非矩形的不规则区域,得到能包含所述不规则区域的最小面积的矩形;
22、步骤42)对于每一个非矩形的不规则区域,判断能包含所述不规则区域的最小矩形是否与包含其他区域的最小矩形重叠;
23、步骤43)若两个不规则区域的最小矩形重叠,则将所述两个不规则区域进行合并。
24、进一步的,所述步骤5)设计树状结构生成算法,根据gui界面分割结果生成布局的树状结构的具体实现过程包括以下步骤:
25、步骤51)对于每一个矩形区域和合并后的非矩形区域,得到能包含所述区域的面积最小的矩形;
26、步骤52)对于所述步骤51)得到的每一个矩形,按照面积从大到小进行排序;
27、步骤53)遍历所有排序后的矩形,判断是否有面积更大的矩形完全包含所述排序后的矩形,若能够完全包含,则认为小矩形区域是大矩形区域的子区域;
28、步骤54)将所有矩形区域两两进行对比,判断能否互相包含,最终得到所有区域的树状父子结构。
29、进一步的,所述步骤6)使用图神经网络对树状结构的节点进行分类,得到gui界面组件的结构及类别的具体实现过程包括以下步骤:
30、步骤61)将树状父子结构与gui截图进行对应,得到树状结构中每一个节点的区域截图,将所述节点的区域裁剪下来;
31、步骤62)将树状父子结构的父子关系作为图的边,将树状结构节点的截图作为图的节点,构建一个图结构;
32、步骤63)使用图神经网络对图节点进行分类,得到每个节点的类别;
33、步骤64)将分类后的图节点类别与树状结构的类别进行对应,得到树状结构中的所有节点的类别。
34、本发明采用以上技术方案,具有以下有益效果:
35、(1)本方法使用sam大模型对gui页面进行像素级语义分割,由于sam模型具有零样本迁移能力,因此本方法无需大量数据集的收集与标注;
36、(2)本方法针对gui页面的特定领域知识,设定分割区域的合并方法,实现了元素的合并,能够识别出完整的gui页面组件;
37、(3)本方法仅需gui页面即可生成相对应的布局结构,无需布局文件等数据,能够应用在许多无法获得布局文件的场景之中。
1.一种基于sam大模型的移动应用gui页面布局结构生成方法,其特征在于,该方法包括以下步骤:
2.根据权利要求1所述的基于sam大模型的移动应用gui页面布局结构生成方法,其特征在于,所述步骤1)使用ocr模型预处理gui页面截图包括以下步骤:
3.根据权利要求1所述的基于sam大模型的移动应用gui页面布局结构生成方法,其特征在于,所述步骤2)使用sam分割模型对gui区域进行像素级分割的过程包括以下步骤:
4.根据权利要求1所述的基于sam大模型的移动应用gui页面布局结构生成方法,其特征在于,所述步骤3)设计形状识别算法,识别界面中的矩形和非矩形区域的具体实现过程包括以下步骤:
5.根据权利要求1所述的基于sam大模型的移动应用gui页面布局结构生成方法,其特征在于,所述步骤4)设计不规则区域合并算法,将界面中的非矩形区域进行合并的具体实现过程包括以下步骤:
6.根据权利要求1所述的基于sam大模型的移动应用gui页面布局结构生成方法,其特征在于,所述步骤5)设计树状结构生成算法,根据gui界面分割结果生成布局的树状结构的具体实现过程包括以下步骤:
7.根据权利要求1所述的基于sam大模型的移动应用gui页面布局结构生成方法,其特征在于,所述步骤6)使用图神经网络对树状结构的节点进行分类,得到gui界面组件的结构及类别的具体实现过程包括以下步骤: