原文链接:https://arxiv.org/abs/2403.16635

本文对应预印版论文,正式版论文的名称是Point Cluster: A Compact Message Unit for Communication-Efficient Collaborative Perception(链接:https://openreview.net/forum?id=54XlM8Clkg),发表于ICLR 2025。

1. 引言

主流的协同感知方法包含四个阶段:

  1. 消息提取:各智能体首先将自身点云转化为中间表达,作为基础协同消息单元。
  2. 消息打包:每个智能体作为发送者,打包自我感知的信息单元,在有限的带宽下将压缩特征传输给自车。
  3. 消息聚合:自车接收到消息后,使用多源聚合技术增强场景表达,以进行完整感知。
  4. 消息解码:把聚合的消息解码为感知结果。

主要的挑战是如何高效地利用有限的带宽来实现最优性能,包括智能体如何高效压缩消息并保留有用信息的完整性,以及自车如何利用压缩的消息重建并合并为统一场景表达。

过去的V2X协同感知方法通常使用BEV特征图作为消息单元,但使用密集表达的协同有以下问题:

  1. 消息打包过程中的物体特征破坏[下图(a)]:通常使用的通道压缩或空间选择会导致有用信息丢失。
  2. 长距离协同中的低效消息聚合[下图(b)]:当BEV特征图尺寸增大时,计算复杂度平方级别地增加。此外,需要进行零填充以覆盖整个矩形视野,但实际上没有必要计算智能体之间的非重叠区域。
  3. 隐式结构表达通信[下图(c)]:体素化操作相比原始点云,牺牲了3D几何细节,导致边界框的预测精度下降。

在这里插入图片描述
为了解决上述问题,本文提出新的消息单位,即点簇,以使用低级结构信息与高级语义信息稀疏地表达场景。
点簇包含三个部分:

  1. 表达物体结构的点坐标
  2. 表达物体位置的簇中心
  3. 以及表达物体高级语义的簇特征

相比BEV表达,点簇有如下优势:

  1. 在消息打包过程中保留物体信息[上图(d)]:点簇仅包含前景物体的信息,无需通过手工指定的规则过滤无关背景。此外,可以通过显式地减少点数来控制传输带宽。
  2. 与协同范围关系弱[上图(e)]:点簇的数量与物体的数量更相关,而非协同范围。此外,关联同一物体的点簇可以方便地通过集合混合方式聚合,而无需填充到整个视野。
  3. 支持显式结构建模[上图(f)]:点簇保留了物体的几何结构信息,从而允许精细的点对齐,以及不同智能体之间的互补结构信息融合,提高检测精度。

基于此,本文提出V2X-PC框架。包含三个关键组件:

  1. 点簇编码(PCE)模块:将原始点云编码为点簇表达。
  2. 点簇打包(PCP)模块:通过调整簇包含的点数管理带宽,并尽可能保留物体几何结构特征。通过仅处理低级物体表达,避免了高级信息的丢失,从而在带宽限制下保留相对较高的精度。
  3. 点簇聚合(PCA)模块:根据簇中心的距离匹配来自不同智能体的点簇,并将与同一物体关联的点簇融合为新点簇。基于此得到最终的检测结果。PCA得计算复杂度仅与点簇数量相关,比BEV方法更适合长距离协同。

为了进一步处理位姿误差,本文将簇中心视为图的节点,利用图优化算法促进智能体与点簇之间的位姿一致性。为了补偿时间延迟,本文沿时间维度连接同一物体的点簇,并估计其速度以预测其在当前时间下的位置。注意图优化和速度估计均是无训练参数的方法,有强泛化能力,使模型可以在无需微调的情况下适应不同噪声层级的位置误差和时间延迟。

3. 方法

3.1 问题描述

假设场景中有 N N N个智能体,其观测与真实标注分别记为 { X i , Y i } i = 1 N \{X^i,Y^i\}_{i=1}^N {Xi,Yi}i=1N。协同感知的目标是最大化所有智能体的感知性能,同时考虑带宽约束 β \beta β
arg max ⁡ θ , M ∑ i = 1 N g ( Φ θ ( X i ; t , { M j ; t − τ j → i ; t } j = 1 , j ≠ i ) , Y i ; t ) s . t . ∑ i = 1 N ∑ j = 1 , j ≠ i N ∣ M j ; t − τ j → i ; t ∣ ≤ β \argmax_{\theta,M}\sum_{i=1}^Ng(\Phi_\theta(X^{i;t},\{\mathcal M^{j;t-\tau^{j\rightarrow i;t}}\}_{j=1,j\neq i}),Y^{i;t})\\ s.t. \sum_{i=1}^N\sum_{j=1,j\neq i}^N|M^{j;t-\tau^{j\rightarrow i;t}}|\leq\beta θ,Margmaxi=1Ng(Φθ(Xi;t,{Mj;tτji;t}j=1,j=i),Yi;t)s.t.i=1Nj=1,j=iNMj;tτji;tβ

其中 θ \theta θ为网络 Φ \Phi Φ的可训练参数, g g g为评价指标, M j ; t − τ j → i ; t \mathcal M^{j;t-\tau^{j\rightarrow i;t}} Mj;tτji;t为智能体 j j j t − τ j → i ; t t-\tau^{j\rightarrow i;t} tτji;t时刻传输的消息,智能体 i i i t t t时刻收到, τ j → i ; t \tau^{j\rightarrow i;t} τji;t为传输延迟。 M j ; t − τ j → i ; t \mathcal M^{j;t-\tau^{j\rightarrow i;t}} Mj;tτji;t包括了协同消息单元 M j M^j Mj与6自由度位姿 ξ j \xi_j ξj。注意:

  1. β = 0 \beta=0 β=0时无协同,上述公式退化为单智能体感知目标;
  2. 包含位姿误差时,需要修正位姿 ξ j \xi_j ξj
  3. τ = 0 \tau=0 τ=0时,后续会省略上标 t t t

3.2 V2X-PC概述

在这里插入图片描述
首先所有智能体的点云会由共享的PCE处理,得到分割的前景点云,并基于距离度量分割为簇。每个点簇会提取其点的坐标、中心坐标和簇特征作为中间表达。随后,PCP会过滤背景簇,并通过提案生成修正前景簇中的点。接收到其它智能体的消息后,使用无参数方法处理位姿误差和时间延迟,并通过位姿变换对齐来自各智能体的点簇,得到自车坐标系下的智能体-簇图,作为全面场景表达。随后,使用PCA匹配属于同一物体的簇并融合为新簇,最后基于基于点的操作细化簇特征,并基于其输出检测结果。

3.3 点簇编码器

由于PCE是仅涉及单智能体自身的数据和操作,本节省略智能体编号 i i i

本文使用编码器-解码器结构的点云主干(基于3D稀疏卷积与反卷积),作为稀疏体素特征提取器。随后,将点所属的体素特征与点相对体素中心的偏移量附加到点特征上,通过MLP进行前景分割。使用真实3D边界框监督生成前景掩膜,监督前景分割(Focal损失)。对于前景点,使用额外的MLP预测相对物体中心的偏移量(L1损失)。最后,测量前景点预测中心的距离,若小于阈值 ϵ p o i n t \epsilon_{point} ϵpoint,则两前景点属于同一点簇。

随后,本文使用SIR作为点特征提取器,堆叠 L 1 L_1 L1层来并行编码所有簇的特征。假设簇 q q q N p o i n t q N_{point}^q Npointq个前景点,记其点坐标与第 l l l层的点特征为 P q ∈ R N p o i n t s q × 3 , F p o i n t q ; l ∈ R N p o i n t q × D P^q\in\mathbb R^{N_{points}^q\times 3},F_{point}^{q;l}\in\mathbb R^{N_{point}^q\times D} PqRNpointsq×3,Fpointq;lRNpointq×D。取所有点的平均坐标作为簇中心,记为 C q ∈ R 1 × 3 C^q\in\mathbb R^{1\times 3} CqR1×3。SIR的处理过程可记为:
F ~ p o i n t q ; l = M L P ( [ F p o i n t q ; l ; P q ⊖ C q ] ) F p o i n t q ; l + 1 = M L P ( [ F ~ p o i n t q ; l ; m a x p o o l ( F ~ p o i n t q ; l ) ] ) \tilde F_{point}^{q;l}=MLP([F_{point}^{q;l};P^q\ominus C^q])\\ F_{point}^{q;l+1}=MLP([\tilde F_{point}^{q;l};maxpool(\tilde F_{point}^{q;l})]) F~pointq;l=MLP([Fpointq;l;PqCq])Fpointq;l+1=MLP([F~pointq;l;maxpool(F~pointq;l)])

其中 [ ; ] [;] [;]为通道拼接, ⊖ \ominus 表示带广播的按元素相减, F p o i n t q ; l + 1 ∈ R N p o i n t q × D F_{point}^{q;l+1}\in\mathbb R^{N_{point}^q\times D} Fpointq;l+1RNpointq×D为处理后的点簇特征。最后,将 { F p o i n t q ; l } l = 1 L 1 \{F_{point}^{q;l}\}_{l=1}^{L_1} {Fpointq;l}l=1L1沿通道拼接,并应用线性变换和最大池化,得到最终的簇特征 F q ∈ R 1 × D F^q\in\mathbb R^{1\times D} FqR1×D

3.4 点簇打包

智能体 i i i待打包点簇的中间表达可记为
M i = { m i ; q } q = 1 N c l u s t e r i = { ( P i ; q , C i ; q , F i ; q ) } q = 1 N c l u s t e r i M^i=\{m^{i;q}\}_{q=1}^{N_{cluster}^i}=\{(P^{i;q},C^{i;q},F^{i;q})\}_{q=1}^{N^i_{cluster}} Mi={mi;q}q=1Nclusteri={(Pi;q,Ci;q,Fi;q)}q=1Nclusteri

其中 m i ; q m^{i;q} mi;q为簇 q q q的表达, N c l u s t e r i N^i_{cluster} Nclusteri为簇的数量。

前景点簇修正。点簇分组过程可能有误差,导致丢失部分前景点或包含一些背景点。本文将点簇特征输入两个MLP中进行分类(Focal损失)和回归(L1损失),为每个点簇生成提案边界框。在训练阶段,若某点簇预测的边界框中心在真实边界框内,则该预测边界框视为阳性提案。提案生成后,仅保留阳性提案的点簇,而点簇的点被更新为提案框内的点。假设有 N c l u s t e r + i N_{cluster+}^i Ncluster+i个阳性提案, M i M_i Mi被更新为
M i = { m i ; q } q = 1 N c l u s t e r + i = { ( P i ; q , C i ; q , F i ; q ) , B i ; q } q = 1 N c l u s t e r + i M^i=\{m^{i;q}\}_{q=1}^{N_{cluster+}^i}=\{(P^{i;q},C^{i;q},F^{i;q}),B^{i;q}\}_{q=1}^{N^i_{cluster+}} Mi={mi;q}q=1Ncluster+i={(Pi;q,Ci;q,Fi;q),Bi;q}q=1Ncluster+i

其中 B i ; q = ( x ^ , y ^ , z ^ , h ^ , w ^ , l ^ , α ^ , c ^ ) B^{i;q}=(\hat x,\hat y,\hat z,\hat h,\hat w,\hat l,\hat\alpha,\hat c) Bi;q=(x^,y^,z^,h^,w^,l^,α^,c^)为簇 q q q带有置信度分数 c ^ \hat c c^的提案框。最终需要发送的消息为 M i = ( M i , ξ i ) \mathcal M^i=(M^i,\xi^i) Mi=(Mi,ξi),其中 ξ i \xi_i ξi为6自由度位姿。

感知性能和通信带宽的平衡。与BEV特征图不同,本文的点簇是空间稀疏的,带宽消耗主要来自点的坐标( N p o i n t q N_{point}^q Npointq个3维坐标)而非簇特征(1个 C C C维特征向量)。考虑到几何结构可通过关键点表示,本文对点簇的点进行采样来压缩传输数据。这样,可以保留高级物体信息,其中的语义对3D检测很关键。

本文提出语义和分布指导的最远点采样(SD-FPS)方法,以获取关键点。在最远点采样(FPS)的过程中,除了考虑距离,还基于物体的置信度分数和分布密度分数选择关键点。置信度分数来自上一阶段的分割预测,分数越高表示信息越丰富。分布密度则使用核密度估计(KDE)方法,分数越高表示局部点越稀疏。

SD-FPS的算法如下:
在这里插入图片描述
每轮选择时,会基于下列度量,选择点簇中最能代表物体语义和结构的点:
d ~ p o i n t = ( s f ) λ s ⋅ ( s d ) λ d ⋅ d p o i n t \tilde d_{point}=(s_f)^{\lambda_s}\cdot(s_d)^{\lambda_d}\cdot d_{point} d~point=(sf)λs(sd)λddpoint

其中 s f s_f sf为PCE得到的语义分数, s d s_d sd为由核密度表达的分布分数, d p o i n t d_{point} dpoint离最近的、已选择的点的距离。 λ s , λ d \lambda_s,\lambda_d λs,λd为重要性系数,当两者均为0时,SD-FPS退化为原始的FPS。

3.5 点簇聚合

首先根据 ξ i , ξ j \xi_i,\xi_j ξi,ξj对应的变换矩阵,对齐 M j M^j Mj M i M^i Mi的坐标空间,智能体 j j j向智能体 i i i传输的消息单元记为 M j → i M^{j\rightarrow i} Mji。随后,基于簇中心匹配 M i M^i Mi M j → i M^{j\rightarrow i} Mji,即当智能体 i i i的点簇 q q q的簇中心 C i ; q C^{i;q} Ci;q与智能体 j j j的点簇 r r r的簇中心 C j → i ; r C^{j\rightarrow i;r} Cji;r的距离小于预定义阈值 ϵ a g g \epsilon_{agg} ϵagg时,两簇属于同一物体。匹配后,将点簇分为两组不相交的集合, M u n i q u e M_{unique} Munique包含仅由一个智能体观测的点簇,无需进行聚合;而 M s h a r e M_{share} Mshare包含由多个智能体观测到的、对应同一物体的点簇组。聚合的点簇 m ¨ s = ( P ¨ s , C ¨ s , F ¨ s , B ¨ s ) \ddot m^s=(\ddot P^s,\ddot C^s,\ddot F^s,\ddot B^s) m¨s=(P¨s,C¨s,F¨s,B¨s)可按下式得到:
P ¨ s = P i ; q ∪ P j → i ; r C ¨ s = C i ; q + C j → i ; r 2 F ¨ s = a v g p o o l ( F i ; q , F j → i ; r ) B ¨ s = { B i ; q 若 c ^ i ; q − c ^ j → i ; r ≥ 0 B j → i ; r 否则 \ddot P^s=P^{i;q}\cup P^{j\rightarrow i;r}\\ \ddot C^s=\frac{C^{i;q}+C^{j\rightarrow i;r}}2\\ \ddot F^s=avgpool(F^{i;q},F^{j\rightarrow i;r})\\ \ddot B^s=\begin{cases}B^{i;q}&若\hat c^{i;q}-\hat c^{j\rightarrow i;r}\geq 0\\ B^{j\rightarrow i;r} & 否则\end{cases} P¨s=Pi;qPji;rC¨s=2Ci;q+Cji;rF¨s=avgpool(Fi;q,Fji;r)B¨s={Bi;qBji;rc^i;qc^ji;r0否则

上述聚合的计算复杂度仅与可能的物体数相关,相比基于BEV的聚合方法更有利于进行远距离协同。

记聚合后的点簇中间表达为 M ¨ = { m ¨ s } s = 1 N o b j e c t \ddot M=\{\ddot m^s\}_{s=1}^{N_{object}} M¨={m¨s}s=1Nobject,其中 N o b j e c t = ∣ M u n i q u e ∣ + ∣ M s h a r e ∣ N_{object}=|M_{unique}|+|M_{share}| Nobject=Munique+Mshare P ¨ s \ddot P^s P¨s包含了完整的低级结构信息,可用于增强提案框 B ¨ s \ddot B^s B¨s的精度。具体来说,将 M ¨ \ddot M M¨输入含有 L 2 L_2 L2层的SIR模块,预测边界框残差 Δ r e s \Delta_{res} Δres。通过拼接 点与簇提案 B ¨ s \ddot B^s B¨s之间的偏移量 与 簇特征 F ¨ s \ddot F^s F¨s 生成点的特征 F ¨ p o i n t s \ddot F_{point}^s F¨points,从而为SIR引入提案边界信息,可在一定程度上处理尺度模糊性。

残差损失为L1损失;此外定义分类软标签 min ⁡ ( 1 , max ⁡ ( 0 , 2 u − 0.5 ) ) \min(1,\max(0,2u-0.5)) min(1,max(0,2u0.5)) u u u为提案框与真值之间的3D IoU),并使用交叉熵作为IoU损失。总损失包括分割损失、中心偏移量损失、提案框回归损失、分类损失、残差损失与IoU损失。

3.6 鲁棒性

在真实通信下,位姿误差和时间延迟不可避免,会导致协同的点簇错位。

3.6.1 位姿修正

智能体 i i i接收到来自智能体 j j j的消息 M j M^j Mj后,使用相对位姿 ξ j → i = ( ξ i ) − 1 ∘ ξ j \xi^{j\rightarrow i}=(\xi^i)^{-1}\circ\xi^j ξji=(ξi)1ξj对齐坐标系,其中 ∘ \circ 表示对应的齐次变换阵相乘。后续会简化为2D位姿操作。定义物体 s s s的位姿为 χ s = ξ i ∘ ( C i ; q + C j → i ; r ) / 2 \chi^s=\xi^i\circ(C^{i;q}+C^{j\rightarrow i;r})/2 χs=ξi(Ci;q+Cji;r)/2,位姿一致性误差向量为 e j s = C j ; r ∘ ( ( ξ j ) − 1 ∘ χ s ) e^{js}=C^{j;r}\circ((\xi^j)^{-1}\circ\chi^s) ejs=Cj;r((ξj)1χs)(当无位姿误差时 e j s = 0 e^{js}=0 ejs=0)。整体优化目标是:
{ ( χ s ) ′ , ( ξ j ) ′ } = arg min ⁡ { χ s , ξ j } ∑ j = 1 N a g e n t ∑ s = 1 N o b j e c t ( e j s ) T e j s \{(\chi^s)',(\xi^j)'\}=\argmin_{\{\chi^s,\xi^j\}}\sum_{j=1}^{N_{agent}}\sum_{s=1}^{N_{object}}(e^{js})^Te^{js} {(χs),(ξj)}={χs,ξj}argminj=1Nagents=1Nobject(ejs)Tejs

这里物体 s s s的位姿 χ s \chi^s χs是齐次矩阵 ξ i \xi^i ξi乘以齐次向量 ( C i ; q + C j → i ; r ) / 2 (C^{i;q}+C^{j\rightarrow i;r})/2 (Ci;q+Cji;r)/2,得到的应该是向量,如何表示位姿?

3.6.2 延迟补偿

记智能体 i i i t t t时刻收到的、来自智能体 j j j的点簇为 M j ; t − τ j → i , t M^{j;t-\tau^{j\rightarrow i,t}} Mj;tτji,t,上次通信存储的、来自智能体 j j j的点簇为 M j ; t ′ M^{j;t'} Mj;t,其中 t ′ < t − τ j → i , t t'<t-\tau^{j\rightarrow i,t} t<tτji,t。本文基于簇中心的欧式距离,在时间维度匹配点簇。当距离位于 [ ϵ ‾ l a t e n c y , ϵ ˉ l a t e n c y ] [\underline\epsilon_{latency},\bar\epsilon_{latency}] [ϵlatency,ϵˉlatency]内,则两个点簇对应同一物体。设 m j ; r ; t ′ m^{j;r;t'} mj;r;t m j ; q ; t − τ j → i , t m^{j;q;t-\tau^{j\rightarrow i,t}} mj;q;tτji,t对应同一物体,可估计其速度 v j ; q ; t − τ j → i , t v^{j;q;t-\tau^{j\rightarrow i,t}} vj;q;tτji,t和偏移量 Δ d c l u s t e r j ; q ; t − τ j → i , t \Delta d_{cluster}^{j;q;t-\tau^{j\rightarrow i,t}} Δdclusterj;q;tτji,t
v j ; q ; t − τ j → i , t = ∥ C j ; q ; t − τ j → i , t − C j ; q ; t ′ ∥ 2 t − τ j → i , t − t ′ Δ d c l u s t e r j ; q ; t − τ j → i , t = v j ; q ; t − τ j → i , t × τ j → i , t v^{j;q;t-\tau^{j\rightarrow i,t}}=\frac{\|C^{j;q;t-\tau^{j\rightarrow i,t}}-C^{j;q;t'}\|_2}{t-\tau^{j\rightarrow i,t}-t'}\\ \Delta d_{cluster}^{j;q;t-\tau^{j\rightarrow i,t}}=v^{j;q;t-\tau^{j\rightarrow i,t}}\times \tau^{j\rightarrow i,t} vj;q;tτji,t=tτji,ttCj;q;tτji,tCj;q;t2Δdclusterj;q;tτji,t=vj;q;tτji,t×τji,t

最后,可根据偏移量获取估计的点簇 m j ; q ; t m^{j;q;t} mj;q;t

本文将通信量定义为消息字节数的log2值:
C o m m = log ⁡ 2 ( 2 N C ) Comm=\log_2(2NC) Comm=log2(2NC)

其中 N N N为协同消息单元数, C C C为通道数,2表示数据占两个字节(FP16)。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐