CVPR 2018 | ETH Zurich提出利用对抗策略,解决目标检测的域适配问题
论文地址:https://arxiv.org/abs/1803.03243
摘要:本文是 ETH Zurich 发表于 CVPR 2018 的工作,论文提出了采用当前火热的对抗策略,解决目标检测任务中使用不同数据集训练的域适配问题。(ETH Zurich发表于CVPR的另一项工作极市也有文章解读,详情可见文末)
背景介绍
基于有监督的目标检测器(如Faster R-CNN, SSD)在有标签数据集上(Pscal VOC, COCO等)取得了很好的性能。然而,一方面检测器的训练严重依赖大量有标签数据,在现实场景中这些有标签数据的获取代价是很大的。另一方面,在一个场景上训练的模型难以generalize到另一个场景中,例如在自动驾驶场景下,当遇到没有标签数据的新场景时,如何使得旧场景上训好的模型在新场景上也有很好的表现?本文对此做了一次有益尝试。
域适配(Domain Adaptation, DA)问题已经在图像分类任务上得到了广泛研究并取得了惊人进展,今年CVPR上也有很多相关工作。其本质属于迁移学习的一种,问题设定是:如何使得源域(Source Domain)上训练好的分类器能够很好地迁移到没有标签数据的目标域上(Target Domain)上。其中两个代表性的工作有:DSN [1]和ADDA [2]。
这种域适配问题在目标检测同样存在,如下图所示,在自动驾驶场景中,来自不同数据集的图像分别来自不同的场景,也就是这里的Domain,比如在KITTI数据集(源域)上训练的检测器直接用于检测Cityscape数据集(目标域)中的目标,效果是很差的,一种显而易见的思路是拿Cityscape的数据去FineTune检测器使得检测器在Cityscape数据集也有很好的表现,但需要对Cityscape数据集进行标注以进行有监督的训练,然而现实场景中更普遍的一种情况是大量目标域的图像没有标签。如何使得源域上训练的检测器在目标域中也有很好的检测性能?这是本文需要解决的问题。
解决思路
本文首先从概率分布的角度论证了进行域适配的必要性,据此引出了本文的两点贡献:提出图像层面的适配(Image-Level Adaptation)和目标层面的适配(Instance-Level Adaptation),用于解决自动驾驶场景下目标检测任务使用不同数据训练的域适配问题。
模型结构
图2给出了本文方法的处理流程,检测器采用的是当前主流的Faster R-CNN,训练时一个batch包含两张图像,分别来自源域和目标域,所以网络的输入实际上是两张图像(图中只画了一张)。结合图2, 下面重点论述下本文是所采用的两个层面的域适配:
1、Image-Level Adaptation
源域的图像是有标签的,而目标域的图像是无标签的,如果只用源域的图像进行训练,会使得网络学到的特征在源域上非常discriminative,但在目标域上表现欠佳,所以应该做图像层面上的适配,也即使得来自源域的图像特征和来自目标域的图像特征满足同一分布,这里可以采用图2中的Image-level domain classifier,如果使得domain classifier无法区分开特征图到底是来自源域还是来自目标域,那么我们的目的就达到了,而在训练过程中domain classifier则是要尽量把二者区分开,其实这里体现的就是GAN中的对抗策略了,只不过作者用的并不是当前火热的GAN,而是通过文献[3]提出的gradient reverse layer实现的,domain classifier的更新是正常的梯度反传,而将负梯度反传到前面的检测器。对抗损失如下式所示:
2、Instance-Level Adaptation
同样,我们还需要目标层面的适配,也就是每个ROI的特征也要满足同一分布,同上面的对抗策略一致,对应的对抗损失如下式所示:
此外,为了保证两个层面的域适配的一致性,作者还提出了一种一致性约束(Consistency Regularization),如式(9),其目的是为了保证两个层面的domain classifier的判断是一致的、
最后加上原始Faster R-CNN检测器的loss,就可以端到端地训练了。
实验分析
实验分为三个部分,分别从三个视角进行论证:
1、合成数据集和真实数据集之间的域适配问题;
2、两个不同气候条件下的域适配问题;
3、两个不同驾驶场景下的域适配问题。
从上图可以发现,左图是合成数据集SIM 10k,右图是真实场景Cityscape数据集,通过本文的域适配,即使没有使用Cityscape中的标签数据进行训练,检测器性能提升了约8%。
从上图可以发现,左图是Cityscape数据集,右图是Foggy Cityscape数据集,通过本文的域适配,检测器在不同类的目标上都有显著提升。
从上图可以发现,左图是Cityscape数据集,右图是KITTI数据集,通过本文的域适配,无论是Cityscape到KITTI还是从KITTI到Cityscape,检测器都有显著提升。
总结展望
本文贡献:
(1)从概率分布的角度提出了目标检测任务中的域适配问题;
(2)提出了两个层面的适配策略(图像层面的适配和目标层面的适配),用于解决该问题
个人见解:
(1)熟悉Unsupervised Domain Adaptation的同学可能知道,这篇文章主要借鉴了[3]的核心思想,并将其成功应用于目标检测领域,是利用对抗思想解决目标检测任务中域适配问题的一次成功探索。此外本文一作还有一篇论文被CVPR2018接收,将对抗思想用于解决语义分割中的域适配问题,详见[4]。
(2)实验部分论证了本文的训练策略可以使得检测器在目标域得到性能提升,然而是否会导致检测器在源域的检测性能下降?直觉上判断,网络在训练过程中会朝着源域和目标域的特征indistinguishable的方向优化,然而这种优化对目标域是否有利还有待实验的进一步验证。
参考文献
[1] Domain Separation Networks. NIPS (2016)
[2] Adversarial Discriminative Domain Adaptation. CVPR (2017)
[3] Unsupervised Domain Adaptation by Backpropagation. ICML(2015)
[4] ROAD: Reality Oriented Adaptation for Semantic Segmentation of Urban Scenes. CVPR (2018)
注:[4]已有论文解读发表于极市技术博客:
http://cvmart.net/community/article/detail/240
本文为极市原创文章,转载请到公众号留言,同时欢迎大家投稿~
*推荐文章*
深度学习目标检测指南:如何过滤不感兴趣的分类及添加新分类?
PS-GAN:如何合成高质量行人图像提升行人检测性能?
PS.极市平台诚招计算机视觉算法工程师啦~更多工作职责和工作要求请关注“极市平台”公众号(id:extrememart),点击菜单加入极市“诚招”栏,极市期待与您一起创造计算机视觉生态~~