基于深度学习的三维点云智能分析——北京科技大学自动化系樊彬老师
研究背景
许多应用需要三维数据的理解
机器人、增强现实、自动驾驶、医学图像处理(CT、核磁共振)广泛应用前景和现实的应用基础
三维数据有多种表示方式:
-
多视角图片
-
体素网格
-
mesh数据(工业界)
-
深度图像(RGB-D)
- 3D点云,是由原始传感器输出的3D数据,一般是激光雷达Li-Dar 数据格式简单:一组3D坐标+额外的属性
上述的体素网格、mesh数据都可以通过点云转化得到
三维点云研究的任务,大致分为:形状分类、形状检索、关键点检测、形状匹配、、语义分割、三维目标检测、三维实例分割
多数任务需要高级别语义层次的形状理解
深度学习+卷积神经网络CNN
- 2D图像分析任务中十分有效
- 由局部到全局的上下文语义感知
- 数据驱动、自动学习
- 特征具备可迁移性
对三维点云进行深度学习,需要首先解决置换排列不变性。
解决思路:1. 将点云转化成规则的数据,然后使用CNN,2. 定义符合性能要求的点云卷积直接处理。
问题:复杂度高,信息丢失、遮挡影响
3D点云+CNN
优势:
- 无信息丢失
- 数据简单、复杂度低
- 3D信息表达相对全面,可处理遮挡
核心问题:
- 在不规则点云上定义点卷积操作
- 点云卷积网络结构
需要克服例如尺度、平移、旋转等刚体变换的鲁棒性
鲁棒性:
- 刚体变换
- 噪声、数据缺失
- 密度不均匀
相关工作
PointNet
核心思想:通过多层感知器学习逐点的特征
解决了置换排列不变性
- 共享多层感知器+对称函数(max pooling)
刚体变换鲁棒性
- 小网络(T-Net)学习 3 × 3 3 \times 3 3×3变换矩阵,作用于输入点云
- 小网络(T-Net)学习64*64隐变换矩阵,作用于特征
缺点:
- 未学习局部模式
- 未建模点间的交互关系
- 非CNN学习范式
DGCNN
核心思想:
- 邻居点与中心点特征相互关系引导产生新的卷积特征
- 邻居点动态更新
针对点间关系进行建模
缺点:
- 未进行逐层归纳学习,非CNN学习范式
- 特征空间上的邻居不一定可靠
- 复杂度较高
通过在高维空间中进行最近邻查找,复杂度非常高
PointNet++
采样——>局部分组——>特征提取(共享的PointNet)
模仿了CNN学习范式:局部到全局
缺点:
局部模式学习未考虑点间关系
网络结构分类
- 非归纳式点云分类网络结构(PointNet、DGCNN)
- 特点:点云规模不变
- 归纳式点云分类网络结构(PointNet++)
- 特点:通过点云采样,逐步缩小点云规模!深层特征感受野更大!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OaZja9wz-1624082346063)(resources\网络结构分类图.png)]
非归纳式点云分割网络结构
-
点云规模不变!
连接共享MLP进行逐像素分类!
归纳式点云分割网络结构
- 点云规模逐渐缩小
- U型特征直连+特征插值恢复点云规模!
关键问题:给定一个中心三维点和其邻域点,如何定点云卷积,得到中心点特征。
PointWeb: [CVPR2019]
点云卷积:根据局部区域内所有点之间的关系,调整区域内点特征,调整后点特征再经过shared MLP+ max Pooling得到点云卷积结果。
核心思想:挖掘卷积邻域内所有点的特征差异,调整每个邻域点特征。
Annual CNN [CVPR 2019]
**点云卷积:**将邻域3D点投影至卷积中心点法平面,在二维平面对邻域点进行排序,根据排序顺序进行一维卷积,最后max pooling得到中心点特征。
ShellNet [ICCV2019]
**点云卷积:**将三维点邻域划分为若干个shell,根据shell的固有顺序特性,利用一维卷积提取特征。
- 将三维点球星邻域划分为若干个shell,类似于二维中的ring。
- 使用max pooling对每个shell内的3D点特征聚合(3D点特征由前一层特征及该点MLP之后的结果串接得到)
- 将shell按从内至外排序,对第2步聚合的特征进行一维卷积。
Geo-CNN [CVPR 2019]
点云卷积:
- 对邻域内的点分方向进行卷积并融合进行特征提取。
- 根据距离对所有邻域点特征进行加权求和。
KPConv [ICCV 2019]
**点云卷积:**传统线性相乘,weight定义为若干个kernel point对应的weight的线性组合。
他们自己的工作
Relation-Shape Convolutional Neural Network for Point Cloud Analysis [CVPR 2019 Best Paper Finalist]
关系-形状点云卷积网络
主要的学术贡献:在点云卷积操作上进行创新,我们将传统图像卷积操作泛化至不规则点云数据,在点云卷积中捕获局部点之间的相互关系,提取三维形状特征。
2D图像的关键信息,就是RGB信息的规则组合
3D点云的关键信息,就是空间分布信息(点与点之间的相互关系)。
CNN:以参考点为中心编码3D空间相对几何关系,推理学习隐含的形状。
第一步,点云分组,局部点云建模——>球形邻域(卷积操作的作用域,类似还有最近邻)(1. 中心参考点(点云采样)2. 邻居点(球内采样))
泛化卷积:
主要包括两部分:
相对关系特征加权+特征维度提升
相对几何信息 h i , j h_{i,j} hi,j可以灵活设置,比如:3D欧式距离,坐标差,坐标级联,以及其他几特性等等。
特性:
-
置换排列不变性,且实现了在每一个点上使用不同的权重
-
相对关系具备空间不变性,所以也对刚体变换鲁棒,比如3D欧式距离
-
显式建模点间交互
-
不同局部,权值共享
- 关系卷积在不同空间分布上共享,学习全局空间分布中隐含的形状模式
DensePoint: Learning Densely Contextual Representation for Efficient Point Cloud Processing [ICCV 2019]
密集上下文连接点云卷积网络
**主要学术贡献:**我们把图像领域的DenseNet思想推广至点云卷积网络,并通过一个分组的策略,解决了其复杂性问题,在性能、复杂度、计算速度达到了较好的平衡。
**基本思想:**点云卷积时,稠密融合多级别上下文信息,提取多元化的点云语义特征,提升特征的辨别能力。
DenseNet CVPR’17 Best Paper
核心思想:
- 逐层进行点云卷积得到扩大的感受野;
- 后层卷积输入联合之前所有层的输出(挖掘不同感受野之间的信息)。
密集连接,多次执行PConv操作,计算量大,显存需求大!
解决方法:
- 采用单层感知器进行特征提取,简单,参数少。
- 特征提取分组进行,增加单层感知器“深度”,提高特征提取能力。
通过分组,保证输出通道不变的前提下,增加了网络层数,学习力增强。
总结与展望
点云语义分割方面,尤其是大规模点云语义分割任务中,点云采样策略和点云分组策略是非常重要的,因为目前多数使用的最远距离采样(fps)速度非常慢,无法适用于大规模语义分割任务,目前也有一些方法在关注这一个领域,比如说,random net ,目前点云深度学习领域正处于快速发展时期,但是目前的研究主要集中在点云卷积上,对于整体的网络结构研究还不是很多,图像CNN的经验非常值得借鉴,空洞卷积,残差连接。
总结:https://github.com/Yochengliu/awesome-point-cloud-analysis
截止到2021年的最新点云深度学习工作
https://github.com/NUAAXQ/awesome-point-cloud-analysis-2020