论文地址:https://arxiv.org/abs/2303.03595
论文代码:https://github.com/sankin97/LoGoNet
论文背景
激光雷达传感器点云通常是稀疏的,无法提供足够的上下文来区分远处的区域,从而造成性能次优。
激光雷达-摄像机融合方法在三维目标检测中表现出了良好的性能。目前先进的多模态方法主要进行全局融合,即在整个场景中融合图像特征和点云特征。这样的实践缺乏细粒度的区域级信息,从而产生了次优的融合性能。
为了解决上述问题,论文提出了一种新的局部到全局的融合网络,称为 LoGoNet,它在全局和局部两个层次上进行激光雷达-相机的融合。
LoGoNet 由全局融合(GoF)、局部融合(LoF)和特征动态聚合(FDA)三个新的组件组成。
相关工作
基于图像的 3D 目标检测
由于摄像机比激光雷达传感器便宜得多,许多研究人员致力于通过将图像作为唯一的输入信号来进行3D物体检测。 对于基于图像的 3D 目标检测,由于深度信息不能直接从图像中获得,一些工作首先进行深度估计以生成伪激光雷达表示或将2D特征提升到三维空间,然后在三维空间中进行目标检测。最近,一些工作引入了基于 transformer 的体系结构来利用检测 pipeline 中的3D对象查询和3D-2D对应。 由于从图像中准确估计深度信息极其困难,因此基于图像的方法的性能仍然不如基于激光雷达的方法。
基于雷达的 3D 目标检测
根据所使用的点云表示的类型,当前基于 Lidar 的方法大致可以分为三类:基于点的方法、基于体素的方法和基于点体素的融合方法。基于点的方法直接以原始点云作为输入,利用多层感知器层提取点特征;基于体素的方法倾向于将点云转化为体素,并利用3D稀疏卷积层提取体素特征。最近的一些工作引入了 transformer 来捕捉体素之间的 long-range 关系。点-体素融合方法利用基于体素和基于点的 backbones 从点云的不同表示中提取特征。
多模态 3D 目标检测
多模态融合技术综合了图像和点云的优点, AVOD、MV3D 和 F-Pointnet 是具有开创性的 proposal-level 融合工作,它们独立地进行两个模态的特征提取,并通过二维和三维感兴趣区域直接简单地连接多模态特征。 Clocs 直接组合来自预先训练的二维和三维检测器的检测结果,而不集成特征 。它们在跨模态融合中保持了实例语义的一致性,特征聚合和交互都比较粗糙。 因此,通过交叉融合增强点云特征得到了越来越多的关注。 Point decoration 方法、用从预先训练的分割网络中提取的语义分数或图像特征来增强每个激光雷达点。 3D-CVF 和 EPNET 探索了用学习的校准矩阵进行交叉特征融合。 最近的一些研究以同样的方式探索了基于视图变换的共享表示空间中的全局融合。 这些方法在利用点云的空间 clues 方面效果较差,而且可能会影响摄像机 BEV 表示和跨模态对齐的质量。 此外,许多并行方法引入交叉关注模块,通过学习的偏移矩阵自适应地对齐和融合点云特征和图像特征。
论文框架
LogoNet 的输入点云和多相机图像分别为为 P = { ( x i , y i , z i ) ∣ f i } i = 1 N P=\{ (x_i,y_i,z_i) | f_i \}_{i=1}^{N} P={(xi,yi,zi)∣fi}i=1N 和 来自 T T T个相机的 I = { I j ∈ R H I × W I × 3 } j = 1 T I = \{I_j \in \R^{H_I \times W_I \times 3}\}_{j=1}^T I={Ij∈RHI×WI×3}j=1T。其中 ( x i , y i , z i ) (x_i,y_i,z_i) (xi,yi,zi) 是第 i i i 个点的空间坐标, f i ∈ R C p f_i \in \R^{C_p} fi∈RCp 是包含每个点的强度或延伸的附加特征, N N N 是点云中的点数, H I H_I HI 和 W I W_I WI 是输入图像的高度和宽度。对于点云分支,在给定输入点云的情况下,使用基于3D体素的 backbone 生成 1 × , 2 × , 4 × 1×,2 ×, 4× 1×,2×,4× 和 8 × 8× 8× 下采样体素特征 F V ∈ R X × Y × Z × C V F_V∈\R^{X×Y×Z×C_V} FV∈RX×Y×Z×CV,其中 C V C_V CV 为每个体素特征的通道数, ( X , Y , Z ) (X, Y, Z) (X,Y,Z) 为每个体素层的网格大小。然后,从提取的分层体素特征中使用一个区域提议网络(RPN)来产生初始的 bounding box proposal B = { B 1 , B 2 , . . . , B n } B = \{ B_1,B_2,...,B_n \} B={B1,B2,...,Bn}。对于图像分支,利用二维检测器对原始多摄像机图像进行处理,得到稠密语义图像特征 F I ∈ R H I 4 × W I 4 × C I F_I∈\R^{\frac{H_I}{4}×\frac{W_I}{4}×C_I} FI∈R4HI×4WI×CI,其中 C I C_I CI 为图像特征的通道数。最后,将局部到全局的交叉模态融合应用到两阶段 refinement 中,其中多级体素特征 F V F_V FV、图像特征 F I F_I FI 和从原始点云中提取的局部位置信息自适应融合。LogoNet(local-to-global)融合方法主要包括全局融合(GoF)、局部融合(LoF)和特征动态聚合模块(FDA)。
全局融合模块
以往的全局融合方法通常使用体素中心来表示每个体素特征的位置。然而,这样的做法不可避免地忽略了每个体素内点的实际分布。 如 KPConv 和 PDV 所观察到的,体素点中心更接近物体的扫描表面。 它们更有效地为大尺度点云提供原始几何形状信息和尺度。因此,论文设计了质心动态融合(CDF)模块,以在全局体素特征空间中自适应地融合点云特征和图像特征。利用这些体素点质心来表示非空体素特征的空间位置。这些体素特征及其相关的图像特征通过可变形交叉注意力模块自适应融合,如图所示。给定非空体素特征集合 F V = { V i , f V i } i = 1 N V F_V =\{V_i,f_{V_i}\}^{N_V}_{i=1} FV={Vi,fVi}i=1NV和图像特征 F I F_I FI,其中 V i V_i Vi 为体素索引, f V i ∈ R C V f_{Vi}∈\R^{C_V} fVi∈RCV 为非空体素特征向量, N V N_V NV为非空体素的数量。通过在同一体素 V i V_i Vi 中对所有点的空间位置求平均,得到每个体素特征 f V i f_{V_i} fVi 的点质心 c i c_i ci: c i = 1 ∣ P ( V i ) ∣ ∑ p i ∈ P ( V i ) p i , (1) \tag1 c_i = \frac{1}{|\mathcal P(V_i)|} \sum_{p_i \in \mathcal P(V_i)}p_i, ci=∣P(Vi)∣1pi∈P(Vi)∑pi,(1) 其中 p i = ( x i , y i , z i ) p_i =(x_i,y_i,z_i) pi=(xi,yi,zi) 是空间坐标, ∣ P ( V i ) ∣ |\mathcal P(V_i)| ∣P(Vi)∣ 是体素 V i V_i Vi 内的点数。接下来,为每个计算的体素点质心分配一个体素网格索引,并通过哈希表匹配相关的体素特征。然后,利用摄像机投影矩阵 M \mathcal M M,从每个计算的体素点质心 c i c_i ci 计算出图像平面上的参考点 p i \boldsymbol {p_i} pi: p i = M ⋅ c i , (2) \tag 2 \boldsymbol {p_i} = \mathcal M \cdot c_i, pi=M⋅ci,(2)式中 M \mathcal M M为相机内参矩阵与外参矩阵的乘积,运算 ⋅ · ⋅ 为矩阵乘法。在参考点的基础上,对参考点周围的一组图像特征 F I k F^k_I FIk 进行加权,生成聚合图像特征 F ^ I i \hat F_{I}^i F^Ii ,该集合将学习到的偏移量应用于图像特征 F I F_I FI。 将每个体素特征表示为查询 Q i Q_i Qi,将采样特征 F ^ I i \hat F_I^i F^Ii 表示为键 K K K 和值 V V V。 整个质心动态融合过程表述为: F I k = F I ( p i + Δ p m i k ) , CDF ( Q i , F ^ I i ) = ∑ m = 1 M W M [ ∑ k = 1 K A m i k ⋅ ( W m ′ F I k ) ] , (3) \tag3 F_I^k = F_I(\boldsymbol p_i + \Delta \boldsymbol p_{mik}),\\\text{CDF}(Q_i,\hat F_I^i) = \sum_{m=1}^{M} W_M [\sum_{k=1}^{K}A_{mik}\cdot (W_m^{'}F_I^k)], FIk=FI(pi+Δpmik),CDF(Qi,F^Ii)=m=1∑MWM[k=1∑KAmik⋅(Wm′FIk)],(3)其中, W m W_m Wm 和 W m ′ W_m^{'} Wm′为可学习权值, M M M 为自注意头的个数, K K K 为总采样点数。 Δ p m i k \Delta p_{mik} Δpmik 和 A m i k A_{mik} Amik 分别表示第 m m m 个注意头中第 k k k 个采样点的采样偏移量和注意权重。它们都是通过在查询特征 Q i Q_i Qi 上的线性投影得到的。 将图像增强后的体素特征与原始体素特征进行级联,得到融合体素特征 F ^ V ∗ ∈ R N × 2 C V \hat F^*_V∈\R^{N×2C_V} F^V∗∈RN×2CV。 然后,在 F ^ V ∗ \hat F^*_V F^V∗ 上采用一个 FFN 来减少通道的数量,并从CDF模块获得最终的融合特征 F ^ V ∗ ∈ R N × C V \hat F^*_V∈\R^{N×C_V} F^V∗∈RN×CV,其中FFN表示一个前馈网络。最后,在 F ^ V ∗ \hat F^*_V F^V∗ 上执行 ROI pooling,以生成 proposal 特征 F B g F^g_B FBg 用于后续的 proposal refinement。
局部融合模块
为了在多模态融合过程中提供更多的局部和细粒度几何信息,提出了网格点动态融合(GDF)局部融合(LOF)模块,在 proposal 层动态融合点云特征和图像特征。给定每个 bounding box proposal B i B_i Bi,将其划分为 u × u × u u×u×u u×u×u 的规则体素网格 G j G_j Gj,其中 j j j 索引体素网格。 取中心点 z j z_j zj 作为对应体素网格 G j G_j Gj 的网格点。 首先,使用位置信息编码器(PIE)对相关的位置信息进行编码,并为每个 bounding box proposal 生成每个网格特征 F G j F^j_G FGj。 对每个 proposal 的网格进行 PIE 处理,得到局部网格感兴趣区域特征 F B p = { F G 1 , F G 1 , . . . , F G u 3 } F^p_B =\{F^1_G,F^1_G,...,F^{u^3}_G\} FBp={FG1,FG1,...,FGu3}。 每个网格特征 F G j F^j_G FGj 的 PIE计算如下: F G j = MLP ( γ , c B , log ( ∣ N G j ∣ + τ ) ) (4) \tag4 F^j_G = \text{MLP}(\gamma,c_B,\log(|N_{G_j}|+\tau)) FGj=MLP(γ,cB,log(∣NGj∣+τ))(4) 其中 γ = z j − c B γ=z_j-c_B γ=zj−cB 是每个网格与 bounding box proposla 质心 c B c_B cB 的相对位置, ∣ N G j ∣ |N_{G_j}| ∣NGj∣ 是每个体素网格 G j G_j Gj 中的点数, τ τ τ 是一个恒定的偏移量。 每个网格中的这些信息为在 region proposals 中构建细粒度跨模态融合提供了基础。 除了利用原始点云在每个体素网格中的位置信息外,论文还提出了网格动态融合(GDF)模块,使模型能够利用这些编码的局部ROI 网格特征 F B p F^p_B FBp 自适应地吸收相关的图像特征到局部 proposals 中。 然后,将网格点 G G G 的每个中心点 z j z_j zj 投影到类似于 GoF 模块的多视点图像平面上,并为每个 box proposal 获得若干个参考点 O ∈ R u 3 O∈\R^{u^3} O∈Ru3,对图像特征进行局部多模态特征融合。 利用交叉注意将局部采样图像特征与编码后的局部 ROI 网格特征 F B p F_B^p FBp 融合,查询特征 Q Q Q 是由 ROI 网格特征 F B p F_B^p FBp 与编码后的局部原始点云位置信息生成的、key 和 value 特征 K、V 是由参考点采样的图像特征 F I F_I FI 及其动态偏移量生成的,其操作与公式(3)相同。然后,将图像增强后的局部网格特征与原始的局部网格特征进行拼接,得到融合的网格特征 F ^ B l \hat F^l_B F^Bl。最后,在 F ^ B l \hat F^l_B F^Bl 上采用FFN算法减少通道数,得到融合后的ROI网格特征 F B l F^l_B FBl。
特征动态聚合模块
在LOF、GOF和PIE模之后,得到了三种特征,即 F B p F^p_B FBp、 F B l F^l_ B FBl 和 F B g F^g_B FBg。 这些特征是独立产生的,信息交互性和聚合性较差。因此,论文提出了特征动态聚合(FDA)模块,该模块引入了自注意来自适应地建立不同网格点之间的关系。首先得到每个 bounding box proposal 中所有编码网格点的聚合特征 F S F_S FS 为: F S = F B p + F B l + F B g (5) \tag5 F_S=F_B^p+F_B^l+F_B^g FS=FBp+FBl+FBg(5)然后,引入自注意模块,构建非空网格点特征与标准 transformer 编码器层和残差连接块(RCB)之间的交互。
训练的 Loss 函数
在LoGoNet中,图像分支的权值被冻结,只训练LiDAR分支。总体训练损失 L \mathcal L L 包括RPN损失 L R P N \mathcal L_{RPN} LRPN、置信度预测损失 L c o n f \mathcal L_{conf} Lconf 和 box 回归损失 L r e g \mathcal L_{reg} Lreg: L = L R P N + L c o n f + α L r e g (6) \tag6 \mathcal L = \mathcal L_{RPN}+\mathcal L_{conf}+ \alpha \mathcal L_{reg} L=LRPN+Lconf+αLreg(6)其中 α α α 是平衡不同损耗的超参数,在论文的实验中设为1。 我们遵循 voxel r-cnn 中的训练设置来优化整个网络。
论文总结
论文提出了一种新颖的多模态网络LoGoNet,通过局部到全局的跨模态特征融合,将点云特征与图像特征深度融合,为准确检测提供了更丰富的信息。在 WOD 和 KITTI 数据集上进行了大量实验,LoGoNet 超过了以前的方法,并在 Waymo 3D 检测排行榜上获得了第一名。结果表明,该框架具有很强的有效性和通用性。