一种基于轻量化双线性CNN模型的鸟类图像细粒度识别方法

文档序号:30495928发布日期:2022-06-22 04:30阅读:455来源:国知局
一种基于轻量化双线性CNN模型的鸟类图像细粒度识别方法
一种基于轻量化双线性cnn模型的鸟类图像细粒度识别方法
技术领域
1.本发明属于机器视觉中的图像识别技术领域,尤其涉及一种基于轻量化双线性cnn模型的鸟类细粒度识别方法。


背景技术:

2.传统的图像识别主要是不同物种之间的识别,类间差异较大;而细粒度图像识别是同一类目标不同子类之间的识别,类间差异较小,类内差异较大,相对于大类图像识别更具有挑战性。例如传统图像识别通常是针对不同物种进行的识别,例如“鸟”、“车”、“狗”等;而在许多的实际应用当中,我们需要识别的往往不是它是属于哪个物种,而是想要具体的知道它是这个物种中的哪个类别,这就是细粒度图像识别任务。其相对通用图像分类任务的区别和难点在于其图像所属类别的力度更为精细,其物体的差异仅体现在细微之处,如何有效地获取前景目标重要的局部区域信息,成为了细粒度图像分类算法要解决的关键性问题。
3.以卷积神经网络(convolutional neural network,cnn)为代表的深度学习方法在图像识别领域取得了巨大的成功,它一般采用卷积函数和激活函数作为主要结构,然后使用软最大(softmax)分类器进行分类识别。在训练时,通常使用交叉熵损失函数计算损失并向梯度减小的方向更新参数。
4.细粒度目标中不同子类别间总是具有相同的全局外观,而子类别内图像特征往往有很大的差异,因此往往需要复杂的结构才能达到较好的识别准确率,但这往往导致神经网络模型参数的显著增加。交叉熵损失函数虽然擅长处理优化类间差异,但不擅长减少类内差异(即使同一类的特性紧凑),因而其对于这种类内差异较大的细粒度图像识别任务来说具有一定的缺陷,影响最终的识别准确率。
5.本发明在公开的鸟类图像数据集上进行实验,基于双线性模型,引入深度可分离卷积、am-softmax损失函数和交叉熵损失函数,在保证对鸟类细粒度图像进行识别的准确率没有明显降低的前提下,有效地降低了模型参数量,减小了模型参数的存储空间。


技术实现要素:

6.本发明要解决的技术问题是,提供一种基于轻量化双线性cnn模型的鸟类图像细粒度识别方法,包括以下步骤:
7.步骤1:预处理鸟类图像细粒度识别数据集,本发明在200类鸟类数据集cub_200_2011共n幅不同鸟类图像的数据集d上面进行验证,将每一种类的数据集以3:2的比例划分为训练和测试图像,最终得到训练集d
t
(包含n
t
幅图像)和测试集ds(包含ns幅图像),整个鸟类图像数据集表示为d={(ii,yi)}(1≤i≤n),其中ii表示鸟类图像,yi表示类别标签;
8.步骤2:构建轻量化网络模型,选择vgg16作为模型的基础网络结构,并在该网络结构上进行适当的轻量化处理;
9.步骤2.1:该神经网络由5个卷积块组成,前4个卷积块采用vgg16结构。其中第1、2
个卷积块包含两个卷积层和一个池化层,第3、4个卷积块包含三个卷积层和一个池化层;
10.步骤2.2:网络第5个卷积块在vgg的基础上,删去最后的池化层,并将该卷积块内的3个卷积层全部替换为深度可分离卷积;
11.步骤2.3:深度可分离卷积分为逐通道卷积和逐点卷积。逐通道卷积的一个卷积核负责一个通道,一个通道只被一个卷积核卷积。一张c通道的h
’×
w’大小的输入图像在逐通道卷积中,与一个c
×3×
3的卷积核相乘,输出c
×
(h
’‑
2)
×
(w
’‑
2)大小的图像。逐点卷积的运算与常规卷积运算相似,它的m个卷积核的尺寸为1
×1×
c,c为上一层的通道数,这里的卷积运算会将上一步的map在深度方向上进行加权组合,生成新的特征图,输出m
×
(h
’‑
2)
×
(w
’‑
2)大小的图像;
12.步骤2.4:最终基础网络的输入为彩色图像ii∈rh×w×3(1≤i≤n),其中h和w分别表示图像的高度和宽度,3表示图像的通道个数,网络的输出为多通道的特征f
p

13.步骤3:构建双线性网络模型,该网络包含a和b两个并行的分支,其中a分支用于提取物体的细粒度特征,b分支提取物体在图像中的位置和相对距离,两个分支对提取后的向量化特征进行外积操作,得到图像的融合特征。这两个分支均使用步骤2中的轻量化网络:
14.步骤3.1:对于第p幅训练图像i
p
∈rh×w×3(1≤p≤n
t
),双线性网络首先分别使用a和b两个分支提取特征,得到两个维度相同的特征和
15.步骤3.2:将特征和分别拉伸成向量形式,表示为:
[0016][0017][0018]
其中,vector(
·
)表示向量化操作;
[0019]
步骤3.3:使用外积操作对和进行特征融合,表示为:
[0020][0021]
其中,bi
p
表示第p幅图像i
p
融合分支a和b提取的特征后的特征;
[0022]
步骤3.4:将bi
p
拉伸为向量,得到第p幅图像i
p
的双线性特征:
[0023]
bi
p
=vector(bi
p
)
[0024]
其中,vector(
·
)表示向量化操作;
[0025]
步骤3.5:将向量化后的双线性特征标准化:
[0026][0027][0028]
其中,z
p
表示第p幅图像i
p
的融合特征归一化后的双线性特征;
[0029]
步骤3.6:使用softmax分类器对归一化后的双线性特征z
p
进行分类,得到输出结果o
p
∈r1×c,表示为:
[0030]
[0031]
其中c代表图像类别的个数。
[0032]
步骤4:设置网络的损失函数,联合am-softmax和crossentropy作为损失函数,分别表示为:
[0033][0034][0035]
在am-softmax中,f代表输出层的输入,是最后一个全连接层权值矩阵w的第y
p
列,y
p
代表第p个样本真实标签的序号,m是一个大于1的整数,s为缩放因子;在crossentropy中,c表示类别数,pi为实际标签,qi为预测结果。联合后的损失函数表示为:
[0036]
l=αl
ams
+(1-α)l
ce
[0037]
其中,α为比例参数,取值范围为[0,1];
[0038]
步骤5:网络训练:设置学习率、动量、权重下降等训练参数,使用随机梯度下降算法对网络参数进行迭代更新,并保存最终的模型参数;
[0039]
步骤6:网络测试:加载保存的模型参数,将测试集ds输入网络中,获得最终的分类准确率。
附图说明
[0040]
图1为原图像;
[0041]
图2为网络整体结构;
[0042]
图3为分类准确率和模型参数量结果图。
[0043]
图4为本发明方法实施的流程图。
具体实施方式
[0044]
以下结合附图和实施例对本发明进行详细说明。
[0045]
一种基于am-softmax和轻量化双线性cnn模型的细粒度识别方法,下面结合相关附图对本发明进行解释和阐述:
[0046]
本发明是在卷积神经网络的基础上,使用包含200类的鸟类图像数据集(通道数为3,像素值∈[0,255]),采用轻量化的双线性网络模型,引用am-softmax损失函数来减少类内差异,来有效的对鸟类数据集进行图像识别。
[0047]
本发明的实施方案流程如下:
[0048]
步骤1:预处理鸟类数据集。鸟类数据集d分为200类,共包含n=11788幅图像,该数据集的图像如附图1所示。将数据集d按照每类3:2的比例划分为训练集d
t
(包含n
t
=7073幅图像)和测试集ds(包含ns=4715幅图像)。在输入网络之前,将图像裁剪为448
×
448,并且对数据进行标准化操作即图像的各个维度减去均值并除以图像数据集的标准差;
[0049]
步骤2:构建轻量化网络,选择vgg16作为模型的基础网络,并在该网络结构上进行
适当的轻量化处理;
[0050]
步骤2.1:该神经网络由5个卷积块组成,前4个卷积块采用vgg16结构。其中第1、2个卷积块包含两个卷积层和一个池化层,第3、4个卷积块包含三个卷积层和一个池化层;
[0051]
步骤2.2:网络第5个卷积块在vgg的基础上,删去最后的池化层,并将该卷积块内的3个卷积层全部替换为深度可分离卷积;
[0052]
步骤2.3:深度可分离卷积分为逐通道卷积和逐点卷积。逐通道卷积的一个卷积核负责一个通道,一个通道只被一个卷积核卷积。一张c通道的h
’×
w’大小的输入图像在逐通道卷积中,与一个c
×3×
3的卷积核相乘,输出c
×
(h
’‑
2)
×
(w
’‑
2)大小的图像。逐点卷积的运算与常规卷积运算相似,它的m个卷积核的尺寸为1
×1×
c,c为上一层的通道数,这里的卷积运算会将上一步的map在深度方向上进行加权组合,生成新的特征图,输出m
×
(h
’‑
2)
×
(w
’‑
2)大小的图像;
[0053]
步骤2.4:最终基础网络的输入为彩色图像ii∈rh×w×3(1≤i≤n),其中h和w分别表示图像的高度和宽度,3表示图像的通道个数,网络的输出为多通道的特征f
p

[0054]
步骤3:构建双线性网络模型,该网络包含a和b两个并行的分支,其中a分支用于提取物体的细粒度特征,b分支提取物体在图像中的位置和相对距离,两个分支对提取后的向量化特征进行外积操作,得到图像的融合特征。这两个分支均使用步骤2中的轻量化网络:
[0055]
步骤3.1:对于第p幅训练图像i
p
∈r
448
×
448
×3(1≤p≤11788),双线性网络首先分别使用a和b两个分支提取特征,得到两个维度相同的特征和
[0056]
步骤3.2:将特征和分别拉伸成向量形式,表示为:
[0057][0058][0059]
其中,vector(
·
)表示向量化操作;
[0060]
步骤3.3::使用外积操作对和进行特征融合,表示为:
[0061][0062]
其中,bi
p
表示第p幅图像i
p
融合分支a和b提取的特征后的特征;
[0063]
步骤3.4:将bi
p
拉伸为向量,得到第p幅图像i
p
的双线性特征:
[0064]
bi
p
=vector(bi
p
)
[0065]
其中,vector(
·
)表示向量化操作;
[0066]
步骤3.5:将向量化后的双线性特征标准化:
[0067][0068][0069]
其中,z
p
表示第p幅图像i
p
的融合特征归一化后的双线性特征;
[0070]
步骤3.6:使用softmax分类器对归一化后的双线性特征z
p
进行分类,得到输出结果o
p
∈r1×c,表示为:
[0071][0072]
其中c代表图像类别的个数。
[0073]
步骤4:设置网络的损失函数,联合am-softmax和crossentropy作为损失函数,分别表示为:
[0074][0075][0076]
在am-softmax中,f代表输出层的输入,是最后一个全连接层权值矩阵w的第y
p
列,y
p
代表第p个样本真实标签的序号,m取值为0.15,s为缩放因子,取值为30;在crossentropy中,c表示类别数,pi为实际标签,qi为预测结果。联合后的损失函数表示为:
[0077]
l=αl
ams
+(1-α)l
ce
[0078]
其中,α为比例参数,取值为0.5;
[0079]
步骤5:网络训练。设置迭代次数为100、学习率为0.001,将训练集d
t
输入网络,使用imagenet训练的vgg16权值初始化基础网络中非轻量化卷积部分,并将其固定,利用随机梯度下降算法对网络参数进行迭代更新。设置迭代次数为100,学习率0.0000001,解除固定所有参数,再次利用随机梯度下降算法对网络参数进行迭代更新,直到损失收敛,保存最终的模型;
[0080]
步骤6:网络测试。加载保存的模型,将测试集ds输入网络,获得分类准确率,根据实践结果可以发现,当在原双线性网络模型中引入轻量化模块和am-softmax损失函数后,在保证训练的准确率没有明显变化的前提下,网络参数量显著减少,结果如附图3所示。
[0081]
以上实例仅用于描述本发明,而非限制本发明所描述的技术方案。因此,一切不脱离本发明精神和范围的技术方案及其改进,均应涵盖在本发明的权利要求范围中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1