论文题目: Dynamic Graph CNN for Learning on Point Clouds (用于点云学习的动态图卷积神经网络)
论文作者: YUE WANG, 麻省理工学院; YONGBIN SUN, 麻省理工学院; ZIWEI LIU, 加州大学伯克利分校/ICSI; SANJAY E. SARMA, 麻省理工学院; MICHAEL M. BRONSTEIN, 伦敦帝国理工学院/USI Lugano; JUSTIN M. SOLOMON, 麻省理工学院
论文出处: ACM Transactions on Graphics 2019
代码仓库: https://github.com/WangYueFt/dgcnn
论文摘要: 点云提供了一种灵活的几何表示, 也包括大多数三维数据采集设备的原始输出. 点云天生缺乏拓扑信息, 因此设计一个模型去恢复拓扑就能丰富点云的表示能力. 为此, 本文提出一个新的神经网络模块EdgeConv, 适用于基于CNN的点云上的高级任务, 包括分类和分割. EdgeConv作用于在网络每层动态计算的图上. EdgeConv是可微分的, 可被插入到现有架构中. 相较于运行在外部空间或独立处理每个点的现有模块, EdgeConv: 1、结合了局部邻域信息; 2、可以堆叠应用于学习全局形状属性; 3、在多层系统中, 特征空间的邻近度在原始嵌入中跨越可能很长的距离捕捉语义特征. 在ModelNet40, ShapeNetPart, S3DIS上展示模型结果.

目录
介绍
相关工作
人工制作的特征
几何深度学习
几何生成模型
本文方法
边缘卷积
动态图更新
性质
排列不变性(置换不变性): 输入顺序的改变不会影响输出
“部分”平移不变性
与现有方法的比较
评估
分类任务
数据
结构
训练
结果
ModelNet40上的更多实验
部件分割
数据
结构
训练(同分类任务设置)
结果
点云内距离
在部分数据上的分割
室内场景分割
数据
结果
讨论
介绍
现有方法通常直接处理点云, 出于效率的考虑或这些技术在有噪声时的不稳定性而绕过昂贵的网格重建或去噪. 像室内导航、自动驾驶、机器人技术、形状合成和建模等, 这些现代应用需要对点云进行高级处理. 最近的算法不是去识别显著的几何特征(如角和边缘), 而是搜索语义线索和可供性. 这些特征通常需要基于学习的方法获得.
深度学习用于点云数据的问题: 标准的深度神经网络模型要求输入数据有规则结构, 而点云并不规则(点的位置在空间中连续分布, 它们的任何排列顺序都不会改变空间分布). 常见方法: 先将原始点云数据转换为三维网格, 但会引入量化伪影、过多内存占用, 难以捕捉高分辨率细粒度特征.
最先进的网络专门设计来处理点云的不规则性, 直接操作原始点云数据(不再传递给中间的规则表示): PointNet通过对每个点独立操作随后应用对称函数来累积特征来实现点的排列不变性; PointNet的各种扩展不再独立作用于每个点而是考虑点的邻域, 使得网络利用局部特征, 提升基本模型的性能. 这些技术主要在局部范围内独立处理点来保持排列不变性, 但这种不变性忽略了点之间的几何关系, 限制捕捉局部特征.
本文提出EdgeConv在保持排列不变性的同时捕捉局部几何结构. EdgeConv生成描述一个点和其相邻点之间关系的边缘特征, 保持相邻点的顺序不变(排列不变性). EdgeConv显式构造了一个局部图并学习边缘的嵌入, 该模型能在欧氏空间和语义空间对点分组.
本文实验: 将EdgeConv集成到基础版本的PointNet, 未使用任何特征转换.
主要贡献
1、提出点云学习的新操作EdgeConv来在保持排列不变性的同时更好捕捉点云局部几何特征
2、该模型能通过从层到层动态更新关系图来学习对点进行语义分组
3、EdgeConv能被整合到多个现有点云处理流程中
4、EdgeConv能在基准数据集上达到最先进性能
相关工作
人工制作的特征
几何深度学习
几何生成模型
本文方法
遵循图神经网络的思想, 通过构建局部邻域图并在连接相邻点对的边上应用类似卷积的操作来开发局部几何结构, 该操作称为边缘卷积EdgeConv, 具有介于平移不变性和非局部性之间的属性. 这个图在网络每一层之后动态更新(一个点的k个最近邻集合在层之间变化, 是从嵌入序列计算出的). 特征空间的邻近性不同于输入空间的邻近性, 导致信息在整个点云中的非局部扩散.
边缘卷积

右: EdgeConv的输出是通过聚合与每个连接顶点发出的所有边相关联的边缘特征计算得到的.
动态图更新
利用每层得到的特征空间中的最近邻来重新计算图, 感受野和点云的直径一样大, 而且是稀疏的. 本文架构学习如何去构建用在每一层的图, 在计算特征空间中一个成对的距离矩阵, 然后对每个单独的点取k个最近邻的点.
性质
排列不变性(置换不变性): 输入顺序的改变不会影响输出
“部分”平移不变性
与现有方法的比较

评估
分类任务
数据
ModelNet40(40个类别的12311个网格CAD模型, 9843个模型用来训练, 2468个模型用来测试), 对于每个模型, 从网格表面均匀采样1024个点, 点云被重新缩放以适应单位球. 只需要采样点的(x,y,z)坐标, 丢弃原始网格. 训练阶段通过随机缩放物体和扰动物体和点的位置来扩充数据.
结构

下方分支: 用于分割任务的模型结构
点云变换块: 通过应用一个估计的3*3矩阵来将输入点集对齐到规范空间, 为了估计这个3*3矩阵, 使用一个连接了每个点坐标和其与其k个近邻点坐标差的张量
EdgeConv块: 对输入应用多层感知器为每个点计算边缘特征, 在相邻边缘特征之间池化后输出
4个EdgeConv层来提取几何特征, 这4个使用3个共享全连接层(64,64,128,256). 根据每个EdgeConv层的特征重新计算图并将新的图用于下一层. 所有EdgeConv层的最近邻个数k=20. Shortcut来提取多尺度特征和一个共享全连接层(1024)来聚合多尺度特征, 将之前层的特征连接起来得到一个64+64+128+256=512维的点云. 使用一个全局最大/求和池化来得到点云全局特征, 使用两个全连接层(512,256)(0.5概率的dropout)来变换全局特征. 所有层包含LeakyReLU和批归一化. 将训练数据分80%去训练、20%来验证, 用验证集来选择k. 选好k后在整个训练数据上重新训练模型, 在测试集上评估模型. 其它超参数的选择方法与之相似.
训练
学习率0.1的SGD, 使用余弦退火将学习率降至0.001. 批归一化的动量为0.9, 不使用批归一化衰减. 批尺寸为32, 动量为0.9
结果

使用固定k-NN图的本文Baseline比PointNet++提高了1%
模型复杂度(ModelNet40分类任务)
ModelNet40上的更多实验



即使丢掉一半的点, 模型结果依然不错, 但低于512个点性能会急剧下降
部件分割
数据
ShapeNet部件数据集(16个物体类别的16881个形状, 共有标注50种部件), 每个点被分类成几个预先定义部件类别标签之一. 从每个训练形状采样2048个点, 大多采样点集被少于6个部件标注.
结构
(前文结构图的下方分支)经空间变换网络后, 有3个EdgeConv层. 一个共享全连接层(1024)聚合之前层的信息. Shortcut来包含所有EdgeConv输出作为局部特征描述符. 3个共享全连接层(256,256,128)来转换逐点特征. 批归一化、dropout、ReLU和分类任务相似.
训练(同分类任务设置)
结果
形状IoU: 该形状内不同部件IoU的平均
类别IoU: 该类别中所有形状IoU的平均
平均IoU(mIoU): 所有测试形状的IoU的平均


点云内距离

尽管点来源不同, 但语义相近的部分距离相近
在部分数据上的分割
模型对部分数据有鲁棒性, 模拟形状从六边(顶部、底部、右侧、左侧、前部、后部)之一以不同百分比丢弃部分的情况.

室内场景分割
数据
S3DIS(6个室内区域共272个房间的三维扫描点云, 每个点属于13个语义类别中的一种), 每个房间分成1m*1m的块, 每个点表示成一个9维向量(XYZ, RGB, 归一化空间坐标). 训练时为每个块采样4096个点, 所有点被用来测试. 对6个区域使用相同的6折交叉验证, 报告平均评估结果.
结果

讨论
1、局部几何特征对三维识别任务很重要
2、本文架构可整合到现有基于点云的任务的流程, 还可改进的地方:
(1)合并快速数据结构, 而非计算成对距离来评估k最近邻查询
(2)考虑更大点云组之间的高阶关系, 而非成对考虑
(3)设计一个非共享的转换网络, 对每个局部块进行不同作用, 增加模型灵活性