文章地址:CMX: Cross-Modal Fusion for RGB-X Semantic Segmentation with Transformers | Papers With Code代码地址:
huaaaliu/RGBX_Semantic_Segmentation (github.com)
这篇文章是语义分割NYUdepthv2数据集排名第一的方法,同时概括了多种辅助输入,这里只关注RGB-D输入。
首先要明白RGB图像提供了物体的彩色纹理特征。而对于一些不同的小物体他们拥有相同的纹理和颜色,就很难通过RGB图像将他们分割出来。
深度图像中每个像素的值是物体距离摄像机的距离,因此深度信息可以提供物体的几何形状信息,来帮助rgb一起辨别物体的边界。
因此如何有效地融入深度信息是非常重要的,我们可以把它分为两个策略,第一个是深度信息帮助提取RGB特征,被称作辅助引导。为下图中的a,代表有depth-aware,shape-aware,spatial-information-guided。
第二种是采用两个backbone分别提取rgb和其他模态。然后融合为一个特征进行下一步的分割。为下图中的b,代表作为ACNet,SA-Gate。
第三种是本文的方法,同时采用CNN和Transformer,即从feature图片维度和序列维度进行融合。采用transformer是为了补充卷积缺少的长范围依赖。
作者提出了CMX框架,采用了基于VIT的模型,用来进行特征的交互和融合,CMX包含两个模块,分别为FRM(跨模态特征完善),利用空间和通道关系,使两个分支都能关注与对方的互补信息,用来解决引入多模态产生的噪声问题。另一个是FFM(特征融合)模块,融合经过提纯的RGB和depth信息,并且FFM模块包括两个阶段,分别为交叉注意力机制和通道编码。
总览整个框架:FRM模块从不同层,进行通道和注意力完善,FFM从序列到序列进行交叉注意力。
对于FRM:
逐通道特征完善,输入 rgb和depth,进行全局最大池化和全局平均池化,以此来保留更多的信息,将生成的结果进行concat,维度变为4c,然后使用一个mlp加sigmoid来获得权重,将权重分开为Wrgb和Wdepth,然后再与原始的输入进行相乘。
逐空间特征完善,将rgb和depth进行concat,然后通过两个1x1卷积加RELU,编码为两个空间权重图,在使用softmax获得编码的特征图。
最终的输出经过两个超参数控制权重相加。
对于FFM:
在stage1,使用了交叉注意力,concat输出,在stage2,经过通道编码最终输出到原图像大小。
stage1的信息交换,首先将输入特征展平为N(HXW)XC,接着使用一个线性编码,生成残差向量和交互向量,接着使用交叉注意力机制,与原始的Q乘以K转置不同,这里使用K转置乘以V,来较少计算量,最后在乘以Q。同时前面生成的两个向量也会嵌入(相乘)到K和V中。
stage2的融合,我们使用通道embedding,来融合两个支路,同时才用了一个深度可分离卷积实现跳连接。
实验部分也很详细:
数据集采用NYUdepthv2,输入为640x480,batchsize=8,epoch=500。
backbone采用的是semformer中的MIT作为backbone,MLP-decoder作为decoder。
实验结果:第一名!!!!!!!
消融实验:
1:验证两个模块的有效性
2:验证两个模块内部变量
通道完善,空间完善,最大池化,平均池化,只有stage2(没有信息交换),只有self-attention(context向量不进行交换)
最后的分割图:(只看第一行深度图)