在继PointNet,PointNet++之后,其作者Qi有创新的提出了F-PointNet(Frustum PointNet)多传感器融合算法. 即利用在二维图像非常成熟的物体检测网络,在相机成像平面对物体进行定位,确定其2维边框, 利用相机的投影变换,建立以相机平面检测框为起点的3维点云空间的平头视椎体(frustum), 并在此3维视椎体内对点云(须进行Lidar和相机的坐标系变换)进行检测和目标边界框回归计算.
其视椎体原理可用下图表示:
文章图片
【智能汽车|三十四.智能驾驶之多传感器融合技术: F-PointNet融合方法】
F-PointNet网络结构:
F-PointNet的网络结果可以分为三个部分或步骤(图片来源于网络):
文章图片
一. 基于了相机RGB图片分辨率高且基于二维图的物体检测十分成熟,F-PointNet首先利用FPN检测器在二维图像上提取目标二维检测框. (注: 在多传感器前融合技术中,AVOD和F-PointNet在前期阶段均使用了FPN网络,而MV3D则采用了VGG-16网络,这里F-PointNet只是用FPN获取检测框);
二. 利用相机的内参做投影变换,将上一步得到的相机平面检测框,投影到3维空间,形成一个平头视椎体.此时平头视椎体在相机坐标系;
三. 利用相机和Lidar联合标定的结果变换矩阵, 找出所有落在此平头视椎体内的点云. 此时找出的点云相机坐标系表示;
四. 考虑到视椎体朝向的任意性,算法中将所有出现的视椎体都旋转到以中心视角射线为坐标轴的坐标系, 称为椎体坐标系. 这样做目的是归一化视椎体, 确保其旋转不变性. 此时找出的点云用椎体坐标系表示;
五, 对当前平头视椎体内的点云进行基于PointNet或PointNet++(也是作者本人提出的点云分类与语义分割网络)的分类和语义分割, 得到平头视椎体内所有属于该目标的点云,即三维掩码(masking), 同时计算掩码内所有点的质心作为新的坐标系中心点, 建立以此质点为原点的三维掩码(masking)局部坐标系. 其目的是为了提高算法的平移不变性. 此时找出的点云用三维掩码局部坐标系表示;
六. 对已经找出的位于三维掩码局部坐标系的目标点云,使用带有T-Net(变换网络)的PointNet或PointNet++进行边框回归计算. 预测目标的3DBBox,尺寸和朝向. 这里T-Net的作用是预测目标3DBBox的真实中心到前面计算的质心的距离. 然后以预测的真实中心为物体中心,得到其在三维掩码局部坐标系的坐标. 最后利用每个点的缓存的原始坐标或索引,得到检测目标在Lidar坐标系空间的真实坐标..
F-PointNet中的坐标变换关系:
F-PointNet为了保证点云所表示物体的旋转不变性和平移不变性, 共进行了三次坐标系变换: 视椎体变换, 3维掩膜质心变换 和 T-Net预测物体中心变换. 如下图(图片来源网路):
文章图片
推荐阅读
- 自然语言处理|BERT(5)---实战[BERT+CNN文本分类]
- 实践|增加batch_size的一种方法(梯度累加)
- 神经网络|一个神经网络有多少个神经元()
- 神经网络|复数神经网络_如果神经网络状态为复数会发生什么()
- 机器学习|什么是卷积神经网络
- 深度学习|卷积神经网络
- 人工智能|十年AI谁“最能打”(何恺明最佳论文“刷”状元,谷歌机构排名第一)
- AI章|深度篇——人脸识别(一) ArcFace 论文 翻译
- python|CUDA11.4、CUDNN、Pytorch安装