干了这么多年视觉,你要是只会处理 RGB 图,出去都不好意思跟人聊。现在的趋势很明显——单模态已经到头了。RGB 再有本事,遇到夜间场景、强反光、遮挡严重的情况,照样抓瞎。怎么办?加传感器,多模态融合。
最早玩多模态的是自动驾驶,车上不仅有摄像头,还有 LiDAR 和毫米波雷达。你们在论文里看到的那些 fancy 的 RGB-D 语义分割,那 Depth 图就是由 LiDAR 点云投影而来的。RGB 提供纹理和色彩信息,Depth 提供几何和距离信息——这两个互补性极强。你想象一下,一个红色消防栓在 RGB 图里清晰可见,但如果它刚好在一辆红色汽车的旁边,纯 RGB 模型很容易把两者混为一谈;加了 Depth 通道,消防栓是圆柱体、离地高度固定,汽车是扁平的大平面,几何特征一区分,立刻泾渭分明。
融合的策略分三个层次:早期融合、中期融合、晚期融合。
早期融合就是把 RGB 和 Depth 在输入端直接拼成 4 通道,喂给一个共享的编码器。简单粗暴,但问题是两种模态的数据分布差异太大了——RGB 在 [0,255] 之间,Depth 在 0 到几十米之间,直接拼接的话梯度流向不平衡,Depth 的贡献会被 RGB 淹没。归一化做得再好,早期融合也很难让网络学会“什么时候该信 RGB,什么时候该信 Depth”。
晚期融合就是各自过两个独立的编码器,最后在决策层做平均或者投票。这方法的缺点是模态之间完全没有交互,白白损失了互补信息。
所以现在的主流是 中期融合——在编码器的不同层之间加入融合模块。最常见的是用 Attention 机制,以 RGB 特征为 Query,以 Depth 特征为 Key 和 Value,做 Cross-Attention,让 RGB 特征主动去“查询”Depth 特征中的几何信息来补全自己。或者反过来,Depth 去查询 RGB 的纹理信息。CMX 和 ESANet 这些工作就是这个路数,效果确实比前两种高出一截。
但多模态的坑也深不见底。传感器标定和同步就是第一道鬼门关——摄像头和 LiDAR 的时间戳没对齐,物体移动了 10 厘米,融合出来的特征就是错位的。还有 模态缺失 的问题:下雨天 LiDAR 点云稀疏得一塌糊涂,夜间摄像头图像全是噪点。你训练的时候有完整模态,推理的时候缺了一个,模型直接崩给你看。所以现在又有人搞 模态互补学习,让模型即使在缺失一个模态的情况下也能正常工作,这个方向挺实用。
再说说比 Depth 更新潮的——语言驱动的分割。CLIP 出来之后,大家发现图文预训练模型蕴含了丰富的语义先验,于是 OVSeg、CLIPSeg 这些开放词汇分割模型把文本描述当作条件信号,你输入一句“那个穿红衣服的骑自行车的人”,模型就能把对应区域分割出来。这已经突破了固定类别数目的限制,属于开放世界分割的范畴了。但说句实话,这玩意儿目前还偏演示性质,真实场景里文本描述的歧义性和复杂指代关系会让模型表现忽好忽坏,远不如固定的类别标签稳定可靠。
还有个另类是 事件相机,动态范围极高、不怕运动模糊,在高速场景下香得不行。但事件流数据是非结构化的时空点云,处理起来比 RGB 麻烦一个数量级,目前只有少数几个实验室在玩,离工业落地还早。
我的观点很明确——多模态是未来,但前提是传感器成本降下来、标定流程自动化。眼下绝大多数项目还是 RGB-only,因为加一个 LiDAR 的成本顶得上十台 GPU 服务器。所以搞研究的可以多玩模态融合,搞工程的请你先把单模态做到极致再说。


