遮挡条件下基于MSF-PPD网络的绿萝叶片点云补全方法
2021-10-13肖海鸿徐焕良马仕航王江波王浩云
肖海鸿 徐焕良 马仕航 陈 玲 王江波 王浩云
(1.华南理工大学自动化科学与工程学院, 广州 510641; 2.南京农业大学人工智能学院, 南京 210095;3.中国移动通讯集团上海有限公司, 上海 200060; 4.塔里木大学植物科学学院, 阿拉尔 843300)
0 引言
点云因其数据量小、表现能力强,被广泛应用于三维数据处理[1]。真实世界的点云数据通常是使用激光雷达(Lidar)、激光扫描仪(Laser scanner)或低成本的RGB-D相机采集得到,由于受遮挡、视角限制和传感器分辨率等因素的影响,导致获取到的点云数据存在不完整的情况。因此,点云数据的补全研究具有重要意义。植物叶片是植物外在形态的重要组成部分,同时也是植物进行生理功能运作的主要器官[2],对植物叶片存在的遮挡进行有效的生成补全,将对植物表型研究起到积极的推动作用。
三维形状补全一直是图形学和视觉领域的一个重要研究问题。KAZHDAN等[3]利用泊松重建方法对物体表面存在的孔洞进行补全,但是这类方法存在补全面积小的特点。MITRA等[4]基于对称性的概念,利用几何物体的对称性特点完成补全,但是这类方法存在补全质量低的特点。LI等[5]采用3D模型数据库中检索对象来替换实际三维物体,将检索到的模型与输入数据进行对齐和缩放,实现高质量的真实物体虚拟表示,从而达到补全目的。王浩云等[6]采用粒子群算法将输入的局部苹果点云与通过反演得到模型库中的点云模型进行空间匹配,并利用遗传算法寻找最优苹果模型代替实际输入点云作为补全结果,但是这类方法存在迭代寻优速率慢的特点。初梦苑等[7]提出了基于视频的错帧补全方法补全奶牛躯干中缺失区域的点云数据。随着深度学习在三维领域取得的快速进展,基于深度学习方法的三维形状补全也受到了越来越多研究人员的关注。QI等[8]提出了第一个直接作用于点云数据的深度学习框架PointNet,可以实现三维模型的分类、分割和室内场景的语义分割。因为多层感知机具有简单且表示能力强的特点,YUAN等[9]和MANDIKAL等[10]进行了基于多层感知机的三维点云模型重建,利用最大池化函数(Max pooling)聚焦全局特征,采用解码器设计完成点云补全。YANG等[11]提出了一种基于折叠的解码器实现点云的补全,ZHAO等[12]提出了一种基于自动编码器结构的3D点胶囊网络,来实现稀疏点云的重建。缪永伟等[13]借助于生成对抗网络框架,提出了一种自动修复补全三维点云形状的神经网络结构,该方法以编码器-解码器结构作为神经网络的生成器,神经网络判别器则用于判断真实的完整点云形状数据和生成器生成的完整点云形状数据。TCHAPMI等[14]提出了一种树结构网络TopNet,其中树中每个节点嵌入一个节点的定义元素,建立点云上的任意结构或拓扑模型,相较于独立的点处理,该方法考虑了点之间的关系,实现点云的补全。罗开乾等[15]提出了一种基于多分支结构的点云补全网络,采用编码器对点云的全局特征和局部特征进行提取。SARMAD等[16]提出了一种结合强化学习代理控制生成对抗网络(Generative adversarial networks,GAN)进行点云的生成补全方法。XIE等[17]引入了一种体素网格来正则化无序点云作为数据的中间表示,并利用3D-CNN进行特征提取和中间数据生成,再通过体素网格逆向生成点云结构实现点云补全。为了降低由多层感知机引起的结构损失,GROUEIX等[18]提出的AtlasNet和LIU等[19]提出的MSN网络通过估计参数表面的元素集合来恢复三维模型的完整点云。
传统点云补全方法存在补全面积小、补全质量低和迭代寻优速率慢等特点,基于深度学习的点云补全方法虽然取得了一定的研究进展,但是代理控制极为困难,GAN生成具有不稳定性,体素网格数据计算量大且分辨率低。因此,本文以绿萝叶片为试验对象,提出一种基于多尺度特征提取模块结合点云金字塔解码器(Multi-scale feature extraction model with point cloud pyramid decoder,MSF-PPD)的叶片点云补全网络。
1 基于MSF-PPD的叶片点云补全网络
基于MSF-PPD的叶片点云补全网络结构如图1所示,网络以残缺叶片点云作为输入,利用多尺度特征提取模块对点云进行特征提取,并对提取的不同深度特征信息进行融合。其次,通过点云金字塔解码器模块进行多阶段点云生成预测,最终实现叶片点云补全任务。
1.1 多尺度特征提取模块
多尺度特征提取模块对点云的特征提取是受PointNet网络的启发,沿用其多层感知机提取点云特征的思想,移除了PointNet特征提取模块中的旋转矩阵网络(T-Net),相较于PointNet仅采用顶层的特征表示,网络改进为高低维全局特征的融合表达。其特征提取模块网络层参数如图2所示。
网络以遮挡叶片点云N×3作为输入,通过卷积神经网络对点云进行特征提取。其中Conv1_64表示卷积层,输入通道数为1,输出通道数为64;BatchNorm_64表示输入批归一化层的特征数量为64(其他类同);ReLU表示激活函数;步长默认为1;通过多层感知机将点云升维至64、128、256、512、1 024维。为了加速网络的收敛,网络在卷积层后添加批归一化层(Batch normalization,BN)。为了增加网络层之间的非线性关系,在归一化层后添加修正线性激活函数(Rectified linear unit function,ReLU)。
为了解决点云的无序性问题,利用对称函数对升维点云进行全局特征提取。通过对称函数将不同维度提取的特征进行最大池化,分别得到1×64、1×128、1×256、1×512和1×1 024的全局特征,为了对局部特征进行更好的感知,采取高低维特征融合方法,将不同维度的全局特征累加得到1×1 984的多尺度深度特征,作为点云金字塔解码器的输入。
1.2 点云金字塔解码器
点云金字塔解码器是受特征金字塔网络(Feature pyramid networks,FPN)[20]的启发,借鉴其自下向上的特征维度生成和自上向下的补充增强思想。FPN最早是用于解决目标检测中的小目标检测问题,且取得效果显著。本文的点云金字塔解码器是将提取的多尺度深度特征进行多阶段点云生成补全的过程,其流程图如图3所示。
点云金字塔解码器先将融合特征向量1×1 986经过多层感知机(Multi-layer perceptron,MLP)进行特征提取,得到1×1 024、1×512、1×256共3个特征向量。首先,将特征向量1×256经过多层感知机输出分辨率为64×3的第1阶段补全点云。其次,将特征向量1×512经过卷积、激活和叠加操作输出分辨率为128×3的第2阶段补全点云。最后,将特征向量1×1 024经过卷积、激活和叠加操作输出分辨率与完整点云点数相同的第3阶段补全点云M×3。经过3个阶段的补全输出,生成的点云由粗略逐渐变为精细,最终实现叶片点云补全任务。
1.3 损失函数
MSF-PPD网络利用倒角距离(Chamfer distance, CD)评价生成点云和真实点云之间的差异程度,数值越小,表明生成点云和真实点云之间的相似程度越高,补全质量越好。倒角距离公式为
(1)
式中P1、P2——生成点云和真实点云的点集
m、n——点云P1和P2中的点
dCH——生成点云和真实点云之间的差异值,数值越小,表示补全质量越高
点云金字塔解码器是一个多阶段的点云生成补全过程,因此MSF-PPD网络的损失函数是多阶段联合损失的线性组合函数。由于每个阶段生成点云的分辨率不同,因此在衡量每个阶段生成点云和真实点云之间的误差时,输入真实点云的分辨率应该与对应阶段生成点云的分辨率一致,本文通过迭代最远点采样算法(IFPS)[21]对真实点云进行下采样处理,实现不同分辨率真实点云的输入要求。本文提出的损失函数Loss计算公式如下
Loss=sdCH(R1,Pgt1)+qdCH(R2,Pgt2)+edCH(R3,Pgt3)
(2)
式中R1——分辨率为64个点的生成点云
R2——分辨率为128个点的生成点云
R3——分辨率为完整点的生成点云
Pgt1——分辨率为64个点的真实点云
Pgt2——分辨率为128个点的真实点云
Pgt3——分辨率为完整点的真实点云
s、q、e——权重参数
Loss为多个阶段的生成点云和真实点云之间的误差总和,数值越小,表明补全质量越高。
2 数据集构建
2.1 仿真叶片数据集构建
绿萝叶片的外形呈上窄下宽的卵圆形,叶片外形由叶形、叶尖、叶基和叶缘的边界轮廓组成,由于叶片厚度较小,构建仿真叶片模型时可以忽略不计,叶片外形参数方程为[22-24]
(3)
其中
(4)
式中tx1——X方向叶形干扰函数
ty1——Y方向叶基正弦变形函数
ty2、ty3——Y方向叶尖两侧线性变形函数
xQ——X方向参数
yQ——Y方向参数
zQ——Z方向参数
abs()——绝对值函数
h——长度系数
b——宽度系数
ax——叶形变形指数,对叶片外形主要是对叶宽造成影响
dy——比例造型指数,影响叶片最宽点位置
at——叶尖变形指数,控制叶尖部分长度变化
ab——叶基变形指数,控制叶基部分长度变化
ut——叶尖造型指数,控制叶尖部分宽高比
ub——叶基造型指数,控制叶基部分宽高比
xb——叶片沿X方向在Z轴的弯曲幅度
yb——叶片沿Y方向在Z轴的弯曲幅度
u、v——自变量参数
其中h、b、ax、dy、at、ab、ut、ub、xb、yb为曲面参数方程的10个内部模型参数。
根据该曲面参数方程构建叶片仿真模型,通过控制参数方程的自变量取值得到包括12 743个仿真叶片模型的模型库,并将其离散成包含2 048个点的仿真叶片点云数据,通过迭代最远点采样算法统一下采样为512个点,构成仿真叶片点云数据集。
2.2 绿萝叶片数据采集
为了评估补全模型对真实绿萝叶片的补全效果,试验以花卉市场常见的青叶绿萝为试验对象,采用Kinect v2相机获取绿萝叶片点云。本试验将从2方面对绿萝叶片进行点云采集:通过Kinect v2相机对离体绿萝叶片进行完整叶片点云获取,根据点云的坐标属性实现单片点云分割,采用包围盒和IFPS算法对点云进行精简;通过Kinect v2相机对自然遮挡状态下的叶片点云进行采集,利用K-means算法对遮挡叶片进行点云分割得到单片点云,并采用包围盒和IFPS算法进行点云精简,然后获取对应编号的完整离体叶片点云。其数据采集流程如图4所示。试验共采集完整叶片点云52片,自然遮挡状态下叶片点云50片,共102片点云。
3 试验
3.1 试验环境
试验硬件环境为AMD Ryzen 5 1600 Six-core Processor CPU,主频3.20 GHz;NVIDIA GeForce RTX 2080 Ti GPU;操作系统为Ubuntu18.04。深度学习环境为CUDA10.0、cuDNN7.5.0、Tensorflow1.14.0、Pytorch1.2.0、Python3.6.8。
3.2 试验设计
试验将仿真叶片点云数据集划分为训练集和验证集,其中11 467片仿真叶片作为补全网络模型训练的训练集,使用Adam作为网络模型训练的优化器,其中学习率为0.000 1,迭代次数为101,批尺寸(Batchsize)为12,剩下的1 276片仿真叶片作为衡量网络对仿真叶片补全性能的验证集,并利用现有补全方法与本文方法进行对比分析。试验将Kinect v2相机获取的52片绿萝叶片完整点云和自然遮挡状态下获取的50片叶片点云作为测试集,用来衡量网络对真实叶片的补全性能。试验对验证集从2方面进行网络补全结果评估:在不同残缺比例情况下的补全结果分析;在不同点数稀疏情况下的插值补全结果分析。对测试集也从2方面进行结果评估:对52片完整点云进行不同残缺比例的补全结果分析;对在自然遮挡状态下的50片叶片点云进行补全结果分析。
3.3 评价标准
由于点云是无序的,为了评价生成点云和真实点云之间的差异程度,本文采用最小匹配距离(Minimun matching distance,MMD)[25]来计算两个点云之间的相似程度,数值越低,点云越相似,补全质量越好。最小匹配距离的计算公式为
(5)
其中
(6)
式中dCD——倒角距离函数
dEMD——地球移动距离函数
dMMD——最小匹配距离
D——距离函数,表示地球移动距离函数或倒角距离函数
M——生成点云中点的数量
x——点云P2中的点
φ——映射函数
3.4 结果与分析
3.4.1不同残缺比例情况下仿真叶片补全结果分析
试验以验证集的1 276片仿真叶片作为试验对象,由于叶片一般遮挡情况在20%左右, 因此试验按照20%、30%、40%的比例做随机残缺,利用MSF-PPD补全网络进行补全,补全结果通过Open3D[26]进行可视化,如图5所示。试验以最小匹配距离作为评价标准,评估自动编码器(Auto encoder,AE)、潜在空间生成式对抗神经网络(Latent-space generative adversarial networks,L-GAN)[1]和本文方法对不同残缺比例叶片的补全性能,其补全结果如图6所示。
由图5可知,叶片在不同残缺比例情况下,本文方法有很好的补全效果,表明本文方法具有较强的鲁棒性。由图6可知,在相同的残缺比例情况下,最小匹配地球移动距离(MMD-EMD)略高于最小匹配倒角距离(MMD-CD),这是因为MMD-CD更关注点云的整体结构相似性,而MMD-EMD更关注点云的局部细节相似性,为实现补全的叶片整体结构与原始叶片一致,本文采用倒角距离作为损失函数进行训练。根据图6可知,在残缺比例为20%和30%情况下,3种补全方法的补全效果相差不大,且本文方法在20%和30%残缺比例情况下的补全结果误差相差较小,当残缺比例为40%时,本文方法的补全结果误差增加速度更为明显,但其最小匹配距离相较于另2种方法的补全误差仍然较低,对残缺叶片补全效果最优。综上分析可知,在残缺比例为20%和30%的情况下,补全结果较为稳定,试验结果表明,本文方法能够对不同残缺比例的叶片进行高效、准确的补全。
3.4.2不同点数稀疏情况下仿真叶片插值补全结果分析
以验证集的仿真叶片作为试验对象,分别对完整叶片点云进行下采样64、128、256点作为网络输入,利用MSF-PPD补全网络对稀疏点云进行插值补全,补全结果如图7所示。试验以最小匹配距离作为补全评价标准,评估AE、L-GAN和本文方法对不同点数稀疏情况下的插值补全效果,其补全结果如图8所示。
由图7可知,补全网络能够对不同点数稀疏情况下的叶片进行较好的均匀插值补全。当采样点数较少时,插值补全的效果依然很好,表明网络结构具有较强的鲁棒性。根据图8可知,当验证集叶片在不同稀疏情况下时,3种方法对稀疏点云插值补全的效果都较好,其最小匹配距离都较低,其最大值均不超过0.006 0。当叶片在相同的稀疏情况下时,相较于AE和L-GAN,本文方法的补全定量分析误差更低,补全效果更好,表明本文方法能够对点云非常稀疏情况下的叶片进行较好的插值补全。
3.4.3不同残缺比例情况下的绿萝叶片补全结果分析
以测试集52片完整叶片点云作为试验对象,分别按照20%、30%、40%比例做随机残缺,利用训练好的MSF-PPD网络模型进行补全,补全结果通过Open3D进行可视化,结果如图9所示。试验以最小匹配距离作为评价标准对残缺叶片补全结果进行定量分析,结果如表1所示。
由图9可得,在残缺比例为40%的情况下,补全结果仍然较为完整,证明本文方法在叶片残缺较多的情况下,仍然具有较强的补全性能。由表1可知,MMD-CD和MMD-EMD在不同残缺比例情况下的数值略高于验证集定量分析结果,这是因为测试集和验证集的叶片内部点云分布存在不一致,导致测试集计算误差略高于验证集,但是整体补全效果仍然较好,测试集的绿萝叶片内部点云是通过Kinect v2相机获取,而验证集的仿真叶片内部点云分布是利用间隔距离进行离散和迭代采样得到。但是从整体结果看,MMD-CD和MMD-EMD仍然较低,在误差允许范围内。试验结果表明,本文方法能够对不同残缺比例情况下的真实叶片进行高效、完整的补全。
表1 不同残缺比例情况下的叶片补全结果定量分析Tab.1 Quantitative analysis of leaf complementation with different mutilation ratios
3.4.4在自然遮挡状态下的叶片补全结果分析
以测试集中50片自然遮挡状态下的绿萝单片叶片作为试验对象,利用训练好的MSF-PPD网络模型对自然遮挡的叶片进行补全。试验选取其中一组遮挡叶片补全结果通过Open3D进行可视化,如图10所示。试验以最小匹配距离作为评价标准对自然遮挡状态下的叶片补全结果进行定量分析,结果如表2所示。
由图10可知,叶片7在遮挡较为严重的情况下,其补全结果仍然较为完整,说明MSF-PPD补全网络在叶片遮挡较多的情况下,仍然具有较强的鲁棒性。由表2可知, MMD-CD和MMD-EMD数值较低,在误差允许范围内。试验结果表明,本文提出的MSF-PPD网络能够对在自然遮挡情况下的叶片进行高效、完整的补全。
表2 50片遮挡叶片补全结果定量分析Tab.2 Quantitative analysis of 50 occluded leaf complementation results
4 结束语
针对叶片存在遮挡的问题,本文提出了基于MSF-PPD网络结构的叶片点云补全方法。通过曲面参数方程构建仿真叶片模型库作为网络训练的数据集,验证集补全试验结果表明,网络既能对一定程度的叶片遮挡进行有效的补全,也能在叶片点云稀疏情况下进行精准的插值补全。测试集补全试验结果表明,本文方法能够对自然遮挡状态下的真实叶片进行生成补全,并获得了较好的补全效果。