一种基于深度学习的两段式三维面片过分割方法

2023-05-16 09:22吴语豪李大威
关键词:规整面片标签

吴语豪,李大威

(东华大学 a.信息科学与技术学院,b.数字化纺织服装技术教育部工程研究中心, 上海 201620)

点云数据是用于描述物体形状的一系列三维坐标,其以离散点的形式保存了原始的物体空间信息。与二维图像相比,点云数据对物体表面和深度信息变化剧烈的部分有更强的表达能力,在数据层面有效解决了二维图像中普遍存在深度信息缺失和目标重叠遮挡的问题。在自动驾驶领域,激光雷达点云成像技术和点云处理技术已经被应用于道路目标的实时分割和识别[1]。在遥感领域,机载三维成像技术能够分析地面建筑物分布,有助于精细化城市规划[2]。在农学领域,基于作物三维点云的器官识别与分割能够辅助表型分析[3]与自动化机器采摘。点云数据通常是杂乱无序的,以不规则的形式分布。利用三维扫描设备得到的点云多存在密度不均、点数无法固定的问题,无法直接输入现有的深度神经网络。此外,点云还存在粒度不确定性。这不仅需要增加新的后处理手段,还易带来较大的后期计算量。因此,研究介于语义尺度和单点尺度间的中粒度分割算法对解决以上问题具有积极意义。

在三维点云领域,这种中粒度分割通常被称为面片分割,其大多基于无监督聚类算法。二维图像中的SLIC(simple linear iterative clustering)[4]算法可以通过更换距离计算函数的方法从而直接应用于对三维点云的分割;文献[5-6]提出的VCCS(voxel cloud connectivity segmentation),使用FPFH(fast point feature histogram)特征以及广度优先算法进行面片分割;Li等[7]提出的面片分割方法主要面向植物叶片分割,并引入平面曲率作为聚类特征,其分割结果被用于植物叶片的识别,取得了良好效果。

无监督方法需要进行大量的参数调节,这使得算法的泛化能力不足,且难以精确规定生成的面片数量。学者们已经逐渐注意到了无监督方法的问题,开始提出一些有监督的解决方案。在二维图像超像素分割任务中,Jampani等[8]提出一种基于可导SLIC方法的超像素采样网络(superpixel sampling network, SSN),该方法计算每一个像素与超像素中心在深度特征空间中的关系并生成关联矩阵Q。在三维点云面片分割的实践中,文献[9-11]提出基于图的点云过分割方案,将三维点云过分割问题转化为一个GMP(generalized minimal partition)问题,完成了对点云的面片分割,并成功地应用在点云的语义分割任务中,虽然该分割方案有着较高的分割准确性,但无法控制生成的面片数量,且生成面片的大小差别较大。本文为解决上述问题,根据二维深度超像素分割网络SSN,提出基于深度学习的三维点云面片过分割网络(3D facet over-segmentation network,3DFON):

(1)设计了两段式的三维面片过分割网络架构,网络前端是一个带有前馈的Pointnet特征提取模块,后端为允许传递误差梯度的并行的点级别迭代聚类算法模块(parallel point simple linear iterative clustering,PPSLIC)。该网络具有分割的面片数可随意设置、不需要参数调节、面片规整性较好和泛化能力强的优势。

(2)同时使用点云语义分割(或实例分割)真实值和传统无监督方法获取的面片进行网络训练,在保证面片的规整性不受太大影响的情况下大大提升了点云语义类的贴边性。

(3)在Shapenet数据集上超越了目前主流的无监督面片分割算法。

1 网络结构

三维点云面片分割网络的总体结构如图1所示,网络结构分为前段与后段两个部分。前段部分主体结构借鉴了Pointnet的思想,向其加入了前馈结构。前段输入为含有n点的点云浅层特征图,输出则是维数固定的点级别深度神经网络特征,服务于网络后段的三维面片的生成。后段部分受二维图像超像素分割方法SSN[9]启发,提出允许传递训练误差梯度的并行的点级别迭代聚类算法模块PPSLIC。对网络进行训练时,同时使用了多种真实值对网络进行训练,包括点云的实例标签、语义标签,以及使用传统无监督面片分割算法获取的面片标签。

1.1 网络前段

本文网络的前段的主要结构为Pointnet[12],该架构创造性地两次引入T-Net结构,以保证网络对旋转不变性特征提取的稳定性。Pointnet在MLP层特征提取后使用了最大池化,该操作降低了点云的无序性对学习过程的影响,同时也提取了点云的全局特征。由于低级信息也能够帮助提升面片的均匀性和规整性,本文在Pointnet主体结构中加入了前馈跳级连接,将空间坐标信息引入到深度特征提取部分的后面。前段网络在最后阶段将输入点云特征与网络输出特征做了直接拼接,并使用了一个紧随其后的MLP层对拼接后的特征进行融合与降维。

图1 三维点云面片过分割网络的总体结构Fig.1 Overall structure of 3D facet over-segmentation network

1.2 网络后段

针对传统二维图像超像素分割算法不可导以及无法嵌入深度神经网络的问题,Jampani等[8]设计的可导SLIC算法的后段聚类算法,可通过迭代给出一个描述像素与超像素关联的软关系矩阵Q[Np,Nsp]传递训练误差的梯度,解决了算法无法嵌入神经网络的问题。但可导SLIC依赖方形窗口进行聚类,只能在二维图像上运行。由于点云与二维图像相比具有无序、密度不均的特点,通过固定窗口的方法局部更新关联矩阵会造成每次关联计算时的点云-中心点关联数量不一致,对程序实现带来困难。因此,提出了一种新的允许传递训练误差梯度的算法PPSLIC,该算法与可导SLIC相似,生成一个含有点与面片关联的软关系矩阵Q[Np,Nf],其中Np为点云所含点数,Nf则为最终分割的面片数。通过设置Nf,PPSLIC算法可以对分割形成的面片数量进行控制。

PPSLIC算法流程见图2,PPSLIC输入深度特征P,输出关联矩阵Q或硬分配向量H。

图2 PPSLIC算法流程Fig.2 The algorithm flow chart of PPSLIC

算法接受前段特征提取模块所提取的深度特征P,并在特征上随机选取Nf个点作为初始面片中心S0,即S0={s0,1,…,s0,Nf},该步同时确定了分割的面片数Nf与初始面片中心。

通过以下步骤进行迭代tmax轮,令每一轮的序号为t。

步骤1:对第t-1轮迭代得到的面片中心集合St-1中序号从1至Nf的每个面片中心St-1,j,使用KNN算法寻找以该面片中心为原点的K个近邻点,形成近邻点集Fneighbor。

步骤2:依据步骤一的得到的Fneighbor,构建软关联矩阵Qt,Qt中元素值Qt,index(pi)j的计算方法如式(1)所示。

Qt,index(pi)j=e-‖pi-st-1,j‖

(1)

式中:pj为近邻点集合Fneighbor中的点;index(pi)j为pi在输入特征P中的实际序号。

对Qt中的每一列计算归一化因子Zt,j,计算方法如式(2)所示。

(2)

根据关联矩阵与归一化因子更新面片中心,得到新的面片中心集合St。St中元素St,j的计算方法如式(3)所示。

在预测与可视化阶段,本文算法使用式(4)获得点与面片的硬分配向量H,输出结果用于指标计算与可视化。

式中:htmax,i为硬分配向量标签H中的元素,表示点云中第i个点所属的面片。

本文提出的聚类算法突破了SSN中仅可用于二维图像的可导SLIC算法的局限性,将软分配SLIC机制拓展到了三维点云的过分割领域。此外,可导 SLIC对每个像素使用邻域关系寻找周围的超像素中心,并与这些像素中心进行关联计算。由于在三维空间上无法通过简单的邻域关系确定最近的面片中心,本文算法对每个面片中心使用了输出点数固定的KNN算法作为替代对邻域点进行寻找,并更新这些点在关联矩阵中相应位置的值;同时,这种操作使得算法有着良好的对称性,易于并行化,从而提高算法的运行速度。

1.3 损失函数

令具体的点云划分真实值(语义分割标签或者实例分割标签)展开为Rseg,Rseg反映了点与点云语义划分之间的对应关系。在一个理想点云的面片分割中,每个面片不应该跨越语义类或实例类的边界,因此必定存在一个面片划分和点云语义划分之间的多对一关系Useg,该关系可由线性映射得到,如式(5)所示。

为了使经过面片分割后的Rpred能够尽量接近原始的Rseg,利用点云划分真实值Rseg、重建值,以及交叉熵损失函数Lentropy计算点级别的重建损失Lrec,损失的计算方法如式(7)所示。

虽然式(7)能够保证由网络生成的面片有良好的点云语义贴边性,但是单纯使用这种损失训练网络会带来面片形状奇异、生成的面片大小不均匀的问题。传统的无监督聚类面片划分算法的语义贴边性较差,但拥有较理想的规整性。为了引入良好的面片规整性,本文设计以传统的SLIC面片分割结果(Rfacet)作为规整性划分约束网络生成规整面片的新损失函数项Lreg,如式(8)所示。

此外,本文引入了SSN网络中的距离损失函数作为第二种面片规整性约束Lcpt。Lcpt的原理是建立一个基于L2距离的损失,点与所在面片的中心距离越远,该损失项的值越大,其计算如式(9)所示。

式中:pi为点i的空间坐标;shi为点i所属片面中心的空间坐标。

此时前端网络的总损失L由式(10)计算所得,其中α取值为0.500,而β取值为0.001。

L=Lrec+αLcpt+βLreg

当然,我也高兴,我肩上的重担也能卸下了。以前公司里的许多琐事都由我一人打理,如今公司部门齐全,杂七杂八的事都有人做了,那些活都不需要我自己干,卸下了不少担子。

(10)

网络的训练过程如图3所示。由图3可知,以8个点划分为3个面片的任务为例,网络以两类的语义分割真实值进行训练,以流程的方式展示了Lrec损失项的计算方法。

图3 网络损失项Lrec计算的图形化表示Fig.3 The graphic demonstration of Lrec in our network

2 试验结果及其分析

2.1 数据准备与网络训练

本文使用了Shapenet Parts[13]数据集对网络进行了训练与测试,试验按照Shapenet的官方分隔建议将数据集分成了训练集、测试集以及验证集3个部分,物体数分别为12 137、2 874和1 870。对数据集的预处理与Pointnet的处理方式相同,输入特征为无色彩的三维坐标数据。该三维物体数据集中每个点云是一个完整的物体;数据集同时提供了语义分割与实例分割的真实值,为本文网络带来了更丰富的训练数据。同时,试验使用SLIC算法在Shapenet Parts数据集上进行了面片数为50的无监督面片过分割,将得到的粗糙分割结果作为真实值帮助训练网络。Shapenet Parts数据集中一个物体点云对应的3种真实值的展示见图4。图4(b)为数据集中的语义分割真实值Rseg(S);图4(c)为数据集中的实例分割真实值Rseg(I);图4(d)为使用SLIC算法在Shapenet原始点云上直接进行面片分割所得的面片数为50的粗糙面片分割结果Rfacet。真实值标签中不同类的点使用不同的颜色表示。

图4 Shapenet Parts数据集对应的3种真实值Fig.4 Three types of ground truth of the Shapenet Parts dataset

本文网络在Ubuntu操作系统中使用了PyTorch深度学习框架实现,所有训练及测试在一块Nvidia RTX2080 GPU上完成。优化器为Adam,批尺寸为20,初始学习率设置为3×10-5,每进行一个epoch的训练后学习率下降为当前值的95%。

2.2 评价指标

试验将欠分割误差、可达成最大分割精度与面片规整性3种评价指标作为生成面片的定量评价指标。

欠分割误差衡量了三维中的面片或者二维图像中的超像素“跨越”对应语义真实值边界的程度,在一定程度上反映了过分割的面片贴近物体边缘的能力。该指标有多种计算方法,本文采用了文献[14]提出的原用于衡量超像素分割误差的计算方法对欠分割误差进行计算,如式(11)所示。

(11)

式中:G为语义或实例分割真实值;F为使用本文方法得到的面片分割结果;Gi为语义类别为i的点;Fj为面片标签为j的点;∩为求交集。

可达成最大分割精度表示算法理论上能够获得的最佳面片分割结果。因此,该值越接近1,代表面片的语义贴边性越强,可达成最大分割精度ASA的计算方法如式(12)所示。

衡量图像超像素过分割的规整性指标是由Schick等[15]在等周熵的基础上提出的。等周熵O的计算方法如式(13)所示。

式中:|A|为超像素面积;LC为超像素周长;AC为周长为LC的圆的面积。

圆为二维平面中最具有规整性的形状,且在所有周长相等的闭合形状下的面积最大,即图形的等周熵O越接近1则规整性越好。超像素规整性的计算方法如式(14)所示。

式中:|Ai|为分割结果中标签为i的超像素块面积;Rsp为分割结果中每个面片等周熵的面积加权和

Rsp的值越高说明超像素分割的规整性越好,但无法直接衡量面片分割的结果,这是由于面片上的点不在一个二维平面上。因此,本文在Rsp的基础上提出一种针对三维面片的规整性衡量指标(图5),将每个单独的面片上所有的点用主成分分析计算出法向量,然后根据法向量将所有点投影到一个二维平面上形成一个形似的超像素。此时,使用贪婪三角网格化[16]与边缘点搜索[7]分别计算出形似超像素面积和与该超像素周长。最后利用式(13)与(14)计算形似超像素的等周熵与超像素规整性值,该Rsp值则作为点云的规整性指标,即面片规整性。

2.3 不同三维面片化方法的比较

将本模型与传统的SLIC算法、文献[7]中的面片化算法进行对比试验,其中SLIC算法与本模型均在目标点云上固定分割出50个面片,而文献[7]中的算法无法精确控制分割形成的面片数量,试验通过人为调节参数的方法控制其分割的面片数量为50左右。3种算法在3个指标衡量下的定量对比结果如表1所示。其中ASA与面片规整性越高越好,而Eu则越低越好。

图5 单面片的等周熵计算方法Fig.5 The calculation of the compactness of a single facet

表1 3种方法在Shapenet Parts数据集上的定量对比

SLIC算法、文献[7]算法及本文算法在Shapenet Parts数据集上的定性对比如图6所示。由图6可知,从上到下每行的点云分别为桌子、飞机、椅子和油灯,其中虚线框处重点展示了在各算法中本文算法具有较好语义贴边性的位置。本文算法生成的面片分割结果在语义类真实值的依附上略强于其他两种方法,图6实例中桌子的虚线框位置显示本文算法能较好地区分桌腿和桌板这两个语义类,并较好地分割出了飞机引擎的边界以及油灯灯座和底盘的语义分界。相较于SLIC算法、文献[7]算法而言,本文算法在欠分割误差、可达成最大分割精度这两项定量指标上都达到了最佳,表现出了良好的面片语义贴边性,其虽然在规整性的定量指标方面略逊于传统算法,但在定性视觉效果上与传统算法相当,差别并不明显。

图6 3种算法在Shapenet Parts数据集上的定性对比Fig.6 Qualitative comparison of three methods on the Shapenet Parts dataset

2.4 剥离试验及结果分析

为了验证所构建的深度三维面片过分割网络训练损失的合理性,以及使用预生成的面片分割标签训练本文的网络的方案合理性,设计综合剥离试验。剥离试验共包括4个方案,将4个方案进行定性与定量的对比。方案2与方案4均使用式(10)中的所有损失项,以及预生成的粗糙面片进行训练,两者区别在于方案4采用Shapenet Parts数据集中比语义标签信息更为精细的实例分割标签。方案1与方案3未使用预生成的面片进行训练,并在损失函数中删除了与面片训练相关的损失函数Lreg。所有方案中仅在训练时有所区别,训练时α与β被统一设置为0.500以及0.001,测试时使用了相同的语义分割测试集进行测试及定量指标计算。4种方案在损失函数以及训练标签组成上的对比如表2所示,方案4是本文最后选取的试验方案。

表2 剥离试验中的训练方案对比Table 2 The training details of the ablation analysis

4种方案的定量对比结果如表3所示。从表3中可知:相比于方案1、方案3,方案2、方案4在规整性指标上提升约3%,验证了以粗糙面片训练网络能够带来规整性的大幅改善的结论。方案4使用更加精细的实例真实值标签后,相比于方案2以略微损失面片规整性的代价换取在ASA和Eu两个指标上的明显优势。方案3相比于方案1在ASA和Eu两个指标上也有提升,再次验证了在训练中使用更加精细的实例真实值标签的优势。

表3 4种训练方案的定量结果对比

4种方案的定性测试结果如图7所示,该定性结果对比在4个物体上进行,包括沙发椅、手提包、四腿椅与便携式计算机,原始点云用黑色点表示。

由图7可以看出:方案1、方案3多次出现了长条形和不规则的面片,规整性较差;方案2、方案4不仅面片的规整性比较好,而且语义贴边性比较强。综合而言,方案4是最佳的选择,定量和定性的剥离试验均说明了本文提出的训练方式和损失函数是有效的。

图7 原始点云与4种训练方案的定性结果对比Fig.7 Qualitative comparison of four different architectures and original pointcloud

2.5 预训练网络在其他数据集上的应用

设计的深度三维面片过分割网络的前端是一个特征提取器,其注重于局部特征的提取,使用某一数据集训练完成的模型,即不需要重新训练直接应用于其他数据集。通过把在Shapenet Parts数据集上预训练的模型应用在其他点云数据集上,得以验证本文算法的泛化能力。将本文的预训练模型在文献[17]的Partnet数据集上进行测试,分割的面片数被定为50。图8分别展示了手提袋、沙发、台灯的不同角度点云分割结果。本文算法从不同视角均保持了生成的面片较规整,且面片的语义贴边性较好等特点。

图8 Partnet Parts数据集中的物体点云分割结果Fig.8 Point cloud segmentation results on Partnet dataset

将文献[18-19]中提出的植物点云用于本文的预训练模型,选取3株植物进行面片分割并进行展示,结果如图9所示。为了保持良好的视觉效果,分割的面片数规定为20。由图9可知,3种植物不同角度的点云分割结果中预训练模型仍保持一定的面片规整性与语义边缘依附性,由此可知本文的预训练模型有较好的分割效果与泛化性能。

图9 植物数据集的分割结果Fig.9 Segmentation results of plant dataset

3 结 语

针对现存三维点云面片化分割方法难以精确规定生成的面片数量,且在使用过程中需要进行复杂的参数调节的问题,本文提出了基于深度学习的三维点云面片化分割网络,其具有两段式的网络架构。网络前段为增加了前馈连接的Pointnet特征提取模块,网络后段为允许传递网络训练误差以及梯度的并行点级别迭代聚类算法模块。利用以传统点云语义/实例分割真实值与传统三维点云面片分割方法分割生成的真实值为基础的损失函数对网络进行训练,并与SLIC算法和文献[7]中的算法进行了对比。研究结果表明:本文网络在保证面片规整性的前提下具备较好的语义贴边性;在过分割误差以及可达成最大分割精度这两个指标上均优于其他两种无监督三维点云面片分割方法。

未来将继续发展深度三维点云面片分割网络框架,提高网络分割生成面片的规整性,为即时地图构建、无人驾驶、精准农业等领域的发展做贡献。

猜你喜欢
规整面片标签
初次来压期间不同顶板对工作面片帮影响研究
300kt/a硫酸系统规整填料使用情况简介
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
提高日用玻璃陶瓷规整度和表面光滑度的处理方法
电梯的建筑化艺术探索
标签化伤害了谁
甜面片里的人生
基于三角面片包围模型的数字矿山技术研究
基于发音机制的贪婪自适应语音时长规整算法