生成图像描述是自然语言处理和计算机视觉的热点研究问题, 其任务主要为理解图像中物体和场景等语义信息并采用近似于人类语言的描述形式表达出来, 生成符合一定语法规则的文本信息. 图片描述作为解决图像信息到文本信息的跨模态转换的重要方法, 可广泛应用在人机交互、视觉辅助、图像标注等领域.
Vinyals等[1]提出了GoogleNIC模型, 借鉴机器翻译中常用的编码解码方式, 分别采用InceptionV3[2]预训练模型作为编码器提取图像特征信息, 长短时记忆网络(LSTM)[3]作为解码器生成图像描述. Xu等[4]在解码过程中加入注意力机制, 更加关注图像的局部特征. 邓珍荣等[5]也应用了注意力机制和卷积神经网络提取图像特征, 与Xu不同的是采用了循环门单元网络(GRU)[6]取代LSTM网络以此生成图像的描述.
随着生成对抗网络的发展流行, 生成对抗机制[7]也逐渐被应用到图像描述生成任务中. 例如Dai等 [8]通过控制条件对抗网络[9]中噪音Z来生成图像的描述, 并通过实验证明加入对抗机制生成的描述在该任务上优于其他方法, 生成的图像描述在自然性和多样性两方面都有所提高. Shetty等[10]同样采用生成对抗网络结构, 通过对抗机制提高语句多样性. 其中生成器利用CNN提取图像特征, 在解码过程引入了目标检测模型, 额外的加入RCNN[11]检测图像中具体目标图像, 通过加入图像的先验知识来提高生成描述中包含图像目标的概率. 文献[12]也通过加入先验知识来改进模型生成质量, 提出了基于主题模型的图像描述生成模型, 不同于文献[10]加入目标检测, 而是通过预测图像的主题词的概率分布来实现先验知识的获取. 这种加入先验知识的方法虽然可以获得较好的生成效果, 但是增加了生成的计算和时间成本, 而且过度依赖于先验知识, 一旦接收了错误的先验知识, 生成的描述也会受到影响.
以上工作都是基于英文领域的图像描述生成方法.因为中文词汇和语句表达的特殊性, 在理解中文语义信息往往需要断句和分词, 且中文语法表达极为灵活, 句式更加多变, 因此相比较英文的图像描述难度更大. Li等[13]在Flickr8K数据集基础上通过机器翻译和人工标注两种方式提出构建首个中文图片描述的Flickr8K-CN数据集. Wu等[14]构建首个大规模的图像中文描述数据集AIC-ICC, 包含30万张图片和150万句的中文描述. 刘泽宇等[15]基于编码解码结构构建了针对图像中文描述的生成模型, 并在Flickr8K-CN数据集上验证了该模型的有效性.
比较以上, 本文提出了多模态神经网络生成图像中文描述模型, 不同于现有的图像中文描述方法, (1)本文采用FastText[16]预训练模型对词汇进行词嵌入表示. 相较于常用的one-hot编码, 一个词汇的表示往往需要词库大小的维度, 这个问题在中文词汇上尤其严重. 词嵌入表示形式维度相较于one-hot编码维度更小, 可以更准确的保留词汇之间的语义和用法的相关性; (2)相较于利用注意力机制放大图像的局部特征, 本文更加关注图像的整体特征, 通过融合编码器设计, 将卷积神经网络中提取到的图片全局特征与图片对应的中文描述的词向量表示融合编码; (3)损失函数由两部分组成, 一部分衡量生成的词向量矩阵与真实词向量特征矩阵的余弦距离, 另一部分衡量生成描述单一词汇与目标之间的复现比例.
本文在数据集AIC-ICC、Flickr8K-CN都进行了实验, 并通过双语评估研究(BLEU)[17]值的客观指标进行评估, 与现有的模型进行对比发现BLEU值有不同程度上的提高.
1 图像中文描述网络结构本文实现图像的中文描述同样采用encoder-decoder结构, 其中encoder模型包含FastText词嵌入模型和卷积网络, 前者生成语句的词向量矩阵, 后者提取图像的全局特征, encoder将成对的语句、图像〈S,I〉进行编码, 最终融合为既包含中文描述又包含图像信息的多模态特征矩阵. Decoder采用多层LSTM模型对多模态特征矩阵进行解码, 通过计算余弦相似度得到解码结果.
1.1 FastText词汇如果通过常用的one-hot编码方式进行表示, 例如在表示词汇“运动员”时, 需要在“运动员”对应的维度上设置为1, 其他维度上设置为0, 这就意味着每一个词都需要独占一维空间. 那么, 一个词汇的维度等于词表长度, 该词向量中绝大多数的维度都没有被利用到. 同时, 词汇one-hot编码形式无法反映出词汇之间的相关性. 本文采用的FastText预训练模型对词汇进行词嵌入表示可以大大减少one-hot编码带来的冗余和稀疏问题. 一个包含104量级大小的词表, 在FastText中只需要102量级就可以表征, 通过余弦距离的计算也可以反映词汇之间的相关程度.
FastText[16]一种高效快速的文本分类模型. 该模型首先将文本词汇通过n-gram[18]格式分解, 然后和原单词相加, 得到的文本序列
本文中利用FastText模型对图像描述中的每个词汇转换为词向量形式, 计算两个词向量的余弦相似度, 其计算公式为式(1). 计算实例见表1.
$similarity = \cos \left( \theta \right) = \dfrac{{A \cdot B}}{{\left| {\left| A \right|} \right|\left| {\left| B \right|} \right|}} = \dfrac{{\displaystyle \sum\limits_{i = 1}^n {{A_i} \times {{ B}_i}} }}{{\sqrt {\displaystyle \sum\limits_{i = 1}^n {{{\left( {{A_i}} \right)}^2}} } \times \sqrt {\displaystyle \sum\limits_{i = 1}^n {{{\left( {{B_i}} \right)}^2}} } }}$ | (1) |
若余弦值越大, 则两个词汇在高维空间的表征形式越相近, 说明两个词汇有着相近的语义或强相关的用法, 所以FastText模型在词向量表征学习具有良好的性能.
图2为将若干个词向量通过PCA降成两维后的可视化表示. 可以看出, “教师”与“授课”、“学校”、“老师”等词汇相关度较高, 在图中距离也较近. 以“教师”、“运动员”、“甜点”、“商品”为关键词的词汇在图中形成4个词汇区域, 可见FastText在表征词汇上可以很好地保留其语义信息, 词汇的相关性也得以体现.
1.2 卷积网络提取图像特征卷积神经网络是一种有效的图像特征提取方法, 广泛应用在图像识别、图像检测等相关任务上, 并且表现出相当好的性能. 卷积网络通过局部区域感受野和权值共享的设计, 大大减少了模型的复杂度, 使得模型更加易于训练. 卷积网络的网络结构也随着问题的逐渐复杂而逐渐加深[20-22].
本文中使用了类似于VGG-16的卷积神经网络提取图像特征, 如表2所示, 输入图像首先经过裁剪和随机翻转增加图像的多样性, 最终变形为224×224的三通道RGB图像, 经过第一个卷积模块, 包含两次64个3×3的卷积层, 每层卷积层使用ReLU激活函数, 最终采用最大池化层向下采样, 输出128个112×112的特征图; 第二个卷积模块与第一个卷积模块一致, 输出256个56×56的特征图; 第三、第四、第五卷积模块包含3个卷积层, 经ReLU激活函数后采用平均池化层降采样, 进一步压缩和编码图像, 输出512个7×7的图像特征图; 最后经过两个全连接层, 大小分别为4096、300, 最终输出1×300的图像全局特征向量, 该特征向量的特征维数与FastText所编码的文本词向量特征维度一致.
1.3 图像中文描述生成模型
如图3所示, 图像中文描述模型由两部分构成, 融合编码器和LSTM解码器.
融合编码器对成对的语句和图像〈S,I〉进行编码. 图像的中文描述在编码之前首先需要分词, 将原始的中文描述S转换为多个词汇的序列结构
融合编码器所编码后形成的多模态特征矩阵依赖于LSTM网络作为解码器进行解码, LSTM网络为三层, 最终解码生成的(1×300)词向量在FastText词嵌入模型中计算余弦相似度, 寻找与该词向量最相似的词汇, 作为本次解码的结果.
图4进一步说明了多模态特征矩阵的解码过程, 首先图像I经过如表2所述的卷积神经网络中得到图像的全局特征向量
1.4 损失函数
在one-hot编码中, 词向量每一个维度的值都为0或1的离散型数据, 可以选择交叉熵函数作为损失函数, 最小化损失函数减少生成词向量和目标词向量的距离. 本文为了降低one-hot编码形式带了冗余, 采用FastText模型得到每个词汇的词向量, 也就是说, 在产生最终词汇序列
设
${l_1} = \dfrac{1}{{m + 1}}\displaystyle \sum\limits_{i = 0}^m {\cos \left( {{v_i},v_i'} \right)} $ | (2) |
${l_1} = \dfrac{1}{{m + 1}}\sum\limits_{i = 0}^m {\dfrac{{\displaystyle \sum\limits_{j = 0}^{n{\rm{ - }}1} {{v_{ij}} \times v_{ij}'} }}{{\sqrt {\displaystyle \sum\limits_{j = 0}^{n{\rm{ - }}1} {{{\left( {{v_{ij}}} \right)}^2}} } \times \sqrt {\displaystyle \sum\limits_{j = 0}^{n{\rm{ - }}1} {{{\left( {v_{ij}'} \right)}^2}} } }}} $ | (3) |
其中,
${l_2} = \frac{1}{{m + 1}}\sum\limits_{i = 0}^m {g\left( {{{\rm{y}}_i},W} \right)} $ | (4) |
$g\left( {{{{y}}_i},W} \right) = \left\{ {\begin{array}{*{20}{c}} 1,&\;{{\rm if}({y_i} \in W)} \\ 0,&\;{{\rm if}({y_i} \notin W)} \end{array}} \right.$ | (5) |
最终的损失函数可以表示为:
$l = \frac{1}{{{l_1}}} + \lambda \frac{1}{{{l_2}}}$ | (6) |
其中,
目前公开的图像中文描述数据集有AIC-ICC以及Flickr8K-CN. 其详细信息如表3所示.
由表3可见, AIC-ICC数据集共包含30万张图像和150万句图片描述, 本文主要选择该数据集进行实验, 其中AIC-ICC-Train的21万张图像作为训练集, AIC-ICC-Valid的3万张图像作为验证集. 数据样本如图5所示.
2.2 实验设置
本文采用结巴分词对中文描述进行分词, 统计语句经过分词后的句子长度. 如图6所示, 训练集分词后的最大句子长度为32; 除此之外, 加入<start>和<end>标记向量作为语句起始和结束标志, 通过FastText产生的语句描述词向量矩阵固定为(34×300), 当语句长度不足34时, 使用<pad>标记进行补齐, FastText中不存在的词向量的词汇用标记<unk>替换. 加上CNN网络提取到的图像特征向量(1×300), 所以最终送入LSTM解码器的融合矩阵大小固定为(35×300).
输入图像大小统一设置为3×224×224, batch_size设置为256, 进行5轮共计约150000次迭代训练, 使用Adam优化算法, 其中学习速率为0.0001, beta1为0.9, beta2为0.999. 每10000次迭代完成后保存一次模型, 最终在验证集上随机选取测试图片进行测试.
2.3 评价指标BLEU[17]是2002年提出的衡量生成语句的质量的评价指标. 最先应用在对比机器翻译语句和人工翻译的参考语句之间的相似度, 衡量机器翻译所生成的质量好坏, 现已广泛应用在生成式的自然语言评价上. BLEU针对一元词汇、二元词汇、三元词汇和元词汇分别又有BLEU-1、BLEU-2、BLEU-3、BLEU-4. 其公式为:
$f_{\rm BLEU} = BP \cdot \exp \left( {\sum\limits_{n = 1}^N {{w_n}\log {p_n}} } \right)$ | (7) |
其中, BP为机器翻译长度小于参考语句时的惩罚因子, 即:
$BP = \left\{ {\begin{array}{*{20}{l}} 1, \\ {{{\exp }^{1 - r/c}}}, \end{array}} \right. \begin{array}{*{20}{l}} {\rm if} \\ {\rm if} \end{array}\begin{array}{*{20}{l}} {c > r} \\ {c \le r} \end{array}$ | (8) |
其中,c为机器语句长度, r为参考语句的长度.
${p_n} = \frac{{\displaystyle \sum\limits_{C \in \left\{ {Candidates} \right\}} {\displaystyle \sum\limits_{n\_gram \in C} {Coun{t_{clip}}\left( {n\_gram} \right)} } }}{{\displaystyle \sum\limits_{C' \in \left\{ {Candidates} \right\}} {\displaystyle \sum\limits_{n\_gram' \in C'} {Count\left( {n\_gram'} \right)} } }}$ | (9) |
在AIC-ICC和Flickr8K-CN的验证集上测试本文所提的模型, 测试结果如图7、图8所示. 每幅图片中共有6句中文描述, 其中第1句为模型的生成结果, 后5句为数据集中的中文描述, 由此可见自动生成中的中文图像描述与图像相关, 图像中的人物、物体和场景在描述中都可以准确地表达出来, 生成结果与图像真实的人工描述相近.
本文选取GoogleNIC、Hard-Attention、Soft-Attention、gLSTM、Multimodal-RNN、CNIC-E等6种图像描述生成模型进行对比, 其中GoogleNIC、Hard-Attention、Soft-Attention、gLSTM、Multimodal-RNN模型为Flickr8K上的测试数据, CNIC-E、本文是在Flickr8K-CN数据集上进行BLEU-1、BLEU-2、BLEU-4、BLEU-4指标测试. 测试结果见表4.
由表4所知, 本文所提模型的BLEU值与现有的模型对比, 在BLEU指数上有不同程度的提高. 本文所述模型在Flickr8K-CN数据集上取得了最好的结果, 生成的语句更加贴近人工图片描述的参考语句, 符合人类自然语言表达.
3 结论与展望本文提出的图像中文描述生成方法, 首先将描述语句和图像<S,I>进行编码, 既包含对中文描述语句的分词表示又包含对图像的全局特征提取, 最终语句图像对<S,I>融合为一个多模态特征矩阵. 使用三层LSTM模型对多模态特征矩阵进行解码, 通过计算余弦相似度得到解码的结果. 所提模型生成的中文描述可以准确的概括图像的语义信息. 在BLEU指标上优于其他模型.
但是, 本文模型仍存在一些问题. 例如, 对较为复杂的场景和多人物的识别不够准确, 生成的语句不够细腻等, 仍有待提升的空间. 该模型较多的考虑图像的全局特征, 而忽略了图像的局部特征的提取, 从而导致生成语句在图像的细节上体现不足. 未来可以加入注意力机制, 加强模型对局部细节的把握.
[1] |
Vinyals O, Toshev A, Bengio S, et al. Show and tell: A neural image caption generator. Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA. 2015. 3156–3164.
|
[2] |
Szegedy C, Liu W, Jia YQ, et al. Going deeper with convolutions. Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA. 2015. 1–9.
|
[3] |
Hochreiter S. The vanishing gradient problem during learning recurrent neural nets and problem solutions. International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, 1998, 6(2): 107-116. DOI:10.1142/S0218488598000094 |
[4] |
Xu K, Ba J, Kiros R, et al. Show, attend and tell: Neural image caption generation with visual attention. Proceedings of the 32nd International Conference on Machine Learning. Lille, France. 2015. 2048–2057.
|
[5] |
邓珍荣, 张宝军, 蒋周琴, 等. 融合Word2Vec和注意力机制的图像描述模型. 计算机科学, 2019, 46(4): 268-273. DOI:10.11896/j.issn.1002-137X.2019.04.042 |
[6] |
Cho K, Van Merrienboer B, Gulcehre C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation. Proceedings of 2014 Conference on Empirical Methods in Natural Language Processing. Doha, Qatar. 2014. 1724–1734.
|
[7] |
Goodfellow IJ, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets. Proceedings of the 27th International Conference on Neural Information Processing Systems. Montreal, QC, Canada. 2014. 2672–2680.
|
[8] |
Dai B, Fidler S, Urtasun R, et al. Towards diverse and natural image descriptions via a conditional GAN. Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy. 2017. 2989–2998.
|
[9] |
Mirza M, Osindero S. Conditional generative adversarial nets. arXiv: 1411.1784, 2014.
|
[10] |
Shetty R, Rohrbach M, Hendricks LA, et al. Speaking the same language: Matching machine to human captions by adversarial training. Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy. 2017. 4155–4164.
|
[11] |
Ren SQ, He KM, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 |
[12] |
余燕. 基于视觉注意力与主题模型的图像中文描述生成方法研究[硕士学位论文]. 武汉: 武汉科技大学, 2019.
|
[13] |
Li XR, Lan WY, Dong JF, et al. Adding chinese captions to images. Proceedings of 2016 ACM on International Conference on Multimedia Retrieval. New York, NY, USA. 2016. 271–275.
|
[14] |
Wu JH, Zheng H, Zhao B, et al. AI challenger: A large-scale dataset for going deeper in image understanding. arXiv: 1711.06475, 2017.
|
[15] |
刘泽宇, 马龙龙, 吴健, 等. 基于多模态神经网络的图像中文摘要生成方法. 中文信息学报, 2017, 31(6): 162-171. DOI:10.3969/j.issn.1003-0077.2017.06.022 |
[16] |
Joulin A, Grave E, Bojanowski P, et al. Bag of tricks for efficient text classification. Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics. Valencia, Spain. 2017. 427–431.
|
[17] |
Papineni K, Roukos S, Ward T, et al. BLEU: A method for automatic evaluation of machine translation. Proceedings of the 40th Annual Meeting on Association for Computational Linguistics. Philadelphia, FL, USA. 2002. 311–318.
|
[18] |
Cavnar WB, Trenkle JM. N-gram-based text categorization. Proceedings of the 3rd Annual Symposium on Document Analysis and Information Retrieval. Las Vegas, NV, USA. 1994. 161−175.
|
[19] |
Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space. Proceedings of the 1st International Conference on Learning Representations. Scottsdale, AZ, USA. 2013.
|
[20] |
Krizhevsky A, Sutskever I, Hinton GE. ImageNet classification with deep convolutional neural networks. Proceedings of the 26th Annual Conference on Neural Information Processing Systems. Lake Tahoe, NV, USA. 2012. 1106–1114.
|
[21] |
Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition. Proceedings of the 3rd International Conference on Learning Representations. San Diego, CA, USA. 2015.
|
[22] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 770–778.
|
[23] |
Jia X, Gavves E, Fernando B, et al. Guiding the long-short term memory model for image caption generation. Proceedings of 2015 IEEE International Conference on Computer Vision. Santiago, Chile. 2015. 2407–2415.
|