基于MANet的三维点云特征提取方法研究

2022-10-18 01:03王宝乐霍占强
计算机工程与应用 2022年19期
关键词:类别分组注意力

王宝乐,霍占强

河南理工大学 计算机科学与技术学院,河南 焦作 454000

近年来随着深度学习在计算机视觉领域的快速发展,三维点云处理技术也取得了较大进展。相比于二维(2D)图像数据,三维(3D)点云数据有着更多优势。但点云数据的无序性、不规则性和稀疏性,为三维点云数据的处理带来较大的挑战。使用深度学习方法高质量地提取原始三维点云数据的局部或者全局特征,为后续点云数据应用(如物体分类、语义分割等)提供准确、可靠的输入,是一项具有挑战性且有重应用价值的任务。

三维点云特征描述[1-5]就是获得点云数据本身所具有的几何特征信息。点云临界点的几何特征描述了点云的轮廓形状,能够表示某类点云形状的关键点,基于这些关键点能够识别出点云的类别。点云特征描述有助于提高三维数据的处理效率,降低计算成本。三维视觉应用的快速高效离不开有效的特征描述。

传统三维点云特征提取部分主要采取手工设计特征[6-8]方法来实现,受实际应用场景中点云数据稀疏性等因素的影响,三维点云识别算法的整体性能不能满足应用需求。随着深度学习方法的兴起和广泛应用,数据驱动模式下的神经网络显示了强大的学习能力,从最初的图像识别任务快速拓展到更多的领域,在图像分类、图像检测、图像识别等领域都展示了其强大的表征能力。基于深度学习的点云特征提取方法可主要分为三类,即多视角方法、体素化方法、直接处理点云的方法。

(1)基于多视角的方法:文献[9]将三维点云数据投影到多个视角的二维图像空间,进而在投影图像上采用二维卷积神经网络[10-11]模型进行特征学习,其优势在于:存在海量图像数据供深度学习模型进行预训练。虽然这类方法[12-16]通过投影变换能一定程度地保留点云的形状信息,但变换过程本身改变了点云的局部和全局结构,使得特征鉴别力下降。此外,将点云进行投影损失了大量的3D结构信息。

(2)基于体素化的方法:文献[16]将三维点云转化为三维体素网格形式,再利用三维卷积神经网络(3D CNN)来处理这种体素数据,该方法可以保留点云数据的局部和全局结构,学习到大量的三维结构信息。但该类方法[17-18]的不足为:①为避免网络训练过于复杂,三维体素的分辨率不能太高,从而限制了所学特征的鉴别力;②三维形状表面所占的体素比例不高,使得体素化结果较稀疏,又因为3D 卷积的计算代价和搜索空间比较大,使得内存消耗严重。

(3)直接处理点云的方法:文献[19]提出一种直接处理点云数据的方法PointNet,该方法解决输入点云无序性、不规则性问题的思路为:采用一个对称函数融合每个点的信息,该对称函数以多层感知器网络和最大池化(max pooling)来近似,输出对点序不敏感的特征表示。在此基础上,为解决PointNet因无法很好地捕捉由度量空间限制了网络对精细场景的识别以及对复杂场景的泛化能力的局部结构问题,该团队又提出了改进版本PointNet++[20]。这两种方法成功应用于三维点云物体分类和目标识别等任务。

PointNet++没有使分组中的内部特征映射大小保持不变,且未考虑不同特征通道的差异性,为所有通道分配相同的权重,在一定程度上影响了算法的精度。针对以上问题,本文提出一种多分组表征和注意力机制相结合的三维点云分类方法。

本文的主要贡献为:

(1)将特征描述方法中特征分组的思想引入到点云特征提取中,提出并设计了多分组表征模块,保证点云内部特征提取维数不变,为点云局部信息和全局信息融合,提供可行有效的方法。

(2)针对现有点云特征提取方法均忽略了不同通道的重要性,本文引入通道注意力机制强调对分类重要的通道,抑制对分类不重要的通道,达到更好的特征学习目的。

1 相关工作

1.1 基于深度学习的点云处理模型

PointNet[19]的输入为点云数据的集合,在每个点上单独使用一个共享的多层感知机(MLP),该MLP 作为一组可学习的空间编码计算输入点云的全局特征;然后,连接一个全局最大池化操作,在特征的各个维度上执行max pooling操作来得到最终的全局特征。该方法不受输入点云排序的影响,可以直接处理点云数据,避免了信息的损失和额外的计算负担。但该方法也存在局限性,即没有考虑原始点云数据中的局部空间关系。

针对PointNet 的不足,Qi 等人[20]又提出了PointNet的进阶版本,即PointNet++。PointNet++在局部区域多次迭代使用PointNet 生成新的点,实现多级的特征学习。针对输入点集采样密度不均的问题,PointNet++设计了点集抽象模块,即采用层次结构来多次应用PointNet聚合局部邻域信息,利用局部点集来近似局部结构,动态查询每个位置的最近点。这些层次结构在训练和推理过程中都引入了较大的计算量。通过PointNet++网络模型学习到的点云特征描述子具有较好的全局特征和局部特征,但点云特征描述子的可鉴别性和鲁棒性有待进一步提高。

文献[21]采用逐点金字塔池化(pointwise pyramid pooling,3P)模块捕获不同密度的局部结构,使用循环神经网络提取空间信息,提出了3P-RNN,取得了良好的3D语义分割的效果。此外,文献[22]提出了更为简单高效的点云特征提取模型PointCNN。PointCNN 提出一种带X 变换的卷积(X-Conv),即X-transformation 空间变换矩阵,利用它来实现与点相关联的输入特征的加权,并且将点排列成潜在的规范顺序,然后对变换后的特征进行典型卷积,进一步提高了三维点云物体识别的准确率。

上述研究中,一方面,网络模型表征能力有待进一步提高;另一方面,相关网络模型的最终输出通道数量均为1 024个,所有通道被同等重要地处理,即每个通道作为后续分类网络的输入信号具有相同的权重,这种处理方式未考虑不同通道对后续应用的重要性,限制了三维点云特征分类网络的表征能力。

1.2 注意力机制

目前主要有两种类型的注意力模块:空间注意力模块[23]和通道注意力模块[24]。空间注意力模块(spatial attention map)[25]是沿着空间方向对特征图(feature map)进行注意,生成一个空间注意力映射(spatial attention map),该注意力模块提高了ImageNet-1k 数据集[26]和MS COCO数据集[27]的网络精度。通道注意力模块的代表之一是压缩扩展网络(squeeze-and-excitation net,SENet)[28],如图1 所示。SENet 对每个通道独立使用全局平均池化,然后使用两个的全连接层和一个Sigmoid函数来生成每个通道的权值。这两个全连接层的设计是为了捕捉非线性的跨通道交互作用,同时降低维度以避免过大的模型复杂性。

图1 压缩扩展块的结构图Fig.1 Architecture of compressed expansion block map

空间注意力模块注重于每个位置的学习,使得模型关注到感兴趣的区域上;而通道注意力模块是分配每个通道上的权重,关注的是网络模型通道上的依赖关系,在通道层面上完成对初始点云特征的学习。

2 所提方法

2.1 MANet网络

在三维点云处理中,PointNet 网络提取特征的方式是对所有点云数据提取一个全局特征,忽略了点云局部特征的描述,增加了网络的学习难度,降低了网络的分类性能。受CNN的启发,PointNet++在不同尺度提取局部特征,通过多层网络结构得到深层特征。该网络通过学习局部特征的上下文依赖,提高了网络的特征表达能力。尽管学习局部特征的上下文信息也有助于特征表示,但两种方法均忽略了特征通道的差异性,可能导致具有相同标签的点云对应特征之间存在潜在差异。

针对上述问题,本文提出一种新的网络结构MANet(multi-group representation and attention mechanism network)。首先,使用最远点采样方法选择一定数量的点,然后对得到的点,通过球查询(ball query)方式,找到各自相邻的点形成不同的分组,设计多分组表征模块联合每个分组中的点特征,将学到的感知信息应用到具有不同分组的分组层。然后设计MLP提取每个分组的特征。接着,对最后一层每个分组的特征进行最大池化操作,得到初始点云特征。随后,将该初始特征输入通道注意力模块(attention block,AB),生成新的特征表示。最后,将AB 块强调的特征用于MLP,得到最终的点云分类结果。如图2给出了所提MANet的网络结构。

图2 MANet网络结构图Fig.2 MANet network architecture map

本文在PointNet++网络基础上引入多分组表征模块和通道注意力模块,在提取点云特征的同时强调了对分类重要的通道,提升了网络的分类能力。一方面,通过前者融合输入点云的局部特征和全局特征,提升网络的特征表达能力;另一方面,使用AB模块建立特征通道与注意力机制之间的关联,考虑了局部感知信息和上下文信息,强调与模型分类更相关的特征,学习更关键的类别信息,提高点云识别的性能。

2.2 多分组表征模块

本文所采用的多分组表征模块对卷积层进行分组卷积。首先,将输入的点云数据进行采样分组。然后,使用MLP提取每个分组的特征,获得下一个分组;重复特征提取和分组的过程,获得多个分组;最后,使用最大池化获得初始特征表示,如图3所示。

图3 多分组表征模块Fig.3 Multi-group representation module

多分组表征模块内部使用分组串联的方式,以便更好的融合分组中的特征图信息,有利于学习点云的局部特征;最后的最大池化操作有利于感知全局信息,提高网络的特征描述能力,使网络拥有充分的能力去处理点云数据。另外,通过分组处理点云目标有助于构建深度网络进行训练,获取不同分组之间的特征映射,更高效地处理所学习到的特征图。该模块可以改变每个点的特征维数,但不影响点云数据的结构,如空间几何信息。

本文多分组表征模块与提出的点集抽象模块的不同之处在于本文所用模块的分组层中每个分组不使用最大池化操作,其目的是为了确保多分组表征模块每个分组内的特征映射大小相同。

2.3 注意力模块

众所周知,在现有的直接处理点云的方法中,往往在特征提取过程中忽略通道的差异性,针对这一问题,本文设计了一个新的注意力模块,即AB模块,如图2所示,该模块通过1×1 卷积操作和Sigmoid 函数计算得到通道加权向量,进而提取重要的通道信息,同时,使用卷积层代替全连接层可以使得网络使用更少的参数量来提取特征。通过AB模块所学习到的权重,可以使得不同的点云物体对某些重要通道保持可鉴别、有区别的权重,即不同的点云物体之间有不同的结构信息,

该重要通道信息是能够使得网络能识别出不同的点云物体。由于不同点云之间也会存在相同的局部特征,因此,对有些通道保持相似的权重;但若只考虑单个点云物体的自身结构,其对不同的通道具有不同的权重。

由于点云物体之间的特征具有很高的相关性,如沙发和钢琴等物体,对于特征高度相关的物体来说,网络中所有的通道都以相同方式处理,会影响到分类的准确率。通过强调对分类重要的通道,抑制对分类不重要的通道,会有利于提高分类的准确率。本文提出在点云处理网络中引入强调通道差异性的注意力模块,挖掘全局上下文信息,建立通道注意力网络模型,显式学习特征通道上的差异性,即利用注意力模块根据网络中通道的重要程度对特征分配相应的权重。每个通道图的高层特征可以看作是一个类特有的响应,可以学习到通道的差异性,改善特定类别的特征表示。

其中,α1、α2和α3函数是优化点云特征表示的多层感知器,函数f对输入点排列保持不变性,且能够无限逼近任何一个连续函数,最后将输入点映射为一个特征向量,记作V。

随后,将该向量V输入到本文所提的注意力模块,生成一个新的特征映射来强调通道的差异性。该过程可以概括为公式(2):

其中,E是新特征映射后的增强特征向量,A()· 是注意力映射,即将β乘以中间特征V。因此,不同的特征通道根据它们的差异性被赋予不同的权重。

不同于SENet,AB模块使用1×1卷积操作和激活函数来学习通道信息重要性。引入1×1 卷积有助于通过增加非线性来更好地学习多种特征通道之间的复杂关系,并且可以减少参数的数量,减少过拟合。最后,使用激活函数Sigmoid 来进一步来优化对分类重要的特征,这样可以保证所学习到的特征的高效性和可鉴别性。

2.4 损失函数

网络模型在训练过程中采用交叉熵损失[29]进行优化。该损失函数的定义如公式(4):

3 实验结果及分析

3.1 数据集和评估指标

3.1.1 ModelNet10数据集

在ModelNet10[30]数据集上评估所提方法在分类任务上的有效性。ModelNet10数据集由Stanford发布,旨在为计算机视觉、机器人和认知科学的研究人提供全面的物体3D模型。ModelNet10包含有10个类别的样本,部分点云可视化结果如图4 所示,其中有3 991 个训练样本和908个测试样本。原始ModelNet数据集提供了代表的CAD模型的顶点和面。

图4 ModelNet10数据集部分可视化结果Fig.4 Some visualization results of ModelNet10 dataset

ModelNet10 数据集中样本的类别分别为浴缸、床、椅子、服务台、梳妆台、监控、床头柜、沙发和桌子。其中,由于床头柜、桌子和梳妆台这类物体的点云分布较为集中,所以这类物体的结构上较为相似,具有相同的局部信息,很难得到能够识别物体的关键信息,为点云的分类带来了挑战。而对于其他类别,如床、浴缸等,这些物体在结构具有较明显的差异信息,如浴缸的内侧结构对称,可以利用对称信息来进行识别,同时,为点云的分类提供了关键差异信息。

3.1.2 ModelNet40数据集

在ModelNet40[30]数据集上评估所提方法在分类任务上的有效性。ModelNet40 数据集是由Stanford 发布的ModelNet10 数据集的扩展版本,部分点云可视化结果如图5 所示。ModelNet40 共有662 种目标分类,包含40 种对象的12 311 个CAD 模型,其中用于训练的有9 843个,用于测试的有2 468个。输入的三维点云数据是对ModelNet40中的原始物体模型的网格面上均匀采样1 024个点所得,并将其归一化到一个单位球面。

如图5所示,给出了ModelNet40数据集较为复杂的点云物体,部分物体自身结构上没有较大的区别,如玻璃盒和花瓶等。另外,有些物体之间存在相似的部分,如花盆、植物等物体。特别是当植物在花盆里,很容易分类错误。此外,部分数据之间整体存在较大的相似性结构,如沙发和钢琴等。随着不同类别样本数量的增加,样本类别的结构和信息也逐渐复杂,与上述的ModelNet10相比而言,ModelNet40的分类难度较大。

图5 ModelNet40数据集部分可视化结果Fig.5 Some visualization results of ModelNet40 dataset

3.1.3 ScanNet数据集

ScanNet[31]是带标注的室内场景的大规模3D 数据集,它所覆盖的场景范围广泛,具有丰富的语义标注。ScanNet 数据集由1 513 个扫描和重建的室内场景所组成,其中共有21 个类别的物体,有1 201 个场景进行训练,312 个场景进行测试。ScanNet 包含多种场景,常见较小的场景如浴室、壁橱、办公室等,也包括较大的场景如公寓、教室和图书馆等各种场景。

3.1.4 SHREC15数据集

SHREC15[32]数据集是由50个类别的1 200个形状所组成的非刚性三维点云数据集。每个类别包含24个形状,其中用于训练的形状有19个,其余形状用于测试。

与刚性三维点云数据集ModelNet40相比,SHREC15数据集中的非刚性形状种类较多,如多种姿态的猫、狗等点云类别,且在纹理和拓扑结构上更加多样化。

3.1.5 评估指标

延续PointNet系列网络的评价指标,本文使用总体准确率(OA)和单个类别准确率(Acc)作为评价指标。公式(5)为OA的计算公式:

其中,SP是单个类别所对应正确样本的数量,TE是单个类别总的样本数量,即单个类别中所有正确样本所对应的准确率为Acc。

3.2 实验设置

实验环境:Python 3.7,PyTorch 1.1.0,GTX 1080Ti,CUDA 10.0,Ubuntu 18.04。实验参数:Epoch设为101,Batchsize 设为8,每个Batch 中包含1 024 个点,优化器为ADAM,初始学习率为0.001。

所有实验设置如优化方法,学习率和所用的损失函数都与PointNet++网络使用相同的超参数。

3.3 参数确定

网络相关参数的确定均在ModelNet40分类数据集上进行。为了确定所提出网络模型MANet训练周期的最佳值,将训练周期值分别设置为41、61、81、101、121共5个不同的值,实验结果如图6所示。由图6可知,随着训练周期的增加,网络的准确性不断提高,在周期值设置为101时,实验效果最好;继续增加训练周期,不但延长了训练时间,网络的准确性也下降,所以在后续实验中将周期值设置为101。

图6 训练周期数对准确率的影响Fig.6 Effect of epoch on accuracy

对于Batchsize 的选择,在周期值为101 时,选择不同的Batchsize 值:4、6、8、10,网络的准确性如图7 所示。Batchsize由4增加到6,网络准确性有明显的提升;当Batchsize值为4时,由于三维点云本身的数据比较稀疏,且此时输入到网络中的点云较小,既不能提高点云特征描述子的可鉴别性,也不能提高网络模型的性能。随后,Batchsize继续增加,准确性明显提升,在Batchsize为8 时准确性最高,Batchsize 为10 时准确性略微下降。因此,本文Batchsize的值设定为8。

图7 Batchsize对准确率的影响Fig.7 Effect of Batchsize on accuracy

3.4 多分组表征模块性能验证

为了验证多分组表征模块的有效性,对比了MANet网络与仅在PointNet++中加入AB 块而生成的ANet 网络性能,对比结果如表1所示。相较于ANet,MANet网络性能提升了0.78个百分点,证明了多分组表征模块的有效性。

表1 在ModelNet40数据集上MANet与ANet作比较Table 1 MANet compared with ANet on ModelNet40 dataset单位:%

3.5 AB模块性能验证

为了验证AB 模块设计的合理性,对比了ANet、MANet 网络与在PointNet++中加入压缩扩展块而生成的SE-PointNet++网络性能,对比结果如表2所示。相较于原有的SE 模块,本文提出的AB 模块使ANet 网络的性能提升了0.92 个百分点,MANet 网络性能提升了1.7个百分点。证明了AB块使用1×1卷积的优势。

表2 在ModelNet40数据集上MANet与SE-PointNet++作比较Table 2 MANet compared with SE-PointNet++ on ModelNet40 dataset单位:%

另外,实际应用中,伴随着输入点云数据量的减少,必然导致算法的泛化能力变差。因此,为了分析所提出MANet 网络在输入点云数量减少时的鲁棒性,分别设置Batchsize 为10、8、6、4 的4 种模型,周期设置为101。实验结果如图8所示,随着点数的减少,与PointNet++相比,MANet的准确性并没有明显的降低。因此,添加注意力模块后,网络可以有效应对稀疏数据。

图8 调整MANet的BatchsizeFig.8 Adjusting Batchsize of MANet

3.6 与现有方法比较

目前点云分类的主要方法有Subvolume[33]、MVcnn[9]、PointNet 和PointNet++等。MANet 与相关方法在ModelNet10 数据集上各类别网络的比较结果如表3 所示。可以看出,本文MANet 得到的OA 超过了PointNet 和PointNet++模型,本文方法在ModelNet10数据集对单个类别进行了实验,其中,其所对应的6 个类别准确率都优于PointNet++网络,有2 个类别准确率与PointNet++网络结果相同,只有2 个类别准确率低于PointNet++网络,通过多分组表征和强调对特定点云目标有响应的重要通道,提高了分类结果,验证了本文方法的有效性。

表3 ModelNet10数据集上的单个类别MANet与现有方法比较Table 3 Comparison between MANet and existing methods on each class of ModelNet10 dataset单位:%

MANet与相关方法在ModelNet40数据集上的比较结果如表4所示。本文方法在分类任务上准确性最高,总体分类准确率比基于体素输入的Subvolume 提高3.3个百分点,比基于投影图输入的MVCNN 提高2.5 个百分点,与基于点云输入的PointNet和PointNet++相比,分别提高3.3个百分点和1.8个百分点。然后在ScanNet数据集上与相关方法的比较结果如表5 所示。由表5 可知,MANet 总体分类准确率比PointNet++网络提高2.5个百分点。接着又在SHREC15数据集上与相关方法进行比较,结果如表6 所示。由表6 可知,MANet 的总体分类准确率比PointNet++网络提高2.8个百分点。

表4 ModelNet40数据集上MANet与现有方法比较Table 4 Comparison between MANet and existing methods on ModelNet40 dataset单位:%

表5 ScanNet数据集上MANet与PointNet++比较结果Table 5 Comparison results between MANet and PointNet++ on ScanNet dataset单位:%

表6 SHREC15数据集上MANet与PointNet++比较结果Table 6 Comparison results between MANet and PointNet++ on SHREC15 dataset单位:%

本文在ModelNet40 分类数据集对MANet 网络和PointNet++网络的训练时间进行比较,以评价网络模型的计算代价。结果如表7 所示。由表7 可知,与PointNet++相比,MANet在各个分组内学习时保持完整的组内特征信息,同时在学习点云特征过程中强调对分类重要的通道,可以更高效地处理点云。因此,本文所提方法能够使用更少的模型训练时间,来获到更好的识别结果。

表7 ModelNet40上训练时间比较结果Table 7 Comparison results of training time on ModelNet40单位:h

4 结束语

本文提出一种基于多分组表征和注意力机制的MANet 网络用于提取三维点云特征,并将其应用于三维点云分类任务。首先利用多分组表征模块学习点云特征,确保获得完整的特征信息,挖掘最能表征模型类别的几何特征。然后,引入通道注意力机制描述了初始点云特征的重要通道,即通过强调点云不同通道的重要性,进一步提高网络模型识别性能。在ModelNet10/40、ScanNet 和SHREC15 数据集上的实验结果验证了该方法的有效性。由于MANet 是对点云特征的信息综合,对PointNet++的改进有助于提高点云识别技术的准确率,这种改进使MANet能够在具有挑战性的3D点云基准上实现更好的性能。未来将进一步研究多分组表征和注意力机制对不同算法的适用性和有效性,深入挖掘多分组表征和注意力机制在点云识别算法中扮演的重要角色。

猜你喜欢
类别分组注意力
让注意力“飞”回来
一起去图书馆吧
简析基于概率预测的网络数学模型建构
分组
每个人的朋友圈里都有一个分组叫“爸妈”
A Beautiful Way Of Looking At Things
选相纸 打照片
阅读理解两则