图片指纹生成方法及装置与流程

文档序号:19993054发布日期:2020-02-22 02:28阅读:1067来源:国知局
图片指纹生成方法及装置与流程

本披露涉及一种图片指纹的生成方法和装置。



背景技术:

在网站中,不同用户可能会上传具有相同内容的视频文件和图片,即使是同一用户,也可能多次上传具有相同内容的视频文件和图片,所以网站中的视频文件和图片存在较为严重的重复问题。实际应用中,视频网站多以图片形式向用户展示视频文件,基于此,对用户上传的视频文件进行去重,需要对于重复图片进行确认,以便在向用户展示搜索结果时,能够对具有相同内容的视频文件和图片进行去重处理。

现有的基于图片的重复视频文件确定方法是:图片哈希技术,对于训练图像和查询图像都需要进行特征的提取,之后通过哈希函数的转化,压缩为一定数目的编码序列,该过程称为哈希编码。然后将得到的哈希编码,进行汉明距离的计算,在设置的汉明距离阈值范围内再对候选样本做欧式距离排序,也就是重排,最后返回检索到的图像,但是这种方法存在一定的缺点,对于图片的内容被篡改(图片内容被裁剪或者旋转),用哈希方法提取的指纹信息与被篡改后的指纹信息有很大的差异,也就是说,在视频文件和图片去重处理中,不会将这些具有实质相同内容的图片作为重复视频文件和图片予以考虑。这样,使得视频文件和图片去重效果不明显,用户体验较差。

基于以上,需要一种新的图片指纹生成方法,以解决上述的这些技术问题。



技术实现要素:

根据本披露的一个方面的实施例,提供一种图片指纹生成方法,包括:对图片进行预处理以得到预处理图片;使用已训练的神经网络对所述预处理图片提取图片指纹特征。

作为优选,对所述对图片进行预处理包括:将图片灰度化并进行缩小和分块,对于每个分块,计算其平均值;对于所述进行平均值计算后的图片进行二维离散余弦变换;进行二维离散余弦变换后,取其中的n个低频分量作为预处理后的特征。

作为优选,所述神经网络包括:三层全连接的神经网络,其中每层的节点个数分别为:n、n/2、m;其中,n属于[128,256],m属于[16,20]。

作为优选,对于所述神经网络的训练包括:采用图片单元集对神经网络进行训练,每个图片单元集包括三个图片(i,i+,i),其中,i为原始图片,i+为原始图片的攻击图片,i—为原始图片的不相关图片。

作为优选,所述的原始图片的攻击图片包括:对原始图片进行裁剪、旋转、对称变换、加噪声后所得到的图片。

作为优选,对所述神经网络的训练包括:使用损失函数来衡量i,i+,i—的距离,所述的损失函数作为标准用以使得所述神经网络尽可能地将i和i+靠近,并且将尽可能地将i和i—远离。

作为优选,其中,所述的损失函数包括:

max{0,||sign[fr(i)]-sign[fr(i+)]||h-||sign[fr(i)]-sign[fr(i-)]||h+c1}+max{0,||fp(i)-fp(i+)||l-||fr(i)-fp(i-)||l+c2};

其中,下标h代表海明距离,而下标l代表l1距离;f(i)是神经网络提取的16个维度的特征,所述16个维度的特征被量化为8位的无符号整数。

作为优选,采用以下方法的至少一种对神经网络进行优化迭代训练:遗传算法、粒子群算法。

根据本发明另一方面的一些实施例,提供一种图片指纹生成装置,包括非暂态存储介质,所述非暂态存储介质存储有指令集,所述指令集可以被处理器执行以实现:对图片进行预处理以得到预处理图片;使用已训练的神经网络对所述预处理图片提取图片指纹特征。

附图说明

此处所说明的附图用来提供对本披露的进一步理解,构成本披露的一部分,本披露的示意性实施例及其说明用于解释本披露,并不构成对本披露的不当限定。在附图中:

图1为本发明实施例的一种图片指纹生成方法的流程图;

图2为本发明实施例的对图片进行预处理的流程图;

图3为本发明实施例的图片单元集的示意图;

图4为本发明实施例的神经网络示意图。

具体实施方式

当结合附图来阅读时,将更好地理解前述概述以及某些实施例的以下详细描述。就图示出一些实施例的功能框的简图而言,功能框未必指示硬件电路之间的分割。因而,例如,可在单件硬件(例如通用信号处理器或一块随机存取存储器、硬盘等)或多件硬件中实施功能框中的一个或多个(例如处理器或存储器)。类似地,程序可为独立的程序,可结合成操作系统中的例程,可为安装好的软件包中的函数等。应当理解,一些实施例不限于图中显示的布置和工具。

如本披露所用,以单数叙述或以词语“一个”或“一种”开头的要素或步骤应理解为不排除所述要素或步骤的复数,除非明确陈述了这种排除。此外,对“一个实施例”的引用不意于被解释为排除也结合了所叙述的特征的另外的实施例的存在。除非明确陈述了相反的情况,否则“包括”、“包含”或“具有”具有特定属性的要素或多个要素的实施例可包括不具有那个属性的另外的这样的要素。

各种实施例提供一种图片指纹生成方法,图1给出了整体的流程图,在输入图片后,对图片进行预处理,得到预处理后的图片,然后将预处理后的图片输入至已训练好的神经网络以得到图片指纹。

图2示出了一些实施例中对于图片进行预处理的流程,预处理流程包括:

在201处,将图片灰度化,并缩小到256*256的大小;

在202处,将图片按照8*8的单元进行分块,得到32*32的分块,对于每个分块,计算其平均值;

在203处,对32*32的计算了平均值后的每个分块进行二维离散余弦变换(2ddct,two-dimensionaldiscretecosinetransform)以得到图片的频谱特征;

在204处,取频谱特征中的128个低频特征分量作为预处理后的图片特征,低频特征分量包括了图片的主要特征部分,这里省略了一些图片的不重要的特征(高频分量),从而可以节约后续的计算资源。本领域技术人员可以理解的是,这里不仅可以取128个低频分量,其它的合适的值也是可取的,例如可以取256个低频分量,或者取128-256中任意合适的数值。经过二维离散余弦变换后得到的低频分量以实数表示。

本领域技术人员可以理解,虽然上述实施例中选择了一些参数,例如图片缩小到了256*256,并对图片进行8*8的分块,但是其它合适的数值也是可以采用的。

图3示出了一些实施例中对于神经网络的训练中所使用的图片单元集,每个图片单元集包括三个图片(i,i+,i),其中,i为原始图片/样本,i+为原始图片的攻击图片/正样本,i为原始图片的不相关图片/负样本。例如,i是一张原始图片(例如但不限于:i是一张著名建筑的图片),那么i+是对i进行各种攻击的组合,各种攻击可以包括:对i的裁剪、旋转、对称变换、加噪声中的任意一种或它们的组合;而i是和i不相关的图片,例如:i是一张动物图片。通过上述特定设置的图片单元集对神经网络进行训练,可以使得神经网络不仅能区别出和原始图片不相关的图片,还可以区别出原始图片的各种无实质区别的变种(例如对于原始图片进行旋转变换后所得到的图片),从而本披露的技术方案可以准确地识别出各种对于原始图片的攻击图片并将它们进行去重处理。

在一些实施例中,样本集准备过程如下:

1、收集大量的图片组成训练图片集,例如10万张图片,训练图片集里面没有重复的图片;

2、从训练图片集中的10万张图片中选择一张图片,记为i;

3、对图片i,实时各种攻击变换,生成图片集i+

3.1)每5°生成一次旋转,共71张旋转的图片,

3.2)在4个方向随机裁剪一定比例,最大比例不超过40%,共100张图片;

3.3)裁剪和亮度变换结合,共1000张图片;

3.4)旋转与随机模糊结合,旋转和亮度变换结合共1000张图片;

图片集i+共生成71+100+1000+1000=2171张图片。

4、随即从10万张图片中选择除图片i以外的图片集i

实际操作过程中,图片集i的大小至少是图片集i+的大小2倍以上。

5、返回步骤2,直到所有的10万张图片都被选取过。

图4示出了一些实施例中神经网络的结构图,如图4所示意,神经网络4包括三个全同的部分401、402和403,对于其中每个部分而言,包括三层全连接的节点,每层的节点个数分别为:128,64,16;本领域技术人员应当理解的是:神经网络的第一层节点的个数应当对应于低频分量的选取数,例如:如果对图片进行预处理的过程中保留了128个低频分量,那么这里的神经网络的第一层节点的数目应当是128个,而如果对于图片进行预处理的过程中保留了256个低频分量,那么这里神经网络的第一层节点的数目应当是256个。

本领域技术人员还应当理解,虽然图4中示出了三个全同的部分,但是这仅仅是对应于一些实施例中的每个图片单元集包括三个图片而进行的设置。任意其它的结构也是可以的,例如,可以只采用401的神经网络,即依次对401的神经网络输入i,i+,i

在一些实施例中,将128个以实数表示的低频分量输出神经网络输入神经网络的第一层节点(128个节点),经过中间隐层之后,在输出层得到包括16个特征的输出,其中16个特征用于构建索引特性。

在一些实施例中,对于索引特性中的每个特征,如果包括两个可能性:0或1,那么16个特征总计可以实现216=65536中可能,也即是说:对于任意一张图片,经过神经网络处理之后,可以被划分为65536种中的一种。

可以看出:神经网络输出层的节点数决定了索引特性中的可能性数目,输出层的节点数越大,索引特性的可能性越多/越精细,虽然越多的可能性对应于更精确的分类,但是越多的可能性会消耗越多的计算量,发明人经过实践得到:输出层的节点数目选择在16-20会达到分量精确和计算量的平衡(trade-off),即:可以在合适的计算量下达到足够精确的分类。

在一些实施例对神经网络的训练中,采用损失函数作为神经网络训练中的标准,损失函数可以选择各种合适的方式,但是损失函数作为标准用以使得所述神经网络在分类的意义上尽可能地将i和i+靠近,并且将尽可能地将i和i—远离。

在一些实施例中,可以采用如下形式的损失函数:

max{0,||sign[fr(i)]-sign[fr(i+)]||h-||sign[fr(i)]-sign[fr(i-)]||h+c1}+max{0,||fp(i)-fp(i+)||l-||fr(i)-fp(i-)||l+c2};

其中:

f(i)是神经网络输出的包括16个特征的输出(索引特性),所述16个维度的特征被量化为8位的无符号整数;

||·||h表示海明距离;||·||l表示欧氏距离;

sign(*)表示符号函数,sign(x)={x>0?1:0},当x>0时,sign(x)=1,当x≤0时,sign(x)=0;

c1、c2分别为预设常数。

更加具体地,可以选择损失函数如下:

li=ltriplet(i,i+,i-)=max{0,||sign[f16(i)]-sign[f16(i+)]||h-||sign[f16(i)]-sign[f16(i-)]||h+const1}+max{0,||f64(i)-f64(i+)||l1-||f64(i)-f64(i-)||l1+const2}

其中i,i+,i分别代表三张图片;

const1,const2为设定的常数。

在一些实施例中,由于损失函数是离散的不可导的,采用遗传算法来对神经网络进行优化迭代,包括:

1、随机生成一定规模的相同类型的神经网络;

2、对每一个网络,在所有的训练集上进行评估,挑选性能比较好的网络保留下来;

3、对保留下来的网络进行演化算子操作,生成新的网络,替换掉没有保留下来的网络;

4、迭代步骤2-3预设次数,直到找到最优的网络。

本领域技术人员可以理解地是:除了遗传算法之外,其它一些算法,例如粒子群算法、差分进化算法、自适应协方差矩阵演化算法等也可以用于神经网络的迭代优化过程。

实施例中的神经网络经过上述的使用图片单元集和算法进行训练后,即可用于图片的分类和去重处理,对于输入的任意一张图片都可以得到相应的图片指纹,而对于任意图片的攻击图片(例如对于原始图片的旋转、裁剪变换),由于在训练的过程中特定地选择了损失函数以及三元图片单元集,使得本发明的神经网络可以有极高的准确率鉴别出攻击图片和原始图片属于分类意义下的“同样的”图片,从而可以准确而高效地实现图片的去重处理。

要理解的是,以上描述意于为示例性,而不是限制性的。例如,上面描述的实施例(和/或它们的各方面)可与彼此结合起来使用。另外,可在不偏离一些实施例的范围的情况下做出许多修改,以使具体情况或内容适于一些实施例的教导。虽然本文描述的材料的尺寸和类型意于限定一些实施例的参数,但实施例决不是限制性的,而是示例性实施例。在审阅以上描述之后,许多其它实施例对本领域技术人员将是显而易见的。因此,应当参照所附权利要求以及这样的权利要求所涵盖的等效体的全部范围来确定一些实施例的范围。在所附权利要求中,用语“包括”和“在其中”用作相应的用语“包含”和“其中”的易懂语言等效体。此外,在所附权利要求中,用语“第一”、“第二”和“第三”等仅作为标记使用,并且它们不意于对它们的对象施加数字要求。另外,不以手段加功能的格式来书写所附权利要求的限制,除非且直到这样的权利要求限制清楚地使用短语“用于…的手段”,跟随没有另外的结构的功能陈述。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域内的技术人员应明白,本披露的一些实施例可提供为方法、设备、或计算机程序产品。因此,本披露可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本披露可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

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

本书面描述使用示例来公开一些实施例,包括最佳模式,并且还使本领域任何技术人员能够实践一些实施例,包括制造和使用任何装置或系统,以及实行任何结合的方法。一些实施例的保护范围由权利要求限定,并且可包括本领域技术人员想到的其它示例。如果这样的其它示例具有不异于权利要求的字面语言的结构要素,或者如果它们包括与权利要求的字面语言无实质性差异的等效结构要素,则它们意于处在权利要求的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1