在这里,我们介绍了一个基于卷积神经网络特征空间的自然纹理的新模型,该模型为物体识别而优化。该模型的样本具有很高的感知质量,显示了以纯粹的辨别方式训练的神经网络的生成能力。在该模型中,纹理是由网络中几层特征图之间的相关性来表示的
。我们表明,各层的纹理表示越来越多地捕捉到自然图像的统计特性,同时使物体信息越来越明确。该模型提供了一个新的工具来产生神经科学的刺激,并可能提供对卷积神经网络学习的深层表征的见解。
视觉纹理合成的目标是从一个实例纹理中推断出一个生成过程,然后可以产生任意多的该纹理的新样本。对合成纹理质量的评价标准通常是人的检查,如果人的观察者不能从合成的纹理中分辨出原始纹理,那么纹理的合成就是成功的。
一般来说,有两种主要的方法来寻找纹理的生成过程。第一种方法是通过对原始纹理的像素[5,28]或整个斑块[6,16]进行重采样来生成新的纹理。这些非参数重采样技术及其大量的扩展和改进(见[27]的评论)能够非常有效地产生高质量的自然纹理。然而,它们并没有为自然纹理定义一个实际的模型,而是给出了一个机械化的程序,即如何在不改变其感知特性的情况下随机化一个源纹理。
相比之下,纹理合成的第二种方法是明确地定义一个参数化的纹理模型。该模型通常由一组在图像的空间范围内进行的统计测量组成。在该模型中,纹理是由这些测量的结果唯一定义的,每张产生相同结果的图像都应该被视为相同的纹理。因此,一个纹理的新样本可以通过寻找产生与原始纹理相同的测量结果的图像来生成。从概念上讲,这个想法最早是由Julesz[13]提出的,他猜想视觉纹理可以由其像素的N阶联合直方图唯一地描述。后来,纹理模型受到哺乳动物早期视觉系统的线性响应特性的启发,这些特性类似于定向带通(Gabor)滤波器的特性[10, 21]。这些纹理模型是基于对滤波器响应的统计测量而不是直接对图像像素的测量。到目前为止,用于纹理合成的最好的参数模型可能是Portilla和Simoncelli提出的模型[21],它是基于一组精心手工制作的摘要统计,这些统计是在一个叫做Steerable Pyramid[24]的线性滤波器组的响应上计算的。然而,尽管他们的模型在合成广泛的纹理方面显示出非常好的性能,但它仍然未能捕捉到自然纹理的全部范围。
在这项工作中,我们提出了一个新的参数化纹理模型来解决这个问题(图1)。我们没有在早期视觉系统模型的基础上描述纹理[21, 10],而是使用了一个卷积神经网络–整个腹侧流的功能模型–作为我们纹理模型的基础。我们将特征反应的空间汇总统计的概念框架与经过物体识别训练的卷积神经网络的强大特征空间相结合。通过这种方式,我们得到了一个纹理模型,它的参数是建立在卷积神经网络的分层处理结构上的空间不变的表示。
图1:合成方法。纹理分析(左)。原始纹理通过CNN,并计算出Gram矩阵,Gl是若干层的特征响应。纹理合成(右)。白噪声图像ˆ~x通过CNN,并对纹理模型中的每一层计算损失函数El。总损失函数是每一层的贡献El的加权和。使用与像素值有关的总损失的梯度下降,找到一个新的图像,产生与原始纹理相同的 Gram 矩阵ˆGl。
我们使用VGG-19网络,这是一个在物体识别方面训练的卷积神经网络,之前已经介绍过并广泛描述过[25]。这里我们只对它的结构做一个简单的总结。
我们使用了VGG-19网络的16个卷积层和5个池化层所提供的特征空间。我们没有使用任何全连接层。该网络的结构是基于两个基本的计算。
这两种计算是以交替的方式进行的(见图1)。在若干卷积层之后是一个最大集合层。在前三个集合层中的每一个之后,特征图的数量都会增加一倍。再加上空间下采样,这种转换的结果是将特征反应的总数量减少了两倍。图1提供了一个网络结构和每层特征图数量的示意性概述。由于我们只使用卷积层,所以输入图像可以是任意大的。第一个卷积层的大小与图像相同,对于接下来的层,特征图的大小比例保持固定。一般来说,网络中的每一层都定义了一个非线性滤波器组,其复杂性随着网络中该层的位置而增加。
训练好的卷积网络是公开的,它在新应用中的可用性得到了caffe-framework[12]的支持。对于纹理的生成,我们发现用平均池化代替最大池化操作可以改善梯度流,并且可以得到稍微干净的结果,这就是为什么下面显示的图像是用平均池化生成的。最后,出于实际考虑,我们重新调整了网络中的权重,使每个过滤器在图像和位置上的平均激活度都等于1。只要网络是完全分段线性的,就可以在不改变神经网络输出的情况下进行这样的重新调整。
我们在下文中所描述的纹理模型与Portilla和Simoncelli[21]所提出的纹理模型的精神很相似。为了从一个给定的源图像中生成一个纹理,我们首先从这个图像中均匀地提取不同大小的特征。接下来,我们在特征反应上计算一个空间汇总统计,以获得源图像的静态描述(图1A)。最后,我们通过对初始化为白噪声的随机图像进行梯度下降,找到一个具有相同静止描述的新图像(图1B)。
与Portilla和Simoncelli的工作的主要区别是,我们没有使用线性滤波器组和一组精心选择的摘要统计,而是使用由高性能的深度神经网络提供的特征空间和只有一个空间摘要统计:网络中每一层的特征反应之间的相关性。
为了在我们的模型中描述一个给定的矢量纹理~x, 我们首先将~x通过卷积神经网络,并计算网络中每层l的激活值。由于网络中的每一层都可以被理解为一个非线性滤波器库,它对图像的激活形成了一组过滤后的图像(所谓的特征图)。一个有Nl个不同的过滤器的层有Nl个特征图,每个特征图在矢量化时大小为Ml。这些特征图可以存储在一个矩阵F l∈RNl×Ml中,其中F ljk是第l层中k位置的第j个滤波器的激活值。纹理根据定义是固定的,因此纹理模型需要与空间信息无关。一个抛弃了特征图中的空间信息的汇总统计是由不同特征的反应之间的相关性给出的。这些特征的相关性,在一个比例常数内,由Gram矩阵Gl∈RNl×Nl给出,其中Glij是l层中特征图i和j之间的内积:
一组 Gram 矩阵{G1, G2, …, GL}来自网络中的一些层1, … ,L在网络中对一个给定的纹理的反应提供了一个纹理的静态描述,这在我们的模型中完全指定了一个纹理(图1A)。
为了在给定图像的基础上生成一个新的纹理,我们使用梯度下降法从白噪声图像中找到另一个与原始图像的 Gram 矩阵表示相匹配的图像。这种优化是通过最小化原始图像的 Gram 矩阵的项和正在生成的图像的 Gram 矩阵之间的均方距离来完成的(图1B)。
让~x 和ˆ~x为原始图像和生成的图像,Gl和ˆGl为第l层中各自的 Gram 矩阵表示(公式1)。那么,第l层对总损失的贡献是:
总损失为:
其中wl是各层对总损失贡献的加权系数。El相对于第l层激活的导数可以用分析法计算:
El的梯度,以及L(~x, ˆ~x) 的梯度,相对于像素ˆ~x 的梯度,可以用标准误差反向传播法[18]很容易计算出来。梯度 ∂L ˆ~x可以作为一些数字优化策略的输入。在我们的工作中,我们使用L-BFGS[30],这似乎是手头的高维优化问题的合理选择。整个过程主要依赖于用于训练卷积网络的标准前向-后向通道。因此,尽管模型的复杂性很大,但使用GPU和用于训练深度神经网络的性能优化的工具箱[12],可以在合理的时间内完成纹理生成。
我们展示了由我们的模型从四个不同的源图像中生成的纹理(图2)。每一排图像都是用纹理模型中越来越多的层数来约束梯度下降而生成的(图中的标签表示包括的最顶层)。换句话说,对于某一层以上的损失项,我们设置权重wl=0,而对于该层以下和包括该层的损失项,我们设置wl=1。例如,第一行的图像(‘conv1 1’)仅由VGG网络的第一层(‘conv1 1’)的纹理表示产生。第二行的图像(‘pool1’)是通过联合匹配’conv1 1’、'conv1 2’和’pool1’层上面的纹理表示产生的。通过这种方式,我们得到的纹理显示自然纹理的结构被纹理模型的某些计算处理阶段所捕获。
前三列显示了由自然纹理生成的图像。我们发现,约束所有的层,直到层’pool4’产生复杂的自然纹理,与原始纹理几乎没有区别(图2,第五行)。相反,当只约束最低层的特征相关性时,纹理几乎不包含结构,与光谱匹配的噪声相差无几(图2,第一行)。我们可以在这两个极端之间进行插值,只使用从所有层到某个中间层的约束。我们发现,随着我们用于生成纹理的层数的增加,自然图像的统计结构也越来越匹配。我们没有包括 "pool4 "层以上的任何层,因为这并没有提高合成纹理的质量。为了便于比较,我们使用了Portilla和Simoncelli[21]以前使用的源纹理,也显示了他们的纹理模型的结果(图2,最后一行)。
为了让大家更直观地了解纹理合成的工作原理,我们还展示了从ImageNet验证集[23]中提取的非纹理图像产生的纹理(图2,最后一栏)。我们的算法产生了图像的纹理化版本,保留了局部空间信息,但抛弃了图像的全局空间排列。保留空间信息的区域的大小随着用于生成纹理的层数的增加而增加。这一特性可以用深度卷积神经网络各层单元的接受场大小的增加来解释。
当使用卷积神经网络所有层的汇总统计时,模型的参数数量非常大。对于有Nl个特征图的每一层,我们匹配Nl × (Nl + 1)/2个参数,所以如果我们使用包括’pool4’在内的所有层,我们的模型有∼852k个参数(图3A,第四列)。然而,我们发现这个纹理模型被严重地过度参数化。事实上,当在网络中每个尺度上只使用一个层(即’conv1 1’,和’pool1-4’)时,该模型包含177k个参数,同时几乎没有损失任何质量(图3A,第三列)。我们可以通过对网络不同层的特征向量进行PCA,然后只为前k个主成分构建Gram矩阵来进一步减少参数的数量。通过使用 "conv1 1 "和 "pool1-4 "层的前64个主成分,我们可以进一步将模型减少到∼10k个参数(图3A,第二列)。有趣的是,只约束 "conv1 1 "和 "pool1-4 "层的特征图平均数(1024个参数),已经产生了有趣的纹理(图3A,第一列)。这些减少参数的特别方法表明,纹理表示可以被大大压缩,而对合成的纹理的感知质量没有什么影响。找到能再现完整模型质量的最小参数集是正在进行的研究的一个有趣的课题,超出了本文的范围。在补充材料和我们的网站上可以找到更多的用≈177k参数模型合成的自然纹理3。在那里,人们还可以观察到该模型在非常规则的人造结构(如砖墙)的情况下的一些失败。
总的来说,我们发现带有小型卷积滤波器的VGG网络的极深结构似乎特别适合于纹理生成的目的。当用与AlexNet[15]非常相似的caffe参考网络[12]进行同样的实验时,生成的纹理的质量在两个方面下降了。首先,即使使用所有的约束条件,源纹理的统计结构也不能完全匹配(图3B,‘conv5’)。其次,我们观察到一个覆盖在生成的纹理上的假象网格(图3B)。我们认为,人工网格源于caffe参考网络中较大的感受野尺寸和步幅。
虽然caffe参考网络的结果表明,网络的结构很重要,但学到的特征空间对纹理生成同样重要。当用一个具有VGG结构但随机权重的网络合成纹理时,纹理生成失败(图3C),强调了使用训练过的网络的重要性。
为了更好地理解我们的纹理特征在网络的原始物体识别任务的背景下,我们评估了物体身份能从网络不同层的纹理特征中线性解码的程度。对于每一层,我们计算了ImageNet训练集[23]中每张图片的Gram-matrix表示,并训练了一个线性软最大分类器来预测物体身份。由于我们对优化预测性能不感兴趣,我们没有使用任何数据增强,只在224×224的图像中心裁剪上进行训练和测试。我们计算了这些线性分类器在ImageNet验证集上的准确性,并将其与原始VGG-19网络的性能进行了比较,后者也是在验证图像的224×224中心作物上评估的。
分析表明,我们的纹理表征不断地分解物体身份的形成(图4)。物体身份可以在各层中被解码得越来越好。事实上,从最后的集合层进行的线性解码几乎和原始网络一样好,这表明我们的纹理表示几乎保留了所有的高级信息。乍一看,这可能会令人惊讶,因为纹理表示不一定能保留非纹理图像中物体的整体结构(图2,最后一栏)。然而,我们认为,这种 "不一致 "实际上是可以预期的,并且可能为CNN如何编码物体身份提供一个启示。网络中的卷积表示是移位的,网络的任务(物体识别)与空间信息无关,因此我们期望物体信息可以从特征图的空间信息中独立读出。我们表明情况确实如此:对 "pool5 "层的Gram矩阵的线性分类器接近于全网络的性能(87.7%对88.6%的前5名准确率,图4)。
我们引入了一个基于高性能卷积神经网络的新参数化纹理模型。我们的纹理模型超过了以前的工作,因为与目前参数化纹理合成的技术水平相比,使用我们的模型合成的纹理质量有了很大的提高(图2,第四行与最后一行相比)。
虽然我们的模型能够产生与非参数纹理合成方法质量相当的自然纹理,但我们的合成程序在计算上更加昂贵。尽管如此,无论在工业界还是学术界,目前都在努力使深度神经网络的评估更加有效[11, 4, 17]。由于我们的纹理合成程序完全建立在相同的操作上,在深度卷积网络的一般领域取得的任何进展都可能转移到我们的纹理合成方法上。因此,我们预计在不久的将来,我们的纹理模型的实际适用性会有很大的改善。
通过计算特征图上的 Gram 矩阵,我们的纹理模型将卷积神经网络的表征转化为一个固定的特征空间。这个一般的策略最近被用来提高物体识别和检测[9]或纹理识别和分割[3]的性能。特别是Cimpoi等人报告说,通过使用建立在现成训练的神经网络最高卷积层上的固定的Fisher-Vector表示,在材料识别和场景分割方面的表现令人印象深刻[3]。与我们的结果一致,他们表明,当使用更高的卷积层作为Fisher-Vector表示的输入时,自然纹理识别的性能不断提高。由于我们的主要目的是合成纹理,我们没有在纹理识别基准上评估 Gram 矩阵表示,但希望它也能为这些任务提供一个良好的特征空间。
近年来,受生物视觉启发的纹理模型为研究视知觉提供了一个富有成效的新的分析工具。特别是Portilla和Simoncelli[21]提出的参数化纹理模型,引发了神经科学和心理物理学的大量研究[8, 7, 1, 22, 20]。我们的纹理模型是基于深度卷积神经网络的,它是第一个在困难的感知推理任务(如物体识别)方面可以与生物学相媲美的人工系统[15, 25, 26]。同时,它们的分层结构和基本计算特性与真实的神经系统有着根本的相似性。再加上越来越多的证据表明卷积网络中的表征与腹侧视觉通路中的表征具有相似性[29, 2, 14],这些特性使它们成为研究大脑中视觉信息处理的有力候选模型。事实上,最近有人提出,从性能优化的卷积网络的表征中产生的纹理 “可能会被证明在知觉或生理调查中是有用的”[19]。我们认为,我们的纹理模型是朝这个方向迈出的第一步,并设想它将为研究生物系统中的视觉信息处理提供一个令人兴奋的新工具。