基于卷积块注意力模块的图像描述生成模型①

2021-09-10 07:31余海波陈金广
计算机系统应用 2021年8期
关键词:语句注意力图像

余海波,陈金广

1(西安工程大学 计算机科学学院,西安 710600)

2(河南省电子商务大数据处理与分析重点实验室,洛阳 471934)

图像描述涉及了计算机视觉和自然语言处理两部分的内容,它是利用模型把一张图片转化成与之对应的自然语言描述.图像描述在多个领域都具有重要的作用,例如导盲、自动生成图片标签等,这不仅方便了人们的生活,也为大数据时代随之而来的海量图片标注减少了大量的人力.

图像描述生成[1]主要经历了3 个发展阶段:基于模板的图像描述生成[2-4],该方法通过检测得到物体及物体属性之间的关系,之后将单词填入固定的句子模板,但该模型过于死板;基于检索的图像描述生成[5],该方法先检索与当前图像相似的图像作为模板,在检索图像关系前需要调整,这个步骤增加了算法的复杂度;基于深度学习的图像描述生成[6,7],通过构建编码器-解码器框架,采用端到端的方法对模型进行训练.相对前两种方法,后者在图像描述的准确性上有较大的提升.Vinyals 等提出NIC (Neural Image Caption)模型[8],其思路来源于机器翻译通过最大化源语言S转化成目标语言T的概率p(T/S),将第一个循环神经网络(Recurrent Neural Networks,RNN)替换成卷积神经网络(Convolutional Neural Networks,CNN)[9],用于提取图片的特征.Xu 等[10]在NIC 模型的基础上引入注意力机制,提取图片的重要信息,提升了模型的准确率.大多数的视觉注意力机制只建模空间注意力机制(spatial attention).Chen 等提出了SCA-CNN 模型[11],该模型同时建模空间注意力机制和通道注意力机制(channel-wise attention),较大的提升了模型的性能,但该模型不够轻便、灵活.Woo 等在SCA-CNN的基础上提出了一种轻量级通用卷积块注意力机制模块(Convolutional Block Attention Module,CBAM)[12].该注意力机制结合空间注意力机制和通道注意力机制,并且两种注意力机制都使用平均池化和最大池化技术,使模型的效果更好.

考虑到注意力机制在图像描述生成中的有效性,在文献[12]的基础上提出了一种基于CBAM的图像描述生成模型.该模型将CBAM 模块应用到Inceptionv4[13]网络中,用于提取图片特征,并送入长短期记忆网络(Long Short-Term Memory,LSTM)[14],生成符合图像内容描述的自然语言.模型使用dropout和正则化技术防止过拟合,利用Word2Vec[15]技术对自然语言进行编码处理,以避免维度灾难等问题.

1 模型架构

1.1 Inception-v4 网络结构

卷积神经网络是深度学习的核心技术,目前性能接近的两个网络为Inception-v4和Inception-ResNetv2.本文选取Inception-v4 网络作为基准网络,结构如图1.

图1 Inception-v4 网络

Inception-v4 网络与Inception-v3 网络相比具有更多的Inception 模块,可以弥补Inception-v3 网络的缺点.在Inception 模块和ResNet 模块不混合的情况下,Inception-v4 网络达到了较好的性能.针对数据集中图片大小不一致的问题,首先对图片的尺寸进行规范化,规范化后图片的大小为299×299.在Stem 模块中使用并行结构,在保证损失最小的情况下,使得模型计算量最小.网络中使用4 层Inception-A、7 层Inception-B和3 层Inception-C 结构,使得网络结构加深,分别在最后一个Inception-A和Inception-B 模块后面添加Reduction 模块,用来降低计算量,从而降低模型的复杂度.为了降低特征维度,更好地提取图像特征信息,加入平均池化模块.引入dropout 模块,防止模型在训练中过拟合,提升模型的泛化能力.

1.2 长短期记忆网络

模型采用LSTM 网络作为解码器处理时序信息,生成对应图片的描述语句.LSTM 能够在一定程度上解决梯度消失和难以捕捉远距离时间信号的问题.LSTM 网络主要包括了4 个模块,分别是遗忘门(ft)、输入门(it)、输出门(Ot)和细胞状态(Ct),如图2所示.从细胞状态Ct-1到Ct的信息传输线中完成了Ct的更新.遗忘门、输入门和输出门用Sigmoid 层表示,tanh层分别表示细胞状态的输入与输出.LSTM 首先通过Sigmoid 层控制遗忘层,对上一时刻的输出结果选择性的通过.更新公式为:

图2 LSTM 网络

其中,σ表示Sigmoid 函数,ht-1表示上一个LSTM的输出,xt表示此刻LSTM的信息输入,Wf为权重矩阵,bf是偏置向量,[ht-1,xt]表示两个矩阵的拼接.

接下来决定在细胞中保存哪些重要信息,包括两部分,一部分是通过it更新数值,另一部分是通过tanh层得到新的候选值.给上一时刻的状态乘ft,遗忘掉之前不重要的信息,再用it×t加上前者得到Ct.公式如下:

其中,Wi表示权重矩阵,bi表示偏置向量,表示细胞状态的候选值向量.

最后一步先计算得到Ot,然后使用tanh 函数对细胞状态Ct进行处理,乘上Ot的值得到LSTM 单元的输出ht.公式如下所示:

其中,Wo表示权重矩阵,bo表示偏置向量.

1.3 CBAM 模块

为了提高模型提取图像特征的准确性,在Inceptionv4 网络的基础上加入CBAM 模块,从空间注意力机制和通道注意力机制两方面获取图像更多的关键信息.与文献[11]中的SCA-CNN 模型相比,CBAM 模块可移植性强,轻便灵活,CBAM 模块如图3所示.

图3 CBAM 结构

CBAM 模块包括两部分内容,分别是空间注意力模块和通道注意力模块.CBAM的输入是特征矩阵,首先经过通道注意力机制生成新的特征矩阵,再和保留的特征矩阵进行卷积操作,所得矩阵作为空间注意力机制模型的输入,通过空间注意力机制模块的特征再和未通过的特征卷积,就得到了新的特征矩阵.在卷积网络的每个卷积模块上,通过CBAM 自适应地调整特征矩阵.为了提高网络的表示能力,在通道注意力机制模块和空间注意力机制模块中加入最大池化和平均池化操作.两种注意力机制模块分别如图4和图5所示.

图4 通道注意力机制

图5 空间注意力机制

对于输入的特征F,分别经过最大池化和平均池化,接着经过共享多层感知器,将得到的两个特征相加,再经过Sigmoid 函数,最终生成通道注意力特征映射Mc,公式如下:

式中,σ表示Sigmoid 函数,MLP表示共享多层感知器,AvgPool表示平均池化,MaxPool表示最大池化.W0和W1都表示权重矩阵,r表示缩减率.首先使用平均池化和最大池化聚合通道特征信息,生成和,分别表示平均池化特征和最大池化特征.然后转发到由多层感知器构成的共享网络中,生成注意力特征映射Mc.

将通道注意力特征和输入特征进行一个基于对应元素逐个相乘的乘法操作,生成空间注意力机制的输入特征F,对于输入的特征F,分别经过最大池化和平均池化操作,然后进行卷积操作,通过Sigmoid 函数生成空间注意力特征.公式如下:

式中,f7×7表示7×7的卷积核.利用平均池化和最大池化操作,聚合空间信息,生成平均池化特征和最大池化特征.空间注意力机制集中于图片中某个感兴趣区域,弥补通道注意力机制的不足.

1.4 模型框架

本文模型采用编码器-解码器(encoder-decoder)框架.编码器部分选用Inception-v4 网络作为特征提取的基准网络.解码器部分选取LSTM 网络,该网络能够较好的处理序列类型的结构数据,解决梯度消失等问题.通过将CBAM 融入Inception-v4 网络提取图像特征,并和LSTM 网络共同构建图像描述模型,生成与图像对应的自然语言描述.通过最大化p(T/S)完成图片T到目标句子S的转化任务.模型框架如图6所示.输入图像经过预处理之后尺寸大小为299×299,并作为模型的输入.在Inception-v4 网络中加入CBAM 注意力机制作为模型提取图片特征的网络,分别在每个Inception-A、Inception-B、Inception-C 模块后面加入CBAM,共加入14 个CBAM 模块.改变Inception-v4的原有结构,去掉Softmax 层,在最底层加入全连接层,目的是将1536 维特征向量转化为512 维,便于图片特征向量与词向量映射到同一向量空间.同时,为了避免维度灾难问题,对标注语句S用Word2Vec 进行编码,将编码后的矩阵We与上一时刻LSTM 单元生成的单词St-1相乘,并将乘积送入此刻LSTM 单元,按时序逐步得到与目标图片内容相符的句子S.使用Adam 优化模型,使模型概率之和达到最优.模型使用LSTM 作为解码模块,可以较好的处理时序问题,提升整体模型的准确性.

图6 模型框架

对于图像描述生成模型,模型中所有参数训练更新可以概括如下:

其中,θ代表模型的所有参数,I为输入的训练集图片,S是模型生成的相应图片的描述语句.S的长度可以用S0,S1,…,SN表示,N表示生成语句的长度.

LSTM 网络按照时间序列处理数据,每个时刻生成一个单词,选取概率最大的单词加入句子,逐步生成对应的描述语句.生成句子概率公式如下:

使用随机梯度下降算法对式(9)进行优化.用固定长度的隐藏层状态ht表示S0,S1,…,SN,当输入xt时,ht可以按照如下公式进行更新:

其中,f是一个函数,为了更好地解决问题,选取LSTM网络作为f.

2 实验过程

2.1 实验环境

采用微软MSCOCO 2014 版本的数据集.该数据集实际共有80 类,例如Bottle、Sofa、Car 类等,包括训练集、验证集和测试集,分别放在train2014、val2014和test2014 文件夹中,其中训练集共有82 783 张图片,验证集有40 504 张,测试集有40 775 张,每张图片共有5 句标注,并分别存放在相应的JSON 文件中.模型训练过程中并没有沿用划分测试集加入训练集的重新构造的方式,而是把原训练集所有类型的所有图片全部用于训练整个模型,验证集所有类型的所有图片全部用于模型评价准则的评估.测试集可以选取少部分验证模型的有效性.该数据集能够较好地完成图像描述生成模型的实验.采用Tensorflow 框架,使用GPU (TITAN XP)进行训练.

2.2 评价指标

实验采用Bleu-1[16]、Bleu-4[16]、METEOR[17]和CIDEr[18]作为模型的评价指标.Bleu 主要是用来测试两个句子之间的相似程度,最初,Bleu 通过一个句子出现在另一个句子中单词的数量来判定两个句子的相似度,之后,经过几次不断的改进,引入惩罚值和最佳匹配长度计算语句之间的精度.METEOR 测试精度主要是考虑准确率和召回率,它的出现是为了弥补Bleu中的不足.Bleu和向量空间模型结合产生了CIDEr,可以用来评价图像描述生成模型是否提取到图片的关键信息.

2.3 实验设置

本文模型对不同参数设置了两个实验,分别称为Model1和Model2.Model1 首先对标注语句进行处理,限定句子的长度为20,不足的位置补0.语句开始标志为<S>,结束标志为</S>.设置batch_size=27,LSTM 随机失活因子lstm_dropout_keep_prob=0.5,Inception-v4模型参数的学习率train_inception_learn_rate=0.0003,梯度裁剪clip_gradients=5.模型训练时设置迭代次数为60 万步.初始化learn_rate 值为2,使用tf.train.exponential_decay(其为Tensorflow中的方法)创建训练步数衰减的学习速率,设置staircase为true,表示阶梯衰减,如图7所示.使用集束搜索(beamsearch)方法逐步生成描述语句,每个时间序列保留概率p最大的几个句子,迭代操作这个步骤,将beam 大小设置为3.初始化后图像尺寸为299×299,长短期记忆网络输入输出均为512 维.将词汇字典尺寸大小设置为12 000,将频率出现4 次以上的单词存入词汇表.利用Adam 计算并得到频率最高的单词.

图7 Model1 学习率衰减

由图7可以看出,学习率在450 k 步的时候受超参数设置影响而趋于稳定,考虑到这些超参数影响因子的问题,重新设置了个别超参数的值并进行实验,称为Model2.设置batch_size=32,向上调整每次批处理数据的大小,对Inception-v4 模型参数的学习率重新设置,即train_inception_learn_rate=0.0005,将梯度裁剪clip_gradients 设置为8.Learn_rate的值仍然初始化为2,变化如图8所示.其他超参数及方法不变.

由图8可见,使超参数值都向上增加之后的模型Model2的学习率在900 k的时候趋于稳定.说明Model1 过早拟合,Model2的学习结果较好.

图8 Model2 学习率衰减

2.4 实验办法

Model1和Model2 均采用以下实验方法:为了提高模型的准确性和训练速度,预先加载在ImageNet 上预训练好的Inception-v4 网络参数文件.训练集图像初始化尺寸为299×299,并作为模型的输入,经过改进后特征提取网络的各层之后,图片特征为512 维.将图像特征和采用Word2Vec 技术编码的词向量矩阵作为LSTM 网络的输入,每个时刻,LSTM 单元都会生成单词.按照beamsearch 方法保留概率最大的3 个,逐步生成描述语句S.

3 实验结果与分析

3.1 模型的损失率

Model1和Model2 均采用本文模型进行实验,模型的损失细化为每个步骤产生的正确单词的概率之和的负数,公式如下所示:

其中,I表示输入模型的训练集图像,St为每个时刻生成的单词,S表示图片的标注语句.

为了提高模型的准确率,在Inception-v4 网络中融合CBAM 注意力机制,更加精确地提取图片重要部分的信息.使用Word2Vec 技术对标注语句进行编码,相对于one-hot 编码而言,Word2Vec 可以指定维度,对特征矩阵进行压缩,减少了特征矩阵的存储空间,提升了模型的准确性.图9给出了Model1的损失图,可以看出Model1的损失稳定在2.2 左右.图10给出了Model2的损失图,可以看出,重新设置超参数之后的模型的损失稳定在2 到2.1 之间,Model2 比Model1 损失更少,算法性能更好.为了更好的降低误差,采用随机梯度下降算法更新参数,优化模型.模型的损失度明显呈下降趋势,最终趋于稳定.

图9 Model1 损失率

图10 Model2 损失率

3.2 模型的实验效果

为了展示Model1和Model2的实验效果,在验证集中选取了4 张图片,如图11所示.Moedl1 在对图11(a)生成的描述是:a row of motorcycles parked next to each other (一排并排停放着的摩托车),Model2对图11(a)生成的描述是:A motorcycle parked in front of a garage(停在车库前的摩托车),可以发现Model2的概率高于Model1,并且根据人工标注 (a motorcycle parked in front of a building)和图片本身内容发现Model2 描述更加准确.图11(b)中,Model1 生成的描述语句是:A black and white dog sitting on a bench (一只黑白相间的狗坐在长凳上),Model2 生成的描述语句是:A dog sitting on a sidewalk next to a bike (一只狗坐在人行道上,旁边是一辆自行车),人工标注语句是:A dog sitting on a sidewalk next to a bicycle (一只狗坐在人行道上,旁边是一辆自行车),可以看出Model2 比Model1 描述效果更好.图11(c)中Model1的描述语句为:A baseball player holding a bat on top of a field (球场上棒球手拿着球棒),Model2和人工标注语句是一致的:A baseball player swinging a bat at a ball (球场上挥击棒球的运动员),结合图片内容,Model1、Model2和人工标注均能准确描述图片内容并且语句基本相同.图11(d)中描述差异较大,Model1的描述是:A brown bear standing on top of a rock (一只熊站在岩石上),而图片内容中并没有出现岩石,描述不准确,Moedl2 (a brown bear standing on top of a grass covered field)和人工标注(a brown bear is sitting in a field)均表达正确.综合以上所诉,Model2 能够很好地表达出图片的属性以及属性之间的关系.

图11 Model1、Model2和人工标注

3.3 客观评价准则对比

为了进一步验证Model1和Model2 两个实验的有效性,采用Bleu-1、Bleu-4、METEOR和CIDEr 这4 个评价准则进行评估,并与Google NIC[8]、Multimodal RNN[19]、Hard-Attention[10]和SCA-CNN-ResNet[11]比较,结果如表1所示.

表1 模型评价准则得分表

可以看出,Model2的性能明显优于其他模型.Model2 在Bleu-4的数值与SCA-CNN-ResNet 模型相同,在METEOR 上的分数高出0.009.在CIDEr 上比Multimodel RNN 高0.266,该值说明了Model2 更好的提取到了图像重要部分信息.Mdel2 在Bleu-1 上的分数接近SCA-CNN-ResBet 模型,比Multimodal RNN高0.091.Model1的性能在四个评价指标上略低于Model2,分别低于Model1 0.007、0.009、0.009和0.005,Model2的性能优于Model1.从模型评价准则得分表可以得出,Model2的综合性能优于其他模型.

4 结论与展望

模型采用Inception-v4 网络作为基准网络.为了进一步增强模型提取特征的能力,在每个Inception 模块之后加入CBAM 模块.CBAM是一个轻量级的模块,它的计算量可以忽略不计,它可以嵌入到任何一个卷积神经网络中,提升卷积神经网络的准确性,更好地提取图片重要信息.SCA-CNN 模型中空间注意力机制和通道注意力机制的应用与CBAM 相比较为复杂.采用LSTM 网络弥补循环神经网络的缺点,更好地处理远距离信号问题.在图像的关键信息提取方面仍有很大的进步空间,需要进一步研究.

猜你喜欢
语句注意力图像
让注意力“飞”回来
A、B两点漂流记
A Beautiful Way Of Looking At Things
名人语录的极简图像表达
基本算法语句
我喜欢
一次函数图像与性质的重难点讲析
趣味数独等4则
作文语句实录
阅读理解两则