1 介绍
输入:同一相机位置的环视图像组
输出:密集的3D语言嵌入体素图,该图能够支持一系列开放词汇量的任务。
主要分为三步:
- 2D-3D编码器从输入图像生成一个体素特征网络。
- 占用头解码这个网络并将其转换成一个占用图,能够表明哪些体素处于空闲或占用状态。
-
3D语言头将每一个占用体素嵌入语言模型,使之能够执行3D开放词汇任务。
工作流程示意图
2D-3D编码器
其中,,
,
是体素网络的空间维度,
是每个体素的特征维度。得到的体素网络接下来会传给两个平行的预测头,分别为了进行不分类别的占用预测和文本对齐的特征预测任务。
占用头
占用头由“Linear-Softplus-Linear”结构的
个隐藏块构成非线性网络实现,将体素网络分类为“空闲”或“占用”状态。每个隐藏块有
个隐藏特征。最后一个线性分类器输出两个逻辑回归值,每个类别一个。输出为张量形式:
3D语言头
和CLIP类似,对每个体素特征做处理,输出视觉、语言对齐的嵌入式向量。这个头的结构和占用头类似,它由个“Linear-Softplus-Linear”块组成,每个隐藏块的线性层输出
个特征,最后一个线性层为每个体素输出
维的视觉语言嵌入式向量。
2 三模态自监督训练算法
占用损失(occupancy loss)
为了将无标签的LiDAR点云图的每个点云打上标签,本文引入占用损失(occupancy loss),它是交叉熵损失和Lovász-softmax损失的联合函数:
其中,,1表示占用,0表示空闲。
图像-语言蒸馏(Image-language distillation)
为了得到特征目标(feature targets),需要把3D点投影到2D点
,其中
对应该点在相机
中的
坐标。
这样就得到了3D点云对应的相机坐标下的2D点集。然后对于相机图像,用预训练的的文本-图像对齐的特征提取器进行特征提取,之后用3D投影的2D点坐标进行采样,就得到了对应点云的特征目标
。
为了训练3D语言头,本文采用了特征目标和预测目标之前的均方误差损失:
最终损失