一种基于二阶VLAD稀疏自适应深度网络的图像分类方法与流程

文档序号:16694395发布日期:2019-01-22 19:20阅读:250来源:国知局
一种基于二阶VLAD稀疏自适应深度网络的图像分类方法与流程

本发明属于图像分类和深度学习技术领域,具体涉及一种基于二阶vlad稀疏自适应深度网络的图像分类方法。



背景技术:

深度学习模型已经在计算机视觉领域取得了优异的性能,主要的应用方向包括视觉分类,超分辨率成像,语义分割,目标检测和视觉跟踪。与传统的统计学习方法相比,深度学习模型具有两个主要优点:(1)通过端到端的训练方式可以获得特定计算机视觉任务的更适合的权重。(2)从大规模图像数据集中学习到的深层结构特征可以更好地描述原始图像。相比于传统的手工特征(sift特征或hog特征)方法,深度特征方法可以显著地提升性能。

考虑到端到端模型和深层特征的巨大优势,最近的一些工作将传统统计学习方法的领域知识嵌入到深度神经网络中,并以端到端的方式训练整个模型。这些新结构的神经网络不仅继承了领域专业知识,而且使所有参数更适合最终的应用任务。

特征编码是一种流行的视觉分类统计学习方法。在传统的特征编码框架中,特征编码方法是连接特征提取和特征池化的核心组件,并且对视觉分类性能影响很大。流行的特征编码方法包括硬编码、软编码、卷积稀疏编码、局部约束编码、局部特征聚合描述符(vlad)编码等。传统的特征编码方法中的所有算法组件(特征提取,字典学习,特征编码和分类器训练)都是相互独立的,因此学习到的参数对于图像分类来说可能不是最优的。此外,传统特征编码方法中使用的sift(尺度不变特征变换)特征不能很好地表示图像。最近,传统的vlad编码(netvlad)模型被扩展到称为netvlad的端到端模型。netvlad层结合深度cnn进行联合训练,以获得出色的图像分类和图像检索结果,此外,netvlad模型已经在动作分类领域证明了它的有效性。但是现有的netvlad模型仅使用来自空间尺度的一阶聚合信息,端到端特征编码网络的辨别能力尚未充分研究。



技术实现要素:

本发明为了克服现有netvlad模型,端到端特征编码网络的辨别能力尚未充分研究的缺点,提出一种基于二阶vlad稀疏自适应深度网络的图像分类方法。该方法在现有netvlad模型基础上,使用稀疏自适应软分配编码(sasac)的新编码方法作为权重系数,利用一阶和二阶vlad编码共同表示端到端的稀疏自适应二阶vlad模型(saso-vladnet),从多个卷积层提取卷积特征,通过由多个saso-vladnet构成的多路特征编码网络(m-saso-vladnet)产生最终的特征编码,最后通过全连接层和损失层输出分类损失。

本发明的目的具体通过如下技术方案实现。

一种基于二阶vlad稀疏自适应深度网络的图像分类方法,该方法使用端到端训练的多路特征编码网络,首先从多个卷积层后面的激活函数提取非线性的卷积特征,然后在每个卷积特征中计算相应的稀疏自适应二阶-局部特征聚合描述符saso-vlad(稀疏自适应二阶-局部特征聚合描述符)编码,最后汇总所有的saso-vlad编码,构建最终的多路径特征编码网络(m-saso-vladnet),通过全连接层和损失层输出分类损失;所述saso-vlad编码使用稀疏自适应软分配编码(sasac)来得到稀疏的权重系数,利用一阶和二阶vlad编码共同表示端到端的稀疏自适应二阶vlad模型(saso-vladnet)。

进一步地,在所述的稀疏自适应软分配编码(sasac)这一新的编码方法中,稀疏自适应软分配编码(sasac)层是多维高斯概率密度函数的变体,并通过端到端的方式自适应地学习所有参数,包括字典和方差参数;sasac层仅保留t个最大概率,并强制其他小概率为零以获得稀疏权重系数。

进一步地,所述端到端的saso-vlad构成saso-vladnet层,网络构成步骤为:

步骤3.1:使用卷积层的一个特定cnn特征fi通过sasac层和降维层后相乘得到一阶统计信息ξ1(fi);

步骤3.2:ξ1(fi)通过平均池化层后经过l2范数归一化,ξ1(fi)通过二阶层得到二阶统计信息ξ2(fi)后经过l2范数归一化,连接两个归一化输出后经过l2范数归一化得到最后输出;所述降维方法为仿射子空间方法。

进一步地,所述sasac层表达式为:

其中||.||2代表向量的l2范数,代表模型第i个图像特定卷积层特征的描述符集,这个描述符集合中一共有m个描述符,fij∈rd×1是fi的第j个描述符,d代表向量维度,ak∈rd×1,bk∈rd×1,vk∈r,(k=1,2,…,k)分别是fij的权值,fij的偏置以及归一化的偏置,这些参数都是saso-vladnet中的可训练参数。这些参数一共有k组,k表示具体的某一组参数的索引。k'表示满足集合st(fij)条件的若干组参数的索引。

st(fij)是满足如下条件的集合:

其中是st(fij)的互补集合,card(st(fij))是st(fij)的元素数。

进一步地,激活函数可以为sigmoid函数、tanh函数和relu函数中的一种;

进一步地,所述一阶统计信息ξ1(fi)表达式为:

代表模型第i个图像的特定卷积层特征的描述符集,这个描述符集合中一共有m个描述符,fij∈rd×1是fi的第j个描述符,d代表向量维度,λij(k)为权利要求4中的sasac层的编码系数,uk,μk为一阶统计信息中的降维矩阵和偏置,并且一共有k组降维矩阵和偏置,k表示具体的某一组降维矩阵和偏置的索引,(ukfij+μk)表示第k组仿射子空间层。降维矩阵和偏置都是saso-vladnet中的可训练参数。

进一步地,二阶统计信息ξ2(fi)利用协方差矩阵获得通道间的交互特征,二阶统计信息ξ2(fi)的表达

式为:

其中vec是将矩阵转换为相应列向量的向量运算。

进一步地,所述的saso-vladnet模型的前向操作首先更新深度网络的最终损失,然后将损失关于每个参数的梯度反向传播到输入以更新saso-vladnet层;所述输出的分类损失是标准的softmax损失。

进一步地,所述多路特征编码网络(m-saso-vladnet)同时使用低、中、高多个等级的卷积特征来训练多个特征编码网络。

进一步地,所述的完整模型的参数更新步骤包括:

步骤1:在每个saso-vladnet层获得初始化参数;

步骤2:通过每一个saso-vladnet编码和最终的softmax分类器来初始化最终的全连接层的权值;

步骤3:利用上述的初始化参数并基于端到端的训练方式,softmax分类器的梯度信息用于更新m-saso-vladnet中每一层的参数直到分类器损失曲线收敛为止。

与现有技术相比,本发明方法所提出的一种基于二阶vlad稀疏自适应深度网络的图像分类方法,具有如下优点:

对比netvlad模型,本发明的稀疏策略和二阶表示有效提高了图像分类的性能,多路径同时使用低、中、高等级特征来训练多个特征编码网络,比单级特征编码网络对图像特征的表示能力更强。

附图说明

图1是本发明方法的流程示意图;

图2是本发明方法中saso-vladnet层的网络结构图;

图3是本发明方法中m-saso-vladnet网络结构图。

具体实施方式

为了清楚地说明本发明的目的、技术方案及优点,以下结合附图及实施例,对本发明进行进一步详细说明。需指出的是,以下若有未特别详细说明之过程或符号,均是本领域技术人员可参照现有技术实现或理解的。应当理解的是,此处所描述的具体实施方案仅仅用以解释本发明,不应视为本发明专利的保护范围,本发明以所附权利要求为专利保护范围。此外,下面所描述的本发明各个实施方案中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,一种基于二阶vlad稀疏自适应深度网络的图像分类方法包括以下步骤:

步骤1:利用深度卷积神经网对图像进行预处理,选取特定l=4个卷积层,提取每个卷积层通过激活函数后的特征作为l=4个输入向量;

具体地,使用vgg-vd网络提取saso-vladnet的单级特征和m-saso-vladnet的多级特征,对于saso-vladnet来说,所提取的单级特征为vgg-vd网络的relu5_3卷积层的特征,对于m-saso-vladnet来说,所提取的多级特征为vgg-vd网络的relu5_1,relu5_2,relu5_3和pool5这4个卷积层的特征。所有图像的大小调整为448×448像素,用随机裁剪技术和随机镜像技术增强图像,使用灵活高效的深度学习库mxnet来实现深度cnn特征提取。

具体地,激活函数为sigmoid函数、tanh函数和relu函数中的一种。

步骤2:如图2所示,某一个特定卷积层特征(relu5_1,relu5_2,relu5_3和pool5中的一个)的saso-vladnet编码计算过程如下所示:

步骤2.1:使用一个特定卷积层的特征(relu5_1,relu5_2,relu5_3和pool5中的一个)fi通过稀疏自适应软分配编码(sasac)层和降维层后相乘得到一阶统计信息ξ1(fi);

步骤2.2:ξ1(fi)通过平均池化层后经过l2范数归一化,ξ1(fi)通过二阶层得到二阶统计信息ξ2(fi),ξ2(fi)经过l2范数归一化,连接两个归一化输出,再经过l2范数归一化得到saso-vladnet层输出。

具体地,对于saso-vladnet来说,前端的深度cnn由vgg-vd网络初始化,该网络是从大规模imagenet数据集预训练得到的,然后,利用一个特定cnn特征(relu5_1,relu5_2,relu5_3和pool5中的一个)来学习初始化字典初始化字典由vlfeat库中的k-means算法获得。在saso-vladnet模型中,一般选取k=128就能得到足够好的性能,因此设置k=128。

步骤3:代表模型第i个图像特定卷积层特征的描述符集,fij∈rd×1是fi的第j个描述符,d代表向量维度也即卷积特征的通道数目,对于vgg-vd网络来说,最后几层卷积特征的通道数目为512,所以在saso-vladnet中,d=512。

saso-vladnet层中新构造的sasac层表达式为:

其中||.||2代表向量的l2范数,代表模型第i个图像特定卷积层特征的描述符集,这个描述符集合中一共有m个描述符,fij∈rd×1是fi的第j个描述符,d代表向量维度,ak∈rd×1,bk∈rd×1,vk∈r,(k=1,2,…,k)分别是fij的权值,fij的偏置以及归一化的偏置,这些参数都是saso-vladnet中的可训练参数。这些参数一共有k组,k表示具体的某一组参数的索引。k'表示满足集合st(fij)条件的若干组参数的索引。

st(fij)是满足如下条件的集合:

其中是st(fij)的互补集合,card(st(fij))是st(fij)的元素数。

具体地,sasac层保持t个最大值,t的取值不能太大或太小,具体的t值由交叉验证确定。通过相关的实验验证,为了简便起见,一般设置t=5。

步骤4:利用仿射子空间方法进行降维;

saso-vladnet中的仿射子空间层为:rk=uk(fij-ck)=(ukfij+μk)

其中μk=-ukck∈rp×1,uk∈rp×d(k=1,2,...,k)是仿射子空间方法中的降维投影矩阵,p是子空间维数。p决定了最终的特征长度,为了使得特征表示有相对小的维度而有足够好的性能,一般设置p=128。

一阶统计信息ξ1(fi)的表达为:

具体地,(ukfij+μk)可看做卷积权重为uk,偏置为μk的1×1卷积层,可利用传统的cnn训练方法高效地训练端到端的仿射子空间层。

步骤5:二阶统计信息ξ2(fi)的表达式为:

其中vec是将矩阵转换为相应列向量的向量运算。

具体地,利用一阶特征的协方差矩阵获得特征通道间的交互表示,由于二阶统计信息是可微的,所以二阶统计信息层可通过端到端的方式进行训练。

步骤6:由于仿射子空间层和二阶统计量层可以用已有的端到端方法来进行训练,而sasac层是一个全新结构的网络层,这里给出sasac层的具体的反向传播函数来进行端到端的训练:

步骤6.1:sasac层表达式对每个k(k=1,2,...,k)等价于三个表达式:

sasac层等价表达式的第二个表达式可看做最大池化层的一种变种,该表达式保持t个最大值,强制剩余值为0;第三个表达式是归一化层获得归一化权重系数。

步骤6.2:对每个k,最终的分类损失j相对于sasac层输出的梯度为基于链式法则得到γij(k)和βij(k)的梯度表达式为:

步骤6.3:基于所述βij(k)(k=1,2,...,k)和sasac层等价表达式组的第二个表达式,可得到损失j相对于fij的梯度表达式:

步骤6.4:基于所述βij(k)(k=1,2,...,k)和sasac层等价表达式组的第二个表达式,可得到损失j相对于ak,bk,vk的梯度表达式:

步骤7:输入预处理的图像后,可以得到第i个图片的特定卷积层的卷积特征fi,fi的saso-vlad(稀疏自适应二阶-局部特征聚合描述符)表示的最终表达式为:

其中,l2norm是一个向量的l2范数归一化方法,ak,bk,vk,uk,μk(k=1,2,...,k)是saso-vladnet中的可训练参数。

具体地,ak,bk,vk,uk,μk(k=1,2,...,k)这些参数是通过端到端的方式学习得到的。

在saso-vladnet中的参数更新过程中,首先通过前向运算更新深度网络的最终损失,然后将损失关于每个参数的梯度反向传播到输入以更新整个saso-vladnet模型。

步骤8:当得到l=4个saso-vladnet编码(relu5_1,relu5_2,relu5_3和pool5卷积特征产生的编码)后,将这4个编码级联起来得到最终的m-saso-vladnet编码,如图3所示。m-saso-vladnet编码经过最终的全连接层、损失层得到分类损失,损失层是标准的softmax损失,记为:

其中,c是分类数量,1{}是指示函数,1{atruestate}=1,1{afalsestate}=0,yi代表第i个图像的类别标签,ρic是l=4个saso-vladnet(通过relu5_1,relu5_2,relu5_3和pool5产生的4个saso-vladnet编码)的全部预测分数:

其中,是第l(l=1,2,...,l)个全连接(fc)层的权重和偏置。

具体地,ρic进一步表示为:ρic=(gc)t[ξ(fi(1));ξ(fi(2));…ξ(fi(l))]+(bc)t

对训练好的saso-vladnet和m-saso-vladnet在目标图像数据集(caltech256数据集),细粒度图像数据集(cub200数据集,standfordcar数据集)和纹理图像数据集上测试了他们的图像分类性能,相比于netvlad模型,saso-vladnet提升2-4%的图像识别率。而所提出的多路网络(m-saso-vladnet)比所提出的单路网络(saso-vladnet)提升了1%左右的图像识别率。

步骤9:基于二阶vlad稀疏自适应深度网络的完整的参数更新步骤包括:

步骤9.1:在每个saso-vladnet层获得初始化参数;

步骤9.2:通过每一个saso-vladnet编码和最终的softmax分类器来初始化最终的全连接层的权值;

步骤9.3:利用上述的初始化参数并基于端到端的训练方式,softmax分类器的梯度信息用于更新m-saso-vladnet中每一层的参数直到分类器损失曲线收敛为止。

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