TransFusion: Multi-modal Fusion Network for Semantic Segmentation
论文链接:
https://openaccess.thecvf.com/content/CVPR2023W/PCV/papers/Maiti_TransFusion_Multi-Modal_Fusion_Network_for_Semantic_Segmentation_CVPRW_2023_paper.pdf
代码链接:
https://github.com/digital-idiot/TransFusionX
简介
与使用单模态数据相比,2D 彩色图像和 3D 点云的互补特性可以潜在地改善语义分割。然而,由于数据的异质性、维度、将不同模态与同一参考系对齐的困难以及模态特定偏差的存在,多模态数据融合具有挑战性。因此,本文提出了一种用于语义分割的新模型 TransFusion,该模型直接将图像与点云融合,而不需要对点云进行有损预处理。TransFusion 优于使用带有深度图的图像的基线 FCN 模型。与基线相比,所提出方法将 Vaihingen 和 Potsdam 数据集的 mIoU 提高了 4% 和 2%。
背景
语义分割是计算机视觉和图像分析中的一项关键任务,其目标是将语义标签分配给图像中的每个像素。这涉及将图像划分为多个片段,每个片段对应于一个特定的类别。由于多模态数据可能提供更好的场景表示,因此语义分割任务可能会受益于多模态数据(如果可用)的适当使用。
对于 3D 点云语义分割,输入特征通常与点云绑定,分割任务在点云本身上执行,从而产生分割的 3D 点云。如果需要二维分割标签,可以将分割的点云投影到平面上。或者,可以在预处理步骤中从点云生成平面表示,例如数字表面模型(DSM),以与相应图像融合。这允许使用常见的卷积神经网络进行 2D 语义分割 。另一方面,点云和相应的类图像特征可以在 3D 特征空间中融合,使用体素化变换为网格状 3D 特征空间,然后通过降维在 2D 中进行分割合适的模型。因此,在这两种情况下,后续模型都无法充分利用点云中存在的信息的潜力。
本文引入一种新颖的二维语义分割架构来直接融合点云和图像来解决上述问题。采用 Transformer 和基于 FCN 的网络进行融合,称为 TransFusion。TransFusion 模型的优势如下:
(1)TransFusion 不需要对点云进行任何有损预处理来生成 3D 体素或 2D 投影
(2)TransFusion 接受点云,无论空间稀疏性或可变点密度如何
(3)TransFusion 对于每个样本的点数没有理论限制
(4)TransFusion 允许无缝3D 和 2D 特征空间之间的映射,同时是端到端可学习的。
方法
基于深度学习的点云和图像融合架构通常采用图 1 所示的三种明显表示中的一种或多种来描述联合 2D-3D 特征。
图 1. 点云和图像的重要 2D-3D 联合表示。(a) 具有投影图像特征的点云,(b) 具有叠加图像特征的体素,© 与图像叠加的深度图或表面模型
本文目标是设计一个统一的二维语义分割模型,能够直接融合点云和单图像。提出的模型与点云的来源无关,例如激光雷达或立体匹配。 然而,本文将专注于融合航空图像和相应的点云对。我们采用后期融合策略对模式进行特征级融合。首先,模型在各自的特征提取器分支中分别从每种模态导出。随后使用分割头融合这些特征以进行最终的密集预测。TransFusion 的综合架构如图 2 所示。
图 2. 所提出模型的概述。该架构由两个分支组成。图像分支包括FCN网络,点云分支包括基于注意力的架构。这里的[+]代表特征融合模块。
1.图像分支
为了从图像中提取密集特征,使用现成的 FCN backbone。采用典型的编码器解码器FCN网络进行图像特征提取。本文使用轻量级 ResNet 主干网作为编码器,使用 DeepLabV3+ 作为解码器,而没有最终的预测头。编码器负责从输入图像中提取特征。
2.点云分支
点云分支的设计受到 PerceiverIO 【1】的启发。然而,与 PerceiverIO 不同,我们不会将多模态数据与填充有可学习模态向量的变量嵌入相结合。
【1】Perceiver IO: A general architecture for structured inputs & outputs. In International Conference on Learning Representations, 2022.
这有两个主要原因:
(1)模态学习给模型学习和推断每个样本的源模态带来了额外的负担。
(2)连接来自不同模态的输入极大地增加了馈送到初始transformer块中的样本的有效数量。考虑到注意力层的 O(n2) 复杂度,对于我们的用例来说,计算成本可能会非常昂贵。
因此,本文利用 Transformer 的独特能力来查询更高维度的潜在特征,以预测较低维度的特征。与 PerceiverIO 不同,我们为每种模态使用单独的分支,从而消除了模态学习的需要。我们将点云 转换为潜在空间 。随后,在 Z 上应用 n 个变换器块以获得更精细的潜在特征 。最后,应用交叉注意力来查询 以预测密集像素位置处的特征 。使用与点云相同的位置编码方案对相对 2D 像素坐标进行编码,并使用编码后的坐标作为该交叉注意模块的查询 (X)。这里,N是点云中的点数,C表示每个点的特征向量大小。A、A’、B 和 B’ 是控制潜在空间大小的模型属性。M表示相应图像中的像素总数,G是所需的特征尺寸。参数 n 表示顺序应用于初始潜在空间的注意力块的数量。因此,点云分支的目的是导出相应图像的每个像素位置处的点云特征。
3.特征融合
该模块的目的是融合各个模态的每个特征提取器分支生成的特征。首先使用从其他模态导出的权重来细化每种模态的特征,然后融合它们。本文采用上下文建模的原理,并使用softmax来导出模态细化权重。最初,来自点云的图像的M × G 特征被重新转换为 H × W × G,以与相同形状的图像特征 (I) 保持尺寸兼容性。图像的高度和宽度是 H 和 W 。
我们融合了如式(1)所示的特征。(1),其中[·]表示Hadamard积,σ表示沿特征维度的softmax运算。这里,Hadamard 乘积与来自其他模态的 softmax 权重一起细化了各自的特征,然后进行求和以生成融合特征。最后,对于密集预测,在融合特征 F 上应用具有 1 × 1 卷积的残差层。
实验结果
Vaihingen 数据集包含 33 个带有标签的不同大小的图块。该数据集主要包含城市场景。图像具有 3 个波段 NIR-R-G,空间分辨率约为 8 cm。使用机载激光雷达获取相应的点云。从这些点云导出的关联 nDSM 也可与数据一起使用。
表 1. Vaihingen 实验的指标。最佳值以粗体标记。Surf.:不透水表面,Bld:建筑物,Veg.:低植被。
图 3. Vaihingen 实验的一对图像的定性比较。(a)和(e)代表两个不同子区域的图像,其中(b)和(f)是各自的基本事实(标签)。© 和 (g) 描述了基线预测,而 (d) 和 (h) 是我们提出的方法 TransFusion 的预测。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。