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

文档序号:10471371阅读:345来源:国知局
用于对具有图像的对象进行匹配检测的方法
【专利摘要】本申请所述匹配检测的方法及设备通过获取将待检测对象的图像和参考对象的图像进行特征提取并对特征提取获得的数据进行匹配检测,产生图像匹配检测结果,进而根据图像匹配检测结果产生对象匹配检测结果。进一步的,在进行匹配检测的过程,利用尺度不变特征转换算法结合快速最近邻逼近搜索函数库匹配算法进行特征提取,并利用随机抽样一致算法中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵,所述方法能够更精准、快速识别出相似图像,进而产生匹配检测结果。
【专利说明】
用于对具有图像的对象进行匹配检测的方法
技术领域
[0001] 本申请设及通信及计算机领域,尤其设及一种用于对具有图像的对象进行匹配检 测的方法。
【背景技术】
[0002] 近年来,互联网迅速发展,各类软件应用不管是在种类还是数量上都大量增加,尤 其是智能手机领域。当然,运其中也包括越来越多的病毒软件和盗版软件。盗版软件在功 能、表现和交互上都与正版软件极其相似,很难辨别。在应对盗版软件问题上,业界多呼吁 开发者采用各种防盗版技术(如加固等),或者推出各种所谓安全的应用市场,却很少探讨 怎样在第一时间阻止盗版软件接近用户或者及时发现盗版软件并给予用户适当的提醒。但 是国内的安全市场大多缺乏严格的审核标准和制度,也几乎对版权侵犯视而不见。即使是 国内知名手机安全软件也鲜有盗版软件检测功能。即便有的安全软件有盗版检测功能,但 是效果也极差。
[0003] 由于现有的文件相似度算法和数据挖掘技术对资源文件相似度计算、程序控制流 挖掘、程序数据流挖掘、程序API调用序列挖掘需要大量的计算资源,而且由于软件中各种 文件对应用的贡献率不同,目前的技术还无法有效地将各种相似度融合。对于融合的效果 也不曾探究。正因为前面所述技术在复杂度和资源需求上都非常大,实现和应用都是一大 难题。而且很多盗版软件只是对正版软件进行很少改动,如增加一段后台发短信获取账号 的代码、增加一段推送广告的代码等,运样的小改动对于整个应用来说可W忽略不计,很难 从程序控制流、程序API调用、文本相似度上反映出来。因此,不少安全厂商就采用了建立 在应用签名(有的也考虑应用包名)基础上的白名单匹配的方法来判断软件是否为盗版。 此方法简单、快速,但是忽略了太多应用本身的信息,如应用本身的结构、关键的资源文件 等,从而导致只能检测很小一部分应用,不能检测到常见的盗版软件,如修改应用包名和应 用名后重打包的软件就不能检测出来。
[0004] 总之,基于资源文件相似度、程序控制流、程序API调用序列的方法由于考虑的粒 度太细和软件中各种资源的相似度的融合缺少可行的方案不适合实际应用,而基于白名单 匹配的方式由于忽略太多应用本身内容信息取得的收效也很微弱。 阳0化]因此,需要一种匹配检测方法,能够根据软件本身的信息判断软件是否是盗版软 件,并W简单、快速、准确的地检测更多的盗版软件,W在第一时间警示用户W避免因使用 盗版软件而带来的隐私信息或财产的损失。进一步地,该匹配检测方法还可W应用于其他 具有图像,W及具有和特征字符串文件的对象匹配检测中,W实现更高应用价值。

【发明内容】

[0006] 本申请的目的是提供一种用于对具有图像的对象进行匹配检测的方法。
[0007] 有鉴于此,本申请提供一种用于对具有图像的对象进行匹配检测的方法,其中,所 述方法包括:
[0008] 获取参考对象及所述参考对象的第一参考数据和第二参考数据;
[0009] 获取待检测对象,并从所述待检测对象中获取待匹配图像;
[0010] 对所述待匹配图像进行特征提取,W获得第一待匹配数据和第二待匹配数据,并 对所述第一待匹配数据与所述第一参考数据进行比对,W从所述第一待匹配数据中获取第 Ξ待匹配数据;
[0011] 获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配矩阵;
[0012] 通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果;W及
[0013] 根据所述图像匹配检测结果产生对象匹配检测结果。
[0014] 优选的,获取所述参考对象的第一参考数据和第二参考数据包括:
[0015] 获取参考对象;
[0016] 从所述参考对象中获取参考图像;W及
[0017] 对所述参考图像进行特征提取,W获得所述第一参考数据和所述第二参考数据。
[0018] 优选的,利用尺度不变特征转换算法对所述参考图像进行特征提取。
[0019] 优选的,所述第一参考数据和所述第二参考数据分别为所述参考图像的特征描述 子和相应的特征点。
[0020] 优选的,利用尺度不变特征转换算法对所述待匹配图像进行特征提取。
[0021] 优选的,从所述第一待匹配数据中获取第Ξ待匹配数据包括:
[0022] 设定良好匹配距离阔值;
[0023] 利用快速最近邻逼近捜索函数库匹配算法计算所述第一待匹配数据与所述相应 第一参考数据的匹配距离;W及
[0024] 将所述匹配距离小于所述良好匹配距离阔值的所述第一待匹配数据确定为所述 第Ξ待匹配数据。
[00巧]优选的,利用随机抽样一致算法中的变换矩阵获取算法获取关于所述第Ξ待匹配 数据与所述第二参考数据的匹配矩阵,所述匹配矩阵为仿射变换矩阵。
[00%] 优选的,所述第一待匹配数据和第二待匹配数据分别为所述待匹配图像的特征描 述子和相应的特征点。
[0027] 优选的,所述待检测对象和所述参考对象还具有字符串,则所述方法还包括:
[0028] 获取所述参考对象的参考特征字符串文件;
[0029] 从所述待检测对象中获取待匹配特征字符串文件;W及
[0030] 对所述待匹配特征字符串文件与所述参考对象的参考特征字符串文件进行比对, 并根据比对结果产生字符串匹配检测结果。
[0031] 优选的,根据所述图像匹配检测结果产生对象匹配检测结果包括:
[0032] 根据所述图像匹配检测结果和所述字符串匹配检测结果的结合产生对象匹配检 测结果。
[0033] 优选的,若所述图像匹配检测结果和所述字符串匹配检测结果均为不相似,则产 生对象匹配检测结果为不相似;若所述图像匹配检测结果和所述字符串匹配检测结果至少 有一个为相似,则产生对象匹配检测结果为相似。
[0034] 优选的,所述待检测对象和所述参考对象所具有的字符串包括字母、文字及数字 字符中的一种或任意组合。
[0035] 优选的,所述待检测对象为待检测的软件,所述参考对象为参考软件。
[0036] 优选的,所述待检测对象和所述参考对象采用爬虫技术获取。
[0037] 优选的,所述待匹配图像为所述待检测软件的图标,所述参考图像为参考软件的 图标。
[0038] 优选的,所述待匹配特征字符串文件为所述待检测软件的特征字符串文件,所述 待检测软件的特征字符串文件包括:所述待检测软件的签名、证书、包名、应用名、资源文 件、全局配置文件、源代码及引用库中的一种或任意组合;所述参考特征字符串文件为参考 软件的特征字符串文件,所述参考软件的特征字符串文件包括:所述参考软件的签名、证 书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合。
[0039] 优选的,所述待检测软件的特征字符串文件通过反编译工具解析所述待检测软件 获取,所述参考软件的特征字符串文件通过反编译工具解析所述参考软件获取。
[0040] 本申请另一方面还提供一种用于对具有图像的对象进行匹配检测的设备,其中, 所述设备包括:
[0041] 第一装置,用于获取参考对象及所述参考对象的第一参考数据和第二参考数据;
[0042] 第二装置,用于获取待检测对象,并从所述待检测对象中获取待匹配图像;
[0043] 第Ξ装置,用于对所述待匹配图像进行特征提取,W获得第一待匹配数据和第二 待匹配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,W从所述第一待匹 配数据中获取第Ξ待匹配数据;
[0044] 第四装置,用于获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配矩阵;
[0045] 第五装置,用于通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果;
[0046] 第六装置,用于根据所述图像匹配检测结果产生对象匹配检测结果。
[0047] 优选的,所述第一装置包括:
[0048] 第一单元,用于获取参考对象;
[0049] 第二单元,用于从所述参考对象中获取参考图像;W及
[0050] 第Ξ单元,用于对所述参考图像进行特征提取,W获得所述第一参考数据和所述 第二参考数据。
[0051] 优选的,所述第Ξ单元利用尺度不变特征转换算法对所述参考图像进行特征提 取。
[0052] 优选的,所述第一参考数据和所述第二参考数据分别为所述参考图像的特征描述 子和相应的特征点。
[0053] 优选的,所述第Ξ装置利用尺度不变特征转换算法对所述待匹配图像进行特征提 取。
[0054] 优选的,所述第Ξ装置从所述第一待匹配数据中获取第Ξ待匹配数据包括:
[0055] 设定良好匹配距离阔值;
[0056] 利用快速最近邻逼近捜索函数库匹配算法计算所述第一待匹配数据与所述相应 第一参考数据的匹配距离;W及
[0057] 将所述匹配距离小于所述良好匹配距离阔值的所述第一待匹配数据确定为所述 第Ξ待匹配数据。
[0058] 优选的,所述第四装置利用随机抽样一致算法中的变换矩阵获取算法获取关于所 述第Ξ待匹配数据与所述第二参考数据的匹配矩阵,所述匹配矩阵为仿射变换矩阵。
[0059] 优选的,所述第一待匹配数据和第二待匹配数据分别为所述待匹配图像的特征描 述子和相应的特征点。
[0060] 优选的,所述待检测对象和所述参考对象还具有字符串,则所述设备还包括:
[0061] 第屯装置,用于获取所述参考对象的参考特征字符串文件;
[0062] 第八装置,用于从所述待检测对象中获取待匹配特征字符串文件;W及
[0063] 第九装置,用于对所述待匹配特征字符串文件与所述参考对象的参考特征字符串 文件进行比对,并根据比对结果产生字符串匹配检测结果。
[0064] 优选的,所述第六装置根据所述图像匹配检测结果和所述字符串匹配检测结果的 结合产生对象匹配检测结果。 阳〇化]优选的,若所述图像匹配检测结果和所述字符串匹配检测结果均为不相似,则所 述第六装置产生对象匹配检测结果为不相似;若所述图像匹配检测结果和所述字符串匹配 检测结果至少有一个为相似,则所述第六装置产生对象匹配检测结果为相似。
[0066] 优选的,所述待检测对象和所述参考对象所具有的字符串包括字母、文字及数字 字符中的一种或任意组合。
[0067] 优选的,所述待检测对象为待检测的软件,所述参考对象为参考软件。
[0068] 优选的,所述待检测对象和所述参考对象采用爬虫技术获取。
[0069] 优选的,所述待匹配图像为所述待检测软件的图标,所述参考图像为参考软件的 图标。
[0070] 优选的,所述待匹配特征字符串文件为所述待检测软件的特征字符串文件,所述 待检测软件的特征字符串文件包括:所述待检测软件的签名、证书、包名、应用名、资源文 件、全局配置文件、源代码及引用库中的一种或任意组合;所述参考特征字符串文件为参考 软件的特征字符串文件,所述参考软件的特征字符串文件包括:所述参考软件的签名、证 书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合。
[0071] 优选的,所述待检测软件的特征字符串文件通过反编译工具解析所述待检测软件 获取,所述参考软件的特征字符串文件通过反编译工具解析所述参考软件获取。
[0072] 与现有技术相比,本申请所述匹配检测的方法及设备通过获取将待检测对象的图 像和参考对象的图像进行特征提取并对特征提取获得的数据进行匹配检测,产生图像匹配 检测结果,进而根据图像匹配检测结果产生对象匹配检测结果。进一步的,在进行匹配检测 的过程,利用尺度不变特征转换算法结合快速最近邻逼近捜索函数库匹配算法进行特征提 取,并利用随机抽样一致算法中的变换矩阵获取算法获取关于所述第Ξ待匹配数据与所述 第二参考数据的匹配矩阵。通过快速最近邻逼近捜索函数库匹配算法选择良好的匹配对, 保留了几何位置的特征点,利用特征点在图片中的位置信息来补充描述子,从而在计算匹 配算法中所设及的仿射变换的矩阵时,对其中各个维度的变换值进行阔值限定从而去掉扰 动过大的匹配对,保留好的匹配对,使利用利用尺度不变特征转换算法获得的描述子与特 征点结合的方法能够更精准、快速识别出相似图像。
[0073] 进一步的,本申请所述匹配检测的方法及设备能够基于软件内容本身进行盗版检 巧。。所述方法能够综合考虑软件应用的图标、签名、应用名、包名、组织结构等资源,采用简 单、高校的字符串匹配和快速、准确的图标匹配算法来更快、更准地检测更多的盗版软件。
【附图说明】
[0074] 通过阅读参照W下附图所作的对非限制性实施例所作的详细描述,本申请的其它 特征、目的和优点将会变得更明显:
[00巧]图1示出根据本申请一个方面的一种用于对具有图像的对象进行匹配检测的设 备示意图; 阳076] 图2示出本申请一实施例中第一装置的示意图;
[0077] 图3示出根据本申请一优选的实施例中用于对具有图像的对象进行匹配检测的 设备不意图;
[0078] 图4示出根据本申请一个方面的一种用于对具有图像的对象进行匹配检测方法 的过程示意图;
[0079] 图5示出本申请一实施例中第一装置的示意图;
[0080] 图6示出根据本申请一优选的实施例中用于对具有图像的对象进行匹配检测方 法的过程示意图。
[0081] 图7示出本申请一优选的实施例中作为参考对象的正版软件的相关信息示意图。
[0082] 图8示出本申请一优选的实施例中作为待检测对象的若干待检测软件的相关信 息不意图。
[0083] 附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[0084] 在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个 处理器(CPU)、输入/输出接口、网络接口和内存。
[0085] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/ 或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质 的示例。
[0086] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可W由任何方法 或技术来实现信息存储。信息可W是计算机可读指令、数据结构、程序的模块或其他数据。 计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、 动态随机存取存储器值RAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电 可擦除可编程只读存储器巧EPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘值VD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性 存储设备或任何其他非传输介质,可用于存储可W被计算设备访问的信息。按照本文中的 界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信 号和载波。
[0087] 图1示出根据本申请一个方面的一种用于对具有图像的对象进行匹配检测的设 备示意图。所述设备1包括第一装置101、第二装置102、第Ξ装置103、第四装置104、第五 装置105和第六装置106。
[0088] 其中,所述第一装置101用于获取参考对象及所述参考对象的第一参考数据和第 二参考数据;所述第二装置102用于获取待检测对象,并从所述待检测对象中获取待匹配 图像;所述第Ξ装置103用于对所述待匹配图像进行特征提取,W获得第一待匹配数据和 第二待匹配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,W从所述第一 待匹配数据中获取第Ξ待匹配数据;所述第四装置104用于获取关于所述第Ξ待匹配数据 与所述第二参考数据的匹配矩阵;所述第五装置105用于通过检测所述匹配矩阵的各个维 度的值产生图像匹配检测结果;W及所述第六装置106用于跟据所述图像匹配检测结果产 生对象匹配检测结果。
[0089] 本申请所述设备用于针对具有图像的对象进行匹配检测,通过对待检测对象的图 像与参考对象的图像进行匹配检测,来确定关于待检测对象与参考的对象匹配检测结果, W进一步确定检测对象的其他信息。
[0090] 具体的,第一装置101获取参考对象及所述参考对象的第一参考数据和第二参考 数据;其中,所述参考对象具有图像,所述第一参考数据和第二参考数据为所述参考对象的 图像所具有的数据。
[0091] 图2示出本申请一实施例中第一装置的示意图,所述第一装置101包括第一单元 1001、第二单元1002和第Ξ单元1003。其中,所述第一单元1001获取参考对象,所述第二 单元1002从所述参考对象中获取参考图像,所述第Ξ单元1003对所述参考图像进行特征 提取,W获得所述第一参考数据和所述第二参考数据。在较佳的实施例中,所述第Ξ单元 1003利用尺度不变特征转换算法(Scale-Invariant Fea1:ure Transform, SIFT)对所述参 考图像进行特征提取。所述第一参考数据和所述第二参考数据分别为所述参考图像的特征 描述子和相应的特征点。
[0092] 在此,所述尺度不变特征转换(Scale-invariant fea1:ure transform, SIFT),是 用于图像处理领域的一种描述子。运种描述具有尺度不变性,可在图像中检测出特征点,是 一种局部特征描述子的图像匹配检测方法。
[0093] 其中,第Ξ单元1003利用尺度不变特征转换算法对所述参考图像进行特征提取 主要包括W下步骤:
[0094] -对参考图像构建尺度空间,检测极值点,获得尺度不变性; 阳0巧]-特征点过滤并进行精确定位;
[0096] -为特征点分配方向值;
[0097] -生成与特征点相应的特征描述子。
[0098] 接着,所述第二装置102获取待检测对象,并从所述待检测对象中获取待匹配图 像。
[0099] 接着,所述第Ξ装置103对所述待匹配图像进行特征提取,W获得第一待匹配数 据和第二待匹配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,W从所述 第一待匹配数据中获取第Ξ待匹配数据。
[0100] 优选的,所述第Ξ装置103利用尺度不变特征转换算法(Scale-Invariant Fea化re Transform, SIFT)对所述待匹配图像进行特征提取,W获得第一待匹配数据和第 二待匹配数据,则所述第一待匹配数据和第二待匹配数据分别为所述待匹配图像的特征描 述子和相应的特征点。 阳101] 具体地,所述第Ξ装置103利用尺度不变特征转换算法对所述待匹配图像进行特 征提取主要包括W下步骤:
[0102]-对待匹配图像构建尺度空间,检测极值点,获得尺度不变性; 阳103]-特征点过滤并进行精确定位;
[0104]-为特征点分配方向值;
[01化]-生成与特征点相应的特征描述子。
[0106] 接着,所述第Ξ装置103对所述第一待匹配数据与所述第一参考数据进行比对, W从所述第一待匹配数据中获取第Ξ待匹配数据。 阳107] 当所述待匹配图像的第一待匹配数据和第二待匹配数据生成W后,就可W采用第 一待匹配数据的距离作为参考图像和待匹配图像的相似性判定度量。取参考图像中某个第 一参考数据,通过遍历找到待匹配图像中的距离最近的第一待匹配数据,如果该第一待匹 配数据与该第一参考数据的最近距离小于某个良好匹配距离阔值,则判定为一对匹配点, 则第一待匹配数据选择为第Ξ待匹配数据。
[0108] 具体地,所述第Ξ装置103从所述第一待匹配数据中获取第Ξ待匹配数据包括:
[0109] -设定良好匹配距离阔值化eta,所述良好匹配距离阔值化eta可W根据具体的匹 配过程进行动态设定,例如但不限于:良好匹配距离阔值化eta可W选择匹配过程中最大 距离值和最小距离值的平均值;
[0110] -利用快速最近邻逼近捜索函数库匹配算法(Fast Approx化arest Nei曲bor Classification, Flann)计算所述第一待匹配数据与所述相应第一参考数据的匹配距离; 在此,所述快速最近邻逼近捜索函数库是一种用于快速捜索近似近邻的开源算法库度SD 认可),已被集成到OpenCV库(Open Source Computer Vision Library,是一个基于开源 发行的跨平台计算机视觉库,可W运行在Linux、Windows和Mac OS等操作系统上,由一系 列C函数和少量C++类构成,同时提供了 IMhon、Ruby、MTLAB等语言的接口,实现了图像 处理和计算机视觉方面的很多通用算法的数据库)。本文所述方法可W直接使用的Flann 匹配算法,所述快速最近邻逼近捜索函数库匹配算法可W直接利用化enCV中的Flann匹配 算法,直接利用K-d树、随机树、层次K-means树等辅助数据结构实现高维数据的快速捜索。 将所述匹配距离小于所述良好匹配距离阔值的所述第一待匹配数据确定为所述第Ξ待匹 配数据,所述第Ξ待匹配数据是优选的第一待匹配数据,第Ξ待匹配数据能够更有利于后 续进行匹配检测工作。
[0111] 由于不同的图标有不同的特点,提取出的SIFT特征的分布也不一样,例如对于具 有很多角点的图像,SIFT特征较多而且很规范,匹配度较好(即距离较小)。对于圆形的图 像的角点较少,SIFT特征点也较少,匹配度较差(即距离较大)。则此时,可W根据图像的 具体情况,动态设定良好匹配距离阔值。因此,距离小于设定的良好匹配距离阔值theta的 才算是良好的匹配对,在后续的计算中,我们只考虑符合良好匹配的特征点构成的集合Ml 和M2,而忽略其它。运样能有效忽略一些异常点。
[0112] 接着,第四装置104获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配矩 阵。
[0113] 优选的,所述第四装置104利用随机抽样一致算法(Random Sample Consensus, RANSAC)中的变换矩阵获取算法获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配 矩阵,且所述匹配矩阵为仿射变换矩阵。
[0114] 在此,所述仿射变换矩阵是仿射变换中的一种矩阵,仿射变换是一个向量空间中 的向量通过仿射矩阵变换为另一个空间中的向量,包括旋转、平移、缩放。仿射变换矩阵形 式例如但不限于如下: 阳115]
[0116] 仿射变换矩阵有九个维度(图中示例表示Ξ个维度为固定值,其他六个维度为自 由维度),理论上选择至少Ξ对不共线的SIFT的特征点就可W解出所有的参数。仿射变换 矩阵中mO、ml、m3、m4代表旋转和缩放变换,而m2、m5则是平移变换分量。例如,针对检测 图像大小较小情况,(基本上都是几十K *几十K的大小),而且经过交叉校验(不同阔值 的重复实验)后将mO、ml、m3、m4的阔值设定为0. 6, m2、m5的阔值设定为30,当然各个维 度阔值的设定仅W举例的形式给出,但并不限制于此。
[0117] 接着,第五装置105通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结 果。
[0118] 具体地,第五装置105首先设定匹配矩阵中若干维度的阔值,例如对于仿射变换 矩阵可W有九个维度的阔值,然后,根据仿射变换规则和应用需要,分别对所述匹配矩阵的 各个维度的值与各个维度的阔值进行检测,如果各个维度的值均大于该维度的阔值,则说 明待检测图像与参考对象的参考图像的匹配差异大,则产生图像匹配检测结果为不相似; 如果各个维度的值都在相应阔值的范围内,则产生图像匹配检测结果为相似。
[0119] 接着,第六装置106根据所述图像匹配检测结果产生对象匹配检测结果。在本实 施例中,当图像匹配检测结果为不相似,则产生待检测对象和参考对象的对象匹配检测结 果为不相似,当图像匹配检测结果为相似,则产生待检测对象和参考对象的对象匹配检测 结果为相似。
[0120] 图3示出根据本申请一优选的实施例中用于对具有图像的对象进行匹配检测的 设备示意图。所述待检测对象和所述参考对象不仅具有图像,还具有字符串。所述设备1 包括第一装置10Γ、第二装置102'、第Ξ装置103'、第四装置104'、第五装置105'、第六装 置106'、第屯装置107'、第八装置108'和第九装置109'。 阳121] 在此,所述待检测对象和所述参考对象所具有的字符串可W是字母、文字及数字 字符中的一种或任意组合。 阳122] 其中,所述第屯装置107'获取所述参考对象的参考特征字符串文件;所述第八装 置108'用于从所述待检测对象中获取待匹配特征字符串文件;所述第九装置109'用于对 所述待匹配特征字符串文件与所述参考对象的参考特征字符串文件进行比对,并根据比对 结果产生字符串匹配检测结果。
[0123] 具体的,所述第屯装置107'和第八装置108'可W分别通过解析参考对象和待检 测对象,W获取参考特征字符串文件和待匹配特征字符串文件。所述第九装置109'采用字 符串相似度矩阵算法进行比对,其中字符串相似度矩阵算法的基本单位是字符串,具体步 骤如下:
[0124] -采用非字母、非数字字符对待匹配特征字符串文件si和参考对象的参考特征字 符串s2进行划分。例如,给定两个长度相等的任意字符串Strl ="油cddacbcb"和Str2 ="aadaccbddc",对两个字符串在任意的位置比对: 阳125]
(字符中间没有空格)。 阳126] 字符串的长度记为n(例如,n= 10),相同字母(d、a、c)的个数记为m(例如,m = 3),两字符串重叠的个数记为r(例如,r = 8)。
[0127] -计算待匹配特征字符串文件si和参考对象的参考特征字符串s2的重叠率和匹 配率,其中重叠率两个长度相等的(包括在长度的短的字符串中加入空格,使其长度相等 的情况)字符串在字符串移动匹配的过程中,重叠字符串的个数与字符串的长度的比率, 即L = r/n,匹配率为两个长度相等的(包括在长度的短的字符串中加入空格,使其长度相 等的情况)字符串在字符串移动匹配的过程中,对应位置字符相同的个数与字符串长度的 比率,即Μ = m/n。
[0128] -设定参数alpha和参数beta的值,并根据公式:alpha*匹配率+beta*重复率计 算待匹配特征字符串文件si和参考对象的参考特征字符串s2的相似度,其中,参数al地a 和参数beta可W根据具体检测要求进行具体设定,不再寶述。
[0129] -设定相似度阔值theta。如果相似度小于相似度阔值theta,则待匹配特征字符 串文件si和参考对象的参考特征字符串s2不相似;否则,两个字符串相似。
[0130] 然后,所述第六装置106'根据所述图像匹配检测结果和所述字符串匹配检测结果 的结合产生对象匹配检测结果。具体地,若所述图像匹配检测结果和所述字符串匹配检测 结果均为不相似,则产生对象匹配检测结果为不相似,若所述图像匹配检测结果和所述字 符串匹配检测结果至少有一个为相似,则产生对象匹配检测结果为相似。 阳131] 在此,所述设备1包括第一装置101'、第二装置102'、第Ξ装置103'、第四装置 104'及第五装置105'与图1所示出的第一装置101、第二装置102、第Ξ装置103、第四装 置104及第五装置105的内容相同或基本相同,在此W引用的方式包含于此,不再寶述。 阳132] 所述设备在对所述待检测对象和所述参考对象进行匹配检测的过程中,不仅通过 待检测对象和所述参考对象的图像进行匹配检测,还结合对待检测对象和所述参考对象的 字符串进行匹配检测,通过对图像和字符串同时进行匹配检测,能够提高对待检测对象和 参考对象的匹配检测的准确性。
[0133] 在本申请一优选的实施例中,所述具有图像和字符串的对象可W是软件,待检测 对象为待检测的疑似盗版软件,参考软件可W是正版软件。
[0134] 在此,软件是一系列按照特定顺序组织的计算机数据和指令的集合,软件的内容 除了基本的程序指令外,软件本身具有相关识别信息,例如软件签名、软件名称及图标等。 正版软件是指获取正规厂家授权,合法的直接使用或间接授权使用的软件。盗版软件是指 在未经版权所有人同意或授权的情况下,对正版软件进行复制、再分发的违法软件。
[0135] 进一步的,所述待匹配图像为所述待检测软件的图标,所述参考图像为参考软件 的图标。所述待匹配特征字符串文件为所述待检测软件的特征字符串文件,所述待检测软 件的特征字符串文件包括:所述待检测软件的签名、证书、包名、应用名、资源文件、全局配 置文件、源代码及引用库中的一种或任意组合;所述参考特征字符串文件为参考软件的特 征字符串文件,所述参考软件的特征字符串文件包括:所述参考软件的签名、证书、包名、应 用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合。所述待检测软件的 特征字符串文件通过反编译工具解析所述待检测软件获取,所述参考软件的特征字符串文 件通过反编译工具解析所述参考软件获取。
[0136] 为使描述更清楚,W下结合图1~图3, W软件作为具有图像的对象为例,进一步 说明设备进行匹配检测过程。当然,本领域技术人员应能理解上述具有图像的对象为软件 为较佳的应用,其他现有的或今后可能出现的具有图像的对象如可适用于本申请,也应包 含在本申请保护范围W内,并在此W引用方式包含于此。
[0137] 目前,行业普遍通过建立白名单规则收录正规软件厂商的正版软件,每个正版软 件都具有唯一的签名,该唯一签名对外是通过加密公布的。现有的正版软件及疑似待检测 软件的数量和种类庞大而繁杂。
[0138] 具体的,第一装置10Γ首先获取正版软件及所述正版软件的第一参考数据和第二 参考数据,第一装置101对正版软件的获取可W从已有的正版软件的数据库中获取。或者, 直接从提供正版软件方获取正版软件。较佳的,所述第一装置10 Γ包括第一单元100 Γ、第 二单元1002'和第Ξ单元1003'(未示出)。具体地,第一装置101'的第一单元1001'利 用爬虫技术从应用官方网站、网络应用市场或研究机构等爬取正版软件、或通过终端收集 正版软件、或直接向应用的官方机构索取正版软件,从而建立正版软件的数据库。第一装置 10Γ的第二单元1002'获取正版软件的图标。第一装置的第Ξ单元1003'能够对第二单元 1002'获取的图标进行特征提取,利用尺度不变特征转换算法(Scale-Invariant Fea化re 化ansform,SIFT)进行特征提取,获得正版软件的图标中的特征描述子和相应的特征点分 别作为第一参考数据和第二参考数据。在此,第一装置的第Ξ单元1003'对第二单元1002' 获取的图标进行特征提取过程与图2所示出的装置的第Ξ单元1003利用尺度不变特征转 换算法对所述参考图像进行特征提取过程的内容相同或基本相同,在此W引用的方式包含 于此,不再寶述。
[0139] 接着,第二装置102'利用爬虫技术从提供应用的网站、网络应用市场或研究机构 等爬取、或通过终端进行收集,W获取待检测的疑似盗版软件。
[0140] 所述第Ξ装置103'利用尺度不变特征转换算法(Scale-Invariant化日化的 Transform, SIFT)对所述待检测软件的图标进行特征提取,W获得第一待匹配数据和第二 待匹配数据,则所述第一待匹配数据和第二待匹配数据分别为所述待检测软件的图标的特 征描述子和相应的特征点。 阳141] 在此,所述第二装置103'利用尺度不变特征转换算法对所述待检测软件的图标进 行特征提取的过程与图1中第Ξ装置103利用尺度不变特征转换算法对所述待检测图像进 行特征提取的过程相同或基本相同,为简明起见,W包含的方式包含于此,不再寶述。
[0142] 接着,所述第Ξ装置103'对所述第一待匹配数据与所述第一参考数据进行比对, W从所述第一待匹配数据中获取第Ξ待匹配数据。当所述待匹配图像的第一待匹配数据和 第二待匹配数据生成W后,就可W采用第一待匹配数据的距离作为正版软件的图标和待检 测软件的图标的相似性判定度量。取待检测软件的图标中某个第一参考数据,通过遍历找 到待检测软件的图标中的距离最近的第一待匹配数据,如果该第一待匹配数据与该第一参 考数据的最近距离小于某个良好匹配距离阔值,则判定为一对匹配点,则第一待匹配数据 选择为第Ξ待匹配数据。 阳143] 在此,所述第Ξ装置103'从所述第一待匹配数据中获取第Ξ待匹配数据与图1示 出的第Ξ装置103从所述第一待匹配数据中获取第Ξ待匹配数据的过程相同或基本相同, 为简明起见,W包含的方式包含于此,不再寶述。
[0144] 接着,第四装置104'获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配 矩阵。优选的,所述第四装置104'利用随机抽样一致算法(Random Sample Consensus, RANSAC)中的变换矩阵获取算法获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配 矩阵,且所述匹配矩阵为仿射变换矩阵。
[0145] 接着,第五装置105'通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结 果。 阳146] 在此,所述第四装置104'获取关于所述第Ξ待匹配数据与所述第二参考数据的匹 配矩阵与图1示出的所述第四装置104获取关于所述第Ξ待匹配数据与所述第二参考数据 的匹配矩阵的过程相同或基本相同,第五装置105'通过检测所述匹配矩阵的各个维度的值 产生图像匹配检测结果与图1示出的第五装置105通过检测所述匹配矩阵的各个维度的值 产生图像匹配检测结果,为简明起见,W包含的方式包含于此,不再寶述。 阳147] 同时,所述第屯装置107'可W采用反编译工具对爬取到的参考图像进行解析,解 析能够获取字符串文件,例如图标,资源文件、全局配置文件、源代码及引用库等相关数据, 还能够根据白名单规则收集正版软件白名单列表,例如软件包名、签名及应用名等。其中, 反编译工具采用的是可供商用的开源工具,例如用于Amlroid(安卓)平台的Dexdump库 (该库是An化oid解析Dex的源码,是随An化oid安卓平台一起开源的)或其他反编译工 具。
[0148] 接着,所述第八装置108'可W采用反编译工具对爬取到的待检测软件进行解析, 解析能够获取字符串文件,例如资源文件、全局配置文件、源代码及引用库等相关数据,W 及软件包名、签名及应用名等。其中,反编译工具采用的是可供商用的开源工具,例如用于 An化oid (安卓)平台的Dexdump库(该库是An化oid解析Dex的源码,是随An化oid安卓 平台一起开源的)或其他反编译工具。
[0149] 所述第九装置109'对所述待匹配特征字符串文件与所述参考对象的参考特征字 符串文件进行比对,并根据比对结果产生字符串匹配检测结果。具体地,所述第九装置109' 采用字符串相似度矩阵算法进行比对的过程与图3所示出的第九装置109'采用字符串相 似度矩阵算法进行比对的过程内容相同或基本相同,故不再寶述。
[0150] 然后,所述第六装置106'根据所述图像匹配检测结果和所述字符串匹配检测结果 的结合产生对象匹配检测结果。具体地,若所述图像匹配检测结果和所述字符串匹配检测 结果均为不相似,则产生对象匹配检测结果为不相似,若所述图像匹配检测结果和所述字 符串匹配检测结果至少有一个为相似,则产生对象匹配检测结果为相似。进而,通过对待检 测的疑似盗版软件所具有的图标及字符串与正版软件所具有的图标及字符串进行匹配检 巧。,产生图像匹配检测结果和字符串匹配检测结果,并根据图像匹配检测结果确定待检测 的疑似盗版软件是否为盗版软件及是哪一款正版软件的盗版软件,从而在软件安装时,即 可警示用户,进而避免用户因使用盗版软件而带来的隐私信息或财产的损失。 阳151] 图4示出根据本申请一个方面的一种用于对具有图像的对象进行匹配检测方法 的过程示意图。所述方法包括步骤SOI、步骤S02、步骤S03、步骤S04、步骤S05及步骤S06。 阳152] 其中,在步骤SOI中:获取参考对象及所述参考对象的第一参考数据和第二参考 数据;在步骤S02中:获取待检测对象,并从所述待检测对象中获取待匹配图像;在步骤 S03中:对所述待匹配图像进行特征提取,W获得第一待匹配数据和第二待匹配数据,并对 所述第一待匹配数据与所述第一参考数据进行比对,W从所述第一待匹配数据中获取第Ξ 待匹配数据;在步骤S04中:获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配矩 阵;在步骤S05中:通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果;在步骤 S06中:跟据所述图像匹配检测结果产生对象匹配检测结果。
[0153] 本申请所述方法用于针对具有图像的对象进行匹配检测,通过对待检测对象的图 像与参考对象的图像进行匹配检测,来确定关于待检测对象与参考的对象匹配检测结果, W进一步确定检测对象的其他信息。 阳154] 具体的,在步骤SOI中获取参考对象及所述参考对象的第一参考数据和第二参考 数据;其中,所述参考对象具有图像,所述第一参考数据和第二参考数据为所述参考对象的 图像所具有的数据。 阳155] 图5示出本申请一实施例中第一装置的示意图,在步骤SOI中包括步骤S101、步 骤S102及步骤S103。其中,在步骤S101中:获取参考对象,在步骤S102中:从所述参考对 象中获取参考图像,在步骤S103中:对所述参考图像进行特征提取,W获得所述第一参考 数据和所述第二参考数据。在较佳的实施例中,在步骤S103中利用尺度不变特征转换算法 (Scale-Invariant Fea1:ure Transform, SIFT)对所述参考图像进行特征提取。所述第一 参考数据和所述第二参考数据分别为所述参考图像的特征描述子和相应的特征点。 阳?56]在此,所述尺度不变特征转换(Scale-invariant fea1:ure transform, SIFT),是 用于图像处理领域的一种描述子。运种描述具有尺度不变性,可在图像中检测出特征点,是 一种局部特征描述子的图像匹配检测方法。
[0157] 其中,在步骤S103利用尺度不变特征转换算法对所述参考图像进行特征提取主 要包括W下步骤:
[0158] -对参考图像构建尺度空间,检测极值点,获得尺度不变性; 阳159]-特征点过滤并进行精确定位;
[0160]-为特征点分配方向值; 阳161]-生成与特征点相应的特征描述子。 阳162] 接着,在步骤S02中,获取待检测对象,并从所述待检测对象中获取待匹配图像。
[0163] 接着,在步骤S03中,对所述待匹配图像进行特征提取,W获得第一待匹配数据和 第二待匹配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,W从所述第一 待匹配数据中获取第Ξ待匹配数据。
[0164] 优选的,在步骤S03,利用尺度不变特征转换算法(Scale-Invariant Fea化re Transform, SIFT)对所述待匹配图像进行特征提取,W获得第一待匹配数据和第二待匹配 数据,则所述第一待匹配数据和第二待匹配数据分别为所述待匹配图像的特征描述子和相 应的特征点。
[0165] 具体地,在步骤S03利用尺度不变特征转换算法对所述待匹配图像进行特征提取 主要包括W下步骤:
[0166] -对待匹配图像构建尺度空间,检测极值点,获得尺度不变性; 阳167]-特征点过滤并进行精确定位;
[0168] -为特征点分配方向值;
[0169] -生成与特征点相应的特征描述子。
[0170] 接着,在步骤S03,对所述第一待匹配数据与所述第一参考数据进行比对,W从所 述第一待匹配数据中获取第Ξ待匹配数据。 阳171] 当所述待匹配图像的第一待匹配数据和第二待匹配数据生成W后,就可W采用第 一待匹配数据的距离作为参考图像和待匹配图像的相似性判定度量。取参考图像中某个第 一参考数据,通过遍历找到待匹配图像中的距离最近的第一待匹配数据,如果该第一待匹 配数据与该第一参考数据的最近距离小于某个良好匹配距离阔值,则判定为一对匹配点, 则第一待匹配数据选择为第Ξ待匹配数据。 阳172] 具体地,在步骤S03从所述第一待匹配数据中获取第Ξ待匹配数据包括:
[0173] -设定良好匹配距离阔值化eta,所述良好匹配距离阔值化eta可W根据具体的匹 配过程进行动态设定,例如但不限于:良好匹配距离阔值化eta可W选择匹配过程中最大 距离值和最小距离值的平均值;
[0174] -利用快速最近邻逼近捜索函数库匹配算法(Fast Approx化arest Nei曲bor Classification, Flann)计算所述第一待匹配数据与所述相应第一参考数据的匹配距离; 在此,所述快速最近邻逼近捜索函数库是一种用于快速捜索近似近邻的开源算法库度SD 认可),已被集成到OpenCV库(Open Source Computer Vision Library,是一个基于开源 发行的跨平台计算机视觉库,可W运行在Linux、Windows和Mac OS等操作系统上,由一系 列C函数和少量C++类构成,同时提供了 IMhon、Ruby、MTLAB等语言的接口,实现了图像 处理和计算机视觉方面的很多通用算法的数据库)。本文所述方法可W直接使用的Flann 匹配算法,所述快速最近邻逼近捜索函数库匹配算法可W直接利用化enCV中的Flann匹配 算法,直接利用K-d树、随机树、层次K-means树等辅助数据结构实现高维数据的快速捜索。 将所述匹配距离小于所述良好匹配距离阔值的所述第一待匹配数据确定为所述第Ξ待匹 配数据,所述第Ξ待匹配数据是优选的第一待匹配数据,第Ξ待匹配数据能够更有利于后 续进行匹配检测工作。 阳175] 由于不同的图标有不同的特点,提取出的SIFT特征的分布也不一样,例如对于具 有很多角点的图像,SIFT特征较多而且很规范,匹配度较好(即距离较小)。对于圆形的图 像的角点较少,SIFT特征点也较少,匹配度较差(即距离较大)。则此时,可W根据图像的 具体情况,动态设定良好匹配距离阔值。因此,距离小于设定的良好匹配距离阔值theta的 才算是良好的匹配对,在后续的计算中,我们只考虑符合良好匹配的特征点构成的集合Ml 和M2,而忽略其它。运样能有效忽略一些异常点。
[0176] 接着,在步骤S04中,获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配 矩阵。
[0177] 优选的,在步骤S04中,利用随机抽样一致算法(Random Sample Consensus, RANSAC)中的变换矩阵获取算法获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配 矩阵,且所述匹配矩阵为仿射变换矩阵。
[0178] 在此,所述仿射变换矩阵是仿射变换中的一种矩阵,仿射变换是一个向量空间中 的向量通过仿射矩阵变换为另一个空间中的向量,包括旋转、平移、缩放。仿射变换矩阵形 式例如但不限于如下: 阳 179]
[0180] 仿射变换矩阵有九个维度(图中示例表示Ξ个维度为固定值,其他六个维度为自 由维度),理论上选择至少Ξ对不共线的SIFT的特征点就可W解出所有的参数。仿射变换 矩阵中mO、ml、m3、m4代表旋转和缩放变换,而m2、m5则是平移变换分量。例如,针对检测 图像大小较小情况,(基本上都是几十K *几十K的大小),而且经过交叉校验(不同阔值 的重复实验)后将mO、ml、m3、m4的阔值设定为0. 6, m2、m5的阔值设定为30,当然各个维 度阔值的设定仅W举例的形式给出,但并不限制于此。 阳181] 接着,在步骤S05中通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结 果。
[0182] 具体地,步骤S05首先设定匹配矩阵中若干维度的阔值,例如对于仿射变换矩阵 可W有九个维度的阔值,然后,根据仿射变换规则和应用需要,分别对所述匹配矩阵的各个 维度的值与各个维度的阔值进行检测,如果各个维度的值均大于该维度的阔值,则说明待 检测图像与参考对象的参考图像的匹配差异大,则产生图像匹配检测结果为不相似;如果 各个维度的值都在相应阔值的范围内,则产生图像匹配检测结果为相似。 阳183] 接着,在步骤S06中,根据所述图像匹配检测结果产生对象匹配检测结果。在本实 施例中,当图像匹配检测结果为不相似,则产生待检测对象和参考对象的对象匹配检测结 果为不相似,当图像匹配检测结果为相似,则产生待检测对象和参考对象的对象匹配检测 结果为相似。
[0184] 图6示出根据本申请一优选的实施例中用于对具有图像的对象进行匹配检测方 法的过程示意图。所述待检测对象和所述参考对象不仅具有图像,还具有字符串。所述方 法包括步骤SOΓ、步骤S02'、步骤S03'、步骤S04'、步骤S05'、步骤S06'、步骤S07'、步骤 S08'及步骤S09'。
[0185] 在此,所述待检测对象和所述参考对象所具有的字符串可W是字母、文字及数字 字符中的一种或任意组合。 阳186] 其中,在步骤S07'中,获取所述参考对象的参考特征字符串文件;在步骤S08'中, 从所述待检测对象中获取待匹配特征字符串文件;所述在步骤S09'中,对所述待匹配特征 字符串文件与所述参考对象的参考特征字符串文件进行比对,并根据比对结果产生字符串 匹配检测结果。 阳187] 具体的,步骤S07'和步骤S08'可W分别通过解析参考对象和待检测对象,W获取 参考特征字符串文件和待匹配特征字符串文件。步骤S09'采用字符串相似度矩阵算法进 行比对,其中字符串相似度矩阵算法的基本单位是字符串,具体步骤如下: 阳18引-采用非字母、非数字字符对待匹配特征字符串文件si和参考对象的参考特征字 符串s2进行划分。例如,给定两个长度相等的任意字符串Strl ="油cddacbcb"和Str2 ="aadaccbddc",对两个字符串在任意的位置比对: a b c d d a c- b c b 阳189] $王王王玉王的(字符中间没有空格)。 a a d ?\ c c h d d c 阳190] 字符串的长度记为n(例如,n= 10),相同字母(d、a、c)的个数记为m(例如,m = 3),两字符串重叠的个数记为r(例如,r = 8)。 阳191]-计算待匹配特征字符串文件si和参考对象的参考特征字符串s2的重叠率和匹 配率,其中重叠率两个长度相等的(包括在长度的短的字符串中加入空格,使其长度相等 的情况)字符串在字符串移动匹配的过程中,重叠字符串的个数与字符串的长度的比率, 即L = r/n,匹配率为两个长度相等的(包括在长度的短的字符串中加入空格,使其长度相 等的情况)字符串在字符串移动匹配的过程中,对应位置字符相同的个数与字符串长度的 比率,即Μ = m/n。
[0192]-设定参数alpha和参数beta的值,并根据公式:alpha*匹配率+beta*重复率计 算待匹配特征字符串文件si和参考对象的参考特征字符串s2的相似度,其中,参数al地a 和参数beta可W根据具体检测要求进行具体设定,不再寶述。 阳193]-设定相似度阔值theta。如果相似度小于相似度阔值theta,则待匹配特征字符 串文件si和参考对象的参考特征字符串s2不相似;否则,两个字符串相似。
[0194] 然后,在步骤S06'中,根据所述图像匹配检测结果和所述字符串匹配检测结果的 结合产生对象匹配检测结果。具体地,若所述图像匹配检测结果和所述字符串匹配检测结 果均为不相似,则产生对象匹配检测结果为不相似,若所述图像匹配检测结果和所述字符 串匹配检测结果至少有一个为相似,则产生对象匹配检测结果为相似。 阳1巧]在此,所述步骤SOI'、步骤S02'、步骤S03'、步骤S04'及步骤S05'与图4示出的 步骤SO 1、步骤S02、步骤S03、步骤S04及步骤S05'的内容相同或基本相同,在此W引用的 方式包含于此,不再寶述。 阳196] 所述设备在对所述待检测对象和所述参考对象进行匹配检测的过程中,不仅通过 待检测对象和所述参考对象的图像进行匹配检测,还结合对待检测对象和所述参考对象的 字符串进行匹配检测,通过对图像和字符串同时进行匹配检测,能够提高对待检测对象和 参考对象的匹配检测的准确性。
[0197] 在本申请一优选的实施例中,所述具有图像和字符串的对象可W是软件,待检测 对象为待检测的疑似盗版软件,参考软件可W是正版软件。
[0198] 在此,软件是一系列按照特定顺序组织的计算机数据和指令的集合,软件的内容 除了基本的程序指令外,软件本身具有相关识别信息,例如软件签名、软件名称及图标等。 正版软件是指获取正规厂家授权,合法的直接使用或间接授权使用的软件。盗版软件是指 在未经版权所有人同意或授权的情况下,对正版软件进行复制、再分发的违法软件。
[0199] 进一步的,所述待匹配图像为所述待检测软件的图标,所述参考图像为参考软件 的图标。所述待匹配特征字符串文件为所述待检测软件的特征字符串文件,所述待检测软 件的特征字符串文件包括:所述待检测软件的签名、证书、包名、应用名、资源文件、全局配 置文件、源代码及引用库中的一种或任意组合;所述参考特征字符串文件为参考软件的特 征字符串文件,所述参考软件的特征字符串文件包括:所述参考软件的签名、证书、包名、应 用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合。所述待检测软件的 特征字符串文件通过反编译工具解析所述待检测软件获取,所述参考软件的特征字符串文 件通过反编译工具解析所述参考软件获取。 阳200] 为使描述更清楚,W下结合图1~图3, W软件作为具有图像的对象为例,进一步 说明所述方法进行匹配检测的过程。当然,本领域技术人员应能理解上述具有图像的对象 为软件为较佳的应用,其他现有的或今后可能出现的具有图像的对象如可适用于本申请, 也应包含在本申请保护范围W内,并在此W引用方式包含于此。 阳201]目前,行业普遍通过建立白名单规则收录正规软件厂商的正版软件,每个正版软 件都具有唯一的签名,该唯一签名对外是通过加密公布的。现有的正版软件及疑似待检测 软件的数量和种类庞大而繁杂。 阳202] 具体的,在步骤SOr中,首先获取正版软件及所述正版软件的第一参考数据和第 二参考数据,在步骤sor中,对正版软件的获取可W从已有的正版软件的数据库中获取。 或者,直接从提供正版软件方获取正版软件。较佳的,所述步骤SOr包括步骤S101'、步骤 S102'和步骤S103'(未示出)。具体地,步骤SlOr利用爬虫技术从应用官方网站、网络应 用市场或研究机构等爬取正版软件、或通过终端收集正版软件、或直接向应用的官方机构 索取正版软件,从而建立正版软件的数据库。步骤S102'获取正版软件的图标,步骤S103' 对步骤S102'获取的图标进行特征提取,利用尺度不变特征转换算法(Scale-Invariant Fea化re化ansform,SIFT)进行特征提取,获得正版软件的图标中的特征描述子和相应的 特征点分别作为第一参考数据和第二参考数据。在此,步骤S103'对步骤S102'获取的图 标进行特征提取的过程与图5所示出的步骤S103利用尺度不变特征转换算法对所述参考 图像进行特征提取过程的内容相同或基本相同,在此W引用的方式包含于此,不再寶述。 阳203] 接着,在步骤S02'中,利用爬虫技术从提供应用的网站、网络应用市场或研究机构 等爬取、或通过终端进行收集,W获取待检测的疑似盗版软件。 阳2〇4] 接着,在步骤S03'中,利用尺度不变特征转换算法(Scale-Invariant Fea化re Transform, SIFT)对所述待检测软件的图标进行特征提取,W获得第一待匹配数据和第二 待匹配数据,则所述第一待匹配数据和第二待匹配数据分别为所述待检测软件的图标的特 征描述子和相应的特征点。 阳205] 在此,步骤S03'中利用尺度不变特征转换算法对所述待检测软件的图标进行特征 提取的过程与图4中步骤S03利用尺度不变特征转换算法对所述待检测图像进行特征提取 的过程相同或基本相同,为简明起见,W包含的方式包含于此,不再寶述。 阳206] 接着,在步骤S03'中,对所述第一待匹配数据与所述第一参考数据进行比对,W从 所述第一待匹配数据中获取第Ξ待匹配数据。当所述待匹配图像的第一待匹配数据和第二 待匹配数据生成W后,就可W采用第一待匹配数据的距离作为正版软件的图标和待检测软 件的图标的相似性判定度量。取待检测软件的图标中某个第一参考数据,通过遍历找到待 检测软件的图标中的距离最近的第一待匹配数据,如果该第一待匹配数据与该第一参考数 据的最近距离小于某个良好匹配距离阔值,则判定为一对匹配点,则第一待匹配数据选择 为第Ξ待匹配数据。 阳207] 在此,步骤S03'从所述第一待匹配数据中获取第Ξ待匹配数据与图4示出的步骤 S03从所述第一待匹配数据中获取第Ξ待匹配数据的过程相同或基本相同,为简明起见,W 包含的方式包含于此,不再寶述。 阳20引接着,在步骤S04'获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配矩 阵。优选的,步骤S04'中利用随机抽样一致算法(Random Sample Consensus, RANSAC)中 的变换矩阵获取算法获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配矩阵,且所 述匹配矩阵为仿射变换矩阵。 阳209] 接着,在步骤S05'中,通过检测所述匹配矩阵的各个维度的值产生图像匹配检测 结果。
[0210] 在此,步骤S04'获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配矩阵与 图4示出的步骤S04获取关于所述第Ξ待匹配数据与所述第二参考数据的匹配矩阵的过程 相同或基本相同,步骤S105'通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结 果与图4示出的步骤S05通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果, 为简明起见,W包含的方式包含于此,不再寶述。 阳211] 同时,在步骤S07'中,可W采用反编译工具对爬取到的参考图像进行解析,解析能 够获取字符串文件,例如图标,资源文件、全局配置文件、源代码及引用库等相关数据,还能 够根据白名单规则收集正版软件白名单列表,例如软件包名、签名及应用名等。其中,反编 译工具采用的是可供商用的开源工具,例如用于An化oid (安卓)平台的Dexdump库(该库 是An化oid解析Dex的源码,是随An化oid安卓平台一起开源的)或其他反编译工具。 阳212] 接着,在步骤S08'中,可W采用反编译工具对爬取到的待检测软件进行解析,解 析能够获取字符串文件,例如资源文件、全局配置文件、源代码及引用库等相关数据,W及 软件包名、签名及应用名等。其中,反编译工具采用的是可供商用的开源工具,例如用于 An化oid (安卓)平台的Dexdump库(该库是An化oid解析Dex的源码,是随An化oid安卓 平台一起开源的)或其他反编译工具。
[0213] 在步骤S09'中,对所述待匹配特征字符串文件与所述参考对象的参考特征字符串 文件进行比对,并根据比对结果产生字符串匹配检测结果。具体地,步骤S09'采用字符串 相似度矩阵算法进行比对的过程与图6所示出的步骤S09'采用字符串相似度矩阵算法进 行比对的过程内容相同或基本相同,故不再寶述。
[0214] 然后,在步骤S06'根据所述图像匹配检测结果和所述字符串匹配检测结果的结合 产生对象匹配检测结果。具体地,若所述图像匹配检测结果和所述字符串匹配检测结果均 为不相似,则产生对象匹配检测结果为不相似,若所述图像匹配检测结果和所述字符串匹 配检测结果至少有一个为相似,则产生对象匹配检测结果为相似。进而,通过对待检测的疑 似盗版软件所具有的图标及字符串与正版软件所具有的图标及字符串进行匹配检测,产生 图像匹配检测结果和字符串匹配检测结果,并根据图像匹配检测结果确定待检测的疑似盗 版软件是否为盗版软件及是哪一款正版软件的盗版软件,从而在软件安装时,即可警示用 户,进而避免用户因使用盗版软件而带来的隐私信息或财产的损失。
[0215] W下结合一具体应用场景,对所述方法进行进一步说明,首先,获取某官方发布的 正版软件"某宝",正版软件"某宝"可W先利用反编译工具如Dex2jar、Dexdump等技术对应 用对应用程序进行解压、反汇编等得到应用程序的详细信息,如证书、包名、应用名、图标、 资源文件等,获取的图标及相关信息如图7所示,其中,图7示出本申请一优选的实施例中 作为参考对象的正版软件的相关信息示意图,并从图标中提取出该正版软件的图标的描述 子D2和相应的特征点K2,可W把解析得到淘宝官方应用的信息放入标准库,其中图标除了 存放原文件外,还需要存放图标提取出来的SIFT描述子和特征点。
[0216] 接着,利用网络爬虫从应用市场及应用论坛等爬取软件,通常通过文件后缀名、文 件头内容、编码方式等可W判断其是否为软件的应用程序文件。运些程序是否为盗版都是 未知的。
[0217] 图8示出本申请一优选的实施例中作为待检测对象的若干待检测软件的相关信 息示意图。如图8所示,从某应用市场中获得若干未知软件,一一对未知软件进行匹配检 测。
[0218] 采用本申请所述匹配检测方法对未知软件与正版软件"某宝"进行匹配检测,首 先利用反编译工具对该未知软件进行解析获得该未知软件的图标、签名、包名、应用名等信 息,对其中的图标进行灰度转化之后,用SIFT特征提取算法提取待检测的特征描述子D1和 相应的特征点K1。
[0219] 接着,把未知软件的证书与正版软件"某宝"的证书相比较。如果证书相同,则该 未知软件为正版软件的应用,仅更改了名字;如果证书不同,则需进行进一步检测。
[0220] 然后,利用字符串相似度量算法计算未知软件的包名、应用名与正版软件"某宝" 的包名、应用名的相似度,则如果相似度达到一定阔值W上(例如在90% W上),则认为是 盗版。 阳221] 如果包名、应用名并不相似,则进行更进一步的图标检测:从未知应用程序的图标 中提取SIFT特征,并利用本申请所述的匹配检测方法将其与正版软件"某宝"的图标(正版 软件"某宝"的图标的SIFT特征描述子和特征点已经事先提取并存入数据库)进行比较。 接着,利用RANSAC算法W正版软件"某宝"的图标提取出该正版软件的图标的描述子D2和 相应的特征点K2的库M2为标准,对未知软件的图标的特征点K1进行随机抽样,并迭代地 往其中加入一些特征点,构成新的集合N然后计算由N与M2的匹配距离是否比较小和由N 变换到M2的变换矩阵是否在误差允许的范围内。如果匹配距离太大或变换矩阵误差太大 则丢弃集合N,从新进行随机抽样和迭代加入特征点,直到得到一个满足距离小和矩阵误差 小的特征点集合N。其中,所述该算法可W使用openCV的仿射矩阵计算集成功能实现。 阳222] 所述匹配检测方法检测出的盗版软件(包括软件名称、图标等)比仅用白名单 匹配方法检测到的盗版软件要多很多,实际检测的准确率可W达96% W上。如一个知名 Amlroid应用,用白名单匹配找到的盗版软件只有12个,而我们方法找到的有315个,多找 出303个,而运303个盗版软件中有177个都是病毒。因此,所述匹配检测方法对盗版软件 发现和病毒软件发现有很好的效果。 阳223] 此外,本申请所述匹配检测方法和设备除应用于盗版软件的检测之外,还可应用 于需要小图标精确匹配的应用中,例如手机应用中的各种图标等尺寸小的图像的匹配检 测。
[0224] 与现有技术相比,本申请所述匹配检测的方法及设备通过获取将待检测对象的图 像和参考对象的图像进行特征提取并对特征提取获得的数据进行匹配检测,产生图像匹配 检测结果,进而根据图像匹配检测结果产生对象匹配检测结果。进一步的,在进行匹配检测 的过程,利用尺度不变特征转换算法结合快速最近邻逼近捜索函数库匹配算法进行特征提 取,并利用随机抽样一致算法中的变换矩阵获取算法获取关于所述第Ξ待匹配数据与所述 第二参考数据的匹配矩阵。通过快速最近邻逼近捜索函数库匹配算法选择良好的匹配对, 保留了几何位置的特征点,利用特征点在图片中的位置信息来补充描述子,从而在计算匹 配算法中所设及的仿射变换的矩阵时,对其中各个维度的变换值进行阔值限定从而去掉扰 动过大的匹配对,保留好的匹配对,使利用利用尺度不变特征转换算法获得的描述子与特 征点结合的方法能够更精准、快速识别出相似图像。
[0225] 进一步的,本申请所述匹配检测的方法及设备能够基于软件内容本身进行盗版检 巧。。所述方法能够综合考虑软件应用的图标、签名、应用名、包名、组织结构等资源,采用简 单、高校的字符串匹配和快速、准确的图标匹配算法来更快、更准地检测更多的盗版软件。 阳226] 显然,本领域的技术人员可W对本申请进行各种改动和变型而不脱离本申请的精 神和范围。运样,倘若本申请的运些修改和变型属于本申请权利要求及其等同技术的范围 之内,则本申请也意图包含运些改动和变型在内。 阳227] 需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采 用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例 中,本申请的软件程序可W通过处理器执行W实现上文所述步骤或功能。同样地,本申请的 软件程序(包括相关的数据结构)可W被存储到计算机可读记录介质中,例如,RAM存储器, 磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例 如,作为与处理器配合从而执行各个步骤或功能的电路。
[0228] 另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被 计算机执行时,通过该计算机的操作,可W调用或提供根据本申请的方法和/或技术方案。 而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通 过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行 的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括 用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序 指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或 技术方案。
[0229] 对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在 不背离本申请的精神或基本特征的情况下,能够W其他的具体形式实现本申请。因此,无论 从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权 利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有 变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所设及的权利要求。此 夕F,显然"包括"一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多 个单元或装置也可W由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来 表示名称,而并不表示任何特定的顺序。
【主权项】
1. 一种用于对具有图像的对象进行匹配检测的方法,其中,所述方法包括: 获取参考对象及所述参考对象的第一参考数据和第二参考数据; 获取待检测对象,并从所述待检测对象中获取待匹配图像; 对所述待匹配图像进行特征提取,以获得第一待匹配数据和第二待匹配数据,并对所 述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数据中获取第三待 匹配数据; 获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵; 通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果;以及 根据所述图像匹配检测结果产生对象匹配检测结果。2. 根据权利要求1所述的方法,其中,获取所述参考对象的第一参考数据和第二参考 数据包括: 获取参考对象; 从所述参考对象中获取参考图像;以及 对所述参考图像进行特征提取,以获得所述第一参考数据和所述第二参考数据。3. 根据权利要求2所述的方法,其中,利用尺度不变特征转换算法对所述参考图像进 行特征提取。4. 根据权利要求3所述的方法,其中,所述第一参考数据和所述第二参考数据分别为 所述参考图像的特征描述子和相应的特征点。5. 根据权利要求1至4中任一项所述的方法,其中,利用尺度不变特征转换算法对所述 待匹配图像进行特征提取。6. 根据权利要求5所述的方法,其中,从所述第一待匹配数据中获取第三待匹配数据 包括: 设定良好匹配距离阈值; 利用快速最近邻逼近搜索函数库匹配算法计算所述第一待匹配数据与所述相应第一 参考数据的匹配距离;以及 将所述匹配距离小于所述良好匹配距离阈值的所述第一待匹配数据确定为所述第三 待匹配数据。7. 根据权利要求1至6中任一项所述的方法,其中,利用随机抽样一致算法中的变换矩 阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵,所述匹配矩阵 为仿射变换矩阵。8. 根据权利要求6或7所述的方法,其中,所述第一待匹配数据和第二待匹配数据分别 为所述待匹配图像的特征描述子和相应的特征点。9. 根据权利要求1或8中任一项所述的方法,其中,所述待检测对象和所述参考对象还 具有字符串,则所述方法还包括: 获取所述参考对象的参考特征字符串文件; 从所述待检测对象中获取待匹配特征字符串文件;以及 对所述待匹配特征字符串文件与所述参考对象的参考特征字符串文件进行比对,并根 据比对结果产生字符串匹配检测结果。10. 根据权利要求9所述的方法,其中,根据所述图像匹配检测结果产生对象匹配检测 结果包括: 根据所述图像匹配检测结果和所述字符串匹配检测结果的结合产生对象匹配检测结 果。11. 根据权利要求10所述的方法,其中,若所述图像匹配检测结果和所述字符串匹配 检测结果均为不相似,则产生对象匹配检测结果为不相似;若所述图像匹配检测结果和所 述字符串匹配检测结果至少有一个为相似,则产生对象匹配检测结果为相似。12. 根据权利要求9至11中任一项所述的方法,其中,所述待检测对象和所述参考对象 所具有的字符串包括字母、文字及数字字符中的一种或任意组合。13. 根据权利要求9至12中任一项所述的方法,其中,所述待检测对象为待检测的软 件,所述参考对象为参考软件。14. 根据权利要求13所述的方法,其中,所述待检测对象和所述参考对象采用爬虫技 术获取。15. 根据权利要求13或14所述的方法,其中,所述待匹配图像为所述待检测软件的图 标,所述参考图像为参考软件的图标。16. 根据权利要求15所述的方法,其中,所述待匹配特征字符串文件为所述待检测软 件的特征字符串文件,所述待检测软件的特征字符串文件包括:所述待检测软件的签名、证 书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合;所述参 考特征字符串文件为参考软件的特征字符串文件,所述参考软件的特征字符串文件包括: 所述参考软件的签名、证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的 一种或任意组合。17. 根据权利要求16所述的方法,其中,所述待检测软件的特征字符串文件通过反编 译工具解析所述待检测软件获取,所述参考软件的特征字符串文件通过反编译工具解析所 述参考软件获取。18. -种用于对具有图像的对象进行匹配检测的设备,其中,所述设备包括: 第一装置,用于获取参考对象及所述参考对象的第一参考数据和第二参考数据; 第二装置,用于获取待检测对象,并从所述待检测对象中获取待匹配图像; 第三装置,用于对所述待匹配图像进行特征提取,以获得第一待匹配数据和第二待匹 配数据,并对所述第一待匹配数据与所述第一参考数据进行比对,以从所述第一待匹配数 据中获取第三待匹配数据; 第四装置,用于获取关于所述第三待匹配数据与所述第二参考数据的匹配矩阵; 第五装置,用于通过检测所述匹配矩阵的各个维度的值产生图像匹配检测结果; 第六装置,用于根据所述图像匹配检测结果产生对象匹配检测结果。19. 根据权利要求15至17中任一项所述的设备,其中,所述第一装置包括: 第一单元,用于获取参考对象; 第二单元,用于从所述参考对象中获取参考图像;以及 第三单元,用于对所述参考图像进行特征提取,以获得所述第一参考数据和所述第二 参考数据。20. 根据权利要求19所述的设备,其中,所述第三单元利用尺度不变特征转换算法对 所述参考图像进行特征提取。21. 根据权利要求20所述的设备,其中,所述第一参考数据和所述第二参考数据分别 为所述参考图像的特征描述子和相应的特征点。22. 根据权利要求18至21中任一项所述的设备,其中,所述第三装置利用尺度不变特 征转换算法对所述待匹配图像进行特征提取。23. 根据权利要求22所述的设备,其中,所述第三装置从所述第一待匹配数据中获取 第三待匹配数据包括: 设定良好匹配距离阈值; 利用快速最近邻逼近搜索函数库匹配算法计算所述第一待匹配数据与所述相应第一 参考数据的匹配距离;以及 将所述匹配距离小于所述良好匹配距离阈值的所述第一待匹配数据确定为所述第三 待匹配数据。24. 根据权利要求18至23中任一项所述的设备,其中,所述第四装置利用随机抽样一 致算法中的变换矩阵获取算法获取关于所述第三待匹配数据与所述第二参考数据的匹配 矩阵,所述匹配矩阵为仿射变换矩阵。25. 根据权利要求23或24所述的设备,其中,所述第一待匹配数据和第二待匹配数据 分别为所述待匹配图像的特征描述子和相应的特征点。26. 根据权利要求17至25中任一项所述的设备,其中,所述待检测对象和所述参考对 象还具有字符串,则所述设备还包括: 第七装置,用于获取所述参考对象的参考特征字符串文件; 第八装置,用于从所述待检测对象中获取待匹配特征字符串文件;以及 第九装置,用于对所述待匹配特征字符串文件与所述参考对象的参考特征字符串文件 进行比对,并根据比对结果产生字符串匹配检测结果。27. 根据权利要求26所述的设备,其中,所述第六装置根据所述图像匹配检测结果和 所述字符串匹配检测结果的结合产生对象匹配检测结果。28. 根据权利要求27所述的设备,其中,若所述图像匹配检测结果和所述字符串匹配 检测结果均为不相似,则所述第六装置产生对象匹配检测结果为不相似;若所述图像匹配 检测结果和所述字符串匹配检测结果至少有一个为相似,则所述第六装置产生对象匹配检 测结果为相似。29. 根据权利要求26或28所述的设备,其中,所述待检测对象和所述参考对象所具有 的字符串包括字母、文字及数字字符中的一种或任意组合。30. 根据权利要求26至29中任一项所述的设备,其中,所述待检测对象为待检测的软 件,所述参考对象为参考软件。31. 根据权利要求30所述的设备,其中,所述待检测对象和所述参考对象采用爬虫技 术获取。32. 根据权利要求30或31所述的设备,其中,所述待匹配图像为所述待检测软件的图 标,所述参考图像为参考软件的图标。33. 根据权利要求32中所述的设备,其中,所述待匹配特征字符串文件为所述待检测 软件的特征字符串文件,所述待检测软件的特征字符串文件包括:所述待检测软件的签名、 证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中的一种或任意组合;所述 参考特征字符串文件为参考软件的特征字符串文件,所述参考软件的特征字符串文件包 括:所述参考软件的签名、证书、包名、应用名、资源文件、全局配置文件、源代码及引用库中 的一种或任意组合。34.根据权利要求33中所述的设备,其中,所述待检测软件的特征字符串文件通过反 编译工具解析所述待检测软件获取,所述参考软件的特征字符串文件通过反编译工具解析 所述参考软件获取。
【文档编号】G06F21/12GK105825084SQ201510005669
【公开日】2016年8月3日
【申请日】2015年1月6日
【发明人】侯冬梅, 余文涛
【申请人】阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1