一种基于编码器-解码器及Bi-LSTM注意力模型的图像描述方法

未命名 08-07 阅读:159 评论:0

一种基于编码器-解码器及bi-lstm注意力模型的图像描述方法
技术领域
1.本发明涉及计算机视觉和自然语言处理技术领域,尤其涉及一种基于编码器-解码器及bi-lstm注意力模型的图像描述方法。


背景技术:

2.图像描述方法的实质就是将计算机提取的图像视觉特征转化成更高层次的语义信息,使计算机能够生成与人类大脑理解相近的图像描述,从而对图像可以进行分析,检阅,分类等应用。图像描述方法涉及了计算机视觉和自然语言处理两大人工智能领域,计算机不仅要检测出输入图像的各个物体的属性,而且还要识别出各个物体之间的关系,并用正确合适的自然语言表达出来,这也是该方法的难点所在。近几年,随着各个大型图像数据集的出现和深度学习的不断发展,如何提高图像描述的准确度也成为自然语言处理和计算机视觉领域的难点。
3.在图像描述技术的发展初期,研究人员尝试利用计算机识别出图像的物体以及确定目标的属性,并且以自然语言的形式描述图像内容。在最初的图像描述任务中,一般都是使用基于模板和检索的方式去生成图像描述,但是这些方法十分依赖前期的图像处理过程,只能处理较小规模的图像数据,对于描述生成的模型优化有限,因此难以生成高质量的图像描述。近年来,由于深度学习技术的发展,神经网络在计算机视觉和自然语言处理领域得到了广泛应用,研究人员提出了使用编码器-解码器模型来进行图像描述,他们是通过端到端的学习方法直接实现图像和描述句子间的映射,这个模型能够生成较准确地描述,性能也超过最初的方法。
4.由于传统的编码器-解码器模型结构过于简单,在处理固定长度的词向量有着局限性,损失了的大量详细信息,影响了图像描述的准确率。之后,研究人员又将注意力机制融入编码器-解码器框架进行图像描述,通过在注意力机制中加入lstm网络,使模型效果得到很大的提升。然而,尽管注意力机制能够让模型的效果得到很大的提升,但是由于注意力机制并不能准确聚焦到各个图像的物体上,导致由图像特征经过lstm网络生成词向量不够完整,造成了最终的图像描述不完整,影响了准确性。


技术实现要素:

5.本发明的目的是为了解决现有技术中存在的缺点,而提出的一种基于编码器-解码器及bi-lstm注意力模型的图像描述方法,采用新的bi-lstm注意力模型,结合编码器-解码器,该模型结合前向和后向lstm的生成信息,增加注意力机制,调整图像权重的分配,提高了图像描述结果的准确性。
6.为了实现上述目的,本发明采用了如下技术方案:
7.一种基于编码器-解码器及bi-lstm注意力模型的图像描述方法,具体步骤如下:
8.步骤1、提前准备好图像描述数据集(mscoco 2014),数据集里面有描述的标注,将
数据集划分为训练集、测试集以及验证集;
9.步骤2、将训练集中标注的图像描述单词,按照单词出现的频率降序排列,将单词的映射以一维数组的形式存储在计算机中,形成与图像描述相关的词汇数组;
10.步骤3、构建并训练卷积神经网络cnn的编码器模型:构建一个由卷积层、平均池化层、全连接层和softmax层组成的编码器模型,并且设置每层的参数;然后不断训练这个模型,通过微调函数对各个参数进行微调,得到训练好的编码器模型;
11.步骤4、训练集中的图片输入到训练以及调参完成的卷积神经网络cnn编码器模型中,并且同时输入到经过imagenet数据集训练过的resnet101网络上,将全连接层的特征作为编码器的图像特征输出,并且存储在编码器中;
12.步骤5、构建循环神经网络rnn的句子解码器模型:构建一个由输入层、输出层、隐藏层以及循环层组成的句子编码器模型,并且设置每层的参数,之后用微调函数调整参数;
13.步骤6、构建带有bi-lstm的注意力机制模型:将一个注意力机制网络和双向长短期神经网络bi-lstm组成新的bi-lstm注意力模型,该bi-lstm注意力模型是由两个相互独立的正向lstm和反向lstm组成的,该bi-lstm注意力模型是由2048个神经元构成的;
14.步骤7、训练bi-lstm注意力模型;
15.步骤8、进行编码器-解码器及bi-lstm模型效果的测试,采用三通道的编码器提取输出图像特征,然后将提取的图像特征作为输入,输入训练过的bi-lstm注意力模型中,与词向量数组加权点乘,最后作为输入,输入训练优化过的句子编码器中,得到最后的图像描述,通过使用blue-4、meteor和cider作为图像描述的评价指标。
16.优选地,在步骤7中,具体包括:
17.步骤7.1、在t
0-tn不同时刻中,将训练集中每个图像描述的单词输入模型,从t0时刻开始,训练新的bi-lstm注意力模型;
18.步骤7.2、参照步骤4,将其中经过imagenet数据集训练过的resnet101网络最后一层全连接层进行平均池化,将其平均池化后的特征作为特征向量;
19.步骤7.3、将特征向量和当前tn时刻图像描述的词向量相加,输入到bi-lstm注意力模型中前向长短期记忆网络lstm中,然后网络前向传导输出隐藏态;
20.步骤7.4、读取步骤2中的词向量数组,将词向量数组输入到bi-lstm注意力模型的注意力网络中,注意力网络前向传导出加权的词向量数组;
21.步骤7.5、将当前tn时刻bi-lstm注意力模型的隐藏态和注意力网络的加权词向量相加,将其输入到全连接层,输出t
n+1
时刻的单词向量概率;
22.步骤7.6、判断t
n+1
时刻图像描述中的单词是否存在,若存在,则用交叉熵函数计算出图像描述的t
n+1
时刻单词向量和单词向量概率之间的损失,然后,继续执行步骤7.2;否则,执行步骤7.7;
23.步骤7.7、根据步骤7.3、步骤7.4,利用bi-lstm网络的双向性特点,首先将相加的词向量相加,输入模型中的后向长短期记忆网络lstm中,网络后向传导输出隐藏态;将词向量数组输入模型的注意力网络中,注意力网络后向传导出加权的词向量数组;
24.步骤7.8、将当前tn时刻bi-lstm注意力模型的隐藏态和注意力网络的加权词向量相加,将其输入到全连接层,经过,输出t
n-1
时刻的单词向量概率;
25.步骤7.9、判断t
n-1
时刻图像描述中的单词是否存在,若存在,则用交叉熵函数计算
出图像描述的t
n-1
时刻单词向量和单词向量概率之间的损失,然后,继续执行步骤7.2;否则,执行步骤7.10;
26.步骤7.10、将t
0-t
n+1
时间内的损失相加求和得到总损失和,并使用bp反向传播计算梯度和优化器adam调整模型中的所有参数,减小总损失的值,优化模型的效果,当总损失趋于平稳时停止训练模型,得到训练完成的bi-lstm注意力模型。
27.通过采用上述技术方案:首先在注意力机制中将传统的长短期记忆网络lstm改成了一种新的bi-lstm网络结构,将编码器提取的图像特征输入进入修改过的注意力机制中,不仅提高了描述图像的泛化能力,而且有效地将图像描述的准确性提高。其次,本发明同时还将译码器部分中的循环神经网络rnn进行优化,使输入编码器的词向量能够更加快速地生成图像描述,节省时间成本,并且让生成的语句更加真实自然,让人无法判读出是机器产生的,使图像描述更加的高效。
28.与现有技术相比,本发明具有以下有益效果:
29.1、本发明通过构建的bi-lstm注意力模型利用双向长短期记忆网络bi-lstm,解决了现有图像描述方法生成语句不完整以及图像权重分配不均的缺点,前向和后向的长短期记忆网络lstm相互对比结果,并且通过注意力机制调整,有效的提高了图像描述的准确性。
30.2、本发明利用bi-lstm模型生成加权词向量的输入以及通过优化过循环神经网络rnn后的句子解码器来对全连接层图像特征的优化,解决了现有技术仅使用过于简单的模型结构,大大浪费图像描述结果时间的问题,节省了模型的构建与训练时间,提高了图像描述的效率,而且使生成的图像描述更加真实自然。
附图说明
31.图1为本发明的结构示意图;
32.图2为本发明中bi-lstm隐藏结构原理示意图;
33.图3为本发明中训练过模型的具体实验效果图。
具体实施方式
34.下面结合附图将对本发明实施例中的技术方案进行清楚、完整地描述,以使本领域的技术人员能够更好的理解本发明的优点和特征,从而对本发明的保护范围做出更为清楚的界定。本发明所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.如图1所示,一种基于编码器-解码器及bi-lstm注意力模型的图像描述方法,具体步骤如下:
36.步骤1、提前准备好开源的图像描述数据集mscoco 2014,数据集里面有描述的标注,将数据集切分为113,287张训练集图片、5,000张测试集图片以及5,000张验证集图片。
37.步骤2、将训练集中标注的图像描述单词进行识别,按照单词出现的频率降序排列,将单词的映射以一维数组的形式存储在计算机中,获取词向量形成与图像描述相关的词汇数组。
38.步骤3、构建并训练卷积神经网络cnn的编码器模型:构建一个由卷积层、平均池化
层、全连接层和softmax层组成的编码器模型,并且设置每层的参数,通道数为3通道,维度为1024;其中卷积层输出feature map表示为:
39.n=(w-f+2p)/s+1
40.其中,n为输出图片的大小,w为输入图片的大小,f为卷积核的大小,s为步长。
41.平均池化层需要用到adaptiveavgpool2d()函数将图像进行平均池化,softmax层中ei表示e中的第i个元素,这个元素经过这层后的值为:
[0042][0043]
其中si表示第i个元素的归一化,j表示输出节点的个数。
[0044]
然后不断训练这个模型,通过微调函数对各个参数进行微调,得到训练好的编码器模型。
[0045]
步骤4、将训练集中的图片输入到训练以及调参完成的卷积神经网络cnn编码器模型中,并且同时输入到经过imagenet数据集训练过的resnet101网络上,将全连接层的特征作为编码器的图像特征输出,并且存储在编码器中。
[0046]
其中,xi为第i个全连接层的输入,ai为第i层输出,w
i1
为第i层权重,bi为第i层为偏置,有如下全连接层的计算:
[0047]ai
=w
i1
*x1+...+w
i1
*xi+bi[0048]
步骤5、构建循环神经网络rnn的句子解码器模型:
[0049]
构建一个由输入层、输出层、隐藏层以及循环层组成的句子编码器模型,并且设置每层的参数,之后用微调函数调整参数。对于任意一个序列时刻t,隐藏层中状态h
(t)
由t时刻的全连接层的输入x
(t)
和前一个时刻t-1的隐藏层状态h
(t-1)
得到:
[0050]h(t)
=σ(z
(t)
)=σ(ux
(t)
+wh
(t)
+b)
[0051]
其中,σ为rnn的激活函数,一般都为tanh,u和w都为x
(t)
和h
(t-1)
的权重系数,b为可学习的偏置项。
[0052]
当序列时刻t时,模型的输出层o
(t)
的表达式比较简单:
[0053]o(t)
=vh
(t)
+c
[0054]
其中h
(t)
为隐藏层中状态,v都为h
(t)
的权重系数。
[0055]
最终在序列时刻t时,得到的预测输出层为:
[0056][0057]
其中σ表示激活函数sigmoid,o
(t)
表示之前的模型输出层。
[0058]
步骤6、构建带有bi-lstm的注意力机制模型:
[0059]ct-1
[0060]
将一个注意力机制网络和双向长短期神经网络bi-lstm组成新的bi-lstm注意力模型,这个模型输入序列分别以正序和逆序输入至2个lstm神经网络进行特征提取,将2个输出向量(即提取后的特征向量)进行拼接后形成的词向量作为该词的最终特征表达,bi-lstm的模型设计理念是使t时刻所获得特征数据同时拥有过去和将来之间的信息,这种神经网络结构模型对文本特征提取效率和性能要优于单个lstm结构模型,这个注意力模型是由2048个神经元构成的。
[0061]
步骤7、根据图2,其中f(t)、i(t)、o(t)分别表示t时刻遗忘门、输入门、输出门的值,a(t)表示t时刻对h
t-1
和x
t
的初步特征提取,之后训练bi-lstm注意力模型:
[0062]
具体的计算过程:
[0063]
f(t)=σ(wfh
t-1
+ufx
t
+bf)
[0064]
i(t)=a(w
iht-1
+uix
t
+bi)
[0065]
a(t)=tanh(wah
t-1
+uax
t
+ba)
[0066]
o(t)=σ(w
oht-1
+uox
t
+bo)
[0067]
其中,x
t
表示t时刻的输入,h
t-1
表示t

1时刻的隐层状态值;
[0068]
wf、wi、wa、wo分别表示遗忘门、输入门、特征提取和输出门过程中h
t-1
的权重系数;
[0069]
uf、ui、ua、uo分别表示遗忘门、输入门、特征提取和输出门过程中x
t-1
的权重系数;
[0070]bf
、bi、ba、bo分别表示遗忘门、输入门、特征提取和输出门过程中x
t-1
的权重系数;
[0071]
步骤7.1、在t
0-tn不同时刻中,将训练集中每个图像描述的单词输入模型,从t0时刻开始,训练新的bi-lstm神经元,来达到训练注意力模型的目的。
[0072]
步骤7.2、参照步骤4,将其中经过imagenet数据集训练过的resnet101网络最后一层全连接层进行平均池化,将其平均池化后的特征作为特征向量。
[0073]
步骤7.3、将特征向量和当前tn时刻图像描述的词向量相加,输入到bi-lstm注意力模型中前向长短期记忆网络lstm中,然后网络前向传导输出隐藏态。遗忘门和输入门计算的结果作用于,构成t时刻的细胞状态,用公式表示为:
[0074]
c(t)=c(t-1)

f(t)+i(t)

a(t)
[0075]
其中,

为点乘积。最终,t时刻的隐藏层状态h(t)由输出门o(t)和当前时刻的细胞状态c(t)求出:
[0076]
h(t)=o(t)

tanh(c(t))
[0077]
步骤7.4、读取步骤2中的词向量数组,将词向量数组输入到bi-lstm注意力模型的注意力网络中,注意力网络前向传导出加权的词向量数组。
[0078]
步骤7.5、将当前tn时刻bi-lstm注意力模型的隐藏态和注意力网络的加权词向量相加,将其输入到全连接层,输出t
n+1
时刻的单词向量概率。
[0079]
步骤7.6、判断t
n+1
时刻图像描述中的单词是否存在,若存在,则用交叉熵函数计算出图像描述的t
n+1
时刻单词向量和单词向量概率之间的损失,然后,继续执行步骤7.2;否则,执行步骤7.7。
[0080]
步骤7.7、根据步骤7.3、步骤7.4,利用bi-lstm网络的双向性特点,首先将相加的词向量相加,输入模型中的后向长短期记忆网络lstm中,网络后向传导输出隐藏态。将词向量数组输入模型的注意力网络中,注意力网络后向传导出加权的词向量数组。
[0081]
步骤7.8、将当前tn时刻bi-lstm注意力模型的隐藏态和注意力网络的加权词向量相加,将其输入到全连接层,经过激活函数sigmoid,输出t
n-1
时刻的单词向量概率。
[0082]
其中tanh表示正切双曲函数,σ表示激活函数sigmoid,如下公式:
[0083][0084]
[0085]
步骤7.9、判断t
n-1
时刻图像描述中的单词是否存在,若存在,则用交叉熵函数计算出图像描述的t
n-1
时刻单词向量和单词向量概率之间的损失,计算n个样本的总的损失函数,只要将n个loss叠加起来就可以了,如下表达式:
[0086][0087]
其中y(i)为当前时刻的真实输出,而为当前时刻的预测输出。
[0088]
然后,继续执行步骤7.2;否则,执行步骤7.10。
[0089]
步骤7.10、将t
0-t
n+1
时间内的损失相加求和得到总损失和,并使用bp反向传播计算梯度和优化器adam调整模型中的所有参数,减小总损失的值,优化模型的效果,当总损失趋于平稳时停止训练模型,得到训练完成的bi-lstm注意力模型。
[0090]
步骤8、进行编码器-解码器及bi-lstm模型效果的测试,采用三通道的编码器提取输出图像特征,然后将提取的图像特征作为输入,输入训练过的bi-lstm注意力模型中,与词向量数组加权点乘,最后作为输入,输入训练优化过的句子编码器中,得到最后的图像描述,可以通过使用blue-4,meteor和cider作为图像描述的评价指标。
[0091]
为比较本发明方法和其他方法生成的图像描述的效率,分别对mscoco测试集数据集上生成方法进行评价,评价的指标为blue-4,meteor和cider。现将指标的结果绘制成表格,如下表1,其中前两个为现有的自评价序列模型和自适应注意力模型方法的评价结果,最后,是本发明方法的评价结果。
[0092]
表1.本发明方法与其他方法的评价分析表
[0093][0094]
从表1中可以发现,本发明的bi-lstm模型网络与自评价序列模型和自适应注意力模型方法相比,在各个评价结果上都取得较高的分数,说明本发明方法生成图像描述的效率和准确率都较高。
[0095]
根据图3可以看出,本发明训练过模型的具体实验效果比较准确,十分高效地描述了图像内容。
[0096]
综上所述,本发明采用一种新的bi-lstm模型,该模型结合前向和后向lstm的生成信息,调整图像权重的分配,提高了图像描述结果的准确性;本发明将解码器中的结构进行优化,使图像描述更加真实自然地贴合人们的语言,并且通过提高循环神经网络rnn解码的效率,节省图像描述生成的时间成本。
[0097]
本发明中披露的说明和实践,对于本技术领域的普通技术人员来说,都是易于思考和理解的,且在不脱离本发明原理的前提下,还可以做出若干改进和润饰。因此,在不偏离本发明精神的基础上所做的修改或改进,也应视为本发明的保护范围。

技术特征:
1.一种基于编码器-解码器及bi-lstm注意力模型的图像描述方法,其特征在于,具体步骤如下:步骤1、提前准备好图像描述数据集,数据集里面有描述的标注,将数据集划分为训练集、测试集以及验证集;步骤2、将训练集中标注的图像描述单词,按照单词出现的频率降序排列,将单词的映射以一维数组的形式存储在计算机中,形成与图像描述相关的词汇数组;步骤3、构建并训练卷积神经网络cnn的编码器模型:构建一个由卷积层、平均池化层、全连接层和softmax层组成的编码器模型,并且设置每层的参数;然后不断训练这个模型,通过微调函数对各个参数进行微调,得到训练好的编码器模型;步骤4、将训练集中的图片输入到训练以及调参完成的卷积神经网络cnn编码器模型中,并且同时输入到经过imagenet数据集训练过的resnet101网络上,将全连接层的特征作为编码器的图像特征输出,并且存储在编码器中;步骤5、构建循环神经网络rnn的句子解码器模型:构建一个由输入层、输出层、隐藏层以及循环层组成的句子编码器模型,并且设置每层的参数,之后用微调函数调整参数;步骤6、构建带有bi-lstm的注意力机制模型:将一个注意力机制网络和双向长短期神经网络bi-lstm组成新的bi-lstm注意力模型,该bi-lstm注意力模型是由两个相互独立的正向lstm和反向lstm组成的,该bi-lstm注意力模型是由2048个神经元构成的;步骤7、训练bi-lstm注意力模型;步骤8、进行编码器-解码器及bi-lstm模型效果的测试,采用三通道的编码器提取输出图像特征,然后将提取的图像特征作为输入,输入训练过的bi-lstm注意力模型中,与词向量数组加权点乘,最后作为输入,输入训练优化过的句子编码器中,得到最后的图像描述,通过使用blue-4、meteor和cider作为图像描述的评价指标。2.根据权利要求1所述的一种基于编码器-解码器及bi-lstm注意力模型的图像描述方法,其特征在于,在步骤7中,具体包括:步骤7.1、在t
0-t
n
不同时刻中,将训练集中每个图像描述的单词输入模型,从t0时刻开始,训练新的bi-lstm注意力模型;步骤7.2、参照步骤4,将其中经过imagenet数据集训练过的resnet101网络最后一层全连接层进行平均池化,将其平均池化后的特征作为特征向量;步骤7.3、将特征向量和当前t
n
时刻图像描述的词向量相加,输入到bi-lstm注意力模型中前向长短期记忆网络lstm中,然后网络前向传导输出隐藏态;步骤7.4、读取步骤2中的词向量数组,将词向量数组输入到bi-lstm注意力模型的注意力网络中,注意力网络前向传导出加权的词向量数组;步骤7.5、将当前t
n
时刻bi-lstm注意力模型的隐藏态和注意力网络的加权词向量相加,将其输入到全连接层,输出t
n+1
时刻的单词向量概率;步骤7.6、判断t
n+1
时刻图像描述中的单词是否存在,若存在,则用交叉熵函数计算出图像描述的t
n+1
时刻单词向量和单词向量概率之间的损失,然后,继续执行步骤7.2;否则,执行步骤7.7;步骤7.7、根据步骤7.3、步骤7.4,利用bi-lstm网络的双向性特点,首先将相加的词向量相加,输入模型中的后向长短期记忆网络lstm中,网络后向传导输出隐藏态;将词向量数
组输入模型的注意力网络中,注意力网络后向传导出加权的词向量数组;步骤7.8、将当前t
n
时刻bi-lstm注意力模型的隐藏态和注意力网络的加权词向量相加,将其输入到全连接层,经过,输出t
n-1
时刻的单词向量概率;步骤7.9、判断t
n-1
时刻图像描述中的单词是否存在,若存在,则用交叉熵函数计算出图像描述的t
n-1
时刻单词向量和单词向量概率之间的损失,然后,继续执行步骤7.2;否则,执行步骤7.10;步骤7.10、将t
0-t
n+1
时间内的损失相加求和得到总损失和,并使用bp反向传播计算梯度和优化器adam调整模型中的所有参数,减小总损失的值,优化模型的效果,当总损失趋于平稳时停止训练模型,得到训练完成的bi-lstm注意力模型。

技术总结
本发明涉及计算机视觉和自然语言处理技术领域,尤其涉及一种基于编码器-解码器及Bi-LSTM注意力模型的图像描述方法,包括:首先,构建带有卷积神经网络CNN的编码器模型并且用预处理过的图片去训练编码器模型,以便可以高效提取出图像特征;然后构建并训练Bi-LSTM注意力机制模型,把提取的图像特征作为输入,生成准确地每个词向量;最后,构建带有循环神经网络RNN的句子解码器模型,将词向量输入模型中,以进行图像描述生成。本发明采用一种新的Bi-LSTM模型,该模型结合前向和后向LSTM的生成信息,调整图像权重的分配,提高了图像描述结果的准确性;本发明通过提高循环神经网络RNN解码的效率,节省图像描述生成的时间成本。节省图像描述生成的时间成本。节省图像描述生成的时间成本。


技术研发人员:王杰华 谢天 程实 张金宝 武卫翔
受保护的技术使用者:南通大学
技术研发日:2023.05.10
技术公布日:2023/8/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐