本发明属于计算机应用,具体涉及到图像描述字幕生成方法。
背景技术:
1、随着深度学习的发展,研究者对图像描述字幕生成任务的精确性要求越来越高,希望生成的文本尽可能的符合图片内容,然而精确的自然语言描述离不开精确的图像特征的提取。现有的图像特征提取方法大都使用经典的计算机视觉预训练网络对图像网格特征或区域特征进行编码,然后直接用于文本内容生成,而没有对图像特征之间的相互关系进行语义理解,导致模型不能充分理解图像的信息,从而导致生成文本的质量较差。
2、现有的图像描述字幕生成方法有以下几种:
3、(1)基于模板的图像描述字幕生成方法
4、基于模板的图像描述字幕生成方法是通过目标检测和属性分类的方法检测图像中的实体及其固有属性和动作、实体所处的场景以及实体与实体之间的语义关系,将检测得到的相应单词填充到形式固定的句子模板中,得到一个在语法上相对完整的描述句子。该方法的优点在于思想简单直观,缺点是由于固定长度和结构的句子模板的限制,使得通过此方法得到的图像描述在结构上非常单一和僵硬,在表达形式上严重缺乏灵活性和多样性。该方法必须将每个实体、实体的固有属性和动作以及实体所处的场景归类到明确且有限的类别标签中,过度依赖分类器的性能,需要大量人工对数据集进行标注处理。
5、(2)基于检索的图像描述字幕生成
6、基于检索的方法是将图像描述生成的问题类比为图像检索的问题,通过从预先构建的语料库中检索出最相似的句子作为给定输入图像的描述,检索的句子可以是一条或者几条。与图像描述生成方法相比,该方法的优点在于可以生成更加通顺、流畅、符合人类使用的自然语言图像描述。这种方法存在的较大缺点是在生成图像描述时,完全取决于预先构建的语料库,无法适应新的场景和场合,甚至生成的描述语句可能与图像内容完全不相关。
7、上述两种方法均没有自主学习的能力,生成的描述语句均受到语言模板或语料库的限制。
技术实现思路
1、本发明所要解决的技术问题在于克服上述现有技术的缺点,提供一种转换准确、转换速度快、转换完整的基于图像特征优化的图像字幕生成方法。
2、解决上述技术问题所采用的技术方案是由下述步骤组成:
3、(1)获取图像及文本数据集
4、从官网http://mscoco.org/上下载图像字幕数据集mscoco2014,经过卡帕西分割后,分为训练集、验证集、测试集,训练集有113287张图像,验证集有5000张图像,测试集有5000张图像,每张图像对应有5句文本描述,构成文本数据集。
5、(2)图像数据预处理
6、调整图像尺寸大小为256×256像素,将图像的三通道进行归一化处理,使像素值在[0,1]内。
7、(3)文本数据预处理
8、对文本数据,在每个文本序列开头加上开始字符,结尾加上结束字符,将所有文本句子长度处理成50个字符,长度大于50的句子进行截断处理,长度不够的句子,用填充字符进行填充,序列总长度为52个字符。
9、(4)构建词典
10、将训练集的文本序列作为字符串加载到内存中,将每个文本序列拆分为一个词元列表,对唯一词元进行统计,得到语料库,按照词频进行排序,设置阈值,低于阈值的词元都映射到一个未知词元,对于每个唯一词元,及未知词元,序列开始词元,序列结束词元,填充词元,均为其分配一个数字索引。
11、(5)提取图像特征
12、用预训练好的resnet101残差网络提取图像特征,对于给定的图像i,提取resnet101网络最后一层卷积层的输出,表示为图像特征向量vf:
13、vf={v1,v2,...,vm}
14、其中,m表示总共生成的向量个数,为有限正整数集,图像特征分向量vi大小为14×14像素。
15、(6)构建图像描述生成网络
16、图像描述生成网络由特征优化模块、词嵌入模块、注意力模块、解码模块、softmax分类层构成,特征优化模块和词嵌入模块的输出端与注意力模块的输入端相连,注意力模块与解码器、softmax分类层依次串连。
17、(7)训练图像描述生成网络
18、1)构建交叉熵损失函数
19、按下式构建交叉熵损失函数l:
20、
21、p(yt+1|yt)=softmax(wht)
22、ht=lstm(eyt,ht-1,zt)
23、式中,i表示图像,c表示描述该图像n个词汇(y1,y2,...yn)的集合,n取值为有限的正整数,yt是当前时刻生成的单词向量,yt+1是即将生成的单词向量,w表示线性矩阵,大小为词典大小×隐向量大小,ht为解码器输出的隐藏向量,lstm(·)表示经过解码器的输出,e是嵌入矩阵,大小为隐向量大小×词嵌入向量大小,ht-1为上一时刻输出的隐藏向量,zt是上下文向量。
24、2)训练图像描述生成网络
25、将训练集输入到图像描述生成网络进行训练,训练参数为:批量大小为32,编码器学习率为1e-4,解码器学习率为4e-4,丢弃率为0.5,训练至交叉熵损失函数收敛。
26、(8)测试图像描述生成网络
27、将测试集输入到训练好的图像描述生成网络,输出图像字幕。
28、在本发明的步骤(6)构建图像描述生成网络中,所述的特征优化模块由图像编码器与多头自注意力模块串连构成。
29、在本发明的步骤(6)构建图像描述生成网络中,所述的多头自注意力模块的构建方法如下:
30、
31、fmh-att(q,k,v)=concat(head1,head2,...,headh)
32、headi=fdot-att(qi,ki,vi)
33、其中,fdot-att(·)为缩放点积注意力,q,k,v分别为查询,键和值向量,i的取值为1~h,h为头的个数,fmh-att(·)表示多头注意力结果。
34、在本发明的步骤(6)构建图像描述生成网络中,所述的h取值最佳为8。
35、在本发明的步骤(5)提取图像特征中,所述的resnet101网络由1个7×7卷积层、步长为2,1个3×3最大池化层、步长为2,37个残差块,每个残差块包含2个1×1的卷积层和1个3×3的卷积层,最后是一个平均池化层。
36、本发明与现有技术相对具有以下优点:
37、由于本发明在提取图像特征步骤中采用了预训练好的resnet101残差网络提取图像特征,对于给定的图像,提取resnet101网络最后一层卷积层的输出,解决了训练中的梯度消失和梯度爆炸、时间和资源开销、类型预测精度等问题。采用了图像编码器与多头自注意力模块构成特征优化模块,提高了图像转换成字幕的清晰度。采用了课程学习的训练策略对训练数据集进行优化,提升了训练效果。本发明与现有技术相比,具有转换准确、转换速度快、转换完整等优点,可用于将图像转换成字幕生成。