Generative Semantic Segmentation
语雀文档: https://www.yuque.com/lart/papers/owdlpaueygk4bumy
![CVPR | Generative Semantic Segmentation_第1张图片](http://img.e-com-net.com/image/info8/7c479e43394741c9928cda965d84598f.jpg)
- 论文:http://arxiv.org/abs/2303.11316
- 代码:https://github.com/fudan-zvg/GSS
这是一篇基于生成方法构建的语义分割模型. 通过精心设计的数据变换方案、条件分布近似策略, 有效地将图像编码嫁接改造了mask图像的自编码过程, 从而实现了从图像到语义mask的映射过程.
文中为了合理化这一过程, 从数据分布的角度进行了大量的讨论和推导, 细节过于琐碎, 但是整体思路非常直观, 借用文中的训练与推理图示可以直观的理解这一过程:
![CVPR | Generative Semantic Segmentation_第2张图片](http://img.e-com-net.com/image/info8/4453bc70854f45f9a3986c6135eaaf52.jpg)
第一阶段中引入了一个特殊的概念, 即Maskige. 这一改变使用RGB彩色图像表示了语义分割mask数据, 基本上类似于我们对语义分割预测的可视化结果.
这种基于Maskige的设计, 好处是为利用现有的基于大规模彩色图像预训练的自编码器提供了平滑的基础, 文中是DALL·E中在OpenImage数据集上预训练的VQVAE, 并且之后参数便被冻结, 不会被训练, 这也降低了本文模型自身的计算负担.
这一概念引入后, 就需要考虑如何将原始的Mask与这种中间表示Maskige进行转换的问题了. 所以此阶段的关键在于优化原始的Mask与中间表示Maskige的正反变换结构的参数了.
![CVPR | Generative Semantic Segmentation_第3张图片](http://img.e-com-net.com/image/info8/7c624b93043d4fa98d2c611b95428526.jpg)
第二个阶段是训练一个可以符合Maskige编码器分布的原始图像编码器. 从而用于第三阶段推理过程中替换Maskige(Mask)编码器的目的. 从这里实际上就揭示了本文思路的核心, 即使用适当的图像编码器替换自编码器的编码器部分, 从而实现了图像到Maskiage的映射.
第三个阶段则是替换Maskige编码器后, 基于训练好的图像编码器I、Maskige解码器D和逆变换, 可以实现图像x到最终分割Mask c的一个映射.
最终模型的具体图示为:
![CVPR | Generative Semantic Segmentation_第4张图片](http://img.e-com-net.com/image/info8/6a05d04aa5c94ebf99a250e15d06a21b.jpg)
这里作者们基于线性假设和非线性假设两种方式对正反变换进行了设计与实验:
- 线性假设: 使用单一的从三维空间到K维空间的参数映射矩阵作为Mask到Maskige的参数. 对于反变换, 对于线性假设的情况下, 可以基于最小二乘法获得一个基于正变换参数的显式解, 当然也可以基于梯度下降优化.
- 非线性假设: 使用CNN或者Transformer等非线性模块来表示反变换.(这里仅在反变换上考虑了非线性情况)可以通过梯度下降优化.
通过设计与实验分析, 作者们最终选择了两个不同的变体:
- GSS-FF: 两个变换都使用线性函数, 正变换使用最大距离假设(即最大化每个类别编码之间的颜色差异, 作者设计了三种不同的构造方式, 其中类别特定的细化策略, 即在R/G/B颜色值上具有最低的重叠度的色值分配策略, 即(0, 128, 255)优于(128, 128, 128), 并限制色彩远离灰色, 以避免与其他颜色太接近而带来的问题. 这种设计可以获得最好的性能)进行初始化, 而反变换使用最小二乘法优化.
- GSS-FT(-W): 正变换使用线性函数, 反变换使用非线性函数. 正变换参数使用最大距离假设初始化, 反变换使用梯度下降优化.-W版本利用单层shifted window transformer block作为非线性变换.
这些变体中值得注意的, 正反变换如果需要训练的话, 二者的训练过程没有必然的关联.
- 正变换如果需要训练, 则这里会冻结VQVAE自编码器所使用的DALL-E预训练参数不再调整, 直接使用Mask重构任务, 基于SGD训练正变换.(逆变换此时如果是不需要训练的, 则可以直接基于运算关系获得).
- 逆变换如果需要训练, 主要在文中提到的变体GSS-FT和GSS-FT-W中, 作者们发现使用带噪声的Maskige会具有更好的效果. 这里为了获得带噪声的Maskige, 会在获得确定的正变换参数后, 配合预训练的VQVAE的编码器, 来监督作者们额外添加的图像编码器的编码结果, 从而训练图像编码器逼近对应的mask表征. 原始图像生成的中间隐变量, 可以借助VQVAE的解码器生成带噪的Maskige. 从而可以训练逆变换的参数.