胡杰,徐博远,熊宗权,昌敏杰,郭迪,谢礼浩
(1.武汉理工大学,现代汽车零部件技术湖北省重点实验室,武汉430070;2.武汉理工大学,汽车零部件技术湖北省协同创新中心,武汉430070;3.武汉理工大学,湖北省新能源与智能网联车工程技术研究中心,武汉430070)
目标检测是计算机视觉中一项基本且具有挑战性的任务,可应用在许多领域,例如自动驾驶、机器人视觉和人机交互。深度卷积神经网络的发展促进了目标检测算法性能的提升。YOLO、Faster-RCNN等基于深度学习的目标检测算法通常假设训练数据和测试数据来自相同分布,这些检测模型依赖于大量带注释的训练样本,而在实际中,标注大量数据所耗费的人力成本较高。针对深度学习目标检测算法对标注数据的依赖问题,无监督域自适应目标检测作为解决这个问题的有效方法,最近越来越受到学术界、工业界的关注。
域自适应(domain adaptation)是转导迁移学习的一个子问题。迁移学习是指两个不同领域的知识迁移过程,利用源领域中学习到的知识来帮助目标领域上的学习任务。迁移学习根据迁移方式不同可以分为归纳迁移学习和转导迁移学习。转导迁移学习是一种从样本到样本的迁移,直接利用源领域和目标领域的样本进行迁移学习。在域自适应问题中,一般假设源领域和目标领域有相同的样本空间,但是数据分布不同。目前大多数域自适应问题聚焦于由协变量偏移造成的数据分布不同,即源领域和目标领域的输入边际分布不同,但后验分布也即学习任务相同。
目前,一些无监督域自适应(unsupervised domain adaptation,UDA)方法被用于解决数据集偏差问题,这些方法中大部分是基于特征或者图像分布的域不变对齐。最近的方法有使用比如对抗学习来对齐源域和目标域分布。这些方法根据已有的理论结果,指出可通过限制域之间的差异大小来部分地限制泛化误差。因此,传统观点认为必须完全对齐域之间分布。但是在目标检测领域,由于目标检测中各域的目标类别、位置、大小和数量等不尽相同,完全对齐域的分布可能会损害检测器检测目标的性能,产生域的负迁移现象。
在之前的一些方法中,例如,DA-FasterRCNN,它在图像级上和实例级上分别使用域分类器进行域之间的分布对齐,其中图像级上的域对齐在全局图像尺度上进行对齐。虽然它可能适用于仅影响对象外观或者纹理的域偏移(比如天气上的偏移),但在目标检测领域,在全局图像尺度上对目标数量、类别、位置等域偏移强制进行域对齐可能会损害检测器检测目标信息的性能。比如源域中,图像可能包含的是单个较大对象,位于图像某个位置,而在目标域中,图像可能包含多个较小对象,分布在图像各个位置。在这种情况下进行整个图像上的域对齐会影响检测器的性能。但同时,对对象外观或者纹理的域偏移影响较小,在大多数情况下会提高检测器的检测性能。这就是域可辨性与不变性之间的矛盾所在。文献[20]中提出了区域级域自适应框架,为了解决“看哪里”和“如何对齐”的问题,设计了两个关键组件,区域挖掘和可调整的区域级域适应。文献[21]中提出了一种自我培训框架,该框架在相互学习过程中利用对抗学习和弱-强数据增强来解决领域转移问题。文献[22]中证明经过对抗训练的目标检测器在显著偏离源域的目标域中可实现更好的检测性能,同时提出了一种结合对抗性训练和特征对齐的方法,以确保源域和目标域的更好对齐。上述方法都没有聚焦于域可辨性和不变性之间的矛盾问题。而文献[23]中提出将类别信息引入实例级域分类器进行域对齐,其对每个实例特征在实例级各个域分类器中损失函数的权重取为预测器预测实例特征在对应各个类别上的概率值。但预测器对实例特征非最终预测类别的其他类别的预测概率没有进行直接约束,这种权重取值方法可能导致最后并没有缓解域可辨性与不变性之间的矛盾。
在DA-FasterRCNN中,在全局特征上仅仅只对网络某一层所提取的特征进行域对齐,而并没有在多个尺度上对特征进行域对齐。这样可能会错过其他中间层包含的丰富域信息,例如不同尺度的域位移。
为解决上述多尺度问题与域可辨性和不变性之间的矛盾问题,本文中提出了一种多尺度掩码分类域自适应网络(multi-scale mask and clas-sification network,MMCN)。该网络在保持域的可辨性的前提下,充分利用多层次的信息,并使网络尽可能地提取出域不变信息,创新点如下。
(1)提出多尺度模块,在多个网络层上进行全局图像尺度上的域对齐,旨在对不同尺度的目标进行域分布对齐,减少域偏移。
(2)提出区域提议掩码模块,在中间特征层上插入掩码来保持域的可辨性,之后再对加入掩码后的中间特征层进行域对齐,即可在保持域的可辨性前提下,使网络提取出域不变信息,从而缓解完全对齐域分布对检测器性能的损害。
(3)提出补充信息模块,在中间特征层经过区域提议掩码模块后,对中间特征层进行卷积操作,提取出全局图像上的域不变信息(例如图像风格、光照、纹理),补充给实例特征。使实例级上的域分类器聚焦于实例间的域偏移。
(4)提出实例分类域对齐模块,对每个类别的实例单独进行域对齐,并将非此类别实例特征以一定的固定权值作为补充样本进行补充。旨在缓解域的可辨性和不变性之间的矛盾。
假设一个深度学习的样本空间为×,其中为输入空间,为输出空间也即标签空间。其中是一个有限集即标签有限,∈为输入样本,为标签空间中的一些标签。假设在×中存在(,)和(,)两种分布,其中(,)为源分布,(,)为目标分布。定义域标签为,源域标签为0,目标域标签为1,下标表示第个输入样本,则当d=0时x∈(),当d=1时x∈()。则深度学习模型目标是对于目标域样本,能够预测出相应标签。
定义一个深度前馈网络,此网络对输入预测其类别标签∈和域标签={0,1},网络可分为3部分即特征提取器、标签预测器和域分类器。特征提取器通过映射函数G将输入映射为即=G(;θ),其中θ为映射函数G的参数。标签预测器通过映射函数G将特征映射为标签即=G(;θ),其中θ为映射函数G的参数。域分类器通过映射函数G将特征映射为域标签即=G(;θ),其中θ为映射函数G的参数。
在网络训练期间,需学习参数θ使得域分类器损失最大化,即使网络学习到源域和目标域之间的域不变特征;同时需要学习参数θ使得域分类器的损失最小化,保证域分类器的分类性能,这与前者形成了对抗;并学习参数θ和θ使得标签预测器损失最小化。因此最终损失函数如下:
式中:为总损失函数;L为标签预测器损失函数;L为域分类器损失函数;为平衡预测器损失和域分类器损失的超参数。
网络的整体结构如图1所示,本文以Faster RCNN为基础框架,所提出的网络包含了多尺度、区域提议掩码、补充信息和实例分类域对齐4个模块。多尺度模块在主干网络中多个网络层进行域对抗训练,充分利用中间层的域信息,区域提议掩码模块加入区域提议网络(region proposal network,RPN)提取出的区域提议作为掩码,以保持域的可辨性,在此前提下做域自适应。补充信息模块将进行域自适应的各个中间层进行前向传播与实例特征进行结合,使实例级的域分类器聚焦于分辨实例之间的域迁移。实例分类域对齐模块将Faster R-CNN的类别预测信息引入实例域分类器中,对每个类别分别进行域自适应以缓解域的可辨性和不变性之间的矛盾。
图1 MMCN算法框架图
无监督域自适应目标检测一般定义源域为,目标域为。在源域中,目标类别和目标位置信息已知,而在目标域中,标注信息是未知的。={(,y)},其中∈R代指图像,y则代指图像对应的边界框信息和类别信息,为图像索引。每个标签y=(,),为类别标签,c指代类别。∈R为一个4维的边界框信息。对于目标域仅有图像即={},其中t指代目标域。
首先在主干网络的多个中间层构建一个分层的域分类器库,定义以为目标检测器的主干网络,本文 中 采 用 梯 度 反 转 层(gradient reversal layer,GRL)来进行对抗训练,梯度反转层位于主干网络和域分类器之间。在神经网络进行反向传播时,梯度反转层会将域分类器通往主干网络的梯度反转。将第个中间层的特征图B∈R送入梯度反转层,然后送入域分类器中进行源域和目标域的分类。域分类器采用全卷积结构,网络层全为卷积层。源域的标签为0,目标域的标签为1。
与DA-FasterRCNN只在主干网络的最后一层进行全局图像尺度上的域自适应不同,本文中提出在主干网络的多个中间层进行域对抗训练,在多个尺度上减少实例的域偏移,并采用VGG-16的主干网络,见图2,使用第6、9、13个卷积层后的特征图作为进行域对抗训练的中间层。
图2 多尺度模块
另外为了缓解域的不变性与可辨性之间的矛盾,在RPN提取出区域提议之后,在做域自适应的中间特征图上加入区域提议掩码,如图3所示,每个掩码与对应的特征图大小一致,区域提议在中间特征图上对应的映射区域值为0,中间特征图上其他区域值为1。得到区域提议掩码之后,将掩码与对应的中间特征图进行点乘,即保持了域的可辨性(目标信息)。然后再对加入掩码后的中间特征图进行域对抗训练,提取出域不变信息。
图3 区域提议掩码模块
为能在多个尺度上对实例进行域对抗训练,提 取出实例的域不变信息。MMCN网格不在所有中间特征层上都加入区域提议掩码。本文中,在第2个中间层上加入掩码,具体实验细节见第2部分实验与分析。
在中间特征层上加入区域提议掩码之后,域自适应中间特征层整体更偏向于提取出全局图像上的域不变特征(例如图像风格、光照、纹理),因此,如图4所示,将这些特征进行前向传播,然后与全连接层之后的实例特征进行拼接操作,让实例级的域分类器能够更专注于实例之间的域偏移(大小、遮挡等)。
图4 补充信息模块
在主干网络提取出全局图像上的域不变特征后,在实例级上对实例特征进行域对抗训练,减小实例间的域偏移(大小、遮挡等)。在目标检测中,目标通常有多个类别数。在进行实例级上的域对齐时,以往的模型是在对RPN提取出的所有区域提议在一个实例域分类器上进行域对抗训练,也即将所有类别的实例特征在一个实例域分类器上进行域自适应。这样将不同类别的实例特征强制进行域对齐,不能保证目标检测中域的可辨性,产生域负迁移现象,损害目标检测器性能。
因此,本文中提出实例分类域对齐模块,如图5所示,在实例级上训练多个域分类器,每个域分类器单独对一个类别的实例特征进行域对抗训练。在RCNN预测出每个实例特征的类别信息后,利用类别信息,将实例特征分类并送入相应类别的域分类器中进行训练,同时为了避免实例级域分类器的训练样本不足,将同一图像的所有实例特征除了送入某一实例级域分类器的实例特征之外的实例特征以一定权重作为负样本补充给域分类器,具体实验见下一节。这样在保证域可辨性的前提下,使得网络尽可能学习到域不变特征,缓解了两者之间的矛盾。
图5 实例分类域对齐模块
因此这里训练了与类别相关的域分类器,针对每个类别单独进行域对抗训练,以实例特征的类别预测信息作为辅助信息,尽可能地保证了域的可辨性,减少了域的负迁移现象。同时为了使域对抗训练有充足的样本,将非此类实例特征作为负样本进行补充,并对负样本进行适当的权值分配,使域分类器能提取出有效的域不变信息。
MMCN网络各域分类器损失函数的采用如下所述。
图2中特征图1处的域分类器损失函数遵循文献[26],采用均方误差损失。这个损失函数稳定了域分类器的训练,且能够促进对齐低级特征:
式中:(,)为区域提议掩码上点的坐标,忽略了深度;A为RPN网络在第张图像上提取出的区域提议在第个中间层上的映射的集合。
图2中特征图2处的域分类器损失函数采用交叉熵损失函数,交叉熵损失衡量一个分类模型的性能,该模型的输出是一个概率值,它随着预测概率偏离实际标签而增加,公式如下:
图2中特征图3处的域分类器损失函数采用Focal Loss。Focal Loss使分类器在训练过程中能比简单样本更聚焦于分类困难样本,以提高分类器性能,其公式如下:
式中为Focal Loss中聚焦参数,以控制困难样本在损失中所占的比例。
本文所提网络的基础框架是Faster R-CNN。目前大多数域自适应目标检测工作用的都是这个检测框架。整个目标检测的损失可总结为
式中:为RPN网络的损失;为Faster R-CNN中分类损失;为Faster R-CNN中边界框回归损失。
式中:p为锚框预测为真实标签的概率;t为预测锚框的边界框回归参数;为锚框对应真实目标的边界框回归参数。
式中:为类别预测概率;为真实类别;p为类别的预测概率;t为对应边界框回归器预测的对应类别的回归参数;为对应真实目标的边界框回归参数。
整个网络的损失函数为
式中:为平衡Faster R-CNN损失和域分类器损失的超参数;为区域提议网络和Faster R-CNN预测器模块。整个网络可以用标准的随机梯度下降(stochastic gradient descent,SGD)来进行端到端的训练,网络的域自适应的对抗训练部分则通过GRL层来实现,GRL层可以在反向传播过程中自动反转梯度,而在推理过程中,域自适应组件可以移除,只采用原始的目标检测部分即Faster R-CNN框架进行检测即可。
为便于比较,根据最近对域自适应目标检测的研究,在良好天气到雾天情况的域自适应场景下对本文提出的方法进行评估。训练数据在良好天气下采集,测试数据为合成的雾天数据。
在本文所有的实验中,参照文献[2],输入图片的宽度调整为600像素。采用SGD优化器训练模型,初始学习率设置为0.001,每经过50 000次迭代之后就将学习率降低10倍。本文中设置=2.0,=5.0。epoch=25,batchsize=1。参照文献[26],所有消融实验和对照实验均在相同实验条件下完成。
在目标检测领域中,以常用各类别平均精度的平均值(mean average precision,mAP)作为算法性能的评价指标,计算公式如下:
式中:为各类别单独的平均精度(average precision);为检测的类别数量。在某一类别下,根据模型检测结果和数据集标注计算出各个点在以类别精度(Presion)为纵坐标,类别召回率(Recall)为横坐标所形成的坐标系中的坐标,并根据坐标绘制出PR曲线。再对PR曲线进行平滑处理,即存在召回率为的点,其精度值为。取所有召回率大于的点中精度最大值为,并将值换成。PR曲线经过平滑处理后,通过计算PR曲线下的面积得到这一类别AP。的计算公式如下:
式中:为图片中各个类别的正确检测(true positive)数量;为误检(false positive)数量;为漏检(false negative)数量。
本文从Cityscapes到FoggyCityscapes来验证所提出模型的有效性。Cityscapes作为本文的源域数据集,其数据符合良好天气采集。该大型数据集包含来自50个不同城市场景中记录的多种立体视频序列,有20 000个弱注释帧和5 000帧高质量像素级注释。在本文实验中,采用数据集中具有以下类别标注的实例作为模型训练和评估的样本:人、骑手、汽车、货车、公共汽车、火车、摩托车和自行车。
对于目标域,本文采用FoggyCityscapes。它是一个合成的雾天场景数据集,模拟了真实场景中的雾。图像使用来自Cityscapes的图像和深度图来进行渲染。FoggyCityscapes的语义标注和数据拆分继承自Cityscapes,适合对由天气条件引起的主要变化进行研究。两者都共有8个类别的3 475张图片,其中2 975张图片用于训练,剩下的500张图片用来验证。
在本实验中,源域和目标域分别为Cityscapes和FoggyCityscapes的训练集,然后将FoggyCityscaps的验证集作为测试集来评估模型效果,数据集图片如图6所示。表1展示了本文和其他一些方法结果的对比,本文所提出方法的mAP最高,达40.8%,比Faster RCNN模型 高20.5个百分点,比DA-FasterRCNN高13.2个百分点,比Strong-Weak等其他域自适应目标检测结果也较优,证明了算法改进的有效性。
表1 Cityscapes→FoggyCityscapes域自适应目标检测结果
图6 Cityscapes与FoggyCityscapes数据集图片
为验证MMCN网络各个模块的有效性,对各个模块在Cityscapes到FoggyCityscapes数据集上进行消融实验,实验相关数据见表2~表4。
表2 非此类别负样本损失所占权重消融实验
当不采用任何模块时,网络只在主干网络输出的特征层上和实例特征上进行域对抗训练,网络在数据集上测试结果mAP为31.7%。在此基础上加入实例分类域对齐模块后,mAP为34.7%,提高了3个百分点。而换上多尺度模块后,mAP为36.5%,提高了4.8个百分点。由于区域提议模块对中间特征层加入区域提议掩码后,再从中间特征层提取出全局图像上的域不变特征作为补充信息对实例特征进行补充,使实例级域分类器更聚焦于实例之间的域偏移,所以将区域提议模块和补充信息模块作为一个模块进行消融实验。根据表4区域提议掩码位置消融实验可知,在所有层上做区域提议掩码时效果较差,因此选择在多尺度模块的基础上加入区域提议掩码模块和补充信息模块来验证其有效性,测试结果如表5所示。由表可见,在多尺度模块的基础上加入区域提议掩码模块和补充信息模块后mAP为39.9%,相较于只加多尺度模块,提高了3.4个百分点。而在多尺度模块的基础上加入实例分类域对齐模块后mAP为39.3%,比只加多尺度模块,提高了2.8个百分点。由上述分析可以看出各个模块的贡献度。
表4 区域提议掩码位置消融实验
表5 各模块消融实验
对于实例级上的每个域分类器,非此类别的负样本的损失所占权重的取值会对实验结果产生影响。表2展示了不同权值对模型的影响,非此类别的负样本的损失所占权重以0.1为间隔,从0.1升到0.9,同时网络结构不采用区域提议掩码模块和补充信息模块。从表2和图7中可以看出,当权重取0.5时,网络检测精度最高。根据文献[27]中所提出的检测分类器的训练效果与训练损失有很大的关系,对于包含信息量少的负样本不应支配训练损失,否则无法得出一个对模型训练提供正确指导的损失。因此所取权重也不可过大,使得负样本来占据损失的主要部分。最终本实验其他类别的实例特征权值均采用0.5。
图7 非此类别负样本损失所占权重实验结果
在实例分类域对齐模块中,文献[23]中对每个实例特征在实例级各个域分类器中损失函数的权重取为预测器预测实例特征在对应各个类别上的概率值。其实例级域分类器损失函数采用交叉熵损失函数(见式(8))。根据文献[32],交叉熵主要利用真实类别的信息来最大化似然性,而忽略了来自除真实类别外其他类别的信息。对其他类别并没有直接约束。因此在训练过程中,预测器对实例特征预测类别概率,除真实类别概率外的其他类别概率可能较高甚至接近真实类别概率。那么在文献[23]中某一类别的实例域分类器中属于这一类别实例特征所占权重与不属于这一类别实例特征所占权重可能相近,其结果并未缓解域可辨性与不变性之间的矛盾。因此本文对非此类别实例特征权重采取一定固定值,既能作为补充样本对实例级域分类器进行补充,又不使得补充样本占据损失主导地位,而未能缓解域可辨性与不变性之间的矛盾。在相同实验条件下将表2中权值改为预测器的类别预测概率后进行对比实验,实验结果如表6所示。表明本文的权重取值方法更优。
表6 对比实验
在多尺度模块中,主干网络选择的是VGG-16网络。第13层为主干网络的最后一层即输出层,在此层上做全局尺度上的域对齐。对于前两个中间层,为使所选取的中间层具有一定的语义信息,本文分别在VGG-16网络的第2个到第3个maxpool之间即网络的第5、6、7层和第3个到第4个maxpool之间即网络的第8、9、10层中选择前两个中间层。实验结果如表3所示,表明网络的第6、9、13层做域对齐时网络在数据集上测试精度最高。
表3 中间层位置消融实验
在区域提议掩码模块中,所取掩码在主干网络上的位置会对实验结果产生影响。表4展示了在不同位置加上掩码后模型的测试结果。此时模型不采用实例分类域对齐模块。由表4可见,仅仅在实例级上对目标进行域对抗训练还不够,需要同时在主干网络的某一合适的尺度也对目标特征进行域自适应,以更好地提取出目标物的域不变信息。另外,在第1、2、3个中间层上同时加上掩码时效果最差。在第2个中间层上加上掩码时的mAP最高。
图8展示了网络检测结果对于式(26)中的参数和式(12)中的的敏感性。为检测器损失和域分类器损失之间的平衡超参数,为在Focal Loss中困难样本所占损失的权重。在Cityscapes到FoggyCityscapes的跨域检测场景中对这两个超参数进行实验。结果表明为2.0、为5.0时,算法的表现最好,mAP达40.8%。
图8 模型对参数λ和γ值的灵敏度
图9显示了检测算法在FoggyCityscapes的验证集上的一些图片的可视化测试效果,对比了Faster R-CNN、DA-FasterRCNN和本文的模型MMCN 3种检测算法。由图可见,与传统的目标检测算法Faster R-CNN和域自适应目标检测算法DA-FasterRCNN相比,本文的模型MMCN能够在雾天的场景下检测出更多小目标和模糊不清的目标,并且对边界框位置预测得更加准确。显示了本文算法在跨域目标检测的有效性。
图9 Fast er R-CNN、DA-FasterRCNN、MMCN在FoggyCityscapes上的检测示例
本文中提出多尺度模块,充分利用多尺度的信息,经过实验后模型在第6、9、13层上在FoggyCityscape数据集上表现最优;在区域提议掩码模块中,MMCN以区域提议在特征图上的映射作为掩码,保证了域的可辨性。并在此基础上对经过区域提议掩码模块处理后的特征图进行域对抗训练,使网络能够提取出域不变信息,缓解了域可辨性与不变性之间的矛盾。在对特征图经过区域提议掩码模块处理时,本文将区域提议在原图上对应的位置根据降采样映射在相应的中间特征层上,但实际上此时特征图上映射的区域提议对应的感受野可能并不等同于原图上区域提议的所在区域,如何精准地将原图区域提议映射在中间特征层上是有待后续研究的问题;在补充信息模块中,中间特征层经过区域提议掩码模块后,整体更倾向于提取出全局图像上的域不变特征(例如图像风格、光照、纹理),将这些特征与实例特征进行拼接,能使实例级域分类器聚焦于实例之间域偏移;在实例分类域对齐模块中,MMCN在实例级上为每一个类别单独训练一个域分类器,增强域的可辨性,并进行域对抗训练使网络能够提取出域的不变信息,缓解了域可辨性与不变性之间的矛盾。
在模型的速度上,MMCN是基于域自适应所提出的网络。在网络中增加的域自适应组件为可拆卸组件,其只在网络训练时起作用,能够为检测网络训练出更好的网络参数。而在检测网络进行推理时可将域自适应组件移除,保留原始的检测网络例如Faster R-CNN。因此MMCN能够在不增加网络推理成本即不影响检测速度的前提下,提高网络的泛化能力。
本文中提出了一种新的无监督域自适应目标检测网络MMCN,用来解决目标检测对大型标注数据集的依赖问题,其在多个中间特征层上进行域对抗训练,充分利用多尺度的信息。并加入区域提议掩码模块和实例域分类对齐模块,增强域的可辨性,使网络尽可能地提取出域的不变信息,缓解域自适应在目标检测领域中域的不变性和可辨性之间的矛盾。同时加入补充信息模块,使得实例级域分类器聚焦于实例之间的域偏移,提高了网络的泛化能力。MMCN网络的域自适应方法的有效性在Cityscapes到FoggyCityscapes的场景变换中得到了验证,精度优于基线Faster R-CNN和DA-FasterRCNN等域自适应网络,从而证明了其跨域目标检测的有效性。在区域提议模块中,如何精准地将原图区域提议映射在中间特征层上是有待后续研究的问题。