作者:Longlong Jing and Yingli Tian
Self-supervised Visual Feature Learning with Deep Neural Networks: A Survey
摘要
在计算机视觉应用中,训练深度神经网络通常需要大规模的标签数据,以便在图像或视频的视觉特征学习中获得更好的性能。为了避免收集和标注大规模数据集的大量成本,研究者门提出了一种无监督学习方法——自监督学习方法,在不使用任何人工注释标签的情况下,从大规模未标注数据中学习普适的图像和视频特征。本文对图像或视频中基于深度学习的自监督视觉特征学习方法进行了广泛的回顾。首先,描述了该领域的动机,总体流程和术语。然后总结了用于自监督学习的常见深度神经网络架构。接下来,回顾了自监督学习方法的模式和评估指标,然后介绍了常用的图像和视频数据集以及现有的自监督视觉特征学习方法。最后,总结并讨论了基准数据集上所审查方法的定量性能比较。最后,本文总结并列出了自监督视觉特征学习的未来方向。
关键词:自监督学习,无监督学习,卷积神经网络,迁移学习,深度学习
1 背景介绍
1.1 动机
深度神经网络具有学习不同层次的一般视觉特征的强大能力,已被作为许多计算机视觉应用中的基本结构,例如目标检测,语义分割,图像描述等。从大型图像数据集(如ImageNet)训练的模型被广泛用作预训练模型,并针对其他任务进行微调,其主要原因有两个:(1)从大规模多样化数据集中学习的权重参数提供了一个很好的初始点,因此,在其他任务上训练的网络可以更快地收敛;(2)在大规模数据集上训练的网络已经学习了层次结构特征,在其他任务的数据集很小或训练标签不足的情况下,可以帮助减轻训练时的过拟合问题。
深度卷积神经网络(ConvNets)的性能在很大程度上取决于模型能力和训练数据量。研究者们开发了各种网络架构提高模型能力,包括AlexNet [8],VGG [9],GoogLeNet [10],ResNet [11]和DenseNet [12]的各种网络。同时,收集了越来越大型的数据集,诸如ImageNet [13],OpenImage [14]之类的大规模数据集,以训练更深的卷积网络。凭借复杂的体系结构和大规模数据集,ConvNets的性能不断突破许多计算机视觉任务的最新技术[1],[4],[7],[15],[16]。
但是,大规模数据集的收集和注释既费时又昂贵。作为用于预训练非常深的2D卷积神经网络(2DConvNets)的最广泛使用的数据集之一,ImageNet [13]包含约130万个标记图像,涵盖1,000个类别,而每个图像均由人工标记一个类别标签。与图像数据集相比,视频数据集由于增加了时间维度,其收集和注释更加昂贵。 Kinetics数据集[17]主要用于训练ConvNets进行视频人体动作识别,由500,000个属于600个类别的视频组成,每个视频持续10秒左右。许多Amazon Turk工人花费了大量时间来收集和注释如此大规模的数据集。
为了避免耗时且昂贵的数据注释,研究者们提出了许多自监督方法,无需使用任何人工注释即可从大规模的未标注图像或视频中学习视觉特征。 为了从未标注的数据中学习视觉特征,一种解决方案是提出各种代理任务让网络解决,这样网络可以通过学习代理任务的目标函数来训练,从而在这一过程中学习特征。 研究者们已经提出了各种自监督学习的代理任务,包括为灰度图像着色[18],图像修补[19],拼图游戏[20]等。这些代理任务具有两个共同的特性:(1)ConvNets需要捕获图像或视频的视觉特征来解决代理任务,(2)代理任务的伪标签可以根据图像或视频的属性自动生成。
自监督学习的总体流程如图1所示。在自监督训练阶段,首先设计一个预定义的代理任务,该代理任务的伪标签是基于数据的某些属性自动生成的。 然后,对ConvNet进行训练,学习代理任务的目标函数,解决该任务。 在自监督的训练完成之后,将学习到的视觉特征作为预训练模型进一步迁移到后续任务(尤其是当只有相对较小的数据时),以提高性能并克服过拟合的情况。 通常,浅层捕获一般的低级特征,例如边缘,拐角和纹理,而深层捕获与任务相关的高级特征。 因此,在有监督的后续任务训练阶段,仅转移前几层的视觉特征。
1.2 术语
人工注释标签:由人类手动注释的数据标签。
伪标签:代理任务中根据数据属性自动生成的标签。
代理任务:网络要解决的预先设计的任务,通过学习代理任务的目标函数来学习视觉特征。
后续任务:计算机视觉应用,用于评估自监督学习所学特征的质量。 当训练数据稀缺时,这些应用可以从预训练的模型中受益。 通常需要人工注释标签来解决后续任务。 但是在某些应用中,后续任务可以与代理任务相同,无需使用任何人工注释标签。
监督学习:使用带有细粒度人工注释标签的数据来训练网络的学习方法。
半监督学习:使用少量标注数据和大量未标注数据的学习方法。
弱监督学习:使用粗粒度标签或不准确标签进行学习的学习方法。 获得弱监督标签的成本通常比监督方法的细粒度标签便宜得多。
无监督学习:不使用任何人工注释标签的学习方法。
自监督学习:无监督学习方法的一种,使用自动生成的标签对ConvNets进行训练的学习方法。 本文仅关注使用ConvNets进行视觉特征学习的自监督学习方法,其中可以将特征迁移到多个不同的计算机视觉任务中。
由于在自监督训练过程中无需人工注释即可生成伪标签,因此非常大规模的数据集可用于自监督训练。 经过这些伪标签的训练,自监督方法取得了可喜的结果,和监督方法在后续任务上的表现差距越来越小。 本文对基于ConvNets的深度自监督视觉特征学习方法进行了全面的概述。 本文的主要贡献如下:
• 据我们所知,这是首次有关使用深度ConvNets进行自监督的视觉特征学习的综合调查,这将对该领域的研究人员有所帮助。
• 对最近开发的自监督学习方法和数据集的深入审查。
• 提供了定量性能分析和现有方法的比较。
• 指出了一套自监督学习的未来可能方向。
2 不同学习模式的制定
根据训练标签,视觉特征学习方法可分为以下四类:有监督,半监督,弱监督和无监督。 在本节中,将对四种类型的学习方法进行比较,并定义关键术语。(本小节公式较多,建议看原文)
2.1 有监督学习
在有监督学习中,给定数据集X,对于每个数据Xi,都有对应的人工注释标签Yi . 对于具有N个训练数据的集合D={Xi}_{i=1}^N,训练损失函数定义为:
利用准确的人工注释标签训练,有监督学习方法在不同的计算机视觉应用中获得了突破性的成果[1],[4],[8],[16]。 但是,数据收集和注释通常是昂贵的,并且还可能需要专业技能。 因此,提出了半监督,弱监督和无监督学习方法以降低成本。
2.2 半监督学习
对于半监督学习,给定一个有标注的小数据集X和无标注的大数据集Z,对于X中的每个数据Xi, 都有对应的人工注释标签Yi. 对于具有N个有标注训练数据的集合D1={Xi}_{i=1}^N,和具有M个无标注训练数据的集合D2={Zi}_{i=1}^M,训练损失函数定义为:
其中, R(Zi,X) 是任务相关的函数,表示每个未标注训练数据Zi 和标注数据集X的关系。
2.3 弱监督学习
对于弱监督学习,给定数据集X,对于每个数据Xi,都有对应的粗粒度标签Ci. 对于具有N个训练数据的集合D={Xi}_{i=1}^N,训练损失函数定义为:
由于弱监督的成本比监督方法的细粒度标签低得多,因此相对容易获得大规模数据集。 最近,有几篇论文提出使用hashtags作为从网页上收集的图像的类别标签,用以学习图像特征[21],[22],并获得了很好的性能。
2.4 无监督学习
无监督学习是指不需要任何人工注释标签的学习方法。 这种类型的方法包括完全无监督的学习方法,其中根本不需要任何标签;以及自监督的学习方法,其中使用自动生成的伪标签对网络进行专门训练,而无需涉及任何人工注释。
2.4.1 自监督学习
近年来,已经开发出许多用于视觉特征学习的自监督学习方法,没有使用任何人工注释的标签[23],[24],[25],[26],[27],[28],[29], [30],[31],[32],[33],[33],[34],[35]。 一些论文将这种学习方法称为无监督学习[36],[37],[38],[39],[40],[41],[42],[43],[44],[45] ],[46],[47],[48]。 相比于需要人工标注的数据对(Xi,Yi)的监督学习方法,自监督学习使用数据Xi及其伪标签Pi进行了训练,而Pi是自动生成的,无需任何人工注释,用于预定义的代理任务。 伪标签Pi可以通过使用图像或视频的属性(例如图像的上下文[18],[19],[20],[36])或通过传统的手工设计方法[49],[50],[51]。
对于具有N个训练数据的集合D={Xi}_{i=1}^N,训练损失函数定义为:
只要伪标签P是在不涉及人工注释的情况下自动生成的,那么这些方法就属于自监督学习。 最近,自监督学习方法取得了显著的进步。 本文着重于主要针对视觉特征学习而设计的自监督学习方法,同时这些特征具有迁移到多种视觉任务并通过从有限的标记数据中学习来完成新任务的能力。 本文从不同的角度总结了这些自监督的特征学习方法,包括网络体系结构,常用的代理任务,数据集和应用等。
3 常用的深度网络结构
无论学习方法的类别如何,它们都共享相似的网络体系结构。 本节介绍了用于学习图像和视频功能的通用体系结构。
3.1 图像特征学习的网络结构
AlexNet [8], VGG [9], GoogLeNet [10], ResNet [11], and DenseNet [12] 。
3.2 视频特征学习的网络结构
Two-Stream Network,Spatiotemporal Convolutional Neural Network
3.3 神经网络结构总结
深度卷积网络在各种计算机视觉任务中显示出巨大潜力。图像和视频特征的可视化表明,这些网络真正学习了相应任务所需的有意义的特征[52],[78],[79],[80]。但是,一个普遍的缺点是,当训练数据稀缺时,由于每个网络中有数百万个参数,因此这些网络很容易过拟合。
以3DResNet为例,从头开始训练时,UCF101动作识别数据集上的18层3DResNet的性能为42%。但是,如果在大规模运动学数据集(500,000个视频的600个班级)上使用人工注释的类别标签进行监督的预训练模型,然后在UCF101数据集上进行微调,则性能可以提高到84%。在大规模数据集上进行预训练的模型可以加快训练过程,并提高相对较小的数据集的性能。但是,收集和注释大规模数据集的成本非常昂贵且耗时。
为了从大规模数据集中获得经过预训练的模型而无需花费昂贵的人工注释,提出了许多自监督学习方法,以从预先设计的代理任务中学习图像和视频特征。下一部分描述了自监督图像和视频特征学习的一般流程。
4 常用的代理任务和后续任务
大多数现有的自监督学习方法都遵循图9所示的模式。通常,定义一个代理任务让ConvNets解决,并且通过完成该代理任务的过程来学习视觉特征。 代理任务的伪标签P可以自动生成,而无需人工注释。 通过最小化ConvNet 的预测O与伪标签P之间的误差来优化ConvNet。完成对代理任务的训练后,获得可以捕获图像或视频视觉特征的ConvNet模型。
4.1 从代理任务中学习特征
为了减轻大规模数据集注释的负担,通常为网络设计一个代理任务,其中的伪标签是根据数据属性自动生成的。目前已经出现了许多代理任务并将其应用于自监督学习,例如前景对象分割[81],图像修复[19],聚类[44],图像着色[82],时间顺序验证[40],视觉音频对应验证[25]等。有效的代理任务确保通过完成任务的过程学习语义特征。
以图像着色为例,图像着色是将灰度图像着色为彩色图像的任务。为了生成逼真的彩色图像,需要网络来学习图像的结构和上下文信息。在此代理任务中,数据X是可以通过对RGB图像执行线性变换而生成的灰度图像,而伪标签P是RGB图像本身。训练对(Xi,Pi)可以实时生成,而成本却可以忽略不计。具有其他代理任务的自监督学习也遵循类似的流程。
4.2 常用的代理任务
根据用于设计代理任务的数据属性,如图10所示,我们将代理任务概括为四类:基于生成,基于上下文,基于免费语义标签和基于跨模态。
(1)基于生成的方法:这种类型的方法通过解决涉及图像或视频生成的代理任务来学习视觉特征。
• 图像生成:通过图像生成任务的过程学习视觉特征。这种类型的方法包括图像着色[18],图像超分辨率[15],图像修复[19],生成对抗网络(GAN)生成图像[83],[84]。
• 视频生成:通过视频生成任务的过程学习视觉特征。这种类型的方法包括使用GAN [85],[86]和视频预测[37]进行视频生成。
(2)基于上下文的方法:基于上下文的代理任务的设计主要利用图像或视频的上下文特征,例如上下文相似性,空间结构,时间结构等。
• 上下文相似度:代理任务是根据图像块之间的上下文相似度设计的。这种类型的方法包括基于图像聚类的方法[34],[44]和基于图约束的方法[43]。
• 空间上下文结构:代理任务是根据图像块之间的空间关系设计的。这种类型的方法包括图像拼图[20],[87],[88],[89],上下文预测[41]和几何变换识别[28],[36]等。
• 时间上下文结构:视频的时间顺序用作监控信号。对ConNet进行训练,以验证输入帧序列是否以正确的顺序[40],[90]或识别帧序列的顺序[39]。
(3)基于免费语义标签的方法:这种类型的方法通过自动生成的语义标签来训练网络。 标签由传统的硬编码算法[50],[51]或游戏引擎[30]生成。 包括运动对象分割[81],[91],轮廓检测[30],[47],相对深度预测[92]等。
(4)基于跨模态的方法:这种类型的代理任务训练ConvNet,以验证输入数据的两个不同通道是否彼此相对应。 这种类型的方法包括视音频对应验证[25],[93],RGB流对应验证[24]和自我感应[94],[95]。
4.3 常用的后续任务,用于评估
为了评估通过自监督方法学习的图像或视频特征的质量,将自监督学习到的参数用作预训练模型,然后对诸如图像分类,语义分割,目标检测以及动作识别之类的后续任务进行微调。在这些高级视觉任务上的迁移学习性能证明了所学特征的泛化能力。如果自监督学习的ConvNets可以学习普适特征,那么对于需要从图像或视频中捕获相似特征的其他视觉任务,可以将预训练模型用作他们的良好初始化点。
通常使用图像分类,语义分割和目标检测作为后续任务,评估通过自监督学习的图像特征的泛化能力,而视频中的人为动作识别则用于评估自监督学习的视频特征的质量。以下是用于视觉特征评估的常用后续任务的简要介绍。
4.3.1语义分割
语义分割是为图像中的每个像素分配语义标签的任务,在许多应用(例如自动驾驶,人机交互和机器人技术)中非常重要。该任务最近取得了可喜的进展,并提出了各种网络(例如完全卷积网络(FCN)[4],DeepLab [5],PSPNet [6])和数据集(例如PASCAL VOC [96],CityScape [97] ,ADE20K [98])。
在所有这些方法中,FCN [4]是语义分割的里程碑式工作,因为它开启了应用全卷积网络(FCN)来解决此任务的时代。 FCN的体系结构如图11所示。诸如AlexNet,VGG,ResNet之类的2DConvNet被用作特征提取的基础网络,而全连接层被转置的卷积层代替以获得密集的预测。该网络采用逐像素注释进行端到端训练。
当使用语义分割作为后续任务来评估通过自监督学习方法学习的图像特征的质量时,将FCN初始化为使用代理任务训练的参数,并在语义分割数据集上进行微调,然后评估语义分割任务上的性能,并与其他自监督方法进行比较。
4.3.2 目标检测
目标检测是一种在图像中定位目标位置并识别目标类别的任务,对于许多计算机视觉应用(例如自动驾驶,机器人技术,场景文本检测等)也非常重要。 最近,已经提出了许多数据集(例如MSCOCO [99]和OpenImage [14])用于目标检测以及许多基于ConvNet的模型[1],[2],[3],[100],[101],[102] ,[103],[104]已经被提出并获得了很好的性能。
Fast-RCNN [2]是用于目标检测的两阶段网络。 Fast-RCNN的框架如图12所示。目标候选框是基于卷积神经网络生成的特征图生成的,然后将这些候选馈入几个全连接的层以生成目标的边界框和类别。
当使用目标检测作为后续任务来评估自监督图像特征的质量时,将在没有标签的大数据上使用代理任务进行训练的网络用作Fast-RCNN的预训练模型[2]。 然后对目标检测数据集进行微调,然后评估目标检测任务的性能,以证明自监督学习特征的泛化能力。
4.3.3 图像分类
图像分类是识别每个图像中对象类别的任务。 为此任务设计了许多网络,例如AlexNet [8],VGG [9],ResNet [11],GoogLeNet [10],DenseNet [12]等。通常,每个图像只有一个类别标签可用,尽管该图像可能包含不同类别的对象。
当选择图像分类作为评估从自监督学习方法中学到的图像特征质量的后续任务时,将自监督学习模型应用于每个图像以提取特征,然后将其用于训练分类器,例如(SVM)[105]。 将测试数据的分类性能与其他自监督模型进行比较,以评估学习特征的质量。
4.3.4 人体动作识别
人体动作识别目的是识别视频中人在做什么,给定预定义动作类别的列表。 通常,人类动作识别数据集中的视频在每个视频中仅包含一个动作[17],[63],[106]。 完成此任务需要时空特征。
动作识别任务通常用于评估通过自监督学习方法学习的视频特征的质量。 首先,网络在未标记视频数据中进行代理任务训练,然后对具有人工注释的动作识别数据集进行微调,以识别动作。 将动作识别任务的测试性能与其他自监督的学习方法进行比较,以评估学习特征的质量。
4.3.5 定性评估
除了对学习特征的定量评估之外,还有一些定性的可视化方法可以评估自监督学习特征的质量。为此通常使用三种方法:内核可视化,特征图可视化和图像检索可视化[28],[36],[41],[44]。
核可视化:定性地可视化使用代理任务学习的第一个卷积层的核,并比较监督模型中的核。比较了监督模型和自监督模型所学习的核的相似性,以表明自监督方法的有效性[28],[44]。
特征图可视化:特征图可视化以显示网络的关注。较大的激活表示神经网络更加关注图像中的相应区域。通常对特征图进行定性可视化,并与监督模型进行比较[28],[36]。
最近邻检索:通常,外观相似的图像在特征空间中通常更靠近。最近邻方法用于从自监督学习模型[40],[41],[43]所学习的特征空间中找到前K个最近的邻居。
5 数据集
本节总结了用于训练和评估自监督视觉特征学习方法的常用图像和视频数据集。 可以通过丢弃人工注释的标签来使用图像或视频来训练自监督学习方法,因此,为监督学习而收集的任何数据集都可以用于自监督视觉特征学习的训练。 通常通过对具有相对较小的数据集(通常带有准确标签)的高级视觉任务(例如视频动作识别,对象检测,语义分割等)进行微调来对学习到的特征质量进行评估。值得注意的是, 网络将这些人造数据集用于视觉特征学习,因为人造数据集的标签是由代理任务自动生成的,并且不涉及人工注释,因此在本文中将其视为自监督学习。 表1总结了常用的图像和视频数据集。
5.1 图像数据集
• ImageNet:ImageNet数据集[13]包含130万张图像,这些图像均匀地分为1,000个类别,并根据WordNet层次结构进行组织。每个图像仅分配有一个类别标签。 ImageNet是用于自监督图像特征学习的最广泛使用的数据集。
• Places:建议使用Places数据集[107]进行场景识别,其中包含超过250万个图像,涵盖205个以上的场景类别,每个类别超过5张图像。
• Places365:Places365是Places数据库的第二代产品,用于高级视觉理解任务,例如场景上下文,对象识别,动作和事件预测以及心智推理[108]。有超过1000万幅图像涵盖400多个类别,每个类别有5000至30,000幅训练图像。
• SUNCG:SUNCG数据集是用于室内场景的大型合成3D场景存储库,由手动创建的逼真的房间和家具布局组成45,000多个不同场景[109]。可以使用合成深度,对象级别的语义标签和体积基础事实。
• MNIST:MNIST是手写摘要的数据集,由70,000张图像组成,而60,000张图像属于训练集,其余的10,000张图像用于测试[110]。所有数字均已尺寸标准化,并在固定尺寸的图像中居中。
• SVHN:SVHN用于识别自然场景图像中的数字和数字,这些数字是从Google街景图像[111]的门牌号获得的。该数据集包含超过600,000张图像,并且所有数字的大小已调整为32×32像素的固定分辨率。
• CIFAR10:CIFAR10数据集是用于图像分类任务的微小图像的集合[112]。它包含60,000张大小为32×32的图像,涵盖10个不同的类别,包括飞机,汽车,鸟类,猫,鹿,狗,青蛙,马,船和卡车。数据集是平衡的,每个类别有6,000张图像。
• STL-10:STL-10数据集专门用于开发无监督的特征学习[113]。它由500张带标签的训练图像,800张测试图像和100,000张未标签的图像组成,涵盖10个类别,其中包括飞机,鸟类,汽车,猫,鹿,狗,马,猴子,船和卡车。
• PASCAL视觉对象类(VOC):VOC 2,012数据集[96]包含20种对象类别,包括车辆,家庭,动物和其他:飞机,自行车,轮船,公共汽车,汽车,摩托车,火车,瓶子,椅子,餐厅桌子,盆栽,沙发,电视/显示器,鸟,猫,牛,狗,马,绵羊和人。该数据集中的每个图像都有像素级分段注释,边界框注释和对象类注释。该数据集已被广泛用作对象检测,语义分割和分类任务的基准。 PASCAL VOC数据集分为三个子集:用于训练的1,464张图像,用于验证的1,449张图像和私人测试[96]。所有带有自监督的图像表示学习方法都通过这三个任务在此数据集上进行评估。
6 图像特征学习
在本节中,将对三组自监督的图像特征学习方法进行回顾,包括基于生成的方法,基于上下文的方法和基于免费语义标签的方法。表2是图像特征自监督学习方法的列表。由于基于跨模态的方法主要从视频中学习特征,并且大多数此类方法都可以用于图像和视频特征学习,因此基于跨模态的方法会在视频特征学习部分介绍。
6.1 基于生成的图像特征学习
基于生成的自我监督方法学习图像特征涉及到图像生成,包括使用GAN生成图像(生成假图像),超分辨(生成高分辨率图像),图像修复(预测缺失的图像区域)和图像着色(将灰度图像着色为彩色图像)。对于这些任务,伪训练标签P通常是图像本身,在训练过程中不需要人工注释的标签。
关于基于图像生成的方法的开创性工作是自编码器[131],它学习将图像压缩为低维向量,然后将其解压缩为与原始图像相似的图像。使用自编码器,网络可以将图像的维数缩小为包含原始图像主要信息的低维向量。当前基于图像生成的方法遵循类似的思想,但是具有不同的流程,通过图像生成过程学习视觉特征。
6.1.1 GAN
生成对抗网络(GAN)是由Goodfellow等人提出的一种深度生成模型 [83]。 GAN模型通常由两种网络组成:一个用于从隐向量生成图像的生成器和一个用于区分输入图像是否由生成器生成的鉴别器。通过两人博弈,鉴别器迫使生成器生成逼真的图像,而生成器迫使鉴别器提高其区分能力。在训练期间,两个网络相互竞争,并使彼此更强大。
从潜变量生成图像的通用架构如图13所示。训练生成器将从隐空间采样的任何隐向量映射为图像,同时强制判别器区分图像来自实际数据分布或生成的数据分布。因此,需要鉴别器从图像中捕获语义特征以完成任务。鉴别器的参数可以作为其他计算机视觉任务的预训练模型。
生成器G被训练来学习实际图像数据的分布,以生成与真实数据没有区别的数据p_z,而鉴别器D则被训练以区分真实数据p_data的分布和由生成器G生成的数据分布p_z。生成器G与鉴别符D之间的最小-最大博弈公式为:
其中,x是真实数据,G(z)是生成数据。
鉴别器D被训练来最大化真实数据x的概率, 最小化生成数据G(z)的概率。 生成器G被训练来生成与真实数据x相似的数据, 是的鉴别器的数据最大化。
从随机变量生成图像的大多数方法都不需要任何人工注释的标签。 但是,此类任务的主要目的是生成逼真的图像,而不是在后续任务上获得更好的性能。 通常,所生成图像的inception score用于评估所生成图像的质量[132],[133]。 而且,只有极少数方法评估了鉴别器在高级任务上学习到的特征的质量,并与其他方法进行了比较[120],[122],[123]。
对抗训练可以帮助网络捕获真实数据的真实分布并生成逼真的数据,它已广泛用于计算机视觉任务,例如图像生成[134],[135],视频生成[85],[86],超分辨率[15] ,图像翻译[136]和图像修复[19],[125]。 当没有人为注释的标签涉及时,该方法属于自监督学习。
6.1.2 图像修复
图像修复是根据图像的其余部分预测任意缺失区域的任务。图14显示了图像修复任务的定性图示。图14(a)是具有缺失区域的图像,而图14(c)是网络的预测。为了正确地预测缺失区域,需要网络学习常识,包括对象的颜色和结构。只有了解了这些知识,网络才能根据图像的其余部分推断出缺失的区域。
与自编码器类似,Pathak等人首次训练ConvNet基于图像的其余部分生成任意图像区域的内容[19]。他们的贡献有两个方面:使用ConvNet解决图像修复问题,以及使用对抗损失帮助网络生成逼真的假设。最近的大多数方法遵循类似的流程[125]。通常,有两种网络:生成器网络用于生成具有逐像素重建损失的缺失区域,而鉴别器网络利用对抗损失来区分输入图像是否真实。有了对抗损失,网络能够针对缺失的图像区域生成更清晰,更逼真的假设。两种网络都能够从图像中学习语义特征,并且可以转移到其他计算机视觉任务中。但是只有Pathak等人 [19]研究了从图像修复任务中学习生成器参数的迁移学习性能。
生成器网络是一个完全卷积的网络,它分为两部分:编码器和解码器。编码器的输入是需要修复的图像,上下文编码器学习图像的语义特征。上下文解码器将基于此功能预测丢失的区域。为了生成合理的假设,要求生成器了解图像的内容。鉴别器经过训练可以区分输入图像是否是生成器的输出。为了完成图像修复任务,两个网络都需要学习图像的语义特征。
6.1.3 图像超分辨
图像超分辨率(SR)是增强图像分辨率的任务。借助全卷积网络,可以从低分辨率图像中生成更精细逼真的高分辨率图像。 SRGAN是Ledig等人提出的用于单图像超分辨率的生成对抗网络 [15]。这种方法要利用感知损失,包括对抗损失和内容损失。有了感知损失,SRGAN能够从降采样的图像中恢复逼真的纹理,并显著提高感知质量。
SRGAN有两个网络:一个是生成器,用于增强输入的低分辨率图像的分辨率;另一个是鉴别器,用于区分输入图像是否是生成器的输出。生成器的损失函数是像素级L2损失加上内容损失,内容损失是预测的高分辨率图像和原始的高分辨率图像的特征的相似性,而鉴别器损失为二分类损失。仅仅最小化均方误差(MSE)的网络通常会导致高峰值信噪比,但缺少高频细节,而SRGAN能够恢复高分辨率图像的精细细节,因为对抗损失通过鉴别器网络使输出更符合自然图像流形。
用于图像超分辨率任务的网络能够学习图像的语义特征。与其他GAN相似,鉴别器网络的参数可以传输到其他后续任务。但是,还没有人测试过迁移学习到其他任务上的表现。增强后图像的质量比较主要用来评估网络性能。
6.1.4 图像着色
图像着色是给定灰度图像作为输入,预测图像的合理颜色。图15显示了图像着色任务的定性说明。要正确地着色每个像素,网络需要识别物体并将同一部分的像素分组在一起。因此,可以在完成此任务的过程中学习视觉特征。
近年来,已经提出了许多基于深度学习的着色方法[18],[137],[138]。一个简单的想法就是采用一个全卷积神经网络,该网络由一个用于特征提取的编码器和一个用于着色的解码器组成。可以使用预测颜色与其原始颜色之间的L2损失来优化网络。Zhang等人提出通过将着色任务定义为分类任务来处理不确定性,并使用类别重均衡来增加预测颜色的多样性[18]。 Zhang等人提出的图像着色框架。如图15所示。该方法经过大规模图像采集训练,显示了出色的结果,并且着色测试中有32%的试中都骗过了人类。
一些工作专门使用图像着色任务作为自监督图像表示学习的代理任务[18],[42],[82],[124]。图像着色训练完成后,将通过迁移学习对在着色过程中学习到的特征进行其他后续高级任务的专门评估。
6.2 基于上下文的图像特征学习
基于上下文的代理任务主要使用图像的上下文特征(包括上下文相似性,空间结构和时间结构)作为监督信号。 ConvNet通过解决基于图像上下文属性设计的代理任务的过程来学习特征。
6.2.1 上下文相似性学习
聚类是把相似数据分组到同一簇中的一种方法。由于其通过使用数据的属性对数据进行分组的强大功能,它被广泛用于机器学习,图像处理,计算机图形学等许多领域。许多经典的聚类算法已针对各种应用提出[139]。
在自监督的情况下,聚类方法主要用作对图像数据进行聚类。简单方法是基于手动设计的特征(例如HOG [140],SIFT [141]或Fisher Vector [49])对图像数据进行聚类。聚类后,获得几个簇,同一个簇中的图像在特征空间中的距离较小,而来自不同簇的图像在特征空间中的距离较大。特征空间中的距离越小,则RGB空间中的图像外观越相似。然后,可以使用群集分配作为伪标签来训练ConvNet对数据进行分类。为了完成这项任务,ConvNet需要学习类内不变性和类间差异性。因此,ConvNet能够学习图像的语义。
关于将聚类变体用作代理任务的现有方法遵循以下原则[34],[43],[44],[128],[129]。首先,将图像聚类为不同的簇,其中来自同一簇的图像具有较小的距离,而来自不同簇的图像具有较大的距离。然后训练一个ConvNet来识别群集分配[34],[44]或识别两个成像的图像是否来自同一群集[43]。 DeepCluster的流程是基于聚类的方法,如图16所示。DeepCluster用Kmeans迭代地对图像聚类,并使用后续分配作为监督来更新网络权重。这是当前自监督图像表示学习的最新技术。
6.2.1 空间上下文结构学习
图像包含丰富的空间上下文信息(例如图像中不同图像块的相对位置),可用于设计自监督学习的代理任务。代理任务可以是预测同一图像中的两个图像块的相对位置[41],或识别同一图像中打乱的一系列图像块的顺序[20],[88],[89]。完整图像的上下文也可以用作监督信号来设计代理任务,例如识别整个图像的旋转角度[36]。为了完成这些代理任务,ConvNets需要学习空间上下文信息,例如对象的形状以及对象不同部分的相对位置。
Doersch等人提出的方法是使用空间上下文线索进行自监督的视觉特征学习的一项开创性工作之一[41]。从每个图像中提取随机的一对图像块,然后训练一个ConvNet识别两个图像块的相对位置。为了解决这个难题,ConvNets需要识别图像中的对象并了解对象不同部分之间的关系。为了避免网络学习捷径解决方案,例如简单地使用图像块中的边缘来完成任务,在训练阶段将应用大量数据增强。
遵循这个想法,提出了更多的方法来解决更困难的空间难题来学习图像特征[20],[27],[87],[88],[89]。如图17所示,Noroozi等人提出了一项典型的工作。尝试用ConvNet解决图像拼图[20]。图17(a)是具有9个采样图像块的图像,图17(b)是打乱的图像块的示例,图17(c)显示了9个采样块的正确顺序。打乱后的图像块被馈送到网络,该网络经过训练,通过学习图像的空间上下文结构(例如对象颜色,结构和高级语义信息)来识别输入块的正确空间位置。
给定一个图像的9个图像补丁,存在362,880(9!)个可能的排列,并且由于任务的含糊性,网络不太可能识别出所有这些图像。通常,为了限制排列的数量,使用hamming距离在所有具有较大hamming距离的排列中仅选择排列的子集。仅使用选定的排列来训练ConvNet识别打乱图像块的排列[20],[35],[88],[89]。
设计难题任务的主要原理是找到一个合适的任务,该任务对于网络来说不太难也不太容易解决。如果太难了,则网络可能由于任务的含糊性而无法收敛,或者如果太容易了,则可以轻松地学习捷径解决方案。因此,通常采用减少搜索空间来减少任务的难度。
6.3 基于免费语义标签的图像特征学习
免费语义标签是指带有语义含义的标签,这些语义含义是在不涉及任何人类注释的情况下获得的。 通常,免费语义标签(例如分割蒙版,深度图像,光学流和表面法线图像)可以由游戏引擎渲染或由硬编码方法生成。 由于这些语义标签是自动生成的,因此将使用合成数据集或将它们与未标记的大型图像或视频数据集结合使用的方法被视为自监督学习方法。
6.3.1 游戏引擎生成标签
在给定各种物体模型和环境布局的前提下,游戏引擎能够渲染逼真的图像并提供准确的像素级标签。 由于游戏引擎可以以可忽略的成本生成大规模数据集,因此各种游戏引擎(如Airsim [142]和Carla [143])已被用于生成具有高级语义标签的大规模合成数据集,这些语义标签包括深度,轮廓, 表面法线,分割蒙版和光流,用于训练深层网络。 图18显示了RGB图像及其生成的准确标签的示例。
游戏引擎可以以非常低的成本生成带有精确像素级标签的逼真的图像。但是,由于合成图像和真实世界图像之间的领域差距,单纯在合成图像上训练的ConvNet无法直接应用于真实世界图像。为了利用合成数据集进行自监督的特征学习,需要明确缩小领域差距。通过这种方式,使用合成数据集的语义标签训练的ConvNet可以有效地应用于现实世界图像。
为了克服这个问题,Ren和Lee提出了一种基于对抗学习的无监督特征空间域自适应方法[30]。如图19所示,网络可预测合成图像的表面法线,深度和实例轮廓,并使用鉴别器网络D来最小化真实数据与合成数据之间特征空间域的差异。在对抗训练和合成图像的准确语义标签的帮助下,该网络能够捕获现实世界图像的视觉特征。
与其他代理任务隐式地迫使ConvNets学习语义特征相比,这种类型的方法使用精确的语义标签进行训练,这些语义标签明确地迫使ConvNets学习与图像中的对象高度相关的特征。
6.3.2 硬编码生成标签
应用硬代码程序是自动生成语义标签(如显著性,前景蒙版,轮廓,图像和视频深度)的另一种方法。通过这些方法,具有生成的语义标签的超大规模数据集可用于自监督的特征学习。这种类型的方法通常包括两个步骤:(1)通过在图像或视频上使用硬编码程序来获取标签来生成标签,(2)使用生成的标签训练ConvNets。
各种硬编码程序已应用于生成自监督学习标签,包括前景对象分割[81],边缘检测[47]和相对深度预测[92]的方法。 Pathak等提出通过训练一个ConvNet来分割视频中每一帧的前景对象,而标签是视频中运动对象的遮罩,从而学习特征[81]。 Li等提出通过训练ConvNet进行边缘预测来学习特征,而标签是从视频流场获得的运动边缘[47]。 Jing等提出通过训练ConvNet预测相对场景深度,同时从光流中生成标签来学习特征[92]。
无论使用哪种标签来训练ConvNet,这种方法的总体思路都是从硬编码检测器中提取知识。硬代码检测器可以是边缘检测器,显著性检测器,相关检测器等。只要在检测器的设计中不涉及人为注释,那么这些检测器就可以用于生成用于自监督训练的标签。
与其他自监督学习方法相比,这些代理任务中的监督信号是语义标签,可以直接驱动ConvNet学习语义特征。然而,一个缺点是硬编码检测器生成的语义标签通常非常嘈杂,需要专门处理。
7 视频特征学习
8 性能比较
本节比较了在公共数据集上图像和视频功能自监督学习方法的性能。 对于图像特征自监督学习,比较了后续任务的性能,包括图像分类,语义分割和目标检测。 对于视频特征自监督学习,报告了后续任务的性能,即视频中的人类动作识别。
8.1 图像特征学习的性能
如第4.3节中所述,通过在后续任务(如语义分割,目标检测和图像分类)上对它们进行微调,来评估自监督学习模型所学习的特征的质量。本节总结了现有图像特征自监督学习方法的性能。
表4列出了ImageNet [13]和Places [107]数据集上的图像分类性能。在自监督的代理任务训练过程中,大多数方法都是在AlexNet作为基于网络的ImageNet数据集上进行训练的,而无需使用类别标签。在完成代理任务自监督训练之后,在ImageNet和Places数据集的训练集中,在ConvNet的不同冻结卷积层之上训练线性分类器。这两个数据集上的分类性能用于证明学习到的特征的质量。
如表4所示,自监督模型的整体性能低于使用ImageNet标签或使用Places标签训练的监督模型。在所有自监督方法中,DeepCluster [44]在两个数据集上均获得了最佳性能。根据表中的性能可以得出三个结论:(1)自监督的代理任务训练总是使不同层次的特征受益。自监督学习方法的性能总是比从头开始训练的模型的性能更好。 (2)所有自监督方法在conv3和conv4层中的功能都表现良好,而在conv1,conv2和conv5层中的功能表现较差。这可能是因为浅层捕获了一般的低级功能,而深层捕获了与代理任务相关的特征。 (3)当用于代理任务训练的数据集与后续任务的数据集之间存在域差距时,自监督学习方法能够达到与使用ImageNet标签训练的模型相当的性能。
除图像分类外,目标检测和语义分割也用作后续任务,以评估通过自监督学习所学习的特征的质量。通常,ImageNet用于通过丢弃类别标签进行自监督的代理任务预训练,而AlexNet被用作基础网络并针对这三个任务进行微调。表5列出了PASCAL VOC数据集上的图像分类,目标检测和语义分割任务的性能。分类和检测的性能是通过在PASCAL VOC 2007数据集的测试集上测试该模型而获得的,而语义分割的性能是通过在PASCAL VOC 2012数据集的验证集上进行测试而获得的。
如表5所示,在分割和检测数据集上的自监督模型的性能与在预训练期间使用ImageNet标签训练的监督方法的性能非常接近。具体而言,在目标检测和语义分割任务上的性能差异的幅度小于3%,这表明通过自监督学习获得的特征具有良好的泛化能力。在所有自监督的学习方法中,深度聚类[44]在所有任务上均获得最佳性能。
8.2 视频特征学习的性能
8.3 总结
基于试验结果,可以得出关于自监督学习方法的性能和可复现性的结论。
性能:对于图像特征自监督学习,由于精心设计的代理任务,自监督方法的性能在某些后续任务上可与监督方法相媲美,尤其是在目标检测和语义分割任务上。在目标检测和语义分割任务上的性能差异的幅度小于3%,这表明通过自监督学习获得的特征具有良好的泛化能力。但是,视频特征自监督学习方法的性能仍远低于后续任务监督模型的性能。基于3DConvNet的方法在UCF101数据集上的最佳性能比监督模型低18%以上[70]。 3DCovnNet自监督学习方法的性能较差,可能是因为3DConvNet通常具有更多的参数,由于视频的时间维度,导致容易过拟合和视频特征学习的复杂性。
复现性:正如我们所观察到的,对于图像特征自监督学习方法,大多数网络都使用AlexNet作为基础网络对ImageNet数据集进行预训练,然后对相同的后续任务进行评估以进行质量评估。此外,大多数方法的代码都已发布,这对于复现结果很有帮助。但是,对于视频自监督学习,使用了各种数据集和网络进行自监督预训练,因此,直接比较不同方法是不公平的。此外,一些方法使用UCF101作为自监督的预训练数据集,这是一个相对较小的视频数据集。在这种数据集大小的情况下,可能无法完全发现功能更强大的模型(例如3DCovnNet)的功能,并且可能会遭受过拟合的困扰。因此,应使用较大的视频特征自监督预训练数据集。
评估指标:另一个事实是,需要更多的评估指标来评估学习到的不同层次特征的质量。当前的解决方案是根据后续任务上的性能来评估功能的质量。但是,这种评估指标无法洞悉网络通过自监督的预训练学到的知识。应该使用更多的评估指标,例如网络解剖[78]来分析自监督学习特征的可解释性。
9 未来方向
自监督学习方法已经取得了巨大的成功,并在某些计算机视觉任务上获得了接近监督模型的良好性能。这里讨论了自监督学习的一些未来方向。
从合成数据中学习特征:自监督学习的一种上升趋势是用合成数据来训练网络,而合成数据可以很容易地被人类很少参与的游戏引擎渲染。借助游戏引擎,可以轻松生成数百万个具有精确像素级注释的合成图像和视频。通过准确而详细的注释,可以设计各种代理任务以从合成数据中学习特征。需要解决的一个问题是如何弥补合成数据和真实数据之间的领域鸿沟。只有少数工作探索了使用GAN弥补领域差距从合成数据中进行自监督的学习[30],[166]。利用更多可用的大规模合成数据,将提出更多的自监督学习方法。
从网络数据中学习:另一个上升的趋势是根据网络收集的数据[22],[167],[168],基于它们现有的关联标签来训练模型。借助搜索引擎,可以从Flickr和YouTube等网站下载数百万个图像和视频,而费用却可以忽略不计。除了原始数据外,标题,关键字和评论也可以作为数据的一部分,用作训练网络的额外信息。通过精心策划的查询,由可靠的搜索引擎检索到的Web数据可以相对干净。利用大规模Web数据及其关联的元数据,可以提高自监督方法的性能。关于从网络数据学习的一个开放问题是如何处理网络数据及其关联的元数据中的噪声。
从视频中学习时空特征:自监督图像特征学习已得到很好的研究,并且在某些后续任务(如语义分割和目标检测)上,监督模型和自监督模型的性能差别很小。但是,使用3DConvNet进行自监督的视频时空特征学习尚未得到很好的解决。需要更有效的代理任务,这些任务专门旨在从视频中学习时空特征。
使用来自不同传感器的数据进行学习:大多数现有的自监督的视觉特征学习方法仅专注于图像或视频。但是,如果可以使用来自不同传感器的其他类型的数据,则可以将不同类型数据之间的约束用来训练网络以学习特征[155]。无人驾驶汽车通常配备各种传感器,包括RGB摄像头,灰度摄像头,3D激光扫描仪以及高精度GPS测量和IMU加速度。通过驾驶可以很容易地获得非常大规模的数据集,并且不同设备捕获的数据的对应关系可以用作自监督特征学习的监督信号。
通过多个代理任务学习:大多数现有的自监督视觉特征学习方法都是通过训练ConvNet解决一项代理任务来学习功能的。不同的代理任务提供了不同的监督信号,可以帮助网络学习更多具有代表性的特征。只有很少的工作探索了用于自监督特征学习的多个代理任务学习[30],[32]。对于多个代理任务自监督的特征学习可以有更多的研究。
10 结论
深度卷积神经网络的自监督图像特征学习获得了巨大的成功,在一些后续任务上,自监督方法的性能与监督方法之间的差距很小。 本文从各个角度全面回顾了最近基于深度卷积神经网络的自监督图像和视频特征学习方法,包括通用网络体系结构,代理任务,算法,数据集,性能比较,讨论和未来方向等。 表格形式的方法,数据集和性能的比较摘要清楚地表明了它们的特性,这将有益于计算机视觉界的研究人员。