Game 发表于 2018-7-25 16:11:52

你真的了解计算机视觉吗。一文详解视觉,网络压缩,视觉问答、可视性(下)

接上文

▌人脸验证/识别(face verification/recognition) 人脸验证/识别可以认为是一种更加精细的细粒度图像识别任务。人脸验证是给定两张图像、判断其是否属于同一个人,而人脸识别是回答图像中的人是谁。一个人脸验证/识别系统通常包括三大步:检测图像中的人脸,特征点定位、及对人脸进行验证/识别。人脸验证/识别的难题在于需要进行小样本学习。通常情况下,数据集中每人只有对应的一张图像,这称为一次学习(one-shot learning)。 两种基本思路当作分类问题(需要面对非常多的类别数),或者当作度量学习问题。如果两张图像属于同一个人,我们希望它们的深度特征比较接近,否则,我们希望它们不接近。之后,根据深度特征之间的距离进行验证(对特征距离设定阈值以判断是否属于同一个人),或识别(k近邻分类)。

DeepFace第一个将深度神经网络成功用于人脸验证/识别的模型。DeepFace使用了非共享参数的局部连接。这是由于人脸不同区域存在不同的特征(例如眼睛和嘴巴具有不同的特征),经典卷积层的“共享参数”性质在人脸识别中不再适用。因此,人脸识别网络中会采用不共享参数的局部连接。其使用孪生网络(siamese network)进行人脸验证。当两张图像的深度特征小于给定阈值时,认为其来自同一个人。


FaceNet三元输入,希望和负样本之间的距离以一定间隔(如0.2)大于和正样本之间的距离。此外,输入三元的选择不是随机的,否则由于和负样本之间的差异很大,网络学不到什么东西。选择最困难的三元组(即最远的正样本和最近的负样本)会使网络陷入局部最优。FaceNet采用半困难策略,选择比正样本远的负样本。


大间隔交叉熵损失近几年的一大研究热点。由于类内波动大而类间相似度高,有研究工作旨在提升经典的交叉熵损失对深度特征的判断能力。例如,L-Softmax加强优化目标,使对应类别的参数向量和深度特征夹角增大。 A-Softmax进一步约束L-Softmax的参数向量长度为1,使训练更集中到优化深度特征和夹角上。实际中,L-Softmax和A-Softmax都很难收敛,训练时采用了退火方法,从标准softmax逐渐退火至L-Softmax或A-Softmax。 活体检测(liveness detection)判断人脸是来自真人或是来自照片等,这是人脸验证/识别需要解决的关键问题。在产业界目前主流的做法是利用人的表情变化、纹理信息、眨眼、或让用户完成一系列动作等。 ▌图像检索(image retrieval) 给定一个包含特定实例(例如特定目标、场景、建筑等)的查询图像,图像检索旨在从数据库图像中找到包含相同实例的图像。但由于不同图像的拍摄视角、光照、或遮挡情况不同,如何设计出能应对这些类内差异的有效且高效的图像检索算法仍是一项研究难题。 图像检索的典型流程首先,设法从图像中提取一个合适的图像的表示向量。其次,对这些表示向量用欧式距离或余弦距离进行最近邻搜索以找到相似的图像。最后,可以使用一些后处理技术对检索结果进行微调。可以看出,决定一个图像检索算法性能的关键在于提取的图像表示的好坏。


(1) 无监督图像检索 无监督图像检索旨在不借助其他监督信息,只利用ImageNet预训练模型作为固定的特征提取器来提取图像表示。 直觉思路由于深度全连接特征提供了对图像内容高层级的描述,且是“天然”的向量形式,一个直觉的思路是直接提取深度全连接特征作为图像的表示向量。但是,由于全连接特征旨在进行图像分类,缺乏对图像细节的描述,该思路的检索准确率一般。 利用深度卷积特征由于深度卷积特征具有更好的细节信息,并且可以处理任意大小的图像输入,目前的主流方法是提取深度卷积特征,并通过加权全局求和汇合(sum-pooling)得到图像的表示向量。其中,权重体现了不同位置特征的重要性,可以有空间方向权重和通道方向权重两种形式。 CroW深度卷积特征是一个分布式的表示。虽然一个神经元的响应值对判断对应区域是否包含目标用处不大,但如果多个神经元同时有很大的响应值,那么该区域很有可能包含该目标。因此,CroW把特征图沿通道方向相加,得到一张二维聚合图,并将其归一化并根号规范化的结果作为空间权重。CroW的通道权重根据特征图的稀疏性定义,其类似于自然语言处理中TF-IDF特征中的IDF特征,用于提升不常出现但具有判别能力的特征。 Class weighted features该方法试图结合网络的类别预测信息来使空间权重更具判别能力。具体来说,其利用CAM来获取预训练网络中对应各类别的最具代表性区域的语义信息,进而将归一化的CAM结果作为空间权重。 PWAPWA发现,深度卷积特征的不同通道对应于目标不同部位的响应。因此,PWA选取一系列有判别能力的特征图,将其归一化之后的结果作为空间权重进行汇合,并将其结果级联起来作为最终图像表示。

(2) 有监督图像检索 有监督图像检索首先将ImageNet预训练模型在一个额外的训练数据集上进行微调,之后再从这个微调过的模型中提取图像表示。为了取得更好的效果,用于微调的训练数据集通常和要用于检索的数据集比较相似。此外,可以用候选区域网络提取图像中可能包含目标的前景区域。 孪生网络(siamese network)和人脸识别的思路类似,使用二元或三元(++-)输入,训练模型使相似样本之间的距离尽可能小,而不相似样本之间的距离尽可能大。

▌目标跟踪(object tracking) 目标跟踪旨在跟踪一段视频中的目标的运动情况。通常,视频第一帧中目标的位置会以包围盒的形式给出,我们需要预测其他帧中该目标的包围盒。目标跟踪类似于目标检测,但目标跟踪的难点在于事先不知道要跟踪的目标具体是什么,因此无法事先收集足够的训练数据以训练一个专门的检测器。 孪生网络类似于人脸验证的思路,利用孪生网络,一支输入第一帧包围盒内图像,另一支输入其他帧的候选图像区域,输出两张图的相似度。我们不需要遍历其他帧的所有可能的候选区域,利用全卷积网络,我们只需要前馈整张图像一次。通过互相关操作(卷积),得到二维的响应图,其中最大响应位置确定了需要预测的包围盒位置。基于孪生网络的方法速度快,能处理任意大小的图像。


CFNet 相关滤波通过训练一个线性模板来区分图像区域和它周围区域,利用傅里叶变换,相关滤波有十分高效的实现。CFNet结合离线训练的孪生网络和在线更新的相关滤波模块,提升轻量级网络的跟踪性能。

▌生成式模型(generative models) 这类模型旨在学得数据(图像)的分布,或从该分布中采样得到新的图像。生成式模型可以用于超分辨率重建、图像着色、图像转换、从文字生成图像、学习图像潜在表示、半监督学习等。此外,生成式模型可以和强化学习结合,用于仿真和逆强化学习。


显式建模根据条件概率公式,直接进行最大似然估计对图像的分布进行学习。该方法的弊端是,由于每个像素依赖于之前的像素,生成图像时由于需要从一角开始序列地进行,所以会比较慢。例如,WaveNet可以生成类似人类说话的语音,但由于无法并行生成,得到1秒的语音需要2分钟的计算,无法达到实时。

变分自编码器(variational auto-encoder, VAE)为避免显式建模的弊端,变分自编码器对数据分布进行隐式建模。其认为图像的生成受一个隐变量控制,并假设该隐变量服从对角高斯分布。变分自编码器通过一个解码网络从隐变量生成图像。由于无法直接进行最大似然估计,在训练时,类似于EM算法,变分自编码器会构造似然函数的下界函数,并对这个下界函数进行优化。变分自编码器的好处是,由于各维独立,我们可以通过控制隐变量来控制输出图像的变化因素。

生成式对抗网络(generative adversarial networks, GAN) 由于学习数据分布十分困难,生成式对抗网络绕开这一步骤,直接生成新的图像。生成式对抗网络使用一个生成网络G从随机噪声中生成图像,以及一个判别网络D判断其输入图像是真实/伪造图像。在训练时,判别网络D的目标是能判断真实/伪造图像,而生成网络G的目标是使得判别网络D倾向于判断其输出是真实图像。 实际中,直接训练生成式对抗网络会遇到mode collapse问题,即生成式对抗网络无法学到完整的数据分布。随后,出现了LS-GAN和W-GAN的改进。和变分自编码器相比,生成式对抗网络的细节信息更好。以下链接整理了许多和生成式对抗网络有关的论文:hindupuravinash/the-gan-zoo。以下链接整理了许多训练生成式对抗网络的其技巧:soumith/ganhacks。




▌视频分类(video classification) 前面介绍的大部分任务也可以用于视频数据,这里仅以视频分类任务为例,简要介绍处理视频数据的基本方法。 多帧图像特征汇合这类方法将视频看成一系列帧的图像组合。网络同时接收属于一个视频片段的若干帧图像(例如15帧),并分别提取其深度特征,之后融合这些图像特征得到该视频片段的特征,最后进行分类。实验发现,使用"slow fusion"效果最好。此外,独立使用单帧图像进行分类即可得到很有竞争力的结果,这说明单帧图像已经包含很多的信息。


三维卷积将经典的二维卷积扩展到三维卷积,使之在时间维度也局部连接。例如,可以将VGG的3×3卷积扩展为3×3×3卷积,2×2汇合扩展为2×2×2汇合。


图像+时序两分支结构这类方法用两个独立的网络分别捕获视频中的图像信息和随时间运动信息。其中,图像信息从单帧静止图像中得到,是经典的图像分类问题。运动信息则通过光流(optical flow)得到,其捕获了目标在相邻帧之间的运动情况。



CNN+RNN捕获远距离依赖之前的方法只能捕获几帧图像之间的依赖关系,这类方法旨在用CNN提取单帧图像特征,之后用RNN捕获帧之间的依赖。



此外,有研究工作试图将CNN和RNN合二为一,使每个卷积层都能捕获远距离依赖。




页: [1]
查看完整版本: 你真的了解计算机视觉吗。一文详解视觉,网络压缩,视觉问答、可视性(下)