我是靠谱客的博主 留胡子爆米花,最近开发中收集的这篇文章主要介绍论文笔记:Strong-Weak Distribution Alignment for Adaptive Object Detection,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

论文:Strong-Weak Distribution Alignment for Adaptive Object Detection

地址:https://arxiv.org/abs/1812.04798

一、简介

这篇文章目的在于解决无监督域适应目标检测(Unsupervised Domain Adaptation for Object Detection), 之前state of the art 是 2018年CVPR的 Domain Adaptive Faster R-CNN for Object Detection in the Wild, 对应论文笔记:DA Faster RCNN

Motivation

在图像分类中无监督域适应方法中,大多数是尽量使得目标域数据和源域数据完全匹配。作者认为,在目标检测任务中,由于不同的域有着不同的场景布局和目标组合,完全匹配目标域和数据域的分布将降低模型的 performance。但是,由于 low-level 局部特征匹配不会改变原有的类别语义信息,所以可以将它们进行强匹配。基于上面两个原因,作者提出了:

  1. 核心 contribution 弱对齐模型(weak alignment model) : 使用对齐 loss 更多的强调整体相似的样本对齐,不强调整体不相似的样本对齐。
  2. 强 域对齐 : 加强对齐feature map的局部感受野,如纹理、颜色等

具体如 Figure 1 所示,学习域不变的特征,局部特征上的强对齐,全局场景上的弱对齐:

Figure 1

二、方法

Figure 3

整体框架基于 Faster-RCNN, 在 RPN 之前抽取全局特征,局部特征来自特征抽取器中更低的层。

2.1 Weak Global Feature Alignment

Figure 2

作者使用一个域分类器去对齐目标域和源域全局特征,在特征空间中,容易区分的目标样本距离源域样本非常远,而难以区分的目标样本距离源域样本很近,如 Figure 2 左边图所示。作者提出训练域分类器去忽略容易区分的样本,而去强调难以区分的样本。
为了完成上面的这个目标,作者提出使用Focal loss,如 Figure 2 右边图所示。交叉熵的问题在于对于很容易分类的样本同样会产生不可忽视的 loss 值,而 Focal loss 通过修改交叉熵引入一个修改因子 f ( p t ) f(p_t) f(pt)使得对于容易区分的样本,产生一个极小的loss。 修改后的交叉熵为:

− f ( p t ) l o g ( p t ) -f(p_t)log(p_t) f(pt)log(pt)

其中 p t p_t pt 为:
p t = { p  if  d = 1 1 − p  otherwise  p_{mathrm{t}}=left{begin{array}{ll}{p} & {text { if } d=1} \ {1-p} & {text { otherwise }}end{array}right. pt={p1p if d=1 otherwise 
d = 1 d = 1 d=1 代表该样本属于目标域, p p p 为对于的概率。作者选择一个函数 f f f 使得随着 p t p_t pt 增加, f f f值减小。

F L ( p t ) = − f ( p t ) log ⁡ ( p t ) , f ( p t ) = ( 1 − p t ) γ mathrm{FL}left(p_{mathrm{t}}right)=-fleft(p_{mathrm{t}}right) log left(p_{mathrm{t}}right), fleft(p_{mathrm{t}}right)=left(1-p_{mathrm{t}}right)^{gamma} FL(pt)=f(pt)log(pt),f(pt)=(1pt)γ
其中 γ gamma γ 是一个难区分类的权重值。

整个弱对齐域分类器 loss 定义如下:
L global s = − 1 n s ∑ i = 1 n s ( 1 − D g ( F ( x i s ) ) γ log ⁡ ( D g ( F ( x i s ) ) ) mathcal{L}_{text {global}_{s}}=-frac{1}{n_{s}} sum_{i=1}^{n_{s}}left(1-D_{g}left(Fleft(x_{i}^{s}right)right)^{gamma} log left(D_{g}left(Fleft(x_{i}^{s}right)right)right)right. Lglobals=ns1i=1ns(1Dg(F(xis))γlog(Dg(F(xis)))
L g l o b a l t = − 1 n t ∑ i = 1 n t D g ( F ( x i t ) ) γ log ⁡ ( 1 − D g ( F ( x i t ) ) ) mathcal{L}_{g l o b a l_{t}}=-frac{1}{n_{t}} sum_{i=1}^{n_{t}} D_{g}left(Fleft(x_{i}^{t}right)right)^{gamma} log left(1-D_{g}left(Fleft(x_{i}^{t}right)right)right) Lglobalt=nt1i=1ntDg(F(xit))γlog(1Dg(F(xit)))
L g l o b a l ( F , D g ) = 1 2 ( L g l o b a l s + L g l o b a l t ) mathcal{L}_{g l o b a l}left(F, D_{g}right)=frac{1}{2}left(mathcal{L}_{g l o b a l_{s}}+mathcal{L}_{g l o b a l_{t}}right) Lglobal(F,Dg)=21(Lglobals+Lglobalt)
n s n_s ns 为 source 样本数量, n t n_t nt 为 target 样本数量。

除此之外,整个 Faster RCNN 部分的 loss 可以总结为:
L c l s ( F , R ) = − 1 n s ∑ i = 1 n s L d e t ( R ( F ( x i s ) ) , y i s ) mathcal{L}_{c l s}(F, R)=-frac{1}{n_{s}} sum_{i=1}^{n_{s}} mathcal{L}_{d e t}left(Rleft(Fleft(x_{i}^{s}right)right), y_{i}^{s}right) Lcls(F,R)=ns1i=1nsLdet(R(F(xis)),yis)

2.2 Strong Local Feature Alignment

作者将整个特征提取模块 F F F 一分为 2 ,分别为 F 1 F_1 F1 F 2 F_2 F2, 使用低层的 F 1 F_1 F1 提取的特征作为 local feature 域分类器的输入,输出一个和输入同样宽高的 feature map ,使用最小平方 loss 来训练域分类器,定义如下:

L l o c s = 1 n s H W ∑ i = 1 n s ∑ w = 1 W ∑ h = 1 H D l ( F 1 ( x i s ) ) w h 2 mathcal{L}_{l o c_{s}}=frac{1}{n_{s} H W} sum_{i=1}^{n_{s}} sum_{w=1}^{W} sum_{h=1}^{H} D_{l}left(F_{1}left(x_{i}^{s}right)right)_{w h}^{2} Llocs=nsHW1i=1nsw=1Wh=1HDl(F1(xis))wh2

L l o c t = 1 n t H W ∑ i = 1 n t ∑ w = 1 W ∑ h = 1 H ( 1 − D l ( F 1 ( x i t ) ) w h ) 2 mathcal{L}_{l o c_{t}}=frac{1}{n_{t} H W} sum_{i=1}^{n_{t}} sum_{w=1}^{W} sum_{h=1}^{H}left(1-D_{l}left(F_{1}left(x_{i}^{t}right)right)_{w h}right)^{2} Lloct=ntHW1i=1ntw=1Wh=1H(1Dl(F1(xit))wh)2

L l o c ( F , D l ) = 1 2 ( L l o c s + L l o c t ) mathcal{L}_{l o c}left(F, D_{l}right)=frac{1}{2}left(mathcal{L}_{l o c_{s}}+mathcal{L}_{l o c_{t}}right) Lloc(F,Dl)=21(Llocs+Lloct)

3.3 Context Vector based Regularization

主要是从两个域分类器的中间层抽取特征,然后根据不同的区域去跟RPN的输出对应(region-wise)进行拼接,作者称之为 “context” ,用来预测类别和bounding box。作者认为这是一个正则项,有助于稳定对抗训练。但我现在还不知道为什么:)

3.4 Overall Objective

所有对抗 loss 定义如下:
L a d v ( F , D ) = L l o c ( F 1 , D l ) + L g l o b a l ( F , D g ) mathcal{L}_{a d v}(F, D)=mathcal{L}_{l o c}left(F_{1}, D_{l}right)+mathcal{L}_{g l o b a l}left(F, D_{g}right) Ladv(F,D)=Lloc(F1,Dl)+Lglobal(F,Dg)

整个目标函数定义为最大最小化loss:

max ⁡ D min ⁡ F , R L c l s ( F , R ) − λ L a d v ( F , D ) max _{D} min _{F, R} mathcal{L}_{c l s}(F, R)-lambda mathcal{L}_{a d v}(F, D) DmaxF,RminLcls(F,R)λLadv(F,D)

三、实验

3.1 不相似的域之间的适应

作者选择的源域数据集为 VOC, 目标域数据集为一些艺术图片,Watercolor、Clipart,结果如 Table 1 所示。

Table 1

其中 Source Only 指的是仅仅使用训练集图片训练,然后直接在目标域进行测试。BDC-Faster 是使用了域分类器的baseline,DA-Faster 是前面提到的2018年CVPR的Domain Adaptive Faster RCNN。

主要证明了如下几点:

  1. 仅仅使用focal loss 就使得 map 上升了 10.8%(25.6 to 36.4)
  2. context 向量(CTX)和局部特征对齐(L) 都是有效果的,进一步提高了MAP
  3. 与 Source Only比较,BDC-Faster 和 DA-Faster 使得 performance 巨降,证明了在两个不同的域之间进行严格的特征对齐会扰乱目标检测任务的训练,而作者提出的弱对齐不会降低性能。

3.2 相似的域之间的适应

作者用了 Cityscrapes 到 Foggy Cityscrapes,效果如 Table 4 所示:

Table 4

这两个数据集的差别很小,而且目标域数据集Foggy Cityscrapes 来自源域数据集 Cityscrapes,只是在Cityscrapes 数据集上加入了一些 foggy 噪声,所以仅仅一个强的局部对齐使得MAP有极大的提高。

3.3 Adaptation from synthetic to real images

选择合成的数据SIM10K为源数据域,Cityscrapes为目标域,结果如 Table 5所示:

Table 4

主要证明一下几点:

  1. 弱对齐的效果不只是有focal loss可以达成,其他和focal loss一样的如指数focal loss(EFL f ( p t ) = e η p t f(p_t) = e^{eta p_t} f(pt)=eηpt) 也有效果
  2. context vector 是有正则的效果,将其全部置为 0,基本不会影响结果。
  3. DA-Faster 的 Instance-level 对齐没有什么作用,反而会降低模型的performance。

其中 P 指的是使用 CycleGAN 将源数据转化为目标数据风格后拿去训练。

发现一个问题:

  • 根据实验结果,似乎强局部对齐分类器(L)的效果没有使用 CycleGAN 生成的数据来训练效果好。还不如直接拿 CycleGAN 生成的图片训练,而不使用强局部对齐分类器(L)。特别是在 F L ( γ = 3 ) FL(gamma = 3) FL(γ=3) 的时候,有 P 和 没有 P的实验效果相差太大。

最后

以上就是留胡子爆米花为你收集整理的论文笔记:Strong-Weak Distribution Alignment for Adaptive Object Detection的全部内容,希望文章能够帮你解决论文笔记:Strong-Weak Distribution Alignment for Adaptive Object Detection所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部