一种面向小样本场景的深度图像检索方法

文档序号:31053437发布日期:2022-08-06 09:19阅读:103来源:国知局
一种面向小样本场景的深度图像检索方法

1.本发明涉及一种面向小样本场景的深度图像检索方法,属于计算机视觉和图像检索领域,特别适用于可获得的训练样本数量较少的小样本场景。


背景技术:

2.随着数据的爆炸式增长,近似最近邻搜索在信息检索领域引起了越来越多的关注。作为近似最近邻搜索中一种经典的技术,哈希算法在保留原始数据相似性信息的同时,利用哈希函数将高维数据编码成二进制码。基于短二进制码表示,查询样本和数据库中样本的相似性可以用汉明距离来衡量。因此,结合哈希运算的近似最近邻搜索可以实现线性或次线性的时间复杂度,具有查询速度快、存储成本低等显著优势。
3.传统的哈希方法使用手工方法(如sift算子)生成用于二进制码学习的特征。而随着深度学习在计算机视觉领域取得了巨大成功,深度神经网络被引入哈希方法中,使表征学习部分和二进制码学习部分同时工作。在深度哈希中,网络提取的深度特征被用于生成二进制码。与此同时,二进制码学习提供反馈,指导深层网络的表征学习。
4.然而,目前的图像检索方法往往基于大量的训练样本,而现实中很多场景下可获得的训练样本数量收到限制,或者可利用的训练资源不足。另外,深度哈希的输出受到离散约束的限制。与分类任务等输出为每个类别的概率分布的任务相比,二进制输出从原始数据中保留的语义信息较少。因此在面对可获得的训练样本较少的场景时,语义信息的缺少使得二进制码学习部分不能很好地指导深度网络进行表征学习,从而进一步影响二进制码学习的效果。因此需要一种方法,能够克服深度哈希方法中信息损失的缺陷,从有限样本中获得更多有用的语义信息,来指导深度哈希进行表征学习。


技术实现要素:

5.本技术的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本技术的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
6.针对现有技术中存在的问题与不足,本发明目的在于提供一种面向小样本场景的深度图像检索方法,在可获得的学习样本较为稀疏的情况下,引入中间连续特征,从少量样本中挖掘更多的信息,指导深度网络进行表征学习,然后利用训练获得的哈希网络计算哈希码并数据库中进行检索。提升了图像检索的效率和精度,在面对小样本场景时更为鲁棒,以解决上述背景技术中提出的问题。
7.为实现上述目的,本发明提供如下技术方案:
8.本发明公开一种面向小样本场景的深度图像检索方法,包括如下步骤:
9.步骤1,获取图像数据集h作为数据库,从数据库中采样训练样本,并根据训练样本数据的标签计算训练样本间以及训练样本与数据库间的相似度矩阵;
10.步骤2,对所述训练样本随机图像增强生成样本副本,将其通过深度哈希网络映射
到连续空间中,以获得中间特征并计算对比损失函数lc;
11.步骤3,将学习到的所述中间表征映射为二进制码,结合所述训练样本间以及训练样本与数据库间的相似度矩阵计算二值损失函数;
12.步骤4,基于所述对比损失函数lc与二值损失函数构造总损失函数l;
13.步骤5,基于所述总损失函数l对深度哈希网络进行更新,基于所述训练样本间以及训练样本与数据库间的相似度矩阵与所述总损失函数l,对数据库样本的哈希码进行更新,直至网络收敛;
14.步骤6,对于外来图像样本,使用上述步骤5训练好的深度哈希网络对图像进行检索。
15.进一步的,所述步骤2的具体步骤为:
16.步骤2.1,对深度哈希网络进行初始化,所述深度哈希网络由一个卷积神经网络和两层全连接网络组成;
17.步骤2.2,对采样的所述训练样本分别进行两次随机的图像增强,得到正负两组样本副本,以构成最终训练数据集h
*

18.步骤2.3,使用所述卷积神经网络提取特征并通过其中一层所述全连接网络映射到l维空间中,得到中间特征ri,其中中间特征ri表示为连续向量;
19.步骤2.4,基于所述中间特征ri计算对比损失函数lc。
20.进一步的,所述步骤3的具体步骤为:
21.步骤3.1,使用所述全连接网络将中间特征ri映射为向量zi,再将向量zi转换为二进制码表示为ui=sign(zi),用tanh(
·
)近似sign(
·
)来保证可导;
22.步骤3.2,基于二进制码ui和训练样本间以及训练样本与数据库间的相似度矩阵计算二值损失函数,其中二值损失函数包括训练样本内损失函数lb和训练样本与数据库间损失函数lq。
23.进一步的,所述步骤4中基于所述对比损失函数lc与二值损失函数构造总损失函数l,将所述总损失函数l构造为l=lc+λ1lb+λ2lq,其中λ1,λ2为超参数。
24.进一步的,所述步骤5采用非对称的方式在训练过程中直接对数据库中的哈希码进行更新,其具体步骤为:
25.步骤5.1,固定深度哈希网络的参数,初始化数据库样本的二进制码v;
26.步骤5.2,将所述训练样本生成的两组样本副本的输出分别表示为u1和u2,令并将扩充成矩阵步骤5.3,将目标函数进行简化改写为
[0027][0028]
其中,const表示为常数项;
[0029]
步骤5.4,采用dcc算法按位对所述数据库样本的二进制码v进行优化,表示为:
[0030][0031]
其中,为的第k列,为除去第k列后剩下的矩阵部分,为v除去第k列后剩下的矩阵部分,q
*k
为q的第k列。
[0032]
进一步的,所述步骤6中对于外来图像样本进行检索的步骤为:
[0033]
步骤6.1,获取待检索的图像样本;
[0034]
步骤6.2,加载步骤5训练好的深度哈希网络;
[0035]
步骤6.3,计算所述待检索图像样本的二进制码与数据库中哈希码的汉明距离,并按升序排序;
[0036]
步骤6.4,返回排序靠前k个哈希码所对应的图像样本。
[0037]
进一步的,所述对比损失函数lc表示为:
[0038][0039]
其中,为该批训练样本中标签等于的样本个数,τ为温度系数,s
ij
为训练样本间的相似度矩阵。
[0040]
进一步的,所述训练样本内损失函数lb定义为:
[0041][0042]
其中,c为初始化设置二进制码v的长度。
[0043]
进一步的,所述训练样本与数据库间损失函数lq定义为:
[0044][0045]
其中,为训练样本与数据库间的相似度矩阵,ωi为训练样本在数据库中对应的索引,c,γ均为超参数。
[0046]
与现有技术相比,本发明的有益效果为:本发明提供了一种面向小样本场景的深度图像检索方法,具体步骤为:首先从数据库中采样少量训练样本,并根据标签计算训练样本间以及训练样本与数据库间的相似度矩阵;然后,通过随机图像增强生成正负样本映射到连续空间中,以获得中间特征并计算对比损失函数;将学习到的中间特征被映射为二进制码,结合相似度矩阵计算二值损失函数;结合二值损失函数与上一步骤的对比损失函数一同对深度网络模型进行更新。与此同时,基于训练样本间以及训练样本与数据库间的相似度矩阵以及损失函数,对数据库样本的哈希码进行更新。最后对于外来图像样本,使用训练好的深度哈希网络计算其哈希码,对数据库中的哈希码对图像进行检索。与现有深度哈希技术相比,本发明克服了二进制编码中的信息损失影响模型进行表征学习的问题,使得模型在训练样本较少的情况下也能取得较好的效果,尤其适用于训练样本稀疏以及训练资源受限的情况。
附图说明
[0047]
构成本技术的一部分的附图用来提供对本技术的进一步理解,使得本技术的其它特征、目的和优点变得更明显。本技术的示意性实施例附图及其说明用于解释本技术,并不构成对本技术的不当限定。
[0048]
在附图中:
[0049]
图1:为本发明的主要步骤示意图;
[0050]
图2:为本发明深度哈希网络训练的步骤流程示意图;
[0051]
图3:为本发明对于外来待检索图像样本的检索步骤流程示意图。
具体实施方式
[0052]
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0053]
另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
[0054]
本发明公开了一种面向小样本场景的深度图像检索方法,下面将参考附图并结合实施例来详细说明本公开。
[0055]
参照图1至3所示,主要包括以下步骤:
[0056]
步骤1,获取图像数据集h作为数据库,从数据库中采样训练样本,并根据训练样本数据的标签计算训练样本间以及训练样本与数据库间的相似度矩阵;
[0057]
步骤2,对训练样本随机图像增强生成样本副本,将其通过深度哈希网络映射到连续空间中,以获得中间特征并计算对比损失函数lc;
[0058]
步骤3,将学习到的中间表征映射为二进制码,结合训练样本间以及训练样本与数据库间的相似度矩阵计算二值损失函数;
[0059]
步骤4,根据对比损失函数lc与二值损失函数构造总损失函数l;
[0060]
步骤5,基于总损失函数l对深度哈希网络进行更新,基于训练样本间以及训练样本与数据库间的相似度矩阵与总损失函数l,对数据库样本的哈希码进行更新,直至网络收敛;
[0061]
步骤6,对于外来图像样本,使用上述步骤5训练好的深度哈希网络对图像进行检索。
[0062]
具体而言,首先获取图像数据集h={(xi,yi),i=1,2,

,m}作为数据库,其中xi表示图像向量,yi表示其所属类别标签,为one-hot向量。并初始化数据库样本对应的哈希码库,其中包括初始化数据库样本的二进制码v={vi,i=1,2,

,m},设置二进制码的长度c。
[0063]
在步骤2中,对训练样本随机图像增强生成样本副本,将其通过深度哈希网络映射到连续空间中,以获得中间特征并计算对比损失函数lc,具体步骤为:
[0064]
步骤2.1,对深度哈希网络进行初始化,深度哈希网络由一个卷积神经网络和两层全连接网络组成;
[0065]
步骤2.2,对采样的训练样本分别进行两次随机的图像增强,得到正负两组样本副本,以构成最终训练数据集h
*

[0066]
步骤2.3,使用卷积神经网络提取特征并通过其中一层全连接网络映射到l维空间中,得到中间特征ri,其中中间特征ri表示为连续向量;
[0067]
步骤2.4,基于中间特征ri计算对比损失函数lc[0068]
具体而言,从数据库中随机采样n个作为训练样本,代表可获得的训练数据,用于
构成训练样本集,这里n通常小于等于200。再对采样到的训练样本xi,,分别进行两次随机图像增强,使用包括裁剪、尺度变换、重新着色、高斯扰动等方法。由此得到两组样本副本对应标签满足构成最终训练数据集其中标签相同样本的互为正样本,标签不同的互为负样本。我们采取改进后的resnet50架构作为深度哈希模型,使用初始化后的卷积神经网络提取特征并通过其中一层全连接层映射到l维空间中得到中间特征ri,中间特征ri表示为连续向量,这里l我们设为128,可以视数据规模调整。基于中间特征ri计算对比损失函数lc,对比损失函数lc表示为:
[0069][0070]
其中,为该批训练样本中标签等于的样本个数,τ为温度系数,为训练样本间的相似度矩阵,当s
ij
=1代表样本属于同类别。
[0071]
在步骤3中,将学习到的中间表征映射为二进制码,结合训练样本间以及训练样本与数据库间的相似度矩阵计算二值损失函数,其具体步骤为:
[0072]
步骤3.1,使用全连接网络将中间特征ri映射为向量zi,再将向量zi转换为二进制码表示为ui=sign(zi),用tanh(
·
)近似sign(
·
)来保证可导;
[0073]
步骤3.2,基于二进制码ui和训练样本间以及训练样本与数据库间的相似度矩阵计算二值损失函数,其中二值损失函数包括训练样本内损失函数lb和训练样本与数据库间损失函数lq。
[0074]
具体而言,使用全连接网络将中间特征ri映射为向量zi,再将向量zi转换为二进制码表示为ui=sign(zi)。通常在实际训练中,我们用tanh(
·
)近似sign(
·
)来保证可导。基于二进制码ui和训练样本间以及训练样本与数据库间的相似度矩阵计算二值损失函数。二值损失函数包括训练样本内损失函数lb和训练样本与数据库间损失函数lq。训练样本内损失函数lb表示为:
[0075][0076]
其中,s
ij
为训练样本间的相似度矩阵,c为初始化设置二进制码v的长度,ui为中间表征映射的二进制码。训练样本与数据库间损失函数lq表示为:
[0077][0078]
其中,为训练样本与数据库间的相似度矩阵,ωi为训练样本在数据库中对应的索引,c,γ均为超参数。
[0079]
基于对比损失函数lc、训练样本内损失函数lb和训练样本与数据库间损失函数lq构造总损失函数l,因此将总损失函数l构造为l=lc+λ1lb+λ2lq,其中λ1,λ2为超参数。
[0080]
在步骤5中,基于总损失函数l对深度哈希网络进行更新,基于训练样本间以及训练样本与数据库间的相似度矩阵与总损失函数l,对数据库样本的哈希码进行更新,直至网
络收敛。具体步骤包括:
[0081]
步骤5.1,固定深度哈希网络的参数,初始化数据库样本的二进制码v;
[0082]
步骤5.2,将训练样本生成的两组样本副本的输出分别表示为u1和u2,令,令并将扩充成矩阵
[0083]
步骤5.3,将目标函数进行简化改写为
[0084][0085]
其中,const表示为常数项;
[0086]
步骤5.4,采用dcc算法按位对所述数据库样本的二进制码v进行优化,表示为:
[0087][0088]
其中,为的第k列,为除去第k列后剩下的矩阵部分,为v除去第k列后剩下的矩阵部分,q
*k
为q的第k列。
[0089]
具体而言,中的向量满足对于i=1,2,

,n,而其余向量均置为0。对应使用总损失函数l对深度哈希网络进行更新,基于训练样本间以及训练样本与数据库间的相似度矩阵与总损失函数l,对数据库样本的哈希码进行训练和更新。若网络训练更新至收敛时,输出模型和数据库中的哈希码库。若网络训练更新未收敛时,则重复上述步骤1至5。
[0090]
在步骤6中,在对外来图像样本进行检索时,可以直接根据训练阶段得到的哈希码库计算相似度,无需再对数据库样本进行哈希操作。具体对于外来图像样本进行检索的步骤如下:
[0091]
步骤6.1,获取待检索的图像样本;
[0092]
步骤6.2,加载步骤5训练好的深度哈希网络模型;
[0093]
步骤6.3,计算待检索图像样本的二进制码与数据库中哈希码的汉明距离,并按升序排序;
[0094]
步骤6.4,返回排序靠前k个哈希码所对应的图像样本。
[0095]
具体而言,首先,获取待检索图像样本;然后,加载上述步骤5中训练好的深度哈希网络,使用其计算出待检索图像样本的二进制码。其次,将待检索图像样本的二进制码数据库中哈希码(哈希码库)中的二进制码分别计算汉明距离,并将汉明距离按升序进行排序。最后,返回前k个二进制码将其对应的图像样本进行返回。其中,k由系统设置或视需要而定。
[0096]
以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1