3D 点云检测 自动驾驶场景
记录学习的过程以及学习的资源, 只记录关键框架,方便复习. 防止混淆概念. 如有错误, 指正即可, 勿喷谢谢. 虽然是个菜鸟但也要努力提升自己
- 2017 年 PointNet

平移不变性如何获得?靠T-Net,类比点的仿射变换
原版PointNet几层?总共5层
segmentation需要在PointNet基础上做哪些改动?将global的信息 concat回每个点的feature去

PointNet主要操作:全连接+maxpooling

问:有哪些方法可以得到order invariance的feature? 答: sequence model, 点先排序, 以及symetrical 操作
- 2017年 PointNet++
Deep Hierarchical Feature Learning on Point Sets in a Metric Space
1) 大体结构: 多次的 set abstraction进行下采样, 每次下采样都包括sampling 和 grouping , 以及pointNet. 后续在segmentation的任务上还需要进行上采样. 后面还需要关注setabstraction的作用是什么? sampling 有几种方法? grouping有几种方法? 上采样有哪三个注意点?
- sampling 有几种方法? farthest point sampling.
在mmdetection3d中还有 furthest_point_sample_with_dist. 见mmdet3d/ops/furthest_point_sample/init.py
-
grouping有几种方法? 两种, 一个是对同一个数据进行不同范围的grouping---MSG, 还有一个MRG是先提取出一层信息之后在新的信息的基础上再提取信息---MRG. 其中MRG的速度慢,但是是更优的提取方式

-
上采样有哪3个注意点? 有插值过程, 插值的公式; 上采样后每个点依然通过unit pointnet(也是一个全连接)进一步提取信息; skip connection 横跨在上采样和下采样两个阶段之间.
- 2017年 VoxelNet
VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection


Voxelnet 的VFE: 上图中基本上就是PointNet,如果使用多于1层的PointNet来构建VFE的话需要图中 pointwise concatenate的步骤.

点云经过VFE处理且scatter成dense的tensor之后,网络结构选择RPN. 3次降采样, 上采样使用Deconv.

上图为gt与anchor 之间的计算公式是什么,如上.
gt与anchor的的IOU来区分pos,neg. 有两个值, 我记做IOU_small_enough, IOU_big_enough. 使用的参数是什么?
训练参数 | 类 | T每个voxel点数| VFE层数| voxel | IOU_small_enough 小于此数为neg | IOU_big_enough 大于此数为pos | GD |
| --- | --- | --- | --- | --- | --- | --- |
|---|---|---|---|---|---|---|
| 行人 | 45 | 2层 | 0.1x0.1x0.4 | 0.35 | 0.5 | SGD |

回归loss: SmoothL1
anchor与gt的
- 2018年SECOND
SECOND: Sparsely Embedded Convolutional Detection

几乎与voxelNet的图相同,但是多加了Direction Classifier
与voxel net 相同
<------------- direction 的loss. 后续的方法中还有拆分出sin_theta, cos_theta的loss计算方式


用到了gt database的数据增强方式
- 2018 PointPillars



有那些metirc:BEV,3D,2D, AOS(average orientation similarity,用于direction), mAP
- 2019 CBGS


网络基本上和voxelNet一致, head里多了一个trick是将尺寸差不多的类别放在同一个head里

-
2019 PointRCNN







在car和cyclist中表现都不错,但是pedestrian效果不好 -
2019 PV-RCNN
-
2019 Part-A2 Net
-
2020 3DSSD
-
2021 SE-SSD
