航天器部件的精细分割和稳定跟踪
2023-12-19邵亚东邵远斌武奥迪
邵亚东, 邵远斌, 武奥迪, 万 雪
(1. 中国科学院大学 计算机科学与技术学院,北京 100049;2. 中国科学院大学 航空宇航学院,北京 100049;3. 中国科学院空间应用工程与技术中心,北京 100094;4. 中国科学院太空应用重点实验室,北京 100094)
1 引 言
自从上世纪人类开启探索太空,开发太空,利用太空的征程后,近地空间的航天器数量不断增加。其中有些航天器由于设备老化,或者遭受严重毁损,失去原有作用。这类航天器本身造价不菲,并且占据着珍稀的不可再生的轨道资源。如果对其开展在轨服务[1],通过更换部组件进行在轨延寿或者辅助离轨以释放占据的轨道资源,则将产生巨大的经济价值和战略价值。对于一些在轨任务,如对没有靶标的部件进行操作时,需要首先识别出目标部件的区域,然后跟踪该部件,以完成后续的操作。因此在相关的在轨服务中,精确并连续地识别出相关部件,是任务成功的关键和前提,这也是本文着眼要解决的主要问题。近些年来,基于深度学习的计算机视觉技术获得迅猛的发展,在相关任务上已远远领先传统方法。使用基于深度学习的方法解决本文关注的问题,首先需要一个高精度的航天器部件检测器来获取包含相关部件的区域,然后需要一个稳定的跟踪器在时序帧上进行相关部件的关联。
针对目标检测器,目前的研究主要分为基于目标检测的方法,和基于实例分割的方法。基于目标检测的方法,主要形式是在图像中以一个最小矩形包络标识出相关目标;这种方法对于部件的精细操作,显得较为粗糙。基于实例分割的方法,主要形式是在图像中用不同的实例级像素掩膜表示不同的目标;这种方法和基于目标检测的方法相比精细化程度更高。实例分割方法基本上可以看做是目标检测和语义分割两个任务的合并[2],由于该方法是两个任务的合并,那么根据两个任务的先后顺序便可以将实例分割分为先检测后分割的方法(也称为自上向下的方法),先分割后检测的方法(也称为自下向上的方法),以及同时完成两个任务的方法(也称为直接法)。对于自上向下的方法,主要做法是在检测到的目标区域添加语义分割分支来预测目标的像素掩膜;代表方法有在YOLOv3[3]的基础上发展出来的Poly-YOLO[4],在Faster-RCNN[5]的基础上发展来的Mask RCNN[6]和Cascade Mask RCNN[7]等。自下向上的方法主要采用像素编码然后通过相似度聚类得到实例的思路,比如SGN[8]和SSAP[9]等。直接法目前的技术范式并不统一,有一类方法将图像划分成若干栅格,对落在其中的物体进行类别和掩膜预测,代表方法有在目标检测网络YOLOv1[10]的基础上发展出来的SOLOv1[11]和SOLOv2[12]。根据目前的发展现状,自上向下的方法在精度上基本优于自下向上的方法和直接法,但其依赖于精确的目标检测结果,掩膜分割的细节相对不够精确,速度相对较慢;自下向上的方法容易产生不连续的掩膜,精度较低,往往需要复杂的后处理。为了满足在轨操作的安全性和精确性,仍需对部件实例分割的精度进行提升。
针对目标跟踪器,主要有单目标跟踪和多目标跟踪方法,在研究领域上两者关注的重点不同,比如前者更关注不基于检测的跟踪,主要形式是提前给定一个目标,然后在后续图像上进行跟踪;后者则更多关注基于检测的跟踪,主要是通过检测器给定多个目标,在后续图像上进行跟踪。为了区分航天器上的多个相似部件(比如双翼帆板),本文采用多目标跟踪方法。多目标跟踪算法目前主要存在两类方法,一是基于运动的方法,二是基于形貌的方法。卡尔曼滤波器是大多数基于运动的方法的基础;这类方法中有代表性的SORT[13]算法,其根据线性运动假说对于目标矩形包络建立预测方程进行预测,通过预测结果和检测结果之间的交并比完成目标指派,并将检测结果作为观测信息来更新运动模型,最后迭代预测完成目标跟踪。当帧率较低且存在遮挡时该方法直接使用预测结果来更新运动模型,这会导致累计误差和跟踪失败。相对于SORT 以预测为中心的跟踪思路,OC-SORT[14]提出以观测为中心的跟踪思路,其更依赖高精度的检测结果来进行运动建模,对于遮挡等非线性运动情况更加鲁棒。基于形貌的方法和基于运动的方法相比,主要是在目标指派时,考虑了目标形貌之间的相似性。具有代表性的Deep-SORT[15],Deep-OC-SORT[16],都是在原有方法的基础上添加了对目标区域进行特征编码的重识别网络,借助编码特征的相似性来辅助目标指派。由于目标的形貌具有较强的稳定性,因此通过存储重识别网络对跟踪目标的编码特征,可以有效处理目标跟踪短暂失败或者目标在视野中消失后又出现的情况,减少已有目标被指派为新目标的概率,所以在一定程度上重识别可以保证长时序的稳定跟踪。截止到目前,Deep-OC-SORT 在各个跟踪数据集均取得了领先成绩。不过在轨服务过程中,由于复杂的运动和在轨环境,观测到的待服务航天器会发生明显的形貌变化,这对于依赖形貌信息的算法是不利的。因此仍需要对相关算法的重识别模块进行改进,使其具有更强的形貌区分能力。
综上,本文提出了一种航天器部件分割与跟踪算法,旨在实现在轨服务过程中对目标部件的精确分割和稳定跟踪。具体创新点如下:
第一,在实例分割方法Mask RCNN 的掩膜分支中,添加了一个掩膜优化模块,提高了航天器部件的实例分割精度。
第二,提出了一种考虑时序和部件类别的分层加权五元组损失,在多目标跟踪算法Deep OC SORT 中提升了重识别网络对实例分割网络输出目标的形貌区分能力,从而提高了部件的跟踪成功率。
2 基于掩膜优化的航天器部件实例分割
一般的实例分割网络,得到的分割结果比较粗糙,不利于在轨服务过程中针对相关部件的精细操作。本文使用10 000 张左右的包括主体、帆板和天线三种常见部件的航天器部件数据集(如图1 所示),对精度较优的Mask-RCNN实例分割网络进行训练,实现了对主体、帆板和天线的部件级实例分割;然后在相关实例分割网络的掩膜分支上添加了一个属于CascadePSP[17]网络的掩膜优化模块,对其粗糙的原始掩膜进行优化;最后使用优化后的掩膜作为分割输出结果,以及使用掩膜的最小矩形包络作为输出的检测框(整个方法如图2 中的部件实例分割模块所示)。
图1 部分航天器部件实例分割数据集Fig.1 Part of the spacecraft component instance segmentation dataset
图2 系统总体流程图Fig.2 Overall flow chart of the system
CascadePSP 网络[17]是一个与类别无关的掩膜优化网络,它主要是通过复用三次掩膜优化模块(Refinement Module,简记为RM)来优化分割掩膜;其中掩膜优化模块是一个金字塔网络,其结构如图3 所示,它接受一个原始图像和三个掩膜作为输入,输出三种下采样分辨率的优化掩膜。在每一次的掩膜优化中,CascadePSP 网络首先对上次输出的若干掩膜进行上采样,并利用其替换掉上次作为输入的相关掩膜;然后将新的掩膜集合连同原始图像作为优化模块新的输入进行下一次的级联优化。该网络可以有效提升掩膜分割精度,但是连续三次的优化会导致速度显著下降。由于选用的实例分割网络本身具有一定的精度保障,为了保证一定的时效性,本文只使用了一次掩膜优化模块对初始的部件分割结果进行优化。
图3 掩膜优化模块Fig.3 Mask refinement module
3 基于改进损失训练的重识别网络的航天器部件跟踪
在轨服务过程中,目标的部件形貌变化明显,为了区分不同部件并稳定地获得前后关联的部件,本文使用部件重识别数据集并基于分层加权的五元组损失对重识别网络进行了训练,提高了其对实例分割输出部件的区分能力;之后将训练好的重识别网络嵌入Deep-OC-SORT 框架,提升了相关部件的连续跟踪能力(方法如图2 中的部件跟踪模块所示)。
Quit_trihard[18]损失的主要思想是通过选择多个正例和一个(或若干个)负例,让锚和正例在编码空间内的距离尽可能的小,锚和负例之间的距离尽可能的大,以实现区分的目的。当选择两个正例时和一个难的负例时,其形式化描述如公式(1)所示:
其中:h(x)=max(x,0),g(a)为锚图像在编码空间的编码向量,g(p1)为正例图像1 在编码空间的编码向量,g(p2)为正例图像2 在编码空间的编码向量,g(n1)为不易区分的较难的负例在编码空间的编码向量,这三个样本与锚图像之间的编码距离需满足;α为一正则项,表示负例和锚之间的编码距离应至少大于α,为了方便起见后续实验将该值取作0。
结合航天器部件重识别任务,本文提出的分层加权五元组损失,将正例区分为时序较近的同一部件正例和时序较远的同一部件正例,将负例区分为同类部件负例和不同类部件负例两种,并对不同的正例和负例使用不同的权重;其形式化描述如公式(2)所示,示意如图4。
图4 分层加权五元组损失Fig.4 Hierarchical weighted quintuple loss
其中:η为同类部件负例和锚图像编码距离的权重,μ为时序较远的同一部件正例和锚图像编码距离的权重,两者需大于1,后续实验均取值为2;同时这四个样本与锚图像的之间的编码距离需满足,α和h(x)与其在公式(1)中的含义和取值相同。
使用改进的分层加权五元组损失训练重识别网络,前提是要获得分层级的部件重识别数据集(示意如图5)。具体做法是,首先对章节2 里面提到的数据集中包含航天器部件的图像区域进行剪裁,然后将同一个部件的数据进行聚类,再将同种类部件的数据按照太阳能帆板、主体和天线进行第二次聚类。
本次工程新建八字墙、涵洞与闸井位于老涵洞首端,新建闸井通过新建涵洞与老涵洞相连。新建涵洞为矩形箱涵,闸井两侧做混凝土板护坡,总长度29.2m,护坡混凝土面板采用C20F200现浇混凝土板。建筑工程部分详细概算如表1,得到建筑工程部分总概算91.59万元。
图5 部分部件重识别数据集Fig.5 Part of the component re-identification dataset
在训练过程中,首先选定数据集中一个图像作为锚,接着分别加载和锚属于同一部件的时序不同的图像作为正例,和锚同一类的其他部件图像作为同类负例,和锚不同类的其他部件图像作为异类负例;然后将五幅图像输入重识别网络获得对应维度的编码向量,并在编码空间分别计算锚向量和其他向量的编码距离;最后将相关编码距离代入公式(2)计算损失,并通过梯度反传算法更新网络中的参数。
4 实验结果与分析
实验在Ubuntu18.04 操作系统上进行训练和测试,CPU 使用16 核的Intel(R)Core(TM)i9-9900K@3.60 GHz,显卡使用Nvidia GeForce RTX 2080 Ti,深度学习框架为Pytorch2.0.1。部件实例分割的训练数据在前文中已经进行了介绍;其测试图像是通过Blender 仿真引擎对一个双翼卫星模型进行绕飞和直线迫近得到的,共计400 张,示意图如图6。部件重识别的训练和测试数据由文中方法获得,跟踪算法的测试数据和实例分割的测试数据一致。其中训练数据和测试数据之间不存在数据泄漏,下文的实验结果是通过多次实验求平均得到的。
图6 分割和跟踪测试集示意Fig.6 Schematic representation of segmentation test set and tracking test set
4.1 基于掩膜优化的航天器部件实例分割
为了验证基于掩膜优化的实例分割算法的有效性,我们在目标检测平台mmdetection 下选取了比较经典的Mask RCNN[6],Cacade Mask RCNN[7],SOLOv2[12],YOLACT[19]和 SparseInst[21]网络模型,在航天器部件数据集上进行训练和验证;之后选用最优的模型,添加掩膜优化模块对测试集上置信度大于0.8 的初始分割结果进行优化(太阳能帆板的分割优化示意如图7,主体的分割优化示意如图8)。
图7 太阳能帆板的分割优化示意Fig.7 Segmentation refinement of a solar panel
图8 主体的分割优化示意Fig.8 Segmentation refinement of a main body
在训练时,所有网络模型训练的样本批量大小为2,具体的迭代次数为6 万到27 万不等。各网络的训练损失曲线如图9,从图中可以看出经过相应的迭代次数的训练后各算法基本收敛。
图9 各网络的训练损失曲线Fig.9 Training loss curves for each network
在测试时,具体的实例分割精度采用mmdetection 实现的segm_mAP 指标,速度采用每秒处理帧数(FPS)的指标,相关实验结果如表1 所示。其中segm_mAP 是多个类别的平均精度的平均,结合部件实例分割其具体定义如下:
表1 分割测试集上航天器部件实例分割性能Tab.1 Result of spacecraft component instance segmentation accuracy on segmentation test set
第一步,对于某类部件的平均精度segm_AP,首先选定一系列的掩膜交并比阈值,然后在每个掩膜交并比阈值下把和真值超过掩膜阈值的实例分割结果按置信度进行排序;
第二步,对于每一个排好序的队列,再选定若干置信度阈值,对于每个置信度阈值,把超过交并比阈值和置信度阈值的实例分割结果当做真阳性样本,不满足的和重复出现的以及类别预测错的结果则当做假阳性样本,对于没有预测到的真值则作为假阴性样本;由此可以计算某类部件某交并比阈值下的精度(Precision)和召回率(Recall)曲线下面积(越接近于1越优);
第四步,将每一类的segm_AP 进行平均得到最终的所有部件类的segm_mAP。
表1 中的segm_mAP_50:5:95 指的是掩膜交并比阈值取0.5 到0.95 间隔0.05 的10 个数,segm_mAP_75 指的是掩膜交并比阈值取0.75,segm_mAP_s 则指的是选择那些像素数量小于一定阈值的小目标进行评价。
基于表1 的实验数据,可以看出各个实例分割算法在不添加掩膜优化模块时,Mask RCNN 取得81.80mAP 的最高实例分割精度;在添加掩膜优化模块后各实例分割算法的精度均获得提升,提升幅度在 1.50mAP 至4.10mAP,其中对应的Mask RCNN 方法亦取得了84.90mAP 的最高实例分割精度。在速度上,添加优化模块后,各网络的速度均有明显下降,但总体上各个方法均可以提供1 FPS 以上的运行速度。速度的明显下降是因为计算量的大幅度增加;具体原因包括掩膜优化模块的输入为四张图片(一张原始图像和三张初始掩膜),该模块自身是一个计算量偏高的金字塔网络,并且每一个置信度超过0.8 的部件识别结果都会进行一次优化。从表1 中还可以看出,添加掩膜优化模块后各方法速度的下降程度不同,比如SOLOv2 的速度下降幅度明显小于其他方法。这是由于不同实例分割网络的对结果的置信情况不一致,因而它们对于同一批图像会进行不同次数的优化。
4.2 基于分层加权五元组损失的部件重识别和跟踪
为了验证使用分层加权五元组损失的有效性,分别使用Triplet[23]损失、Quit_Trihard[18]损失、不加权的分层五元组损失以及本文提出的分层加权五元组损失对一个21 层的重识别网络进行训练。所有网络模型训练时,样本的批量大小为32,一共进行了1600 余次的迭代计算。使用各损失函数的网络损失曲线如图10,从图中看出经过相应迭代次数的训练后,网络的损失基本收敛。
图10 使用各损失函数的训练损失曲线Fig.10 Training loss curves using each loss function
在部件重识别测试集上进行测试时,每次加载一个图片作为锚,加载一个相同部件的图片作为正例,加载31 个其他部件的负例,分别计算图像相似度;当正例和锚的相似度高于所有的负例时,认为这一次判别成功,最终统计各方法最优训练结果的识别成功比例作为部件识别成功率(如表2 所示)。
表2 部件识别测试集上的部件识别成功率Tab.2 Component identification success rate on component identification test set
为了进一步验证使用分层加权五元组损失用于多目标跟踪的有效性,分别将以上损失函数训练得到的最优部件重识别网络嵌入Deep-OCSORT 多目标跟踪算法;然后使用精度最优的部件实例分割网络Mask RCNN+RM 提供置信度高于0.9 的检测目标并进行跟踪(短时序的跟踪结果如图11,长时序的跟踪结果如图12);最后统计有关部件被分配至同一ID(Identity)的次数占总共检测结果的比例作为跟踪成功率(如表3所示)。
表3 跟踪测试集上的部件跟踪成功率Tab.3 Component tracking success rate on tracking test set
图11 短时序的部件跟踪结果Fig.11 Component tracking results for short timings
图12 长时序的部件跟踪结果Fig.12 Component tracking results for long timings
根据表2 和表3,可以发现使用分层加权五元组损失训练的部件重识别网络对于相同部件的识别成功率较高;并且使用该重识别网络进行多部件跟踪时,其跟踪成功率也较高。此外,从图11 和图12 可以看出,本文方法除了在短期内可以提供稳定的部件跟踪;在长期跟踪过程中,即使由于极端情况(帆板成为一条线)而导致相应的部件出现跟踪丢失,随着后续观测条件的好转,该算法也可以继续稳定地跟踪。
4.3 系统整体运行速度
根据前文的实验结果,本文选取实例分割精度最优Mask RCNN+RM 作为实例分割方法,将分层加权五元组损失训练的部件重识别网络嵌入Deep OC SORT 进行多部件跟踪,统计在测试数据上各模块及系统整体运行速度如表4所示。
表4 算法运行速度Tab.4 Algorithm running speed
从表4 中可以看出,该系统整体上可以提供大于1 FPS 的运行速度,不过其速度受制于实例分割模块。
5 结 论
针对空间在轨服务过程中航天器部件的精细分割和稳定跟踪问题,本文通过对实例分割网络Mask RCNN 的分割分支添加掩膜优化模块,在测试数据上将部件分割精度提高至84.90 mAP;通过使用区分时序远近正例和同类异类负例的分层加权五元组损失对部件重识别网络进行训练,在测试集上将部件跟踪的成功率提升至89.38%。下一步将通过知识蒸馏方法将掩膜优化模块的功能蒸馏至一个轻量级的实时网络,以实现提高部件分割精度的同时保证较高的运行速度。