一种基于哈希编码的无监督图像检索方法与流程

文档序号:13136919阅读:568来源:国知局
一种基于哈希编码的无监督图像检索方法与流程

本发明涉及数字图像处理领域,更具体地,涉及一种基于哈希编码的无监督图像检索方法。



背景技术:

近年来,随着计算机网络、多媒体技术及数字化图像设备等的发展,数字图像技术已渗透到社会的方方面面,例如大众媒体、军事航天、家庭生活等。在此背景下,随之而来的是越来越大规模的图像数据库,如何在庞大的数据库中快速地检索图像演变为刻不容缓的关键问题。早期图像检索常用的技术是语义标签来,但语义标签并没有一个明确的标准,即不同的人对同一张图片的理解不同,所选择的语义标签也不同。因此以语义标签作为检索标准并不能取得理想的效果。另外,随着数据库规模的扩大,对所有图片设置语义标签变得越来越复杂,人们需要一种新的解决方式使工作者从繁琐的设置标签的工作中解脱出来。利用标签进行学习的方式被称作监督学习,所以关键点就演变为寻找无监督的学习方式进而减少人工设置标签的繁重任务。

众所周知,视频是互联网上一种非常容易得到的资源,能不能使用视频进行图像检索呢?一般而言,同一个视频里相近的帧的画面要比不同视频中画面相似度高,在深度特征空间中,来自同一视频中的图像间的距离要比来自不同视频的图像距离小。



技术实现要素:

本发明提供一种利用视频进行图片检索的基于哈希编码的无监督图像检索方法。

为了达到上述技术效果,本发明的技术方案如下:

一种基于哈希编码的无监督图像检索方法,包括以下步骤:

s1:采集图片库数据;

s2:建立训练集完成对图片库过滤噪声的操作,得到检索模型;

s3:进行图像检索的训练进而完成检索。

进一步地,所述步骤s1的具体过程是:

针对不同的类别下载若干个视频,然后在视频中每隔5秒截取一帧图片,直到每类包含若干张图片,把每一类的图片聚在一起,即得到图片库数据。

进一步地,所述步骤s2的具体过程是:

s21:在图片库上训练一个分类器,利用图片库中所有的图片对分该类器进行训练;

s22:将所有图片放入训练好的分类器中,分类器会对每张图片输出它对应于每一个类别的概率,记录这些概率值及对应类别,对于任一类别l,因为所有图片对于l均有一个概率值,对这些概率进行降序排序,并保存概率值排在前50%的图片,并将这些图片的类别设置为l,这样通过过滤排序获取到一个优质的训练子集;

s23:利用s22得到的训练子集重新训练一个新的分类器,将图片库中所有图片放入新的分类器,并保存每张图片属于每个类别的概率,由于图片库中的图片,已经有标记好的类别,所以如果该图片经过分类器得到的最大概率所对应的类别与标记类别不符,就认为这是一张噪声图片,需要舍去,对余下的图片按照步骤s222进行概率排序,并对每类选出前若干张图片作为优质资源;如果无法得到满足要求张数的图片,则说明图片库噪声太多,实验无法继续进行,此时应舍弃整个图片库,终止训练分类器,重新采集新的图片库数据;

s24:在从图片库中得到优质资源后,利用该资源按照步骤s21再次训练新的分类器,并保存模型,之后便回到步骤s22-s23,并且在以后的迭代中,步骤s24会替代步骤s21,如此进行分类器的循环交替训练,迭代一定次数后得到检索模型。

进一步地,所述步骤s3的具体过程如下:

s31:将图片库作为其中一支的输入,训练集作为另一支,网络中所有层均共享参数,进行共同训练;

s32:对图片采用哈希编码的方式进行图像检索,由于哈希码不可导,在训练时,添加一个双曲函数层将其映射到连续空间,并且将汉明距离改为欧氏距离进行计算;

s33:计算每次处理的一批图片中的所有两张图片的相似度,对于训练子集,如果两张图片标签相同,则相似度为1,否则为0,对于图片库中的优质资源,如果两个标签均相同,则相似度为2,如果只有第一个标签相同,则相似度为1,若二者第一个标签不同,则无论第二个标签同与否,相似度均为0;

s34:一共需要迭代5次,即图片库和训练集分别训练5次分类器,迭代5次之后,检索精度已经趋于收敛。

与现有技术相比,本发明技术方案的有益效果是:

本发明对视频进行处理得到图片库数据,然后在图片库上训练一个分类器,然后利用这个分类器在训练集上筛选出前一半优质的图片;用筛选出的图片重新训练一个分类器,再用这个分类器对图片库进行筛选;再用从图片库中筛选出的图片训练分类器,以此类推,对分类器进行迭代交替训练得到检索模型。

附图说明

图1为本发明流程示意图;

图2为实施例1中的处理过程示意图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示,本发明是一种基于哈希编码的无监督图像检索方法,既然是通过视频学习,首先要获得视频。将类别(类别是公共库中包含的图片种类,已知每个库有哪些种类的图片)外加一些形容词作为关键字在youtube上进行搜索,例如minibus,asianfemale,greenplant等,针对每个类别下载100个视频,然后在视频中每隔5秒截取一帧图片,直到每类包含约900张图片,最后把每一类的图片聚在一起,便形成了图片库。注意到图片库中每张图片有两个标签i和j,代表它取自第i类中的第j个视频。视频种类及截取到的图片数量如表1:

表1、视频中抽取的各类别图片的数量

在得到图片库后,就可以进行图像检索的学习。但学习后的效果并不理想,经过与两个经典的无监督算法itq和sh比较发现,训练模型在公共库上测试的结果几乎均劣于itq。经过观察发现,获取的图片库中存在大量的噪声,如图2,是从一个‘火车’类别的视频里截取的,其中真正是火车的图片很少,另外虽然有‘人’这一类别,但是下面图片流中的人会把它们标记为‘火车’,这是噪声的一大来源。因此,提出了通过一些算法去除图片库中的噪声,最终提高模型准确率。

提出了一种在图片库和公共库训练集(简称训练集)之间交替训练最终完成过滤噪声的方法。步骤如下:在图片库上训练一个softmax分类器,然后利用这个分类器在训练集上筛选出前一半优质的图片;用筛选出的图片重新训练一个softmax分类器,再用这个分类器对图片库进行筛选;再用从图片库中筛选出的图片训练分类器,以此类推,对分类器进行迭代交替训练:

1、由于没有分类器,并对训练集一无所知,因此只能利用图片库中所有的图片对分类器进行训练来获取一个模型;

2、将训练集中所有图片放入训练好的分类器中,分类器会对每张图片输出它对应于每一个类别的概率,记录这些概率值及对应类别。对于任一类别l,因为所有图片对于l均有一个概率值,对这些概率进行降序排序,并保存概率值排在前50%的图片,并将这些图片的类别设置为l。需要注意的是,如果这些图片中有概率值低于0.5的,将舍弃这张图片。由于概率小于整体的一半,理论上认为它不属于这一类,原因可能是图片比较复杂。这样通过过滤排序获取到一个优质的训练子集;

3、按照步骤1,利用上面得到的训练子集重新训练一个新的分类器,并保存得到的模型;

4、将图片库中所有图片放入最新的分类器,并保存每张图片属于每个类别的概率。由于图片库中的图片,已经有标记好的类别,所以如果该图片经过分类器得到的最大概率所对应的类别与标记类别不符,就认为这是一张噪声图片,需要舍去。上述工作结束后,我再对余下的图片按照步骤2进行概率排序,并对每类选出前300张图片作为优质资源。如果按照上述方法无法得到300张图片,则说明图片库噪声太多,实验无法继续进行,此时应舍弃整个图片库,终止训练分类器;

5、在从图片库中得到优质资源后,利用该资源按照步骤1再次训练新的分类器,并保存模型,之后便回到步骤2,并且在以后的迭代中,步骤5会替代步骤1(由于步骤1并不能从图片库中生成优质资源)。如此进行分类器的循环交替训练。

在迭代一定次数后,将进行图像检索的训练。首先可以得到一个从训练子集训练出的分类器,然后将图片库和训练集分别放入分类器中,按照之前方法得到优质资源和训练子集(这里所有图片均已被标注了标签)。我们想利用这两个部分的图片进行图像检索的训练,图片库中的图片有两个标签,而训练集中只有一个标签,因此我们设计了一个共享网络。将图片库作为其中一支的输入,训练集作为另一支,网络中所有层均共享参数,从而达到共同训练的目的。

在这里我们采用为图片进行哈希编码的方式来进行图像检索,对于相似的图片,其哈希编码的汉明距离相对的小。我们使用tripletranklossfunction来作为我们的损失函数。它的目的便是要保证相似图片的哈希码的距离小于不相似的图片。因为哈希码不可导,因此在训练时,我们加了一个tanh层(双曲函数)来将其映射到连续空间,并且将汉明距离改为欧氏距离进行计算。若y表示一张图片,h(y)表示它的哈希码,那么y1、y2的欧式距离的平方d(y1,y2)就可以通过下式计算如果用s(y1,y2)表示两张图片的相似度,主要目标满足d(yq,y+)<d(yq,y-),这里,yq,y+,y-满足s(yq,y+)>s(yq,y-)。

因此我们首先计算每次处理的一批图片中的所有两张图片的相似度。对于训练子集,如果两张图片标签相同,则相似度为1,否则为0.对于图片库中的优质资源,如果两个标签均相同,则相似度为2,如果只有第一个标签相同,则相似度为1,若二者第一个标签不同,则无论第二个标签同与否,相似度均为0。这样,我们的损失函数就可以表示为:

l(yq,y+,y-)=max{0,ι[s(yq,y-)]×g+d(yq,y+)-d(yq,y-)}

s.t.s(yq,y+)>s(yq,y-)

在函数中,g表示两个标签的距离,ι[·]是一个指示函数。如果s(yq,y-)=0则ι[·]=1,否则ι[·]=0

这么做是因为损失函数会遇到两种情况。三张图片中前两张来自同一类和三张图片均来自同一类,其中后者只发生在图片库那一支,对于这两种情况,我们应设置不同的阈值。那么我们最终的目标函数就可以表示为:

在反向传递的过程中,每个对象的导数也很容易求得,求导公式为

一共迭代了5次,即图片库和训练集分别训练了5次分类器。实验结果如表2,又在每次迭代后都进行了图像检索的训练,结果如表3,将表中数据转换为图,可以发现,在大约迭代5次之后,检索精度已经趋于收敛。

表2、不同训练集上对应不同长度哈希码的评估结果

表3、每次迭代之后不同长度哈希码的评估结果

这里注意到在svhn训练集上我们只迭代了一次,是因为我们的按照上述方法在我们的图片库中无法选出300张图片,事实上每类只有不到150张,这说明我们的图片库有相当大的噪声,因此我们舍弃了我们的图片库。在训练检索阶段也只使用了svhn训练子集的图片(对于共享网络而言,将图片库的分支权重设为了0)。

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

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