PointNet:基于深度学习的3D点云分类和分割模型
发布日期:2022-02-28 07:22:42 浏览次数:43 分类:技术文章

本文共 2000 字,大约阅读时间需要 6 分钟。

简介

深度学习已经成为了计算机视觉领域的一大强有力的工具,尤其在图像领域,基于卷积神经网络的深度学习方法已经攻占了绝大多数问题的高点。然而针对无序点云数据的深度学习方法研究则进展相对缓慢。这主要是因为点云具有三个特征:无序性、稀疏性、信息量有限。
以往学者用深度学习方法在处理点云时,往往将其转换为特定视角下的深度图像或者体素(Voxel)等更为规整的格式以便于定义权重共享的卷积操作等。
PointNet则允许我们直接输入点云进行处理。
在这里插入图片描述

输入输出

输入为三通道点云数据,也可以有额外的通道比如颜色、法向量等,输出整体的类别/每个点所处的部分/每个点的类别。对于目标分类任务,输出为个分数,分别对应个可能的类别。对于语义分割任务,输出个分数,分别对应个点相对于各类别的分数。
PointNet应用场景
点云特征
PointNet网络结构的灵感来自于欧式空间里的点云的特点。对于一个欧式空间里的点云,有三个主要特征:
无序性:虽然输入的点云是有顺序的,但是显然这个顺序不应当影响结果。
点之间的交互:每个点不是独立的,而是与其周围的一些点共同蕴含了一些信息,因而模型应当能够抓住局部的结构和局部之间的交互。
变换不变性:比如点云整体的旋转和平移不应该影响它的分类或者分割

网络结构

在这里插入图片描述

如图所示,分类网络对于输入的点云进行输入变换(input transform)和特征变换(feature transform),随后通过最大池化将特征整合在一起。分割网络则是分类网络的延伸,其将整体和局部特征连接在一起出入每个点的分数。图片中"mpl"代表"multi-layer perceptron"(多层感知机)。

其中,mlp是通过共享权重的卷积实现的,第一层卷积核大小是1x3(因为每个点的维度是xyz),之后的每一层卷积核大小都是1x1。即特征提取层只是把每个点连接起来而已。经过两个空间变换网络和两个mlp之后,对每一个点提取1024维特征,经过maxpool变成1x1024的全局特征。再经过一个mlp(代码中运用全连接)得到k个score。分类网络最后接的loss是softmax。
网络特点
针对无序输入的对称函数
为了让模型具有输入排列不变性(结果不受输入排列顺序的影响),一种思路是利用所有可能的排列顺序训练一个RNN。作者在这里采用的思路是使用一个对称函数,将个向量变为一个新的、与输入顺序无关的向量。(例如,和是能处理两个输入的对称函数)。
将点云排序是一个可能的对称函数,不过作者在这里采用一个微型网络(T-Net)学习一个获得变换矩阵的函数,并对初始点云应用这个变换矩阵,这一部分被称为输入变换。随后通过一个mlp多层感知机后,再应用一次变换矩阵(特征变换)和多层感知机,最后进行一次最大池化。
作者认为以上这个阶段学习到的变换函数是如下图所表示的函数和,保证了模型对特定空间转换的不变性(注意到深度学习实际上是对复杂函数的拟合)。
个人的理解是其中作为一个对称函数,是由最大池化实现的(注意到映射是n-对称的);而是mlp结构,代表了一个复杂函数(在图中是将一个3维向量映射成1024维向量的函数)。
(这里变换矩阵的学习过程个人认为有一些玄学,我自己并不能很好地理解其如何获得旋转不变性。不过深度学习领域有很多无法解释的东西。感兴趣可以参考一下文末的源码)
学习到的对称函数
在这里插入图片描述

整合局部和全局信息

对于点云分割任务,我们需要将局部很全局信息结合起来。
这里,作者将经过特征变换后的信息称作局部信息,它们是与每一个点紧密相关的;我们将局部信息和全局信息简单地连接起来,就得到用于分割的全部信息。

理论分析

除了模型的介绍,作者还引入了两个相关的定理:
定理1
在这里插入图片描述

定理1证明了PointNet的网络结构能够拟合任意的连续集合函数。

在这里插入图片描述

定理2

定理2(a)说明对于任何输入数据集,都存在一个关键集和一个最大集,使得对和之间的任何集合,其网络输出都和一样。这也就是说,模型对输入数据在有噪声和有数据损坏的情况都是鲁棒的。定理2(b)说明了关键集的数据多少由maxpooling操作输出数据的维度K给出上界(框架图中为1024)。个角度来讲,PointNet能够总结出表示某类物体形状的关键点,基于这些关键点PointNet能够判别物体的类别。这样的能力决定了PointNet对噪声和数据缺失的鲁棒性。

下图给出了一些关键集和最大集的样例:
在这里插入图片描述

原始数据、关键集和最大集

参考:
Momenta高级研究员陈亮论文解读
美团无人配送的知乎专栏:PointNet系列论文解读
hitrjj的CSDN博客:三维点云网络——PointNet论文解读
github源码
痛并快乐着呦西的CSDN博客:三维深度学习之pointnet系列详解
啊呀哟嘿简书:PointNet:基于深度学习的3D点云分类和分割模型 详解

转载地址:https://blog.csdn.net/weixin_45854106/article/details/107949913 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:算法基础课:区间DP
下一篇:Point cleannet代码解析

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月24日 20时14分12秒