Satellite pose estimation method based on space carving and self-attention
“[{"title":"基于空间雕刻和自注意力机制的卫星姿态估计算法","chapter":"1 引言","content":"随着空间技术的发展,两个航天器之间的空间在轨服务开始受到学术界和工业界的关注[1-3]。在诸如卫星维修、航天器对接、碎片清理等在轨服务中,获取对方航天器相对于己方的姿态是关键的一步。一般而言,空间目标分为合作性和非合作性两类。合作性目标可自主提供自身姿态信息。然而,对于故障卫星和太空碎片等非合作目标而言,其自身无法提供准确的姿态参数,这类目标的姿态只能通过一系列传感器获取。相对于激光雷达的高功耗和立体相机的复杂性,单目相机作为传感器具有轻便、低能耗的特点,非常适用于航天器之间的相对导航场景。因此,如何从单张图像中获取目标的6D(Dimension)姿态是值得深入研究的问题。6D意为6个自由度,包含3个平移自由度和3个旋转自由度。卫星姿态,亦称刚体姿态,是指拍摄图像当前时刻与卫星固连的参考系相对于相机坐标系的旋转和平移。传统的单目姿态算法[4-6]主要依赖从二维图像中手动提取特征,依据特征建立模版匹配,从而估计目标卫星相对于相机所在航天器的姿态。然而,手工提取特征的过程速度慢且鲁棒性差,当图像过曝光或曝光不足时,特征无法被准确提取。目前姿态估计领域的进步主要依赖深度学习算法。这类算法利用神经网络自动提取特征的能力取代传统的图像处理流程。目前,依赖深度神经网络的姿态算法主要分为两类:一阶段算法和二阶段算法。一阶段算法尝试直接从二维图像空间映射到六维姿态空间,属于端到端范式,依靠神经网络的拟合能力完成上述映射的搜索[7-9]。该端到端范式一般有两种形式:分类形式和拟合形式。分类形式将姿态空间离散成一个个小的区间,每个区间用一个类别表示,然后用神经网络预测图中航天器的类别[10-11]。拟合形式则不依赖离散化,而是直接根据输入图像预测一个六维姿态向量[12-13]。一阶段算法虽然流程简单,但普遍精度不高、泛化能力不好,神经网络的优化难度大,网络难以学到有效的特征以表征目标姿态。基于神经网络的两阶段算法首先在图像上定位若干二维关键点,然后利用2D-3D匹配技术寻找目标图像与三维模型的关系,从而计算目标姿态[14-17]。在此类方法中,图像中的关键点充当了姿态估计的中间表示,因此关键点的定位越准确,姿态估计越精确。得益于关键点定位技术的鲁棒性,目前二阶段算法在各个姿态估计数据集上都得到了高于一阶段算法的准确度。但卫星上的关键点分布较分散,关键点之间间距较大,卷积神经网络由于感受野受限,存在关键点定位精度不高的问题。且二阶段算法为了训练关键点的定位模型,往往需要人工标注大量图像的掩膜和关键点的位置标签,因此二阶段算法还存在标注成本高的问题。本文针对卷积神经网络的感受野小、全局建模能力差的问题,基于像素投票网络PVNet进行改进,引入了自注意力机制,提高其全局建模能力,提高了关键点定位的准确度。针对二阶段姿态估计算法需要大量人工标注的问题,提出了一种自动获取图像掩膜和关键点标签的流程,具体是通过空间雕刻重构卫星的点云,将点云重投影到像素平面,得到了关键点的像素坐标和粗略的卫星掩膜,再经过形态学闭操作完善掩膜,避免了人工标注这些信息的过程,提高了算法的实用性。实验结果表明,所提方法在省略了大量标注过程的情况下,取得了更高的姿态估计精度。","result":"介绍了空间技术发展背景下,卫星姿态估计在航天器在轨服务中的重要性。讨论了合作性和非合作性空间目标的姿态获取方法,强调了单目相机在相对导航中的应用优势。指出了传统单目姿态算法的局限性,并概述了深度学习算法在姿态估计领域的应用,包括一阶段和二阶段算法的优缺点。针对现有问题,本文提出了基于像素投票网络PVNet改进的自注意力机制,以增强全局建模能力,提高关键点定位精度。同时,提出了一种自动获取图像掩膜和关键点标签的方法,通过空间雕刻技术重构卫星点云并重投影到像素平面,避免了人工标注,提高了算法的实用性和精度。实验结果验证了所提方法的有效性。","language":"zh"},{"title":"基于空间雕刻和自注意力机制的卫星姿态估计算法","chapter":"2 自动获取图像掩膜","content":"2.1 3D点云重构本文构造卫星的点云代表其三维形状,目标点云用表示。为了构造该点云,从数据集中随机选取张参考图像。鉴于姿态估计数据集都提供了每张图像中的卫星姿态标签,这些姿态标签用表示。然后利用多边形标注工具Labelme[18],手动将参考图像中的卫星轮廓标注出来,图1中用表示这些轮廓。图1点云重构过程Fig.1Point cloud reconstruction为了构造卫星的点云,设该卫星的最小外接球面直径为,首先初始化一团以为长宽高的点云立方体,如图1中的立方体所示,其中。对于每个参考索引,根据姿态参数和相机内参,将投影到图像平面,图1中的虚线代表该投影过程,并设得到的投影区域为,根据单目相机的投影原理,可由式(1)表示: .(1)是在图像平面的投影。由于是初始化的点云立方体,必有部分点投影到了目标轮廓区域内以及部分点投影到轮廓区域外,投影到轮廓区域内的点得以保留,其余点切除。由此产生一个三维掩膜,其数学表示如式(2)所示: ,(2)其中:和是的坐标,如此经过N张图像的雕琢,N张三维掩膜的交集,便构成了卫星较为精细的形状。图1展示了点云雕刻过程,雕刻后的点云如图2(a)所示。图2为训练样本自动生成掩膜Fig.2Pipeline of generating mask for training set2.2 基于点云自动获取掩膜标签之所以对目标卫星进行点云重构,一是后面需要进行关键点的2D和3D匹配,有了点云数据,便拥有了关键点的3D坐标;二是在训练关键点定位网络时,需要关键点的位置标签和掩膜标签,有了目标的点云数据后,便可以根据每张图像的姿态标签将点云重投影到像素平面,由此可自动得到训练集每张图像的掩膜标签和关键点标签,从而省略了大量人工标注的过程。图2展示了如何根据卫星的点云得到数据集中每张图像的掩膜。姿态估计数据集提供了每张图像的姿态标签,利用该信息可将卫星点云投影到每张图像上,得到如图2(b)所示的掩膜。但该掩膜存在空洞,原因在于点云数据并不是一种连续数据,于是利用形态学闭操作修补空洞,得到最终的掩膜如图2(c)所示,其对应的原图如图2(d)所示。可见所提方法准确地得到了训练样本的掩膜标签。","result":"介绍了基于空间雕刻和自注意力机制的卫星姿态估计算法中自动获取图像掩膜的过程。首先,通过3D点云重构卫星的三维形状,利用多边形标注工具Labelme手动标注参考图像中的卫星轮廓,然后根据姿态参数和相机内参将点云投影到图像平面,通过保留投影到轮廓区域内的点来生成三维掩膜。接着,基于点云自动获取掩膜标签,利用姿态标签将点云重投影到像素平面,自动得到训练集每张图像的掩膜标签和关键点标签,省略了人工标注过程。最后,通过形态学闭操作修补掩膜中的空洞,得到准确的训练样本掩膜标签。","language":"zh"},{"title":"基于空间雕刻和自注意力机制的卫星姿态估计算法","chapter":"3 姿态估计算法","content":"本文中估计卫星姿态的算法分为两阶段:第一阶段预测向量场,用于定位目标关键点;第二阶段由关键点计算目标姿态。流程简图如图3所示。图3姿态估计算法流程图Fig.3Flowchart of the pose estimation algorithm首先将输入图像裁剪为大小,输入向量场回归网络,再由向量场投票预测关键点位置,最后使用PnP算法计算得到姿态。3.1 基于自注意力的神经网络本文基于PVNet [15]进行改进。针对卫星上的关键点分散、卷积神经网络的感受野受限问题,引入自注意力机制,增强模型的全局建模能力,提高关键点的定位精度。自注意力机制的核心在于:其扫描序列中的每个元素并通过聚合序列中的信息来更新每个元素。自注意力机制的优势在于全局计算和记忆功能,这使得其相比于卷积算子更适合对全局信息进行建模。本文神经网络结构如图4所示。图4神经网络结构Fig.4Structure of neural network图4中,考虑到卷积算子在提取低阶语义以及收敛速度方面的优越性,本文采用卷积层做为backbone,并设backbone输出的特征图为。根据文献[19],自注意力算子处理的是一维度序列,故在进入自注意力模块前,将特征图变形为,其中。然后将特征图分别映射到query、key和value矩阵: (3)其中,为待学习参数。接下来通过矩阵和矩阵计算注意力矩阵 ,(4)其中,为注意力矩阵,代表了特征图中任意两个特征点之间的相关性。矩阵再点乘矩阵,得到新的特征图,即为融合了全局信息的特征图。上述过程即为自注意力算子,在实践中通常采用多头自注意力算子提取更加丰富的特征。3.2 关键点推断机制由于神经网络为每个像素点均预测一个方向向量,理论上方向向量的交点即为关键点的位置,但图像中属于目标体的像素点往往有数万个,这些像素点的方向向量无法严格相交于一点,于是需要投票机制来决定最终关键点的位置[20]。设关键点数量为,对于任意一个关键点,首先随机选取两个像素点,这两个点对应的方向向量的交点记为候选点。该过程重复次,得到的候选点集合记为,代表可能的位置。接下来为每个候选点赋予权重,该权重由所有正样本投票决定(正样本即为属于目标体的像素点): ,(5)其中:表示所有正样本参与投票,表示在向量场中像素点为第个关键点所预测的方向向量。上述关键点的候选位置及其权重代表了关键点在图像空间中的分布概率。该概率的均值代表该关键点的最终定位,而方差则代表该定位的不确定性。于是,经过投票,第个关键点的定位为: .(6)该定位的不确定性为: .(7)3.3 姿态计算前述内容通过点云重构,获悉了关键点的三维坐标;又通过关键点检测技术,获取了关键点在图像中的二维坐标。于是卫星相对于相机参考系的姿态可通过优化如下马氏距离得到: (8)其中:是透视投影函数,由相机内参决定;是第个关键点的三维坐标;为第个关键点的二维坐标;为二维坐标的方差。为待求的姿态参数,其初始值由EPnP[21]算法初始化。为了优化方程(8),本文对比了梯度下降法和LM算法。相比于后者,前者对学习率较敏感,于是选择LM算法进行方程(8)的优化。3.4 关键点的选取关键点的选取需要依目标卫星的形状而定,选取的关键点最好位于卫星的表面,同时,关键点之间的间距应当尽量分散。考虑到Tango卫星的形状近似于长方体与3根天线的组合,于是本文选取了长方体的8个顶点与3根天线的顶点,共个关键点。图5从多个视角展示了11个关键点的分布。图5选取的11个关键点Fig.5Selected 11 landmarks3.5 损失函数神经网络输出两个分支:语义分割分支和向量场分支,两部分的损失函数分别用和表示。对于向量场的监督,本文使用平滑一范数()[22],损失函数如式(9)所示: ,(9)其中:是关键点个数,表示属于目标体的像素点参与计算,为神经网络预测的方向向量,为方向向量的真值,和分别是两个分量。对于语义分割分支的监督,本文使用二值交叉熵损失(Binary cross entropy): ,(10)其中:是神经网络预测的每个像素点属于前景的概率;为真值,意味该像素属于前景而=0说明该像素属于背景。神经网络总的损失函数由以上两部分损失构成: .(11)","result":"论文提出了一种基于空间雕刻和自注意力机制的卫星姿态估计算法。算法分为两阶段:预测向量场定位关键点,计算目标姿态。使用PVNet改进的神经网络,引入自注意力机制增强全局建模能力。自注意力机制通过聚合序列信息更新元素,适合全局信息建模。神经网络结构包括卷积层作为backbone,自注意力模块处理特征图。关键点推断采用投票机制,通过正样本投票确定关键点位置和不确定性。姿态计算通过优化马氏距离,使用LM算法优化。关键点选取考虑卫星形状,选取长方体顶点和天线顶点。损失函数包括向量场的平滑一范数和语义分割的二值交叉熵损失。","language":"zh"},{"title":"基于空间雕刻和自注意力机制的卫星姿态估计算法","chapter":"4 实验与结果","content":"4.1 数据集简介本文在Spacecraft PosE Estimation Dataset[2](SPEED)上进行实验。SPEED由欧洲航天局和斯坦福大学空间交汇实验室在2019年发布,是关于卫星姿态估计的数据集。其包含关于Tango航天器的12 000张合成图像和300张真实图像,用以估计空间物体的距离和方向。每张图像中包含一个Tango航天器,并给出该目标相对于相机的姿态。随后,为了充分模拟空间环境中复杂多变的光照条件,组织者又发布了SPEED+[23],扩充了样本数量,图像中的光照条件更加多变。数据样例可见图5。4.2 评估指标为了全面分析算法的有效性,本文分别对关键点的定位精度和姿态估计精度进行评估,所用的评估指标分别如下。4.2.1 关键点定位的评估指标PCK指标是关键点定位方面常用的精度指标。PCK定义为关键点被正确定位的比例(Percentage of Correct Keypoints),意为模型检测出来的关键点与其真值之间的归一化距离小于阈值的比例。当阈值为0.5时,产生的指标即为PCK@0.5。4.2.2 姿态估计的评估指标根据文献[2],卫星的姿态误差分为两部分:旋转误差和平移误差,图6展示了目标系和相机系之间的相对位姿。平移误差定义为:图6卫星系与相机系的相对变换Fig.6Transformation between satellite body reference and camera reference ,(12)其中:和分别是目标系和相机系的原点,为算法预测的二者之间的位移,则代表其真值。旋转误差则定义为四元数之间的夹角: .(13)4.3 实验参数和配置环境在点云重构过程中,本文从SPEED数据集[2]中随机选取了张参考图像,并手动标注其多边形分割掩膜,然后初始化一个3D立方体,根据70张图像的姿态标签,分别将该立方体投影到图像平面,只有其投影全部落在内的点才得以保留。经过70张图像的雕刻,得到卫星的点云形状如图2(a)所示。在实验数据方面,SPEED提供了12 000张图像及姿态标签,其中10 000张用于神经网络的训练,2 000张用于实验验证。实验的所有代码都采用Python语言基于深度学习框架Pytorch和图像处理工具OpenCV编写,运行环境为Ubuntu 20.04操作系统,并使用Nvidia 2080 GPU加速。4.4 实验结果4.4.1 消融实验为了证明自注意力机制对关键点定位的有效性,本文与原像素投票网络PVNet[15]进行了消融实验,如图7所示。未引入自注意力机制前,原PVNet的定位精度为88.3%;引入一层自注意力层后,定位精度达到了91.5%,即加入了自注意力模块的神经网络取得了更高的关键点定位精度。此外,为了探究自注意力的层数对模型性能的影响,本文逐层增加自注意力层数。随着层数增加至4层,模型的定位能力逐渐提高并趋于稳定。图7关键点定位精度Fig.7Accuracy of landmark localization4.4.2 与其他方案的对比实验作为对比,本文在SPEED数据集上还试验了其他姿态估计领域的经典算法,性能对比如表1所示。由于一阶段算法没有关键点定位过程,故该指标省略。表1不同算法的性能对比Tab.1Performance comparison of different algorithms通过表1可见,一阶段算法的姿态误差要普遍高于二阶段算法。在二阶段算法中,本文方法也取得了更高的关键点定位精度和更低的姿态误差。之所以本文方法取得了更小的姿态误差,原因在于两方面:一是3D点云重构更为精细,二是关键点的定位更加精确。为了直观地说明本文方法的效果,从SPEED测试集中随机抽取了9张图像,图8展示了模型的语义分割效果和关键点定位效果。图8中绿色区域代表模型预测的掩膜,蓝色点代表模型定位出来的关键点。图8显示所提算法精准地在图中识别了卫星区域,这得益于本文自动化地得到了大量掩膜标签,模型得以充分训练;同时模型准确地检测到关键点位置,这得益于自注意机制带来的全局建模能力。图8还显示,所提方法对目标的尺寸具有较好的鲁棒性。通过优化方程(8),图8中的卫星姿态得以解算,并以卫星坐标轴的形式显示在了图9中。图8随机测试的卫星的分割效果和关键点定位效果Fig.8Randomly selected images with the predicted segmentation of the satellite and the landmarks图9估计图8中的卫星姿态,以卫星本体坐标轴显示。Fig.9Same test images in Fig.8 with the predicted poses shown as the satellite coordinates","result":"在Spacecraft PosE Estimation Dataset(SPEED)上进行实验,评估了基于空间雕刻和自注意力机制的卫星姿态估计算法。SPEED数据集包含12,000张合成图像和300张真实图像,用于估计卫星相对于相机的姿态。评估指标包括关键点定位的PCK指标和姿态估计的旋转误差和平移误差。实验中,从SPEED数据集中选取图像进行点云重构,使用10,000张图像训练神经网络,2,000张用于验证。实验代码基于Pytorch和OpenCV,运行在Ubuntu 20.04操作系统上,使用Nvidia 2080 GPU加速。\n\n消融实验表明,引入自注意力机制后,关键点定位精度从88.3%提高到91.5%,且随着自注意力层数的增加,定位能力逐渐提高并趋于稳定。与其他经典算法相比,本文方法在关键点定位精度和姿态误差方面表现更优。原因在于3D点云重构更精细,关键点定位更精确。实验结果通过图8和图9直观展示了模型的语义分割效果、关键点定位效果以及卫星姿态的解算结果,证明了所提算法在目标尺寸鲁棒性和全局建模能力方面的优势。","language":"zh"},{"title":"基于空间雕刻和自注意力机制的卫星姿态估计算法","chapter":"5 结论","content":"本文聚焦于单目视觉卫星姿态估计,着重改善两个问题:一是传统方法需要人工标注关键点位置和图像的掩膜,针对该问题提出了基于空间雕刻的卫星点云重构方式,再将点云投影到像素平面,可自动化生成图像的掩膜和关键点的2D标签,提高了算法实用性;二是卫星上的关键点分布较分散,卷积神经网络由于感受野受限,存在关键点定位精度低的问题,本文在PVNet的基础上,将自注意力机制引入其中,提高了关键点的定位精度,降低了姿态估计误差。在SPEED数据集上的实验结果表明,相比于原PVNet,本文方法的关键点定位精度提升了4.2%,姿态平移误差降低了17.2%,姿态旋转误差降低了20.7%。由于太空中的光照变化大(背光或逆光)、背景变化大(地球为背景或深空为背景)以及目标的尺寸变化大,因此要求姿态估计算法对上述条件具有鲁棒性。考虑到实验数据SPEED充分模拟了上述太空条件,在此条件下本文依然取得了较高的精度,说明本文方法对卫星的6自由度姿态估计具有实用性。","result":"针对单目视觉卫星姿态估计问题,提出了基于空间雕刻的点云重构和自注意力机制的改进方法。通过自动化生成图像掩膜和2D标签,提高了算法的实用性。引入自注意力机制后,关键点定位精度提升4.2%,姿态误差显著降低。在模拟太空条件下的SPEED数据集上,验证了算法的鲁棒性和实用性。","language":"zh"}]”
LIU Jing-he, LIN Bao-jun. Satellite pose estimation method based on space carving and self-attention[J]. Chinese Journal of Liquid Crystals and Displays, 2023,38(12):1736-1744.
LIU Jing-he, LIN Bao-jun. Satellite pose estimation method based on space carving and self-attention[J]. Chinese Journal of Liquid Crystals and Displays, 2023,38(12):1736-1744. DOI: 10.37188/CJLCD.2023-0080.