论文地址:arxiv.org/pdf/2306.02245.pdf
SAM3D Zero-Shot 3D Object Detection via Segment Anything Model
本篇文章讲述的是一个3D的目标检测模型,主要是使用BEV将3D的图像转变成2D的图片,然后使用SAM进行分割预测对象。模型由zero-shot的能力。模型主要由五部分组成:
- LiDAR-to-BEV,将3D的雷达激光信号映射到BEV图像上面
- BEV后处理修改BEV图像来增强性能
- SAM在BEV图像上进行分割
- Mask后处理过滤掉错误的mask
- Mask2Box生成最终的3D检测框
LiDAR-to-BEV
这个结构的主要作用就是将雷达激光中的点 给平移到BEV图像
当中,其中
。映射之后的点的位置是
,由下面的公式计算得到:
其中U代表的是上限, 是x,y网格单元大小,
是一个底层函数。我们还需要给BEV图像填充数值,方便SAM更好的检测。我们利用点的反射强度
来形成BEV图像的特征向量。我们会将这个强度正则化到【0,1】之间然后选择颜色向量,具体公式为:
最后我们会得到BEV图像,那些没有投影点的地方,我们直接使用0向量来进行填充。
BEV post-processing
这一阶段主要是对BEV图像进行后处理进行修改,主要就是使用一个最大池化下采样,如下图所示。这样做的原因是,SAM在自然图片上进行预训练,这些自然图像包括密集信号,但是BEV图像是稀疏信号,所以需要后处理来缩小差距。
Segmentation with SAM
这一部分要尽可能多的来分割前景对象,所以创建了一个均匀分布在整张图像上的32X32的网格作为SAM的提示来进行分割。因为BEV像素的稀疏性,导致很多提示都落到了空白区域,所以需要对提示进行处理,我们会将这些提示投影到BEV图像上面,然后检测每个图像周围像素,如果这个提示周围没有激活的像素,则会丢弃这个提示。这一步我们会得到Nm个mask
。
Mask post-processing
SAM生成的mask也会存在一些间隙,需要进一步的处理,我们设置了面积阈值和高宽比阈值
来过滤低质量的mask,在进行过滤之后我们获得了相对高质量的mask
。每个mask对应一种前景对象。
Mask2Box
我们会通过BEV图像直接估计水平属性(水平对象中心,长度,宽度,朝向角),你用激光雷达点作为补充来获得垂直属性(高度,垂直对象中心)。3D的检测框被表示为:
其中分别表示的是,3D检测框的中心点,尺寸和第i个对象的旋转角度。No表示为对象的数量。
我们还需要在2D的mask当中去提取2D的检测框,公式如下所示:
其中分别表示2D对象中心,尺寸,旋转角度,No表示对象的数量。然后将这些2D的属性投影到3D属性当中去:
其中Ux,U y为点云范围,sx, sy为网格单元大小。最后通过雷达激光点来估计垂直属性,选择投影在BEV图像上的边界框内的点,使用他的垂直坐标来计算垂直属性,公式展示在下方: