基于ConvMixer架构的高效点云分类方法
2024-03-22王淳赵艳明冯燕
王淳,赵艳明,冯燕
(中国传媒大学信息与通信工程学院,北京 100024)
1 引言
近年来,二维传统视觉任务随着深度学习技术的飞速发展日益成熟。而随着三维扫描技术的发展和三维视觉算法的广泛应用,三维识别任务也在自动驾驶[1]、机器人[2]、增强现实[3]等领域越来越受到关注。点云分类任务作为目标识别、三维重建等任务的前提,是三维识别领域的一大研究热点。点云作为一种常用的三维数据,具有非常强的空间表达能力,能够在保留三维空间位置坐标的同时,附加上可选的其他信息,如颜色、法向量和反射强度信息等。然而,由于点云的稀疏、不规则和无序结构等特性,有效设计局部几何关系提取器和网络架构来完成对点云数据的特征学习仍然是一项具有挑战性的任务。
为了应对这一挑战,以往的点云分析方法可以大致分为两类。第一类是基于投影的方法[4-6],有时也称为基于结构化点云的方法。此类方法将点云变换成规则化的、可以使用卷积神经网络直接处理的形式。按照将点云转换成规则化数据所采用策略的不同,可进一步分为基于多视图和基于体素的方法。尽管结构化表示法在一定程度上解决了不规则和无序的问题,但缺陷依然存在。基于多视图的方法不是真正的三维表示,而体素化严重影响内存和计算成本,且两者都可能丢失重要的几何信息。
第二类是基于原始点云的方法[7-9],其直接对原始点云数据进行处理,最大限度地保留了点云信息的完整性,是现如今基于深度学习的点云处理的主要研究趋势。其中,斯坦福大学Charles等人[7]提出的PointNet开创性地将多层感知器(Multilayer Perceptron,MLP)[10]与全局聚合相结合,对每个点进行编码。其一系列后续研究[11-14]表明,高效的局部特征描述符可以大大提高点云分类的性能。
然而,先前研究的问题在于,虽然提供了高效的局部几何关系提取器,但复杂的网络设计阻碍了其应用效率。针对这一点,关于图像分类的文献[15]引起了本文作者的注意,它提出了ConvMixer 这一极其简单的架构,证明了使用局部块(Patch)作为输入表示可能是实现卓越性能的关键。受此启发,本文通过其架构设计了一个简单但仍然有效的点云处理网络Point-ConvMixer。此外,本文还发现,点对特征(Point Pair Feature,PPF)[16]作为一种快速的局部特征编码方法,可以通过三维局部块的形式有效地探索局部几何信息,并在实验中得到了证实。
本文提出了一种新颖的点对特征卷积网络PPFConvMixer,用于基于三维点云的物体分类和部件分割。PPFConvMixer包含了三维Patch嵌入策略和改进的ConvMixer 架构,并将PPF 描述子纳为局部点云特征编码方法。首先,根据每个局部区域的参考点及其邻近点计算PPF。最终的局部几何图形将由一组增强的几何关系来表示:点、法向量和PPF。与Point-Net++[8]类似,PPFs 将中心点的成对特征聚合到其他点。不过,PPFConvMixer使用反对称四维描述符来表示一对定向三维点的表面,从而更好地描述了局部区域,且不会重复组合附近的Patch 嵌入,这使得可以围绕Patch 本身的有效性进行研究。然后,应用三维Patch嵌入处理来保持局部性,将小区域的点组合成单一的输入特征。在ConvMixer[15]的启发下,最终利用标准卷积构成的各向同性架构(Isotropic Architecture),分别实现了空间维度和通道维度的混合,同时在整个网络中保持了相同的大小和分辨率。本文在两个具有挑战性的基准上进行了广泛实验。该卷积网络设计在实现上非常简单,但能够在形状分类和部件分割任务中产生具有竞争力的准确性。
本文的主要贡献有三个方面:
(1)提出了PointConvMixer 网络,该网络在ModelNet40和ShapeNet数据集上的物体分类和形状分割任务中获得了极高的准确率,证明了其有效性和通用性。
(2)创新地在点云分类任务中使用PPFs 来有效地描述局部几何信息,采用PointConvMixer 的优化网络PPFConvMixer的点云分类准确率高达93.8%。
(3)通过实验证明,和注意力机制及Transformer架构的开发相比,Token 化的输入设计在点云学习中同样值得关注。对于点云分析来说,“Patches are all you need”这一结论仍然有效。
2 相关研究工作
2.1 基于多视图和基于体素的方法
基于多视图的方法和基于体素的方法是基于投影的方法的两个分支。由于点云的不规则性,早期的研究[17-20]将点云投影到多视图图像以对点云数据进行卷积。虽然基于视图的三维表示方法可以实现良好的性能,但它需要花费大量时间并需要更多内存进行渲染,这使得该方法无法应对实时应用。获取规则化点云数据的另一种直接方法是将点转换为空间体素,这可以归纳为基于体素的方法。对于体素模型,内存消耗的限制决定了输入3D 网格的分辨率较低,导致点云结构信息丢失,随后的研究一直在努力克服这一缺陷。例如,OctNet[11]和Kd-Net[12]分别利用八叉树结构和KD 树结构来替换固定大小的体素网格,以减轻分析难度。但由于表示质量在很大程度上依赖于高分辨率网格,使用体素模型仍然效率不高。与上述两种方法不同,本文直接从原始点云中提取特征。
2.2 基于原始点云的深度学习方法
逐点(Point-Wise)网络直接处理原始点集以提取特征。该领域的先驱性网络PointNet[7]利用MLP对每个点进行单独编码,然后通过全局池化整合提取的点特征。然而,这种网络设计忽略了对于点云识别任务至关重要的局部细节。为此,PointNet++[8]通过局部特征聚合与多层次特征提取结构改进了PointNet。然而,由于其局部特征的聚合仅通过最大池化实现,PointNet++网络并未充分利用区域信息。为充分挖掘局部结构信息,DGCNN[13]设计了EdgeConv 模块来生成边缘特征,将与同一指定局部区域内中心点及其邻近点的特征差值相连接,然后按MLP 编码方法和最大池化聚合操作进行处理。为了整合区域信息,PointWeb[14]通过连接和探索区域内的所有点对,来穷举上下文信息。虽然其获得了更具代表性的区域特征,但需要更多的时间成本和计算资源。
最近的一些研究转为聚焦于点卷积核的设计。PointCNN[21]通过-Conv算子对输入点和特征进行置换和加权,将邻近点转换为规范顺序。PAConv[22]通过动态组合存储在权重库中的基本权重矩阵来构造卷积核,并且可以作为即插即用的卷积操作使用。
本文的研究重点之一是通过学习反对称四维描述符(包括点对之间的交角和距离参数)来捕捉点的局部空间布局。相对而言,本文网络占用的时间和计算资源更少,且能很好地保留点之间的关系。
2.3 各向同性架构
与呈金字塔形的主流CNN 模型架构不同,各向同性架构(也称同质架构)由串联的重复块(Block)组成。这种新的架构范式受到视觉Transformer的启发,其特点是各个块的大小和形状相同,并在第一层使用Patch 嵌入。在图像分类任务中,很多研究尝试对一或两个重复块进行各种新颖的操作以获得良好的性能,例如MLP-Mixer[23]、ResMLP[24]、gMLP[25]等。但这也带来了一个问题:它们的良好性能是通过应用新的操作实现的,还是通过使用Patch 嵌入和由此产生的同质结构实现的?
一些学者还尝试采用注意力机制和Transformer架构来进行点云处理。PointASNL[26]提出了一种自注意力机制来更新局部点簇的特征,以应对点云处理中的噪声。Point Transformer[27]为点云设计了自注意力层,并使用它们构建用于点云识别任务的自注意力网络。Point Cloud Transformer(PCT)[28]创建了一个由增强的输入嵌入和简单Transformer 组成的点云处理架构,以进行特征学习。尽管这些方法相当强大,但它们的有效性来源依然并不明确。
本文的研究重点之一为:明确这些基于Transformer 的点云处理方法的有效性是源于Transfromer编码器Block的使用,还是源于Patch嵌入的使用和由此产生的同质结构。为了排除前者对网络性能带来的影响,并证明Patch 嵌入和由此产生的同质结构的组合足够有效,本文使用的网络与PCT 类似,直接对Patch 进行操作,在所有层中保持等分辨率和大小的表示,并将信息的“通道混合”与“空间混合”分开。不同的是,本文只使用标准卷积来制定所提出的架构,并获得了更好的性能。
3 基于ConvMixer的点云分类方法
本节首先分析局部几何提取器的一般用法,并回顾PointNet++[8]、PointWeb[14]和RS-CNN[9]中的相关操作。然后,介绍用于编码局部Patch 的PPF 模块,以及用于点云分类中间特征处理的ConvMixer 层。通过将用于图像的ConvMixer 架构移植到点云处理中,获得底层模型PointConvMixer,该模型可用于形状分类或部件分割等不同任务。最终提出了PPFConvMixer网络并详细阐述其用于点云分类的处理链。
3.1 基础方法阐述
以往的研究重视局部特征聚合,因为利用局部特征描述器的目的通常是为了学习局部信息的隐含模式,以获得更好的点云学习结果。给定三维点云X={xi|i= 1,…,N}∈ℝ3×N,其中N表示输入点的数量。一般来说,第一步是选择参考点作为中心点,按照确定性规则形成局部区域。最远点采样和均匀采样是两种常用的方法。然后,通常选K 近邻(K-Nearest Neighbor,KNN)算法作为分组算法来计算每个中心点的邻近点,因为其计算效率较高。
将一个输入点表示为xi∈ℝ3×N,其邻近点表示为xij,其卷积层中的输入特征表示为fi∈ℝcin×N、其输出特征图为gi∈ℝcout×N,其中cin和cout表示输入和输出的通道维度。局部特征聚合过程可表述为式(1):
其中,A(·)表示聚合函数,M(·)表示局部特征提取的映射函数,fij是代表第i采样点的第j个邻近点特征的关系编码函数。参数k是每个局部Patch 包含的点数。对PointNet++[8]来说,A(·)是最大池化操作,M(·)是共享的MLP网络,fij实际上是第一层中受分组方法影响的xij。此外,它还堆叠了多个学习阶段来学习分层特征,并在每个阶段通过最远点采样对点进行重新采样。通过这种方式,该方法可以逐步扩大感受野。基于这种处理流程,PointWeb[14]提出了一个即插即用的自适应特征调整(AFA)模块,用于学习每个点对其他点的影响,并将点密集连接成局部点网。其关系编码函数替换为式(2):
RS-CNN[9]是另一种强调局部特征提取的网络,其通过关系学习提取出两点之间的关系表达式,然后利用关系表达式更新参考点的特征。与PointWeb不同,RS-CNN 通过式(3)深入挖掘局部几何信息:
与PointWeb 和RS-CNN 类似,大量方法侧重设计精细的局部特征提取器,利用详细的局部几何信息,获得了令人满意的性能。尽管如此,一个问题依然存在:计算复杂度非常高。对于基于PointNet++架构的PointWeb,其分层网络由多个集合抽取层组成,这意味着采样、分组和局部特征聚合的过程需要多次执行。且PointWeb 的关键在于利用所有点对之间的上下文信息,对它们进行混合计算既复杂又耗时。此外,重复组合附近的Patch 嵌入会混淆Patch 嵌入策略的效果和类似归纳偏置的效果。
为了聚焦于Patch 的使用,同时丰富局部点特征并控制计算成本,本文尝试最大化使用输入特征来表示局部邻近区域。因此,选择PPFs 作为局部Patch 的编码方法。
3.2 PPFConvMixer网络架构
(1)点云Patch的划分
受视觉Transformer 中patch 嵌入策略的启发,Point-BERT[29]将点云转换为由局部点云簇组成的集合。为了将ConvMixer 图像处理模型应用于点云数据,本文采用类似的预处理方法。具体地,在给定点云数据的整体集合后,首先使用最远点采样(FPS)方法选择g个局部点云簇的簇中心。接下来,以固定查询半径r为条件,在选定的g个局部中心点周围选择k个最近邻点,构成包含细节局部几何信息和结构的g个局部点云簇。然后,将近邻点的坐标都减去中心点坐标,通过局部区域归一化来排除点云真实坐标带来的影响。这样,就能在三维点云中获得与二维图像Patch对应概念的局部Patch。
(2)点云局部Patch的编码
如前所述,最终的局部几何将由一组增强的几何关系来表示:点的三维坐标、法向量、点对特征PPF。这三者构成的集合共同作为网络的输入。具体地,如图1 所示,给定一个参考点为xr,其表面法向量为nr,局部区域中的k个相邻点为xi,i= 1,…,k。可以将局部几何特征表示为由参考点和KNN 算法决定的一个局部Patch{xr⋃{xi}},局部几何特征具体的计算公式如式(4):
图1 局部点对特征PPF示意图
其中,ψri表示三维点对间关系的非对称四维描述子,其具体计算方式为式(5)所描述:
其中,d代表点间的距离向量,‖ · ‖代表欧式距离,∠代表角度计算子。∠(nr,ni)的计算如式(6)所示,注意∠(nr,ni)的范围在[0,π]:
本文将PPF 描述子ψri作为输入表示主要有两个原因:一方面,相对于PointWeb 等重复融合周围的Patch 嵌入层的网络而言,由于采用的是一次性配对,PPF 对于输入特征的计算更加简单方便;另一方面,它的计算复杂度也更低。
(3)PointConvMixer网络架构
用于图像分类任务的ConvMixer 模型的操作可以简单概括如下:第一,首先设定Patch 大小,对图像分Patch 作为输入表示。将图像Patch 输入Patch 嵌入模块进行空间维度上的降维以及通道维度上的升维,然后经过一个激活函数和归一化层。Patch 嵌入模块其实就是一个核大小和步长都等于设定的Patch 大小的卷积。第二,将经过激活和归一化的Patch 特征输入如图2 所示结构组成的ConvMixer 模块中。Conv-Mixer模块由一个深度卷积模块和一个逐点卷积模块组合而成。深度卷积即组数等于通道数的分组卷积,逐点卷积本质上是1×1 的卷积,每个卷积后面是激活函数和批归一化,深度卷积结构的上方还包含一个残差连接。深度卷积用来混合空间维度信息,逐点卷积则用来混合通道维度上的信息,这使得特征在空间域和特征域不断混合。
图2 ConMixer层的实现
ConvMixer层起到了分离空间和通道维度的混合的作用,使用的ConvMixer 层数可通过参数depth来进行调控。但由于图像是二维数据而点云是三维数据,因此,在将用于图像分类任务的ConvMixer 网络模型迁移到点云分类时,输入的数据需要进行不同的处理,同时需要对原本的网络结构进行进一步的优化以达到更好的效果。具体地说,点云需要选定性能较优的分块处理方法,对应的块嵌入层需要重新的设计来适应不同维度的数据输入,同时网络需要添加优化方法来优化得到的最终分类效果。
(4)PPFConMixer点云分类流程
在PointConvMixer 的基础上,本文通过将局部点云Patch 编码成PPF,得到了一个简单但非常高效的点云处理网络PPFConvMixer。该网络由输入数据编码、三维Patch 嵌入层和多层改进的ConvMixer 层,以及最后用于分类的MLP 层组合而成。除去分类MLP层,PPFConvMixer可表述为式(7):
其中,Φ(·)表示由重复的全卷积模块组成的各向同性的网络,即多次重复堆叠的改进的ConvMixer层,每层实现流程如图3 所示。重复次数是一个超参数d,即前文所述的深度参数depth。A(·)和M(·)的组合是Patch 嵌入层的具体实现,M(·)通过共享MLP 来提取局部特征,A(·)代表聚合操作,将每个局部区域的点聚集成单个的输入特征,实际操作当中采用最大值池化来实现。fr表示采用PPF局部编码方式构建的局部Patch,N表示局部Patch的个数,其大小取决于最开始的采样点数。最终的PPFConMixer 点云分类模型整体处理流程如图3所示。
图3 PPFConvMixer点云分类架构流程图
4 实验结果及分析
本节将在多个基准上对本文提出的模型进行全面评估,并展示其在物体分类和形状部分分割任务中的实验结果。
4.1 形状分类
(1)数据集
首先在ModelNet40[30]数据集上对所提出的网络模型PPFConvMixer进行了评估。ModelNet40是最常用的点云形状分类数据集,包括12311个CAD模型,这些点云模型被分为40个类别。实验中使用和Point2Sequence[31]一样的策略,将ModelNet40数据集分成9843个训练样本和2468个测试样本。在训练时,均匀采样1024个点作为输入。
(2)实现细节
数据预处理时,选择半径为0.25m的局部邻域,并在该邻域内均匀采样64个点。定义的邻域中可能出现点数不足64的Patch,对此随机重复一些点以确保Patch大小一致。使用AdamW优化器对模型进行75个epoch的训练,bɑtchsize大小为16。采用预热(Warmup)与余弦退火(Cosine Annealing)相结合的策略控制学习率变化,warmup的epoch设置为10。最大学习率为0.0005,最小学习率为1e-6。权重衰减系数为0.001,ConvMixer深度depth设为4,特征维度为368。
据SimpleⅤiew[32]所述,在不使用任何集成方法的情况下比较模型性能更为准确,因此所有的实验中均不使用voting策略来优化预测。此外,为了增强鲁棒性,采用了两种数据增强策略:在xyz三个方向在[2/3,3/2]的范围内进行同比例的随机缩放;在[-0.2,0.2]范围内随机平移。
(3)实验结果
表1给出了PPFConvMixer网络在ModelNet40数据集上的点云分类任务准确率,并与其他点云分类网络进行了比较。第一条虚线上方的是经典的深度学习点云分类方法,包括PointNet[7]、PointNet++[8]以及RS-CNN[9]等,第三条虚线下即为本文所提出的网络。第一条虚线上方倒数四个网络都是输入数据中不仅包含位置数据,还包含法向量的经典方法,有O-CNN[33]、Spec-GCN[34]以及SO-Net[35]等,PPFConvMixer网络分类准确率都超过了这些模型。第一条与第二条虚线之间是一些基于Transformer的方法,但是其网络架构做了更多特殊设计和归纳偏置。PPFConvMixer即使没有类似的特殊网络设计,分类精度仍然优于PCT[28]和Point Transformer[27]。第二条虚线与第三条虚线间的方法是一些基于标准Transformer 模型设计的点云分类网络。可以发现PPFConvMixer比所有标准Transformer模型构建的点云分类网络效果都要更好。
表1 在ModelNet40公共数据集上的形状分类结果(nor:法向量,“-”:未知)
“#params(M)”列中记录了网络参数的数量,可以看到PPFConvMixer 的参数量为2.62M,并不是很大。总之,PPFConvMixer 的总体性能优于表中的Point-BERT[29]等其他点云分类模型。这些实验结果表明,高效的输入表示对于实现Transformer 的卓越性能至关重要,这一结论在点云领域依旧成立。
4.2 部件分割
(1)数据集
部件分割是细粒度形状识别的一项挑战性任务。ShapeNet 数据集是一个具有丰富标注的大规模点云数据集,广泛应用于计算机视觉和机器人研究。其中,其中,ShapeNet Parts 数据集常用来做三维点云的部件分割任务。ShapeNet Parts 数据集总共包括16 个大的类别,包含16881个点云模型,如飞机、座椅、桌子等。每个大的类别又可以分成若干个小类别,总共可分为50个小类别,如一个桌子的点云模型可以分割成桌面、桌腿等小类别部件。每个点云形状模型可划分为2-5 个部件。ShapeNet Parts 数据集中划分了13998个训练数据,2874个测试数据。
(2)实现细节
使用AdamW 优化器进行300 个epoches 的训练,bɑtchsize大小为64。与形状分类实验设置类似,使用warmup+Cosine Annealing 的学习率控制策略,warmup 的epoch为10,最大学习率为0.0005,最小学习率为1e-6。权重衰减系数、ConvMixer深度depth和特征维度分别为0.5、4、368。
(3)实验结果
本小节构建PointConvMixer 点云分割网络在ShapeNet Parts 数据集上进行了部件分割实验,以类别平均交并比(mIOUC)和实例平均交并比(mIOUI)作为评价指标,并与经典的点云分割网络的性能进行了对比,评估结果如表2 所示。由表中的实验结果可以看出,PointConvMixer 的mIOUC优于经典的Point-Net[7]、PointNet++[8]及DGCNN[13],分别高出3.51%、2.05% 和1.57%,比标准Transformer、Transformer-OcCo[29]模型高出0.48%。另外,PointConvMixer 的mIOUI指标为85.4%,优于经典的Kd-Net[12]、Point-Net[7]、PointNet++[8]和DGCNN[13],分别高出3.1%、1.7%、0.3%和0.2%。且PointConvMixer 分割模型的mIOUI也优于标准NPCT[28]、Transformer 以及添加了OcCo 预训练方法的Transformer-OcCo[29]网络,分别高出0.2%、0.3%和0.3%,稍低于Point-BERT[29]的85.6%。
表2 ShapeNet Parts数据集上的部件分割结果(“-”:未知)
值得注意的是,PointConvMixer 使用简单的卷积架构ConvMixer取代了Transformer中的关键模块,但在形状分类和部件分割方面的性能都优于原有Transformer。这表明Transformer 的卓越性能不仅归功于其架构,而且至少部分归功于对点云数据进行基于Patch的预处理,以降低计算复杂度。
4.3 消融实验
为了验证网络各参数设置的合理性,并验证分析模块的有效性,本文设计了以下不同配置的实验:
(1)尝试了随机缩放+随机平移的数据增强方法,说明了数据增强对性能提升的作用。
(2)对比了将特征表示输入卷积网络前,分别采用最大池化和平均池化的分类效果,验证了最大池化降维的必要性。
(3)讨论了PPF 局部特征描述子的使用对结果造成的影响。
(4)比较了在使用K 近邻算法聚合k个近邻点并计算点云的PPF 特征表示时,不同的k值所造成的性能差异。
(5)比较了不同层数(即不同深度)的ConvMixer层对网络性能的影响。
前三项设置的消融实验结果如表3 所示,设定基线为模型A,其分类准确率较低,仅为91.5%。表中DA、Max、Average 分别表示数据增强、最大池化和平均池化策略。实验结果表明,使用最大池化方法进行降维时,点云分类的准确率(Acc.)较高,在[2/3,3/2]范围内随机缩放和在[-0.2,0.2]范围内平移的数据增强方法能有效优化性能。此外,PPF 描述子的引入还带来了1.9%的精度提升。这说明PPF 是一种非常有效的三维局部特征描述子。通过计算局部点对特征,PPF特征表示包含了丰富的三维点几何信息。
表3 PPFConvMixer在ModelNet40基准上的消融研究结果
对K 近邻算法中的局部大小k选取不同值时,在ModelNet40 数据集上所得总体分类准确率如表4 所示。可以看出,当K 近邻算法中的k=64 时,点云分类精度最高。推测如果k太小,那么在局部邻域中选取的点就会太少,无法获得丰富的邻域信息。如果k过大,但在查询半径0.25m 的区域内没有那么多点,那么算法就会随机重复选取区域内的点,以保证邻域内的点数满足要求。最后导致邻域中重复出现无效信息,也降低了性能。
表4 ModelNet40基准上不同k值的总体分类准确率
使用不同深度ConvMixer 层对ModelNet40 数据集进行点云分类的准确率结果如表5所示。该表显示了ConvMixer 堆叠层数depth对PPFConvMixer 网络性能的影响,当depth设置为4时,可以获得最佳效果。这是由于点云本身携带的信息有限,网络并非设置得越深越好,层数越深会带来梯度不稳定和网络退化问题,反而会导致网络性能下降。
表5 使用不同深度ConvMixer层的ModelNet40分类准确率
5 结论
受文献[15]对Transformer 有效性来源的探索,本文以Point-BERT[29]为研究基线,采用一致的操作来分割点云Patch,用更简单、轻便的ConvMixer 架构取代了Transformer 部分,提出了点云处理架构PointConv-Mixer。PointConvMixer 在形状分类和部分分割实验中的表现都优于基于Transformer 的模型,这表明Transformer 的性能至少部分归功于将点云数据预处理成三维Patch的方式。
此外,本文进一步引入了PPFs 作为编码点云局部特征的有效方法,提出了PointConvMixer 的改进版本PPFConvMixer 模型,在ModelNet40 数据集上实现了更高的点云分类精度。这表明高效的标记化输入表示也是点云识别任务的一个关注方向。然而,基于PPFs 的表示法不适用于使用多级采样获取密集特征图的点云分割任务。研究点云分类和分割任务的通用优化方法也是未来可探索的方向。