之所以是-1,是因为大概率1篇文章写不完,但是又不知道应该用几篇来说事,先写着看

按照惯例,上论文地址:2203.17270v1.pdf (arxiv.org)

用BEVformer来卷自动驾驶-1_4D

什么是BEV, Bird's -Eye-View的意思,就是鸟瞰

比如稍微传统一些的自动驾驶,大部分的实现。如果靠纯CV的方案的话,那么基本上不管你做什么下游任务,物体检测也好,还是分割图像也好,就看到你眼前这一块,或者说摄像头里这一块视野,然后分别对自己摄像头里的任务产生的结果做决策

鸟瞰就不一样了,让你能开上帝视角,参见特斯拉的那种行驶界面

用BEVformer来卷自动驾驶-1_自动驾驶_02

如上图所示,中间的图才配称得上是鸟瞰图,它可以感知周遭的一切环境,无死角的感知,进而来实现最合理的驾驶action(和高精地图的方案是不一样的,高精地图只有对主观路况的呈现,记得是主观路况的呈现,而不是感知,同时如果不配合雷达或者其他的方案是无法对同一物理时间的周遭其他对象进行感知的)

下面说它的实现方式

用BEVformer来卷自动驾驶-1_3D_03

按照论文中给的上图,其实可以简单解释为,通过把多组2维空间的向量或者矩阵映射到一个更大的三维空间里,然后在三维空间里对不同二维空间的对象求attention

用BEVformer来卷自动驾驶-1_自动驾驶_04

白话一点就是如上图所示,在不考虑那5个雷达的情况下,仅靠6个摄像头,来实现6组2D的摄像的特征,然后给重组成一个3D的特征,再展示出来,这样不就形成了鸟瞰了吗(其实是4D,后面会讲,第四维是什么)

现在从图像里或者视频抽帧的形式来进行物体检测的算法和框架不可谓不多,什么Yolo啥的自不必说,各种类似论文也是旧瓶装新酒多一点,所以这块不是啥问题,那么难点就在于如何把你提取的特征在高维度空间里进行聚合

跟自动驾驶相关的特征聚合或者叫特征融合,基本玩的就是多传感器的融合,在BEV之前,大概三四年前吧,其实就出现了前后融合

后融合:或者叫结果融合,就是假如有6个摄像头,把6个摄像头的检测结果进行融合

前融合:或者叫数据融合,就是把6个摄像头拼成一个大图,然后对大图进行处理

通过CNN,或者是Transformer(ViT)来提取特征,才能做到真正的特征级别的融合,也是代表未来的方向

可以自选,你甚至可以拿它去做自己的高精度地图...

下个话题 3维到4维

我们考虑一个问题,在自动驾驶领域或者你开车的时候,如果你把自己和车作为一个对象的话,那么你是一个点还是一个向量,很显然你是一个向量,而且大概率是一个不固定方向的向量(不符合数学定义),至于为什么是向量,而且是不固定方向,是因为有时间的因素存在,在t-1,t 和 t+1的时刻,你实际上出现在了不同的3维空间上的多个位置上!

所以我们就需要把BEV的3D能力再进一步扩展到4D领域,也就是加入时间的概念

加入时间的概念以后,我们的能力进一步得到了扩展,可以实现速度,轨迹等检测任务,并且可以进行一些“预测”

我举一个预测的例子

用BEVformer来卷自动驾驶-1_自动驾驶_05

如上图所示,假设我摄像头是向北行驶的汽车上的正中间的摄像头,在T-1时刻,我能检测出我前面5米远有一辆同向行驶的汽车,但是在t时刻,旁边的道路上突然并过来一辆离我2米远的汽车,这个时候由于我摄像头的视角被b车给挡住了,那是不是我就无法对a车进行检测了呢?由于无法检测,在t-1时刻我的BEV上的3D视角里,前面也只存在了b车...

用BEVformer来卷自动驾驶-1_自动驾驶_06

第一章结束