目录
开山之作-PointNet
1 点云数据处理共性问题
1.1 点云数据的无序性
1.2 点云数据的旋转性与平移性
不错的讲解:
最全PointNet和PointNet++要点梳理总结-CSDN博客
3 总结
1 点云数据处理共性问题
传统深度学习模式(处理二维图像数据),使用序列化的卷积核处理序列化的二维图像数据,但点云是一种不规则数据,在空间上和数量上可以任意分布,因此传统的深度学习模式无法处理点云数据。
1.1 点云数据的无序性
在将实景保存为点云数据时(以pcd为例),是一行存储一个点的xyz信息,如果放大到多行点云数据来看,将某几行数据进行交换,它实际表达的仍然是同一片点云(xyz信息没变),只是在保存为点云数据时人为的加入了顺序(这是不可避免的)。对比二维图像数据,当交换它的某些点(即xy发生变化)它一定会代表另一种图案,所以这是传统深度学习模式无法处理点云数据的最大的障碍!
2.1 针对无序性
PointNet利用h-g-y的结构解决了点云数据无序性的问题:首先通过MLP提取特征,再通过max筛选最具代表性的特征,最后通过MLP消化筛选的特征。我个人的理解是不论点云的位置如何变化,通过maxpooling筛选出的最大值永远不会变,所以比较好的解决了点云数据的无序性问题。
1.2 点云数据的旋转性与平移性
基于不同的视角所观察到的事物的样子是不相同的,例如这一片点云代表一辆车,传感器刚好倒放收集了点云数据,或者观察视角进行平移点云数据xyz信息都发生了变化。如何处理这样xyz信息有大量变化但所表达的信息不变(仍然是一辆车)的数据是传统深度学习模式无法解决的。
2.2 针对旋转性和平移性
空间中物体的旋转和平移可以通过矩阵运算来解决(R、t),而深度学习本质上也是矩阵的运算,PointNet在网络加入两个T-Net,让网络自主学习如何调整位姿以得到更好的输出结果。
2 PointNet
PointNet作为利用深度学习方式处理点云数据的开山之作,成功的处理了点云数据,并进行分类、分割。
3 总结
PointNet是用点云数据进行深度学习的开山之作,所提出的使用maxpool解决点云无序性更是成为之后所有神经网络优先考虑的模块。
但PointNet仍然有很大的局限性,PointNet在通过maxpool将所有特征进行筛选的时候,没有局部概念,很难对精细的特征做学习,在分割上有很大的局限性;没有了局部概念在平移不变性也有局限性,例如在处理场景点云数据时,场景内包含多个物体,T-Net很难用一个标准去同一所有的物体。
原文链接:https://blog.csdn.net/qq_43049432/article/details/101349184