DANNet论文笔记


DANNet论文笔记

前言

DANNet是发表在CVPR 2021的paper,是第一个用于夜间语义分割的单阶段适应(one-stage adaptation)框架,很有精读的意义。本来这篇博客title应该写为论文精读,但是我懒得把所有内容都写进来,故改为笔记。
DANNet不要和DANet弄混了)

施工进度

只写了文字部分,在markdown里敲latex属实是折磨自己。图床也没学会咋用,属于是废物一个。(其实还没学)
为了解决latex渲染问题换了个渲染引擎,然后行间公式全部不见了,就先这样吧。

论文链接

DANNet: A One-Stage Domain Adaptation Network for Unsupervised Nighttime Semantic Segmentation

讲解参考

暂无。夜间图像语义分割这块做的人有点少。

主要贡献

  1. DANNNet 是第一个用于夜间语义分割的单阶段适应(one-stage adaptation)框架。这个域适应的过程是通过GAN实现的,设计一个共享权重的RelightNet和Semantic Segmentation Network充当GAN中的Generator,然后有两个Discriminators分别识别来自源域(数据来自ImageNet)还是目标域(Dark Zurich-D (daytime))和识别来自源域(数据来自ImageNet)还是目标域(Dark Zurich-N (nighttime))的。
  2. 用daytime图像分割的结果作为对应nighttime的label来作伪监督学习,因为拍摄时间不同,只能保证静态物体(比如天空,楼房,街道等)的位置信息相同,所以此处计算Loss的时候只考虑静态对象的分类。
  3. Ablation study证明了DANNet的每一个部件都是有效的。(我看完觉得消融实验做的不完全,精读后发现很多部件的有效性实际上没有证明。)

三个模块

DANNet由RelightNet,Segmentation Network和GAN三个部分构成。

RelightNet

  1. RelightNet的作用是让来源不同的三类输入在进入分割网络前的强度分布相互靠近,也就是在强度分布上要相似。这个网络一共有三个组成了,也就是
  2. 其中是一种广泛应用于图像去噪和图像合成的损失函数,目的是让生成的图像噪点更小,看起来更加平滑,有利于之后的分割网络。
  3. 其中 用来让白天和黑夜场景下的输入最终有相近的光照效果。
  4. 其中是一种广泛应用在图像重建的损失函数,是为了保证生成的重光照结果R和输入I有着相同的结构信息。此处使用简化版本的SSIM。

Segmentation Network

  1. 语义分割网络采用了三种热门的网络,分别是Deeplab-v2,RefineNet和PSPNet ,backbone全部采用ResNet-101。
  2. 一次训练中只使用上述的一种网络,对于来自三个域的输入,共享网络权重。三个域输入分割的结果记作
  3. 由于源域中不同对象类别的像素数量不平衡,占比大的类别(比如sky, road and sidewalk等)容易收敛,而占比小的类别则相反。统计数据集中每一个对象类别的像素占比,设计一个re-weighting策略。避免数值爆炸使用了对数,并且统计了平均值和标准差对重加权的参数进行标准化(训练时凭经验初始化了std=0.05,avg=1.0,但在消融实验中std=0.16时效果最好)。
  4. 结合(3.)中提到的重加权策略改进了cross-entropy loss,记作。注意只有源域的输入有GT,所以只有源域进行这个损失函数计算。
  5. 来自daytime和nighttime的分割结果可以进行伪监督学习,即是用daytime图像分割的结果作为对应nighttime的label,然后进行损失函数的计算。这里只考虑静态目标类别,损失函数记作。因为两张图拍摄时可能没有完全对其,所以引入𝑝(𝑐,𝑖)来解决这个问题。公式(9)中的j表示i周围的坐标,c表示目标类别。

GAN

  1. Generator 由重光照网络和语义分割网络组成。
  2. 有两个Discriminators,记作,分别识别来自源域(数据来自CityScapes,有label)还是目标域(Dark Zurich-D (daytime))和识别来自源域(数据来自CityScapes,有label)还是目标域(Dark Zurich-N (nighttime))的。
  3. 把前两个网络封装看作交替训练。
  4. 𝐺训练时的损失函数为,为了使得分割结果与源域的分割结果相近,增加了损失函数,本质是两个最小二乘损失函数的和。其中对应的label。
  5. 𝐷训练时的损失函数为,其中符号定义与(4.)中类似。

可以改进的点

等我改进成功了再写吧


Hello! Next →