CN113256555A - 一种基于机器学习的外观异常gui控件检测方法 - Google Patents
一种基于机器学习的外观异常gui控件检测方法 Download PDFInfo
- Publication number
- CN113256555A CN113256555A CN202110325535.6A CN202110325535A CN113256555A CN 113256555 A CN113256555 A CN 113256555A CN 202110325535 A CN202110325535 A CN 202110325535A CN 113256555 A CN113256555 A CN 113256555A
- Authority
- CN
- China
- Prior art keywords
- api
- control
- icons
- icon
- information
- 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.)
- Pending
Links
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 36
- 238000001514 detection method Methods 0.000 title claims abstract description 25
- 238000010801 machine learning Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 74
- 238000006243 chemical reaction Methods 0.000 claims abstract description 5
- 230000004927 fusion Effects 0.000 claims abstract description 5
- 238000004140 cleaning Methods 0.000 claims abstract description 4
- 239000008186 active pharmaceutical agent Substances 0.000 claims abstract 35
- 239000013598 vector Substances 0.000 claims description 46
- 238000012015 optical character recognition Methods 0.000 claims description 10
- 239000007787 solid Substances 0.000 claims description 8
- 230000005856 abnormality Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 5
- 238000012549 training Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 6
- 239000003086 colorant Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种基于机器学习的外观异常GUI控件检测方法,流程包括:获取所要检测的所有图标控件的图标和与其对应的API调用,并记录它们之间的对应关系;对获取到的数据集进行数据清洗和数据转换;对API数据集提取层次上和语义上的融合特征进行向量化;使用融合后的特征对API进行聚类;对图标数据依次提取图像特征;根据聚类得到的簇以及图标与API的对应关系,为每个图标标记其所属的簇;使用基于图像异常分数和API异常分数的异常检测算法对簇内所有图标进行异常检测。本发明的方法可自动地处理收集到的GUI控件数据,帮助开发者减少外观异常的GUI控件的产生,提升广大的具有GUI控件的图形界面应用用户的使用体验。
Description
技术领域
本发明涉及软件异常检测技术领域,尤其涉及一种基于机器学习的外观异常GUI控件检测方法。
背景技术
在日常生活中使用一些具有图形界面应用的过程中(比如Android系统应用,Windows桌面应用等),经常会有一些被我们称为外观具有异常性或者对用户具有误导性的GUI控件。这些控件对应的图标在用户看来要么难以想象与它互动到底会发生什么,要么看起来和用户认为它应具有的功能不匹配。这种被我们称为外观异常(Abnormal-looking)或具有误导性(Misleading)的控件可能是一种图标的误用。由于开发者的随意或者对图标本身的误会,将该控件误用于应用中的某些操作,因此用户从视觉角度并不明白或误解了该控件的含义。所以需要一种工具可以帮助开发者辨别出这种具有外观异常的控件,从而减少这种控件使用的错误,更好地提升用户体验。
API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。它是用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程。其特点是无需访问API实际的源码,或理解内部工作机制的细节,就可以调用API函数完成一系列预定义的功能。以Android平台为例,一个Android控件所对应调用的一组API就是该控件实际行为的描述,即通过一个控件的若干API就可以获悉该控件的行为是什么,也能推出其相应的外观是什么。机器学习(Machine Learning)研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。通过使用机器学习领域的若干方法就可以智能化地根据需求实现一些人可以做的事情。
但是目前尚无使用机器学习方法利用GUI控件的图标和对应的API调用检测出具有外观异常控件的工作。该工作将会帮助开发者辨别出这种外观异常的控件从而减少这种错误,提升用户体验。
发明内容
针对上述现有技术的不足,本发明提供一种基于机器学习的外观异常GUI控件检测方法。
为解决上述技术问题,本发明所采取的技术方案是:一种基于机器学习的外观异常GUI控件检测方法,包括如下步骤:
步骤1:获取所要检测的所有图标控件的图标和与其对应的API调用,并记录它们之间的对应关系,形成数据集;
步骤2:对获取到的成对的图标和API调用数据集进行数据清洗和数据转换,过程如下:
步骤2.1:从3个角度删除掉外观不合适的控件图标,包括:尺寸大小,尺寸纵横比和是否为纯色或接近纯色;
所述纯色或接近纯色的图片判断方法如下:
使用CIE LAB色空间的色差公式近似计算图片中的颜色相似度;在计算出颜色相似度后判断其值的大小是否小于某个阈值,从而检出纯色的图片。
步骤2.2:删除包含文本的控件,采用多个OCR工具共同投票以决定控件上是否存在文本;
所述采用多个OCR工具共同投票以决定控件上是否存在文本的过程如下:
如果多个OCR检测出某个控件图标中的文字内容相同,则认为该控件图标是文字图标,将其删除;此外则认为该控件上的信息是图像信息而非文字信息,保留该控件。
步骤2.3:人工检查经上述步骤2.1和步骤2.2处理完成的控件图标,检查剩余的图标数据集中是否还存在有不符合标准的图标;
步骤2.4:去除不需要的API调用以提高算法效率和准确率。
步骤3:对API数据集提取层次上和语义上的融合特征进行向量化,过程如下:
步骤3.1:如API有层级,对API层次结构进行划分,即将API按包名,类名,方法名分割为三个部分;
步骤3.2:对API提取语义上的信息:如API有层级,根据驼峰法特性将“包名.类名.方法名”按大写字母分割从而将API转化为文档,最后将所有内容合并,且统一转为小写;使用相关的语料库训练词嵌入模型或者加载预训练好的词嵌入模型;采用将所有单词的向量按TF-IDF权重相加的方式构建语义信息向量;
步骤3.3:对API提取层次结构上的信息:对API调用列表使用“词袋”方法进行编码,对于每个控件,使用一个长度为API特征全集长度的一维向量表示;将三个层次的API调用信息分别编码后再拼接在一起即成为最终的特征向量;
步骤3.4:将两种API信息进行融合:将API语义上的信息与层次结构上的信息直接拼接成为一个向量,或者对两个特征再进行加权以适应特殊的要求。
进一步的,所述将三个层次的API信息分别编码后再拼接在一起即成为最终的特征向量选择性地使用API特征的IDF值进行特征加权,将计算得出的IDF值按得到的行向量中特征列的位置保存,再与原特征向量相乘,即得到了加权的特征向量。
步骤4:使用融合后的特征向量对API进行聚类或直接将相同API控件划为同簇;
步骤5:对图标数据依次提取图像特征,提取到图像中的高层语义特征,并将提取后的图像特征与聚类中的每个控件API信息保持联系;
步骤6:根据步骤4中聚类得到的簇以及图标与API的对应关系,为每个图标数据集中的图像记录其对应的API调用集合所属的簇;
步骤7:分别基于图像相似度和API相似度使用异常检测算法对簇内所有图标进行异常检测,过程如下:
步骤7.1:定义控件的异常分数:对于某一个控件,如果其API与其他大部分控件的API相似度距离很小,但是该控件与上述大部分控件的图像相似度距离却较大,该控件将获得更大的异常分数;
步骤7.2:在用户不指定的情况下将默认异常分数大于一定阈值的控件是簇内外观异常的控件;如果用户需要指定最异常的前几个控件,则只需要按异常分数排序输出前几个异常分数值高的控件。
采用上述技术方案所产生的有益效果在于:本发明提供的方法可以自动地处理收集得到的图标控件API和对应图标,使用机器学习方法聚类后再进行异常检测,从而自动地检测出具有外观异常的图标控件。整个方法除了在输入控件时需要人工辅助性地审查输入的控件图标是否符合要求外,其他部分都可以使用默认配置使方法自动运行。同时,由于本方法的框架性较强,用户也完全可以根据自己的需求更改默认配置或者替换框架中的某些部分以达到定制的检测效果。本发明可以较好地提醒GUI开发者关注控件的易用性,并能够将可能具有外观异常的控件汇报给开发者。这些技术都可以为目前使用具有GUI控件的图形界面的用户提供更好地程序使用体验。
附图说明
图1为本发明实施例中基于机器学习的外观异常GUI控件检测方法的流程图;
图2为本发明实施例中数据集预处理的流程图;
图3为本发明实施例中API文档化示意图;
图4为本发明实施例中API文档化由词向量构造句子向量的示意图;
图5为本发明实施例中API向量化示意图;
图6为本发明实施例中示例层次聚类结果图;
图7为本发明实施例中异常检测过程示意图;
图8为本发明实施例中示例聚类结果图;
图9为本发明实施例中示例异常检测结果图;
图10为本发明实施例中示例Android应用截图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例以Android系统中的GUI控件作为示例介绍检测流程,但是该流程可以推广到其他可以获取到GUI控件和其对应的API或系统调用的开发系统当中。
如图1所示,本实施例中基于机器学习的外观异常GUI控件检测方法如下所述:
步骤1:获取所要检测的所有图标控件的图标和与其对应的API调用,并记录它们之间的对应关系,形成数据集;
本实施例中,在Android系统中可以使用类似DroidBot(一个Android的轻量级测试输入生成器)的动态测试工具对Android应用数据集进行动态分析;在动态分析过程中,对于每一个可以互动的,且符合“可视”,“可点击”等要求的图标控件,均提取其控件图标和对应的所有API;为该应用创建以应用名称命名的文件夹,将提取好的控件信息存放在该文件夹的JSON文件中。将提取的图标存放在该文件夹的images子文件夹中。这样通过应用中的JSON文件即可获取到各个控件的API调用信息和相应的图标存放的位置,较好地保存了两者之间的关系;
步骤2:对获取到的成对的图标和API调用数据集进行数据清洗和数据转换,过程如下:
步骤2.1:从3个角度删除掉外观不合适的控件图标,包括:尺寸大小,尺寸纵横比和是否为纯色或接近纯色;
所述纯色或接近纯色的图片判断方法如下:
使用CIE LAB颜色空间的色差公式近似计算图片中的颜色相似度;在计算出颜色相似度后判断其值的大小是否小于某个阈值,从而检出纯色的图片。
本实施例中,删除尺寸大小过大或过小的图标(如宽或高大于500像素,小于20像素的图标);
删除尺寸纵横比过大或过小的图标(如纵横比大于3或小于0.25的图标);
删除纯色或接近纯色的图标。筛选方法为:对于每一个控件的图标,统计其各颜色的占比。按占比从高到低的顺序遍历所有颜色,检查这些颜色之间的相似性。在这里使用CIE LAB颜色空间的一种低成本近似公式,如下公式(1)所示。认为任意两个颜色之间相似度小于30(或者自定义该阈值)即认为是同一种颜色。如果一个图片中的所有颜色都被认为是同一种颜色,则它会被定义为纯色图片,从而被删除;
ΔR=C1,R-C2,R
ΔG=C1,G-C2,G
ΔB=C1,B-C2,B
公式中Ci,j表示第i个颜色(i∈{1,2})的RGB值中的j颜色通道(j∈{R,G,B})的值,如C1,R为颜色1的RGB值中的R通道的值。为C1,R和C2,R即两个颜色R通道值的均值。ΔR,ΔG,ΔB分别为两种颜色R,G,B通道的差值。最后计算出的△C即为两种颜色的相似度。
步骤2.2:删除包含文本的控件,采用多个OCR工具共同投票以决定控件上是否存在文本;
所述采用多个OCR工具共同投票以决定控件上是否存在文本的过程如下:
如果多个OCR检测出某个控件图标中的文字内容相同,则认为该控件图标是文字图标,将其删除;此外则认为该控件上的信息是图像信息而非文字信息,保留该控件。
采用多个OCR工具即使用两个或两个以上的OCR工具,本实施例中使用了PaddleOCR和Easy OCR工具,值得一提的是,当OCR工具检测到控件中具有文字时,应该检查其检测出的文本是否具有一定量的非文本。这是由于某些图形和单个字母、数字或符号相似,易被误删。故可将检出单个字母或数字的图片暂时保留不予删除。比如“添加”按钮易被识别为“+”,“搜索”图标易被判为字母“Q”;
步骤2.3:人工检查经上述步骤2.1和步骤2.2处理完成的控件图标,检查剩余的图标数据集中是否还存在有不符合标准的图标;
本实施例中,检查剩余的图标数据集中是否还存在有“尺寸大小不合适”,“纵横比不合适”,“包含文字”,“纯色图片”,“意义过于复杂(比如照片,示意图等)”的图标,应给予删除,保证图标是正常的Android应用中可以交互的具有简洁明了的图案的图标。在人工审核的过程中,如果发现一系列相似的图片均需要被删除,可以使用图像哈希技术计算“典型图标”hash值,这种hash值计算非常迅速,可以利用该方法快速匹配hash值高相似度的图标将其删除。典型的图像哈希算法有:差值哈希:DHash(Difference Hash)、均值哈希:AHash(Average Hash)、感知哈希:PHash(Perceptual Hash)、小波哈希:WHash(Wavelet Hash)。另外,同样可以将整个数据集进行聚类,可使用类似k-means的效率较高的聚类算法。当数据被聚成若干簇后,可以快速地将一系列不符合标准的图标予以删除;
步骤2.4:去除不需要的API调用以提高算法效率和准确率。
如果应用的API调用中包含很多第三方定义的API,和系统提供的API关系较小,则可以仅保留系统提供的API。比如在Android系统中应仅保留Android Framework中的API,删除其他如开发者自定义的第三方API;
也可以根据自己的需求在这里定义不需要哪些API参与算法。例如Android系统中一般建议去除Java中的工具类,文本类,字符串和Android中一些经常使用,没有区分性意义的API或者对图像外观影响较小的API,比如android.view.View.getId,android.util.Log.i等。这样可以减少算法运行时间,且让算法更加精确;
步骤3:对API数据集提取层次上和语义上的融合特征进行向量化,其流程如图2所示,过程如下:
步骤3.1:如API有层级,对API层次结构进行划分,即将API按包名,类名,方法名分割为三个部分;
比如,在Android中可将API按包名,类名,方法名分割为三个部分,如:android.graphics.drawable.AdaptiveIconDrawable.getIntrinsicHeight()I将被分割为:“android.graphics.drawable”,“AdaptiveIconDrawable”,“getIntrinsicHeight”三部分。
步骤3.2:对API提取语义上的信息,如图3所示:如API有层级,根据驼峰法特性将“包名.类名.方法名”按大写字母分割从而将API转化为文档,最后将所有内容合并,且统一转为小写;使用相关的语料库训练词嵌入模型或者加载预训练好的词嵌入模型;采用将所有单词的向量按TF-IDF权重相加的方式构建语义信息向量;
步骤3.2.1:将API转化为文档。如图3所示,在Android系统中,对于从API中分离的包名,类名和方法名,将包名中的’.’替换为空格,再根据驼峰法特性将类名按大写字母分割,然后将方法名的首字母大写,同样按驼峰法特性将其按大写字母分割,最后将所有内容合并,且统一转为小写。另外需要注意以下几点:1)在包名中最好去除android,java,org等词汇,它们对区分API文档的语义毫无帮助;2)有部分Java类名和方法名未使用严格的驼峰法,需要手动处理;2)API中具有<init>,<clinit>方法,不是纯英语字符,需处理;
步骤3.2.2:由于API中具有较多特殊领域词和独特的缩写、简写,所以需要使用恰当的语料库训练词嵌入模型或者加载预训练好的词嵌入模型。本工作中使用的是一个预训练好的Android Word2Vec模型,可以直接用该模型来对单词进行向量化;
步骤3.2.3:从词向量到句子向量。由于Word2vec等词嵌入工具只能实现由一个单词向量化为一个固定维度的向量,但是一个API中就有好几个词。可以采用将所有单词的向量按TF-IDF权重相加的方式构建语义信息向量,如图4所示。最后构建完成的句子向量就可以当作控件的API语义层次上的信息了。
步骤3.3:对API提取层次结构上的信息:对API调用列表使用“词袋”方法进行编码,对于每个控件,使用一个长度为API特征全集长度的一维向量表示;将三个层次的API调用信息分别编码后再拼接在一起即成为最终的特征向量;
步骤3.3.1:对特征使用“词袋”方法进行编码,即:首先统计所有控件的某一个层次上的API特征,构建API特征全集。接着对于每个控件,使用一个长度为API特征全集长度的一维向量表示。考察API特征全集中的每个API特征是否在该控件的API特征列表中出现,如果出现在一维向量的相应位置标1,否则标为0,直到填满该一维向量,其过程如图5所示;
步骤3.3.2:由于具有三个层次的特征,则分别进行三次步骤3.3.1,将三个层次的特征分别编码后再拼接在一起即成为最终的特征向量。同时也可以选择性地使用API特征的TF-IDF值进行特征加权。由于有些特征出现频率高,表征能力弱,并非关键性API,所以使用IDF作为权重可以降低其聚类时的重要程度。
步骤3.3.3:首先取出步骤3.3.2中创建完成的向量。设该向量的总长度为L,其中包特征长度、类特征长度以及方法特征的长度分别为Lp,Lc,Lm。则前Lp个特征为第一层的包特征,第Lp+1个到第Lp+1+Lc个特征为第二层类特征,第Lp+1+Lc+1到L个特征为第三层的方法特征。将整个矩阵按列相加,得到一个行向量即是每个词的频数,接下来使用以下公式(2)计算它们的IDF值。其中IDFi为词i的逆文档频率。1+|j:ti∈dj|为包含词ti的文档数量,|D|为总文档数;
接着将计算得出的IDF值按得到的行向量中特征列的位置保存,再与原特征向量相乘,即得到了加权的API层次特征向量。
步骤3.4:将两种API信息进行融合:将API语义上的信息与层次结构上的信息直接拼接成为一个向量,或者对两个特征再进行加权以适应特殊的要求。
这种融合的两个层次上的特征更好地描述了控件的API调用,让后面的聚类任务更加顺利。当然直接使用控件对应的API通过“词袋”方式进行编码同样可以用于聚类,只是由于缺少更多信息可能导致效果不佳。
步骤4:使用融合后的特征向量对API进行聚类或直接将相同API控件划为同簇;
步骤4.1:使用DBSCAN或层次聚类方法对其进行聚类:
步骤4.1.1:首先定义其距离函数:分别计算三个层次特征和一个语义特征的距离,设这些距离分别为Dp,Dc,Dm,Ds。当然也可以对这几种向量按照一定的权重对其加权求和,如公式(3)所示,其中a,b,c,d为自定义加权的参数,比如为a=0.3,b=0.2,c=0.2,d=0.3;
D=a×Dp+b×Dc+c×Dm+d×Ds (3)
步骤4.1.2:接着使用Sklearn中的聚类方法使用以上距离函数为距离定义完成聚类操作,聚类的评价指标为轮廓系数(Silhouette Coefficient),其计算公式如公式(4)。根据特定的聚类方法可能会需要进行超参数搜索,搜索后选择最佳的超参数(对于DBSCAN算法为eps和min_samples,对于层次聚类可以是聚类数或者要切割的树高)进行聚类即可。其中某数据子集的层次聚类结果如图6所示,每个叶子节点代表一个控件,将通过轮廓系数等评价标准来确定聚类数;
其中,x表示一个样本与同一类别中所有其他点之间的平均距离。y表示样本与下一个最近的聚类中所有其他点之间的平均距离。S即为轮廓系数;
步骤4.2:对于包含控件数过少或者控件所属的应用不够丰富的簇,应给予丢弃,其簇中的控件可能不具有广泛性。聚类完成后需要将每个控件的聚类信息存入数据库或文件中,控件API调用信息和对应图标的关系应该保持;
步骤4.3:另外可以直接将API完全相同或重要的部分API相同的控件划为同簇:使用聚类方法将相似API的控件聚为一簇对算法要求较高,周期较长。故还可以使用一种极端方法,即直接将API完全相同或重要的部分API相同的控件划为同簇,从而从较少的簇中获取精确的结果。只需通过一个哈希表记录控件API,将相同API的控件放在同一表项中即可完成该聚类。这种方式能够让同簇内的控件API最为接近,这样其中具有异常外观的控件将具有极大可能是外观异常的GUI控件。使用这种方法得到的簇如图8所示,这些控件具有完全同的API调用,只需要通过外观的检测就可以找出外观异常的控件。
步骤5:对图标数据依次提取图像特征,提取到图像中的高层语义特征,并将提取后的图像特征与聚类中的每个控件API信息保持联系;
步骤5.1:对于每个控件图标,均使用相同的图像特征提取方法(如HOG,即方向梯度直方图、SPM,即空间金字塔匹配或使用预训练的神经网络模型等)提取图像特征。该图像特征提取方法最好能超越简单的轮廓,颜色等相似度特征,提取到蕴含在图像中的高层语义特征;
步骤5.2:将提取好的图像特征存入数据库或文件中,要求能够与聚类中的每个控件API信息保持联系。
步骤6:根据步骤4中聚类得到的簇以及图标与API的对应关系,为每个图标数据集中的图像记录其对应的API调用集合所属的簇;
步骤7:分别基于图像相似度和API相似度使用异常检测算法对簇内所有图标进行异常检测,如图7所示,过程如下:
步骤7.1:定义控件的异常分数:对于某一个控件,如果其API与其他大部分控件的API相似度距离很小,但是该控件与上述大部分控件的图像相似度距离却较大,该控件将获得更大的异常分数;
在每一个聚集好的簇中各控件之间都定义两个异常分数,即“图像异常分数”和“API异常分数”。异常检测算法将会考察控件的两个异常分数,从具体实现上来讲,将会分别用异常检测算法对图像特征矩阵和API特征矩阵进行异常检测,接着只需要寻找图像异常分数较高且API异常分数较低的控件即可达到目的;
步骤7.2:在用户不指定的情况下将默认异常分数大于一定阈值的控件是簇内外观异常的控件;如果用户需要指定最异常的前几个控件,则只需要按异常分数排序输出前几个异常分数值高的控件。
以某Android控件数据集实验,在使用完全相同API的聚类方法后生成了181个有意义的簇,这些簇中有25%的簇其API可充分描述控件的行为,簇中控件外观均相似,并且没有检测到外观较为异常的控件。有10%的簇API同样可充分描述控件行为,且检测到了外观较为异常的控件,其中一簇如图9所示。另有35%的簇其API信息不足以描述控件行为,控件外观较为纷繁复杂,异常检测较难开展。最后30%簇中控件数量或者控件所属应用的丰富程度较小,没有研究价值。
图9为具体检测过程中某一个簇的实验结果,其中被黑色方框标注的控件即为外观异常的GUI控件。该簇中的控件在均具有类似的API特征的情况下,异常检测算法通过对控件的图像特征进行提取,发现了第一排中第2,第3个图标的特征异常分数较大,所以被算法认定为“外观异常的控件”。实际上,在图10中可见该图标用于开启或关闭广告。该图标外观设计地比较异常,和其他类似功能的控件不同,用户会被误导或不明其意图。
Claims (7)
1.一种基于机器学习的外观异常GUI控件检测方法,其特征在于,包括以下步骤:
步骤1:获取所要检测的所有图标控件的图标和与其对应的API调用,并记录它们之间的对应关系,形成数据集;
步骤2:对获取到的成对的图标和API调用数据集进行数据清洗和数据转换;
步骤3:对API数据集提取层次上和语义上的融合特征进行向量化;
步骤4:使用融合后的特征向量对API进行聚类或直接将相同API的控件划为同簇;
步骤5:对图标数据依次提取图像特征,并将提取后的图像特征与聚类中的每个控件API信息保持联系;
步骤6:根据步骤4中聚类得到的簇以及图标与API的对应关系,为每个图标数据集中的图像记录其对应的API调用集合所属的簇;
步骤7:分别基于图像相似度和API相似度使用异常检测算法对簇内所有图标进行异常检测。
2.根据权利要求1所述一种基于机器学习的外观异常GUI控件检测方法,其特征在于,所述对获取到的数据集进行数据清洗和数据转换,包括如下步骤:
步骤2.1:从3个角度删除掉外观不合适的控件图标,包括:尺寸大小,尺寸纵横比和是否为纯色或接近纯色;
步骤2.2:删除包含文本的控件,采用多个OCR工具共同投票以决定控件上是否存在文本;
步骤2.3:人工检查经上述步骤2.1和步骤2.2处理完成的控件图标,检查剩余的图标数据集中是否还存在有不符合标准的图标;
步骤2.4:去除不需要的API调用以提高算法效率和准确率。
3.根据权利要求2所述的一种基于机器学习的外观异常GUI控件检测方法,其特征在于,所述纯色或接近纯色的图片判断方法如下:
使用CIE LAB色空间的色差公式近似计算图片中的颜色相似度;在计算出颜色相似度后判断其值的大小是否小于某个阈值,从而检出纯色的图片。
4.根据权利要求2所述的一种基于机器学习的外观异常GUI控件检测方法,其特征在于,所述采用多个OCR工具共同投票以决定控件上是否存在文本的过程如下:
如果多个OCR检测出某个控件图标中的文字内容相同,则认为该控件图标是文字图标,将其删除;此外则认为该控件上的信息是图像信息而非文字信息,保留该控件。
5.根据权利要求1所述一种基于机器学习的外观异常GUI控件检测方法,其特征在于,所述对API数据集提取层次上和语义上的融合特征进行向量化的过程如下:
步骤3.1:如API有层级,对API层次结构进行划分,即将API按包名,类名,方法名分割为三个部分;
步骤3.2:对API提取语义上的信息:如API有层级,根据驼峰法特性将“包名.类名.方法名”按大写字母分割从而将API转化为文档,最后将所有内容合并,且统一转为小写;使用相关的语料库训练词嵌入模型或者加载预训练好的词嵌入模型;采用将所有单词的向量按TF-IDF权重相加的方式构建语义信息向量;
步骤3.3:对API提取层次结构上的信息:对API调用列表使用“词袋”方法进行编码,对于每个控件,使用一个长度为API特征全集长度的一维向量表示;将三个层次的API调用信息分别编码后再拼接在一起即成为最终的特征向量;
步骤3.4:将两种API信息进行融合:将API语义上的信息与层次结构上的信息直接拼接成为一个向量,或者对两个特征再进行加权以适应特殊的要求。
6.根据权利要求5所述的一种基于机器学习的外观异常GUI控件检测方法,其特征在于,所述将三个层次的API信息分别编码后再拼接在一起即成为最终的特征向量选择性地使用API特征的IDF值进行特征加权,将计算得出的IDF值按得到的行向量中特征列的位置保存,再与原特征向量相乘,即得到了加权的特征向量。
7.根据权利要求1所述一种基于机器学习的外观异常GUI控件检测方法,其特征在于,所述步骤7的过程如下:
步骤7.1:定义控件的异常分数:对于某一个控件,如果其API与其他大部分控件的API相似度距离很小,但是该控件与上述大部分控件的图像相似度距离却较大,该控件将获得更大的异常分数;
步骤7.2:在用户不指定的情况下将默认异常分数大于一定阈值的控件视为簇内外观异常的控件;如果用户需要指定最异常的前几个控件,则只需要按异常分数排序输出前几个异常分数值高的控件即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110325535.6A CN113256555A (zh) | 2021-03-26 | 2021-03-26 | 一种基于机器学习的外观异常gui控件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110325535.6A CN113256555A (zh) | 2021-03-26 | 2021-03-26 | 一种基于机器学习的外观异常gui控件检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113256555A true CN113256555A (zh) | 2021-08-13 |
Family
ID=77181177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110325535.6A Pending CN113256555A (zh) | 2021-03-26 | 2021-03-26 | 一种基于机器学习的外观异常gui控件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113256555A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194993A (zh) * | 2023-07-06 | 2023-12-08 | 南方科技大学 | 一种应用程序误导性图标的自动检测方法及相关设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180095652A1 (en) * | 2016-09-30 | 2018-04-05 | Disney Enterprises, Inc. | System and Method for Detection and Visulaization of Anomalous Media Events |
CN108132968A (zh) * | 2017-12-01 | 2018-06-08 | 西安交通大学 | 网络文本与图像中关联语义基元的弱监督学习方法 |
CN110244677A (zh) * | 2019-06-25 | 2019-09-17 | 英特尔半导体(大连)有限公司 | 用于监控生产设备的运行的方法、装置和系统 |
CN111143842A (zh) * | 2019-12-12 | 2020-05-12 | 广州大学 | 一种恶意代码检测方法及系统 |
US20200160612A1 (en) * | 2018-11-21 | 2020-05-21 | Best Apps, Llc | Computer aided systems and methods for creating custom products |
CN111460355A (zh) * | 2020-04-17 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 一种页面解析方法和装置 |
CN112131121A (zh) * | 2020-09-27 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 用户界面的模糊检测方法、装置、电子设备和存储介质 |
-
2021
- 2021-03-26 CN CN202110325535.6A patent/CN113256555A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180095652A1 (en) * | 2016-09-30 | 2018-04-05 | Disney Enterprises, Inc. | System and Method for Detection and Visulaization of Anomalous Media Events |
CN108132968A (zh) * | 2017-12-01 | 2018-06-08 | 西安交通大学 | 网络文本与图像中关联语义基元的弱监督学习方法 |
US20200160612A1 (en) * | 2018-11-21 | 2020-05-21 | Best Apps, Llc | Computer aided systems and methods for creating custom products |
CN110244677A (zh) * | 2019-06-25 | 2019-09-17 | 英特尔半导体(大连)有限公司 | 用于监控生产设备的运行的方法、装置和系统 |
CN111143842A (zh) * | 2019-12-12 | 2020-05-12 | 广州大学 | 一种恶意代码检测方法及系统 |
CN111460355A (zh) * | 2020-04-17 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 一种页面解析方法和装置 |
CN112131121A (zh) * | 2020-09-27 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 用户界面的模糊检测方法、装置、电子设备和存储介质 |
Non-Patent Citations (4)
Title |
---|
ALESSANDRA GORLA等: "checking app behavior against app descriptions", ISCE 2014:PROCEEDINGS OF THE 36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, pages 1025 - 1035 * |
LIN LIN LI等: "what you see is what you get?it is not the case detecting misleading icons for mobile applications", ISSTA 2023:PROCEEDINGS OF THE 32ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, pages 538 - 550 * |
周凯等: "基于主题模型的Ubuntu操作系统缺陷报告的分类及分析", 计算机科学, vol. 47, no. 12, pages 35 - 41 * |
陈欣等: "基于Android平台的多生理参数智能手机监护系统的设计", 电子世界, no. 8, pages 122 - 124 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194993A (zh) * | 2023-07-06 | 2023-12-08 | 南方科技大学 | 一种应用程序误导性图标的自动检测方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106886580B (zh) | 一种基于深度学习的图片情感极性分析方法 | |
CN111209384A (zh) | 基于人工智能的问答数据处理方法、装置及电子设备 | |
CN111488931A (zh) | 文章质量评估方法、文章推荐方法及其对应的装置 | |
CN108090099B (zh) | 一种文本处理方法及装置 | |
CN111325237B (zh) | 一种基于注意力交互机制的图像识别方法 | |
CN112948575B (zh) | 文本数据处理方法、装置和计算机可读存储介质 | |
CN112347223A (zh) | 文档检索方法、设备及计算机可读存储介质 | |
CN112100212A (zh) | 一种基于机器学习和规则匹配的案件情节抽取方法 | |
CN113505786A (zh) | 试题拍照评判方法、装置及电子设备 | |
CN115408488A (zh) | 用于小说场景文本的分割方法及系统 | |
CN118069848A (zh) | 一种基于剧本文本的角色情感分析方法 | |
CN110852071A (zh) | 知识点检测方法、装置、设备及可读存储介质 | |
CN117454873B (zh) | 一种基于知识增强神经网络模型的讽刺检测方法及系统 | |
CN113256555A (zh) | 一种基于机器学习的外观异常gui控件检测方法 | |
CN117828024A (zh) | 一种插件检索方法、装置、存储介质及设备 | |
CN112347252A (zh) | 一种基于cnn文本分类模型的可解释性分析方法 | |
CN110096708B (zh) | 一种定标集确定方法及装置 | |
CN109657710B (zh) | 数据筛选方法、装置、服务器及存储介质 | |
CN115759085A (zh) | 基于提示模型的信息预测方法、装置、电子设备及介质 | |
CN111341404B (zh) | 一种基于ernie模型的电子病历数据组解析方法及系统 | |
Xu et al. | Estimating similarity of rich internet pages using visual information | |
CN112632229A (zh) | 文本聚类方法及装置 | |
CN103530656B (zh) | 基于隐结构学习的图像摘要生成方法 | |
CN113010664A (zh) | 一种数据处理方法、装置及计算机设备 | |
CN118643307B (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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240531 |
|
AD01 | Patent right deemed abandoned |