使用深度学习的三维点云分类的介绍

在过去的这些年里,对二维图像已经有了大量深入的研究,并且有着长足的发展。它在分类任务上取得了极好的结果主要得益于一下两个关键因素:

1.卷积神经网络。

2.数据 - 大量图像数据可用。

但是对于3D点云,数据正在迅速增长。大有从2D向3D发展的趋势,比如在opencv中就已经慢慢包含了3D点云的处理的相关模块,在数据方面点云的获取也是有多种渠道, 无论是源于CAD模型还是来自LiDAR传感器或RGBD相机的扫描点云,无处不在。 另外,大多数系统直接获取3D点云而不是拍摄图像并进行处理。因此,在深度学习大火的年代,应该如何应用这些令人惊叹的深度学习工具,在3D点云上的处理上达到对二维图像那样起到很好的作用呢?

3D点云应用深度学习面临的挑战。首先在神经网络上面临的挑战:

(1)非结构化数据(无网格):点云是分布在空间中的XYZ点。 没有结构化的网格来帮助CNN滤波器。
(2)不变性排列:点云本质上是一长串点(nx3矩阵,其中n是点数)。 在几何上,点的顺序不影响它在底层矩阵结构中的表示方式,例如, 相同的点云可以由两个完全不同的矩阵表示。 如下图所示:

(3)点云数量上的变化:在图像中,像素的数量是一个给定的常数,取决于相机。 然而,点云的数量可能会有很大的变化,这取决于各种传感器。

在点云数据方面的挑战:

(1)缺少数据:扫描的模型通常被遮挡,部分数据丢失。
(2)噪音:所有传感器都是嘈杂的。 有几种类型的噪声,包括点云扰动和异常值。 这意味着一个点有一定的概率位于它被采样的地方(扰动)附近的某一半径范围内,或者它可能出现在空间的任意位置(异常值)。
(3)旋转:一辆车向左转,同一辆车向右转,会有不同的点云代表同一辆车

Princeton’s Modelnet40 dataset。 它包含约40个对象类别(如飞机,表格,植物等),用三角形网格表示的12311个CAD模型。 数据分为9843个培训模式和2468个测试模式,如下图

在点云上应用深度学习的直接方法是将数据转换为体积表示。 例如体素网格。 这样我们就可以用没有神经网络问题的3D滤波器来训练一个CNN(网格提供了结构,网格的转换解决了排列问题,体素的数量也是不变的)。 但是,这有一些不利因素。 体积数据可能变得非常大,非常快。 让我们考虑256×256 = 65536像素的典型图像大小,现在让我们添加一个维度256x256x256 = 16777216体素。 这是很大的数据量(尽管GPU一直在发展)。 这也意味着非常缓慢的处理时间。 因此,通常我们需要妥协并采取较低的分辨率(一些方法使用64x64x64),但是它带来了量化误差的代价。所以,所需的解决方案是一个直接的深度学习的方法,将是3D点云应用深度学习的重点。

作者调查了三种最近发表的文章,主要针对对点云进行深度学习的论文。 正如下图所示,展示了3D点云分类准确性出版(准确性,年份和数据类型),它总结了数据集上的最新准确性结果。 以及每种方法正在处理的数据的类型。 可以看到,在2015年,大多数方法都用于多视图数据(这是一种简短的说法 - 让我们拍摄3D模型的几张照片并使用2D方法处理它们),2016年更多的方法使用了体素表示的点云学习和2017年的基于点的方法有了大幅度的增长。

PointNet(CVPR2017)

开拓者! 来自斯坦福大学,他们的工作引起了很多关注。他们做了一些令人惊讶的简单的事情,并证明了为什么它运作良好,他们分别在每个点上训练了一个MLP(在点之间分享权重)。每个点被“投影”到一个1024维空间。然后,他们用点对称函数(max-pool)解决了点云顺序问题。这为每个点云提供了一个1 x 1024的全局特征,这些特征点被送入非线性分类器。利用他们称为T-net的“迷你网络”解决了旋转问题。它学习了点(3 x 3)和中级特征(64 x 64)上的变换矩阵。称之为“迷你”有点让人误解,因为它实际上与主网络的大小有关。另外,由于参数数量的大量增加,引入了一个损失项来约束64×64矩阵接近正交。也使用类似的网络进行零件分割。也做了场景语义分割。做得好!我强烈推荐阅读(或者您也可以观看演示视频)。本文对ModelNet40数据集的准确率高达89.2%。下图是pointNet点云分类的框架

引用: Charles R. Qi, Hao Su, Kaichun Mo, and Leonidas J. Guibas. Pointnet: Deep learning on point sets for 3d classication and segmentation. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 2017.

The code is available on GitHub: PointNet code

Pointnet ++(NIPS 2017)

在PointNet之后不久,引入了Pointnet ++。它本质上是PointNet的分层版本。每个图层都有三个子阶段:采样,分组和PointNeting。在第一阶段,选择质心,在第二阶段,把他们周围的邻近点(在给定的半径内)创建多个子点云。然后他们将它们给到一个PointNet网络,并获得这些子点云的更高维表示。然后,他们重复这个过程(样本质心,找到他们的邻居和Pointnet的更高阶的表示,以获得更高维表示)。使用这些网络层中的3个。还测试了不同层级的一些不同聚合方法,以克服采样密度的差异(对于大多数传感器来说这是一个大问题,当物体接近时密集样本,远处时稀疏)。他们在原型PointNet上进行了改进,在ModelNet40上的准确率达到了90.7%。下面是Pointnet++ 架构。

引用: Charles R Qi, Li Yi, Hao Su, and Leonidas J Guibas. Pointnet++: Deep hierarchical feature learning on point sets in a metric space. arXiv preprint arXiv:1706.02413, 2017.

Kd-Network(ICCV 2017)

本文使用着名的Kd树在点云中创建一定的顺序结构的点云。一旦点云被结构化,他们就会学习树中每个节点的权重(代表沿特定轴的细分)。每个坐标轴在单个树层级上共享权重如下图中的所有绿色都具有共享权重,因为它们将数据沿x维度细分。测试了随机和确定性的空间细分,并说明了随机版本效果最好。但同时也说出了一些缺点。对旋转(因为它改变树结构)和噪声(如果它改变树结构)敏感。对于每个输入点云数据,都需要上采样,下采样或训练一个新模型。

在Modelnet40上报告了1024点(深度10树)的90.6%准确度数据集和?32K点(深度15树)的91.8%。做到了部分点云分割,形状检索,并可以在后期工作中尝试其他的树形结构。

引用: Roman Klokov and Victor Lempitsky. Escape from cells: Deep kd-networks for the recognition of 3d point cloud models. arXiv preprint arXiv:1704.01222, 2017.

总结:Pointnet和Pointnet ++使用对称函数来解决顺序问题,而kd-Network使用Kd-tree。 Kd树也解决了结构问题,而在PointNets MLP每个点分别训练。

该文章翻译http://www.itzikbs.com/3d-point-cloud-classification-using-deep-learning,有问题请指出,这样做笔记的记录,让我对文章理解更加深刻,同时欢迎大家关注微信公众号

或者加入3D视觉微信群一起交流分享

原文地址:https://www.cnblogs.com/li-yao7758258/p/8182846.html

时间: 2024-08-01 20:18:33

使用深度学习的三维点云分类的介绍的相关文章

手把手教你用深度学习做物体检测(六):YOLOv2介绍

本文接着上一篇<手把手教你用深度学习做物体检测(五):YOLOv1介绍>文章,介绍YOLOv2在v1上的改进.有些性能度量指标术语看不懂没关系,后续会有通俗易懂的关于性能度量指标的介绍文章. YOLOv2 论文:< YOLO9000: Better, Faster, Stronger> 地址:  https://arxiv.org/pdf/1612.08242v1.pdf yolov2和v1的区别 引入了Batch Normalization  有一定的正则化效果,可以减轻过拟合,

深度学习与计算机视觉系列(1)_基础介绍

1.背景 计算机视觉/computer vision是一个火了N年的topic.持续化升温的原因也非常简单:在搜索/影像内容理解/医学应用/地图识别等等领域应用太多,大家都有一个愿景『让计算机能够像人一样去”看”一张图片,甚至”读懂”一张图片』. 有几个比较重要的计算机视觉任务,比如图片的分类,物体识别,物体定位于检测等等.而近年来的神经网络/深度学习使得上述任务的准确度有了非常大的提升.加之最近做了几个不大不小的计算机视觉上的项目,爱凑热闹的博主自然不打算放过此领域,也边学边做点笔记总结,写点

深度学习Github排名,很不错的介绍

今天看到这篇文章,把深度学习github排名靠前的项目,介绍了一下,很不错: https://blog.csdn.net/yH0VLDe8VG8ep9VGe/article/details/81611668 依据的排名在这里: https://github.com/mbadry1/Top-Deep-Learning github真的是非常棒的学习资源.一定要好好学习和利用. 原文地址:https://www.cnblogs.com/charlesblc/p/9949580.html

用深度学习做命名实体识别(六)-BERT介绍

什么是BERT? BERT,全称是Bidirectional Encoder Representations from Transformers.可以理解为一种以Transformers为主要框架的双向编码表征模型.所以要想理解BERT的原理,还需要先理解什么是Transformers. Transformers简单来说是一个将一组序列转换成另一组序列的黑盒子,这个黑盒子内部由编码器和解码器组成,编码器负责编码输入序列,然后解码器负责将编码器的输出转换为另一组序列.具体可以参考这篇文章<想研究B

用深度学习做命名实体识别(七)-CRF介绍

还记得之前介绍过的命名实体识别系列文章吗,可以从句子中提取出人名.地址.公司等实体字段,当时只是简单提到了BERT+CRF模型,BERT已经在上一篇文章中介绍过了,本文将对CRF做一个基本的介绍.本文尽可能不涉及复杂晦涩的数学公式,目的只是快速了解CRF的基本概念以及其在命名实体识别等自然语言处理领域的作用. 什么是CRF? CRF,全称 Conditional Random Fields,中文名:条件随机场.是给定一组输入序列的条件下,另一组输出序列的条件概率分布模型. 什么时候可以用CRF?

深度学习容器云获4000万融资,人工智能激活企业云市场

2017年3月,"人工智能"被首次写入<政府工作报告>.报告指出要加快培育壮大新兴产业,全面实施战略性新兴产业发展规划,加快新材料.人工智能.集成电路.生物制药.第五代移动通信等技术研发和转化,做大做强产业集群.随后,多家国内人工智能上市公司涨停. 自去年AlphaGo大战韩国世界级旗手李世石以来,全球就掀起了人工智能60年历史上又一波热潮.2016年,Facebook.Amazon.谷歌.IBM和微软结成史上最大人工智能联盟轰动业界,IBM发布了百年历史上第三个品牌愿景&

深度学习遥感影像分类(1)_数据集批量准备

近年来,深度学习在遥感影像地物分类中取得了一系列显著的效果.CNN可以很好的获取影像纹理信息,捕捉像素与像素之间的空间特征,因此,一个训练好的深度学习模型在地物提取中具有很大的优势.但模型的训练却是一个很繁琐的任务,需要人工准备数据集,贴标签,训练模型等.本文将以sar影像为例实现冰水二分类的数据集批量准备工作(划线取点截取小图片保存): 1.原始sar遥感影像 2.预处理思路: a.人工划线:对应在冰和水上画n条线(自己设置,注意自己需要针对类别所占比例控制线条数量和长度) b.保存小图片:获

机器学习和深度学习资料合集

机器学习和深度学习资料合集 注:机器学习资料篇目一共500条,篇目二开始更新 希望转载的朋友,你可以不用联系我.但是一定要保留原文链接,因为这个项目还在继续也在不定期更新.希望看到文章的朋友能够学到更多.此外:某些资料在中国访问需要梯子. <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.Deep Learning. <Deep Learning in

[转]机器学习和深度学习资料汇总【01】

本文转自:http://blog.csdn.net/sinat_34707539/article/details/52105681 <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.Deep Learning. <Deep Learning in Neural Networks: An Overview> 介绍:这是瑞士人工智能实验室Jurgen