点云上的卷积神经网络及其部分应用
这个公开班是由美国俄勒冈州立大学助理教授李·富王(Li Fuxin)先生教授的。公开班主要引入了涵盖3D点云领域的研究,并着重于近期引入Li先生的最新作品内容。
打开课程重播链接:
近年来,这种共享首先在两篇经典论文中介绍了3D Point Cloud识别的工作,并详细介绍了PointNet ++和PointNet。然后从传统的CNN开始,然后逐渐引入PointConv;最后,我们将与PointConv结合使用Li Team教师团队的最新工作内容。
在课程开始时,李·富特(Li Fuxin)老师介绍了Point Cloud CNN的一些背景。
CNN在点云上的工作与点云上的其他操作有些不同。 Point Cloud CNN更多地关注识别任务。市场上已经有许多深度传感器可以直接获取周围物体的深度数据,例如Velodyne Lidar。随着深度传感器的流行,深度传感器将来将在我们的日常生活中变得越来越普遍。我们都知道,深度学习在2D图像识别方面取得了飞跃。研究点云CNN的目的是使深度学习的应用更广泛地在点云中。
有许多常见的三维表示。共同表示形式是点云,网格,体积和RGBD等。网格可以更好地表示对象表面信息。体积是将三维空间转换为网格的表示形式。 RGBD在传统的RGB图阶段添加了深度维度,但只能从一个角度看到信息。为什么我们需要研究点云CNN?因为无论是LIDAR,结构化的光还是TOF深度传感器,它们都是直接获得的点云信息,而其他三维表示是通过点云生成的。
同时,我们还可以将RGB信息粘贴到Point Cloud数据中,因此在空间表示中,不仅有对象的三维信息,还包括对象的颜色信息。公共点云通常很少,在土木工程领域,将应用强大的扫描仪来获取大量点云数据以恢复对象信息并可以表示详细的空间信息。
1研究状况
为什么点云CNN难以做?例如,从2D图像开始,可以使用像素图像(I-1,J-1)的邻域信息来表示图像中的特定位置信息,但是不能保证点云数据存在于点云中相同的相对位置。因此,可以将此问题转换为体积卷积以执行点云的CNN。一些体素具有特征点,一些体素没有特征点,有些体素可以找到计算点的邻域。近年来,将此方法应用于点云,发现使用矩阵稀疏可以提高计算速度,并且近年来的准确性和速度取得了不错的成绩。
当涉及到Point Cloud深度学习时,不可避免地使用两种经典的点云神经网络处理方法:PointNet和PointNet ++。 PointNet中有两个常用的操作:1x1卷积和最大功能。但是,只有这两个操作实际上远远不够3D识别。 PointNet提取功能的方式是为所有点云数据提取全局功能。显然,这与当前流行的CNN不同,以逐层提取本地特征。
受到CNN的启发kaiyun全站app登录入口,同一组作者发表了PointNet ++,该++更接近传统CNN。与PointNet相比,它可以在不同尺度上提取本地特征,并通过多层网络结构获得深度特征。
PointNet ++由以下关键部分组成:采样(采样层),分组(组合层)和PointNet(特征提取层)。
首先,在网络处理过程中对输入点的数据点进行采样,并将采样结果中每个点形成的局部点组合在一起,以促进点网的局部特征提取。由于最大流动的影响,对于每组特征点,只有一个点是输出。
然后根据每个点形成的局部点组合提取的特征点,并将结果采样并连接到PointNet。采样,分组和点网的三层由类似卷积的层状结构组成,可用于分类和分割。
PointNet ++作者使用的采样算法是最远的点采样。与随机采样相比,此采样算法可以更好地覆盖整个采样空间,包括点云数据特征信息以及边缘和角落信息,这些信息无法随机采样。
尽管PointNet已经足够出色,但PointNet缺乏邻居信息,这与传统的通过周围社区获得卷积结果的感觉有很大不同,这也很难直接应用于随后的Point Cloud CNN。
例如,这里有一个最简单的边缘检测任务。两侧的颜色在边缘都不同。为了检测边缘,我们需要考虑至少两个点的颜色信息,以确定是否存在边缘。除了最大池外,PointNet的所有其余操作仅在单个点上执行,并且很难直接应用于诸如Corner检测之类的任务。因此,我们迫切需要一个真正意义上的点云CNN。
2 CNN到PointConv
为了引入Point Cloud CNN,我们首先回顾了传统的CNN。对于2D图片,特定位置的输出不仅与该位置的输入有关,而且与该位置周围位置的输入有关。不同位置的输入具有不同的权重。在下图中,x(i,j,k)可以看作是图像的原始像素,W是卷积内核,而G是邻域。卷积是加权总和。由于位置坐标的像素值是固定值,因此在原始图像像素上卷积内核上的所有动作点,所有动作结果均通过线性叠加累积,这是图像卷积的输出。
可以通过连续域进行考虑。目前,W不是权重矩阵,而是功能。因此,由于点云位置是随机的,因此不同位置的权重应不同。通过这种方式,可以将重量函数W抽出到三维坐标的函数中。由于所有操作都是可微分的,因此通过深度学习进行连续学习,并且ΔI,Δj,ΔK的权重值被用作函数的输出结果,这也是一个最初重要的思想。在下图中,W和X是连续函数,(I,J,K)是三维参考坐标,(ΔI,ΔJJ,ΔK)是该点附近的相对坐标,因为卷积本质上是加权总和。如果某些位置的采样点是密集的,并且某些位置的采样点很少,则最终计算结果主要受到采样密集型位置的点的影响。考虑到该点云是不均匀的采样传感器,以补偿不均匀的采样,需要将学习的权重与点云逆密度加权。该模块的主要目的是处理点云的不均匀采样。通过这种方式,我们可以将PointConv描述为:
3 PointConv和深度学习
PointConv的主要任务是在用1层隐藏层替换重量函数W的基础上添加隐藏的图层和KDE。通过这种方式,可以将网络的基本结构描述为:通过查找点云的k最近邻居以获得K×3的坐标,并进行两层完全连接的网络,从而获得K×(CIN×COUT)的W(CIN×COUT),并复制输入特征FIN操作,您可以在1×Cout dopension中获得1×Cout doint的输出功能。完整的PointCov网络结构图如下:
李老师的团队以前提交了一篇论文,但被拒绝了,因为他们不知道一个团队以前做过同样的工作。在他们的工作中,由于每个点需要计算K×CIN×COUT维度的重量值,因此PointConv高度耗尽内存且效率低下,因此很难形成大型的卷积网络结构。李老师发现,通过更改上图中蓝色框中的总和顺序,它可以确保根据不变结果大大减少内存。假设MLP的最后一层的输入为M,M直接乘以加权的权重,而重量的逆密度加权,将完全连接的层的最后一层放在末端。它似乎只是对订单的简单调整,但是它可以节省复制COUT时间的操作,并且无需获得大型K×(CIN×COUT)的张量,从而有效地减少了参数的数据量并避免了每个卷积中巨大权重的问题。
实验结果证明,原始结构需要大约8克内存,并且在优化后,它只需要占据100m,这大大节省了内存使用情况,并为后来的大规模网络构建了基础。这样,PointConv层可以完全对应于正常的卷积层。优化的网络结构是:
当然,我们还可以定义尖角。在上一个PointNet ++中,反卷积主要是通过插值方法实现的。例如,下层有AK邻域,并且上层的点直接插值以实现它。使用PointConv,可以在每个插值中添加一层PointConv,因此PointDeconv由两个部分组成:插值和PointConv。首先,使用线性插值算法来获得细层特征的初始值,然后在细层上执行PointConv,以优化特征以获得更高的精度特征值。
使用PointConv和PointDeconv,可以基于传统的卷积神经网络结构来构建U-NET网络,以用于点云分类任务。如下图所示,所有点首先通过PointConv获得,然后通过一系列PointDeconv逐渐增加点数kaiyun官方网站登录入口,直到它们返回到最初的点数,然后在每个点上执行1×1卷积以获得点云的U-NET。
为了验证PointConv可以替换真正的卷积效应,Li老师的团队用Point Cloud代替了CIFAR-10。在第5层和第19层的实验中,PointConv的精度高于最新的PointCNN和SpiderCNN的Point Cloud深度学习网络,并且比传统的卷积神经网络框架接近甚至更高。
同时,Li老师的团队还比较了ModelNet,Shapenet和Scannet上更多点云深学习网络的结果。 ModelNet40和Shapenet中提高的准确性不是很高,但是它提高了实际室内扫描数据集扫描仪的准确性。
基于4层PointConv,它的精度为55.6%,显着高于Scannet,PointNet ++,Splat Net和切线卷积。最近,李老师通过建造更多的PointConv层获得了66.6%的精度。这些结果足以证明PointConv可以在Point Cloud深度学习中取代传统的卷积层。
4最新工作4.1 PointPWC-NET
基于上面提到的PointConv的有效性,可以促进许多2D工作,并扩展到点云应用程序,例如计算机视觉中的运动估计。运动估计中最重要的部分是注册。传统方法中的SIFT和其他方法可以轻松实施。但是,随着深度学习的促进,如何有效匹配像素点,而对象不断移动,这已成为深度学习运动估计的问题。
最直接的想法是在两个相邻帧之间进行CNN,以获得W×H×D维度的特征。成本量方法用于像素匹配。成本体积方法的基本原理是:在W×H×D功能中,每个功能计算对应于其他功能D×D邻域2范式,并获得W×H×D×D的匹配信息。尽管获得的匹配信息可能很大,但可以获得更好的注册结果。那么,如何将注册问题应用于指向云呢?
一般的想法是:将点云1和点云2连接到相邻的两个框架点云,以获取点特征1和点特征2。假设第一帧是目标,然后根据点功能中的n个点进行K邻域,并计算n×k维点成本量。连接PointConv层后,您可以通过将其发布到Point Feature1来获取相关的运动信息。
但是,完整的实施仍然需要许多细节,其中最重要的是粗到精细的。 Li教师的团队在2D光学之后有一个很好的方法PWC-NET,该方法在3D点云上进行了粗到细。在原始的PWC-NET方法中,减少了输入图像(例如,16×16),成本量是根据两个16×16计算的。然后,应用了16×16获得的运动结果,首先移动了第一个帧中32×32的图像,并且成本量是通过将其与第二帧中的32×32匹配来计算的,依此类推。将所有图层的结果添加在一起可以获得最终的计算结果。这样,每次成本量的社区都不大。计算新成本量时,可以直接应用最后一个运动结果。
在PointPWC-NET的Li团队的最新工作中,由于PointConv的存在,可以用PointConv替换PWC-NET中的下样本,并用PointDeconv方法替换下样本。在翘曲层中,假设所获得的输入运动估计为(ΔI,ΔJ,ΔK),并且将其添加到原始输入点(I,J,K)中可以获得输出(ΔI+i,Δj+j+j,Δk,ΔK+k)。这样,我们可以在点云中获得运动估计。点云中的成本量可以将像素坐标值转换为点云数据。由于图像中的d×d是密度矩阵,而点云正在寻找最近的邻居,因此获得的成本量的大小直接取决于k值的大小为n×k。
与测试中的许多先前工作相比,由于ICP假设对象是刚性且没有变化的,因此与ICP相比,PointPWC-NET具有显着改善。与其他深度学习网络相比,由于广泛使用最大池操作,因此丢失了许多功能点。 PointConv的优点可以替换CNN层反映,并且在许多开源数据集上的性能很好。
4.2 IGO:整数梯度优化显着性
此外,李老师的团队介绍了另一个非常有趣的工作:如何清楚地知道哪些功能在CNN中起着至关重要的作用?然后,有必要优化掩码,模糊输入图像,然后将图像模糊后重新安置到先前的CNN网络中,以预测预测尽可能低。例如,在预测口琴的图像中,原始图像的分类精度为99.9%。如果将人的嘴和手在口琴接触的地方混合在一起,结果仅为11.9%。相反,如果我们仅显示嘴和手与口琴接触的图像开元棋官方正版下载,则分类精度将达到81.9%。
Li老师的团队还将这项有趣的工作推广到Point Cloud,但是与2D图像不同,可以通过Blur操作来删除2D图像。如果在点云中直接删除特征点,则某些分类器将出现问题。基于上述问题,Li老师的团队提出了一种点云平滑的方法,该方法将一些云层平滑为球,以便扮演2D图像模糊的角色。这样,在平滑操作下,将蒙版的优化促进到点云。例如,在人类点云图像分类中,如果人头平滑,人类点云分类精度将从原始的0.79下降到0.15,您可以理解,人头在点云分类中起着至关重要的作用。
5个讨论
在公开班的结尾,李老师给了我们一些学习深度学习的建议。点云和深度学习的应用范围非常广泛,例如三维重建,运动估算等。如果您想及时学习深度学习,则必须首先学习机器学习的理论知识,例如基本问题,例如什么是过度拟合,并编写简单的SVM代码。
在对机器学习有一定的了解后,开始学习深度学习。深度学习本身并没有非常困难的知识点,因此进行实验的困难在于如何提高准确性,如何初始化数据以获得更好的结果等。了解更多有关其他人在深度学习中使用的各种技术的了解将有很大的帮助,这将有助于提高深度学习代码的准确性。很多时候,最好直接下载开源深度学习网络的代码,而不是自己编写深度学习网络并根据现有工作修改原始工作。
最后写
本文是基于Li教师的课程共享的相关汇编。由于空间有限,因此无法详细整理。要了解开放课程的特定内容,您可以单击以获取原始的开放课程视频。
相关文章[Qi等。 CVPR 2017] C. Qi等。 PointNet:对3D分类和细分的点集深度学习。 CVPR 2017 [Wu,Qi and Fuxin 2019] W. Wu,Z。Qi,L。Fuxin。 PointConv:3D点云上的深卷积网络。 CVPR 2019 [Graham等。 2018] B. Graham和L. van der Maaten。亚曼佛稀疏卷积网络。 CVPR 2018 [Choy等。 2019年] C. Choy,JY。 Gwak,S。Savarese。 4D时空交流:Minkowski卷积神经网络。 ICCV 2019 [Qi等。 Neurips 2017] C.
Qi等。 PointNet ++:公制空间中点集的深层分层特征学习。 Neurips 2017 [Su等。 2018] H. Su等。 Splatnet:用于点云处理的稀疏晶格网络。 CVPR 2018 [Xu等。 2018] Y. Xu等。蜘蛛侠:具有参数化卷积过滤器的点集深度学习。 ECCV 2018 [Li等。 2018] Y. Li等。 PointCNN:X转换点上的卷积。 Neurips 2018 [Jia等。 2016] X. Jia等。动态过滤网络。 Neurips 2016 [Simonovsky 2017] M.
Simonovsky,N。Komodakis。在图形上卷积神经网络中的动态递归过滤器。 CVPR 2017 [Wang等。 2018] S. Wang等。深参数继续卷积神经网络。 CVPR 2018 [d。 Sun等。 2018] D. Sun等。 PWC-NET:使用金字塔,翘曲和成本量的CNN用于光流。 CVPR 2018 [Wu等。 + Fuxin Arxiv:1911.12408] W. Wu等。 PointPWC-NET:一个粗到精细的网络,用于在3D点云上进行监督和自我监督的场景流估计。 Arxiv:1911。
12408 [Ziwen等。 + Fuxin Arxiv:1911.10415] C. Ziwen等。通过曲率平滑可视化点云分类器。 Arxiv:1911.10415 [Z。 Qi,S。Khorram,L。Fuxin,AAAI 2020] Zhongang Qi,Saeed Khorram,Li Fuxin。通过使用集成梯度优化,可视化深网。 AAAI,2020年