2. 国家电网公司 上海电器科学研究院, 上海 200437
2. Shanghai Electrical Research Institute, State Grid Corporation of China, Shanghai 200437, China
图像描述(Image Caption)是将计算机视觉和自然语言处理两个领域相结合的跨模态跨领域的任务. 一般的, 它将输入的图片通过卷积神经网络提取图像特征并利用循环神经网络等方法生成一段文字的描述, 这段描述要求和图片的内容高度相似. 这项技术在我们的生活中有着广泛的市场需求, 例如应用在对盲人的实时语音导航中. 基于这样的需求, 将实时采集的视频图像应用图像描述技术得到对应的文本描述, 再通过文本转语音技术实时传输到盲人的耳中, 让盲人能够实时地感受到周围的环境. 这在智能机器人领域也有着类似的需求, 这项技术相当于让它有了一双能够理解分析世界的“眼睛”. 除此之外, 该技术在图像检索系统、医学CT图像的报告生成和新闻标题生成方面都有着不错的应用前景.
经典图像描述算法可分为3类. 1)通过模板填充的方法[1]来生成图像描述, 它主要是通过局部二值模式、尺度不变特征转换或者方向梯度直方图等算法提取图像的视觉特征, 并根据这些特征检测对应目标、动作及属性对应的单词词汇, 最后将这些单词填入到模板中. 这样的方法虽然能够保证句型语法的正确性, 也有着很大的局限性, 由于使用的模板是固定的, 它也依赖于硬解码的视觉概念影响, 这样生成的语句格式相对固定且形式单一, 应用的场景也很局限. 2)基于检索的方法[2], 它将大量的图片描述存于一个集合中, 然后通过比较有标签图片和训练生成图片描述两者间相似度来生成一个候选描述的集合, 再从中选择最符合该图片的描述. 这样的方法能保证语句的正确性, 但语义的正确性却难以保证, 因而对图像描述的正确率较低. 3)基于生成的方法. 这类方法一般采用编码-解码器的结构, 编码器使用卷积神经网络(CNN)[3]提取图像特征, 解码器采用循环神经网络(RNN)[4]来生成文本描述. 这是在图像描述中普遍应用且效果最好的模型, 它在语句结构的完整性、语义的正确性以及泛化能力得到了一致的认可.
编码器-解码器的结构最初由Vinyals等[5]提出. 该模型编码器使用基于CNN的InceptionNet网络提取图像特征信息, 解码器使用RNN处理输入的图像特征来生成描述. Fang等[6]对编码器进行了改进, 通过提取关键词作为输入来生成描述的方法为后续结合图像和语义的编码方法提供了借鉴. Wang等[7]提出了一种新型的解码结构. 由Skel-LSTM使用CNN提取的图像特征来生成骨架语句, 然后使用Attr-LSTM为骨架语句中的词语生成对应的属性词, 最后将这两部分结合生成完整的最终描述语句. Jyoti等[8]提出了一种不同于用LSTM或者RNN进行解码的方法, 该工作启发式地利用卷积来进行图像描述, 达到不比传统LSTM差的效果.
注意力机制的引入使得图像描述算法效果得到显著提高. Xu等[9]在NIC模型[5]的基础上把注意力机制应用在图像描述的图像特征中. 其基本思想是将编码阶段获取的图像特征进行注意力处理, 解码阶段使用LSTM. Lu等[10]提出注意力机制的改进工作. 这项工作对LSTM进行扩展, 加入“岗哨向量”, 存储着解码器中已有的知识信息. 同时提出新的自适应注意力机制, 通过空间注意力来决定关注图像的哪个区域. Anderson等[11]引入Top-down, Bottom-up机制, 使用Faster R-CNN提取图像区域特征.
对抗生成网络[12]的应用使得描述生成更加多样化. 文献[13,14]将Conditional GAN 运用在图像描述, 该方法生成的图片描述贴近人类的表达, 改善了句子的自然性和多样性. Zhang等[15]提出的模型由两个不同的GAN组成. Shekher等[16]拓展了COCO数据集, 并通过对抗样本验证了Lavi模型的鲁棒性, Dai等[17]则使用对抗样样本训练解决图像描述任务生成的描述缺少独特性的问题. 文献[18–21]通过强化学习的方法[22]将不同评价标准作为奖励来训练模型, 能够显著提高生成描述的质量.
传统图像描述算法研究仍有这些不足: 1) 在编码器端一般使用传统CNN或者目标检测算法进行图像特征的提取, 存在图像特征与文本描述关联不紧密, 仅有部分注意力权重大的特征得到利用的问题. 2) 使用的解码器LSTM模型较为单一, 可使用更为复杂的模型提升性能.
针对上述问题, 本文提出基于ViLBERT和BiLSTM结合的图像描述算法. 主要有以下贡献:
1) 使用预训练的ViLBERT模型学习图像和文本间的内在联系, 并用联合特征向量统一表示, 能更好地学习到图像特征.
2) 使用BiLSTM处理联合特征向量, 加入注意力机制能显著改善生成描述的质量.
3) 在MSCOCO2014数据集上进行训练和测试, 通过实验结果表明该算法达到了优异的性能.
本文第1节对本文图像描述算法涉及的相关工作进行介绍. 第2节介绍本文算法的具体框架及改进部分. 第3节介绍实验数据集、评价标准及实验的对比和分析. 第4节对本文算法进行总结并展望下一步研究工作.
1 相关工作 1.1 BERTBERT (Bidirectional Encoder Representations from Transformers)[23]即由Transformer进行的双向编码表示形式, 是广泛使用的自然语言处理(NLP)模型. BERT的特征之一是可以读取上下文. BERT具有一个称为Transformer[24]的内置体系结构, 并且通过从两个方向(句子的开头和结尾)学习句子来实现“读取上下文”. 由于BERT是双向的, 它们可以通过从左右两个方向读取数据来使语句联系上下文. 这样可以建立单词之间的关系, 并帮助模型对相关单词做出更明智的预测. 使用转换器架构对大量未标记数据集进行预训练, 因此不需要按顺序处理数据序列, 从而可以进行并行计算.
BERT的主要模型结构是多层Transformer编码器. 原始形式的Transformer包含两种独立的机制: 读取文本输入的编码器和产生任务预测的解码器. 由于BERT的目标是生成语言模型, 因此仅需要编码器机制. BERT有简单和复杂两种结构, 结构参数见表1. 使用GELU作为非线性激活函数, 如式(1)所示, 其中tanh为双曲正切函数.
$ {\textit{GELU}}\approx 0.5{{x}}\left( {1+\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left[ {\sqrt{\frac{2}{\pi }}\left( {{{x}}+0.0447\;15{{{x}}}^{3}} \right)} \right]} \right) $ | (1) |
图1是对BERT模型的描述. 输入是一系列标识(tokens), 这些标识首先嵌入向量中, 然后在神经网络中进行处理. 输出是大小为
BiLSTM[25], 即双向LSTM, 是一个由两个LSTM网络组成的序列处理模型: 一个LSTM将向量正向依次输入, 另一个LSTM则将该向量反向依次输入. BiLSTM有效地增加了网络可用的信息量, 改善了算法可用的上下文信息.
BiLSTM结构图如图2所示. 前向LSTM层的输出向量序列
$ {{h}}_{t}={\sigma }_{h}\left({{W}}_{xh}{{{x}}}_{t}+{{W}}_{hh}{{h}}_{t-1}+{{b}}_{h}\right) $ | (2) |
$ {{y}}_{t}={\sigma }_{y}({{W}}_{hy}{{h}}_{t}+{{b}}_{y}) $ | (3) |
$ {{f}}_{t}={\sigma }_{g}\left({{W}}_{f}{{{x}}}_{t}+{{U}}_{f}{{h}}_{t-1}+{{b}}_{f}\right) $ | (4) |
$ {{i}}_{t}={\sigma }_{g}\left({{W}}_{i}{{{x}}}_{t}+{{U}}_{i}{{h}}_{t-1}+{{b}}_{i}\right) $ | (5) |
$ {{o}}_{t}={\sigma }_{g}\left({{W}}_{o}{{{x}}}_{t}+{{U}}_{o}{{h}}_{t-1}+{{b}}_{o}\right) $ | (6) |
$ {\tilde {{C}}}_{t}=\tanh \left({{W}}_{C}{{{x}}}_{t}+{{U}}_{C}{{h}}_{t-1}+{{b}}_{C}\right) $ | (7) |
$ {{y}}_{t}=\sigma \left({\overrightarrow{{h}}}_{t},{\overleftarrow{{h}}}_{t}\right) $ | (8) |
其中,
基于ViLBERT[26]和BiLSTM图像描述算法主要由VilBERT模型和结合注意力机制的BiLSTM组成. 整体模型框架见图3.
2.1 改进ViLBERT模型
ViLBERT是BERT技术的扩展. 为了将BERT模型应用于视觉和语言, 其研究小组使用一个概念性标题的数据集, 该数据集由大约300万张图片和对应文本组成. 他们的方法是屏蔽掉图像的随机部分, 然后要求模型根据相关的文本重建图像的其余部分.
本文模型中, ViLBERT由两个并行的BERT模型组成, 分别处理图像和文本部分, 见图3. 每一部分都是由一系列Transformer块(TRM)和联合注意力Transformer层(CoTRM)组成, 联合注意力Transformer层能够实现图像和文本不同Transformer块的信息交互. 给定一张图片, 用
采用加入注意力机制的双层长短期记忆网络, 不同于双向长短期记忆网络两个LSTM分别正向和逆向处理同一数据. 这里使用两个正向的LSTM处理不同的数据, 并在第2步LSTM中加入注意力权重向量. 每个LSTM采用式(2)–式(7)计算. 具体结构见图3上部分.
在每一个时间步长上LSTM使用式(9)计算:
$ {h}_{t}={\textit{LSTM}}({{{x}}}_{t},{{h}}_{t-1}) $ | (9) |
其中,
BiLSTM中t时刻的Att-LSTM的输入为
$ {\alpha }_{i,t}={{\omega }}_{a}^{{\rm{T}}}\tanh\left({{W}}_{va}{{v}}_{i}+{{W}}_{ha}{{h}}_{t}^{1}\right) $ | (10) |
$ {\widehat{{v}}}_{t}=\sum\nolimits_{i=1}^{{{K}}}{\alpha }_{i,t}{{v}}_{i} $ | (11) |
其中,
Lan-LSTM的输入为
使用符号
$ p\left({{y}_{t}|y}_{1:t-1}\right)={\textit{softmax}}({{W}}_{p}{{h}}_{t}^{2}+{{b}}_{p}) $ | (12) |
其中,
$ {p(y}_{1:T})=\prod\nolimits_{t=1}^{T}p\left({{y}_{t}|y}_{1:t-1}\right) $ | (13) |
基于给定的真实人工描述序列
$ L\left( \theta \right) = - \sum\nolimits_{t = 1}^T {\rm{l}} {\rm{g}}\left( {{p_\theta }\left( {y_t^*|y_{1:t - 1}^*} \right)} \right) $ | (14) |
其中,
实验采用MSCOCO2014数据集[27], 该数据集旨在通过将对象识别问题置于更广泛的场景理解问题的上下文中, 从而提高对象识别的最新水平, 并通过收集包含自然环境中常见对象的图像来实现. 该数据集使用专业机构人为地对图片进行描述, 每张图片收录5句或者15句参考描述, 标注集一般以JSON格式保存. 该数据集有超过33万张图片, 其中20万有标注描述, 包含91类目标, 32.8万张图像中总共有250万个带有标签的实例, 这也是目前最大的语义分割数据集.
3.2 评价指标实验采用BLEU (BiLingual Evaluation Understudy)[28]和CIDEr[29]两种评价指标对本文算法进行评估.
BLEU算法对生成的待评价语句和人工标注语句间的差异进行评分, 得分输出在0–1之间. 该标准现已成为图像描述算法应用最广泛的计算标准之一.
对于图像
$ {\textit{CP}}_{n}\left(C,S\right)=\frac{{\varSigma }_{i}{\varSigma }_{k} {\rm{min}}\left({h}_{k}\left({c}_{i}\right),{{\rm{max}}}_{j\in m}{h}_{k}\left({s}_{ij}\right)\right)}{{\varSigma }_{i}{\varSigma }_{k}{h}_{k}\left({c}_{i}\right)} $ | (15) |
$ b\left(C,S\right)=\left\{\begin{array}{l}1 \text{ , if}\;{l}_{C}>{l}_{S}\\ {{\rm{e}}}^{1-{l}_{S}/{l}_{C}}\text{ , if}\;{l}_{C}< {l}_{S}\end{array}\right. $ | (16) |
$ {BLEU}_{N}\left(C,S\right)=b(C,S) {\rm{exp}}\left(\sum\nolimits_{n=1}^{N}{\omega }_{n}{\rm{lg}}{\textit{CP}}_{\textit{n}}(C,S)\right) $ | (17) |
其中, 每一个语句用n元组
CIDEr是专门设计用于评价图像描述模型的, 它通过计算每个n元组的TF-IDF 权重得到待评价语句和参考语句之间的相似度, 以此评价图像描述的效果.
一个n元组
$ {g}_{k}\left({s}_{ij}\right)=\frac{{h}_{k}\left({s}_{ij}\right)}{{\varSigma }_{{\omega }_{l}\in \Omega }}\lg\left(\frac{\left|I\right|}{{\varSigma }_{{I}_{p}\in I}\mathrm{m}\mathrm{i}\mathrm{n}\left( {1,\displaystyle\sum\nolimits_{q}{h}_{k}\left({s}_{pq}\right)} \right)}\right) $ | (18) |
其中,
实验环境基于Ubuntu 18.04系统, CPU为Inteli9-9900k, GPU为NVIDIA GeForce RTX 2080Ti, 16 GB内存, Python 3.7+CUDA 10.1的PyTorch深度学习环境.
3.4 预处理及参数设置在处理注释文件时, 删除了非字母字符, 将剩余的字符转化为小写字母, 并将所有出现小于5次的单词替换为特殊的单词UNK. 最终在MSCOCO数据集中得到9517个单词, 也就是最终使用的语料库.
将生成语句的最大长度设为16, 解码器生成采用beamsearch (集束搜索), N值设为3时算法的评价指标得分最佳, 采用Dropout方法防止过拟合, 参数设为0.5. 使用Adam优化器训练本文模型, 在训练损失函数阶段, 学习率设为
表2对比本文算法(VB-BL)和文献[5,10,11,13,19–21,30]这些经典算法在B@1、B@4和CIDEr评价指标下的评分.
可以看出, 本文的算法在B@1, B@4得分比该表中最优得分分别高出1.3和0.6, 有一定程度的提高, 在CIDEr得分比该表中最优得分高出5.1, 有4.2%的提升. 在编码阶段结合图像和文本特征之间的联系, 能够有效增强提取图像中的重要部分, 抑制与文本不相关、不重要的部分, 使得图像中各目标间的关联更加紧密, 起到注意力机制的效果. 在此基础上再结合双向注意力机制的LSTM, 能够有效地提高本文算法的效果.
接着验证本文算法不同模块的效果, 进行了两个消融实验: 1)将ViLBERT换成CNN; 2)将结合注意力机制的BiLSTM换成BiLSTM. 实验对比见表3.
从表3中可以看出, 将ViLBERT提取后的图像和文本特征进行加权处理后能够高效利用图像中的关键信息, 为后续的高质量的文本生成提供保证. 在BiLSTM中加入注意力机制也可以有效提升算法的效果. 综合对比可以看出, 在编码阶段使用文本信息参与对图像特征进行交融, 能使算法更加关注图像中的关键信息, 这也是本文算法取得优化的关键原因.
图4中选取6张图片进行效果的展示, 本文算法生成描述与NIC模型的对比见表4.
对比可以看出, 本文算法生成的描述已经能够详细地表述出图中的主要内容, 并能够描述出各主要目标的细节特征. 在缺少人类主观因素和知识储备的情况下, 已经表现出优异的性能.
4 结束语本文提出基于ViLBERT和BiLSTM结合的图像描述算法. 使用ViLBERT模型创新地融合了图像和文本间的特征, 使得提取到的图像特征具有类似视觉注意力的特性, 该模型精简的参数量能有效缩减训练的时间. 结合采用了融合注意力机制的双层长短期记忆网络能改善注意力权重的可解释性. 该算法进一步统一视觉图像和语言理解间的跨模块特征. 实验表明, 该算法在各评价指标上都有着优异的表现. 在未来的工作中, 将结合图卷积神经网络来加强图像内各目标间的联系来展开进一步的研究.
[1] |
Kulkarni G, Premraj V, Ordonez V, et al. Babytalk: Understanding and generating simple image descriptions. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(12): 2891-2903. DOI:10.1109/TPAMI.2012.162 |
[2] |
Kuznetsova P, Ordonez V, Berg TL, et al. TREETALK: Composition and compression of trees for image descriptions
. Transactions of the Association for Computational Linguistics, 2014, 2: 351-362. DOI:10.1162/tacl_a_00188 |
[3] |
LeCun Y, Bengio Y, Hinton G. Deep learning. Nature, 2015, 521(7553): 436-444. DOI:10.1038/nature14539 |
[4] |
Zaremba W, Sutskever I, Vinyals O. Recurrent neural network regularization. International Conference on Learning Representations 2015. San Diego: ICLR, 2015.
|
[5] |
Vinyals O, Toshev A, Bengio S, et al. Show and tell: A neural image caption generator. 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Boston: IEEE, 2015. 3156–3164.
|
[6] |
Fang H, Gupta S, Iandola F, et al. From captions to visual concepts and back. 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Boston: IEEE, 2015. 1473–1482.
|
[7] |
Wang YF, Lin Z, Shen XH, et al. Skeleton key: Image captioning by skeleton-attribute decomposition. 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 7378–7387.
|
[8] |
Aneja J, Deshpande A, Schwing AG. Convolutional image captioning. 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 5561–5570.
|
[9] |
Xu K, Ba JL, Kiros R, et al. Show, attend and tell: Neural image caption generation with visual attention. Proceedings of the 32nd International Conference on International Conference on Machine Learning-Volume 37. Lille: ACM, 2015. 2048–2057.
|
[10] |
Lu JS, Xiong CM, Parikh D, et al. Knowing when to look: Adaptive attention via a visual sentinel for image captioning. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu: IEEE, 2017. 3242–3250.
|
[11] |
Anderson P, He XD, Buehler C, et al. Bottom-up and top-down attention for image captioning and visual question answering. 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 6077–6086.
|
[12] |
Goodfellow IJ, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets. Proceedings of the 27th International Conference on Neural Information Processing Systems-Volume 2. Montreal: ACM, 2014. 2672–2680.
|
[13] |
Dai B, Fidler S, Urtasun R, et al. Towards diverse and natural image descriptions via a conditional GAN. 2017 IEEE International Conference on Computer Vision (ICCV). Venice: IEEE, 2017. 2989–2998.
|
[14] |
Shetty R, Rohrbach M, Hendricks L A, et al. Speaking the same language: Matching machine to human captions by adversarial training. 2017 IEEE International Conference on Computer Vision (ICCV). Venice: IEEE, 2017. 4155–4164.
|
[15] |
Zhang H, Xu T, Li HS, et al. Stackgan: Text to photo-realistic image synthesis with stacked generative adversarial networks. 2017 IEEE International Conference on Computer Vision (ICCV). Venice: IEEE, 2017. 5908–5916.
|
[16] |
Shekhar R, Pezzelle S, Klimovich Y, et al. FOIL it! find one mismatch between image and language caption. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Vancouver: Association for Computational Linguistics, 2017. 255–265.
|
[17] |
Dai B, Lin DH. Contrastive learning for image captioning. Proceedings of the 31st International Conference on Neural Information Processing Systems. Long Beach: ACM, 2017. 898–907.
|
[18] |
Ranzato MA, Chopra S, Auli M, et al. Sequence level training with recurrent neural networks. 4th International Conference on Learning Representations. San Juan: ICLR, 2016.
|
[19] |
Liu SQ, Zhu ZH, Ye N, et al. Improved image captioning via policy gradient optimization of spider. 2017 IEEE International Conference on Computer Vision (ICCV). Venice: IEEE, 2017. 873–881.
|
[20] |
Ren Z, Wang XY, Zhang N, et al. Deep reinforcement learning-based image captioning with embedding reward. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu: IEEE, 2017. 1151–1159.
|
[21] |
Rennie SJ, Marcheret E, Mroueh Y, et al. Self-critical sequence training for image captioning. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu: IEEE, 2017. 1179–1195.
|
[22] |
Sutton RS, Barto AG. Reinforcement Learning: An Introduction. 2nd ed. Cambridge: MIT Press, 2018.
|
[23] |
Devlin J, Chang MW, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). Minneapolis: Association for Computational Linguistics, 2019. 4171–4186.
|
[24] |
Correia GM, Niculae V, Martins AFT. Adaptively sparse transformers. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. Hong Kong: Association for Computational Linguistics, 2019. 2174–2184.
|
[25] |
Cornegruta S, Bakewell R, Withey S, et al. Modelling radiological language with bidirectional long short-term memory networks. Proceedings of the Seventh International Workshop on Health Text Mining and Information Analysis. Austin: Association for Computational Linguistics, 2016. 17–27.
|
[26] |
Lu JS, Batra D, Parikh D, et al. ViLBERT: Pretraining task-agnostic visiolinguistic representations for vision-and-language tasks. Advances in Neural Information Processing Systems. Vancouver: NeurIPS, 2019. 13–23.
|
[27] |
Chen XL, Fang H, Lin TY, et al. Microsoft COCO captions: Data collection and evaluation server. arXiv: 1504.00325v2, 2015.
|
[28] |
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: ACM, 2002. 311–318.
|
[29] |
Banerjee S, Lavie A. METEOR: An automatic metric for MT evaluation with improved correlation with human judgments. Proceedings of the ACL Workshop on Intrinsic and Extrinsic Evaluation Measures for Machine Translation and/or Summarization. Ann Arbor: ACL, 2005. 65–72.
|
[30] |
Feng Y, Ma L, Liu W, et al. Unsupervised image captioning. 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Long Beach: IEEE, 2019. 4120–4129.
|