这就带来了一个挑战,那就是如何在网格间隔参数设置时兼顾近处和远处、大目标和小目标。
网格间隔参数设置得大,BEV空间内的特征颗粒度就大,虽然计算运行速度比较快,但细节不是很丰富,网格参数小的话,颗粒度小,虽然细节丰富,但计算量大。
因为车端算力的限制,要想感知距离足够远,网格就不能设置得特别小,而网格大的话,就可能损失很多细节,小目标就可能会遗漏,这就需要采取折中的方案,也需要对网络做一些精细化的设计,使用一些人工规则或者加一些训练技巧。
纽劢的符张杰介绍:“可以对远处目标或者小目标加以更大的损失权重,这样网络就会更加关注远处目标或小目标,也可以利用多尺度的特征来解决这个问题。”
在BEV空间的多头感知任务中,不同的任务对于网格采样颗粒度和范围的需求不同,可以根据具体的任务来设置网格和范围参数,这个思想在纽劢的BEVSegFormer和鉴智机器人和清华大学团队共同提出的BEVerse网络架构中都有体现。
在BEVerse中的多头任务模型中,在语义地图感知任务中,由于车道线一般比较细,需把采样网格设置和x/y轴范围设置得比较小(x轴范围为[-30m,30m],y轴为[-15m,15m],间隔为0.15m),而在3D目标检测任务中,网格和范围可以设置地稍大一些(x轴和y轴范围均为[-51.2m,51.2m],间隔为0.8m)。
鉴智机器人的朱政则提到,可以根据不同场景的需求,对不同的范围(x/y轴)进行采样,他说道:“要考虑功能对于感知范围的需求,比如某些功能只在高速公路上开启,那么对远处的目标就更关注一些;如果只在城区开启时,因为车速低,关注的范围就不需要那么远,这样可以节省部分算力。”
3
BEV空间内的模型训练和优化
既然在BEV空间内做目标检测有这么多好处,那么如何训练BEV空间内的模型呢?
1、如何在BEV空间训练算法模型?
车端BEV网络的训练方式,还是采用传统的有监督学习,不过区别在于,和传统2D感知任务在2D图像空间内完成标注不同,其所需要的真值需要在BEV空间内完成标注。
据业内专家反馈,BEV训练最大的挑战是在训练神经网络所需要的真值(Ground Truth)的生成上。
训练所需的真值数据,是从车端的影子模式下回传的视频流数据中,通过数据挖掘筛选出有价值的corner case数据。这部分数据再进入云端真值系统。
云端真值系统的作用,先是进行三维重建,转换到BEV空间,再做时序融合,形成4D空间数据,再进行自动标注。
最后经过人工质检(QA)后就形成了所需要的真值。
这样4D空间的真值数据就可以用来训练车端的BEV感知模型了,训练完成后再继续部署到车端,这样不断迭代来形成闭环。