论文解读:Adapting Object Detectors via Selective Cross-Domain Alignment

论文题目:Adapting Object Detectors via Selective Cross-Domain Alignment(CVPR2019)

论文主要贡献:以往的域自适应的方法在分类和分割中应用较多,检测中的相关论文比较少,顶会论文大概就4-5篇,而以往的域适应的方法主要针对全局的特征对齐(在loss和距离度量上做文章),这在分类和分割上没什么问题,但是检测任务更多的不是基于全局的特征,一个roi的检出更多的是依赖于bbox的instance的特征,因此本论文主要从instance的角度提出检测自适应的创新型算法(主要就是特征对齐从以往的global转变成local方式);

算法背景:

仅仅是同一场景下天气的不同,造成检测模型的性能骤降,除此之外,模型的性能也会收到不同采集设备,不同成像环境、亮度、光照等影响;

论文网络结构:

论文基于faster-rcnn的结构,主要在第二阶段得到的rois上做文章,主要包括Region Mining和Adjusted Region level Alignment两个方面;其中Region Ming解决where to look的问题,即需要对哪部分的特征进行域对齐;而Adjusted Region level Alignment是对第一步挑选出的特征实现对齐,即解决how to align的问题;

具体来说:faster-rcnn经过RPN得到第二阶段所需的rois,这时一个分支是原始的检测网络,即faster-rcnn的第二阶段,对rois进行精细化的回归和分类,同时增加一个分支,对rois进行分组(Group),检测网络得到rois的中心点坐标和宽高,通过K-means对rois的中心点坐标进行聚类,具体需要聚类的个数是个超参数K,然后进行feature reassignment,因为group后的每一个聚类的族中都有不同数目的rois,为了后续的计算方便,需要每一个聚类族中的rois个数相同,这里的每一个族中的rois个数是另一个超参数m,当聚类后,一个族中的rois个数多于m,只取置信度top-m的rois,当一个族的rois个数小于m,则通过复制的形式得到m个rois,这样就得到了K*m个rois,然后取rois的特征,假设每一个roi是d维度特征,则总共有K*m*d的特征,因为后续有生成网络G用于重建Ki(下图中五角星为聚类中心的红色bbox,图中设置的K=4),所以第三个超参数就是每一个聚类族的人为设定的框的大小(需要是固定尺寸,因为后续的判别器需要输入固定尺寸的Ki进行判别),而每一个m*d的特征就用于表示一个族Ki的特征,到此是Region Mining的主要工作;

聚类的族可视化:

第二步是Adjusted Region level Alignment,主要包括Region-Level Adversarial Alignment和Weighting Estimator Dw,其中Region-level Adversarial Alignment主要包括网络结构中的右上和右下分支,包括生成器Gs和Gt,判别器Ds和Dt,其中生成器主要对第一步得到的K*m*d(生成器的输入)重建出K个regions,也就是上图的五角星为中心的红色的bbox对应的原图patch),判别器对重建的regions和原始输入图的对应的regions进行判别(自重建的判别),这是判别fake source和true source以及fake target和true target操作,除此之外,将源域的K*m*d的特征输入到右下分支,生成目标域风格的重建patch,然后Dt对这个重建结果和True target进行判别,同样的目标域的K*m*d的特征输入右上分支,Ds对生成的源域风格的重建patch和true source进行判别(交叉重建的判别);

loss:

具体训练时:优化判别器Ds和Dt,用自重建和交叉重建的判别损失,即loss的前两项;优化生成器Gs和Gt时,是Ds将fake source识别成true source的loss和Dt将fake target识别成true target的loss,没有交叉判别的loss,对应loss的第3、4项;训练检测器时,利用交叉判别的loss,即交叉重建的fake source识别成True target的loss,对应loss的最后一项;

原文描述:

个人看法:感觉这里的自重建和交叉重建很像cycle-gan的思想,只不过cycle-gan是环形重建,并且自重建没有判别器,输入的是图像,而这里的自重建有个判别器,输入是K*m*d的特征,更像cycle-gan的identity loss,即cycle-gan中是A转成B,然后再转成A,这是自重建,A转成B是交叉重建,有个判别器,还有将B输入到A转成B过程的G中,原理上输出更应该是A,这是identity;而论文中的交叉重建也很类似,但是论文的自重建和交叉重建用的同一个判别器,分别是Ds和Dt;

而Weight Estimator Dw主要是因为目标域没有标注,因此基于源域的训练得到的rois即使最后学到的特征与域无关,但是训练的早期,对目标域图片得到的rois包含object的概率很低,召回率大概只有35%-45%(前10个epochs),因此Dw主要用于对目标域的rois进行加权,表示每一个rois包含object的可能性,这里需要用到源域的label,对目标域进行指导;具体的,输入K*m*d的特征,判别器Dw判别源域还是目标域的特征,输出变成K*m维度(经过sigmoid),然后取均值得到K个值,表示K个regions的权重,这个权重是对判别器的K个loss加权,有点类似于Taking A Closer Look at Domain Shift: Category-level Adversaries for Semantics Consistent论文中对分割对抗损失的加权的思想;

总的loss:

第三项是Dw的判别loss,第一项是检测loss,只有源域有标注;

其中第二项是:

是对公式1中的所有目标域的相关loss都有个权重;

具体训练过程:

先训练Ds和Dt;然后训练Dw;接着训练Gs和Gt;最后训练F(检测器);

 

 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值