当前位置:网站首页>点云数据理解(PointNet实现第3步)
点云数据理解(PointNet实现第3步)
2022-07-02 06:25:00 【xiaobai_Ry】
PointNet实现第3步——点云理解
1.三维数据的表现形式
三维数据的表述形式一般分为4种:图来源于斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理解中的应用
三维数据形式 | 简介 | 图例 |
---|---|---|
point clouds(点云) | 即三维空间中点的集合;由N个D维的点组成,当D=3则可表示为三维坐标点(x,y,z) ,每一点都是由某个(xyz)位置决定的,我们同时可以为其指定其它的属性(如 RGB 颜色)。它们是激光雷达数据被获取时的原始形式,立体视觉系统和 RGB-D 数据(包含标有每个像素点深度值的图像)通常在进行进一步处理之前会被转换成点云。 | (来源 :加州理工学院) ![]() |
Mesh | 由三角面片和正方形面片组成,其来源于多边形网格。多边形网格由一组带公共顶点的凸多边形表面组成,可近似一个几何表面。我们可以将点云看作是从基础的连续集合表面采样得到的三维点集;多边形网格则希望通过一种易于渲染的方式来表示这些基础表面。尽管多边形网格最初是为计算机图形学设计的,但它对于三维视觉也十分有用。我们可以通过几种不同的方法从点云中得到多边形网格,其中包括 Kazhdan 等人于 2006 年提出的「泊松表面重建法」。 | (来源:华盛顿大学)![]() |
Volumetric(体素) | 体素网格是从点云发展而来的,由三维栅格物体用0和1表征。体素就好比三维空间中的像素点,我们可以把体素网格看作量化的、大小固定的点云。然而,点云在空间中的任何地方能够以浮点像素坐标的形式涵盖无数个点;体素网格则是一种三维网格,其中的每个单元(或称「体素」)都有固定的大小和离散的坐标。 | (来源:印度理工学院)![]() |
multi-view(多视角) | 多角度的RGB图像或者RGB-D图像。多视图表示是从不同的模拟视角(「虚拟摄像头」)获取到的渲染后的多边形网格二维图像集合,从而通过一种简单的方式表现三维几何结构。简单地从多个摄像头(如立体视觉系统 stereo)捕捉图像和构建多视图表示之间的区别在于,多视图实际上需要构建一个完整的 3D 模型,并从多个任意视点渲染它,以充分表达底层几何结构。与上面的其他三种表示不同,多视图表示通常只用于将 3D 数据转换为易于处理或可视化的格式。 | (来源:斯坦福大学) ![]() |
2.相关框架及知识了解
请查看此转载博文,该博文转载自机器之心,原文来源于The Gradient。
强烈推荐查看上述转载博文,对点云及相关三维数据的优势及劣势会有更多的了解。
3.点云的优劣势总结
优势
相信看完第2点之后,对相关框架及数据都有所了解,下面总结以下点云的优势。
- 可直接测量
通过激光雷达扫描物体可直接产生点云,点云更加接近于设备的原始表征。原始的数据利于端到端的学习。
图来源于斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理解中的应用 - 点云的表达方式更为简单,一个物体可以表示为一个N*D的矩阵。
对于Mesh,则需要选择用三角面片或者四边形等,还需要选择如何连接,三角面片的大小;
对于体素,则需要选择分辨率;
对于多视角,则需要选择拍摄视角等。图来源于斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理解中的应用
- 包含几何信息
存在的挑战
图来源于: University of Oxford
存在的挑战 | 说明 |
---|---|
Irregular | 点云数据是不规则的 |
non-uniform | 点云分布有些地方密集,有些地方稀疏 |
orderless | 点云本质上是一长串点(nx3矩阵,其中n是点数)。在几何上,点的顺序不影响它在空间中对整体形状的表示,例如,相同的点云可以由两个完全不同的矩阵表示。 |
旋转性 | 相同的点云在空间中经过一定的刚性变化(旋转或平移),坐标发生变化。 |
4.点云相关工作发展
图来源于: University of Oxford
图来源于: University of Oxford
图来源于斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理解中的应用
转化为2D,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。
边栏推荐
- ORACLE APEX 21.2安装及一键部署
- Illustration of etcd access in kubernetes
- Cloud picture says | distributed transaction management DTM: the little helper behind "buy buy buy"
- Check log4j problems using stain analysis
- Only the background of famous universities and factories can programmers have a way out? Netizen: two, big factory background is OK
- 使用Matlab实现:幂法、反幂法(原点位移)
- MySQL组合索引加不加ID
- CAD secondary development object
- JSP智能小区物业管理系统
- 【MEDICAL】Attend to Medical Ontologies: Content Selection for Clinical Abstractive Summarization
猜你喜欢
外币记账及重估总账余额表变化(下)
Spark SQL task performance optimization (basic)
Only the background of famous universities and factories can programmers have a way out? Netizen: two, big factory background is OK
Ceaspectuss shipping company shipping artificial intelligence products, anytime, anywhere container inspection and reporting to achieve cloud yard, shipping company intelligent digital container contr
MySQL has no collation factor of order by
使用 Compose 实现可见 ScrollBar
Proteus -- RS-232 dual computer communication
TCP attack
sparksql数据倾斜那些事儿
Explain in detail the process of realizing Chinese text classification by CNN
随机推荐
MySQL has no collation factor of order by
Spark SQL task performance optimization (basic)
CAD secondary development object
Oracle 11g sysaux table space full processing and the difference between move and shrink
类加载器及双亲委派机制
Pyspark build temporary report error
MapReduce与YARN原理解析
Network security -- intrusion detection of emergency response
oracle EBS标准表的后缀解释说明
SSM student achievement information management system
[introduction to information retrieval] Chapter 1 Boolean retrieval
[introduction to information retrieval] Chapter II vocabulary dictionary and inverted record table
sparksql数据倾斜那些事儿
Practice and thinking of offline data warehouse and Bi development
【MEDICAL】Attend to Medical Ontologies: Content Selection for Clinical Abstractive Summarization
Yaml file of ingress controller 0.47.0
【信息检索导论】第三章 容错式检索
Find in laravel8_ in_ Usage of set and upsert
Principle analysis of spark
Ceaspectuss shipping company shipping artificial intelligence products, anytime, anywhere container inspection and reporting to achieve cloud yard, shipping company intelligent digital container contr