PointNet是斯坦福大学发表在2017年CVPR上的一篇处理点云数据的论文。相较于之前其他处理点云数据的论文,其最大的不同是,对于点云数据,会直接进行处理,而非将点云数据进行格式化处理,从而避免了将点云数据格式化后,产生的unnecessarily voluminous以及像素点失真的问题。从这一点上来说,PointNet具有极其重要的意义。

从传统思路来讲,通过将点云数据转换成3D像素数据后,可以将3D像素数据像处理2维图像一样,进行卷积,权值共享等,而显而易见,对于无序的一些点的集合,是无法直接像和处理2D数据一样进行处理,在原文中,当直接使用点云数据不加处理时,作者提出了以下3个可能产生的问题,以及主要就这3个问题,进行的网络结构的设计以及相关的证明和实验:

1、输入无序性问题

从数据结构的角度来讲,点云数据知识一组无序的向量集合,若不考虑其他诸如颜色等因素,只考虑点的坐标,则点云数据只是一组n * 3的点集合。那么当对这n个点进行不同顺序的读入时,无论是图像分类抑或是部分分割,都必须输出相同的结果,在2D图像中,因为点的位置是固定的,所以不存在这样的问题,但是在点云数据中,点的输入组合中共有n!种,所以必须进行处理。

在论文中,处理的方式也比较简单,使用了最大池化,在对n个点进行卷积等操作后,生成n * 1024维的矩阵,1024维的1024个整体特征,对于每个维度,求其最大值,即解决了输入无序性的问题。此处可举例有max(a,b,c,d,e,f,g) =  max (a,d,b,e,c,f,g) = ...

在论文的4.3部分,作者就使用最大池化进行证明,当特征维数足够大时,最大池化可以对模拟论文中所述的任意对称函数f,同时在此基础上论述了模型的稳定性。对于任意数据集S,Cs表示critical set,Ns表示upper-bound set,即对于相同全局特征f(s),所可能的最大点云集,此时有f(Ns) = f(S), 故而当添加的点属于Ns - S时,对于整体点云特征并无影响,故而满足稳重所述的robust to small pertubation of input points。此处其实与svm中的支持向量有点类似,以及凸包中,被包住的点。最终作者的结论是网络学习到了概括形状的关键点,即点云的骨架。

2、点与点之间的相关性

在分类问题中,此问题其实不是特别重要,在分类中,只要处理出全局特征,通过对全局特征进行mlp或者用svm分类等,即可得到最终答案,但是在part segmentation 以及 scene semantic parsing中,此问题就显得极其重要。

论文中进行处理时,通过将提取出的全局特征以及点特征结合,得到n * 1088(64 + 1024)的特征矩阵,然后在此矩阵的居处上,重新提取每个点的特征,得到包含局部及全局特征的点信息。

3、旋转不变性

对于一个3维图像,当我们进行例如旋转、上移等操作时,不论是目标分类还是部分分割,都应保证其结果不变。

而解决此问题的方法是通过添加一个T-Net,对原始点矩阵进行仿射变换。相当于在数据预处理阶段直接进行处理,保证其后的结果不变性。训练的T-Net是数据依赖的。同时,在其后的点的特征空间,作者也同样加了一个T-Net进行处理,但相较于前一个3 * 3变换矩阵,此变换矩阵为64 * 64 = 4096,由于变换矩阵过大,通过添加正则项,使变换矩阵近似于正交矩阵,此时所需要的参数将大大减少。

最后对图中的网络结构结合具体代码进行分析:

在输入点云数据后,首先进行T-Net进行仿射变换,具体表现为乘以3*3的转换矩阵,其后通过卷积层进行特征提取,根据代码得知,mlp(64,64)的两层卷积层的卷积核数量都为64,其中第一层卷积的卷积核大小为1 * 3,第二层为1 * 1的核。而后进行相同的feature transform,在下一个mlp(64,128,1024)中,卷积核的大小都为1 * 1。在池化层后,分别连接三个全连接层,输出节点个数依次为512、256、k,最终使用softmax函数得到结果。

个人笔记——PointNet初学相关推荐

  1. 《每天一点学习笔记》-初学python3~3

    <每天一点学习笔记>-初学python3 这几天乱遭事有点多,没来得及写,就不写第几天了,综合整理一下,简单记录这几天学的内容吧.简单来说我看了一些入门的基础知识,有的是视频,也有别人写的 ...

  2. python手写笔记图片初学_Python处理手写笔记

    下载W3Cschool手机App,0基础随时随地学编程导语 利用Python实现手写笔记的压缩与增强. 至于起因大概是: 这个内容很有趣... --> 说了等于没说.T_T 相关文件 密码: 4 ...

  3. 个人笔记——PointNet++初读

    PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space 在表述PointNet++之前,其实列出题 ...

  4. 阅读笔记 PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

    一.背景 点云是三维坐标系统中的一组三维向量的集合,是表示物体外表的一个形状,接近物体原始特征 我们的卷积神经网络通常需要规则的数据形式作为输入,但由于点云是非规则数据类型所以通常的做法大都先对点云进 ...

  5. python第一单元笔记_Python 初学笔记 - 第一章-列表

    列表 列表(list)是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分割值出现. 列表中的数据项不需要具有相同的类型,可以进行的操作包括索引(第一个索引是0,第二个索引是1,以此类推 ...

  6. python函数笔记_初学Python函数的笔记整理

    定义 返回单值 def my_abs(x): if x >= 0: return x else: return -x 返回多值 返回多值就是返回一个tuple import math def m ...

  7. python入门语句_Python 快速入门笔记(5):语句

    本系列随笔是本人的学习笔记,初学阶段难免会有理解不当之处,错误之处恳请指正.转载请注明出处: https://www.cnblogs.com/itwhite/p/12297769.html. 简介 p ...

  8. python快速入门答案-Python 快速入门笔记(1):简介

    本系列随笔是本人的学习笔记,初学阶段难免会有理解不当之处,错误之处恳请指正.转载请注明出处:https://www.cnblogs.com/itwhite/p/12290423.html. 语言简介 ...

  9. python快速入门课堂笔记_Python 快速入门笔记(10):文件及目录操作

    本系列随笔是本人的学习笔记,初学阶段难免会有理解不当之处,错误之处恳请指正.转载请注明出处:https://www.cnblogs.com/itwhite/p/12303495.html. 文件读写 ...

最新文章

  1. GO库安装报错解决:unrecognized import path golang.org/x/net (https fetch: dial tcp i/o timeout
  2. Android数据填充器LayoutInflater
  3. new Scanner(1.txt);读取不到文件中的数据
  4. java《算法》第四版一些API方法笔记
  5. 【maven】Missing artifact javax.jms:jms:jar:1.1:compile
  6. 读书笔记——《迁移到云原生架构》
  7. C# 之 Int16 Int32 Int64 的区别
  8. Spring中的计时器StopWatch
  9. 《大道至简》的幕后故事(2):“愚公移山记”人物篇
  10. iOS网络编程实践--蓝牙对等网络通信实例讲解
  11. Java并发编程之volatile关键字
  12. ThinkPHP在IIS下配置ISAPI伪静态去掉index.php
  13. 论文阅读:SCAFFOLD: Stochastic Controlled Averaging for Federated Learning
  14. android下拉水波纹,RecyclerView实现水波纹点击效果
  15. 如何在word中的方框里打钩
  16. 计算机自带pdf吗,电脑自带pdf转换工具哪个好?办公必备!
  17. 英伟达显卡安装老驱动388.71
  18. 台电TBOOK16PRO安装凤凰安卓系统
  19. 短视频去水印微信小程序,免费去除视频水印
  20. 大数据学习笔记(六)HDFS-API

热门文章

  1. 阿里架构师的炫技与克制:代码的两种味道与态度
  2. 从单体开始的架构演进
  3. 不能装载文档控件。请在检查浏览器的选项中检查浏览器的安全设置_【网络安全知识系列(五)】如何正确设置浏览器!...
  4. Android Studio 3.6 发布啦,快来围观
  5. 关于px4源码中固定翼姿态控制
  6. php 时间加法函数_PHP中时间加减函数strtotime用法分析
  7. 计算机cpu最高温度,详解电脑cpu温度过高几种常用处理方法
  8. 飞行(Mcool) 13.0.03106 简体中文绿色版
  9. 解决dataTable在element下的tab切换时表头与内容错位问题
  10. 学习discovery studio对对接结果进行分析