三维点云与图像双模态融合的空间目标部件识别方法
2023-06-21袁萌萌张泽旭
袁萌萌,张泽旭
(哈尔滨工业大学航天学院,哈尔滨 150001)
0 引 言
近年来,随着人类对太空资源探索、开发及利用的需求不断增加,发射卫星的数量也与日俱增,因此对于故障卫星的在轨修复、捕获移除与功能卫星碰撞风险高的报废卫星、碎片清除等自主近距离操作任务成为各航天机构的关注热点[1]。为了保障这些任务的顺利实施,执行自主近距离操作的前提是对空间目标进行参数识别和测量[2-3]。通常卫星上的部件都具有一定特征且执行不同的功能,如太阳能帆板、主体、星箭对接环等,识别出这些部件对抓捕、对接、维修等具有非常重要的意义[4-5]。
在星载资源有限的情况下,相机是广泛使用的敏感器,智能感知技术的快速发展使得借助深度学习方法可以从图像中高精度地识别出空间目标各部件[6-9]。文献[10]提供了一个空间图像数据集,对3 117张卫星和空间站图像进行标注用于空间目标检测、分割和部组件识别。但图像是三维目标在二维平面的映射,在二维图像上识别出特征部位后无法提供准确的空间位置。三维点云弥补了这一不足,在二维图像的基础上增加了深度信息,更有利于后续的位姿测量,因此,三维点云的分类和三维模型上的目标部件识别具有重要的价值和意义[11]。
基于特征描述的三维点云识别过程中涉及的关键步骤就是3D特征描述符的构建,它对于识别过程的性能和结果有显著影响。目前三维特征描述符主要分为基于全局特征的和基于局部特征的。三维全局特征描述符依赖于整个三维点云,对整体的几何信息进行编码,可以更好地捕获远处点之间的关系;而局部特征描述符对点云中的关键点使用邻域几何信息(比如表面法线或曲率等)进行编码,对遮挡和噪声比全局特征更具有鲁棒性,但会带来更高的计算成本。Ding等[12]提取目标点云和模板点云的点快速特征直方图(Fast point feature histogram, FPFH)特征,采用采样一致性初始配准算法(Sample consensus initial alignment, SAC-IA)对每个模板点云和目标点云进行粗匹配,选取精度最高的模板点云,之后使用迭代最近点算法(Iterative closest point, ICP)进行精细匹配来实现准确检测空间目标的AKE喷嘴部件。Huang等[13]结合了FPFH描述符和SVM学习算法来检测场景点云中的对象,在杂乱的工业场景目标识别方面取得了有效的结果。Wohlkinger等[14]针对实时三维模型类别识别问题引入了一种新的全局描述符ESF(Ensemble of shape functions),将角度、面积和距离3种形状函数集合到一起产生了一种更加高效、更具有表达性的描述符,能在快速、鲁棒的情况下对深度传感器的目标进行分类。为了克服局部和全局描述符的缺点,Hadji等[15]提出了局部到全局描述符(Local-to-global descriptor, LGS),更稳健地捕获目标的精确结构,同时对杂乱和遮挡保持鲁棒性。Himmelsbach等[16]设计了一种利用点云的局部和全局特性的新的特征描述符LGPFH(Local and global point feature histog-ram),被证明非常适合于大型三维点云场景中的目标检测。
也有学者利用机器学习实现场景中对目标识别,先对场景点云进行分割提取出单个目标,再通过支持向量机、马尔可夫随机场(Markov random field, MRF)和随机森林等模型对样本特征进行学习完成点云多类别识别。还有学者借用深度学习实现点云识别,文献[17]提出了PointNet框架,可以运用在形状分类、零件分割、场景分割等许多基准数据集的场景下。文献[18]在三维激光点云中使用基于残差学习的卷积网络模型对点云进行分类,再利用马尔可夫随机场对分类结果进行优化,提高了点云语义分割的准确率。将点云投影到二维图像中可以借助基于视图的成熟的网络框架,这样可以将三维点云识别任务简化为二维识别任务。文献[19]在MVCNN中使用CNN生成每个二维视图的描述符,将多视图特性聚合到一个紧凑的3D全局描述符中实现三维点云分类。Wei等[20]将多视图视为图节点,设计了图卷积网络View-GCN聚合多视图特征来学习全局形状描述符用于三维点云分类。
本文借助多视图的思想,提出了一种三维点云与图像双模态融合的空间目标部件识别方法,结构如图1所示。首先,采用DeepLabv3+网络[21]对二维高分辨率图像进行分割,实现空间目标部件的二维识别。其次,将三维重建点云投影至二维图像中,通过最近邻查找将像素点语义标签传递给对应的三维点,实现三维点云与二维图像目标间的语义关联。最后,对具有语义信息的三维点云使用全连接条件随机场进行优化,降低重建位姿误差和二维目标部件识别误差带来的影响,得到更加精细的点云语义标记结果,并融合多个姿态下的三维点标签得到最终的点云部件识别结果。
图1 本文方法总体流程图Fig.1 Overall flow chart of the proposed method
1 基于Deeplabv3+的空间目标部件二维识别
本文通过对空间目标二维图像进行语义分割来实现对目标部件的二维识别,为图像中的每一个像素分配语义标签。Deeplabv3+是目前分割精度比较领先的语义分割算法,其在多个研究中展示出较好的图像分割性能,本文也将基于Deeplabv3+网络进行二维图像上的空间目标部件识别。
Deeplabv3+网络引入了编码器-解码器结构,整体网络框架如图2所示。编码器阶段通过骨干网络来提取图像特征信息,本文分割网络的输入是分辨率为1024×1024的空间目标高分辨率图像,卷积参数量会增加,考虑到模型计算效率和内存的问题,骨干网络使用轻量级特征提取网络MobileNet-v2[22]。通过空间金字塔池化模块中并行的不同扩张率的空洞卷积对多尺度上下文信息进行编码,使得卷积输出包含的图像特征信息范围更大。解码器的作用主要是为了还原特征图的尺寸,对模型结果只起到了微调作用,应使用较少的参数来减少计算量。在解码器中,对拼接前的低级有效特征层使用1×1卷积减小通道数,并且在对拼接结果利用3×3卷积过程中使用深度可分离卷积来减少参数量,最后进行4倍双线性插值上采样来精细化分割边界细节信息得到分割图。
图2 图像语义分割网络框架Fig.2 Image sematic segmentation framework
图3 点云与图像语义传递Fig.3 Semantic labels from image to point cloud
图4 3D-2D投影Fig.4 3D-2D projection
在图像语义分割任务中,常用到的损失函数是交叉熵损失,但是交叉熵损失函数并不能很好地解决样本类别不均衡的问题。在空间目标图像中恰恰就存在这种问题,各个部件的大小不一,在图像中会出现像素不均衡的问题,比如目标主体或帆板在图像中的占比就远大于对接环,如图5所示。它们的分割难度也会有所不同。这种不均衡问题会使得各部件分割难度有所不同,像素占比大的部件因其数量上的优势而主导模型的训练,使模型性能退化,训练效率降低。
图5 数据集样本Fig.5 Samples of the dataset
焦点损失(Focal loss)函数利用动态加权的方式来解决同一张图像中不同语义的像素个数不均衡以及学习的难易程度不同的问题,在交叉熵损失的基础上添加权重调节因子,让模型更加关注难样本的学习,提升分割精确度。焦点损失函数数学表达式为
LFl(pi)=-α(1-pi)γyilgpi
(1)
式中:α为类别间的权重系数,用来平衡正负样本;yi和pi为第i个类别的标签和网络输出概率值;γ参数调节难易样本的权重。设置α=0.5,γ=2。
本文采用Focal loss和Dice loss结合的损失函数,除了使模型更好地学习难样本之外,利用Dice loss学习减轻不平衡像素间的类分布。Dice loss是衡量两个样本之间的重叠部分,这与评价指标交并比(Intersection over uion,IoU)类似。数学表达式为
(2)
L=LFl+LDl
(3)
2 三维点云与图像目标间2D-3D语义关联
假设三维点云P={Pwi,1≤i≤n}是由空间目标单目图像序列I={Ik,1≤k≤m}通过三维重建得到的稠密点云,同时获得相机反演位姿{Rk,Tk}。通过针孔相机模型可以建立三维点云映射到二维图像像素点的投影变换关系,三维空间点与对应的二维像素点之间存在如下对应关系:
(4)
式中:λ是比例因子;ui(ui,vi)为图像中的像素坐标;K为相机内参;Pci(Xci,Yci,Zci)为相机坐标系下的点;Pwi(Xwi,Ywi,Zwi)为世界坐标下的点。
图像中的目标实际上是对应3D点在2D像平面上的投影,解算出目标和相机之间的相对位姿就可以将3D点和2D点相关联。二维图像语义分割可以得到图像中每个像素点所属的类别{ui,vi,li},通过点云降维图像的方式结合投影变换关系可以将2D像素点的语义标签传递到3D点,给三维点云中的每一个点Pwi赋予对应的类别{Xwi,Ywi,Zwi,li}。但是重建过程中得到的相机反演位姿存在误差,会使三维点云映射到二维图像平面出现投影误差,导致二维投影点与图像目标像素之间存在偏移。图3(a)展示了点云二维投影点与图像中目标区域之间存在像素偏差,部分点云投影没有与之直接关联的mask区域像素点,无法与三维点进行语义关联从而带来三维点云的语义信息缺失。
本文要解决的问题是在重建点云中识别出各个部件,需要给每一个三维点赋予语义标签。语义分割网络的输出结果mask图保留了二维像素点的空间位置信息,对其构建KDTree的空间索引结构,在目标mask中采用最近邻查找的方式寻找与3D投影点距离最近的2D像素点,使用其语义标签对3D点进行语义标记,如图3(b)所示。
3 基于DenseCRF的三维点云目标识别与优化
将点云按照解算位姿进行投影后,通过最近邻搜索的方式找到了与三维点对应的二维像素点,点云实现了语义分割。但是这种方式依赖图像语义分割的准确性,并且会受到投影误差的影响。这样就会导致在某些姿态下出现三维语义分割结果中部分组件类别识别错误,而且会造成点云识别结果不连续的情况。通过2D-3D语义传递的方式没有充分利用三维点云的数据信息以及点云之间的位置关系。通过图4可以注意到,三维点云进行二维投影时,如果两个3D点在模型中足够接近,它们投影在图像中的特征很可能会非常接近。同时,两个距离较远的3D点从特定角度投影在二维空间中也可能非常接近,这种情况下,通过投影点最近邻搜索的方式进行语义传递会造成点云识别错误及语义标签不连续的情况出现。
因此,在得到点云初始语义标记的基础上,充分利用三维点云的特征信息和上下文信息,考虑部件间三维点的空间依赖性,有助于提高点云识别结果。无向图模型是由点和边组成的数据结构,模型中的点代表随机变量,若点之间用一条无向边连接代表变量间存在相关性,可以相互影响,那么利用无向图模型便可以建立点云之间的空间依赖关系。条件随机场(CRF)属于无向图模型,通常被描述为语义标签空间中的离散模型,常被用于提高图像语义分割的准确性,最大限度地提高相似像素之间的标签一致性。DenseCRF是将无向图中的所有点连接成对,可以有效融合远距离上下文特征信息,本文将其用于表征三维点间的相互关系来克服初始语义标记的噪声问题,优化点云语义标记结果,提高点云部件识别的准确度。
(5)
式中:xi∈X是点Pwi的标签;ψu(xi)是一元势(unary potential)函数,此时点云的类别标签分布只与单个点自身特征有关,当每个点被分配一个标签时,就会得到一个惩罚项。一般一元势可以简单地计算为
ψu(xi)=-lg(p(xi))
(6)
式中:p(xi)为判别分类器预测的概率,本文3D点的预测概率值来自对应二维像素点通过图像语义分割网络得到的预测概率向量。这种独立输出结果产生的最大后验概率分布(MAP)通常都是有噪声的。
ψp(xi,xj)称为二元势(pairwise potentials)函数,考虑点云上下文之间的关系,计算所有连接点对间的能量特征,惩罚两个具有不同标签的连接点对来约束每个类别的标签一致性,数学表示为
(7)
式中:μ(xi,xj)度量了不同类别之间的兼容性,依据Potts模型μ(xi,xj)=[xi≠xj],只有在标签相同时,二元势能才能传递;k(·,·)是定义在点云特征空间上的高斯核函数;ωm为权重,采用点云位置和深度特征信息,可以表示为
(8)
式中:pi(ui,vi,Zci)包括三维点投影点的深度信息和二维位置信息,上式中前一项为外观核,假设观察到的相近位置的具有相近深度的点云很可能属于同一类,后一项为平滑项,去除小的孤立区域。使用基于CRF分布的平均场变分近似来聚合变量信息进行迭代优化,实现DenseCRF中所有变量的平均场更新,最终得到精细化的点云部件识别结果。
4 仿真实验与分析
4.1 数据集制作
使用语义分割网络对图像进行分割识别二维目标部件需要大量样本,但是航天任务的特殊性难以获取真实空间目标图像。本文使用3DSMax创建卫星模型,将卫星模型部件分为5类,分别为帆板、航天器主体、天线、星箭对接环和喷管。通过搭建虚拟环境来生成卫星数据集,添加平行光源来模拟空间中太阳光照数据集中包括绕飞和逼近两种工况,绕飞工况下卫星和相机相对距离为60 m,逼近工况相机从距卫星100 m处开始绕行并接近。以相同的工况运动控制颜色模型来对各部件进行标注。
数据集中包含卫星模型点云及部件语义标签,40个序列约8 000张图像,每个序列中包含200帧图像,以1 024×1 024的分辨率渲染图像,并对部件掩码进行标注,其中一些图像如图5所示。
4.2 部件识别
在二维图像语义分割实验中,本文采用MobileNetv2模型作为前置网络进行参数初始化,在预训练的基础上进行迁移学习与微调。训练集包含35个序列约7 000张图像,共训练200代(epoch)。使用Adam优化器分两个阶段对图像进行训练,冻结阶段训练50代(epoch),批样本大小为8,初始学习率为1×10-4;解冻阶段共训练150代(epoch),批样本大小为4,初始学习率为1×10-5。二维识别网络训练过程中损失函数随训练次数的变化情况如图6所示,可以看到图像分割网络的收敛情况较好。
图6 训练过程中损失函数变化图Fig.6 Changing of loss function during training
在测试集上采用类别平均像素准确率(Mean pixel accuracy,MPA)作为评价指标对模型进行验证,可以得到如图7所示的结果。从评价指标来看,网络的训练与图像分割效果较好。图8对图像语义分割的结果进行可视化,可以看出不仅大尺寸部件如主体、帆板以及天线等分割较完整且边界清晰,对接环和喷管等小尺寸部件的分割效果也较好,实现了空间目标高分辨率图像各部件的识别与分割。
图7 MPA随训练次数的变化情况Fig.7 Changing of MPA with training times
图8 部件二维识别结果Fig.8 2D recognition results of the satellite components
本文采用SFM&PMVS算法对序列卫星二维图像进行三维重建,获取稠密化的三维点云数据和重建反演位姿,将点云中的一些噪声点和离群点去除掉,完整的三维重建点云如图9所示。
图9 重建点云Fig.9 Reconstruction point cloud
将点云按照反演位姿投影到像素平面,通过最近邻搜索的方式找到与三维点对应的二维点,结合二维图像语义分割结果,可以实现2D-3D的语义传递,对三维点云进行初始语义标记。图10(a)和(b)分别展示了应用DenseCRF对点云语义标记结果进行优化前后的点云各部件识别结果,可以看出优化方法的有效性。从图10(a)可以看出点云部件识别受到图像中目标姿态的影响,若图像中目标部件部分被遮挡,通过投影进行语义传递会出现被遮挡部分点云类别识别结果错误的情况,图像语义分割精度和反演位姿误差对小尺寸部件的点云识别结果影响较大。从图10(b)可以看出使用全连接条件随机场可以优化点云的部件识别结果,改善遮挡造成的点云识别错误以及图像语义分割未识别出的帆板杆部分,但是对于小尺寸部件,在某些角度会由于二维识别不够精确以及反演位姿误差导致投影像素偏移较大从而赋予三维点云语义标签错误,进而导致优化后部件识别效果不明显。
图10 点云语义标记Fig.10 Point cloud semantic labeling
通过点云降维图像进行语义传递的方式为三维点云赋予语义标签受到单个图像目标姿态的影响,本文使用多个姿态下的点云识别结果,选取出现概率最大的标签作为每个点的语义标记结果。图11分别展示了本文方法与利用K-means聚类、BIRCH聚类方法进行点云部件识别的可视化结果,三种方法都识别出了大尺寸部件如帆板、主体、天线等,但是本文方法识别出的部件完整度高于其他两种方法,而且识别出的部件间边界更清晰。通过对比可以发现点云聚类分割方法无法满足小尺寸部件的识别,而本文方法可以识别出喷管和对接环。
图11 点云部件识别结果Fig.11 Point cloud component recognition result
本文通过计算F1分数(F1-score)和准确率(Accuracy)对目标部件识别性能进行定量评价,其中F1分数结合了精确率和召回率,F1分数越高,代表识别方法越稳健,准确率是点云中语义标记正确的点数占总点数的比例。
为了评价本文方法的有效性,不光计算了点云总体的平均F1值和准确率,还对比了目标不同部件的识别准确率和F1值。将两种聚类分割方法所识别出的卫星两侧帆板划为同一类计算这两项指标得到表1中的数据。从表1的结果可以看出来3种方法都识别出帆板、主体和天线等大尺寸部件,识别精度都超过80%,除此之外,本文点云部件识别方法还可以识别出对接环和喷管这类小尺寸部件,但是识别精度略低于大尺寸部件。总体来说,本文方法平均F1值高于90%,总体识别精度也高于95%,与K-means聚类和BRICH聚类方法相比,在目标部件识别上更具有优势,这也证明了本文方法的有效性。
表1 识别性能比较Table 1 Recognition performance comparison
5 结 论
为结合图像目标部件识别的高准确率和点云具有的空间几何位置信息,本文提出了一种融合图像识别结果的空间目标三维点云部件识别方法。该方法通过点云投影建立2D-3D对应关系,将Deep-Labv3+网络输出的二维像素点的语义标签传递给三维点云,使用二维点最近邻搜索来应对由于重建位姿误差导致的语义传递过程中部分三维点语义信息缺失。同时使用全连接条件随机场对点云识别结果进行优化,提高各部件的识别精度,最后融合多视角三维点语义标签得到点云部件识别结果。文中给出的仿真实例说明了该方法的有效性,各个部件的识别精度也优于对比方法,总体识别精度优于95%。