一种基于CBAM的图像描述生成模型方法与流程

文档序号:23724899发布日期:2021-01-26 15:13阅读:333来源:国知局
一种基于CBAM的图像描述生成模型方法与流程
一种基于cbam的图像描述生成模型方法
技术领域
[0001]
本发明属于计算机视觉和自然语言处理技术领域,具体涉及一种基于cbam的图像描述生成模型方法。


背景技术:

[0002]
图像描述生成主要经历了三个发展阶段:

基于模板的图像描述生成,该方法通过检测得物体及物体属性之间的关系,之后将单词填入固定的句子模板,但该模型过于死板;

基于检索的图像描述生成,该方法先检索与当前图像相似的图像作为模板,在检索图像关系前需要调整,这个步骤增加了算法的复杂度;

基于深度学习的图像描述生成,通过构建编码器-解码器框架,采用端到端的方法对模型进行训练,相对前两种方法,在图像描述的准确性上有较大的提升。vinyals等人提出nic(neural image caption)模型,其思路来源于机器翻译通过最大化源语言s转化成目标语言t的概率p(t/s),将第一个循环神经网络(recurrent neural networks,rnn)替换成卷积神经网络(convolutional neural networks,cnn),用于提取图片的特征(vinyals o,toshev a,bengio s,et al.show and tell:a neural image caption generator[c]//proceedings of the ieee conference on computer vision and pattern recognition.2015:3156-3164.)。xu等人在nic模型的基础上引入注意力机制,提取到图片的重要信息,提升了模型的准确率。大多数的视觉注意力机制只建模空间注意力机制(spatial attention)(xu k,ba j,kiros r,et al.show,attend and tell:neural image caption generation with visual attention[c]//international conference on machine learning.2015:2048-2057.)。chen等人提出了sca-cnn模型,该模型同时建模空间注意力机制和通道注意力机制(channel-wise attention),较大的提升了模型的性能,但该模型不够轻便、灵活(chen,l.,zhang,h.,xiao,j.,nie,l.,shao,j.,chua,t.s.:sca-cnn:spatial and channel-wise attention in convolutional networks for image captioning.proceedings of the ieee conference on computer vision and pattern recognition.2017.)。woo等人在sca-cnn的基础上提出了一种轻量级通用卷积模块注意力机制模型(convolutional block attention module,cbam)(woo s,park j,lee j y,et al.cbam:convolutional block attention module[c]//european conference on computer vision,2018:3-19.)。该注意力机制结合空间注意力机制和通道注意力机制,并且两种注意力机制都使用平均池化和最大池化技术,使模型的效果更好。
[0003]
考虑到注意力机制在图像描述生成中的有效性,提出了一种基于cbam的图像描述生成模型。该模型将cbam模块应用到inception-v4网络中,用于提取图片特征,并送入长短期记忆网络(long short-term memory,lstm),生成符合图像内容描述的自然语言。模型使用dropout技术和正则化防止过拟合,利用word2vec技术对自然语言进行编码处理,以避免维度灾难等问题。


技术实现要素:

[0004]
本发明的目的是提供一种优化图像描述生成模型问题的方法,解决针对现有模型描述质量不高、对图片重要部分特征提取不足和模型过于复杂的问题。
[0005]
本发明所采用的技术方案是,一种基于cbam的图像描述生成模型方法,具体按照以下步骤实施:
[0006]
步骤1、选取inception-v4作为基准网络;
[0007]
步骤2、引入cbam模块,分别在inception-v4中每个inception模块之后加入cbam模块,生成改进后的inception-v4;
[0008]
步骤3、使用改进后的inception-v4提取图像特征,生成512维图像特征矩阵;
[0009]
步骤4、引入lstm,选取lstm处理模型的时序问题,可以由单个lstm得到输出单元h;
[0010]
步骤5、搭建基于编码器-解码器框架的图像描述生成模型,完成图片到语句的转化。
[0011]
本发明的特征还在于,
[0012]
步骤3具体按照以下步骤实施:
[0013]
步骤3.1、在改进后的inception-v4中输入尺寸为299*299,3通道的图片,经过stem模块之后输出尺寸为35*35*384;
[0014]
其中,改进后的inception-v4由stem模块、4层inception-a、reduction-a、7层inception-b、reduction-b、3层inception-c、平均池化层、dropout层以及softmax层组成;
[0015]
步骤3.2、将步骤3.1的结果作为inception-a的输入,每次经过inception-a之后的特征送入cbam模块,共有4层inception-a+cbam;
[0016]
步骤3.3、将3.2生成的特征经过reduction-a降维之后,再经过7层inception-b+cbam、reduction-b、3层inception-c+cbam、平均池化以及dropout层生成1536维特征;
[0017]
步骤3.4、将3.3的结果送入全连接层,输出为512维图像特征矩阵。
[0018]
步骤3.2中,cbam模块包括两部分内容,分别是空间注意力模块和通道注意力模块。其中,通道注意力模块,输入特征f,分别经过最大池化和平均池化,接着经过共享多层感知器,将得到的两个特征相加,再经过sigmoid函数,最终生成通道注意力特征m
c
(f),公式如下:
[0019][0020]
式中,σ表示sigmoid函数,mlp表示共享多层感知器,avgpool表示平均池化,maxpool表示最大池化,w0和w1表示不同的权重矩阵,表示平均池化特征,表示最大池化特征。
[0021]
空间注意力模块将通道注意力特征m
c
(f)和输入特征进行一个基于对应元素逐个相乘的乘法操作,生成空间注意力模块的输入特征f

,对于输入的特征f

,分别经过最大池化和平均池化操作,然后进行卷积操作,接着通过sigmoid函数生成空间注意力特征m
s
(f

),公式如下:
[0022][0023]
式中,σ表示sigmoid函数,f7×7表示7*7的卷积核,avgpool表示平均池化,maxpool表示最大池化,表示平均池化特征,表示最大池化特征。
[0024]
步骤4具体按照以下步骤实施:
[0025]
步骤4.1、将步骤3.4生成的512维图像特征矩阵和词向量w
e
作为lstm的输入,lstm首先通过sigmoid层控制遗忘层,对上一时刻的输出结果选择性的通过,更新公式为:
[0026]
f
t
=σ(w
f
*[h
t-1
,x
t
]+b
f
)
[0027]
式中,σ表示sigmoid函数,h
t-1
表示上一个lstm的输出,x
t
表示此刻lstm的信息输入,w
f
为权重矩阵,b
f
是偏置向量,[]表示矩阵的拼接;
[0028]
步骤4.2、在细胞中保存重要信息,包括两部分,一部分是通过i
t
更新数值,另一部分是通过tanh层得到新的候选值,给上一时刻的状态乘以遗忘状态f
t
,遗忘掉之前不重要的信息,再用加上前者得到c
t
,公式如下:
[0029][0030]
其中,i
t
=σ(w
i
*[h
t-1
,x
t
]+b
i
),σ表示sigmoid函数,i
t
表示输入状态,w
i
表示权重矩阵,h
t-1
表示上一个lstm的输出,b
i
表示偏置向量,c
t
表示细胞状态,c
t-1
表示上一时刻的细胞状态,f
t
表示遗忘状态,表示细胞状态的候选值向量;
[0031]
步骤4.3、最后一步先计算得到输出状态o
t
,然后使用tanh函数对细胞状态c
t
进行处理,乘上o
t
的值得到lstm单元的输出h
t
,公式如下所示:
[0032]
o
t
=σ(w
p
*[h
t-1
,x
t
]+b
p
)
[0033]
其中,h
t
=o
t
*tanh(c
t
),σ表示sigmoid函数,tanh()表示正切函数,o
t
表示输出状态,w
p
表示权重矩阵,b
p
表示偏置向量,h
t-1
表示上一个lstm的输出,x
t
表示当前时刻的输入,h
t
表示当前时刻lstm的输出,又称输出单元。
[0034]
步骤5具体按照以下步骤实施:
[0035]
步骤5.1、使用步骤3构建编码器来提取图像特征,生成512维图像特征矩阵;
[0036]
步骤5.2、使用步骤4构建解码器,将步骤3中生成的512维图像特征矩阵以及词向量w
e
作为解码器的原始输入,按照时间序列逐步生成对应图片的描述语句。
[0037]
本发明的有益效果是:
[0038]
本发明方法中的模型采用inception-v4网络作为基准网络。为了进一步增强模型提取特征的能力,在每个inception模块之后加入cbam模块。cbam是一个轻量级的模块,它的计算量可以忽略不计,它可以嵌入到任何一个卷积神经网络中,提升卷积神经网络的准确性,更好地提取图片重要信息。sca-cnn模型中空间注意力机制和通道注意力机制的应用与cbam相比较为复杂。采用lstm网络弥补循环神经网络的缺点,更好地处理远距离信号问题。
附图说明
[0039]
图1是本发明一种基于cbam的图像描述生成模型方法中的inception-v4网络结构图;
[0040]
图2是本发明一种基于cbam的图像描述生成模型方法中的cbam模块结构图;
[0041]
图3是本发明一种基于cbam的图像描述生成模型方法中的通道注意力机制模块结构图;
[0042]
图4是本发明一种基于cbam的图像描述生成模型方法中的空间注意力机制模块结构图;
[0043]
图5是本发明一种基于cbam的图像描述生成模型方法中的长短期记忆网络结构图;
[0044]
图6是本发明一种基于cbam的图像描述生成模型方法中的图像描述生成模型总体架构图;
[0045]
图7是本发明一种基于cbam的图像描述生成模型方法中的学习率衰减图;
[0046]
图8是案例分析中模型训练过程中总损失图。
具体实施方式
[0047]
下面结合附图和具体实施方式对本发明进行详细说明。
[0048]
本发明一种基于cbam的图像描述生成模型方法,具体按照以下步骤实施:
[0049]
步骤1、选取inception-v4作为基准网络;
[0050]
步骤2、引入cbam模块,分别在inception-v4中每个inception模块之后加入cbam模块,生成改进后的inception-v4;
[0051]
步骤3、使用改进后的inception-v4提取图像特征,生成512维图像特征矩阵;
[0052]
步骤3具体按照以下步骤实施:
[0053]
步骤3.1、在改进后的inception-v4中输入尺寸为299*299,3通道的图片,经过stem模块之后输出尺寸为35*35*384;
[0054]
其中,改进后的inception-v4,如图1所示,改进后的inception-v4由stem模块、4层inception-a、reduction-a、7层inception-b、reduction-b、3层inception-c、平均池化层、dropout层以及softmax层组成;
[0055]
步骤3.2、将步骤3.1的结果作为inception-a的输入,每次经过inception-a之后的特征送入cbam模块,共有4层inception-a+cbam;
[0056]
步骤3.2中,cbam模块如图2所示,cbam模块包括两部分内容,分别是空间注意力模块和通道注意力模块。其中,通道注意力模块如图3所示,输入特征f,分别经过最大池化和平均池化,接着经过共享多层感知器,将得到的两个特征相加,再经过sigmoid函数,最终生成通道注意力特征m
c
(f),公式如下:
[0057][0058]
式中,σ表示sigmoid函数,mlp表示共享多层感知器,avgpool表示平均池化,
maxpool表示最大池化,w0和w1表示不同的权重矩阵,表示平均池化特征,表示最大池化特征。
[0059]
空间注意力模块如图4所示,将通道注意力特征m
c
(f)和输入特征进行一个基于对应元素逐个相乘的乘法操作,生成空间注意力模块的输入特征f

,对于输入的特征f

,分别经过最大池化和平均池化操作,然后进行卷积操作,接着通过sigmoid函数生成空间注意力特征m
s
(f

),公式如下:
[0060][0061]
式中,σ表示sigmoid函数,f7×7表示7*7的卷积核,avgpool表示平均池化,maxpool表示最大池化,表示平均池化特征,表示最大池化特征。
[0062]
步骤3.3、将3.2生成的特征经过reduction-a降维之后,再经过7层inception-b+cbam、reduction-b、3层inception-c+cbam、平均池化以及dropout层生成1536维特征;
[0063]
步骤3.4、将3.3的结果送入全连接层,输出为512维图像特征矩阵。
[0064]
步骤4、引入lstm,选取lstm处理模型的时序问题,可以由单个lstm得到输出单元h;
[0065]
步骤4具体按照以下步骤实施:
[0066]
步骤4.1、将步骤3.4生成的512维图像特征矩阵和词向量w
e
作为lstm的输入,其中lstm结构如图5所示,lstm首先通过sigmoid层控制遗忘层,对上一时刻的输出结果选择性的通过,更新公式为:
[0067]
f
t
=σ(w
f
*[h
t-1
,x
t
]+b
f
)
[0068]
式中,σ表示sigmoid函数,h
t-1
表示上一个lstm的输出,x
t
表示此刻lstm的信息输入,w
f
为权重矩阵,b
f
是偏置向量,[]表示矩阵的拼接;
[0069]
步骤4.2、在细胞中保存重要信息,包括两部分,一部分是通过i
t
更新数值,另一部分是通过tanh层得到新的候选值,给上一时刻的状态乘以遗忘状态f
t
,遗忘掉之前不重要的信息,再用加上前者得到c
t
,公式如下:
[0070][0071]
其中,i
t
=σ(w
i
*[h
t-1
,x
t
]+b
i
),σ表示sigmoid函数,i
t
表示输入状态,w
i
表示权重矩阵,h
t-1
表示上一个lstm的输出,b
i
表示偏置向量,c
t
表示细胞状态,c
t-1
表示上一时刻的细胞状态,f
t
表示遗忘状态,表示细胞状态的候选值向量;
[0072]
步骤4.3、最后一步先计算得到输出状态o
t
,然后使用tanh函数对细胞状态c
t
进行处理,乘上o
t
的值得到lstm单元的输出h
t
,公式如下所示:
[0073]
o
t
=σ(w
p
*[h
t-1
,x
t
]+b
p
)
[0074]
其中,h
t
=o
t
*tanh(c
t
),σ表示sigmoid函数,tanh()表示正切函数,o
t
表示输出状态,w
p
表示权重矩阵,b
p
表示偏置向量,h
t-1
表示上一个lstm的输出,x
t
表示当前时刻的输入,h
t
表示当前时刻lstm的输出,又称输出单元。
[0075]
步骤5、搭建基于编码器-解码器框架的图像描述生成模型,完成图片到语句的转化;
[0076]
步骤5具体按照以下步骤实施:
[0077]
步骤5.1、使用步骤3构建编码器来提取图像特征,生成512维图像特征矩阵。其中,编码器结构如图6左部分所示,主要有stem、4层inception-a+cbam、reduction-a、7层inception-b+cbam、reduction-b、3层inception-c+cbam、平均池化、dropout和全连接层;
[0078]
步骤5.2、使用步骤4构建解码器,将步骤3中生成的512维图像特征矩阵以及词向量w
e
作为解码器的原始输入,按照时间序列逐步生成对应图片的描述语句。其中,解码器结构如图6左部分所示,主要有多个lstm共同构成解码器,每个lstm的输入为上一时刻生成的单词s
t-1
和512维图像特征矩阵。
[0079]
案例分析与方法验证
[0080]
为了验证本发明的有效性,本发明在ubuntu 16系统上进行实验验证。采用mscoco数据集,该数据集包括训练集、验证集和测试集,其中训练集共有82783张图片,验证集有40504张,测试集有40775张,每张图片共有五句标注,训练集全部用于训练模型,验证集全部用于模型评价准则的评估。测试集可以选取少部分验证模型的有效性。
[0081]
实验前对数据集图片进行预处理,生成大小为299*299的彩色图片。设置模型参数。限定句子的长度为20,不足的位置补0,语句开始标志为<s>,结束标志为</s>。设置批处理大小(batch_size)为32,使用集束搜索(beamsearch)方法逐步生成描述语句,每个时间序列保留概率p最大的几个句子,迭代操作这个步骤,将beam大小设置为3。初始化learn_rate值为2,使用tf.train.exponential_decay(其为tensorflow中的方法)创建训练步数衰减的学习速率,设置staircase为true,表示阶梯衰减,如图7所示。将词汇字典尺寸大小设置为12000,将频率出现4次以上的单词存入词汇表。利用adamoptimizer计算并得到频率最高的单词;
[0082]
实验采用bleu-1、bleu-4、meteor和cider作为模型的评价指标。bleu类的评价指标主要是用来测试两个句子之间的相似程度,最初,bleu通过一个句子出现在另一个句子中单词的数量来判定两个句子的相似度,之后,经过几次不断的改进,引入惩罚值和最佳匹配长度计算语句之间的精度。meteor测试精度主要是考虑准确率和召回率,它的出现是为了弥补bleu中的不足。bleu和向量空间模型结合产生了cider,可以用来评价图像描述生成模型是否提取到图片的关键信息。如图8所示,改进后的模型的损失稳定在2到2.1之间。模型对比结果如表1所示。
[0083]
表1模型评价准则得分表
[0084][0085]
注:模型得分较高者加粗斜体表示
[0086]
可以看出,模型的性能明显优于人类表现。模型在bleu-4的数值与sca-cnn-resnet模型相同,高于其它四个模型分数,分别提高了0.065,0.081,0.061。在cider上比人类高8.4%,该值说明了本文模型更好的提取到了图像重要部分信息。在meteor上比人类表现要高2.8%,比sca-cnn-resnet要高3.6%,比其余几个模型高出很多。本文模型在bleu-1上的分数接近sca-cnn-resbet模型,比multimodal rnn高0.091。从模型评价准则得分表可以得出,模型的综合性能优于其它模型。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1