首页 > 编程知识 正文

python点云可视化,点云数据处理的步骤

时间:2023-05-06 04:12:33 阅读:31378 作者:288

理解点云数据(PointNet实现步骤3 ) ) ) ) ) ) ) ) ) )。

理解点云数据(PointNet实现步骤3 ) ) ) ) ) ) ) ) ) )。

1.3维数据的表现形式

三维数据的表现形式一般分为四种。

图来源于斯坦福大学读博士生祁芮中台:点云深度学习及其在三维场景理解中的应用

三维数据格式

个人资料

图例

点云。

即三维空间中点的集合; 由n个d维的点构成,D=3时,可以表示为三维坐标点(x、y、z )。 xyz )位置决定(每个点都有),还可以指定其他属性,如RGB颜色。 这些是获取激光雷达数据时的原始格式,立体系统和RGB-D数据(包括标记有每个像素点深度值的图像)通常在进行进一步处理之前被转换为点云。

(来源:加州理工学院)

美秀

它由来自多边形网格的三角化和正方形面片组成。 多边形网格由一组具有公共顶点的凸多边形曲面组成,可以近似为单个几何曲面。 点云可以认为是从基础连续集合表面采样的三维点集; 多边形网格希望以易于渲染的方式表示这些基础曲面。 多边形网格最初是为计算机图形设计的,但也有助于三维视觉。 我们可以通过几种不同的方法从点云获得多边形网格,包括Kazhdan等人2006年提出的“泊松表面重建法”。

(来源:华盛顿大学)

体积(体素)

体素从点云发展而来,通过三维栅格物体用0和1表示。 体素就像三维空间中的像素点,体素的网格可以被认为是一定量化大小的点云。 但是,点云是一个三维网格,在空间中可以覆盖无数个点作为浮点像素坐标,每个单元(体素)都有一定的大小和离散的坐标。

(来源:印度理工学院)

多视点)

多角度RGB或RGB-D图像。 多视图显示是渲染多边形网格的二维图像的集合,来自不同的模拟视野“虚拟相机”。 这样,可以用简单的方法表现三维几何结构。 从多个相机(如立体系统stereo )捕获图像和构建多视图显示之间的区别在于,实际上,多视图需要构建完整的3D模型,并从多个任意视点进行渲染,以便充分表达基础几何结构与上述其他三种表示不同,多视图表示通常仅用于将三维数据转换为易于处理或可视化的格式。

(来源:斯坦福大学)

2 .了解相关框架和知识

请看这个转载博文。 这篇博文是从机器的内心转载的。 原文来自The Gradient。

强烈建议您查看上述转载博文。 可以了解更多关于点云和相关三维数据的优缺点。

3 .点云利弊总结

好处

看完第二点后,相信对相关框架和数据有所了解,总结以下点云的优势。

可以直接测定

用激光雷达扫描物体可以直接生成点云,点云接近设备的原始特征。 原始数据有助于端到端的学习。

图来源于斯坦福大学读博士生祁芮中台:点云深度学习及其在三维场景理解中的应用

点云的表示更简单,物体可以表示为N*D的矩阵。

对于Mesh,必须选择三角化或四边形等,还必须选择如何连接、三角化的大小;

对于体素,必须选择分辨率

多视角时,需要选择拍摄视角等。

图来源于斯坦福大学读博士生祁芮中台:点云深度学习及其在三维场景理解中的应用

包含几何信息

存在的课题

图为全球之声

存在的课题

说明

Irregular

点云数据不规则

非统一

点云有密集的地方,也有稀疏的地方

订单发光

点云本质上是长的点列。 (nx3矩阵,其中n是分数。 几何上,点的顺序不影响整体形状在空间中的表现。 例如,可以用两个完全不同的矩阵表示相同的点云。

旋转性

同一点云在空间内经过一定的刚性变化(旋转或平移),坐标发生变化。

4 .点云相关工作发展

图为全球之声

图为全球之声

图来源于斯坦福大学读博士生祁芮中台:点云深度学习及其在三维场景理解中的应用

转换为二维

,3D的一些信息会被抹去;特征提取受限于手工提取。

5.点云的解决方案

5.1置换不变性

设计的网络必须满足置换不变性,N个数据就有N!个置换不变性。而对称函数可以满足上述置换不变性,如下:

图来源于斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理解中的应用

直接对数据做对称性操作,虽然满足置换不变性,容易丢失很多的几何和有意义的信息。比如取最大值时,只取得最远点,取平均值,只取得重心。

如何不损失

把每一点都映射到高维空间,在更高维空间再做对数据做对称性操作。高维的空间对三维点的表达来说,必定是信息冗余的,但是因为信息的冗余性,我们通过对称性操作综合,可以减少信息的损失,保留足够的点云信息。由此,就可以设计出这PointNet的雏形,称之为PointNet(vanilla):

图来源于斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理解中的应用

通过MLP将每个点投影到高维空间,通过max做对称性。

MLP为什么可以投影到高维空间(这个是针对安静的红牛的解释,点击此处)

PointNet可以任意的逼近对称函数(通过增加神经网路的深度和宽度):

图来源于斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理解中的应用

5.2旋转不变性(几何不变性)

旋转不变性指的是,通过旋转,所有的点(x,y,z)的坐标发生变化,但是代表的还是同一个物体,如下所示:

因此对于普通的PointNet(vanilla),如果先后输入同一个但是经过不同旋转角度的物体,它可能不能很好地将其识别出来。在论文中的方法是新引入了一个T-Net网络去学习点云的旋转,将物体校准,剩下来的PointNet(vanilla)只需要对校准后的物体进行分类或者分割即可。

点云是一种非常容易做几何变换的数据,只需要通过矩阵的乘法即可。如下图所示,一个N×3的点云矩阵乘以一个3×3的旋转矩阵即可得到旋转变换后的矩阵,因此对输入点云学习一个3×3 的矩阵,即可将其矫正。

同样的将点云映射到K维的冗余空间后,再对K维的点云特征做一次校对,只不过这次校对需要引入一个正则化惩罚项,希望其尽可能接近于一个正交矩阵。【正则化是由于高维的空间优化较难,通过正则化可以减少优化的难度。】

点云的分类网络:

具体来说,对于每一个N×3的点云输入,网络先通过一个T-Net将其在空间上对齐(旋转到正面),再通过MLP将其映射到64维的高维空间上,再64维空间再进行对齐,最后映射到1024维的空间上。这时对于每一个点,都有一个1024维的向量表征,而这样的向量表征对于一个3维的点云明显是冗余的,因此这个时候引入最大池化max pool操作,将1024维所有通道上都只保留最大的那一个,这样得到的1×1024的全局特征。全局特征在通过一个级联全连接网络(即为最后一个MLP),最后达到一个K分类结果。

点云的分割网络:

点云的分割可以定义成一个对每一个点的分类问题,如果知道每个点的分类的,就可以对这个点进行固定类别的分割。当然,我们通过全局坐标是没法直接对每个点进行分割。一个简单又有效的做法就是,我们可以把局部的特征,单个点的特征和全局的坐标结合起来,实现分割的功能。用最简单的做法就是,我们可以把全局的特征,进行重复N遍,然后每一个和原来的单个点的特征连接在一起。【插入的解释:上述讲到将局部特征和全局特征结合起来(64+1024=1088),所以就不难解释1088的由来。现在,单个点就具有1088维度。】相当于单个点在全局特征中进行了一次检索(即为单个点去全局特征中看“我”在这个全局特征中处于哪一个位置,“我”应该属于哪一类?)。我们就对每一个连接起来的特征又进行另外一个MLP的变化,最后把它每个点分类成M类,相当于输出M个score。

点云数据理解(PointNet实现第3步)相关教程

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。