前言:
现有的最优方法在文本、人脸以及低光照图像上的盲图像去模糊效果并不佳,主要受限于图像先验的手工设计属性。金准专家认为可以将图像先验表示为二值分类器,训练 CNN 来分类模糊和清晰图像。实验表明,该图像先验比目前最先进的人工设计先验更具区分性,可实现更广泛场景的盲图像去模糊。
目前基于深度卷积神经网络(CNN)和长短时记忆(LSTM)网络模型进行图像描述的方法一般是用物体类别信息作为先验知识来提取图像CNN特征,忽略了图像中的场景先验知识,造成生成的句子缺乏对场景的准确描述,容易对图像中物体的位置关系等造成误判。针对此问题,设计了融合场景及物体类别先验信息的图像描述生成模型(F-SOCPK),将图像中的场景先验信息和物体类别先验信息融入模型中,协同生成图像的描述句子,提高句子生成质量。
一、CNN生成表示为二值分类器的图像先验方法
1. 盲图像去模糊
盲图像去模糊(blind image deblurring)是图像处理和计算机视觉领域中的一个经典问题,它的目标是将模糊输入中隐藏的图像进行恢复。当模糊形状满足空间不变性的时候,模糊过程可以用以下的方式进行建模:
其中⊗代表的是卷积算子,B、I、k 和 n 分别代表模糊图像、隐藏的清晰图像、模糊核以及噪声。式(1)中的问题是不适定性,因为 I 和 k 都是未知的,存在无穷多个解。为了解决这个问题,关于模糊核和图像的额外约束和先验知识都是必需的。
图 1: 一个去模糊的例子。本文提出了一个判别图像先验,它是从用于图像去模糊的深度二分类网络中学习得到的。
最近的去模糊方法的成功主要来自于有效图像先验和边缘检测策略方面的研究进展。然而,基于边缘预测的方法常常会涉及到启发式的边缘选择步骤,当边缘不可预测的时候,这种方法表现不佳。为了避免启发式的边缘选择步骤,人们提出了很多基于自然图像先验的算法,包括稀疏性归一化(normalized sparsity)[16]、L0 梯度 [38] 和暗通道先验(dark channel prior)[27]。这些算法在一般的自然图像上表现良好,但是并不适用于特殊的场景,例如文本 [26]、人脸 [25] 以及低光照图像 [11]。大多数上述的图像先验都有相似的效果,它们更加适用于清晰的图像,而不是模糊的图像,这种属性有助于基于 MAP(最大后验)的盲图像去模糊方法的成功。然而,大多数先验都是手工设计的,它们主要是基于对特定图像统计的有限观察。这些算法不能很好地泛化以处理自然环境中的多种场景。所以,开发能够使用 MAP 框架来处理不同场景的图像先验是很有意义的。
为达到这个目的,金准专家认为可以将图像先验表示为能够区分清晰图像和模糊图像的二值分类器。具体来说,研究者训练深度卷积神经网络来分类模糊图像 (标记为 1 ) 和清晰图像 (标记为 0 )。由于基于 MAP(最大后验)的去模糊方法通常使用 coarse-to-fine(由粗到精)策略,因此在 MAP 框架中插入具有全连接层的 CNN 无法处理不同大小的输入图像。为了解决这个问题,研究者在 CNN 中采用了全局平均池化层 [ 21 ],以允许学习的分类器处理不同大小的输入。此外,为了使分类器对不同输入图像尺寸具有更强的鲁棒性,他们还采用多尺度训练策略。然后将学习到的 CNN 分类器作为 MAP(最大后验)框架中潜在图像对应的正则项。如图 1 所示,金准专家认为的该图像先验比目前最先进的人工设计的先验 [ 27 ] 更具区分性。
然而,使用学习到的图像先验去优化这个去模糊方法是很困难的,因为这里涉及到了一个非线性 CNN。因此,金准专家认为基于半二次方分裂法(half-quadratic splitting method)和梯度下降算法的高效数值算法是必不可少的。这个算法在实际使用中可以快速地收敛,并且可以应用在不同的场景中。此外,它还可以直接应用在非均匀去模糊任务中。
2.二分类网络
我们的目标是通过卷积神经网络来训练一个二分类器。这个网络以图像作为输入,并输出一个标量数值,这个数值代表的是输入图像是模糊图像的概率。因为我们的目标是将这个网络作为一种先验嵌入到由粗到精的 MAP(最大后验)框架中,所以这个网络应该具备处理不同大小输入图像的能力。所以,我们将分类其中常用的全连接层用全局平均池化层代替 [21]。全局平均池化层在 sigmoid 层之前将不同大小的特征图转换成一个固定的大小。此外,全局平均池化层中没有额外的参数,这样就消除了过拟合问题。图 2 展示了整个网络架构和二分类网络的细节参数。
图 2. 本文中使用的二分类网络的架构和参数,其中使用了全局平均池化层取代全连接层来应对不同大小的输入。CR 代表的是后面跟着一个 ReLU 非线性函数的卷积层,M 代表的是最大池化层,C 代表的是卷积层,G 指的是全局平均池化层,S 代表的是 Sigmoid 非线性函数。
图 3. 数据集 [15] 中的一个很具挑战性的例子。本文提出的方法以更少的边缘振荡效应和更好的视觉愉悦度恢复了模糊图像。
图 4. 在实际的模糊图像中的去模糊结果。本文的结果更加清晰,失真较少。
图5. 文本图像上的去模糊结果。与目前最先进的去模糊算法 [26] 相比,本文的方法生成了更加尖锐的去模糊图像,其中的字符更加清晰。
图 6. 去模糊结果和中间结果。作者在图 (a)-(d) 中与目前最先进的方法 [40, 27] 比较了去模糊结果,并在 (e)-(h) 中展示了迭代中的(从左至右)中间隐藏图像。本文的判别先验恢复了用于核估计的具有更强边缘的中间结果。
我们提出了一种基于数据驱动的判别先验的盲图像去模糊方法。我们的工作是基于这样一个事实:一个好的图像先验应该有利于清晰的图像而不是模糊的图像。在本文中,我们将图像先验表示为一个二值分类器,它可以通过一个深度卷积神经网络 ( CNN ) 来实现。学习到的先验能够区分输入图像是否清晰。嵌入到最大后验 ( MAP ) 框架中之后,它有助于在各种场景 (包括自然图像、人脸图像、文本图像和低照明图像) 中进行盲去模糊。然而,由于去模糊方法涉及非线性 CNN,因此很难优化具有学习已图像先验的去模糊方法。为此,本文提出了一种基于半二次分裂法和梯度下降法的数值求解方法。此外,该模型易于推广到非均匀去模糊任务中。定性和定量的实验结果表明,与当前最优的图像去模糊算法以及特定领域的图像去模糊方法相比,该方法具备有竞争力的性能。
3.CNN生成图像先验
提出了一种高效判别图像先验,它可以通过深度卷积神经网络学习到,用于盲图像去模糊。为了保证这个先验(也就是分类器)能够处理具有不同大小的输入图像,研究者利用全局平均池化和多尺度训练策略来训练这个卷积神经网络。
将学习到的分类器作为 MAP(最大后验)框架中潜在图像对应的正则化项,并且提出了一种能够求解去模糊模型的高效优化算法。
金准专家认为,与当前最佳算法相比,这个算法在广泛使用的自然图像去模糊基准测试和特定领域的去模糊任务中都具备有竞争力的性能。金准专家认为这个方法可以直接泛化到非均匀去模糊任务中。
二、融合图像场景及物体先验知识的图像描述生成模型
1.图像描述简介
图像描述任务是将图像中包括物体、场景、动作及位置关系等翻译成具有一定结构和语法规则的自然语言形式的工作。它跨越了计算机视觉和自然语言处理两个领域,具有很大地挑战性,但同时它也具有极为广阔的应用前景,如婴幼儿早期教育、视觉功能障碍者日常学习及生活辅助、智能人机交互系统和机器人开发等。在早期的研究工作中,人们使用基于模板[1-3]和基于语义转移[4-6]的方法解决这一问题,但其生成的句子质量不高,与人们的表述习惯差异较大,难以满足人们的需求。目前,由于深度学习在视觉领域的成功应用,研究者也将其引入到图像描述领域中,采用神经机器翻译的方法生成描述句子[7-12]。
基于深度学习的图像描述模型一般采用“编码-解码”的流程,首先使用深度卷积神经网络(DCNN)提取图像特征,将整幅图像编码为一条维度固定的特征向量,和传统的手工特征相比,图像DCNN特征更为抽象,表达能力及可辨别能力更强;然后使用循环神经网络(RNN)进行解码,按时间顺序逐个生成相关单词。这种方法生成的句子结构灵活,具有较为丰富的语义表达。但目前人们一般都是使用图像的物体类别先验信息来优化CNN和RNN模型中的参数,忽略了图像中的场景信息,造成生成的句子缺乏对场景的描述,容易对图像中物体的位置关系等造成误判,其生成句子的质量有待提高。
关于图像的描述方法,基于模板填充的方法和基于语义迁移的方法发展较早。在文献[1-3]中,研究者在其模型中首先检测出图像中的物体、动作、场景和属性等,然后将其填入到一个形式固定的模板中。这种方法较为直观,但它需要为图像中的每种物体、图像、场景和属性等指定准确的类别信息,工作量较大;同时,由于其句子模板固定,其生成的句子缺乏自然、流畅的特性,与人工标注的句子相差较大。与基于模板的方法不同,基于语义迁移的方法依赖于图像的检索技术。在文献[4-6]中,他们首先检索出相似的图像,然后将这些相似图像的参考句子迁移到待描述的图像上。这种方法生成的句子比基于模板生成的句子较为灵活和自然,贴近人工描述的句子,但也由于这些方法生成句子时依赖于数据库中的检索结果,当数据库中缺少类似的图像时,其生成句子的语义将受到极大影响。
受机器翻译的启发,人们又提出了基于神经机器翻译的方法。在文献[7-9, 12]中,研究者将图像当作源语言,把生成的句子当作目标语言,通过计算机视觉技术提取图像特征,将图像表示为一条维度固定的特征向量,然后使用RNN或LSTM将其翻译成句子。相对于前述的两种方法,这种方法生成的句子更为灵活,语义信息更为丰富;在基于神经语言模型的基础上,还出现了一些混合模型,如文献[10-11]中,研究者使用了更多更复杂的计算机视觉技术,从图像或视频中提取更多的语义信息,使得生成的句子语义信息更加丰富。但目前的工作中,人们一般使用物体先验类别信息来优化CNN和RNN或LSTM中的参数,使得生成的句子中缺乏对场景的识别与理解。为克服这一弊端,本文在模型中增加了场景类别先验信息,以进一步提升生成句子的质量。
针对目前存在的问题,引入场景类别的先验信息,采用后融合的方式,将使用场景先验信息的模型所生成的当前时间步上的单词概率与使用物体类别先验信息所生成的单词概率进行加权融合,其得到的分值作为从词典中取词的依据。在MSCOCO[13]、Flickr30k[14]和Flickr8k[15]3个公开数据集上的实验结果显示,金准专家认为本文所设计的模型效果显著,在多个性能指标上均超过了单独使用物体类别先验信息的模型。
2.DCNN模型
在图像描述模型中,提取更为抽象的图像特征至关重要,传统的手工特征(如HOG(histogram of oriented gradient)、SIFT(scale invariant feature transform)等)经过的非线性变换次数较少,其表达能力弱,可辨别能力不强。目前一般采用DCNN模型提取图像特征,图像数据经过多次卷积、池化和激活等操作,其提取的特征更加抽象,表达能力更强,已在图像分类与识别[16-20]、目标检测[21]、场景理解[22]等多个视觉任务上取得突破。
LeCun等人[23]于早期设计了LeNet5模型,并成功将其应用在手写体数字的识别任务上。但其模型只包含了3个卷积层,深度仍然较浅。2006年,Hinton等人[24]提出了深度学习的思想,使用逐层优化的方法,构建了深度置信网络(DBN)。2012年,Krizhevsky等人[16]将深度学习思想应用到了CNN网络上,设计了Alex-Net模型,其卷积层深度达到5层,在2012年的Imagenet大规模视觉识别大赛上获得了冠军,其分类性能超出使用手工特征的模型10 %以上。在Alex-Net中,研究者使用了GPU加速模型收敛过程,采用Dropout技术防止模型过拟合,同时,还采用了修正线性单元(ReLU)解决使用Sigmoid或Tanh函数对梯度进行回传时的梯度消失(gradient vanishing)问题。此后,基于深度CNN模型的方法在计算机视觉领域里被大规模应用,其模型深度也不断加深,如更深的VGG16/VGG19[17]模型、GoogLeNet模型[18],以及近期的ResNet模型[25]等。为了验证本设计思路的有效性,便于与其他模型实验结果的比对,本文使用GoogLeNet模型来提取图像的特征。
3.LSTM模型
RNN模型由于其模型的简洁性和效果的显著性,已经成为建立语言模型的首选。但由于RNN使用Tanh或Sigmoid函数对数据进行非线性激活变换,当时间步较长时,容易发生梯度爆炸或梯度消失,不能保持长期信息[26]。为克服这一弊端,LSTM(long short term memory)[27]在RNN单元中添加了输入门、忘记门和输出门3个控制门,同时使用了记忆单元存储长期信息。本文使用LSTM网络构建语言模型,将图像的CNN特征和单词的特征向量通过嵌入的方式构成多模特征作为LSTM的输入。
4.SOCPK模型设计
4.1 联合优化模型设计
在传统的基于“编码—解码”流程的方法中,用于图像编码部分的CNN模型和用于解码部分的LSTM模型其参数是分别进行优化的。即首先在大规模数据集上对CNN中的参数进行训练,然后使用已优化完毕的CNN模型提取待描述图像的特征,将其送入LSTM模型,对其中的参数进行迭代优化。这种方法部署方便,实现简单,但它容易使得整个模型陷入局部最优。因此,为了解决这一问题,本工作中使用了联合优化的方法。
如图7所示,采用两层LSTM来构建语言模型,其中第1层用于接收词汇的嵌入式向量,对语言进行初步建模和特征变换;第2层用于接收第1层LSTM的输出和图像的CNN特征所组成的多模特征向量。文献[12, 36]已经证明,这种架构比单层LSTM性能更优。图中r表示参考句子,c表示候选句子;wrtwtr表示tt时刻参考句子中的单词wctwtc则表示tt时刻经语言模型所生成的单词,EE(·)用于计算参考单词和生成单词之间的误差,“BoSBoS”表示句子的起始符,“EoSEoS”则表示句子的结束符。Embedding用于将单词的独热码(One-hot)向量映射为嵌入式向量,对其独热码向量进行降维,其过程表示为
图7 CNN与LM联合优化过程
式中,woutwout表示输入的单词,[d1,d2,⋯,dnembed]T[d1,d2,⋯,dnembed]T表示嵌入式特征向量,nembednembed表示嵌入式特征向量的维度;Decoding则用于将经过LSTM变换之后的特征向量转换为相应的单词,其具体过程表示为
式中,wwout表示输出的单词,[d′1,d′2,⋯,d′nLM]T[d′1,d′2,⋯,d′nLM]T表示LM中第2层LSTM输出的特征向量,nLMnLM表示其维度,FC表示分类层/全连接层(fully connected lay-er/classification layer),|V||V|表示单词表的大小,DD表示其维度,p=[p1,p2,⋯,p|V|−1,p|V|]Tp=[p1,p2,⋯,p|V|−1,p|V|]T表示经过Softmax函数后的概率输出,Max表示取最大值运算。在模型的第2层LSTM中,其输出连接至FC层,然后经过Softmax函数变换,计算每个分类层输出所对应的概率,然后在单词表中取概率最大值所对应单词作为最终输出。在整个语言模型中,使用跨时间的反向传播算法(BPTT)进行误差计算,其本质是计算各个时间步上的误差之和。传统方法中,将该误差传递到语言模型的底层,而在本文中,则将误差传递到更远的CNN模型的底层。在具体操作中,将图像看做单独的一个类别,为其分配一个对应的虚标签(dummy label),其对应参考句子中的每个单词其真值均对应该虚标签。在语言模型中,其误差反传仍然使用BPTT算法;而在CNN模型中,则使用传统的反向传播算法(BP)对误差进行反传。
在测试阶段,如图8所示,首先由训练完毕的CNN模型提取图像特征,将其送入语言模型中;同时输入句子的起始符“BoSBoS”;在前一个时间步上生成的单词将作为下一个时间步上的输入,逐个生成单词,直到LSTM中时间步结束或遇到“EoSEoS”。
图8 图像描述句子生成过程
4.2 F-SOCPK图像描述器
在联合优化模型的基础上,本文设计了融合场景及物体类别的图像描述生成模型。如图 9所示,首先在大规模场景类别数据集Place205[22]上训练CNN-S模型中的参数,使得CNN-S模型能够包含更多的场景先验信息,然后将其中的参数通过迁移学习的方法迁移到CNNd-S中,用于捕捉待描述图像中的场景信息;同时,在大规模物体类别数据集Imagenet[28]上训练CNN-O模型中的参数,然后将其迁移到CNNd-O模型中,用于捕捉图像中的物体信息。提取图像的场景信息和物体信息之后,分别将其送入图7所描述的语言模型LM-S和LM-O中。LM-S和LM-O中的输出信息通过Softmax函数的变换,得到单词表中每个单词的概率分值;最后使用加权融合的方式,计算每个单词的最终分值,取概率最大者所对应的单词作为当前时间步上的输出。为便于说明,本文使用M-S表示CNNd-S、LM-S和其分类层,使用M-O表示CNNd-O、LM-O和其分类层。
图9 F-SOCPK模型框架
设XXd表示待描述图像的集合,StdSdt表示与图像对应参考句子中的第tt个单词,θθs和θθo分别表示子模型M-S和M-O中参数集合,其中,θθs=(θθsCNN,θθsLM),θθo=(θθoCNN,θθoLM),θθsCNN和θθoCNN分别表示M-S中CNNd-S的参数集合和M-O中CNNd-O的参数集合,而θθsLM和θθoLM则分别表示M-S中LM1及其分类层中的参数集合和M-O中LM2及其分类层中的参数集合。令θθ=(θθs,θθo),整个模型的代价函数可表示为
其中ℓℓs和ℓℓo分别为
式中,TT表示参考句子的长度,ptspst和ptopot分别表示经过M-S和M-O子模型变换后的概率输出,FsFs(·)和FoFo(·)则分别表示经过CNNd-S和CNNs-S变换后输出图像的CNN特征向量。将式(4) 代入式(3),则ℓℓ可表示为
其系统目标为不断优化参数集合θθ,使得ℓℓ收敛到最小值。则整个系统的目标函数可写为
式中,RR为实数集合,符号↦↦表示映射操作。
在测试时,首先在每个时间步上将M-S和M-O两个子模型的输出概率分别取出,然后使用加权平均的方法计算最终概率,其计算公式为
式中,ααs和ααo分别表示M-S和M-O输出概率的权值。根据模型在验证集上的结果,为ααs和ααo分配不同的值。得到某个时间步上的概率后,在单词表中取概率最大值所对应的单词作为该时间步上的最终输出,其计算形式为
式中,DD(·)用于将概率所在位置映射为对应单词。
4.3实验验证
4.3.1 实验设置
(1)数据集
使用MSCOCO[13]、Flickr30k[14]和Flickr8k[15]3个公开的图像描述数据集对模型进行评价。MSCOCO数据集共有123 287幅图像,每幅图像包含了至少5条人工标注的参考句子;Flickr30k和Flickr8k分别包含31 783和8 000幅图像,每幅图像含有5条参考句子。本文按照Kapathy等人的使用规则[11],对于MSCOCO数据集,取其中的82 783幅图像和其参考句子作为训练集,从原验证集中取5 000幅图像及其参考句子作为验证集,另取5 000幅图像及其参考句子作为测试集。在Flickr30k数据集上,取29 000幅图像和参考句子作为训练样本,1 000幅图像及参考句子用于测试,其余样本用于模型验证寻优;对于Flickr8k数据集,取其中的6 000幅图像及其参考句子用于模型训练,其验证集和测试集各包含1 000幅图像及参考句子。
(2)实验环境及参数设置
使用目前流行的深度学习框架Caffe[29]进行来部署各个实验。采用GoogLeNet模型提取图像的CNN特征,使用其最后一层(分类层)的输出作为输入LSTM网络的特征向量,用于捕捉更多的场景和物体类别信息,在CNNd-S中,其特征维度为205,在CNNd-O中,特征维度为1 000;在整个模型中,将batch_size设置为16,减轻GPU显存的压力。在语言模型中,将LM-S和LM-O中的时间步均设置为20,即认为参考句子中包含的单词数在20个以内,其生成的句子单词数最多也为20个;对于MSCOCO和Flickr30k数据集,由于其训练样本较多,其单词表大小分别为8 800和7 405,将单词的独热码向量降为1 000维的嵌入式向量,每层LSTM网络中的隐藏单元个数也设置为1 000;对于Flickr8k数据集,其样本较少,单词表大小为2 548,为防止过拟合,将单词的独热码向量降为256,其每层LSTM中的隐藏单元个数同样设置为256。
在MSCOCO和Flickr30k数据集上,设置最大迭代次数为110 k,初始学习率为0.01,并使用逐步下降的方式,每迭代30 k次后,其学习率下降为原来的1/10倍,防止模型陷入局部最优;在验证集上记录性能最高的模型,其迭代次数为90 k,在测试集上使用迭代90 k次的模型进行模型测试。在Flickr8k数据集上,设置最大迭代次数为70 k,初始学习率仍为0.01,每隔20 k次后,其学习率下降为原来的1/10;在验证集上,当模型迭代50 k次后,性能最优,并将其作为测试模型。
4.3.2评价方法
本文采用了BLEU[30]、METEOR[31]和CIDEr[32]3种方法对生成的句子进行整体评价。BLEU方法首先计算参考句子和生成句子中nn-gram的匹配个数,然后计算其与生成句子中nn-gram个数的比值作为评价指标,它主要关注生成句子中单词或短语的准确率。METEOR方法则首先使用任意匹配的方式将参考句子和生成句子中的词按照精准匹配、同义匹配和前缀匹配的方式依次寻找匹配的最大值,当3种匹配的最大值存在相同时,选择按顺序两两匹配中交叉数最少的匹配作为对齐;通过不断迭代,生成对齐集合,然后将该集合中元素的个数与参考句子中单词总数的比值作为召回率,与生成句子中单词总数的比值作为准确率,然后使用调和平均值的方式计算其最终值。除BLEU和METEOR外,还有最新的CIDEr评价方法,它使用了“共识”的概念,计算候选句子与参考句子集合的匹配程度,更能反映所生成句子的语义质量。
4.3.3实验结果及分析
本文分为两个部分对实验结果进行分析。首先将所提模型(F-SOCPK)与基准模型(Object-based、Scene-based)的结果进行了对比,对比结果如表 1—表 3所示。通过对比可以发现,F-SOCPK模型有效地改善了单独使用物体类别信息或场景类别信息作为先验知识的模型;在MSCOCO数据集上,其反映句子连贯性和准确率的B-4指标,F-SOCPK模型比Object-based模型提升了1 %,在反应语义丰富程度的CIDEr指标上,则提升了近2 %;与Scene-based模型相比,则提升更多;同样,在Flickr30k数据集上,其BLEU和CIDEr指标均比Object-based和Scene-based模型有所提升。而在较小的Flickr8k数据集上,F-SOCPK比两个基准模型性能提升更为明显,尤其在CIDEr指标上,比Object-based提升了9 %,比Scene-based提升了近11 %。这充分说明了所提模型的有效性。
表 1 F-SOCPK和基准模型在MSCOCO数据集上的实验结果对比
表 2 F-SOCPK和基准模型在Flickr30k数据集上的实验结果对比
表 3 F-SOCPK和基准模型在Flickr8k数据集上的实验结果对比
此外,本文还将所提模型与当前其他主流模型的性能进行了对比。如表 4所示,在MSCOCO数据集上,本文所提模型性能除在B-1指标上比文献[34]中基于注意力的模型更低外,在B-2、B-3和B-4指标上均超过了其他模型,在CIDEr指标上也远超过其他模型;在Flickr30k数据集上,F-SOCPK模型在B-1指标上也表现欠佳,但在BLEU的其他指标和METEOR指标上则表现良好,均超过了其他模型,尤其是在METEOR上,比基于注意力的模型性能提升了1.2 %,如表 5所示。而在较小的Flickr8k数据集上,F-SOCPK模型在BLEU的多个指标上其性能比多个模型有所降低,但在METEOR指标上则超过了其他所有模型,达到了20.8 %。这表明,本文所使用的方法不仅关注了生成句子的准确率,也关注了句子的召回率,同时更加注重句子的语义表达,生成的句子质量也更高。但需要注意的是,F-SOCPK模型在较小的数据集上容易造成过拟合现象,导致模