域适应是一个比较火的方向,Source Domain(SD) 与 Target Domain(TD) 可以有很多代表,例如SD 为真实数据,TD为卡通数据 或者 SD为清晰数据,TD为模糊数据 或者 SD 为模拟数据,TD为真实数据等等。 最近看了一篇论文这个领域的论文记录一下一些文章内容和代码跑通时遇到的问题。
文章切入点
将在特定领域上训练的目标检测器的知识直接应用到新领域是有风险的,因为两个领域之间的差异可能会严重降低模型的性能。此外,由于目标检测场景中不同的实例通常包含不同的模态信息,因此很难实现源域和目标域的特征对齐。
主要工作
提出了一种图诱导原型对齐(GPA)框架,通过精细的原型表示来寻求类别级别的领域对齐。简而言之,通过基于图的region proposals之间的信息传播获得更精确的实例级特征,并在此基础上推导出用于类别级领域比对的每类的原型表示。此外,为了缓解类别不平衡对领域适应的负面影响,我们设计了一个类别加权对比损失来调整适应训练过程。结合较快的R-CNN,该框架分两步进行特征对齐。
主要内容
不同的实例在对象配置场景中往往体现出不同的模态信息(尺度和方向信息),如下图
总体框架
(a)首先产生区域建议(候选框)
(b)建立候选框之间的图关系
(c)通过在属于同一实例的提案之间进行信息传播,可以获得更精确的实例级特征表示。
(d)每个类的原型表示都是通过置信度合并得到的。
(e)通过增强类内部的紧凑性和类间的可分离性来执行类别级域对齐,这里也就是代码中提到的intraloss 和 interloss。
论文核心部分
Motivation and Overview
对齐Source domain 和 Target Domain 的prototype: 每个实例的关键信息通过基于图的消息传播进行聚合,不同实例反映的多模态信息被集成到每个类别的prototype中。
类别不平衡感知适应训练: 通过对样本稀缺类赋予更高的权重来协调不同类之间的域适应过程。
Graph-induced Prototype Alignment
步骤: Region proposal generation → Constructing relation graph → Graph-based region aggregation → Confidence-guided merging → Category-level domain alignment
Region proposal generation
这里没啥说的,就是一个faster rcnn中的RPN提取region proposal 的过程。
Constructing relation graph
相同的欧氏距离下,由于IOU的不同,关联强度也要不同
Graph-based region aggregation
通过一个图神经网络使proposal 聚集,对邻接矩阵进行相关处理。 考虑到域自适应学习的分支上缺乏显式的监督信号,与传统的图卷积相比,省略了可学习的参数矩阵。
Confidence-guided merging
既然在实例级聚合了特性表现,想要将不同实例反映的多模态信息集成到原型表示中。为了突出对特定类至关重要的模态信息,在合并过程中将提案对每个类的置信度作为权重,并将原型作为区域提案的加权平均嵌入量。
Class-imbalance-aware Adaptation Training
类似于focal loss 通过难以样本与正负样本的权重来缓解类别不平衡的问题,具体操作见原文。
结果
本人跑了其github代码, source domain 数据集为 Sim10K , target domain 数据集为 City 下,map 峰值为 46.8左右,峰值epoch第2个。
相关问题,需要控制source domain 与 target domain 所出现的类别数一样,例如 如果source domain 有 person 和 car 标注,在 target domain 中只有car 这一类,则需要屏蔽 person 这一类或者在target domain 中加入 person 这一类,只是加入类名实际 target domain 中不会有 person 的相关训练。
总结
该文提出了图形诱导原型对准(GPA)框架用于跨域检测。在该框架中,通过基于图的消息传播聚合每个实例的关键信息,并派生出用于分类级domain对齐的原型表示。此外,我们通过重新加权的对比损失来协调适应训练的过程。性能较突出,不然怎么中cvpr 2020呢。