参考代码:neural_map_prior
动机与出发点
在车端仅依靠自身传感器的感知结果经常是不稳定且错误比较多,则可在此基础上添加辅助信息来优化感知结果,这里使用的是全局BEV特征(城市级别)来做优化。也就是利用车端感知网络获取当前位置处BEV特征,同时依据定位信息从全局BEV特征中抠取对应区域BEV特征,再与当前感知网络BEV特征做融合,融合BEV特征通过定位信息将其更新到全局BEV特征上去,最后在融合BEV特征上做感知预测。也就是下图中展示的这个流程:
借用辅助信息的网络肯定会带来性能提升(天气、光照变化、黑夜等场景下的鲁棒性会增强),至少这一点是可以确定的,就是辅助信息的形式和如何获取需要再探讨,是使用地图、时序?但文章这样的方法却存在如下问题:
- 1)车端的定位结果是不准确的,会导致全局BEV特征上传和下载存在位置偏移,没有对应措施去显式处理
- 2)对于量产项目会有很多车进行数据回传(只针对数采车那就另算),那么回传之后的多车数据如何进行融合,回传和下载会消耗网络流量
网络设计
核心的BEV特征融合和全局BEV特征更新的流程图见下图所示:
当前时刻得到由传感器获取的BEV特征 o o o和依据当前位置获取的全局BEV特征 p t − 1 l p_{t-1}^l pt−1l,给予两者可学习的位置编码 P E c , P E p PE_c,PE_p PEc,PEp(引入位置信息,帮助近处和远处做优化),然后以 o o o为query去做cross-attn得到特征 o ′ o^{'} o′,最后 p t − 1 l p_{t-1}^l pt−1l与 o ′ o^{'} o′去做Conv-GRU实现特征融合得到 p t ′ p_t^{'} pt′。这个特征就用于去得到感知结果和更新全局BEV特征了。
看整个融合模块中各个分量的贡献度,消融实验得到:
可以看到光是融合这个操纵就能带来不错的性能提升,验证了辅助信息的重要性,其它CA、Local PE、GRU(该模块的功能CA也能做)也能带来一些收益。
实验结果
在其它一些方法基础上添加NMP模块带来的性能提升