本发明一种基于深度学习模型的图像中文描述方法属于计算机视觉与自然语言处理领域。
背景技术:
伴随着多媒体的发展以及互联网规模的扩大,手机,平板等硬件设备的普及化,使得互联网中的图像资源呈现指数增长。这给用户在互联网中进行图像检索带来很大的困难,而人为对这些图像进行手工标注已经成为一件不可能的事,为了确保图像可以被用户在有限的时间内被准确的检索出来,这需要使得机器可以自动理解图像中的内容,并为图像自动作上标注。进而方便用户的检索。
目前在图像描述方面出现的方法都是基于图像的英文文本描述,设计更符合中国国情的图像中文语义化理解系统对当下而言是一件迫切的任务。中文的自然语言处理nlp不同于英文的自然语言处理,例如:在nlp领域,词是最小的能够独立运用的语言单位,由于汉语的特殊性,中文为了能够更好地进行后续nlp任务需要对中文文本进行分词而英文不需要分词,中文分词也是英文和中文nlp的一个基本不同,中文在分词任务中,会碰到两种歧义现象:交叉歧义和组合歧义,解决分词歧义的技术方法主要有三大类,分别是基于规则的方法,基于统计的方法,以及规则和统计结合。目前一些好的分词器基于以上规则可以对中文分词的两种歧义现象进行改进。其次在目前出现的英文文本描述方法中,这些方法大都基于编解码的规则,而这种方法的局限性在于对复杂的场景无法对图像的内容进行准确而完整的英文描述。
技术实现要素:
针对上述问题,本发明的目的在于提供一种基于深度学习模型的图像中文描述方法。
本发明的目的是这样实现的:
一种基于深度学习模型的图像中文描述方法,包括以下步骤:
步骤a、准备imagenet图像数据集和aichallenger图像中文描述数据集;
步骤b、对imagenet图像数据集利用dcnn进行预训练,得到dcnn预训练模型;
步骤c、dcnn预训练模型对aichallenger图像中文描述数据集进行图像特征提取和图像特征映射,传输至gru门限递归网络循环神经网络;
步骤d、对aichallenger图像中文描述数据集中的aichallenger图像标注集进行词编码矩阵构建,包括文本预处理和分词,建立词典,在中文语句建立词索引;
步骤e、利用nnlm提取词嵌入特征,完成文本特征映射,传输至gru门限递归网络循环神经网络;
步骤f、gru门限递归网络循环神经网络作为语言生成模型,完成图像描述模型构建;
步骤g、中文描述语句生成。
进一步地,所述一种基于深度学习模型的图像中文描述方法,步骤b所述dcnn是深度卷积神经网络,选取经典dcnn网络模型alexnet模型对imagenet图像数据集进行预训练,得到网络各层权重系数值即dcnn预训练模型。
进一步地,所述一种基于深度学习模型的图像中文描述方法,在步骤c中;
所述图像特征提取是指dcnn预训练模型对aichallenger图像中文描述数据集中的图片集进行特征提取,取出第三个连接层的特征向量即4096维,所述特征向量是原始图像经过5层卷积,3层全连接得到;
所述图像特征映射是指由于较大的特征向量在网络训练时易造成过拟合现象,因此采用全连接的方法将所述特征向量即4096映射到512维的特征空间,得到图片特征映射矩阵p1*512。
进一步地,所述一种基于深度学习模型的图像中文描述方法,步骤d所述词编码矩阵构建包括以下步骤:
步骤d1、对aichallenger图像中文描述数据集中的aichallenger图像标注集即caption数据集进行预处理;
步骤d2、采用jieba对中文caption进行分词,筛选出频率大于4的词语组成词频词典;
步骤d3、设置<s>及</s>作为文本的起止标识符占一个词语位,生成的词典大小为8560;
步骤d4、对词典中每个词进行独热编码,词向量维度与词典大小相等为8560维,词向量中数值为1处代表该位置标号值为词典中词语的索引值。
进一步地,所述一种基于深度学习模型的图像中文描述方法,步骤e所述文本特征映射方法如下:
固定好遍历caption的滑动窗口为4,每次使用窗口中前三个词去推断下一个词的概率;词向量w的独热表示是一个1*8560的向量,词向量经过投影矩阵c8560*300,得到投影向量[w*c]1*300,nnlm的输入层神经元的个数是三个投影向量的拼接维数,即900个,nnlm的隐层神经元个数为512,隐层激活函数为tanh函数,nnlm的输出层神经元个数为8560,并加入softmax进行归一化,得到词典中每一个词的概率,选取其中概率最高的作为预测词的概率,在caption数据集上遍历滑动窗口并得到隐藏层与输出层之间的权重矩阵就是最终得到的词嵌入矩阵,即文本特征映射矩阵w512*8560,即将词典中每一个词都转化为一个512维的词向量;
nnlm模型的优化目标是在训练集上使得前t-1时刻词已知的情况下得出的t时刻词语概率值的似然函数最大化:
其中wt是当前预测的词语,wt-n+1…wt-1是它的上文,优化的目标是当前词在已知上文语义情况下的最大似然;
模型的训练是用sgd算法来更新参数:
进一步地,所述一种基于深度学习模型的图像中文描述方法,步骤f所述图像描述模型构建包括以下步骤:
步骤f1、给一条包含m个词的caption加入元素0作为开始标志位,所述caption是一个由词语索引组成的列表;
步骤f2、通过所述索引列表去查找文本特征映射矩阵w512*8560,得到每一个词语的词嵌入向量,并将caption的所有词嵌入向量拼接成一个词嵌入矩阵x(m+1)*512;
步骤f3、所述词嵌入矩阵x(m+1)*512与图像特征映射矩阵p1*512一起送入gru门限递归网络循环神经网络,所述gru门限递归网络循环神经网络的输入神经元个数为512个,隐藏层神经元个数为512,输出层神经元个数为8560。gru模型有两个门,一个是更新门,一个是重置门,t-1时刻的隐含信息ht-1与t时刻的输入信息xt同时输入gru单元,更新门的值越大说明前一时刻的状态信息带入越多。重置门的值越小说明忽略前一时刻状态信息越多。计算过程如下:
zt=σ(wz·[ht-1,xt])
γt=σ(wγ·[ht-1,xt])
其中t为序列长度,zt为gru的更新门,rt为gru的重置门,更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多,重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多,ht为t时刻的隐藏状态,经过gru网络前向计算,网络的最终输出y是一个(m+1)*8560的矩阵;
步骤f4、给目标caption列表的尾部加入一个元素0作为语句终止标识符,对目标caption列表中每个词语进行独热编码,编码矩阵的维数为8560,得到目标矩阵o(m+1)*8560,语言模型的损失函数选择交叉熵损失函数,系统优化的目标是使得每时刻生成的单词向量负似然损失函数最小化,公式如下:
并利用梯度下降法进行训练实现对参数的更新;
步骤f5、循环操作上述步骤对数据集中每张图片及其caption进行训练,迭代5500次得到训练好的模型并保存。
进一步地,所述一种基于深度学习模型的图像中文描述方法,所述步骤g中所述中文描述语句生成,是指将测试图片送入网络模型中,生成对所述图片的中文语句描述。
有益效果:
本发明提供了一种基于深度学习模型的图像中文描述方法,提出了对图像进行中文描述的方法,并且在图像描述方面提出了新的想法和方案。
在中文文本描述方面,与传统的语言模型相比,本发明具有模型精简,参数少,长时记忆等优点,对本发明的图像特征与语料集进行训练的过程中,在保持良好的上下文语义联系的同时又可以大大减少训练的时间,并且由于本发明的拟合能力也很强,这使得中文文本的可读性进一步增强。
在词嵌入方面,本发明与传统的图像文本描述方法对语料集进行随机初始化方式,本发明提出对语料集进行词嵌入特征提取,对句子的语境以及上下文之间的联系可以做到更好的表达,并对后续的语言生成工作进行了优化。
最后本发明弥补了图像中文描述的空白,实现自动生成图像中文描述的功能,并且在描述内容的准确性上有很好的改进,为中文nlp以及计算机视觉的发展奠定了基础。
附图说明
图1是一种基于深度学习模型的图像中文描述方法的总体流程图。
图2是第一实验效果图。
图3是第二实验效果图。
具体实施方式
下面结合附图对本发明具体实施方式作进一步详细描述。
一种基于深度学习模型的图像中文描述方法,如1所示,包括以下步骤:
步骤a、准备imagenet图像数据集和aichallenger图像中文描述数据集;
步骤b、对imagenet图像数据集利用dcnn进行预训练,得到dcnn预训练模型;
步骤c、dcnn预训练模型对aichallenger图像中文描述数据集进行图像特征提取和图像特征映射,传输至gru门限递归网络循环神经网络;
步骤d、对aichallenger图像中文描述数据集中的aichallenger图像标注集进行词编码矩阵构建,包括文本预处理和分词,建立词典,在中文语句建立词索引;
步骤e、利用nnlm提取词嵌入特征,完成文本特征映射,传输至gru门限递归网络循环神经网络;
步骤f、gru门限递归网络循环神经网络作为语言生成模型,完成图像描述模型构建;
步骤g、中文描述语句生成。
具体地,所述一种基于深度学习模型的图像中文描述方法,步骤b所述dcnn是深度卷积神经网络,选取经典dcnn网络模型alexnet模型对imagenet图像数据集进行预训练,得到网络各层权重系数值即dcnn预训练模型。
具体地,所述一种基于深度学习模型的图像中文描述方法,在步骤c中;
所述图像特征提取是指dcnn预训练模型对aichallenger图像中文描述数据集中的图片集进行特征提取,取出第三个连接层的特征向量即4096维,所述特征向量是原始图像经过5层卷积,3层全连接得到;
所述图像特征映射是指由于较大的特征向量在网络训练时易造成过拟合现象,因此采用全连接的方法将所述特征向量即4096映射到512维的特征空间,得到图片特征映射矩阵p1*512。
具体地,所述一种基于深度学习模型的图像中文描述方法,步骤d所述词编码矩阵构建包括以下步骤:
步骤d1、对aichallenger图像中文描述数据集中的aichallenger图像标注集即caption数据集进行预处理;
步骤d2、采用jieba对中文caption进行分词,筛选出频率大于4的词语组成词频词典;
步骤d3、设置<s>及</s>作为文本的起止标识符占一个词语位,生成的词典大小为8560;
步骤d4、对词典中每个词进行独热编码,词向量维度与词典大小相等为8560维,词向量中数值为1处代表该位置标号值为词典中词语的索引值。
具体地,所述一种基于深度学习模型的图像中文描述方法,步骤e所述文本特征映射方法如下:
固定好遍历caption的滑动窗口为4,每次使用窗口中前三个词去推断下一个词的概率;词向量w的独热表示是一个1*8560的向量,词向量经过投影矩阵c8560*300,得到投影向量[w*c]1*300,nnlm的输入层神经元的个数是三个投影向量的拼接维数,即900个,nnlm的隐层神经元个数为512,隐层激活函数为tanh函数,nnlm的输出层神经元个数为8560,并加入softmax进行归一化,得到词典中每一个词的概率,选取其中概率最高的作为预测词的概率,在caption数据集上遍历滑动窗口并得到隐藏层与输出层之间的权重矩阵就是最终得到的词嵌入矩阵,即文本特征映射矩阵w512*8560,即将词典中每一个词都转化为一个512维的词向量;
nnlm模型的优化目标是在训练集上使得前t-1时刻词已知的情况下得出的t时刻词语概率值的似然函数最大化:
其中wt是当前预测的词语,wt-n+1…wt-1是它的上文,优化的目标是当前词在已知上文语义情况下的最大似然;
模型的训练是用sgd算法来更新参数:
具体地,所述一种基于深度学习模型的图像中文描述方法,步骤f所述图像描述模型构建包括以下步骤:
步骤f1、给一条包含m个词的caption加入元素0作为开始标志位,所述caption是一个由词语索引组成的列表;
步骤f2、通过所述索引列表去查找文本特征映射矩阵w512*8560,得到每一个词语的词嵌入向量,并将caption的所有词嵌入向量拼接成一个词嵌入矩阵x(m+1)*512;
步骤f3、所述词嵌入矩阵x(m+1)*512与图像特征映射矩阵p1*512一起送入gru门限递归网络循环神经网络,所述gru门限递归网络循环神经网络的输入神经元个数为512个,隐藏层神经元个数为512,输出层神经元个数为8560,计算过程如下:
zt=σ(wz·[ht-1,xt])
γt=σ(wγ·[ht-1,xt])
其中t为序列长度,zt为gru的更新门,rt为gru的重置门,更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多,重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多,ht为t时刻的隐藏状态,经过gru网络前向计算,网络的最终输出y是一个(m+1)*8560的矩阵;
步骤f4、给目标caption列表的尾部加入一个元素0作为语句终止标识符,对目标caption列表中每个词语进行独热编码,编码矩阵的维数为8560,得到目标矩阵o(m+1)*8560,语言模型的损失函数选择交叉熵损失函数,公式如下:
并利用梯度下降法进行训练实现对参数的更新;
步骤f5、循环操作上述步骤对数据集中每张图片及其caption进行训练,迭代5500次得到训练好的模型并保存。
具体地,所述一种基于深度学习模型的图像中文描述方法,所述步骤g中所述中文描述语句生成,是指将测试图片送入网络模型中,生成对所述图片的中文语句描述。
进行上述操作,得到实验效果图,如图2和图3所示。