7、纹理生成(Texture Synthesis)与风格迁移(Style Transform)
纹理生成用于生成包含相同纹理的较大图像。给定正常图像和包含特定风格的图像,然后通过风格迁移不仅保留图像的原始内容,而且将该图像转换为指定的风格。
特征反演是纹理生成和风格迁移背后的核心概念。给定一个中间层特征,我们希望迭代来创建与给定特征类似图像。特征反演还可以告诉我们在中间层特征中包含多少图像信息。
给定DxHxW的深度卷积特征,我们将它们转换为Dx(HW)矩阵X,因此我们可以将对应Gram矩阵定义为:G = XX ^ T
通过外积,Gram矩阵捕获不同特征之间的关系。
它对给定纹理图案的Gram矩阵进行特征逆向工程。使生成图像的各层特征的Gram矩阵接近给定纹理图像的各层Gram。低层特征倾向于捕获细节信息,而高层特征可以捕获更大面积的特征。
此优化有两个主要目标:第一个是使生成的图像的内容更接近原始图像的内容,而第二个是使生成的图像的风格与指定的风格匹配。风格由Gram矩阵体现,而内容直接由神经元的激活值体现。
上面直接生成风格迁移的图像的方法的缺点是需要多次迭代才能收敛。解决该问题的方案是训练一个神经网络来直接生成风格迁移的图像。一旦训练结束,进行风格迁移只需前馈网络一次,十分高效。在训练时,将生成图像、原始图像、风格图像三者前馈一固定网络以提取不同层特征用于计算损失函数。
实验证明,通过使用实例归一化,风格变换网络可以移除与图像相关的比较信息以简化生成过程。
上述方法的一个问题是我们必须为每种不同的风格训练一个单独的模型。由于不同的风格有时包含相似性,因此可以通过在不同风格的风格变换网络之间共享参数来完成这项工作。具体来说,它更改了风格转换网络的示例规范化,使其具有N组缩放和平移参数,每个组对应于特定风格。这样我们就可以从单个前馈过程中获得N个风格的变换图像。
人脸验证/识别可以认为是一种更加精细的细粒度图像识别任务。人脸验证是给定两张图像、判断其是否属于同一个人,而人脸识别是回答图像中的人是谁。一个人脸验证/识别系统通常包括三大步:检测图像中的人脸,特征点定位、及对人脸进行验证/识别。人脸验证/识别的难题在于需要进行小样本学习。通常情况下,数据集中每人只有对应的一张图像,这称为一次性学习(one-shot learning)。
作为分类问题(非常多的类别数),或作为度量学习的问题。如果两个图像属于同一个人,那么我们希望它们的深层特征非常相似。否则,它们的特征应该不同。之后,根据深度特征之间的距离进行验证或识别(k最近邻居分类)。
第一个成功将深度神经网络应用于面部验证/识别模型的系统。DeepFace使用非共享参数局部性连接。这是因为人脸的不同部分具有不同的特征(例如眼睛和嘴唇具有不同的特征),因此传统卷积层的经典“共享参数”不适用于面部验证。因此,面部识别网络使用非共享参数局部性连接。它使用的孪生(Siamese network)网络用于面部验证。当两个图像的深度特征小于给定阈值时,它们被认为是同一个人。
FaceNet通过三因子输入,希望负样本之间的距离大于正样本之间的距离给定量。此外,三个输入因子并不是随机的,否则,因为负样本的差异样本太大,网络将无法学习。选择最具挑战性的三个元素组(例如最远的正样本和最接近的负样本)会使该网络陷入局部最优。FaceNet使用半困难策略,选择比正样本更远的负样本。
近年来,这一直是一个热门的研究课题。由于类内波动大而类间相似度高,有研究工作旨在提升经典的交叉熵损失对深度特征的判断能力。例如,L-Softmax加强优化目标,使对应类别的参数向量和深度特征夹角增大。
A-Softmax进一步约束L-Softmax的参数向量长度为1,使训练更集中到优化深度特征和夹角上。实际中,L-Softmax和A-Softmax都很难收敛,训练时采用了退火方法,从标准softmax逐渐退火至L-Softmax或A-Softmax。
该系统确定面部图像是来自真人还是来自照片,这是面部验证/识别任务的关键障碍。目前在业界流行的一些方法是读取人的面部表情,纹理信息,眨眼或要求用户完成一系列动作的变化。
给定一个包含特定实例(例如特定目标,场景或建筑物)的图像,图像搜索用于在数据库中查找包含与给定实例类似的元素的图像。然而,由于两个图像中的角度,光照和障碍物通常不相同,因此创建能够处理图像类别中的这些差异的搜索算法的问题对研究人员构成了重大挑战。
首先,我们必须从图像中提取适当的代表性矢量。其次,将欧氏距离或余弦距离应用于这些矢量以执行最近邻居搜索并找到最相似的图像。最后,我们使用特定的处理技术对搜索结果进行小幅调整。我们可以看到图像搜索引擎性能的限制因素是图像的表示:
无监督图像搜索使用预先训练的ImageNet模型,没有外部信息作为特征提取引擎来提取图像的表示。
有监督图像搜索首先采用预先训练的ImageNet模型并将其调整到另一个训练数据集上。然后,它从这个调整的模型中提取图像表示。为了获得更好的结果,用于优化模型的训练数据集通常类似于搜索数据集。此外,我们可以使用候选区域网络从可能包含目标的图像中提取前景区域。
孪生网络:类似于人脸识别的思想,该系统使用两个元素或三个元素输入(++ -)来训练模型,以最小化两个样本之间的距离,并最大化两个不同样本之间的距离。
对象跟踪的目标是跟踪视频中目标的移动。通常,目标位于视频的第一帧中并由框标记。我们需要预测框在下一帧中的位置。对象跟踪与目标测试类似。然而,对象跟踪的难点在于我们不知道我们跟踪哪个目标。因此,我们无法在任务之前收集足够的训练数据并训练专门的测试。
类似于面部验证的概念,利用孪生网络可以在一条线上的目标框内输入图像,并且在另一条线上输入候选图像区域,然后输出两个图像之间的相似度。我们不需要遍历不同帧中的所有其他候选区域;相反,我们可以使用卷积网络,只需要将每个图像前馈一次,通过卷积,我们可以获得二维的响应图,其中最重要的响应位置确定了框的位置。基于孪生网络的方法非常快并且能够处理任何大小的图像。
相关滤波器训练线性模板以区分图像区域和它们周围的区域,然后使用傅立叶变换。CFNet与离线训练的孪生网络和相关的在线滤波模板相结合,能够提高加权网络的跟踪性能。
这种类型的模型用于学习数据(图像)的分布或从其分布中采样新图像。生成模型可用于超分辨率重建、图像着色、图像转换、从文本生成图像、学习隐藏的图像表示、半监督学习等。此外,生成式模型可以与强化学习相结合,用于模拟和逆强化学习。
使用条件概率的公式来对图像的分布进行最大似然估计并从中学习。该方法的缺点在于,由于每个图像中的像素取决于先前的像素,因此必须在一个角开始并以有序的方式进行,所以生成图像的过程将稍微缓慢。例如,WaveNet可以产生类似于人类创建的语音,但由于它不能同时产生,一秒钟的语音需要2分钟来计算,并且实时生成是不可能的。
为了避免显式建模的缺陷,变分自编码器对数据分布进行了隐式建模。它认为生成图像受隐藏变量控制的影响,并假设隐藏变量受到对角高斯分布的影响。
变分自编码器使用解码网络根据隐藏变量生成图像。由于我们无法直接应用最大似然估计,因此在训练时,类似于EM算法,变分自编码器构造似然函数的下界函数,然后使用该下界函数进行优化。变分自编码器的好处是因为每个维度的独立性;我们可以通过控制隐藏变量来控制影响输出图像变化的因素。
由于学习数据分布极其困难,生成对抗式网络完全避免了这一步骤并立即生成图像。生成对抗式网络使用生成网络G从随机噪声创建图像,并使用判别网络D来确定输入图像是真实的还是伪造的。
在训练期间,判别网络D的目标是确定图像是真实的还是伪造的,并且生成式网络G的目的是使判别网络D倾向于确定其输出图像是真实的。在实践中,训练生成式对抗网络会带来模型崩溃的问题,其中生成对抗式网络无法学习完整的数据分布。这在LS-GAN和W-GAN中产生了改进,与变分自编码器一样,生成对抗式网络提供更好的详细信息。
上述大多数任务都可以用于视频分类,这里我们将以视频分类为例来说明处理视频数据的一些基本方法。
这类方法将视频视为一系列帧图像,网络接收属于视频的一组多帧图像(例如15帧),然后从这些图像中提取深度特征,并最终集成这些图像特征以获得视频的该部分的特征以对其进行分类。实验表明,使用“慢速融合(slow fusion)”效果最佳。此外,独立组织单个帧也可以得到非常有竞争力的结果,这意味着来自单个帧的图像包含大量相关信息。
将标准的二维卷积扩展为三维卷积,以在时间维度上连接局部。例如,系统可以采用VGG 3x3卷积并将其扩展为3x3x3卷积或2x2收敛扩展为2x2x2收敛。
这种类型的方法使用两个独立的网络来区分从视频捕获的图像信息和时间信息。图像信息可以从单帧中的静止图像获得,并且是图像分类的经典问题。然后通过光流获得运动信息,跟踪目标在相邻帧上的运动。
先前的方法仅能够捕获几帧图像之间的依赖关系。此方法使用CNN从单个帧中提取图像特征,然后使用RNN捕获帧之间的依赖关系。
此外,研究人员已尝试将CNN和RNN结合起来,以便每个卷积层能够捕获远距离依赖性。
以上为译文。
本文由组织翻译。
文章原标题《deep-dive-into-computer-vision-with-neural-network-2》,
作者: 译者:虎说八道,审校:。
文章为简译,更为详细的内容,请查看。