BEVSegFormer:一个来自任意摄像头的BEV语义分割方法

今天给大家分享一篇小汤前同事在分割方向的近期新工作BEVSegFormer,论文已经上传在arXiv上,完整题目是"BEVSegFormer: Bird’s Eye View Semantic Segmentation From Arbitrary Camera Rigs"。
BEVSegFormer:一个来自任意摄像头的BEV语义分割方法_第1张图片

论文链接:https://arxiv.org/abs/2203.04050。

文章作者除了“Zhangjie Fu”小汤不认识之外,其他都是我在纽劢科技Nullmax 实习期间的同事。

关于纽劢科技的介绍可以看下面文章:(点击进入)

自动驾驶 | 纽劢科技与黑芝麻智能战略合作,共推自动驾驶量产落地

对于自动驾驶而言,BEV(鸟瞰图)下的语义分割是一项十分重要的任务。尽管这项任务已经吸引了大量的研究投入,但灵活处理自动驾驶车辆上安装的任意相机配置(单个或多个摄像头),仍旧是一个不小的挑战。

为此,提出了BEVSegFormer,这一基于Transformer的BEV语义分割方法,可面向任意配置的相机进行BEV语义分割。

具体来说,BEVSegFormer首先使用共享backbone对来自任意相机的图像特征进行编码,然后通过基于deformable transformer的编码器进行增强。此外,引入BEV transformer解码模块来解析BEV语义分割结果。文章设计了一种高效的多摄像机变形注意单元,实现了从BEV到图像视图的转换。最后,根据BEV中网格的布局对查询(queries)进行重塑,并进行上采样,以有监督的方式生成语义分割结果。

关于BEVSegFormer

在自动驾驶或者机器人导航系统中,以BEV形式对感知信息进行表征十分关键,因为结果可以为后续的规划、控制模块提供诸多的便利。

例如,在无地图导航方案中,构建本地的BEV地图,不仅成了高精地图外的另一种方案选择,还对包括智体行为预测以及运动规划等感知的下游任务而言,也相当重要。同时,利用相摄像头的输入进行BEV语义分割,通常被视为构建本地BEV地图的第一步。

为了从摄像头中获得BEV语义分割,传统方法一般会先在图像空间生成分割结果,然后通过逆透视变换(IPM, inverse perspective mapping)函数将其转变到BEV空间。虽然IPM是一种连接图像空间和BEV空间的简单直接的方法,但它需要准确的相机内外参或实时的相机位姿估计。所以,IPM视图变换的实际效果很可能比较差。

以车道线分割为例,如下图所示,在遮挡、远处区域等场景中,使用IPM的传统方法提供的结果往往不够准确。

图中,(a)为图像空间的车道分割,(b)为通过IPM视图变换的BEV分割,©为BEVSegFormer的车道分割。
BEVSegFormer:一个来自任意摄像头的BEV语义分割方法_第2张图片
Comparison of lane segmentation results on image space and BEV space. (a) lane segmentation on image space, (b) BEV segmentation by IPM view transformation of (a), © our BEV lane segmentation.

近年来,基于深度学习的方法已经被广泛用于BEV语义分割。Lift-Splat-Shoot通过逐像素深度估计结果完成了从图像视图到BEV的视图变换。不过使用深度估计,也增加了视图变换过程的复杂度。此外,有一些方法应用MLP或者FC算子来进行视图变换。这些固定的视图变换方法,学习图像空间和BEV空间之间的固定映射,所以不依赖于输入的数据。

随着近期Transformer在各个任务上的大放光彩,基于的Transformer在BEV空间下进行感知,吸引力新的研究注意力。在目标检测任务中,DETR3D引入了一种3D边界框检测方法,直接从多个相机图像的2D特征生成3D空间中的预测。3D空间和2D图像空间之间的视图变换,通过交叉注意模块的3D到2D查询来实现。

借鉴于DETR3D,提出了BEVSegFormer,通过在Transformer中使用交叉注意机制进行BEV到图像的查询,来计算视图变换。
BEVSegFormer:一个来自任意摄像头的BEV语义分割方法_第3张图片
如上图所示,BevSegFormer由三部分组成
1) 一个用于处理任意相机和输出特征图的共享backbone;
2)Transformer编码器;
3)BEV Transformer解码器,通过交叉注意机制处理BEV查询,解析得到BEV语义分割。

对于单个输入图像,backbone接收输入并输出多尺度特征图。对于多个摄像头配置,这些多个图像共享同一backbone,并输出相应的特征图。

Transformer编码器部分,首先对共享backbone的C3、C4、C5级特征图上使用1×1 卷积运算来获得多尺度特征。在每个摄像头生成的特征图上分别应用Deformable Attention模块。它不需要计算密集注意图,只关注参考点附近的一组采样点。Transformer编码器为每个摄像头输出增强的多尺度特征。

将Deformable DETR中的Deformable Cross-Attention 模块改进为多摄像头Deformable Cross-Attention 模块,其能将多摄像头的特征图转换为BEV查询,不需要摄像头的内外参数。如下图所示。
BEVSegFormer:一个来自任意摄像头的BEV语义分割方法_第4张图片
Illustration of the Multi-Camera Deformable Cross-Attention module in BEV Transformer Decoder.

BEV Transformer解码器部分,根据BEV中的网格布局对查询进行重塑,将Transformer解码器转换为二维空间特征。二维空间特征由BEV Upsample模块进行上采样处理,以有监督的方式计算语义分割结果。

实验结果、demo展示

为了评估BEVSegFormer的效果,作者在基准数据集nuScenes和自采自建的数据集上,进行了相关实验。其中,自采数据集包括3905张训练集图片、976张验证集图片,是采集的上海高速公路场景,包括了人群交通、进出匝道、阴影、换道和切入等各种场景。自采数据集也对车道线进行了标注和评估。

实验表明,BEVSegFormer展示了对于任意相机配置都有出色的BEV语义分割结果。在基准数据集nuScenes上实现了新的BEV分割SOTA
BEVSegFormer:一个来自任意摄像头的BEV语义分割方法_第5张图片
BEVSegFormer:一个来自任意摄像头的BEV语义分割方法_第6张图片

BEVSegFormer:一个来自任意摄像头的BEV语义分割方法_第7张图片

BEVSegFormer:一个来自任意摄像头的BEV语义分割方法_第8张图片
Examples of BEV segmentation results of surrounding cameras on nuScenes val set.
BEVSegFormer:一个来自任意摄像头的BEV语义分割方法_第9张图片
Examples of BEV segmentation results of front camera on nuScenes val set.

连续帧的视频demo:

BEVSegFormer:任意摄像头配置的BEV语义分割方法demo

DETR3D、BEVDet、BEVDet4D、BEVFormer、BEVSegFormer、M2BEV、。。。不得不感慨发展太快了,对于不是主做bev检测和分割细分方向的小汤来说,真的是了解都了解不过来了!

写在最后:
欢迎对目标跟踪、目标检测、目标分类、语义分割、深度估计等计算机视觉任务及自动驾驶技术(感知、融合、规控、定位、建图、传感器等)感兴趣的朋友,加入技术交流群4群,和众多网友一起交流,一起玩!坑位不多,白嫖党勿进,对群友问题提供优质回答的有奖励!

推荐阅读:
多传感器融合感知技术的前沿算法与应用,包括Pointpillars、spconv+、BEVDet、LSS等算法

多目标跟踪MOT未来研究方向讨论 添加链接描述

CVPR2022车道线检测Efficient Lane Detection via Curve Modeling

你可能感兴趣的:(计算机视觉,自动驾驶,深度学习,车道线检测,语义分割,自动驾驶,计算机视觉,transformer)