【3D计算机视觉】Edge-Conditioned Convolution——基于图的动态边缘卷积神经网络
Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs 阅读笔记
代码:https://github.com/mys007/ecc
一、模型概要
论文主要介绍了一种在图结构上进行卷积操作的一种方法,简称为ECC。ECC的卷积操作和常规的二维图像卷积操作都是一种加权平均操作,不同之处在于ECC可以作用在任何图结构上,并且其权重由节点间的边权所决定。
1.1 概念与符号定义
- 对于一个有向图或者无向图,结点的个数,边缘的个数 ,设 为神经网络的层数索引。
- 设图G的顶点和边上都有标签,记第层的每个顶点的标签(即特征)维度为, 则通过矩阵来表示这个顶点上的标签。同理以表示边上的标签(也称属性)。注意,顶点上的标签(特征)维度会随着层数的改变而改变,而边上的标签维度不随着网络层数而变化。记为输入信号。
- 顶点的邻居被定义为与直接相连的顶点以及本身,即:
1.2 ECC的具体方法
- 对于一个顶点,ECC的作用域为其所有邻居。
- 第层的第个顶点的特征值为是由第层的所有邻居的特征值加权求和得到的。
- 若要解决顶点无序性以及邻居节点数目不确定的问题,显然以常规的方法定义权重是行不通的。ECC的做法:定义函数 ,其输入是一条边上的标签值,输出则是一个权重矩阵。
- 那么ECC则可表示为:
其中是一个可学习的偏置,是函数的可学习权重。文中使用多层感知机mlp来表示函数。在训练阶段,在每一次迭代时都会被更新。测试阶段,不会再变化,而的具体值仍依赖于给定的边上的标签值。因此ECC是一种使用了动态卷积核的方法。
二、 点云上的应用
2.1 点云构图 Graph Construction on point cloud
点云(PointCloud)也可以被视为一种图结构。论文介绍了在原始点云数据结构上进行构图以及对其进行下采样的方法。
- 用点云中每个点作为图G中的每个顶点;
- 每个顶点的初始取值为相应的的特征值(密度、RGB值等);
- 顶点的空间邻域内的所有顶点被认为是的邻居。空间领域可以有多种取法,可以用knn取,也可以在固定半径的范围内取,实验中固定半径的方法更好;
- 将与其所有邻居以有向边相连,每条边的标签以一个六维向量来表示:
其中, 即两点在欧氏空间下的向量偏移。上式中前三个分量为在笛卡尔坐标系下的坐标值,后三个分量为其在球坐标系下的坐标值。
2.2 点云下采样 Graph Coarsening on point cloud
使用体素化方法对点云进行粗粒度化(也即pooling)。具体做法:
-
使用一个分辨率为的3d网格框住整个点云
-
对于网格中的每个体素, 用该体素的中心点来表示该体素内的所有点
-
用上一节的方法对新的点云进行图的构造,得到更粗粒度的图
按论文中的说法,对于每一个输入图G,都事先使用Graph Coarsening方法为其建立一个层的图金字塔,金字塔的层数越高,对应的图具有更粗的粒度。然后在网络的pooling层,则根据金字塔中对应的相邻层的结点映射关系来执行pooling操作。