Pointet的读后感(CVPR2016):1.相关工作的介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Felaim/article/details/84403159

最近看了一些点云处理的文章,因为机器一直在跑代码,差不多是一天能够训练两轮…服务器每天都得前一天晚上把代码实现好,早上抢占GPUO(∩_∩)O.
哈哈~研究僧多,GPU少!

接触到Pointnet其实非常偶然,LZ在slam里兜兜转转,一直想找一个好玩的方向,有数学大神做各种算法优化,提出各种BA方法,有MVG大神,对多视图几何了如指掌,凭直觉和坚强的数学功底,提出各种标定算法,还有图像处理大神提出自己设计的描述子进行匹配…
LZ呢?
找到了一个点那就深入下去,希望在快毕业前再做出来点有意思的东西…哈哈,进入正题.之前因为对SLAM中的点云进行过处理和学习,包括PCL库的使用,感觉2D计算机视觉必然会向3D计算机视觉迁移.无人驾驶,包括kinect等深度相机的普及,还有现在雷达等设备的价格也比之前下降不少,3D数据更加丰富,现在也有很多benchmark直接都是有点云的,那简直太棒了吧,不需要你在为数据苦苦烦恼(当然,如果是构建数据集,也是一件非常值得钦佩的事情啦,斯坦福好像就特别爱提出数据集!!).

论文全称是:PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
作者:Charles R. Qi* Hao Su* Kaichun Mo Leonidas J. Guibas(Stanford University)

作者提出了一个网络叫做PointNet,这个网络是直接以点云的形式进行输入的,看过代码的应该都知道,如果batch_size为32,采样的点为1024,并且在ModelNet40上进行处理的话,输入的形式为(32, 1024, 3),最后3代表的就是点的三维坐标(x, y, z).可能这不仅仅是paper的观后感,其实论文和代码结合的一个观后感,恩!还有很激动的是这个代码是开源的,LZ用自己的小笔记本也可以跑得动这个代码!!!

首先介绍一下之前对于点云数据是如何处理的呢?

大致可以分为如下几类:

1.对数据进行体素化处理,大家应该都见过魔方,或者玩过我的世界?看过像素大战?可以把物体都看成是一个个小方块组成的,像VoxNet(IROS 2015), 3d shapenets(CVPR 2015),这是最直接的方法,将3D模型转换成体素格,如果格中存在部分该物体,则体素格为1,否则为0,由此可以看出数据存在极大的稀疏性,并且计算量和内存是以立方的速度增长.为了解决这个问题,通过优化数据结构如Kd-Net(ICCV 2017), O-CNN(CVPR 2017), Oct-Net(CVPR 2017)使用kd-tree和oct-tree的结构来进行优化,这样来减少计算量和存储空间方面的问题,但是这种网络并不像传统的3d CNN可以直接使用,对于工程师来说如何构建这样的网络也许并不是很简单呢!!

  1. 采用多视角将3D的物体或者点云投射到2D图像上,利用2D的卷积神经网络进行处理,如MVCNN(ICCV 2015),但是这个不能把任务拓展到点的分类和形状的补充,而且还会缺少3D的空间位置信息.对于角度的选取对结果也会产生影响.

3.谱CNN,这个可能不是特别常见,LZ对这个也没有太多的了解,可能会用到manifold上去,并且对3D物体材料会有一些限制.

  1. 依靠特征对3D的物体进行编码,首先将3d数据转换成向量的模式,通过提取传统的形状信息,和全连接层的连接对数据进行分类.这也会存在限制,整个数据的表征能力完全依赖提取的特征,特征的好坏直接影响到最后的结果,所以这个好像也不是特别的完美.

正是因为上面的方法都会存在各种各样的限制,作者就提出了直接使用点云作为输入,第一个吃螃蟹的人(⊙o⊙)哦

未完待续…感觉这个博客会很长,要不分篇写吧,这个作为一个相关知识的介绍,后面慢慢分解pointnet!!O(∩_∩)O哈哈~
最近在实验室坐的太久了,腰痛中/(ㄒoㄒ)/~~

猜你喜欢

转载自blog.csdn.net/Felaim/article/details/84403159
今日推荐