基于统一BEV表征的多任务多传感器融合技术

发布时间:2024-04-15  

为了实现多传感器数据的统一表达(Unified Representation),以前常规的方法:


1)Lidar-To-Camera: 将激光雷达点云投影到图像上,使用2D CNN算法来完成数据处理。它会造成严重的几何扭曲(如下图a),影响3D Object Recognition等Geometric-Oriented任务的效果。

2)Camera-To-Lidar: 用Semantic Labels、CNN特征等信息增强点云,然后使用LiDAR-based Detector来预测3D Bounding Boxes。这种Point-Level Fusion的方法丢失了语义信息,在Semantic-Oriented任务中表现不佳(如下图b)。

b7d30632-5353-11ee-a25d-92fbcf53809c.png

BEV Fusion Method

BEVFusion在BEV空间实现了统一的多模态特征表达,同时保留几何结构和语义信息。

wKgaomUDu9KAC1j-AAH81g37uCE276.png

BEVFusion对不同模态的输入采取不同的编码器(Encodes)来提取Features,这种方法既保留了几何信息,又保留了语义特征信息;然后使用Fully-Convolutional BEV Encoder融合多模态的Features,缓解不用特征之间的局部偏准(Local Misalignment);最后添加一些特定Head来支持不同的3D场景理解。

BEVFusion优化后的BEV Pooling实现了40x的速度提升;它比Camera-Only的模型实现了6%的mIOU提升,比Lidar-Only的模型实现了13.6%的mIOU的提升。

Camera-to-BEV Transformation

Camera-to-BEV的变换首先要解决每个像素的Depth问题,文中采用了与论文LSS(Lift, Splat, Shoot)的方法来预测每个像素的离散深度分布。

wKgaomUDu6yAMniuAAId-ZXlUhw732.png

如下图所示,对每个Feature Pixel沿射线假设D个离散点(每个像素对应D个空间位置),每个离散点的可能性对应一个归一化的概率。

所有的Camera特征组合在一起,形成NHWD的Camera Feature点云,N是Camera的个数,HW是每个Camera Feature Map的大小。

沿着x,y两个方向,按照rxr的BEV网格,使用BEV Pooling对Camera Feature点云进行聚合量化。

最后,沿z轴Flatten这些特征。

这个过程中的BEV Pooling耗时严重,作者提出了Precomputation和Interval Reduction解决这个问题。

Precomputation

b8261f70-5353-11ee-a25d-92fbcf53809c.png

相机的外参是固定的,内参也是固定的,相机的射线上采样的D个离散点的采样间隔也是已知的,因此Camera Feature点云的每个点的x和y坐标是固定的,每个点在哪个BEV Grid中也是不变的。因此可以通过预计算的方式提前计算好,之后直接用即可。

Interval Reduction

b8542834-5353-11ee-a25d-92fbcf53809c.png

LSS使用Prefix Sum计算每个BEV Grid的聚合结果。

如上图所示,index是网格的编号,BEV Pooling的目标是将相同index的Value加起来,即将同一个网格内的特征聚合在一起。

Pref.sum是一个累加和。1=1,4=1+3,11=1+3+7,10=1+3+7+(-1),…

Pref.sum只是一个中间结果,用来辅助计算最终的聚合值。在Index变化时,减去前一个index的Pref.sum值,得到聚合结果result。

LSS的Prefix Sum可以看做是单线程的计算过程,本文直接使用Specialized GPU Kernel对多个BEV Grid独立并发计算,没有计算和存储前缀和的开销,大大加速了计算过程。

优化后的BEV Pooling将Camera-To-BEV Transformation提升了40倍,Latency从500+ms降低到12ms。

Fully-Convolutional Fusion

Lidar和Camera的BEV Features可以简单的用Elementwise Operator(比如Concatenation)来做Fusion。

由于Depth估计的误差,Lidar BEV Features和Camera BEV Features可能会存在Spatially Misaligned的问题,因此需要Convolution-based BEV Encoder来解决这类问题。

class ConvFuser(nn.Sequential):
    def __init__(self, in_channels: int, out_channels: int) -> None:
        self.in_channels = in_channels
        self.out_channels = out_channels
        super().__init__(
            nn.Conv2d(sum(in_channels), out_channels, 3, padding=1, bias=False),
            nn.BatchNorm2d(out_channels),
            nn.ReLU(True),
        )

    def forward(self, inputs: List[torch.Tensor]) -> torch.Tensor:
        return super().forward(torch.cat(inputs, dim=1))

效果测试

b874ccba-5353-11ee-a25d-92fbcf53809c.png

C是camera模态,L是LiDAR模态,MACs用于评估计算量,Latency是延时,BEVFusion结合了Camera模态和LiDAR模态,达到了SOTA,并且计算量和Latency也比较低。

b8aa2932-5353-11ee-a25d-92fbcf53809c.png

在nuScenes的BEV Map Segmentation中,BEVFusion达到了SOTA,并且对不同的地图元素的Segmentation Performance都有提升。

b8dabda4-5353-11ee-a25d-92fbcf53809c.png

在晴天、雨天、白天、夜晚场景下,BEVFusion都有不错的表现。

b8f77354-5353-11ee-a25d-92fbcf53809c.png

BEVFusion对于大物体、小物体、远处的物体、近处的物体的Performance都有提升;并且它在稀疏的Lidar波束上仍有不错的表现。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>