二、Depth Estimation
2.1 毫米波雷达辅助视觉进行深度估计
- 题目:Depth Estimation From Monocular Images and Sparse Radar Using Deep Ordinal Regression Network (ICIP,2021,九月)
作者出发点: 随着lidar-based的深度估计方法用于3D目标检测(BEVDepth),radar-based方法也通过改进,根据radar特性设计了一些深度估计的方法。作者结合DORN网络并进行改进,引入radar分支用于深度检测。在阅读之前,Depth Estimation from Monocular Images and Sparse Radar Data,
- 源代码:https://github.com/lochenchou/DORN radar
- 网络架构:由图可以看出,两个模态在FOV分别通过resnet提取feature后(要注意,此时的radar并不是raw data,而是通过滤波后的深度值,可参考模型细节(2)),分别通过DORN深度估计网络和普通的卷积进行编码,随后concate并上采样到输入图像大小,最后通过序数回归对深度进行估计,其中蓝色部分与DORN保持一致,只是将深度估计问题变成分类问题(ordinal regression)。整体结构并不复杂,重要的是作者如何将radar用于深度估计的流程。
- 主要创新点:一个是将点云扩展高度变成line,提高毫米波点云的"感受野",增强深度估计效果。一个是将多模态引入单模态深度估计DORN网络。
- 模型细节
(1) 作者将毫米波雷达的困难定义为:稀疏、噪声比大、无高度信息(影响的高度范围有限),通过预处理,生成一个height-extended multi-frame denoised radar。
(2) 雷达预处理流程如下:1. 高度扩展,类似于crfnet,将点云扩展0.25~2m的范围内,变成一条直线;2. 滤波:将不符合深度阈值的毫米波点云滤除,阈值定义如下,滤波过程和生成radar-depth特征的过程可参考Depth Estimation from Monocular Images and Sparse Radar Data- 总结
深度预测效果图对比
评价指标
- 评价指标:
第一个评价值代表深度估计值和真实值的最大差异
RMSE是平均深度差值
ABSREL是相对的平均深度差值
由两个图可知,在经过滤波、高度扩展后,各方面性能都有一定提升,包括平均深度误差等参数。
- 关于高度高扩展和滤波对结果的影响:threshhold为滤波阈值,"-"表示不进行滤波
三、Segmentation
3.1 多模态融合的map分割
- 题目:A Simple Baseline for BEV Perception Without LiDAR(2022, MIT)
作者的出发点: 在BEV上通过BEVFORMER的方式"无参数化"地完成Lift操作(将图像特征转换到BEV空间),融合雷达点云特征图,用于分割任务,性能超越了之前的分割模型。
- 网络结构:
- 论文如其名,网络结构比较简单,可以看出很多论文的影子(例如BEVFORMER),作者就是通过显式的BEV-Queries采样图像特征,并且concate雷达特征并通过卷积进行模态对齐与融合,后面用于分割任务。
- 总结分析:
- 雷达信息处理:
雷达feature-map构成:0\1的occupy map,nuscenes提供的所有特征(RCS,X,Y,Z,V...)作为输入concate到一起作为输入特征。检测范围是[-100, 100m],网格的大小是200x200。
- 性能提升
- 和主流的工作相比,作者的确在分割上提升非常大,作者将这归功于毫米波的功劳,
- 消融实验
总结为三点:对于分割任务,输入过多的属性提升不明显(occupy only已经达到53),对multi-path的毫米波雷达点滤除反而导致性能下降(意料之中,因为multi-path的毫米波虽然会导致噪声,但是其扫描到的物体可能正是位于被遮挡的区域),增加sweeps的数量性能也会提升(毕竟点云密度大了)。
四、密集点云生成
4.1 GAN
4.1.1 通过密集点云监督radar生成密集点云
See Through Smoke: Robust Indoor Mapping with Low-cost mmWave Radar (2020, 斯坦福)
4.2 Lidar Supervision
4.2.1 激光雷达点云监督毫米波生成occupy grid map
Radar Occupancy Prediction With Lidar Supervision While Preserving Long-Range Sensing and Penetrating Capabilities
作者的出发点: 通过lidar这种数据质量较高的模态,监督毫米波雷达生成质量较高的占据栅格地图,解决在这个过程中的两个问题:一解决occupy网格生成存在于传感器之间的内生性问题:传感器感知距离不一,传感器穿透性不一问题;二解决长距离网格生成问题;生成的occpy grid map可用于下游的路径规划等问题。
- 本文一些基本定义:
- 极坐标系与笛卡尔坐标转化
作者以笛卡尔坐标系的x,y中心为极坐标系的中心,笛卡尔坐标系的一周等同于极坐标系的一段(如下图所示的蓝色红色对应关系)
- 作者将radar中lidar的感知区域定位trainning-region,将其他范围内的毫米波点云作为inference的输入,如下图所示
- 毫米波雷达噪声来源:
multipath reflection(多路径感染,在交通道路环境下工作的雷达越来越密集,其间产生的多径干扰会导致雷达出现虚假目标), speckle noise, receiver saturation, and ring-shaped noise
关于以上噪声的成因:https://zhuanlan.zhihu.com/p/407095772- 本文各类颜色含义
为了称呼方便,将生成的occupy grid map中的unit统称为点云,其中,绿色代表模型生成的正确点云,红色代表lidar检测到但是模型没有生成的点云,蓝色代表模型生成但是GT不存在的点云。
- 模型架构:使用传统的UNet生成occupy grid map,输入是BEV表示下的Radar的点云,输出为occupy grid。
- 模型细节:
- 为什么在极坐标系下检测?
作者提到,CNN对于尺度变化的鲁棒性要强于对方向形状的鲁棒性变化。下图所示,在polar space中路宽相较于cartesian space变化更大,但是cartesian space的两侧点云出现了blur。
- 毫米波数据预处理
考虑到这样一个问题:毫米波本来检测不到的目标,是否应该强制使其检测?
答案肯定是否,因为毫米波和lidar的性质差异,对于树木等一些反射性相对较差的目标,毫米波是检测不到的,同时radar检测到被遮挡的物体,此时lidar又是检测不到的,两个传感器之间的差异,如果强制检测,会导致相当多的FP预测,因而会降低性能;
因此,通过数据预处理,首先过滤反射强度低于某个阈值的点云,然后将lidar提供的GT数据中radar无法检测到的数据滤除,得到训练数据。
如上图所示,由实验得到,通过预处理,模型的FP大大降低;
- 如何解决传感器检测距离差异问题呢?
POLAR SLIDING WINDOW INFERENCE:将lidar检测区域内的点云作为GT用作traning region,然后逐步滑动窗口,每次窗口所包含的radar点云仅作为inference,生成occupy map。简单来说,就是lidar内的有限数据用于训练,而lidar外的radar用于推理生成occupy map并拼接生成最终的远距离occupy map。
流程如下图所示,这里的内外圆之间的距离是检测的范围,也就是滑动窗口,训练是通过对比不同的滑动窗口的内容与网络预测的同心圆之内的检测结果进行对比训练。
- 如何保持radar的透视性能?
通过上面所述的滑动窗口,可以完美解决lidar监督数据下,lidar-invisible的目标但是radar-invisible的目标点云没有输入而导致的透视性能丧失问题,因为在t窗口不能看到的点云,可以在别的窗口看到。
- 总结:
以上是效果图,可以看到,原本的radar输入是非常混乱的,带有非常多的噪声,第二列是训练数据可以看到lidar的点云非常规则能够反映区域内比较完整的几何信息,第三列是输出的结果,通过lidar数据的监督,能够在lidar区域以外,生成噪声较小,能够反映路面分布的点云图。第四列是人工标注的GT,最后生成的result与GT相较radar更为接近。在BEVDepth对网络预测深度监督时,深度本身的模态无关的信息,不加改变地监督深度预测网络是可行的,但是对于radar和lidar两种模态,各自有各自的特性,强制地把一种模态地特征监督另一种模态而不加变化,势必会导致本文中出现的虚警等情况,
原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA)