一文览尽LiDAR点云目标检测方法
小白学视觉
共 22303字,需浏览 45分钟
·
2021-03-22 10:20
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
本文转自:计算机视觉life
-
不使用3D卷积
-
输入特征图的channel数从128减少为64,网络耗时减少2.5ms
-
网络主结构所有层channel数减半,网络耗时减少4.5ms -
Upsampling的channel数从256减少到128,减轻detection head,网络耗时减少3.9ms -
Tensor RT加速,提速45.5%
-
特征提取:在proposal中随机筛选N个点,1)获得第一阶段的点特征;2)获得N个点的坐标,并用如下图5所示的canonical transformation得到与原坐标系无关的坐标特征。两种特征联合在一起,作为proposal中点的特征表达 -
Voxel表达:将不同大小的proposal,通过voxel统一化到相同大小:dl = 6,dw = 6,dh = 6 -
使用VFE layer提取最终特征
-
RoIAwareMaxPool:使用的是第一阶段输出的point-wise semantic part feature,在voxel中计算max pooling -
RoIAwareAvgPool:使用的是proposal中经过canonical transformation点坐标特征和segmentation score,在voxel中计算avg pooling
-
对于原始点云,使用一个全连接层,获得point-wise feature。 -
在point-wise feature的基础上,提取bev feature。提出了使用动态voxel(dynamic voxelization,DV)的方式获得bev图,计算过程如图3所示,相对传统的voxel(Hard voxelization,HV),有3个好处,1)DV保留了voxel中的所有点,HV使用随机采样的方法选取固定的点数,有可能会丢失重要信息,如图3中v1的计算;2)HV中每个voxel中选择固定的点数,且对整个点云选择固定的voxel数量,因此会随机丢弃点甚至整个voxel,这种方式可能导致不稳定的检测结果,如图3中v2在HV中被丢弃;3)HV对于点数少于固定值的voxel使用0填充,这样会造成额外的计算,如图3中v2~v4。最后对于点云的每一个点,使用公式(1)获得点与voxel的投影关系,其中pi表示点云坐标,vj表示voxel,FV表示点到voxel的投影关系。 -
对于camera view,同样可以使用公式(1)计算得到,而camera view的投影计算 -
bev图和camera view图经过一个cnn后,获得相应的bev feature与camera view feature,再使用公式(2)(其中,FP表示voxel feature到点云的投影关系,是FV的逆)逆投影获得不同view的点特征的表达,最后与point-wise feature融合得到最终的点特征表达。
-
lidar representation:激光雷达点云的特征表达,包括bev图、camera/range view图、point-wise feature、融合特征。 -
network backbone:用于特征提取的主体结构,可以为resnet,vgg等,也包括增强特征的方式,如fpn -
detection head:检测网络输出,包括目标的类别、位置、大小和姿态,以及速度预测等,对于two-stage detector来说,roi pooling也是很重要的一个环节。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
评论