APP下载

基于单点多盒检测器的全局-局部层级的域适应目标检测

2021-03-07方景龙

计算机应用 2021年2期
关键词:源域适配器分类器

蒋 宁,方景龙,杨 庆

(1.杭州电子科技大学计算机学院,杭州 310018;2.宁波城市职业技术学院信息与智能工程学院,浙江宁波 315110;3.南京工程学院 计算机工程学院,南京 211167)

(*通信作者电子邮箱fjl@hdu.edu.cn)

0 引言

目标检测是机器学习中一个热点问题,它包括对图像进行分类和定位两种检测。近年来,基于深度卷积网络(Deep Convolutional Neural Network,DCNN)的鉴别分类器在目标检测方面取得了很大的进展[1],但同一模型在不同场景中的目标检测性能经常大相径庭,因为不同场景的样本实际不服从同样的分布。虽然基于卷积神经网络(Convolutional Neural Network,CNN)的方法在目标检测方面取得了显著的进展,但它仍然依赖于大量标记的训练数据。当将上述方法应用于具有未标记数据的不同场景时,在域迁移中会发生显著的性能下降。虽然收集更多训练数据可能会减轻域迁移的影响,但获取足够标记数据和注释边界框通常是耗时和昂贵的,因此,需要改进算法,使目标检测模型适合于训练域视觉上不同的新域[2]。

为解决跨域目标检测中的域迁移问题,本文提出了一种新的域自适应方法,以减轻域迁移的负面影响,并应用于以下场景:在源域中实施完全的监督,而在目标域中则没有监督,注释成本很低。构建基于单点多盒探测器(Single Shot MultiBox Detector,SSD)模型端到端的深度学习模型[3],称为域自适应全局-局部SSD(Global-Local-SSD,GL-SSD)。尝试利用这种新方法来最小化域差异,域迁移既可以发生在全局层次也可以发生在局部层次的级别上,全局层次所代表的特征包括噪点、分辨率、颜色等基于整个图像层面的特征;而局部层次所代表的特征就是指诸如纹理、材质以及大小等能代表某一个实例对象的特性,它是基于实例层面的。目前流行的源域与目标域的对齐方式采用的就是所谓强制性对齐方式[4],即要对齐所有的图像要素,包括背景、场景布局等无关因素,这种方式对于域之间的差异较小时还是有效的,但是对于域间差异较大的情况,则会造成检测性能的急剧下降,因为强制性对齐不同域的背景或者布局是没有太多意义的,因此强制性的对齐方式最适合针对局部特征的对齐,而对于全局层面的对齐方式,可以采用选择性的对齐方式。基于上述研究,为了解决域迁移问题,本文分别将基于全局和局部层面的两个域适配器组装入SSD 模型以最小化两域之间的差异,衡量差异的指标采用的是交叉熵距离。通过训练这两个域适配器,并利用对抗训练策略[5]取每个适配器中健壮且域不变的特性,结合不同层次域适配器之间的一致性正则化来进一步学习SSD模型中的域不变特性。

本文主要工作如下:

1)设计两个域适配器,分别在全局和局部层面两个级别上解决域差异。

2)针对全局层和局部层,分别采用不同的对齐方式,全局层采用选择对齐方式,局部层采用全对齐方式。

3)提出一种一致性正则化方法将全局和局部两个层面的域适配器进行调整。

4)将提出的适配器组装入SSD 模型,使得整个系统可以进行端到端的训练。

最后使用多个数据集(包括Sim10k、Kitti、Cityscapes 等)进行了大量的实验,以评估本文提出的领域自适应SSD(以下简称GL-SSD)算法。实验结果表明本文提出的解决目标检测领域转移的方法在性能上要明显优于其他基于SSD的目标检测方法。

1 相关工作

目标检测的任务是找到图像中的所有对象并获取它们的位置和大小。由于各种物体具有不同的形状、大小和数量,并且相互遮挡,目标检测一直是机器视觉领域最具挑战性的问题之一。在现有方法中,单点多盒探测器(SSD)因其有效性和实时性而获得了显著的优势。SSD 使用每个阶段的多层功能图生成锚。结果表明,SSD 法不仅精度高,而且实时性也非常好。SSD 非常灵活,可以扩展到其他任务,例如对象分割。然而,这些工作集中在常规设置上,没有考虑对象检测的域自适应问题。本文以SSD 作为基本检测器,提高了它在新目标域中的目标检测泛化能力。

在计算机视觉中,领域适应已经被广泛研究用于目标检测,为了解决域适应问题,最基本的思路就是测量不同域特征分布之间的距离,这个距离可以采用多种度量方式,最终通过不断迭代训练特征提取器最小化域之间的距离。在过去几年中,域适应性已经被包括文献[6-8]在内的深层神经网络广泛使用。传统的方法包括:子空间对齐[9]通过映射矩阵对齐源数据和目标数据;传递分量分析(Transfer Component Analysis,TCA)[10]方法通过主分量分析(Principal Component Analysis,PCA)学习一个潜在子空间,以减轻跨域间的分布偏移;混合异类传输学习[11]旨在以多层映射矩阵的形式对齐数据;最大独立域自适应[12]试图通过学习与域特征具有最大独立性的特征来研究分布中的跨域移动;转移子空间学习[13]试图将不独立且分布在选定子空间中的不同域之间的布里格曼发散最小化,联合分布自适应(Joint Distributed Adaption,JDA)[14]可以构造一种有效的、鲁棒的新特征表示,即在一个主要降维过程中,通过同时适应边际分布和条件分布,得到了实质性分布差。与这些工作不同的是,本文关注的是目标检测问题,这是一个更具挑战性的问题,因为目标定位和分类都需要预测。目前常用的方法是通过域分类器来度量域之间的差异值,本文采用生成对抗算法来训练域分类器。

2 对象检测的域适应

本章将详细介绍本文提出的基于SSD 全局-局部域适应方法。由于目标域是无标签以及无包围盒标记的,因此必须通过无监督训练实现源域到目标域的迁移,本文在SSD 基础模型中引入了两个域适配器,分别是基于全局以及局部的域适配器。这两种适配器本质上属于域识别器,通过对抗学习算法能够促使这两种识别器学习到域不变特征,进而形成域适配器,对于这两种分类器拟采用不同的对齐方式来对齐源域与目标域。

2.1 总的框架

在SSD框架的基础上新增两个域适应组件(基于全局-局部的域适应组件),构成基于SSD的域适应模型。定义基于源域的目标检测损失函数为Ldet,则总的损失函数定义如下:

其中参数λ是一个调参参数,用来控制SSD 目标检测损失和对抗损失的比例,平衡目标检测损失和对抗训练损失。通过生成对抗网络(Generative Adversarial Network,GAN)算法以端到端的方式训练网络,在传播过程中能够自动反转梯度符号。SSD域适应整体架构如图1所示:基于全局和局部层级在第6 个卷积层到第11 个卷积层分别添加域分类器,每一个域分类器都采用对抗训练模式。在此基础上添加连续正则器以便进一步学习域不变特征。

2.2 基于全局层级的域适配

基于全局层的自适应:所谓全局层差异是指源域和目标域之间基于整个图片的差异,包括噪点、分辨率、颜色等信息,SSD 算法是基于VGG16(Visual Geometry Group Network 16)结构的,不同之处在于将VGG16 最后的2 个全连接层改成卷积层,并且又增加4 个卷积层。我们使用了一系列基于多尺度的域分类器,即针对这6 个卷积层分别添加域分类器,在每个添加的特征层上训练每个域分类器,域分类器实际上预测每个添加特征层的域标签,这种基于多尺度的设计有助于增加域分类器训练样本的数量。

本文采用对抗训练方法来匹配两个领域之间的特征分布,生成器首先利用神经网络把数据映射为高层特征,使生成的特征尽可能地迷惑判别器,使之难以判别特征来源于哪一个领域;领域判别器的目标是尽可能准确地判别生成器产生的特征来源于哪一个领域,二者相互对抗优化,最终在达到平衡时,两个领域的特征分布足够接近。在基于SSD 的域适应领域中,为了更好地训练域分类器,需要将样本区分为易分类样本和难分类样本。所谓易分类样本就是源域和目标域相对应区域的样本差异很明显,难分类样本则是针对源域和目标域相对应区域很难区分的样本。采取的策略是将注意力集中于难分类样本,提高难分类样本的权重,降低易分类样本的权重,形式化表示为:

其中:Xs代表源域中包含了m个图片的集合,它包括两部分元素,分别是(表示带标签的源域图片)和(表示带包围盒标记的源域实例)。

其中:Xt代表目标域中包含了m个图片的集合,目标域没有标签表示目标域图片;领域判别器由D表示。设源域的域标签值为0,目标域的域标签值为1,样本域分类的概率越大,则对损失函数的影响越小,因此可以采用FOCAL LOSS:

其中:γ是调制系数,目的是通过控制系数大小来减少易分类样本的权重,从而使得模型在训练时更专注于难分类的样本,定义全局层的源域分类损失函数为LGS,目标域的损失函数为LGT,两者的平均值构成了全域的损失函数LG,这里Gj(j∈[1,6])表示分别对SSD中6个卷积层调用特征提取。

其中:ns和nt分别为源域和目标域样本的数量;Gj()(j∈[1,6])表示分别对SSD中6个卷积层调用特征提取。

图1 SSD域适应架构Fig.1 Architecture of SSD domain adaption

2.3 基于局部层级的域适配

基于局部层面的自适应是针对实例检测的,局部域分类器更多关注的是本地局部特征而不是全局特征,基于局部层面的域分类器由三层卷积神经网络构成,核大小设为1,输出激活函数设置为Sigmoid 函数,基于SSD 的最后6 个卷积神经网络通过生成器分别输出6个特征图,这6个特征图作为输入分别传给对应的6 个域分类器,损失函数采用的是最小二乘法对域分类器进行训练。这种类型的损失函数有助于提高域分类的鲁棒性,并且在实验中也得到了验证,证明其对于局部排列是非常有效的。基于局部层面的损失函数LL由两部分组成:源域的损失函数LLS和目标域的损失函数LLT。它们的表达式如下:

2.4 一致的正则化

通过实施一致的正则化技术来提高模型的性能,当采用对抗学习训练模型时经常会造成训练不稳定的情况发生,尤其是如果训练的数据不足,则会造成严重的过适应现象,即使采用微调的方式也还是会造成过拟合现象,因此本文采取一致正则的方式来提高训练的稳定性,正则距离采用L2 距离,表达式如下所示:

3 实验结果与分析

3.1 数据集和基准配置

将本文算法应用在两个域迁移场景中,分别由3 个数据集组成:

1)Sim10k 数据集。Sim10k 包含了10 000 张图片以及相应的58 701 个包围盒标记,这些图片都是由游戏引擎渲染出来的合成图片,标记物包括小汽车、摩托车和人。

2)Cityscapes 数据集。Cityscapes 包含50 个城市在春夏秋三个季节不同时间段不同场景、背景的街景图,提供5 000张精细标注的图像、20 000 张粗略标注的图像和30 类标注物体[15]。用PASCAL VOC标准的两个区域重叠的部分除以两个区域的集合部分(Intersection-Over-Union,IoU)的得分来对算法性能进行评价。

3)KITTI数据集。该数据集中每张图像最多显示15辆汽车和30 名行人,各自有不同程度的遮挡。数据集共包含200 000张以上的3D 标注物体的图像,涵盖了市区、乡村和高速公路等场景,包括图片、视频、雷达数据等数据类型[16]。

本文所涉及到的域迁移场景包括:

A场景:Sim10k to KITTI(S→K);

B场景:KITTI to Cityscapes(K→C)。

实验的基准配置如下:将GL-SSD 算法同其他四种域适应算法作性能比较,这四种算法分别是:1)基于源域训练模型,即将只针对源域进行训练的模型直接应用于目标域,并没有采用域适应算法;2)域适应-快速区域卷积神经网络(Domain Adaptation-Faster Region-based Convolutional Neural Network,DA-FRCNN)模型[17],该模型基于Faster CNN 的域适应模型算法,也是第一个针对目标检测的域适应方法;3)对抗识别域适应(Adversarial Discriminative Domain Adaptation,ADDA)模型[18],该模型主要用于解决基于非监督的对抗域适应;4)动态对抗适应网络(Dynamic Adversarial Adaptation Network,DAAN)模型[19],该模型采用动态对抗思想来解决域适应问题。

3.2 量化结果

为了验证本文的GL-SSD方法,在这两个域迁移场景中实施了大量实验,对于每一轮实验,都采用如下四个步骤:1)随机取样固定数量的目标域图片,数量取决于用于比较的类个数;2)逐步组合GL-SSD 方法里的几个适配器,运行后计算基于平均精确值(Average Precision,AP)和各类别AP 的平均值(mean Average Precision,mAP)的性能[20];3)在相同的样本图片上运行其他目前流行的域迁移方法,计算出AP 和mAP 性能;4)分别比较这几种方法的AP 和mAP 性能,推演出最终结论[21]。

场景A 检测结果:首先评估从Sim10k 到KITTI 域适应的性能。这两个域都是有关交通工具的场景,因此具有一定的相似性。正如表1所描述的,GL-SSD 在15种类别的目标检测AP明显优于SSD 模型的,与ADDA、DA-FRCNN 和DAAN 模型相比,GL-SSD 除了fence 和pole 类别精确度小于这三个模型,其他种类的AP 都高于上述三个模型。表3 显示了不同方法的最终性能效果(用mAP 值表示),G 表示全局,L 表示局部,R 表示正则。具体性能比较包括以下几个方面:1)与其他四个模型算法进行比较,单独采用全局或者局部SSD 域适应方法的目标检测(mAP)在性能上明显优于基于源域训练模型,与其他三种模型在性能上差别不大,但是如果将这两种域适应算法组合起来,性能就会明显优于其他三种训练模型,表明基于不同层次的对齐可以起到互补的效果。

进一步分析发现单独采用全局SSD 域适应方法提高的mAP 要高于单独采用局部SSD 域适应方法提高的mAP,可以认为这是因为Sim10k 是虚拟场景而KITTI 是真实场景,两个场景的差别还是明显的,易分类样本较多,所以采用全局域适应效果更加明显。将两种域适应结合则mAP 值可以提高更多,说明这两种域适应可以起到互补的作用。如果再将一致性正则应用到场景中,则GL-SSD 相比ADDA、DA-FRCNN、DAAN 的mAP 值分别提高了5.97、8.05、5.4 个百分点,达到了45.62%。

场景B 的检测结果:场景B 指的是KITTI to Cityscapes(K→C),如表2所示,检测结果与场景A类似,GL-SSD在15种类别的目标检测AP也是明显优于SSD 模型的,与另外三个模型相比,GL-SSD 除了Bldg 和Sign 类别准确度小于三个模型,其他种类的AP 都高于这三个模型。如表3 所示,同其他三种模型比较,分别单独采用全局域适应方法、局部域适应方法以及将这两种方法组合起来都能提高域迁移检测性能,但是同场景A 的检测结果还是有一个明显的区别,就是采用全局域适应方法提高的mAP 值要小于采用局部域适应方法,本文认为这是因为Cityscapes 和KITTI 都是有关交通方面的场景,其相似程度要高于场景A,易分类样本较少,所以采用局部域适应效果会更好些。当然将一致性正则继续应用到场景B中也能提高mAP 值,达到了43.28%,相比ADDA 提高了2.94 个百分点。

表1 Sim10k→KITTI域迁移AP定量结果 单位:%Tab.1 AP quantitative results for Sim10k→KITTI domain transfer unit:%

表2 KITTI→Cityscapes域迁移AP定量结果 单位:%Tab.2 AP quantitative results for KITTI→Cityscapes domain transfer unit:%

3.3 定性结果

基于场景A(Sim10k→KITTY)的实验结果如图2所示,可以非常清楚观察到采用GL-SSD 方法模型能够形成更加紧密的包围盒,尤其是针对那些不易辨认的小目标,GL-SSD 的查找正确率要高于其他三种模型(如图2(a)基于DA-FRCNN 的目标检测中远处的一辆小白车没有检测出来)。

3.4 排名前列的检测错误分析

上述实验结果表明,全局和局部域适应方法都有助于提高域迁移的能力,接下来将通过分析检测错误指标来进一步验证全局和局部域适应方法的有效性。将场景A(Sim10k→KITTI)作为分析案例,分别选择前1 000个可信度最高的检测应用于每个域适应方法,包括基准SSD、ADDA、DA-FRCNN 以及GL-SSD域适应方法,参考文献[22],将检测结果分为三类:正确率检测、错误定位检测以及背景错误检测。

表3 域迁移mAP定量结果 单位:%Tab.3 mAP quantitative results for domain transfer unit:%

图2 基于DA-FRCNN和GL-SSD的检测结果对比Fig.2 Detection results comparison of DA-FRCNN and GL-SSD

正确率检测指的是IoU 的值大于0.5[23],即认为是正确的分类;错误定位检测指的是虽然分类是正确的,但是IoU 值介于0.1和0.5之间;背景错误检测指的是分类是错误的或者虽然分类是正确的,但是IoU 值小于0.1。从表4 可以看出采用GL-SSD 域适应方法比其他三种方法的正确率都要高,并且背景错误率也低于其他三种模型。

表4 检测错误分析 单位:%Tab.4 Detection error analysis unit:%

4 结语

本文提出了一种新的无监督域自适应方法,该方法在SSD 模型基础进行改进,分别从全局和局部层面采用不同的域对齐方式:全局层面通过强化难分类样本实现选择性对齐,局部层面则采取完全对齐的方式。本文分别使用两种域适配器来对应这两个层面的训练,在SSD 模型最后6 个卷积层分别添加一个域适配器,有助于增加域分类器训练样本的数量,并进一步应用一致性正则化来学习域不变量特征。域适配器采用基于交叉熵的对抗训练算法进行端到端的训练,它是一种有效的跨域目标检测方法,能够最小化域之间的差异。本文方法在不同域适应情况下得到了验证,基于多个数据集的实验结果表明,GL-SSD 模型在域迁移性能上明显超过了基准SSD 模型,并且也比ADDA、DA-FRCNN、DAAN 等常见域适应算法的性能要好,今后将考虑采用深度更深的VGG19 取代VGG16网络结构,并在此基础上尝试与2020年最新的域适应模型作比较,以便更好验证GL-SSD模型目标检测的有效性。

猜你喜欢

源域适配器分类器
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
基于朴素Bayes组合的简易集成分类器①
基于3D打印的轻型导弹适配器
基于AdaBoost算法的在线连续极限学习机集成算法
浅析《离骚》中的跨域映射现象
电源适配器怎么选
从映射理论视角分析《麦田里的守望者》的成长主题
6款电力线网络适配器横向评测
美国麦格普公司新型M—LOK相机三脚架适配器