adaptsegnet 论文分析比较好的
https://blog.csdn.net/weixin_43795588/article/details/118058775
常用的语义分割一般是由两部分组成:一部分是特征提取器,比如可以用Resnet系列,或者VGG系列来提取图片的特征;二是分类器,将前面提取的特征送入到分类器里面(分类器比较常见的是PSP,或者DA分割里面最常用的 DeepLab V2里的ASPP)。通过把特征提取提到的特征送入到判别器里面,进而来完成整个DA。
为什么把特征送入判别器能完成DA呢?从判别器的作用上,我们可以来理解这个问题。
训练判别器,就能让它区分输入进来的图片到底是真还是假。在这个过程中,需要用判别器区分输入的特征是源域还是目标域。得到一个能够区分特征是源域和目标域的判别器之后,固定判别的参数不变,去训练分割网络的特征提取器。
如何训练呢:让这个特征提取器来混淆这个判别器。
那么特征提取器又怎么来混淆判别器呢?无论是提取源域还是目标域的特征,都要把这两个特征的分布对齐,这样的话就相当于把这两个域的特征,使这个判别器区分不出来,那么就完成了“混淆”的任务。一旦完成了“混淆”任务,就说明特征提取器提取到了这个“域不变”的信息。
这里的output space就是,语义分割网络输出的结果经过softmax之后,变成了一个概率的东西,我们称这个概率为output space,
此论文的作者认为直接用特征做对抗是不好的,不如用output space概率来做对抗,为什么呢?
因为作者认为,在原本,就比如分类里面,大家都是用特征来做的,但是分割是不一样的。因为分割的高维度特征,就是你前面的特征部分,是一个非常长的向量,比如Resnet101的最后一层,它的特征长度2048维的,如此高维度特征,编码的信息当然更加复杂。但是对于语义分割,可能这些复杂信息并不是有用的。这是作者的一个观点。(分类输出结果的特征编码维度太高(改用概率输出结果),而且对于语义分类来说,输出的特征并不是所有信息都有用,有冗余信息)
作者的另一个观点是,语义分割的输出的结果虽然是低维度的,即output space这个概率,实际上只有类别数的这样的一个维度,就是假如类别数c的话,它这个概率对于每个像素点就是c*1的一个向量。虽然是低维度空间,但是一整个图片的输出,实际上包含了场景、布局以及上下文这些丰富的信息。本论文作者认为不管图片来自于源域还是目标域,分割出来的结果在空间上,应该是具有非常强的相似性的。因为不管是仿真数据还是模拟数据,同样都是在做的分割任务上。如上图,其源域和目标域都是针对于自动驾驶来做的。很明显的一个观点是,中间大部分可能是路,上面一般是天,然后左右可能是建筑。这种场景上的分布是有非常强的相似性的,因此作者认为直接使用低维度的这个概率,就是softmax输出来进行对抗就能取得一个非常好的效果。
(概率输出结果虽然维度低,但是包含的信息足够语义分割使用,足以用来做语义分类)
基于以上两个insight,作者就设计直接把概率放到判别器里面。训练的过程实际上和GAN是一样的,只不过不再是把特征传入判别器里面,而是把最终输出的概率传到判别器里面。
————————————————
版权声明:本文为CSDN博主「Jasmine65590」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43795588/article/details/118058775