APP下载

基于视觉-语义中间综合属性特征的图像中文描述生成算法

2021-05-27肖雨寒江爱文王明文揭安全

中文信息学报 2021年4期
关键词:语句语义特征

肖雨寒,江爱文,王明文,揭安全

(江西师范大学 计算机信息工程学院,江西 南昌 330022)

0 前言

图像描述是计算机视觉、自然语言处理与机器学习的交叉领域多模态信息处理任务,是当前人工智能的研究热点。近年来,图像描述技术在早期幼儿教育、机器人视觉、人机交互、图像检索、视障人士帮护等领域得到了深入的研究和应用[1-2]。

图像描述任务需要算法能够有效地处理图像和语言两种不同模态的信息,在理解图像内容的同时,在不同语义层面用自然语言表述图像的内容。由于异构语义鸿沟的存在,该任务仍具有较大的挑战性。当前,图像描述的研究任务存在两个比较突出的不足。

首先,现有研究大多针对图像的英文描述。然而,中文是世界上使用人口最多的语言。研究图像的中文描述对于实现技术本土化、增强中国文化自信具有重要的意义。相比英文,中文在语法结构、词义表述等方面更为丰富。因此,在实现图像中文描述的算法学习过程中,模型不仅需要对中文语料进行必要的分词、词嵌入表示等预处理,还需要考虑词语的多义性。因此,研究图像中文描述需要考虑的技术问题更多、难度更大。

其次,现有图像语句描述的算法并没有并重考虑视觉和语言两方面的信息。多数算法对发展较为成熟的语言模型更为倚重,对图像的视觉信息,尤其是图像内容的分布信息,处理方式简单粗暴,信息利用不充分。因此,生成的描述语句通常表现为语法较为合理,但语句内容相对单调,与图像内容相关度比较低。如何对视觉信息进行充分处理,并与语言生成过程充分融合是图像描述任务的难点。

为了弥补以上两方面研究的不足,本文充分考虑图像高层视觉语义对应的中文属性信息,结合目标检测算法,提出多层次多尺度的中间属性特征抽取模块,获取图像的视觉语义要素,克服存在的异构语义鸿沟问题;使用选择性注意力机制,将语义属性要素进行加权综合,将不同尺度和层次的属性上下文信息应用到图像的描述生成过程中。本文算法在公开的两个图像中文描述数据集AI Challenger 2017和Flick8k-CN上进行了测试,其中AI Challenger 2017是目前规模最大的图像中文描述数据集。通过与主流先进算法进行实验对比,发现本文所提出的算法具有较好的测试性能。本文算法所生成的描述语句除了能保证具有良好的语法正确性外,在语句内容的丰富程度和视觉关联性上都保持了较为优越的测试性能。

本文的创新点主要体现在两方面:①本文根据中文语言特点,利用中文分词筛选出具有明确意义的中层属性语义词,并以此作为图像内容的中间语义特征,增强视觉和语言之间的信息关联度;②本文利用多层次中间语义属性特征,提出基于显著目标候选区域选择性注意机制的图像中文描述生成算法。在公开图像中文描述数据集AI Challenger2017和Flick8k-CN上的实验结果表明,相比较主流算法,本文算法取得了性能上的大幅提升。相关算法模型和代码已在Github上公开(1)https://github.com/ShemoonX/Chinese-image-caption.。

1 相关工作

图像的语句描述是人工智能的研究热点。近年来,该方向涌现了不少优秀的算法。这些算法大致可以分为基于语言模板和基于神经网络模型两大类。

基于语言模板的方法,使用视觉依存表示来提取对象之间的关系,设定固定的语言模板,然后根据所检测识别出的视觉语义要素,按照句法解析的要求,填入相应的语句位置,生成最终的描述句子。其优点是得到的语言描述在语法上可能更正确,但缺点是高度依赖于模板,不适用于所有图像,且限制了输出的多样性。代表性的工作有,Farhadi等人[3]提出使用三元组场景元素填充模板槽以生成图像标题;Kulkarni等人[4]提出基于检测得到的对象属性和介词,使用条件随机场共同推理合适的单词填入槽。

基于神经网络模型的方法,已经成为图片文字描述生成领域的主导技术。其主要算法框架采用“编码-解码”的结构[5],其中,“编码”模块主要用于提取图像视觉特征,常采用固定长度矢量的形式表示。“解码”模块用于有序地生成描述语句。代表性的工作有,Mao等人[6]提出的多模态循环神经网络(m-RNN模型),使用深度卷积神经网络(CNN)提取图像特征,使用循环神经网络(RNN)保存语句序列的特征,最后结合单词嵌入特征、图像特征、RNN隐含特征一起输入多模态层预测下一个词的分布。相比于m-RNN,Vinyals等人[7]提出基于深度重构架构的生成模型(神经图像描述模型,NIC模型),该模型用长短期记忆网络(LSTM)替代传统的循环神经网络(RNN),使用预训练好的Inception v2作为编码器提取图像特征,并作为生成图像描述语句的解码器LSTM的初始状态。以此为基础,后续研究如Karpathy等人[8]提出的NeuralTalk模型结合目标检测算法RCNN[9],学习描述语句断句和图片区域潜在的对齐关系。Li等人[10]构建了首个中文图像摘要数据集Flickr8k-CN,并在NIC模型基础上提出面向中文描述的生成模型CS-NIC。Xu等人[11]将视觉注意力机制引入到图像描述任务中,在描述语句生成过程中动态捕捉到图像卷积层特征的局部信息。Lu等人[12]注意到在生成图像描述的过程中,非视觉词的梯度会误导或者降低视觉信息的有效性,因此提出带有视觉标记的自适应注意力模型。Jia等人[13]提出的长短期记忆(LSTM)网络的扩展模型(gLSTM模型),将从图像中提取的语义信息作为额外输入添加到LSTM块的每个单元中,更紧密地将图像内容耦合到描述生成过程。

由于异构语义鸿沟[14]的存在,图像低层视觉特征和高层的语言描述之间无法做到准确匹配,多模态信息融合难度较大。为了有效实现多模态数据融合,Wu等人[15]提出att-LSTM模型,使用中间视觉语义信息来表征图像的内容。Aneja等人[16]提出利用掩膜式卷积神经网络(masked convolutions)来代替LSTM,缓解时间维度的依赖性。Gu等人[17]提出采用堆叠式注意力模型,逐层精细化地生成图像的语言描述。余燕[18]提出基于视觉注意力与主题模型的图像中文描述生成方法。与本文不同的是,虽然他们也考虑了注意力机制的重要性,但所处理的依然是卷积层视觉特征,而不是高层中间语义信息。类似的方法还有,吕世伟[19]采用深度卷积神经网络(DCNN)结合双层门控循环单元(GRU)网络完成对图像的编解码以及中文语句的生成。

Yang 等人[20]基于多任务学习机制,利用对抗生成学习过程,将图像描述生成和文本生成图像两个对偶任务联合起来训练,发掘二者的内在关联。Zhao 等人[21]提出一个两层的视觉注意力模型,能够自动关注最相关的帧和每一帧中突出的区域。类似的还有,Xiao 等人[22]采用多层循环神经网络进行解码生成图像描述。

Yang等人[23]提出根据目标检测区域的图像特征和位置信息,采用注意力机制进行图像信息编码,用于描述生成。Peter 等人[24]提出结合由上至下和由下至上的主要机制,根据图片中每个目标或显著区域的特征计算注意力分布图,预测图像语句描述。他们的模型思路与我们的方法比较接近,但仍存在重要区别,主要体现在本文采用了语义属性特征和不同的目标区域划定策略。Lu 等人[25]提出生成带“插槽”的句子“模板”。其中,槽的位置明确与图像区域相关联。目标检测器利用在该区域中所找到的概念填充这些槽。

2 基于视觉-语义中间综合属性特征的图像中文描述生成算法

2.1 模型框架

总体模型框架如图1所示。模型采用图像的中间语义特征提取和描述语句的生成两阶段过程。其中,特征提取阶段又包含了两部分的网络:图像全局视觉特征检测器和图像高层中间语义属性特征检测器。

图1 算法模型总体框架

2.2 图像全局视觉特征抽取网络

图像全局视觉特征抽取网络使用预训练好的卷积神经网络作为图像低层视觉特征提取器。在本文去除预训练的ResNet50[26]的最后全连接层后,网络输出的2 048维向量被用作图像全局视觉特征。该特征虽然带有一定高度的内容抽象,但依然缺乏显式的语义对应关系,是对图像低层视觉特征的概括。

2.3 图像高层中间语义属性特征抽取网络

图像高层中间语义属性特征抽取网络包含两个处理阶段。首先,构建视觉内容的关键属性词表,用于表征中间语义信息。其次,为了有效地实现属性词表中所表示的中间语义属性与视觉特征的关联,训练属性分类器,用于预测中间语义的概率。

2.3.1 属性词表构建

图像高层属性特征指的是图像高层中间语义信息,目的是为了能够显式地反映与图像数据集内容相关的视觉语义。因此,我们需要建立一个既侧重于词性和词语内容表达丰富程度,又与数据集内容密切相关的属性词表。

以图像中文描述数据集AI Challenger 2017为例,首先对训练集中的所有图像描述语句进行分词,剔除与视觉内容无关的虚词,只保留具有明确意义的名词、动词、形容词、数词和约定俗成的成语。然后,从中选择频率最高且最能代表图像视觉要素的2 048个中文词用于构建属性词表。其中,名词数量约1 279个,例如运动服、篮球、卧室、电视等;动词数量约582个,例如,递、哭、观察、扑等;形容词数量约89个,例如,舒坦、明亮、整洁、平静等;数量词如一群、一桶、一瓶等共60个;约定俗成的成语38个,例如,白雪皑皑、奇装异服、琳琅满目等。图像中文描述数据集Flick8k-CN的属性词表构建过程类似。

2.3.2 图像高层中间语义属性分类网络

当属性词表确定后,训练数据集中的图像描述语句经过分词后转换成与之对应的属性向量。具体地,第i幅图像的属性向量为2 048维向量:ai=[ai1,ai2,…,ai2 048]。其中,如果图像i的描述语句中包含属性词j,则aij=1,否则aij=0。经过数据转换之后,原图像描述数据集便转换成新的“图像-属性”多标签数据集。我们可以利用该数据形式训练图像高层属性特征检测器。

我们把图像高层中间语义属性的检测过程看成多标签分类过程。具体地,使用预训练好的101层残差网络(ResNet101网络)作为基准模型,将网络的原始全连接层替换成增加输出维度为2 048维的全连接层。在训练过程中,网络损失函数定义为多标签损失函数。新的语义属性分类网络的结构如图2所示。

图2 图像高层中间语义属性分类网络结构

我们输入一幅图像到图像语义属性分类网络,输出的是2 048维概率向量βi=[βi1,βi2,…,βi2 048]。其中,输出向量的每个元素值代表相应属性词的预测概率。对比该图像的真实属性向量,网络在训练时,需要最小化下列代价函数J(θ),如式(1)所示。

(1)

图3 基于目标检测的图像初步语义分块示意图

2.4 基于注意力机制的描述语句生成网络

我们采用基于注意力机制的长短期记忆网络(LSTM)作为图像描述语句的生成器。

首先,对图像的中文描述语句进行分词,形成图像对应的中文单词序列y=(y0,y1,…,yL,yL+1)。其中,y0是特殊初始字符,yL+1是特殊结束字符。

然后,将图像低层的视觉特征和图像的高层中间语义属性特征,共计k+2个不同层面和尺度的图像表示,作为生成器的输入。我们将全部的特征向量进行特征变换,均处理成长度相等的n维向量。变换过程为v=ReLU(Whα)。从而,得到:

为了帮助描述语句生成网络能够更准确、更有效率地处理所获得的视觉-语义特征,我们使用选择性注意力机制对特征进行权值动态重分配。注意力计算过程如式(3)~式(5)所示。

其中,gt代表当前第t时刻,使用注意力机制得到的综合向量。αtm表示第t时刻分配给第m个属性特征的权重,ztm表示第m个属性特征与属性特征集合的的相关程度。

具体的图像语句描述生成过程如下:①以变换后的图像低层视觉特征v1作为描述生成器—长短期记忆网络(LSTM)的初始隐藏状态st-1和初始单元状态ct-1。②在每一时刻,LSTM根据前一时刻生成的单词的词嵌入向量e(yt-1)与当前时刻的图像综合属性特征gt的串联,结合上一个时刻的隐层状态st-1和细胞单元状态ct-1,更新当前时刻的对应状态,从而得到新的st和ct。整个循环生成过程如式(6)所示。

其中,gt代表图像根据选择性注意力机制加权得到的综合视觉特征。

描述语句生成网络在每个时刻产生的字符标记(token)概率ot的计算如式(7)所示。

当网络的输出为特殊结束字符或网络生成的序列长度达到系统设置的最大序列长度时,则停止输出。我们采用实际预测概率分布的ot与真实分布pt之间的交叉熵作为网络的训练损失函数,如式(8)所示。通过最小化损失函数Loss(θ)来优化网络的待学习参数θ。

其中,N表示数据集训练样本总数,L(i)为第i个训练样本的词语序列实际长度。

3 实验与评估

3.1 数据集

本文在AI Challenger 2017和Flick8k-CN这两个业内公共的数据集上进行算法验证和性能评估。其中,AI Challenger 2017是目前图像中文描述领域最大的数据集,包含训练集、验证集和测试集三部分。训练数据集有21万幅图像,每幅图像都配有五句人工标注的中文描述,较详细地涵盖了图像中主要人物场景、动作等内容。直观的示例如图4所示。

图4 AI Challenger 2017数据集的示例样本

Flick8k-CN数据集[10]总共包含8 000幅图像,其中每幅图像同样配有五句人工标注的中文描述,侧重于同一幅图像的多义表述。Flick8k-CN是雅虎英文数据集Flick8k的中文扩展,具体示例如图5所示。整个Flick8k-CN数据集分为三部分:训练集、验证集和测试集。其中,训练集6 000张图片,验证集和测试集各包含1 000张图片。

图5 Flick8k-CN数据集的示例样本

3.2 实验细节

算法模型采用PyTorch1.0版本实现。描述语句生成网络采用单层LSTM结构,其中,循环单元的隐层状态数设置为512。算法使用开源工具jieba-0.38进行中文分词。词嵌入特征向量的维度设置为512。网络模型训练的优化器设置为Adam算法,训练批量大小(batchsize)设置为8,训练学习率初始化为0.001。

为了保持模型结构的一致,Flick8k-CN数据集和AI Challenger 2017数据集对应的属性词表大小均设置为2 048。具体地,在AI Challenger 2017数据集中,提取的属性词词频在50以上。由于Flick8k-CN数据集[10]相对比较小,所提取的属性词词频设置为在2以上。由于我们提取的这些属性词的词性和意义均比较丰富,因此词频不影响属性词汇表的语义表达有效性。

需要说明的是,本文算法思想及设计思路同样可适用于英文描述生成,因为一旦完成中文分词和中文属性特征抽取,模型的学习过程便与语言无关。但是由于模型的输入与输出针对的均为中文语句语料,中文的语序和词义的内涵都比英文要丰富些。词义属性定义及语言规则的不同,会不同程度地影响模型参数的优化过程,因此本实验所学习得到的模型参数不能直接用于英文描述的生成。更多的英文描述生成实验我们将在后续的工作中验证。本文实验将主要集中于准确生成图像的中文描述。

3.3 评测指标

本文使用BLEU-1234、METEOR[29]、Rouge[30]和CIDEr[31]来评估描述生成结果的质量。BLEU-n用于分析待评价的生成描述语句和参考语句之间n元组相关性。METEOR是一种基于召回率的相似度衡量方法,用于度量基于一元组的精度和召回率的调和平均。CIDEr专门针对图像描述问题,用于衡量图像描述的一致性。

3.4 评测结果

本文所选择的基准模型(baseline)为:只使用图像底层视觉特征的CS-NIC[10],使用掩膜卷积(masked convolutions)代替LSTM的CIC[16]以及由粗到细的多级堆叠注意力模型SC[17]。

与此同时,本文还进行了多个模型简化测试(ablation study):①为了评估注意力机制的有效程度,我们注意力机制去除后得到本文模型的变体“Ours_no_att”。该变体模型未做图像语义划分,仅使用了全局的中间语义属性特征作为生成网络的初始输入。②为了评估使用目标检测进行图像的初步语义分块的重要性,我们将图像的分块方式改为平均分块,得到本文模型的另一变体“Ours_grid”。该变体模型在进行图像分块时,将图像平均分为M块,如2×2划分。

为了评估的公平性,本文使用AI Challenger 2017的训练数据集对所选择的基准模型、本文提出的算法模型及其变体进行训练,在AI Challenger 2017测试集上进行测试。测试数据包含60 000幅图像。算法性能采用AI Challenger 2017提供的官方评估代码进行评估,结果如表2所示。

表2的实验结果显示,即使同为基于全局特征的模型,模型“Ours_no_att”在所有的评估指标上均全面领先于仅使用图像底层视觉特征的基准模型CS-NIC和CIC。这主要是因为模型“Ours_no_att”引入了图像高层中间语义属性特征。因此,高层中间语义属性特征在信息表示方面具有明显的优越性。

表2 在AI Challenger 2017测试集上的性能比较

表2的结果同时还显示,加入了图像平均分块空间信息和注意力选择机制后,在图像的表示上,模型“Ours_grid”能够更好地综合不同层次和尺度上的语义信息,达到更优越的实验性能。当在图像分块方式上进一步使用目标检测进行语义分块时,本文模型“Ours”取得了实验的最优性能。具体地,在AI-Chllenger 2017测试集上,在指标BLEU-1、2、3、4上较模型CS-NIC分别提升了17.3%、28.3%、39.1%、50.5%;较模型CIC分别提升了11.1%、17.3%、23.5%、30.1%;较模型SC分别提升了0.9%、2.1%、3.8%、5.3%。在Rouge指标上,较模型CS-NIC、CIC和SC分别提升了19.4%、9.5%、2.6%。在METEOR指标上,较模型CS-NIC、CIC和SC分别提升了18.8%、9.6%、3.3%。在CLDEr指标上,较模型CS-NIC、CIC和SC分别提升了76.6%、41.2%、13.0%。

类似地,在Flick8k-CN数据集上,我们也进行了训练和测试。实验结果如表3所示。与基准模型相比较,本文模型因为使用了多层次视觉-语义属性特征并采用动态的选择性注意力机制进行综合,在Flick8k-CN数据集上取得了最好的性能。实验结论与表2基本一致。

表3 在Flick8k-CN数据集的性能比较

尽管我们的算法在主流性能指标上表现良好,但为了进一步直观说明描述语句生成的结果,我们还对部分生成结果进行了展示,如表4~表6所示。这是因为目前评价图像的语言描述生成的性能的客观标准采用的是传统机器翻译性能指标。虽然当前机器翻译算法取得的质量评测分数在特定数据集上可以与人类所取得的性能相媲美[32],但是,我们很清楚目前智能算法的实用性能还远不及人类的能力。现有的机器翻译自动评价标准并不能高质量地全面、客观评估描述语句的内容丰富程度和与图像内容的关联程度。

表4展现的是本文算法完全正确生成描述的情况。从效果上看,虽然基准模型CS-NIC和CIC所生成的描述语句的语法是正确的,但是不少描述的语义与图像视觉内容无关。主要的原因是算法过分依赖语言模型,对图像内容的利用不充分。虽然SC模型取得比较好的效果,但在图像内容细节上存在一些不准确的描述。相比之下,本文所提出的模型所生成的描述语句无论在语法准确性,还是在图像内容的相关度上都有不错的表现,能够更好地描述图像中的实际内容。更为值得关注的是,本文模型所生成的描述语句在内容的丰富程度上也比其他对比模型要好,其中还包含了其他模型忽视的视觉内容。

表4 实际中文描述的生成效果比较示例(完全正确描述情况,AI Challenger 2017)

表5展现的是本文算法实际生成不完全正确描述的情况。在此类情况中,虽然所生成的描述存在着细节不准确的地方,但是其表述的内容依然是合理的,能够准确表达图像的关键信息,例如人物特征等。由于所对比的基准方法所生成描述完全错误,且与图像内容毫不相关,因此,我们在表5中没有列举它们的结果。

表5 实际生成表述不完全正确示例(但内容合理、关键性信息到位,AI Challenger 2017)

从表4、表5的展示结果来看,本文所提出的算法较好地平衡了语言模型依赖性和图像内容的相关性,这也进一步说明了实现多层次选择性视觉语义属性特征,在生成图像中文描述上具有明显的优越性。

表6列举出了一些本文模型表述错误的例子。在这些样例中,基准模型的结果也同样是完全错误。与大部分的数据驱动方法一样,当图像出现的视觉要素(物品、行为等)在训练集中较少出现时,模型极易发生表述错误。这是目前我们模型的不足,在将来的工作中,我们将深入研究对应的解决方案。

表6 实际生成完全表述错误效果示例(AI Challenger 2017)

4 总结

本文提出了基于视觉-语义中间综合属性特征的图像中文描述生成方法。该算法在编码过程中获取了图像的低层视觉特征和多粒度中文高层属性特征,在解码过程中通过注意力机制有选择地提取多层次视觉-属性上下文特征,帮助描述生成。为了验证本文算法的有效性,模型在两个公开的图像中文描述数据集AI Challenger 2017和Flick8k-CN上分别进行了训练和测试,并与主流的算法进行了比较。测试性能采用主流的BLEU-n、Rouge、METEOR和CLDEr指标进行度量。对比实验的数据表明,本文提出的算法模型能够大幅度提升模型的性能,所生成的中文描述不仅内容比较丰富,而且与图像内容的相关性比较大,有效地实现了视觉-语义的关联。

猜你喜欢

语句语义特征
重点:语句衔接
语言与语义
如何表达“特征”
不忠诚的四个特征
抓住特征巧观察
“上”与“下”语义的不对称性及其认知阐释
认知范畴模糊与语义模糊
如何搞定语句衔接题
线性代数的应用特征
语义分析与汉俄副名组合