【目标检测+域适应】CVPR18 CVPR19总结

域适应已经是一个很火的方向了,目标检测更不用说,二者结合的工作也开始出现了,这里我总结了CVPR18和CVPR19的相关论文,希望对这个交叉方向的近况有一个了解。

1. 2018_CVPR Domain Adaptive Faster R-CNN for Object Detection in the Wild

这篇可算是第一个工作,以faster rcnn为baseline,在其基础上添加判别器分支,附着到backbone输出的特征图和roi提取到的向量上,前者代表图像级别的域适应,后者代表物体级别的域适应(roi代表一个物体),分别训练两个判别器,使其无法区分两个域的图像,除此之外,还添加了一致性正则化损失项,保证两个层面的域分类结果一致。特别说明,源域数据没有标签,所以没有检测器的损失,只有域判别器的损失,所以最后的损失项:源域的检测器损失+源域的物体域判别损失+源域的图像域判别损失+源域的物体图像一致性损失+目标域的物体判别损失+目标域的图像判别损失+目标域的物体图像一致性损失

相关代码:

 https://github.com/yuhuayc/da-faster-rcnn(官方 caffe)

https://github.com/krumo/Detectron-DA-Faster-RCNN(caffe2)

https://github.com/divyam02/dafrcnn-pytorch/tree/cleaning(pytorch)

https://github.com/tiancity-NJU/da-faster-rcnn-PyTorch (pytorch)

2. 2018_CVPR Cross-Domain Weakly-Supervised Object Detection through Progressive Domain Adaption

这篇文章似乎出自东京大学?日本的科研能力依然世界前列啊。文章的任务设定与UDA(无监督域适应)略有不同,这篇文章处理的任务中,目标域有图像级标注(图像中有哪几类物体),没有实例级标注,所以文章的题目也说了,本文是弱监督任务。

这篇文章不能只介绍方法了,因为它还有另一大贡献,那就是深度学习最为倚重的数据集,作者直接制作了三个数据集,而且都有实例级标注,太赞了!,这是不小的工作量。

三个数据集都是卡通风格的,与自然图像相比域差异可以说是相当大了,分别是Clipart1K,Comic2K,Watercolor2K,从名字可以看出分别是1000,2000,2000张图片。

 具体样子如下,说实话在我看来长的都差不多,为什么选择这几个数据集,可能日本人对漫画有天分和执着吧

说到方法,其实这篇论文的方法就是finetune,跟域适应的路子不太一样,没有域判别器之类的东西,然而,目标域没有实例标签,无法微调,所以作者想了两种方法产生可用来微调的数据-标签对。

1.在源域数据训练检测器

2. 利用cyclegan,将源域数据转换为目标域,然后微调

3. 对目标域数据生成伪标签,继续微调

cyclegan的方法无需多说,详情还得看cyclegan的东西,目标域生成伪标签的原理是用检测器检测出结果,然后只保留图像级标注中存在的物体类别,最后针对剩下的物体类,只取每一类中概率最高的一个检测结果,这样做是想尽量减少错误标注带来的影响吧

相关代码:

https://github.com/naoto0804/cross-domain-detection

3. 2019_CVPR Automatic adaptation of object detectors to new domains using self-training

这篇文章是跟上一篇有相同之处的,那就是都不是常规的域适应的路子,也是微调。不过本文没有用cyclegan生成假样本,只是采用了伪标签。相比于仅利用检测器生成伪标签,本文还利用跟踪器生成伪标签,跟踪器?没错,本文的伪标签数据来自视频,当然训练好的检测器可以用于视频也可用于图像。其中,跟踪器的作用是查缺补漏,以防检测器漏掉某些目标。

论文的贡献不止于上面的,另一个贡献在于对伪标签的处理,使用了软化的技术,软标签,具体内容不想讲了,只是记得如果要使用伪标签,可以考虑借鉴这篇论文的软标签处理方式。

相关代码:http://vis-www.cs.umass.edu/unsupVideo/

4. 2019_CVPR Strong-Weak Distribution Alignment for Adaptive Object Detection

这篇文章采用的是常规的域适应的路子,只是采用了foca loss,效果出奇的好

由于采用的是域适应的路子,可以与第一篇文章做一下比较,第一篇文章是在图像级和实例级两个层面进行域适应,而这篇文章是在低层次特征和高层次特征两个层面进行域适应,没有利用目标信息,只是在图像层面的域适应。

具体而言,选取两个特征图,一个层次低,一个层次高(backbone的最后特征图),接下来的思想是我比较认同的,在低层次特征进行强对齐,也就是标准的交叉熵损失,在高层次特征进行部分对齐(弱对齐),如何达到弱对齐,就是采用focal loss,降低易分类样本的损失权重,然后本文的核心东西就没了,思路简单,效果好

我觉得低层次编码的是域相关信息,比如cityscape和foggy cityscape,差别在于后者有雾,这是一个图像风格的问题,会在低层次进行编码,当然,低层次特征还包含物体的边,角等信息,而高层次特征编码语义信息,对于两个域而言,语义可能相同也可能不同,不该一味地强制语义对齐,所以采取弱对齐是合理的

相关代码:https://github.com/VisionLearningGroup/DA_Detection

5. 持续更新

猜你喜欢

转载自www.cnblogs.com/wzyuan/p/11105758.html
今日推荐