基于内容的复制图像检测方法

文档序号:6605360阅读:180来源:国知局
专利名称:基于内容的复制图像检测方法
技术领域
本发明属于计算机图像检索领域,涉及一种从图像库中快速检测复制图像的方法。
背景技术
随着数码拍摄设备的普及,数字图像已经成为重要的信息存储和传递的媒介,同 时数字图像也越来越多地被发布到互联网上。在海量网络图像数据的检索过程中,如何在 返回的检索结果集中去除复制的或者相似的图像来提高检索的有效性具有重要的实际意 义。在个人电脑系统中,快速的图像复制检测系统有助于整理个人计算机中的大量图像,去 除不需要的重复图像,节省存储资源。另外,在很多实际应用中制作的图像具有商业用途, 并受版权保护,该类图像是被禁止随意拷贝和发布的。快速的复制图像检测技术对保护图 像的版权具有实际的应用价值。近年来,已有一些研究机构和个人开展了这方面的研究工作,提出了一些方法。在 图像版权保护方面,主要采用嵌入式复制检测技术,其主要将特定意义的标记(水印),利 用数字嵌入的方法隐藏在数字图像中。其目的在于检测盗版行为时,可以从数字图像中提 取这些信息,从而证明原作者对作品的所有权。数字水印技术主要用于证明原作者对图像 的版权,不适用于从大规模图像库中检索可能存在侵权的图像。另一种图像复制检测的技术是采用数字签名方法。数字签名方法是从图像中提取 不变特征,然后生成摘要,并将摘要与图像捆绑在一起。最为常用数字签名方法是根据图像 内容生成Md5值,并将Md5值作为图像的签名。该类方法不能应对图像变换的影响。只要 对原图稍作修改,重新生成的图像就会有不同的Md5值。所以该方法无法检测相似图像。另外一种方法是采用基于内容的图像复制检测方法,本发明属于该类方法。该类 方法根据图像的内容生成一个指纹来检测待测图像是否为原图像的拷贝。已有的方法都采 用高维向量作为图像的指纹,其在检测过程中,需要将待测图像的指纹与图像库中的图像 指纹计算相似距离。随着图像库中图像的增大,其性能急剧下降,所以其在大规模图像库 中,性能较差。

发明内容
本发明针对现有技术的不足,提供了一种基于内容的复制图像检测方法。本发明方法的具体步骤为步骤(1)将输入图像进行预处理操作;所述的预处理操作是进行输入图像归一化 操作,即将输入图像缩小或放大到设定的尺寸。步骤(2)对预处理后的图像计算图像中每个像素的哈希值;所述的像素的哈希值 是根据图像中像素的颜色值和相邻像素的颜色值来确定的。步骤(3)根据获得的像素哈希值计算图像的相似哈希值(SimHash)。所述的 SimHash计算为成熟的算法,该算法中的每个像素的哈希值权重weight由像素在图像中的位置权重P和该像素与相邻像素的最大颜色差权重c决定,即weight = p+c ;如果像素位 置(x,y)符合下述条件Width/4 < X < width X 3/4 且 Height/4 < y < height X 3/4 则 p = 2 ;否则 p = 1 ;如果该像素与相邻像素的最大颜色差大于阈值,则c = 2,否则c = 1。其中width 和height为图像的宽和高。步骤(4)根据获得的图像SimHash检索图像数据表,如果该图像SimHash与数据 表中图像A的SimHash的汉明距离小于设定的值,则图像A为该图像的复制图像;如果该图 像SimHash与数据表中图像A的SimHash的汉明距离大于等于设定的值,则图像A不是该 图像的复制图像,所述的图像A为图像数据表中的任意一个图像。步骤(5)更新图像数据表,将输入图像的SimHash添加到图像数据表,等待下一个 输入图像,重复步骤(1)。本发明相对于现有技术具有以下有益效果本发明在大规模图像库中具有实时的 处理速度;同时该方法能够适应图像变换(颜色量化、尺度变换、logo添加等)带来的影 响。


图1表示本发明的流程图;图2表示本发明中SimHash的分组结构图;图3表示本发明中存储所有图像的SimHash的表结构图;图4表示SimHash列表根据G1的有序分组的表结构图;图5表示快速取得汉明距离的索引表。
具体实施例方式下面将结合附图对本发明加以详细说明,应指出的是,所描述的实施例仅便于对 本发明的理解,而对其不起任何限定作用。本发明方法的具体步骤为步骤(1)将输入图像进行预处理操作;所述的预处理操作是进行输入图像归一化 操作,即将输入图像缩小或放大到设定的尺寸。步骤(2)对预处理后的图像计算图像中每个像素的哈希值。所述的像素的哈希值 是根据图像中像素的颜色值和相邻像素的颜色值来确定的。步骤(3)根据获得的像素哈希值计算图像的相似哈希值(SimHash)。所述的 SimHash计算为成熟的算法,该算法中的每个像素的哈希值权重weight由像素在图像中的 位置权重P和该像素与相邻像素的最大颜色差权重c决定。即weight = p+c ;如果像素位置(x,y)符合下述条件Width/4 < x < width X 3/4 且 Height/4 < y < height X 3/4 则 p = 2 ;否则 p = 1 ;其中width和height为图像的宽和高。如果该像素与相邻像素的最大颜色差大于阈值,则c = 2,否则c = 1。步骤(4)根据获得的图像SimHash检索图像数据表,如果该图像SimHash与数据表中图像A的SimHash的汉明距离小于设定的值,则图像A为该图像的复制图像;如果该图 像SimHash与数据表中图像A的SimHash的汉明距离大于等于设定的值,则图像A不是该 图像的复制图像,所述的图像A为图像数据表中的任意一个图像;步骤(5)更新图像数据表,将输入图像的SimHash添加到图像数据表,等待下一个 输入图像,重复步骤(1)。在本发明中,其输入的图像可以是各种图像获取设备获取的图像,例如数码相机 拍摄得到的图像、带拍摄功能的移动电话、带摄像功能的PDA或者可以是视频图像中的一 帧等。如果输入图像是模拟信号,需要一个数模转换工具,把模拟图像转换为数字图像进行 处理。本发明方法处理的图像可以针对各种图像编码格式,例如JPEG、BMP等,只要能将该 格式的图像转换为位像即可。在此实施例中假定输入的图像已经是位像。在以下 的叙述中,图像就是指数字图像,不再具体指明。本实施例中主要介绍在大规模图像库中检 测复制图像方法。其可用于图像数据的整理、图像检索系统的去重和图像内容拷贝检测系 统,但是本发明方法同样可以适用其它需要检测复制图像的应用场合。下面将参考附图进一步介绍本发明的实施例。图1是一个流程框图,表示了本发明的流程图。图1中图像预处理单元,主要包括 图像的尺度变换。尺度变换将输入图像归一化到设定的尺度,在此实施例中,归一化的图 像大小为800X800。图像尺度变换方法采用四近邻双线性内插值法。同时,本实施例中, 采用像素的灰度值来计算像素的哈希值,所以本预处理单元中,需要将彩色图像变换为灰 度图像。灰度化方法采用BT709算法,S卩R、G、B三个通道的权重分别为0. 2125,0. 7154, 0.0721。参考图1中计算像素哈希值单元,通过像素和局部相邻像素的颜色值构建像素哈 希值;计算像素的哈希值可以在彩色图像上进行,也可以在灰度图像进行,其关键是利用像 素的哪些特征。像素哈希值是图像中某个像素点局部特性的一种描述,并采用一个哈希值 来表示。哈希值的位数可以根据需要设定不同的大小,主要考虑图像库中图像的数量。在 本实施例中,像素哈希值大小为54位的二进制数。对预处理后的图像中的每个像素提取相 邻像素的灰度值。相邻像素为八连通的邻接八个像素。相邻八个像素的灰度值和像素本身 的灰度值形成了九个灰度值。根据该九个像素的灰度值,计算该像素的哈希值。像素哈希 值的计算过程如下首先,为了消除噪声影响,将九个像素的灰度值均右移2位,这样每个 灰度值就可用6位的二进制数表示;然后,将像素及邻接像素的6位二进制值,按照顺时针 方向依次排列到54位二进制值中,从而构建了一个54位的哈希值。对预处理后图像的每 个像素,计算像素的哈希值,根据这些像素哈希值来计算图像的SimHash值。参考图1中计算图像SimHash单元,根据计算像素哈希值单元获得的图像像素哈 希值集合,通过统计每个位上出现0或1的次数和每个像素哈希值的权重来得到图像的 SimHash值。在本实施例中,像素哈希值为54位的值,所以SimHash也为54位的值,其均勻 分布可以描述254数量的图像。其计算的伪代码如下int [] SumHash ;// 临时变量ulong simHash = 0 ;// 图像的 SimHash 值foreach (像素哈希值hashVal) {//计算图像的每个哈希值for (int i = 0 ;i < 54 ;i++) {
5
if (hashVal[i] ==1)
SumHash[i]+ = weight ; else
SumHash[i]- = weight ;
for(int j = 0 ;j < 54 ;j++) { if(SumHash [j] > 0)
simHash+ = pow(2, j);该SimHash计算方法,根据像素哈希值每个位上的0或1值来确定是否在SumHash 的对应位上加上还是减去该像素哈希值的权重。然后判断SumHash每个位上是否大于0来 确定SimHash对应位上是否为1。其中weight为该像素哈希值的权重。其是根据该像素在图像中的位置权重p和 该像素与相邻像素的最大颜色差权重c来确定。其计算公式为weight = p+c ;如果像素位置(x,y)符合下述条件Width/4 < x < widthX 3/4 且 Height/4 < y < height X 3/4贝lj,p = 2 ;否则p = 1 ;其中width和height为图像的宽和高。假定该像素与邻接像素的最大灰度差为g,如果g大于阈值(th),则c = 2,否则c =1。根据所得P和c就可以得到像素的权重weight,从而实现最终的SimHash计算。参考图1中检索SimHash单元,是从SimHash列表中查找汉明距离小于设定值的 SimHash值。判断两幅图像是否是复制图像是基于两幅图像对应的SimHash值汉明距离的 大小,汉明距离越小两幅图像越相似。在本实施例中,两个SimHash值的汉明距离小于4即 判断该Simhash值对应的两幅图像是复制的。为了判断一幅图像是否是图像库中的其它图 像的复制,需要计算该图像的SimHash与图像库中所有图像的汉明距离。当图像库中的图 像数量急剧增大时,该查找方法需要极大的计算量。本发明采用不断消减的策略检索汉明距离小于设定值的SimHash。该检索 SimHash策略采用两种具体的方法。方法一,采用分组有序方法确定可能的汉明距离小于设 定值的SimHash ;方法二,对候选SimHash,根据汉明距离必需小于设定值这一个条件,排除 不满足条件的SimHash。本实施例采用两者的融合的方法。先采用分组有序方法确定可能 的汉明距离小于设定值的SimHash,然后采用某个组中汉明距离必须小于设定条件排除不 满足条件的SimHash来加快查找的速度。方法一分组有序方法是将SimHash值分为多个组。根据其中一组的值实现 SimHash列表的有序化。这样构建了不同的有序表。依据汉明距离小于4的变化位最多只 能在多组中的3组出现,那么其它组的值应该与查找的SimHash值一致,也就可以通过有序 查找的方法实现。在确定了其它组之后再对匹配的SimHash值进行汉明距离的计算。在 本实施例中,对54位的SimHash值分为11、11、11、11、10五组,见附图2。然后对图像库 的SimHash列表构建5份拷贝的列表。每个SimHash列表按每组的值排序。其中第1组拷 贝(G1组)数据结构见附图4,其它的组结构类似。比如图像库中有两幅图像(a和b),其SimHash 值二进制表示分别为:a、100100110010010110001011101011011010011100101010 10,b、01010101011011001010100100111001010011010101100110。按第 1 组排序结果为b、 a ;按第2、3、4、5的排序结果为a、b,b、a, b、a,a、b。在检索SimHash值时,首先查找每个 拷贝的SimHash列表中与待查SimHash某个组中的值一致的SimHash值候选集合,然后从 候选SimHash值集合中计算SimHash的汉明距离,获取汉明距离小于设定值的SimHash值。 举例来说,假定待查的 SimHash 值(e)为1001001100 10110110001011001011 0110100101 0010101010,从第1组有序列表中,用二分法快速地查找G1组值1001001100,查找到列表 中,a为候选;然后计算3与6的汉明距离为3。从第二组有序列表中,同样用二分法快速 查找G2组值1011011000,没有查找到匹配的SimHash值。同样从第3、4组中也没有发现 匹配的SimHash值。在第5组中,查找到a匹配,计算a与e的汉明距离为3。由于通过分 组有序,有序的SimHash列表可以快速地通过二分法进行查找,所以其效率非常高。通过 二分法查找,可以去除大量的不可能的SimHash值。如果SimHash均勻分布,对于2"1数量 的图像,其每组可能的候选的SimHash值均值为1,也就是通过5次二分法查找和汉明距离 计算就可以查找到汉明距离小于4的汉明距离。如果不采用有序分组方法,则需要对每个 SimHash计算汉明距离,其计算量为21Q次。方法二的排除不满足汉明距离必需小于设定值条件的方法,首先将SimHash分 组,存储两个组的汉明距离,可以通过两个组的值构建索引访问汉明距离的大小。在进行 查找时,对输入的SimHash首先进行分组,然后按汉明距离必须小于设定的约束,不断的删 减可能的候选SimHash,未被删除的即为查找到的SimHash。举例来说,图像库中有两幅图 像(a 和 b),其 SimHash 值二进制表示分别为:a、10010011001001011000101110101101101 001110010101010, b.OlOlOlOlOllOllOOlOlOlOOlOOlllOOlOlOOllOlOlOllOOllOo 待查的 SimHash 值(e)为:10010011001011011000101100101101101001010010101010,首先根据方 法一有序分组方法,在G1有序SimHash列表中获取对应的候选SimHash索引集合,其结果 集合中仅包括a ;然后对a获取G2组的值(1001011000),并与e的G2组的值(1011011000) 连接成一个值(10010110001011011000)作为索引从汉明距离索引表(见附图5)中获取汉 明距离,从而可以快速地得到汉明距离为1。由于汉明距离为1没有大于给定的3,所以a仍 旧是一个可能的候选值,然后对不同列表中的值根据上述相同的方式,计算G3组中的汉明 距离,其保证已计算的汉明距离必须小于4,对大于等于4的SimHash,则进行丢弃;计算到 G5组后得到候选列表即为汉明距离与待测图像汉明距离小于4的SimHash。同样的方式, 我们计算G2、G3、G4、G5有序列表得到可能的SimHash值,从而可以得到对应图像的复制图 像。方法二的消减策略是通过预先存储汉明距离结果,并用索引快速进行访问来提高计算 汉明距离的效率。同时,该方法每计算一组值就可以排除不能的SimHash值,从而提高了查 找的速度。参考图1中图像索引表单元,构建用于SimHash查找和更新的数据表。数据表的设 计对SimHash的查找和更新具有极大的影响。为了快速查找相似的图像,本方法构建的图 像索引表结构,有三部分组成分别为SimHaSh列表和对应的图像名(附图3)、汉明距离表 (附图5) .SimHash列表的分组表(附图4)。SimHash列表用于存储获得的图像的SimHash 值,并且对应其图像的文件名。汉明距离表用于存储两个数之间按位不同构建的汉明距 离,此表用于通过索引来获取两个数之间的汉明距离。其本质是一个数组,索引位置index=numl*Count(Bl)+num2 ;numl和num2分别为需要计算汉明距离的两个数;Count (B1)为 num2的位数。分组有序列表是一个锯齿形二维数组。根据分组的值作为索引把数据放置到 对应索引位所在的可变长度数组中。参考图1中更新索引表单元,增加新的SimHash到数据表中。首先,通过将输入图 像的SimHash值添加到SimHash列表的末尾;然后,根据输入图像的SimHash在SimHash列 表中的位置(idx)将idx添加到所有分组有序SimHash表中。由于采用有序数组的结构, 在更新时,只需0(1)的复杂度。前面已经具体描述了本发明的实施方案,应当理解,对于一个具有本技术领域的 普通技能的人,在不背离本发明的范围的情况下,在上述的和在权利要求中特别提出的本 发明的范围内进行变化和调整能同样达到本发明的目的。
权利要求
基于内容的复制图像检测方法,其特征在于该方法包括如下步骤步骤(1)将输入图像进行预处理操作,所述的预处理操作是进行输入图像归一化操作,即将输入图像缩小或放大到设定的尺寸;步骤(2)对预处理后的图像计算图像中每个像素的哈希值;所述的像素的哈希值是根据图像中像素的颜色值和相邻像素的颜色值来确定;步骤(3)根据获得的像素哈希值计算图像的相似哈希值,所述的相似哈希值计算算法中的每个像素的哈希值权重weight由像素在图像中的位置权重p和该像素与相邻像素的最大颜色差权重c决定,即weight=p+c;如果像素位置(x,y)符合下述条件,则p=2;Width/4<x<width×3/4且Height/4<y<height×3/4如果x或y不在上述范围内,则p=1;如果该像素与相邻像素的最大颜色差大于阈值,则c=2,如果该像素与相邻像素的最大颜色差小于等于阈值,则c=1;其中width为图像的宽,height为图像的高;步骤(4)根据获得的图像相似哈希值检索图像数据表,如果该图像相似哈希值与数据表中图像A的相似哈希值的汉明距离小于设定的值,则图像A为该图像的复制图像;如果该图像相似哈希值与数据表中图像A的相似哈希值的汉明距离大于等于设定的值,则图像A不是该图像的复制图像,所述的图像A为图像数据表中的任意一个图像;步骤(5)更新图像数据表,将输入图像的相似哈希值添加到图像数据表,等待下一个输入图像,重复步骤(1)。
全文摘要
本发明涉及一种基于内容的复制图像检测方法。现有的方法处理速度慢、无法处理大规模的图像库。本发明方法步骤首先将输入图像进行预处理操作;其次对预处理后的图像计算图像中每个像素的哈希值,根据获得的像素哈希值计算图像的相似哈希值;然后根据获得的图像相似哈希值检索图像数据表,确定图像数据表中有无复制图像;最后更新图像数据表,将输入图像的相似哈希值添加到图像数据表,等待下一个输入图像。本发明方法处理速度快,能够适应图像变换带来的影响。
文档编号G06F17/30GK101887457SQ201010218350
公开日2010年11月17日 申请日期2010年7月2日 优先权日2010年7月2日
发明者吴海虹, 姚金良, 王大全, 王小华, 王荣波, 谌志群, 陆蓓 申请人:杭州电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1