首页> 中国专利> 用于对具有图像的对象进行匹配检测的方法

用于对具有图像的对象进行匹配检测的方法

摘要

本申请所述匹配检测的方法及设备通过获取将待检测对象的图像和参考对象的图像进行特征提取并对特征提取获得的数据进行匹配检测,产生图像匹配检测结果,进而根据图像匹配检测结果产生对象匹配检测结果。进一步的,在进行匹配检测的过程,利用尺度不变特征转换算法结合快速最近邻逼近搜索函数库匹配算法进行特征提取,并利用随机抽样一致算法中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵,所述方法能够更精准、快速识别出相似图像,进而产生匹配检测结果。

著录项

  • 公开/公告号CN105825084A

    专利类型发明专利

  • 公开/公告日2016-08-03

    原文格式PDF

  • 申请/专利权人 阿里巴巴集团控股有限公司;

    申请/专利号CN201510005669.4

  • 发明设计人 侯冬梅;余文涛;

    申请日2015-01-06

  • 分类号G06F21/12(20130101);G06K9/00(20060101);G06K9/46(20060101);

  • 代理机构上海百一领御专利代理事务所(普通合伙);

  • 代理人陈贞健

  • 地址 英属开曼群岛大开曼资本大厦一座四层847号邮箱

  • 入库时间 2023-06-19 00:11:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-18

    授权

    授权

  • 2016-08-31

    实质审查的生效 IPC(主分类):G06F21/12 申请日:20150106

    实质审查的生效

  • 2016-08-03

    公开

    公开

说明书

技术领域

本申请涉及通信及计算机领域,尤其涉及一种用于对具有图像的对象进行匹配检测的方法。

背景技术

近年来,互联网迅速发展,各类软件应用不管是在种类还是数量上都大量增加,尤其是智能手机领域。当然,这其中也包括越来越多的病毒软件和盗版软件。盗版软件在功能、表现和交互上都与正版软件极其相似,很难辨别。在应对盗版软件问题上,业界多呼吁开发者采用各种防盗版技术(如加固等),或者推出各种所谓安全的应用市场,却很少探讨怎样在第一时间阻止盗版软件接近用户或者及时发现盗版软件并给予用户适当的提醒。但是国内的安全市场大多缺乏严格的审核标准和制度,也几乎对版权侵犯视而不见。即使是国内知名手机安全软件也鲜有盗版软件检测功能。即便有的安全软件有盗版检测功能,但是效果也极差。

由于现有的文件相似度算法和数据挖掘技术对资源文件相似度计算、程序控制流挖掘、程序数据流挖掘、程序API调用序列挖掘需要大量的计算资源,而且由于软件中各种文件对应用的贡献率不同,目前的技术还无法有效地将各种相似度融合。对于融合的效果也不曾探究。正因为前面所述技术在复杂度和资源需求上都非常大,实现和应用都是一大难题。而且很多盗版软件只是对正版软件进行很少改动,如增加一段后台发短信获取账号的代码、增加一段推送广告的代码等,这样的小改动对于整个应用来说可以忽略不计,很难从程序控制流、程序API调用、文本相似度上反映出来。因此,不少安全厂商就采用了建立在应用签名(有的也考虑应用包名)基础上的白名单匹配的方法来判断软件是否为盗版。此方法简单、快速,但是忽略了太多应用本身的信息,如应用本身的结构、关键的资源文件等,从而导致只能检测很小一部分应用,不能检测到常见的盗版软件,如修改应用包名和应用名后重打包的软件就不能检测出来。

总之,基于资源文件相似度、程序控制流、程序API调用序列的方法由于考虑的粒度太细和软件中各种资源的相似度的融合缺少可行的方案不适合实际应用,而基于白名单匹配的方式由于忽略太多应用本身内容信息取得的收效也很微弱。

因此,需要一种匹配检测方法,能够根据软件本身的信息判断软件是否是盗版软件,并以简单、快速、准确的地检测更多的盗版软件,以在第一时间警示用户以避免因使用盗版软件而带来的隐私信息或财产的损失。进一步地,该匹配检测方法还可以应用于其他具有图像,以及具有和特征字符串文件的对象匹配检测中,以实现更高应用价值。

发明内容

本申请的目的是提供一种用于对具有图像的对象进行匹配检测的方法。

有鉴于此,本申请提供一种用于对具有图像的对象进行匹配检测的方法,其中,所述方法包括:

获取参考对象及所述参考对象的第一参考数据和第二参考数据;

获取待检测对象,并从所述待检测对象中获取待匹配图像;

对所述待匹配图像进行特征提取,以获得第一待匹配数据和第二待匹配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待匹配数据;

获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵;

通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果;以及

根据所述图像匹配检测结果产生对象匹配检测结果。

优选的,获取所述参考对象的第一参考数据和第二参考数据包括:

获取参考对象;

从所述参考对象中获取参考图像;以及

对所述参考图像进行特征提取,以获得所述第一参考数据和所述第二参考数据。

优选的,利用尺度不变特征转换算法对所述参考图像进行特征提取。

优选的,所述第一参考数据和所述第二参考数据分别为所述参考图像的特征描述子和相应的特征点。

优选的,利用尺度不变特征转换算法对所述待匹配图像进行特征提取。

优选的,从所述第一待匹配数据中获取第三待匹配数据包括:

设定良好匹配距离阈值;

利用快速最近邻逼近搜索函数库匹配算法计算所述第一待匹配数据与所述相应第一参考数据的匹配距离;以及

将所述匹配距离小于所述良好匹配距离阈值的所述第一待匹配数据确定为所述第三待匹配数据。

优选的,利用随机抽样一致算法中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵,所述匹配矩阵为仿射变换矩阵。

优选的,所述第一待匹配数据和第二待匹配数据分别为所述待匹配图像的特征描述子和相应的特征点。

优选的,所述待检测对象和所述参考对象还具有字符串,则所述方法还包括:

获取所述参考对象的参考特征字符串文件;

从所述待检测对象中获取待匹配特征字符串文件;以及

对所述待匹配特征字符串文件与所述参考对象的参考特征字符串文件进行比对,并根据比对结果产生字符串匹配检测结果。

优选的,根据所述图像匹配检测结果产生对象匹配检测结果包括:

根据所述图像匹配检测结果和所述字符串匹配检测结果的结合产生对象匹配检测结果。

优选的,若所述图像匹配检测结果和所述字符串匹配检测结果均为不相似,则产生对象匹配检测结果为不相似;若所述图像匹配检测结果和所述字符串匹配检测结果至少有一个为相似,则产生对象匹配检测结果为相似。

优选的,所述待检测对象和所述参考对象所具有的字符串包括字母、文字及数字字符中的一种或任意组合。

优选的,所述待检测对象为待检测的软件,所述参考对象为参考软件。

优选的,所述待检测对象和所述参考对象采用爬虫技术获取。

优选的,所述待匹配图像为所述待检测软件的图标,所述参考图像为参考软件的图标。

优选的,所述待匹配特征字符串文件为所述待检测软件的特征字符串文件,所述待检测软件的特征字符串文件包括:所述待检测软件的签名、证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合;所述参考特征字符串文件为参考软件的特征字符串文件,所述参考软件的特征字符串文件包括:所述参考软件的签名、证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合。

优选的,所述待检测软件的特征字符串文件通过反编译工具解析所述待检测软件获取,所述参考软件的特征字符串文件通过反编译工具解析所述参考软件获取。

本申请另一方面还提供一种用于对具有图像的对象进行匹配检测的设备,其中,所述设备包括:

第一装置,用于获取参考对象及所述参考对象的第一参考数据和第二参考数据;

第二装置,用于获取待检测对象,并从所述待检测对象中获取待匹配图像;

第三装置,用于对所述待匹配图像进行特征提取,以获得第一待匹配数据和第二待匹配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待匹配数据;

第四装置,用于获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵;

第五装置,用于通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果;

第六装置,用于根据所述图像匹配检测结果产生对象匹配检测结果。

优选的,所述第一装置包括:

第一单元,用于获取参考对象;

第二单元,用于从所述参考对象中获取参考图像;以及

第三单元,用于对所述参考图像进行特征提取,以获得所述第一参考数据和所述第二参考数据。

优选的,所述第三单元利用尺度不变特征转换算法对所述参考图像进行特征提取。

优选的,所述第一参考数据和所述第二参考数据分别为所述参考图像的特征描述子和相应的特征点。

优选的,所述第三装置利用尺度不变特征转换算法对所述待匹配图像进行特征提取。

优选的,所述第三装置从所述第一待匹配数据中获取第三待匹配数据包括:

设定良好匹配距离阈值;

利用快速最近邻逼近搜索函数库匹配算法计算所述第一待匹配数据与所述相应第一参考数据的匹配距离;以及

将所述匹配距离小于所述良好匹配距离阈值的所述第一待匹配数据确定为所述第三待匹配数据。

优选的,所述第四装置利用随机抽样一致算法中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵,所述匹配矩阵为仿射变换矩阵。

优选的,所述第一待匹配数据和第二待匹配数据分别为所述待匹配图像的特征描述子和相应的特征点。

优选的,所述待检测对象和所述参考对象还具有字符串,则所述设备还包括:

第七装置,用于获取所述参考对象的参考特征字符串文件;

第八装置,用于从所述待检测对象中获取待匹配特征字符串文件;以及

第九装置,用于对所述待匹配特征字符串文件与所述参考对象的参考特征字符串文件进行比对,并根据比对结果产生字符串匹配检测结果。

优选的,所述第六装置根据所述图像匹配检测结果和所述字符串匹配检测结果的结合产生对象匹配检测结果。

优选的,若所述图像匹配检测结果和所述字符串匹配检测结果均为不相似,则所述第六装置产生对象匹配检测结果为不相似;若所述图像匹配检测结果和所述字符串匹配检测结果至少有一个为相似,则所述第六装置产生对象匹配检测结果为相似。

优选的,所述待检测对象和所述参考对象所具有的字符串包括字母、文字及数字字符中的一种或任意组合。

优选的,所述待检测对象为待检测的软件,所述参考对象为参考软件。

优选的,所述待检测对象和所述参考对象采用爬虫技术获取。

优选的,所述待匹配图像为所述待检测软件的图标,所述参考图像为参考软件的图标。

优选的,所述待匹配特征字符串文件为所述待检测软件的特征字符串文件,所述待检测软件的特征字符串文件包括:所述待检测软件的签名、证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合;所述参考特征字符串文件为参考软件的特征字符串文件,所述参考软件的特征字符串文件包括:所述参考软件的签名、证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合。

优选的,所述待检测软件的特征字符串文件通过反编译工具解析所述待检测软件获取,所述参考软件的特征字符串文件通过反编译工具解析所述参考软件获取。

与现有技术相比,本申请所述匹配检测的方法及设备通过获取将待检测对象的图像和参考对象的图像进行特征提取并对特征提取获得的数据进行匹配检测,产生图像匹配检测结果,进而根据图像匹配检测结果产生对象匹配检测结果。进一步的,在进行匹配检测的过程,利用尺度不变特征转换算法结合快速最近邻逼近搜索函数库匹配算法进行特征提取,并利用随机抽样一致算法中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵。通过快速最近邻逼近搜索函数库匹配算法选择良好的匹配对,保留了几何位置的特征点,利用特征点在图片中的位置信息来补充描述子,从而在计算匹配算法中所涉及的仿射变换的矩阵时,对其中各个维度的变换值进行阈值限定从而去掉扰动过大的匹配对,保留好的匹配对,使利用利用尺度不变特征转换算法获得的描述子与特征点结合的方法能够更精准、快速识别出相似图像。

进一步的,本申请所述匹配检测的方法及设备能够基于软件内容本身进行盗版检测。所述方法能够综合考虑软件应用的图标、签名、应用名、包名、组织结构等资源,采用简单、高校的字符串匹配和快速、准确的图标匹配算法来更快、更准地检测更多的盗版软件。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个方面的一种用于对具有图像的对象进行匹配检测的设备示意图;

图2示出本申请一实施例中第一装置的示意图;

图3示出根据本申请一优选的实施例中用于对具有图像的对象进行匹配检测的设备示意图;

图4示出根据本申请一个方面的一种用于对具有图像的对象进行匹配检测方法的过程示意图;

图5示出本申请一实施例中第一装置的示意图;

图6示出根据本申请一优选的实施例中用于对具有图像的对象进行匹配检测方法的过程示意图。

图7示出本申请一优选的实施例中作为参考对象的正版软件的相关信息示意图。

图8示出本申请一优选的实施例中作为待检测对象的若干待检测软件的相关信息示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

图1示出根据本申请一个方面的一种用于对具有图像的对象进行匹配检测的设备示意图。所述设备1包括第一装置101、第二装置102、第三装置103、第四装置104、第五装置105和第六装置106。

其中,所述第一装置101用于获取参考对象及所述参考对象的第一参考数据和第二参考数据;所述第二装置102用于获取待检测对象,并从所述待检测对象中获取待匹配图像;所述第三装置103用于对所述待匹配图像进行特征提取,以获得第一待匹配数据和第二待匹配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待匹配数据;所述第四装置104用于获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵;所述第五装置105用于通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果;以及所述第六装置106用于跟据所述图像匹配检测结果产生对象匹配检测结果。

本申请所述设备用于针对具有图像的对象进行匹配检测,通过对待检测对象的图像与参考对象的图像进行匹配检测,来确定关于待检测对象与参考的对象匹配检测结果,以进一步确定检测对象的其他信息。

具体的,第一装置101获取参考对象及所述参考对象的第一参考数据和第二参考数据;其中,所述参考对象具有图像,所述第一参考数据和第二参考数据为所述参考对象的图像所具有的数据。

图2示出本申请一实施例中第一装置的示意图,所述第一装置101包括第一单元1001、第二单元1002和第三单元1003。其中,所述第一单元1001获取参考对象,所述第二单元1002从所述参考对象中获取参考图像,所述第三单元1003对所述参考图像进行特征提取,以获得所述第一参考数据和所述第二参考数据。在较佳的实施例中,所述第三单元1003利用尺度不变特征转换算法(Scale-InvariantFeatureTransform,SIFT)对所述参考图像进行特征提取。所述第一参考数据和所述第二参考数据分别为所述参考图像的特征描述子和相应的特征点。

在此,所述尺度不变特征转换(Scale-invariantfeaturetransform,SIFT),是用于图像处理领域的一种描述子。这种描述具有尺度不变性,可在图像中检测出特征点,是一种局部特征描述子的图像匹配检测方法。

其中,第三单元1003利用尺度不变特征转换算法对所述参考图像进行特征提取主要包括以下步骤:

-对参考图像构建尺度空间,检测极值点,获得尺度不变性;

-特征点过滤并进行精确定位;

-为特征点分配方向值;

-生成与特征点相应的特征描述子。

接着,所述第二装置102获取待检测对象,并从所述待检测对象中获取待匹配图像。

接着,所述第三装置103对所述待匹配图像进行特征提取,以获得第一待匹配数据和第二待匹配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待匹配数据。

优选的,所述第三装置103利用尺度不变特征转换算法(Scale-InvariantFeatureTransform,SIFT)对所述待匹配图像进行特征提取,以获得第一待匹配数据和第二待匹配数据,则所述第一待匹配数据和第二待匹配数据分别为所述待匹配图像的特征描述子和相应的特征点。

具体地,所述第三装置103利用尺度不变特征转换算法对所述待匹配图像进行特征提取主要包括以下步骤:

-对待匹配图像构建尺度空间,检测极值点,获得尺度不变性;

-特征点过滤并进行精确定位;

-为特征点分配方向值;

-生成与特征点相应的特征描述子。

接着,所述第三装置103对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待匹配数据。

当所述待匹配图像的第一待匹配数据和第二待匹配数据生成以后,就可以采用第一待匹配数据的距离作为参考图像和待匹配图像的相似性判定度量。取参考图像中某个第一参考数据,通过遍历找到待匹配图像中的距离最近的第一待匹配数据,如果该第一待匹配数据与该第一参考数据的最近距离小于某个良好匹配距离阈值,则判定为一对匹配点,则第一待匹配数据选择为第三待匹配数据。

具体地,所述第三装置103从所述第一待匹配数据中获取第三待匹配数据包括:

-设定良好匹配距离阈值Theta,所述良好匹配距离阈值Theta可以根据具体的匹配过程进行动态设定,例如但不限于:良好匹配距离阈值Theta可以选择匹配过程中最大距离值和最小距离值的平均值;

-利用快速最近邻逼近搜索函数库匹配算法(FastApproxNearestNeighborClassification,Flann)计算所述第一待匹配数据与所述相应第一参考数据的匹配距离;在此,所述快速最近邻逼近搜索函数库是一种用于快速搜索近似近邻的开源算法库(BSD认可),已被集成到OpenCV库(OpenSourceComputerVisionLibrary,是一个基于开源发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS等操作系统上,由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法的数据库)。本文所述方法可以直接使用的Flann匹配算法,所述快速最近邻逼近搜索函数库匹配算法可以直接利用OpenCV中的Flann匹配算法,直接利用K-d树、随机树、层次K-means树等辅助数据结构实现高维数据的快速搜索。将所述匹配距离小于所述良好匹配距离阈值的所述第一待匹配数据确定为所述第三待匹配数据,所述第三待匹配数据是优选的第一待匹配数据,第三待匹配数据能够更有利于后续进行匹配检测工作。

由于不同的图标有不同的特点,提取出的SIFT特征的分布也不一样,例如对于具有很多角点的图像,SIFT特征较多而且很规范,匹配度较好(即距离较小)。对于圆形的图像的角点较少,SIFT特征点也较少,匹配度较差(即距离较大)。则此时,可以根据图像的具体情况,动态设定良好匹配距离阈值。因此,距离小于设定的良好匹配距离阈值theta的才算是良好的匹配对,在后续的计算中,我们只考虑符合良好匹配的特征点构成的集合M1和M2,而忽略其它。这样能有效忽略一些异常点。

接着,第四装置104获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵。

优选的,所述第四装置104利用随机抽样一致算法(RandomSampleConsensus,RANSAC)中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵,且所述匹配矩阵为仿射变换矩阵。

在此,所述仿射变换矩阵是仿射变换中的一种矩阵,仿射变换是一个向量空间中的向量通过仿射矩阵变换为另一个空间中的向量,包括旋转、平移、缩放。仿射变换矩阵形式例如但不限于如下:

>H=m0m1m2m3m4m5001,>

仿射变换矩阵有九个维度(图中示例表示三个维度为固定值,其他六个维度为自由维度),理论上选择至少三对不共线的SIFT的特征点就可以解出所有的参数。仿射变换矩阵中m0、m1、m3、m4代表旋转和缩放变换,而m2、m5则是平移变换分量。例如,针对检测图像大小较小情况,(基本上都是几十K*几十K的大小),而且经过交叉校验(不同阈值的重复实验)后将m0、m1、m3、m4的阈值设定为0.6,m2、m5的阈值设定为30,当然各个维度阈值的设定仅以举例的形式给出,但并不限制于此。

接着,第五装置105通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果。

具体地,第五装置105首先设定匹配矩阵中若干维度的阈值,例如对于仿射变换矩阵可以有九个维度的阈值,然后,根据仿射变换规则和应用需要,分别对所述匹配矩阵的各个维度的值与各个维度的阈值进行检测,如果各个维度的值均大于该维度的阈值,则说明待检测图像与参考对象的参考图像的匹配差异大,则产生图像匹配检测结果为不相似;如果各个维度的值都在相应阈值的范围内,则产生图像匹配检测结果为相似。

接着,第六装置106根据所述图像匹配检测结果产生对象匹配检测结果。在本实施例中,当图像匹配检测结果为不相似,则产生待检测对象和参考对象的对象匹配检测结果为不相似,当图像匹配检测结果为相似,则产生待检测对象和参考对象的对象匹配检测结果为相似。

图3示出根据本申请一优选的实施例中用于对具有图像的对象进行匹配检测的设备示意图。所述待检测对象和所述参考对象不仅具有图像,还具有字符串。所述设备1包括第一装置101’、第二装置102’、第三装置103’、第四装置104’、第五装置105’、第六装置106’、第七装置107’、第八装置108’和第九装置109’。

在此,所述待检测对象和所述参考对象所具有的字符串可以是字母、文字及数字字符中的一种或任意组合。

其中,所述第七装置107’获取所述参考对象的参考特征字符串文件;所述第八装置108’用于从所述待检测对象中获取待匹配特征字符串文件;所述第九装置109’用于对所述待匹配特征字符串文件与所述参考对象的参考特征字符串文件进行比对,并根据比对结果产生字符串匹配检测结果。

具体的,所述第七装置107’和第八装置108’可以分别通过解析参考对象和待检测对象,以获取参考特征字符串文件和待匹配特征字符串文件。所述第九装置109’采用字符串相似度矩阵算法进行比对,其中字符串相似度矩阵算法的基本单位是字符串,具体步骤如下:

-采用非字母、非数字字符对待匹配特征字符串文件s1和参考对象的参考特征字符串s2进行划分。例如,给定两个长度相等的任意字符串Str1=“abcddacbcb”和Str2=“aadaccbddc”,对两个字符串在任意的位置比对:

(字符中间没有空格)。

字符串的长度记为n(例如,n=10),相同字母(d、a、c)的个数记为m(例如,m=3),两字符串重叠的个数记为r(例如,r=8)。

-计算待匹配特征字符串文件s1和参考对象的参考特征字符串s2的重叠率和匹配率,其中重叠率两个长度相等的(包括在长度的短的字符串中加入空格,使其长度相等的情况)字符串在字符串移动匹配的过程中,重叠字符串的个数与字符串的长度的比率,即L=r/n,匹配率为两个长度相等的(包括在长度的短的字符串中加入空格,使其长度相等的情况)字符串在字符串移动匹配的过程中,对应位置字符相同的个数与字符串长度的比率,即M=m/n。

-设定参数alpha和参数beta的值,并根据公式:alpha*匹配率+beta*重复率计算待匹配特征字符串文件s1和参考对象的参考特征字符串s2的相似度,其中,参数alpha和参数beta可以根据具体检测要求进行具体设定,不再赘述。

-设定相似度阈值theta。如果相似度小于相似度阈值theta,则待匹配特征字符串文件s1和参考对象的参考特征字符串s2不相似;否则,两个字符串相似。

然后,所述第六装置106’根据所述图像匹配检测结果和所述字符串匹配检测结果的结合产生对象匹配检测结果。具体地,若所述图像匹配检测结果和所述字符串匹配检测结果均为不相似,则产生对象匹配检测结果为不相似,若所述图像匹配检测结果和所述字符串匹配检测结果至少有一个为相似,则产生对象匹配检测结果为相似。

在此,所述设备1包括第一装置101’、第二装置102’、第三装置103’、第四装置104’及第五装置105’与图1所示出的第一装置101、第二装置102、第三装置103、第四装置104及第五装置105的内容相同或基本相同,在此以引用的方式包含于此,不再赘述。

所述设备在对所述待检测对象和所述参考对象进行匹配检测的过程中,不仅通过待检测对象和所述参考对象的图像进行匹配检测,还结合对待检测对象和所述参考对象的字符串进行匹配检测,通过对图像和字符串同时进行匹配检测,能够提高对待检测对象和参考对象的匹配检测的准确性。

在本申请一优选的实施例中,所述具有图像和字符串的对象可以是软件,待检测对象为待检测的疑似盗版软件,参考软件可以是正版软件。

在此,软件是一系列按照特定顺序组织的计算机数据和指令的集合,软件的内容除了基本的程序指令外,软件本身具有相关识别信息,例如软件签名、软件名称及图标等。正版软件是指获取正规厂家授权,合法的直接使用或间接授权使用的软件。盗版软件是指在未经版权所有人同意或授权的情况下,对正版软件进行复制、再分发的违法软件。

进一步的,所述待匹配图像为所述待检测软件的图标,所述参考图像为参考软件的图标。所述待匹配特征字符串文件为所述待检测软件的特征字符串文件,所述待检测软件的特征字符串文件包括:所述待检测软件的签名、证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合;所述参考特征字符串文件为参考软件的特征字符串文件,所述参考软件的特征字符串文件包括:所述参考软件的签名、证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合。所述待检测软件的特征字符串文件通过反编译工具解析所述待检测软件获取,所述参考软件的特征字符串文件通过反编译工具解析所述参考软件获取。

为使描述更清楚,以下结合图1~图3,以软件作为具有图像的对象为例,进一步说明设备进行匹配检测过程。当然,本领域技术人员应能理解上述具有图像的对象为软件为较佳的应用,其他现有的或今后可能出现的具有图像的对象如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

目前,行业普遍通过建立白名单规则收录正规软件厂商的正版软件,每个正版软件都具有唯一的签名,该唯一签名对外是通过加密公布的。现有的正版软件及疑似待检测软件的数量和种类庞大而繁杂。

具体的,第一装置101’首先获取正版软件及所述正版软件的第一参考数据和第二参考数据,第一装置101对正版软件的获取可以从已有的正版软件的数据库中获取。或者,直接从提供正版软件方获取正版软件。较佳的,所述第一装置101’包括第一单元1001’、第二单元1002’和第三单元1003’(未示出)。具体地,第一装置101’的第一单元1001’利用爬虫技术从应用官方网站、网络应用市场或研究机构等爬取正版软件、或通过终端收集正版软件、或直接向应用的官方机构索取正版软件,从而建立正版软件的数据库。第一装置101’的第二单元1002’获取正版软件的图标。第一装置的第三单元1003’能够对第二单元1002’获取的图标进行特征提取,利用尺度不变特征转换算法(Scale-InvariantFeatureTransform,SIFT)进行特征提取,获得正版软件的图标中的特征描述子和相应的特征点分别作为第一参考数据和第二参考数据。在此,第一装置的第三单元1003’对第二单元1002’获取的图标进行特征提取过程与图2所示出的装置的第三单元1003利用尺度不变特征转换算法对所述参考图像进行特征提取过程的内容相同或基本相同,在此以引用的方式包含于此,不再赘述。

接着,第二装置102’利用爬虫技术从提供应用的网站、网络应用市场或研究机构等爬取、或通过终端进行收集,以获取待检测的疑似盗版软件。

所述第三装置103’利用尺度不变特征转换算法(Scale-InvariantFeatureTransform,SIFT)对所述待检测软件的图标进行特征提取,以获得第一待匹配数据和第二待匹配数据,则所述第一待匹配数据和第二待匹配数据分别为所述待检测软件的图标的特征描述子和相应的特征点。

在此,所述第二装置103’利用尺度不变特征转换算法对所述待检测软件的图标进行特征提取的过程与图1中第三装置103利用尺度不变特征转换算法对所述待检测图像进行特征提取的过程相同或基本相同,为简明起见,以包含的方式包含于此,不再赘述。

接着,所述第三装置103’对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待匹配数据。当所述待匹配图像的第一待匹配数据和第二待匹配数据生成以后,就可以采用第一待匹配数据的距离作为正版软件的图标和待检测软件的图标的相似性判定度量。取待检测软件的图标中某个第一参考数据,通过遍历找到待检测软件的图标中的距离最近的第一待匹配数据,如果该第一待匹配数据与该第一参考数据的最近距离小于某个良好匹配距离阈值,则判定为一对匹配点,则第一待匹配数据选择为第三待匹配数据。

在此,所述第三装置103’从所述第一待匹配数据中获取第三待匹配数据与图1示出的第三装置103从所述第一待匹配数据中获取第三待匹配数据的过程相同或基本相同,为简明起见,以包含的方式包含于此,不再赘述。

接着,第四装置104’获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵。优选的,所述第四装置104’利用随机抽样一致算法(RandomSampleConsensus,RANSAC)中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵,且所述匹配矩阵为仿射变换矩阵。

接着,第五装置105’通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果。

在此,所述第四装置104’获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵与图1示出的所述第四装置104获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵的过程相同或基本相同,第五装置105’通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果与图1示出的第五装置105通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果,为简明起见,以包含的方式包含于此,不再赘述。

同时,所述第七装置107’可以采用反编译工具对爬取到的参考图像进行解析,解析能够获取字符串文件,例如图标,资源文件、全局配置文件、源代码及引用库等相关数据,还能够根据白名单规则收集正版软件白名单列表,例如软件包名、签名及应用名等。其中,反编译工具采用的是可供商用的开源工具,例如用于Android(安卓)平台的Dexdump库(该库是Android解析Dex的源码,是随Android安卓平台一起开源的)或其他反编译工具。

接着,所述第八装置108’可以采用反编译工具对爬取到的待检测软件进行解析,解析能够获取字符串文件,例如资源文件、全局配置文件、源代码及引用库等相关数据,以及软件包名、签名及应用名等。其中,反编译工具采用的是可供商用的开源工具,例如用于Android(安卓)平台的Dexdump库(该库是Android解析Dex的源码,是随Android安卓平台一起开源的)或其他反编译工具。

所述第九装置109’对所述待匹配特征字符串文件与所述参考对象的参考特征字符串文件进行比对,并根据比对结果产生字符串匹配检测结果。具体地,所述第九装置109’采用字符串相似度矩阵算法进行比对的过程与图3所示出的第九装置109’采用字符串相似度矩阵算法进行比对的过程内容相同或基本相同,故不再赘述。

然后,所述第六装置106’根据所述图像匹配检测结果和所述字符串匹配检测结果的结合产生对象匹配检测结果。具体地,若所述图像匹配检测结果和所述字符串匹配检测结果均为不相似,则产生对象匹配检测结果为不相似,若所述图像匹配检测结果和所述字符串匹配检测结果至少有一个为相似,则产生对象匹配检测结果为相似。进而,通过对待检测的疑似盗版软件所具有的图标及字符串与正版软件所具有的图标及字符串进行匹配检测,产生图像匹配检测结果和字符串匹配检测结果,并根据图像匹配检测结果确定待检测的疑似盗版软件是否为盗版软件及是哪一款正版软件的盗版软件,从而在软件安装时,即可警示用户,进而避免用户因使用盗版软件而带来的隐私信息或财产的损失。

图4示出根据本申请一个方面的一种用于对具有图像的对象进行匹配检测方法的过程示意图。所述方法包括步骤S01、步骤S02、步骤S03、步骤S04、步骤S05及步骤S06。

其中,在步骤S01中:获取参考对象及所述参考对象的第一参考数据和第二参考数据;在步骤S02中:获取待检测对象,并从所述待检测对象中获取待匹配图像;在步骤S03中:对所述待匹配图像进行特征提取,以获得第一待匹配数据和第二待匹配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待匹配数据;在步骤S04中:获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵;在步骤S05中:通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果;在步骤S06中:跟据所述图像匹配检测结果产生对象匹配检测结果。

本申请所述方法用于针对具有图像的对象进行匹配检测,通过对待检测对象的图像与参考对象的图像进行匹配检测,来确定关于待检测对象与参考的对象匹配检测结果,以进一步确定检测对象的其他信息。

具体的,在步骤S01中获取参考对象及所述参考对象的第一参考数据和第二参考数据;其中,所述参考对象具有图像,所述第一参考数据和第二参考数据为所述参考对象的图像所具有的数据。

图5示出本申请一实施例中第一装置的示意图,在步骤S01中包括步骤S101、步骤S102及步骤S103。其中,在步骤S101中:获取参考对象,在步骤S102中:从所述参考对象中获取参考图像,在步骤S103中:对所述参考图像进行特征提取,以获得所述第一参考数据和所述第二参考数据。在较佳的实施例中,在步骤S103中利用尺度不变特征转换算法(Scale-InvariantFeatureTransform,SIFT)对所述参考图像进行特征提取。所述第一参考数据和所述第二参考数据分别为所述参考图像的特征描述子和相应的特征点。

在此,所述尺度不变特征转换(Scale-invariantfeaturetransform,SIFT),是用于图像处理领域的一种描述子。这种描述具有尺度不变性,可在图像中检测出特征点,是一种局部特征描述子的图像匹配检测方法。

其中,在步骤S103利用尺度不变特征转换算法对所述参考图像进行特征提取主要包括以下步骤:

-对参考图像构建尺度空间,检测极值点,获得尺度不变性;

-特征点过滤并进行精确定位;

-为特征点分配方向值;

-生成与特征点相应的特征描述子。

接着,在步骤S02中,获取待检测对象,并从所述待检测对象中获取待匹配图像。

接着,在步骤S03中,对所述待匹配图像进行特征提取,以获得第一待匹配数据和第二待匹配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待匹配数据。

优选的,在步骤S03,利用尺度不变特征转换算法(Scale-InvariantFeatureTransform,SIFT)对所述待匹配图像进行特征提取,以获得第一待匹配数据和第二待匹配数据,则所述第一待匹配数据和第二待匹配数据分别为所述待匹配图像的特征描述子和相应的特征点。

具体地,在步骤S03利用尺度不变特征转换算法对所述待匹配图像进行特征提取主要包括以下步骤:

-对待匹配图像构建尺度空间,检测极值点,获得尺度不变性;

-特征点过滤并进行精确定位;

-为特征点分配方向值;

-生成与特征点相应的特征描述子。

接着,在步骤S03,对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待匹配数据。

当所述待匹配图像的第一待匹配数据和第二待匹配数据生成以后,就可以采用第一待匹配数据的距离作为参考图像和待匹配图像的相似性判定度量。取参考图像中某个第一参考数据,通过遍历找到待匹配图像中的距离最近的第一待匹配数据,如果该第一待匹配数据与该第一参考数据的最近距离小于某个良好匹配距离阈值,则判定为一对匹配点,则第一待匹配数据选择为第三待匹配数据。

具体地,在步骤S03从所述第一待匹配数据中获取第三待匹配数据包括:

-设定良好匹配距离阈值Theta,所述良好匹配距离阈值Theta可以根据具体的匹配过程进行动态设定,例如但不限于:良好匹配距离阈值Theta可以选择匹配过程中最大距离值和最小距离值的平均值;

-利用快速最近邻逼近搜索函数库匹配算法(FastApproxNearestNeighborClassification,Flann)计算所述第一待匹配数据与所述相应第一参考数据的匹配距离;在此,所述快速最近邻逼近搜索函数库是一种用于快速搜索近似近邻的开源算法库(BSD认可),已被集成到OpenCV库(OpenSourceComputerVisionLibrary,是一个基于开源发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS等操作系统上,由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法的数据库)。本文所述方法可以直接使用的Flann匹配算法,所述快速最近邻逼近搜索函数库匹配算法可以直接利用OpenCV中的Flann匹配算法,直接利用K-d树、随机树、层次K-means树等辅助数据结构实现高维数据的快速搜索。将所述匹配距离小于所述良好匹配距离阈值的所述第一待匹配数据确定为所述第三待匹配数据,所述第三待匹配数据是优选的第一待匹配数据,第三待匹配数据能够更有利于后续进行匹配检测工作。

由于不同的图标有不同的特点,提取出的SIFT特征的分布也不一样,例如对于具有很多角点的图像,SIFT特征较多而且很规范,匹配度较好(即距离较小)。对于圆形的图像的角点较少,SIFT特征点也较少,匹配度较差(即距离较大)。则此时,可以根据图像的具体情况,动态设定良好匹配距离阈值。因此,距离小于设定的良好匹配距离阈值theta的才算是良好的匹配对,在后续的计算中,我们只考虑符合良好匹配的特征点构成的集合M1和M2,而忽略其它。这样能有效忽略一些异常点。

接着,在步骤S04中,获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵。

优选的,在步骤S04中,利用随机抽样一致算法(RandomSampleConsensus,RANSAC)中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵,且所述匹配矩阵为仿射变换矩阵。

在此,所述仿射变换矩阵是仿射变换中的一种矩阵,仿射变换是一个向量空间中的向量通过仿射矩阵变换为另一个空间中的向量,包括旋转、平移、缩放。仿射变换矩阵形式例如但不限于如下:

>H=m0m1m2m3m4m5001,>

仿射变换矩阵有九个维度(图中示例表示三个维度为固定值,其他六个维度为自由维度),理论上选择至少三对不共线的SIFT的特征点就可以解出所有的参数。仿射变换矩阵中m0、m1、m3、m4代表旋转和缩放变换,而m2、m5则是平移变换分量。例如,针对检测图像大小较小情况,(基本上都是几十K*几十K的大小),而且经过交叉校验(不同阈值的重复实验)后将m0、m1、m3、m4的阈值设定为0.6,m2、m5的阈值设定为30,当然各个维度阈值的设定仅以举例的形式给出,但并不限制于此。

接着,在步骤S05中通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果。

具体地,步骤S05首先设定匹配矩阵中若干维度的阈值,例如对于仿射变换矩阵可以有九个维度的阈值,然后,根据仿射变换规则和应用需要,分别对所述匹配矩阵的各个维度的值与各个维度的阈值进行检测,如果各个维度的值均大于该维度的阈值,则说明待检测图像与参考对象的参考图像的匹配差异大,则产生图像匹配检测结果为不相似;如果各个维度的值都在相应阈值的范围内,则产生图像匹配检测结果为相似。

接着,在步骤S06中,根据所述图像匹配检测结果产生对象匹配检测结果。在本实施例中,当图像匹配检测结果为不相似,则产生待检测对象和参考对象的对象匹配检测结果为不相似,当图像匹配检测结果为相似,则产生待检测对象和参考对象的对象匹配检测结果为相似。

图6示出根据本申请一优选的实施例中用于对具有图像的对象进行匹配检测方法的过程示意图。所述待检测对象和所述参考对象不仅具有图像,还具有字符串。所述方法包括步骤S01’、步骤S02’、步骤S03’、步骤S04’、步骤S05’、步骤S06’、步骤S07’、步骤S08’及步骤S09’。

在此,所述待检测对象和所述参考对象所具有的字符串可以是字母、文字及数字字符中的一种或任意组合。

其中,在步骤S07’中,获取所述参考对象的参考特征字符串文件;在步骤S08’中,从所述待检测对象中获取待匹配特征字符串文件;所述在步骤S09’中,对所述待匹配特征字符串文件与所述参考对象的参考特征字符串文件进行比对,并根据比对结果产生字符串匹配检测结果。

具体的,步骤S07’和步骤S08’可以分别通过解析参考对象和待检测对象,以获取参考特征字符串文件和待匹配特征字符串文件。步骤S09’采用字符串相似度矩阵算法进行比对,其中字符串相似度矩阵算法的基本单位是字符串,具体步骤如下:

-采用非字母、非数字字符对待匹配特征字符串文件s1和参考对象的参考特征字符串s2进行划分。例如,给定两个长度相等的任意字符串Str1=“abcddacbcb”和Str2=“aadaccbddc”,对两个字符串在任意的位置比对:

(字符中间没有空格)。

字符串的长度记为n(例如,n=10),相同字母(d、a、c)的个数记为m(例如,m=3),两字符串重叠的个数记为r(例如,r=8)。

-计算待匹配特征字符串文件s1和参考对象的参考特征字符串s2的重叠率和匹配率,其中重叠率两个长度相等的(包括在长度的短的字符串中加入空格,使其长度相等的情况)字符串在字符串移动匹配的过程中,重叠字符串的个数与字符串的长度的比率,即L=r/n,匹配率为两个长度相等的(包括在长度的短的字符串中加入空格,使其长度相等的情况)字符串在字符串移动匹配的过程中,对应位置字符相同的个数与字符串长度的比率,即M=m/n。

-设定参数alpha和参数beta的值,并根据公式:alpha*匹配率+beta*重复率计算待匹配特征字符串文件s1和参考对象的参考特征字符串s2的相似度,其中,参数alpha和参数beta可以根据具体检测要求进行具体设定,不再赘述。

-设定相似度阈值theta。如果相似度小于相似度阈值theta,则待匹配特征字符串文件s1和参考对象的参考特征字符串s2不相似;否则,两个字符串相似。

然后,在步骤S06’中,根据所述图像匹配检测结果和所述字符串匹配检测结果的结合产生对象匹配检测结果。具体地,若所述图像匹配检测结果和所述字符串匹配检测结果均为不相似,则产生对象匹配检测结果为不相似,若所述图像匹配检测结果和所述字符串匹配检测结果至少有一个为相似,则产生对象匹配检测结果为相似。

在此,所述步骤S01’、步骤S02’、步骤S03’、步骤S04’及步骤S05’与图4示出的步骤S01、步骤S02、步骤S03、步骤S04及步骤S05’的内容相同或基本相同,在此以引用的方式包含于此,不再赘述。

所述设备在对所述待检测对象和所述参考对象进行匹配检测的过程中,不仅通过待检测对象和所述参考对象的图像进行匹配检测,还结合对待检测对象和所述参考对象的字符串进行匹配检测,通过对图像和字符串同时进行匹配检测,能够提高对待检测对象和参考对象的匹配检测的准确性。

在本申请一优选的实施例中,所述具有图像和字符串的对象可以是软件,待检测对象为待检测的疑似盗版软件,参考软件可以是正版软件。

在此,软件是一系列按照特定顺序组织的计算机数据和指令的集合,软件的内容除了基本的程序指令外,软件本身具有相关识别信息,例如软件签名、软件名称及图标等。正版软件是指获取正规厂家授权,合法的直接使用或间接授权使用的软件。盗版软件是指在未经版权所有人同意或授权的情况下,对正版软件进行复制、再分发的违法软件。

进一步的,所述待匹配图像为所述待检测软件的图标,所述参考图像为参考软件的图标。所述待匹配特征字符串文件为所述待检测软件的特征字符串文件,所述待检测软件的特征字符串文件包括:所述待检测软件的签名、证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合;所述参考特征字符串文件为参考软件的特征字符串文件,所述参考软件的特征字符串文件包括:所述参考软件的签名、证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合。所述待检测软件的特征字符串文件通过反编译工具解析所述待检测软件获取,所述参考软件的特征字符串文件通过反编译工具解析所述参考软件获取。

为使描述更清楚,以下结合图1~图3,以软件作为具有图像的对象为例,进一步说明所述方法进行匹配检测的过程。当然,本领域技术人员应能理解上述具有图像的对象为软件为较佳的应用,其他现有的或今后可能出现的具有图像的对象如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

目前,行业普遍通过建立白名单规则收录正规软件厂商的正版软件,每个正版软件都具有唯一的签名,该唯一签名对外是通过加密公布的。现有的正版软件及疑似待检测软件的数量和种类庞大而繁杂。

具体的,在步骤S01’中,首先获取正版软件及所述正版软件的第一参考数据和第二参考数据,在步骤S01’中,对正版软件的获取可以从已有的正版软件的数据库中获取。或者,直接从提供正版软件方获取正版软件。较佳的,所述步骤S01’包括步骤S101’、步骤S102’和步骤S103’(未示出)。具体地,步骤S101’利用爬虫技术从应用官方网站、网络应用市场或研究机构等爬取正版软件、或通过终端收集正版软件、或直接向应用的官方机构索取正版软件,从而建立正版软件的数据库。步骤S102’获取正版软件的图标,步骤S103’对步骤S102’获取的图标进行特征提取,利用尺度不变特征转换算法(Scale-InvariantFeatureTransform,SIFT)进行特征提取,获得正版软件的图标中的特征描述子和相应的特征点分别作为第一参考数据和第二参考数据。在此,步骤S103’对步骤S102’获取的图标进行特征提取的过程与图5所示出的步骤S103利用尺度不变特征转换算法对所述参考图像进行特征提取过程的内容相同或基本相同,在此以引用的方式包含于此,不再赘述。

接着,在步骤S02’中,利用爬虫技术从提供应用的网站、网络应用市场或研究机构等爬取、或通过终端进行收集,以获取待检测的疑似盗版软件。

接着,在步骤S03’中,利用尺度不变特征转换算法(Scale-InvariantFeatureTransform,SIFT)对所述待检测软件的图标进行特征提取,以获得第一待匹配数据和第二待匹配数据,则所述第一待匹配数据和第二待匹配数据分别为所述待检测软件的图标的特征描述子和相应的特征点。

在此,步骤S03’中利用尺度不变特征转换算法对所述待检测软件的图标进行特征提取的过程与图4中步骤S03利用尺度不变特征转换算法对所述待检测图像进行特征提取的过程相同或基本相同,为简明起见,以包含的方式包含于此,不再赘述。

接着,在步骤S03’中,对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待匹配数据。当所述待匹配图像的第一待匹配数据和第二待匹配数据生成以后,就可以采用第一待匹配数据的距离作为正版软件的图标和待检测软件的图标的相似性判定度量。取待检测软件的图标中某个第一参考数据,通过遍历找到待检测软件的图标中的距离最近的第一待匹配数据,如果该第一待匹配数据与该第一参考数据的最近距离小于某个良好匹配距离阈值,则判定为一对匹配点,则第一待匹配数据选择为第三待匹配数据。

在此,步骤S03’从所述第一待匹配数据中获取第三待匹配数据与图4示出的步骤S03从所述第一待匹配数据中获取第三待匹配数据的过程相同或基本相同,为简明起见,以包含的方式包含于此,不再赘述。

接着,在步骤S04’获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵。优选的,步骤S04’中利用随机抽样一致算法(RandomSampleConsensus,RANSAC)中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵,且所述匹配矩阵为仿射变换矩阵。

接着,在步骤S05’中,通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果。

在此,步骤S04’获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵与图4示出的步骤S04获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵的过程相同或基本相同,步骤S105’通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果与图4示出的步骤S05通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果,为简明起见,以包含的方式包含于此,不再赘述。

同时,在步骤S07’中,可以采用反编译工具对爬取到的参考图像进行解析,解析能够获取字符串文件,例如图标,资源文件、全局配置文件、源代码及引用库等相关数据,还能够根据白名单规则收集正版软件白名单列表,例如软件包名、签名及应用名等。其中,反编译工具采用的是可供商用的开源工具,例如用于Android(安卓)平台的Dexdump库(该库是Android解析Dex的源码,是随Android安卓平台一起开源的)或其他反编译工具。

接着,在步骤S08’中,可以采用反编译工具对爬取到的待检测软件进行解析,解析能够获取字符串文件,例如资源文件、全局配置文件、源代码及引用库等相关数据,以及软件包名、签名及应用名等。其中,反编译工具采用的是可供商用的开源工具,例如用于Android(安卓)平台的Dexdump库(该库是Android解析Dex的源码,是随Android安卓平台一起开源的)或其他反编译工具。

在步骤S09’中,对所述待匹配特征字符串文件与所述参考对象的参考特征字符串文件进行比对,并根据比对结果产生字符串匹配检测结果。具体地,步骤S09’采用字符串相似度矩阵算法进行比对的过程与图6所示出的步骤S09’采用字符串相似度矩阵算法进行比对的过程内容相同或基本相同,故不再赘述。

然后,在步骤S06’根据所述图像匹配检测结果和所述字符串匹配检测结果的结合产生对象匹配检测结果。具体地,若所述图像匹配检测结果和所述字符串匹配检测结果均为不相似,则产生对象匹配检测结果为不相似,若所述图像匹配检测结果和所述字符串匹配检测结果至少有一个为相似,则产生对象匹配检测结果为相似。进而,通过对待检测的疑似盗版软件所具有的图标及字符串与正版软件所具有的图标及字符串进行匹配检测,产生图像匹配检测结果和字符串匹配检测结果,并根据图像匹配检测结果确定待检测的疑似盗版软件是否为盗版软件及是哪一款正版软件的盗版软件,从而在软件安装时,即可警示用户,进而避免用户因使用盗版软件而带来的隐私信息或财产的损失。

以下结合一具体应用场景,对所述方法进行进一步说明,首先,获取某官方发布的正版软件“某宝”,正版软件“某宝”可以先利用反编译工具如Dex2jar、Dexdump等技术对应用对应用程序进行解压、反汇编等得到应用程序的详细信息,如证书、包名、应用名、图标、资源文件等,获取的图标及相关信息如图7所示,其中,图7示出本申请一优选的实施例中作为参考对象的正版软件的相关信息示意图,并从图标中提取出该正版软件的图标的描述子D2和相应的特征点K2,可以把解析得到淘宝官方应用的信息放入标准库,其中图标除了存放原文件外,还需要存放图标提取出来的SIFT描述子和特征点。

接着,利用网络爬虫从应用市场及应用论坛等爬取软件,通常通过文件后缀名、文件头内容、编码方式等可以判断其是否为软件的应用程序文件。这些程序是否为盗版都是未知的。

图8示出本申请一优选的实施例中作为待检测对象的若干待检测软件的相关信息示意图。如图8所示,从某应用市场中获得若干未知软件,一一对未知软件进行匹配检测。

采用本申请所述匹配检测方法对未知软件与正版软件“某宝”进行匹配检测,首先利用反编译工具对该未知软件进行解析获得该未知软件的图标、签名、包名、应用名等信息,对其中的图标进行灰度转化之后,用SIFT特征提取算法提取待检测的特征描述子D1和相应的特征点K1。

接着,把未知软件的证书与正版软件“某宝”的证书相比较。如果证书相同,则该未知软件为正版软件的应用,仅更改了名字;如果证书不同,则需进行进一步检测。

然后,利用字符串相似度量算法计算未知软件的包名、应用名与正版软件“某宝”的包名、应用名的相似度,则如果相似度达到一定阈值以上(例如在90%以上),则认为是盗版。

如果包名、应用名并不相似,则进行更进一步的图标检测:从未知应用程序的图标中提取SIFT特征,并利用本申请所述的匹配检测方法将其与正版软件“某宝”的图标(正版软件“某宝”的图标的SIFT特征描述子和特征点已经事先提取并存入数据库)进行比较。接着,利用RANSAC算法以正版软件“某宝”的图标提取出该正版软件的图标的描述子D2和相应的特征点K2的库M2为标准,对未知软件的图标的特征点K1进行随机抽样,并迭代地往其中加入一些特征点,构成新的集合N然后计算由N与M2的匹配距离是否比较小和由N变换到M2的变换矩阵是否在误差允许的范围内。如果匹配距离太大或变换矩阵误差太大则丢弃集合N,从新进行随机抽样和迭代加入特征点,直到得到一个满足距离小和矩阵误差小的特征点集合N。其中,所述该算法可以使用openCV的仿射矩阵计算集成功能实现。

所述匹配检测方法检测出的盗版软件(包括软件名称、图标等)比仅用白名单匹配方法检测到的盗版软件要多很多,实际检测的准确率可以达96%以上。如一个知名Android应用,用白名单匹配找到的盗版软件只有12个,而我们方法找到的有315个,多找出303个,而这303个盗版软件中有177个都是病毒。因此,所述匹配检测方法对盗版软件发现和病毒软件发现有很好的效果。

此外,本申请所述匹配检测方法和设备除应用于盗版软件的检测之外,还可应用于需要小图标精确匹配的应用中,例如手机应用中的各种图标等尺寸小的图像的匹配检测。

与现有技术相比,本申请所述匹配检测的方法及设备通过获取将待检测对象的图像和参考对象的图像进行特征提取并对特征提取获得的数据进行匹配检测,产生图像匹配检测结果,进而根据图像匹配检测结果产生对象匹配检测结果。进一步的,在进行匹配检测的过程,利用尺度不变特征转换算法结合快速最近邻逼近搜索函数库匹配算法进行特征提取,并利用随机抽样一致算法中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵。通过快速最近邻逼近搜索函数库匹配算法选择良好的匹配对,保留了几何位置的特征点,利用特征点在图片中的位置信息来补充描述子,从而在计算匹配算法中所涉及的仿射变换的矩阵时,对其中各个维度的变换值进行阈值限定从而去掉扰动过大的匹配对,保留好的匹配对,使利用利用尺度不变特征转换算法获得的描述子与特征点结合的方法能够更精准、快速识别出相似图像。

进一步的,本申请所述匹配检测的方法及设备能够基于软件内容本身进行盗版检测。所述方法能够综合考虑软件应用的图标、签名、应用名、包名、组织结构等资源,采用简单、高校的字符串匹配和快速、准确的图标匹配算法来更快、更准地检测更多的盗版软件。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号