PointPillars
对比:
现有的一些研究喜欢将不规则、稀疏的点云数据按照以下两种方式进行处理,然后引入RPN层进行3D Bbox Proposal,这两种方法为:
1)将点云数据划纳入一个个体素(Voxel)中,构成规则的、密集分布的体素集。常见的有VoxelNet和SECOND,这在之前的文章中已经解析过了;(3D卷积的高花费)
2)从俯视角度将点云数据进行处理,获得一个个伪图片的数据。常见的模型有MV3D和AVOD。(two-stage detection pipelines,无法端到端)
Key Knowledgeable:
- Pointcloud to Pseudo-Image:
- 等大小划分二维的Pillars,将一个Pillar的点修改位置信息向量为:
(like VoxelNet,but why lost yp(y-yc)?) - 每个Pillar选N个点(多则采样,少则填0),堆叠在一起,共有N×P个点(9个通道)
- 逐点参考PointNet提取C个特征,形成N×P×C的特征图,再对同一个P的N个点使用Maxpooling,变为C×P的二维特征图
- 通过将P→W×H,使得特征图变为W×H×C的伪图像(宽×高×通道数)
- Backbone:
Multi-Scale提取特征获得3个不同分辨率特征图,将3个特征图Deconv(Upsampling)至相同大小,拼接起来获得不同分辨率的特征图。 - Detection Head:
至此就是一个伪图像的2D目标检测任务,套用一个2D目标检测的检测:这里使用SSD进行预测。GroundTruth匹配只关注box的二维IoU,height and elevation作为额外的回归目标。 - Loss Function:
Ldir:sin周期为Π,使用softmax loss训练朝向:theta为1or-1,表示偏移角正负。(解决相差一个Π导致框正确但是逆向时候Loss变大的问题。)