相似图像的识别方法和装置的制作方法

文档序号:6354068阅读:568来源:国知局
专利名称:相似图像的识别方法和装置的制作方法
技术领域
本申请涉及多媒体图像识别技术领域,具体而言,涉及一种相似图像的识别方法和装置。
背景技术
相似图像检索是近几年兴起的技术,属于多媒体识别的一种,其主要包含特征提取、索引构建、查询、相似度排序等主要步骤。如图I所示,在建立图像索引库时,用户A向图像服务器10上传待存储的图像,图像服务器10为该图像生成图像签名,并以该图像签名作为索引,以便于后续的检索查询。当需要识别相似图像时,用户B向图像服务器10请求相似图像检索,图像服务器10根据该图像的索引查询与该图像索引对应的相似图像。在图像服务器10查找到与用户B输入的图像相似的图像之后,向用户B返回相似的图像列表。目前在生成图像的图像签名时,常用的方法是在图像服务器10中对图片内容的二进制流进行哈希编码,作为唯一标识该图像的图像签名,然后将该图像签名常驻内存或存储在图像服务器10中的数据库或文件系统中。然而,上述现有技术的相似图像检索存在以下缺点I)通用性较差对于同一副图片,即使不做任何修改,以不同的格式(bmp、jpeg、png、gif等等)保存,得到的图像签名值也有很大的差异;然而大部分情况下,从用户期望的角度来看,希望将两幅仅仅格式不同的图片作为相似图片。2)容错性问题由于冲突的原因,图像的二进制流的哈希编码不可能是唯一的,即存在这种情况, 即便是两张完全不同的图片,也有可能会因为图像签名相同而被做为相同的图片提供给图像查询者。3)不适合用作近似检索传统的基于哈希编码的图片签名方式,由于没有利用图片本身的信息,因此只能用于精确检索,即查找和目标图片完全一样的图片,不适用作相似图片检索。针对相关技术中所存在的问题,目前尚未发现有效的解决方案。

发明内容
本申请旨在提供一种相似图像的识别方法和装置,以解决现有技术中的图像识别方法所存在的容错性的问题。根据本申请的一个方面,提供了一种相似图像的识别方法,其包括获取与输入图像的内容信息对应的图像签名;对该图像签名进行哈希操作;在预先存储的哈希表中查询与该哈希操作的结果相对应的表项;在与查询得到的该表项对应的候选图像中识别与该输入图像相似的图像。进一步地,通过以下步骤获取与输入图像的内容信息对应的图像签名将输入图像转化为灰度图像;将灰度图像分成NXN的子图像,并对每个子图像分别从M个方向上计算边缘直方图,得到NXNXM个计算结果,其中,N和M均为自然数;将灰度图像对应的NXNXM个计算结果组合成作为图像签名的NXNXM维向量。进ー步地,对图像签名进行哈希操作的步骤包括分别使用L个局部哈希函数对与该图像签名进行哈希操作,得到L个第一哈希值,其中,L为自然数;使用ー个全局哈希函数分别对L个第一哈希值进行哈希操作,得到L个第二哈希值。
进ー步地,在预先存储的哈希表中查询与哈希操作的结果相对应的表项的步骤包括在每个第二哈希值对应的哈希表中查找是否存在记录有该第二哈希值的表项,其中,所述哈希表中的每个表项记录了一个图像的哈希值和图像标识,或者,所述每个表项记录了一个图像的哈希值、该图像的图像标识以及图像签名。进ー步地,第二哈希值与哈希表的对应关系包括 第i个第二哈希值对应于第i个哈希表,i = I, ...し进ー步地,分别使用L个局部哈希函数对图像签名进行哈希操作的步骤包括将图像签名转换成R维ニ进制向量,其中,R为自然数;使用R维ニ进制向量生成L个局部哈希函数,其中,每个局部哈希函数由R维ニ进制向量中的一维或多维ニ进制向量生成;使用L个局部哈希函数对R维ニ进制向量进哈希操作。进ー步地,使用R维ニ进制向量中的一维或多维ニ进制向量生成ー个局部哈希函数的步骤包括设置局部哈希函数的输入參数为K ;随机从R维ニ进制向量中选取K维ニ进制向量,将K维ニ进制向量进行拼接作为局部哈希函数的返回值,其中,K <R。进ー步地,在与查询得到的表项对应的候选图像中识别与输入图像相似的图像的步骤包括计算输入图像的图像签名与每个候选图像的图像签名之间的空间距离;按照空间距离的大小来识别候选图像与输入图像的相似度,其中,空间距离越小的候选图像与输入图像的相似度越高。进ー步地,按照空间距离的大小来识别候选图像与输入图像的相似度之后,还包括按照空间距离的大小输出候选图像。进ー步地,在分别使用L个局部哈希函数对图像签名进行哈希操作之前,通过以下步骤预先建立L个哈希表分别使用L个局部哈希函数对与每个待存储的图像的内容对应的图像签名进行哈希操作,得到L个第三哈希值,其中,L为自然数;使用ー个全局哈希函数分别对L个第三哈希值进行哈希操作,得到L个第四哈希值;将第j个第四哈希值以及该第四哈希值对应的图像标识和图像签名记录到第j个哈希表中,其中,j = 1,...し根据本申请的另一方面,提供了ー种相似图像的识别装置,位于图片服务器上,其包括获取单元,用于获取与输入图像的内容信息对应的图像签名;哈希操作単元,用于对图像签名进行哈希操作;查询单元,用于在预先存储的哈希表中查询与哈希操作的结果相对应的表项;识别单元,用于在与查询得到的表项对应的候选图像中识别与输入图像相似的图像。进ー步地,获取单元包括转化模块,用于将输入图像转化为灰度图像;计算模块,用于将灰度图像分成NXN的子图像,并对每个子图像分别从M个方向上计算边缘直方图,得到NXNXM个计算结果,其中,N和M均为自然数;生成模块,用于将灰度图像对应的NXNXM个计算结果组合成作为图像签名的NXNXM维向量。
进ー步地,哈希操作単元包括第一哈希处理模块,用于分别使用L个局部哈希函数对图像签名进行哈希操作,得到L个第一哈希值,其中,L为自然数;第二哈希处理模块,用于使用ー个全局哈希函数分别对L个第一哈希值进行哈希操作,得到L个第二哈希值。进ー步地,查询单元包括查找模块,用于在每个第二哈希值对应的哈希表中查找是否存在记录有该第二哈希值的表项,其中,所述哈希表中的每个表项记录了一个图像的哈希值和图像标识,或者,所述每个表项记录了一个图像的哈希值、该图像的图像标识以及图像签名;添加模块,用于在存在记录有该第二哈希值的表项时,将查找到的表项所记录的图像添加到候选图像中。进ー步地,第一哈希处理模块包括转换子模块,用于将图像签名转换成R维ニ进制向量,其中,R为自然数;生成子模块,用于使用R维ニ进制向量生成L个局部哈希函数,其中,每个局部哈希函数由R维ニ进制向量中的一维或多维ニ进制向量生成;哈希操作子模块,用于使用L个局部哈希函数对R维ニ进制向量进哈希操作。进ー步地,生成子模块包括设置子模块,用于设置局部哈希函数的输入參数为K ;处理子模块,用于随机从R维ニ进制向量中选取K维ニ进制向量,将K维ニ进制向量进行拼接作为局部哈希函数的返回值,其中,K < R0进ー步地,识别单元包括计算模块,用于计算输入图像的图像签名与每个候选图像的图像签名之间的空间距离;识别模块,用于按照空间距离的大小来识别候选图像与输入图像的相似度,其中,空间距离越小的候选图像与输入图像的相似度越高。进ー步地,还包括输出单元,用于在按照空间距离的大小来识别该候选图像与输入图像的相似度之后,按照空间距离的大小输出候选图像。进ー步地,还包括哈希表建立単元,用于在第一哈希操作模块分别使用L个局部哈希函数对与输入图像的内容对应的图像签名进行哈希操作之前,分别使用L个局部哈希函数对与每个待存储的图像的内容信息对应的图像签名进行哈希操作,得到L个第三哈希值,其中,L为自然数;使用ー个全局哈希函数分别对L个第三哈希值进行哈希操作,得到L个第四哈希值;将第j个第四哈希值以及第四哈希值对应的图像标识和图像签名记录到第j个哈希表中,其中,j = I, ... L0在本申请中,利用图像本身的内容作为图像签名,其签名的相似度取决于图像本身的相似度,即越是相似的图像,其签名的相似度也越大,或者说对应的空间距离(海明距离或欧氏距离)越短,这样,仅仅是存储格式不同的图像具有完全相同图像签名值,从而解决了现有技术中的图像识别方法所存在的容错性的问题,使得能够准确地识别出所需的相似图像。在此基础上,本申请还提出了基于局部敏感哈希技术的海量相似图像索引方案,将检索的时间复杂度降低到亚线性级别,并且能将结果按照相似程度进行排序输出。此外,采用边缘直方图的统计值作为图像签名的基础特征,配合图像分割和基于人眼视觉敏感程度的非均匀量化技术,对不同顔色、不同缩放比例、局部模糊以及失真均有很好的适应性。


此处所说明的附图用来提供对本申请的进一歩理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中图I是根据相关技术的相似图像的识别系统的ー种结构示意图2是根据本申请实施例的相似图像的识别系统的一种优选结构示意图;图3是根据本申请实施例的相似图像的识别装置的一种优选结构示意图;图4是根据本申请实施例的相似图像的识别装置的另一种优选结构示意图;图5是根据本申请实施 例的相似图像的识别方法的一种优选流程图;图6是根据本申请实施例的图像签名获取方法的一种优选流程图;图7是根据本申请实施例的图像索引构建方法的一种优选流程图;图8是根据本申请实施例的相似图像查询方法的一种优选流程图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。实施例I如图2所示,本优选的实施例提供了一种相似图像的识别系统,其包括如下上传服务器202、图像数据库装置204、索引服务器206、图像计算服务器208、以及图像检索前台服务器210。在建立图像索引库时,用户A向上传服务器202上传待存储的图像,上传服务器 202计算该图像的图像签名,并将该图像的图像签名发送给图像数据库装置204。本申请实施例也可以通过爬虫系统从网络中抓取图像后存储于上传服务器202中,本申请对此并不作限定。优选的,上传服务器202利用图像自身的内容信息(例如,图像的元数据,比如色彩、纹理等,而非字节流)来计算该图像的图像签名,从而大大降低了发生冲突的概率。图像数据库装置204在接收到该图像的图像签名之后,利用局部哈希函数对该图像签名进行哈希操作,将结果作为索引信息发送给索引服务器。当需要识别相似图像时,用户B向图像检索前台服务器210请求相似图像检索,图像检索前台服务器210将用户B输入的图像发送给图像计算服务器208,以请求返回相似的图像或图像列表。图像计算服务器208在接收到用户B输入的图像之后,向索引服务器206 查询与该输入的图像相似的图像的标识(ID),其中,相似的图像的哈希值与输入图像的哈希值相同。具体的查找方法可以为利用用户B输入的图像自身的内容信息来构建用于查询的图像签名,在索引服务器206中查询与该图像签名对应的相似图像。在图像计算服务器208查找到与用户B输入的图像相似的图像之后,向图像检索前台服务器210返回相似的图像或图像列表,以便显示给用户B。作为一种可选的实施方式,各个服务器所执行的功能可以在一个服务器上实现, 例如,如图3所示的相似图像的识别装置,其位于图像服务器上,其包括获取单元302,用于获取与输入图像的内容信息对应的图像签名;哈希操作单元304,用于对该图像签名进行哈希操作;查询单元306,用于在预先存储的哈希表中查询与哈希操作的结果相对应的表项;识别单元308,用于在与查询得到的表项对应的候选图像中识别与输入图像相似的图像。在本优选的实施例中,识别装置利用图像本身的内容作为图像签名,其签名的相似度取决于图像本身的相似度,即越是相似的图像,其签名的相似度也越大,或者说对应的空间距离(海明距离或欧氏距离)越短,这样,仅仅是存储格式不同的图像具有完全相同图像签名值,从而解决了现有技术中的图像识别方法所存在的容错性的问题,使得能够准确地识别出所需的相似图像。优选的,如图4所示,获取单元302包括转化模块3021,用于将输入图像转化为灰度图像;计算模块3022,用于将灰度图像分成NXN的子图像,并对每个子图像分别从M 个方向上计算边缘直方图,得到NXNXM个计算结果,其中,N和M均为自然数;生成模块 3023,用于将灰度图像对应的NXNXM个计算结果组合成作为图像签名的NXNXM维向量。 优选的,还可以对NXNXM维向量采用基于人眼视觉敏感程度的非均匀量化技术。在本优选的实施例中,利用图像自身的内容信息来计算图像的图像签名,从而大大降低了发生冲突的概率。此外,采用边缘直方图的统计值作为图像签名的基础特征,配合图像分割以及基于人眼视觉敏感程度的非均匀量化技术,对不同颜色、不同缩放比例、局部模糊以及失真均有很好的适应性。需要注意的是,分割的方式仅是一种示例,本申请不仅限于此,例如,将灰度图像分成NXP的子图像。作为一种最佳的方式,M可以等于5。优选的,计算模块3022对每个子图像分别从5个方向上计算边缘直方图的步骤包括对于每个子图像中的每个图像块而言,计算该图像块五个方向上的梯度值,选取梯度值最大的方向作为该图像块的待统计方向,在一个子图像中统计上述五个方向作为待统计方向的次数,并将得到的统计值作为该子图像的边缘直方图。举例来说,假设一个子图像具有1000个图像块,五个方向分别为A,B,C,D,E,其中,100个图像块的待统计方向为A,200个图像块的待统计方向为B,300个图像块的待统计方向为C,400个图像块的待统计方向为D,0个图像块的待统计方向为E,则该子图像的统计值(或对应的边缘直方图)为向量(100,200,300,400,O)。优选的,哈希操作单元304包括第一哈希处理模块3041,用于分别使用L个局部哈希函数对该图像签名进行哈希操作,得到L个第一哈希值,其中,L为自然数;第二哈希处理模块3042,用于使用一个全局哈希函数分别对L个第一哈希值进行哈希操作,得到L个第二哈希值。在本优选的实施例中,采用了基于局部敏感哈希技术的海量相似图像索引方案, 将检索的时间复杂度降低到亚线性级别。优选的,查询单元306包括查找模块3061,用于在每个第二哈希值对应的哈希表中查找是否存在记录有该第二哈希值的表项,其中,上述哈希表中的每个表项记录了一个图像的哈希值和图像标识,或者,所述每个表项记录了一个图像的哈希值、该图像的图像标识以及图像签名;添加模块3062,用于在存在记录有第二哈希值的表项时,将查找到的表项所记录的图像添加到候选图像中。在本优选的实施例中,采用了查找方式来查找对应的候选图像,提高了查找的准确性和效率。优选的,第二哈希值与哈希表的对应关系包括但不限于第i个第二哈希值对应于第i个哈希表,i = I,... Lo例如,第二哈希值与哈希表的对应关系还可以为第i个第二哈希值对应于第L-i+1个哈希表,i = I, ... L0优选的,第一哈希处理模块3041包括转换子模块,用于将图像签名转换成R维二进制向量,其中,R为自然数;生成子模块,用于使用R维二进制向量生成L个局部哈希函数,其中,每个局部哈希函数由R维二进制向量中的一维或多维二进制向量生成;哈希操作子模块,用于使用L个局部哈希函数对R维二进制向量进哈希操作。在本优选的实施例中, 采用特定的方式来进行哈希操作,大大降低了发生冲突的概率。需要注意的是,第一哈希处理模块的处理过程只是ー种示例,本申请不仅限于此优选的,生成子模块包括设置子模块,用于设置局部哈希函数的输入參数为K ;处理子模块,用于随机从R维ニ进制向量中选取K维ニ进制向量,将K维ニ进制向量进行拼接作为局部哈希函数的返回值,其中,K <R。在本优选的实施例中,采用特定的方式来生成局部哈希函数,进ー步降低了发生冲突的概率。需要注意的是,生成子模块的处理过程只是ー种示例,本申请不仅限于此。优选的,识别单元308包括计算模块3081,用于计算输入图像的图像签名与每个候选图像的图像签名之间的空间距离;识别模块3082,用于按照空间距离的大小来识别候选图像与输入图像的相似度,其中,空间距离越小的候选图像与输入图像的相似度越高。在本优选的实施例中,通过采用空间距离来识别相似图像,大大提高了识别的准备性。优选的,本实施例中的空间距离可以包括但不限于海明距离和欧式距离。优选的,如图3所示的相似图像的识别装置还包括输出单元310,用于在按照空间距离的大小来识别候选图像与输入图像的相似度之后,按照空间距离的大小输出候选图像。在本优选的实施例中,通过按照相似度来输出相似图像,大大提高了用户的体验度。优选的,如图3所示的互联网相似图像的识别装置还包括哈希表建立単元312,用于在第一哈希操作模块分别使用L个局部哈希函数对与输入图像的内容对应的图像签名进行哈希操作之前,分别使用L个局部哈希函数对与每个待存储的图像的内容信息对应的图像签名进行哈希操作,得到L个第三哈希值,其中,L为自然数;使用ー个全局哈希函数分别对L个第三哈希值进行哈希操作,得到L个第四哈希值;将第j个第四哈希值以及第四哈希值对应的图像标识和图像签名记录到第j个哈希表中,其中,j = L. ..L0在本优选的实施例中,采用了方式来建立存储图像索引的哈希表,提高了查找的准确性和效率。实施例2基于图2所示的识别系统以及图3和图4所示的识别装置,本优选的实施例还提供了ー种相似图像的识别方法,如图5所示,识别方法包括如下步骤S502,获取与输入图像的内容信息对应的图像签名;优选的,在图2所示的识别系统中,可以由图像检索前台服务器210获取用户B输入的输入图像的内容信息,并将其发送给图像计算服务器208,图像计算服务器208获取与输入图像的内容信息对应的图像签名。优选的,在图3所示的识别装置中,由获取单元302获取与输入图像的内容信息对应的图像签名。在本优选的实施例中,图像检索前台服务器210或获取单元302可以包括用于接收用户输入的图像的接收模块(例如,USB传输接ロ,蓝牙传输接ロ,或者,以太网传输接ロ等),以及,图像计算服务器208或获取单元302可以包括用于计算输入图像的内容信息对应的图像签名的处理模块(例如,微处理器MCU,或FPGA等)。可以理解的是,关于执行“获取与输入图像的内容信息对应的图像签名”的主体并不仅限于此,可以根据实际需求来灵活配置。S504,对图像签名进行哈希操作;优选的,在图2所示的识别系统中,可以由图像计算服务器208对图像签名进行哈希操作。优选的,在图3所示的识别装置中,可以由哈希操作单元304对图像签名进行哈希操作。在本优选的实施例中,哈希操作单元304可以为微处理器MCU,或FPGA等,作为ー种优选的方式,哈希操作单元304与获取单元302所执行的功能可以由同一个处理器来实现。可以理解的是,关于执行“对图像签名进行哈希操作” 的主体并不仅限于此,还可以根据实际需求来灵活配置。S506,在预先存储的哈希表中查询与哈希操作的结果相对应的表项;优选的,在图 2所示的识别系统中,可以由图像计算服务器208向索引服务器206中存储的哈希表中查询与哈希操作的结果相对应的表项。优选的,在图3所示的识别装置中,可以由查询单元306 向存储由哈希表的数据库查询与哈希操作的结果相对应的表项。可以理解的是,关于执行 “在预先存储的哈希表中查询与哈希操作的结果相对应的表项”的主体并不仅限于此,还可以根据实际需求来灵活配置。在本优选的实施例中,图像计算服务器208可以但不限于按照预定的局域网传输协议与索引服务器206通信,查询单元306可以但不限于通过内部总线与数据库进行通信。S508,在与查询得到的表项对应的候选图像中识别与输入图像相似的图像。优选的,在图2所示的识别系统中,图像计算服务器208可以根据索引服务器206返回的相似图像的ID获取对应的候选图像(可以在本地获取,也可以从第三方设备上获取),并在与查询得到的表项对应的候选图像中识别与输入图像相似的图像。优选的,在图3所示的识别装置中,识别单元308可以根据查询单元306返回的相似图像的ID获取对应的候选图像(可以在本地获取,也可以从第三方设备上获取),并在与查询得到的表项对应的候选图像中识别与输入图像相似的图像。可以理解的是,关于执行“在与查询得到的表项对应的候选图像中识别与输入图像相似的图像”的主体并不仅限于此,还可以根据实际需求来灵活配置。在本优选的实施例中,识别装置利用图像本身的内容作为图像签名,其签名的相似度取决于图像本身的相似度,即越是相似的图像,其签名的相似度也越大,或者说对应的空间距离(海明距离或欧氏距离)越短,这样,仅仅是存储格式不同的图像具有完全相同图像签名值,从而解决了现有技术中的图像识别方法所存在的容错性的问题,使得能够准确地识别出所需的相似图像。优选的,通过以下步骤获取与输入图像的内容信息对应的图像签名可以但不限于由图4所示的转化模块3021将输入图像转化为灰度图像;可以但不限于由图4所示的计算模块3022将灰度图像分成NXN的子图像,并对每个子图像分别从M个方向上计算边缘直方图,得到NXNXM个计算结果,其中,N和M均为自然数;可以但不限于由图4所示的生成模块3023将灰度图像对应的NXNXM个计算结果组合成作为图像签名的NXNXM维向量。优选的,还可以对NXNXM维向量采用基于人眼视觉敏感程度的非均匀量化技术。在本优选的实施例中,利用图像自身的内容信息来计算图像的图像签名,从而大大降低了发生冲突的概率。此外,本优选的实施例采用边缘直方图的统计值作为图像签名的基础特征, 配合图像分割以及基于人眼视觉敏感程度的非均匀量化技术,对不同颜色、不同缩放比例、 局部模糊以及失真均有很好的适应性。需要注意的是,分割的方式仅是一种示例,本申请不仅限于此,例如,将灰度图像分成NXP的子图像。作为一种最佳的方式,M可以等于5。 优选的,计算模块3022对每个子图像分别从5个方向上计算边缘直方图的步骤包括对于每个子图像中的每个图像块而言,计算该图像块五个方向上的梯度值,选取梯度值最大的方向进行作为该图像块的待统计方向,在一个子图像中统计上述五个方向作为待统计方向的次数,并将得到的统计值作为该子图像的边缘直方图。举例来说,假设一个子图像具有1000个图像块,五个方向分别为A,B,C,D,E,其中,100个图像块的待统计方向为A,200个图像块的待统计方向为B,300个图像块的待统计方向为C,400个图像块的待统计方向为D,O个图像块的待统计方向为E,则该子图像的统计值(或对应的边缘直方图)为向量(100,200,300,400,O)。在本优选的实施例中,转化模块3021、计算模块3022以及生成模块3023可以但不限于由同一个微处理器MCU来实现。优选的,对图像签名进行哈希操作的步骤包括可以但不限于由图4所示的第一哈希处理模块3041分别使用L个局部哈希函数对图像签名进行哈希操作,得到L个第一哈希值,其中,L为自然数;可以但不限于由图4所示的第二哈希处理模块3042使用ー个全局哈希函数分别对L个第一哈希值进行哈希 操作,得到L个第二哈希值。在本优选的实施例中,采用了基于局部敏感哈希技术的海量相似图像索引方案,将检索的时间复杂度降低到亚线性级别。在本优选的实施例中,第一哈希处理模块3041和第二哈希处理模块3042可以但不限于由同一个编码芯片或微处理器MCU来实现。优选的,在预先存储的哈希表中查询与哈希操作的结果相对应的表项的步骤包括可以但不限于由图4所示的查找模块3061在每个第二哈希值对应的哈希表中查找是否存在记录有第二哈希值的表项,其中,所述哈希表中的每个表项记录了一个图像的哈希值和图像标识,或者,所述每个表项记录了一个图像的哈希值、该图像的图像标识以及图像签名;若存在,则可以但不限于由图4所示的添加模块3062将查找到的表项所记录的图像添加到候选图像中。在本优选的实施例中,采用了查找方式来查找对应的候选图像,提高了查找的准确性和效率。在本优选的实施例中,查找模块3061和添加模块3062可以但不限于由同一个微处理器MCU来实现。优选的,第二哈希值与哈希表的对应关系包括但不限于第i个第二哈希值对应于第i个哈希表,i = I,... L0例如,第二哈希值与哈希表的对应关系还可以为第i个第ニ哈希值对应于第L-i+Ι个哈希表,i = I, ... L0优选的,分别使用L个局部哈希函数对图像签名进行哈希操作的步骤包括可以但不限于由图4所示的第一哈希处理模块3041将图像签名转换成R维ニ进制向量,其中,R为自然数;可以但不限于由图4所示的第一哈希处理模块3041使用R维ニ进制向量生成L个局部哈希函数,其中,每个局部哈希函数由R维ニ进制向量中的一维或多维ニ进制向量生成;可以但不限于由图4所示的第一哈希处理模块3041使用L个局部哈希函数对R维ニ进制向量进哈希操作。在本优选的实施例中,采用特定的方式来进行哈希操作,大大降低了发生冲突的概率。需要注意的是,哈希操作的过程只是ー种示例,本申请不仅限于此。优选的,使用R维ニ进制向量中的一维或多维ニ进制向量生成ー个局部哈希函数的步骤包括可以但不限于由图4所示的第一哈希处理模块3041设置局部哈希函数的输入參数为K ;可以但不限于由图4所示的第一哈希处理模块3041随机从R维ニ进制向量中选取K维ニ进制向量,将K维ニ进制向量进行拼接作为局部哈希函数的返回值,其中,K < R。在本优选的实施例中,采用特定的方式来生成局部哈希函数,进ー步降低了发生冲突的概率。需要注意的是,生成ー个局部哈希函数的步骤只是ー种示例,本申请不仅限于此。优选的,在与查询得到的表项对应的候选图像中识别与输入图像相似的图像的步骤包括可以但不限于由图4所示的计算模块3081计算输入图像的图像签名与每个候选图像的图像签名之间的空间距离;可以但不限于由图4所示的识别模块3082按照空间距离的大小来识别候选图像与输入图像的相似度,其中,空间距离越小的候选图像与输入图像的相似度越高。在本优选的实施例中,通过采用空间距离来识别相似图像,大大提高了识别的准备性。优选的,本实施例中的空间距离可以包括但不限于海明距离和欧式距离在本优选的实施例中,计算模块3081和识别模块3082可以但不限于由同一个微处理器MCU来实现。优选的,按照空间距离的大小来识别候选图像与输入图像的相似度之后,本优选实施例的识别方法还包括可以但不限于由图3所示的输出单元310按照空间距离的大小输出候选图像。在本优选的实施例中,通过按照相似度来输出相似图像,大大提高了用户的体验度。在本优选的实施例中,输出单元310可以但不限于为蓝牙传输模块,或者,红外传输模块,或者,以太网传输模块。优选的,在分别使用L个局部哈希函数对图像签名进行哈希操作之前,通过以下步骤预先建立L个哈希表可以但不限于由图3所示的哈希表建立单元312分别使用L个局部哈希函数对与每个待存储的图像的内容对应的图像签名进行哈希操作,得到L个第三哈希值,其中,L为自然数;可以但不限于由图3所示的哈希表建立单元312使用一个全局哈希函数分别对L个第三哈希值进行哈希操作,得到L个第四哈希值;可以但不限于由图3 所示的哈希表建立单元312将第j个第四哈希值以及第四哈希值对应的图像标识和图像签名记录到第j个哈希表中,其中,j = I, ... Lo在本优选的实施例中,采用了方式来建立存储图像索引的哈希表,提高了查找的准确性和效率。在本优选的实施例中,哈希表建立单元312可以但不限于由同一个微处理器MCU 来实现。基于以上的识别系统和装置以及识别方法,以下结合附图来具体描述识别方法中的图像签名获取方法、图像索引构建方法以及相似图像查询方法。如图6所示,图像签名获取方法(也称特征提取阶段)包括从图像中提取元数据信息作为唯一标识图像本身的签名,本优选的实施例采用基于边缘直方图的纹理特征来生成签名,具体步骤如下S602,可以但不限于由图4所示的转化模块3021将原始图像转化为灰度图像,以期到最终得到的结果对颜色、光照的改变不敏感;S604,可以但不限于由图4所示的计算模块3022将灰度图像分割成NXN的子图像;S606,可以但不限于由图4所示的计算模块3022把S604中处理完毕的子图像进一步分割为固定数目的一系列图像块,每个图像块的面积随着原始图像的面积变化而变化;S608,可以但不限于由图4所示的计算模块3022计算每个子图像的五个方向上的边缘直方图。具体地,对于每个子图像中的每个图像块而言,计算该图像块五个方向上的梯度值,选取梯度值最大的方向进行作为该图像块的待统计方向,在一个子图像中统计上述五个方向作为待统计方向的次数,并将得到的统计值作为该子图像的边缘直方图。
举例来说,假设一个子图像具有1000个图像块,上述五个方向分别为A,B, C,D,E,其中,100个图像块的待统计方向为A,200个图像块的待统计方向为B,300个图像块的待统计方向为C,400个图像块的待统计方向为D,O个图像块的待统计方向为E,则该子图像的统计值(或对应的边缘直方图)为向量(100,200,300,400,O)。S610,可以但不限于由图4所示的生成模块3023将各个子图像的统计值(即向量)拼接成一个多维向量作为原始图像的签名。假设按照N = 4进行切分,原始图像的签名最终会以ー个4X4X5 = 80维的向量来表示。S612,考虑到人眼视觉对亮 度敏感程度的非均匀性,采用非线性量化的方式,可以但不限于由图4所示的生成模块3023对S610中得到的80维整型向量进行量化压缩,以达到较高的空间利用率。举例来说,使用0-7之间的8个数字进行量化,最后得到的单个签名所占空间的大小为80X3 = 240bit,也就是30个字节,相比量化之前节约了 90%以上的存储空间。S614,将压缩后的结果作为图像签名。当然,上述S612步骤中的压缩处理是ー种优选的方式,本发明也可以直接将S610得到的80维向量来作为该图像的图像签名。在本优选的实施例中,转化模块3021、计算模块3022以及生成模块3023可以但不限于由同一个微处理器MCU来实现。如图7所示,图像索引构建方法(也称为索引构建阶段)主要包括针对特征提取阶段所获得的图像签名,实现高维向量的K近似检索,本优选实施例采用局部敏感哈希来实现,具体步骤如下S702,可以但不限于由图4所示的第一哈希处理模块3041将特征提取阶段所获的向量标识转化为海明空间中的高维ニ进制向量(即每ー维仅为I或O),例如,假设某ー维的向量值为X,最大值为C,则向量在海明空间表示为连续的X个I紧跟C-X个O的C维ニ进制向量。S704,可以但不限于由图4所示的第一哈希处理模块3041定义如下的哈希函数G,随机选取S702中目标向量的K维ニ进制向量,将结果拼接起来作为返回值。目标向量之间相似度越大,产生的相同哈希值相概率越大。S706,为降低近似检索的误差,可以但不限于由图4所示的第一哈希处理模块3041利用L个S704中随机生成的哈希函数,将其分别作用在S702中提取的高维向量中;S708,可以但不限于由图4所示的第二哈希处理模块3042对S706中的结果使用传统的哈希函数(例如md5)再次哈希;S710,可以但不限于由图4所示的第二哈希处理模块3042将S708中的哈希结果作为键、图片的唯一标识(ID)作为值存放存在对应的L个哈希表当中。优选的,相同的图像签名会被放在同ー个桶中去,不同的图像签名,则有较大概率放到不同的桶中去。在本优选的实施例中,第一哈希处理模块3041和第二哈希处理模块3042可以但不限于由同一个编码芯片或微处理器MCU来实现。优选的,选择不同K与L的会在很大程度上影响检索的准确率与召回率,一般通过事先的模拟实验进行预估。最后生成的索引结构,在硬件允许的条件下,可以考虑常驻内存以提高检索效率;在海量样本库的情况下,也可以考虑将索引文件持久化到本地磁盘或者分布式的处理方式。如图8所示,相似图像查询方法(也称为查询阶段)主要包括针对输入的图像进行处理,获得其边缘直方图的签名,并在样本库中查询出相似图像的过程,其具体步骤如下S802,可以但不限于由图4所示的获取单元302采用图6所示的方法计算输入图像的签名值;S804-S810,根据S802中得到的签名值,可以但不限于由图4所示的哈希操作单元 304采用图7所示的图像索引构建方法,将L个哈希函数作用在该签名上,再计算md5哈希过后的值,可以但不限于由图4所示的查询单元306分别将计算得到的结果作为键在L个哈希表中查询;S812,可以但不限于由图4所示的查询单元306将查询得到的多个结果所对应的图像添加到候选图像队列中;S814,针对候选图像队列中的每一个签名值,可以但不限于由图4所示的识别单元308计算其与输入图像的签名值的空间距离(海明距离或者欧氏距离),其值的大小决定了候选图片与输入图片的相似度;S816,可以但不限于由图3所示的输出单元310按照距离的大小进行排序输出。由于候选队列中图像签名的数量与样本库中签名的数量相比,已大大减少,因此与现有技术相比,计算的成本或开销也大为减少。最后得到的结果集就是与目标图像相似、并按照相似度排序的图像集。在本优选的实施例中,哈希操作单元304可以为微处理器MCU,或FPGA等,作为一种优选的方式,哈希操作单元304与获取单元302所执行的功能可以由同一个处理器来实现。此外,在本优选的实施例中,查询单元306可以但不限于通过内部总线与保存了哈希表的数据库进行通信,查询单元306与识别单元308所执行的功能可以由同一个处理器来实现。从以上的描述中,可以看出,本申请实现了如下技术效果在本申请中,利用图像本身的内容作为图像签名,其签名的相似度取决于图像本身的相似度,即越是相似的图像,其签名的相似度也越大,或者说对应的空间距离(海明距离或欧氏距离)越短,这样,仅仅是存储格式不同的图像具有完全相同图像签名值,从而解决了现有技术中的图像识别方法所存在的容错性的问题,使得能够准确地识别出所需的相似图像。在此基础上,本申请还提出了基于局部敏感哈希技术的海量相似图像索引方案,将检索的时间复杂度降低到亚线性级别,并且能将结果按照相似程度进行排序输出。此外,采用边缘直方图的统计值作为图像签名的基础特征,配合图像分割和基于人眼视觉敏感程度的非均匀量化技术,对不同颜色、不同缩放比例、局部模糊以及失真均有很好的适应性。
显然,本领域的技术人员应该明白,本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
权利要求
1.一种相似图像的识别方法,其特征在于包括获取与输入图像的内容信息对应的图像签名;对所述图像签名进行哈希操作;在预先存储的哈希表中查询与所述哈希操作的结果相对应的表项;以及在与查询得到的所述表项对应的候选图像中识别与所述输入图像相似的图像。
2.根据权利要求I所述的方法,其特征在于,通过以下步骤获取所述与输入图像的内容信息对应的图像签名将所述输入图像转化为灰度图像;将所述灰度图像分成NXN的子图像,并对每个所述子图像分别从M个方向上计算边缘直方图,得到NXNXM个计算结果,其中,所述N和M均为自然数;以及将所述灰度图像对应的N X N X M个计算结果组合成作为所述图像签名的N X N X M维向量。
3.根据权利要求I所述的方法,其特征在于,对所述图像签名进行哈希操作的步骤包括分别使用L个局部哈希函数对与所述图像签名进行哈希操作,得到L个第一哈希值,其中,L为自然数;以及使用一个全局哈希函数分别对所述L个第一哈希值进行哈希操作,得到L个第二哈希值。
4.根据权利要求3所述的方法,其特征在于,在预先存储的哈希表中查询与所述哈希操作的结果相对应的表项的步骤包括在每个所述第二哈希值对应的所述哈希表中查找是否存在记录有该第二哈希值的表项,并将查找到的所述表项所记录的图像添加到所述候选图像中,其中,所述哈希表中的每个表项记录了一个图像的哈希值和图像标识,或者,所述每个表项记录了一个图像的哈希值、该图像的图像标识以及图像签名。
5.根据权利要求4所述的方法,其特征在于,所述第二哈希值与所述哈希表的对应关系包括第i个所述第二哈希值对应于第i个所述哈希表,i = L ... L0
6.根据权利要求3至5中任一项所述的方法,其特征在于,分别使用L个局部哈希函数对所述图像签名进行哈希操作的步骤包括将所述图像签名转换成R维二进制向量,其中,R为自然数;使用所述R维二进制向量生成L个所述局部哈希函数,其中,每个所述局部哈希函数由所述R维二进制向量中的一维或多维二进制向量生成;以及使用L个所述局部哈希函数对所述R维二进制向量进哈希操作。
7.根据权利要求6所述的方法,其特征在于,使用所述R维二进制向量中的一维或多维二进制向量生成一个局部哈希函数的步骤包括设置所述局部哈希函数的输入参数为K ;以及随机从所述R维二进制向量中选取K维二进制向量,将所述K维二进制向量进行拼接作为所述局部哈希函数的返回值,其中,K < R。
8.根据权利要求I至5中任一项所述的方法,其特征在于,在与查询得到的所述表项对应的候选图像中识别与所述输入图像相似的图像的步骤包括计算所述输入图像的图像签名与每个所述候选图像的图像签名之间的空间距离;以及按照空间距离的大小来识别所述候选图像与所述输入图像的相似度,其中,空间距离越小的所述候选图像与所述输入图像的相似度越高。
9.根据权利要求8所述的方法,其特征在于,按照空间距离的大小来识别所述候选图像与所述输入图像的相似度之后,还包括按照所述空间距离的大小输出所述候选图像。
10.根据权利要求3所述的方法,其特征在于,在分别使用L个局部哈希函数对所述图像签名进行哈希操作之前,通过以下步骤预先建立所述L个哈希表分别使用L个局部哈希函数对与每个待存储的图像的内容对应的图像签名进行哈希操作,得到L个第三哈希值,其中,L为自然数;使用一个全局哈希函数分别对所述L个第三哈希值进行哈希操作,得到L个第四哈希值;以及将第j个第四哈希值以及该第四哈希值对应的图像标识和图像签名记录到第j个哈希表中,其中,j = L ... L0
11.一种相似图像的识别装置,位于图像服务器上,其特征在于,包括获取单元,用于获取与输入图像的内容信息对应的图像签名;哈希操作单元,用于对所述图像签名进行哈希操作;查询单元,用于在预先存储的哈希表中查询与所述哈希操作的结果相对应的表项;以及识别单元,用于在与查询得到的所述表项对应的候选图像中识别与所述输入图像相似的图像。
12.根据权利要求11所述的装置,其特征在于,所述获取单元包括转化模块,用于将所述输入图像转化为灰度图像;计算模块,用于将所述灰度图像分成NXN的子图像,并对每个所述子图像分别从M个方向上计算边缘直方图,得到NXNXM个计算结果,其中,所述N和M均为自然数;以及生成模块,用于将所述灰度图像对应的NXNXM个计算结果组合成作为所述图像签名的NXNXM维向量。
13.根据权利要求11所述的装置,其特征在于,所述哈希操作单元包括第一哈希处理模块,用于分别使用L个局部哈希函数对所述图像签名进行哈希操作,得到L个第一哈希值,其中,L为自然数;以及第二哈希处理模块,用于使用一个全局哈希函数分别对所述L个第一哈希值进行哈希操作,得到L个第二哈希值。
14.根据权利要求13所述的装置,其特征在于,所述查询单元包括查找模块,用于在每个所述第二哈希值对应的所述哈希表中查找是否存在记录有该第二哈希值的表项,其中,所述哈希表中的每个表项记录了一个图像的哈希值和图像标识,或者,所述每个表项记录了一个图像的哈希值、该图像的图像标识以及图像签名;以及添加模块,用于在存在记录有该第二哈希值的表项时,将查找到的表项所记录的图像添加到所述候选图像中。
15.根据权利要求13或14所述的装置,其特征在于,所述第一哈希处理模块包括转换子模块,用于将所述图像签名转换成R维二进制向量,其中,R为自然数;生成子模块,用于使用所述R维二进制向量生成L个所述局部哈希函数,其中,每个所述局部哈希函数由所述R维二进制向量中的一维或多维二进制向量生成;以及哈希操作子模块,用于使用L个所述局部哈希函数对所述R维二进制向量进哈希操作。
16.根据权利要求15所述的装置,其特征在于,所述生成子模块包括设置子模块,用于设置所述局部哈希函数的输入参数为K ;以及处理子模块,用于随机从所述R维二进制向量中选取K维二进制向量,将所述K维二进制向量进行拼接作为所述局部哈希函数的返回值,其中,K < R0
17.根据权利要求11至14中任一项所述的装置,其特征在于,所述识别单元包括计算模块,用于计算所述输入图像的所述图像签名与每个所述候选图像的图像签名之间的空间距离;以及识别模块,用于按照空间距离的大小来识别所述候选图像与所述输入图像的相似度,其中,空间距离越小的所述候选图像与所述输入图像的相似度越高。
18.根据权利要求17所述的装置,其特征在于,还包括输出单元,用于在按照空间距离的大小来识别所述候选图像与所述输入图像的相似度之后,按照所述空间距离的大小输出所述候选图像。
19.根据权利要求13所述的装置,其特征在于,还包括哈希表建立单元,用于在所述第一哈希操作模块分别使用L个局部哈希函数对与所述输入图像的内容对应的图像签名进行哈希操作之前,分别使用L个局部哈希函数对与每个待存储的图像的内容信息对应的图像签名进行哈希操作,得到L个第三哈希值,其中,L为自然数;使用一个全局哈希函数分别对所述L个第三哈希值进行哈希操作,得到L个第四哈希值;将第j个第四哈希值以及该第四哈希值对应的图像标识和图像签名记录到第j个哈希表中,其中,j = !,...L0
全文摘要
本申请提供了一种相似图像的识别方法和装置,用于获取与输入图像的内容信息对应的图像签名,对图像签名进行哈希操作,在预先存储的哈希表中查询与哈希操作的结果相对应的表项,并在与查询得到的表项对应的候选图像中识别与输入图像相似的图像。本申请解决了现有图像识别技术中所存在的容错性问题,使得能够准确地识别出所需的相似图像。
文档编号G06F17/30GK102622366SQ20111003170
公开日2012年8月1日 申请日期2011年1月28日 优先权日2011年1月28日
发明者薛晖 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1