基于深度学习的非合作航天器姿态估计

2021-05-18 11:51杨兴昊佘浩平李海超金明春宋建梅
导航定位与授时 2021年3期
关键词:姿态卷积损失

杨兴昊,佘浩平,李海超,金明春,宋建梅

(1.北京理工大学宇航学院,北京 100081;2. 中国空间技术研究院,北京 100086)

0 引言

随着空间技术的发展,空间在轨服务成为保证空间飞行器在复杂空间环境中稳定运行的重要手段[1]。在进行对接、维修等近距离操作时,需要获取空间目标的相对姿态。空间目标可分为合作目标和非合作目标两类。合作目标可以通过无线电进行通信或有合作标记以帮助确定姿态,而非合作目标则不能提供合作信息。近年来,随着低地球轨道失效卫星以及空间碎片的增多[2],非合作目标的姿态估计得到了更广泛的关注。

德国宇航中心的实验服务卫星采用立体摄像机对目标卫星发动机进行成像分析,并采用视觉测量工具解算其相对姿态[3]。王诗强等[4]通过纹理特征提取方法,拟合对接环的参数信息进行相对姿态测量。非合作目标姿态估计一般采用基于模型的算法,将模型线框与目标边缘相匹配[5-7]得出姿态信息,同时该类方法均需通过人为设计几何特征,难以应对复杂的空间背景、光照和遮挡等问题。此外图像除边缘信息外,其他特征信息也能够用于协助姿态估计,而深度学习能够在学习复杂特征的同时忽略背景信息。深度学习在目标识别和目标检测等领域已很成熟,但直到A.Kendall[8]才首次通过迁移学习采用预训练模型共享权重的方式,将任务从目标识别迁移到位姿估计。

深度学习在航天器姿态估计问题中尚未得到广泛应用。深度卷积神经网络不需人工设计即可对输入图像进行特征提取,并将输入图像端到端地映射为姿态数据。E.Charles等[9]采用深度学习的方法,以AlexNet为主干网络,将连续姿态角离散为姿态标签,将回归问题转化为分类问题,对目标航天器进行姿态分类估计。王静等[10]首先采用级联卷积神经网络输出二维图像中的航空器关键点信息,然后采用BP神经网络将关键点信息作为输入求解姿态信息。徐云飞等[11]采用迁移学习的方式,基于共享权重的方法,利用预训练模型初始化模型权重,以残差网络为主干网络同时回归目标航天器的3个姿态角,但测试结果存在离群点。

本文研究了基于深度学习的非合作目标姿态估计方法。采用迁移学习的方式,以AlexNet与ResNet为主干网络,移除网络末端的全连接层,随后并列连接3个全连接层,分别估计目标的俯仰角、偏航角和滚转角。将分类问题与回归问题相结合,以提高姿态估计精度。

1 姿态估计网络

1.1 姿态估计网络设计

姿态估计需要输出精确的数值,因此相对于目标识别而言需要更多的特征信息。相较于采用一个全连接层估计3个姿态角而言,采用3个全连接层分别估计3个姿态角能够更加有效地利用神经网络学习到的特征信息,因此能够在一定程度上提高姿态估计精度。

本文采用的卷积神经网络架构如图1所示,分别选用AlexNet与ResNet为主干网络,移除网络末端的全连接层,随后并列连接3个全连接层,采用Sotfmax函数输出姿态类别。

图1 网络架构

本文选择检测速度较快的AlexNet以及准确率较高的ResNet作为网络主干。移除全连接层后,并列连接3个全连接层,分别估计俯仰角、偏航角和滚转角。采用分类与回归相结合的损失函数进行姿态估计,分类部分确定航天器姿态的基准点,随后将姿态类别转码为姿态角度数值,再通过回归部分微调估计的姿态角度数值。

AlexNet为8层神经网络[12],网络结构如图2所示。网络前5层为卷积层,后3层为全连接层。前2层的卷积层均连接局部响应归一化层与最大池化层,后3层的卷积层依次连接后再连接最大池化层,随后3个全连接层依次连接。激活函数采用ReLU函数,解决了Sigmoid函数在网络较深时的梯度弥散问题。全连接层中采用Dropout,以增强模型的泛化能力。图像输入大小为224×224×3。

图2 AlexNet网络结构

ResNet能够实现超深的网络结构[13],其提出的残差结构解决了网络层数增多带来的梯度爆炸或梯度消失问题。在ResNet网络训练过程中,采用批量归一化以帮助加速训练。残差结构如图3所示。数据输入到卷积层中分为2个分支,第一分支经过卷积层进行卷积运算,再经过激活函数,随后再经过卷积层进行卷积运算;第二分支为恒等映射,即不进行运算。当两分支汇合时进行求和运算后再经过激活函数。

图3 残差结构

1.2 损失函数

3个分支采用独立的损失函数分别估计3个姿态角[14]。损失函数分为两部分:姿态分类部分与姿态回归部分。

姿态分类部分将连续的姿态角以等间隔离散化,采用分类的方式确定姿态回归角度的基准点,将预测角度限定在一定范围内。3个分支的全连接层输出经过Softmax函数输出姿态类别概率,损失函数采用交叉熵损失函数

(1)

(2)

式中,ySoftmax为姿态类别编码;i为姿态类别。随后对姿态类别编码进行解码,得到姿态估计数值

(3)

姿态回归部分对得到的姿态估计数值进行微调,采用均方误差损失函数

(4)

最终的损失函数将姿态分类损失函数与姿态回归损失函数求和,为

(5)

损失函数计算流程如图4所示。网络输出结果经过Softmax函数与姿态分类标签进行交叉熵损失函数运算。将经Softmax运算后的数据进行姿态解码,即将类别数与其相应估计概率相乘后求和,得到姿态回归估计值。对姿态回归估计值与姿态回归标签进行均方误差损失函数运算。单独运算交叉熵损失函数时,验证loss值约为0.5;单独运算均方误差损失函数时,验证loss值约为1.5。由此可知,针对此问题,分类与回归损失函数在同一量级,且考虑到损失函数系数平衡工作量较大,因此交叉熵损失函数与均方误差损失函数系数均设置为1,即总体损失函数为交叉熵损失函数与均方误差损失函数之和。

图4 损失函数计算流程

2 模型训练

2.1 数据集制作

本文角度间隔阈值δ取为6°,估计角度最小值θmin=-30°,估计角度最大值θmax=30°,姿态类别根据分类原则进行划分,详细类别如表1所示。

表1 标签分类区间

利用3DsMax软件制作目标图像数据。以6°为间隔作为姿态类别基准点。训练集俯仰角、偏航角和滚转角范围均为[-30°,30°],共11个离散角度。训练集共1331张图片。标签包括姿态数值标签yr与姿态类别标签yc。姿态数值标签yr为目标的3个姿态角度值。姿态类别标签yc根据姿态数值标签yr所属的姿态类别区间进行标定。

验证集以10°为间隔制作。俯仰角、偏航角和滚转角范围均为[-27°,23°],共6个离散角度。测试集共216张图片。测试集以10°为间隔制作。俯仰角、偏航角和滚转角范围均为[-23°,27°],共6个离散角度。测试集共216张图片。

原图像大小为960×960像素,经过重采样为400×400像素,随后进行中心裁减得到224×224像素的图片,以满足卷积神经网络的输入要求,数据集样本图像如图5所示。

图5 训练样本图像

2.2 网络训练

文献[8]表明采用迁移学习能够提高最终姿态估计精度。因此,本文采用迁移学习的方法,基于共享参数进行迁移学习,通过预训练模型的权重对待训练模型进行初始化,网络末端的全连接层采用随机初始化。本文利用在ImageNet数据集下完成训练的模型作为预训练模型进行训练。

训练采用Pytorch深度学习框架,优化器采用Adam优化器、训练批量为256、初始学习率为0.0001,权重衰减系数为0.001,每迭代50次后学习率下降80%。硬件环境:NVIDIA Tesla P4,显存8G。训练过程如图6所示,其横坐标为迭代次数,纵坐标为loss值,包括3个姿态角的训练loss值与验证loss值。放大展示迭代次数0~40间loss值的变化情况可知,当迭代到30次时loss曲线即趋于平缓。各网络的迭代次数均设置为200次,测试时选取验证集中loss值最小的模型。

图6 训练曲线

3 实验结果分析

实验选择AlexNet与ResNet 这2个主干网络进行训练。AlexNet针对所有层进行训练,并对比移除平均自适应池化函数与保留平均自适应池化函数的影响。ResNet采用对全部层进行训练与浅层固定+高层微调两种方式。实验采用的评价指标包括:1)标准差;2)平均绝对误差:测试样本预测姿态与标注姿态误差绝对值之和的平均值;3)绝对误差分布:统计误差绝对值在0°~0.5°、0.5°~1°、1°~2°和>2°的样本数占总样本数的百分比。

实验结果表明,本文提出的姿态估计方法的标准差均在0.9°以内,平均绝对误差在0.376°~0.746°之间。绝对误差分布主要在0°~0.5°之间,占比39.35%~74.54%;随后是0.5°~1°,占比21.29%~45.83%;1°~2°占比4.17%~28.71%;误差2°以上占比0~4%。可以看出,姿态估计精度较高,具体结果如表2~表4所示。AlexNet移除平均自适应池化函数能够在一定程度上提高姿态估计精度。由于样本数量限制,当网络层数较少时,随着网络层数的增多姿态估计精度上升;当网络层数较多时,随着网络层数的增多姿态估计精度下降,因此ResNet50相较于其他网络精度最高。主干网络选择ResNet50并采用浅层固定+高层微调的方法进行训练时所得精度最高,最优标准差为0.474°,平均绝对误差0.376°。

表2 AlexNet测试结果

表3 ResNet测试结果(全部训练)

表4 ResNet测试结果(浅层固定)

本文提出的姿态估计方法采用了分类与回归相结合的方式进行姿态估计,其姿态估计精度与划分姿态类别区间时所选取的姿态角度间隔阈值δ有关。实验中选取的角度间隔阈值δ=6°,且姿态类别基准点的姿态数值标签位于姿态数值标签区间的中点,因此能够保证误差几乎在[-3°,3°]之内,如图7和图8所示。图7为AlexNet分别移除与保留自适应池化层的误差箱线图,图8分别为ResNet18到ResNet101对全部层进行训练与浅层固定+高层微调时的误差箱线图。进一步地,误差在0°~0.5°之间占比最高,随后是0.5°~1°,误差2°以上占极少数,如图9所示。图9为实验选用的所有网络的绝对误差分布图,图9(a)、图9(b)和图9(c)分别为俯仰角、偏航角和滚转角误差绝对值在0°~0.5°、0.5°~1°、1°~2°、>2°之间的样本分布。另一方面,由于实验数据集样本较小,且与预训练模型所采用数据集相差较大,因此采用浅层固定+高层微调的方式能够取得更好的结果,如图8(b)所示ResNet50浅层固定+高层训练相较于其他网络精度最高。

图7 AlexNet误差分布

随机制作非测试集图像进行姿态测量,结果如图10所示,图10(a)为标签姿态图即标注时的航天器姿态,图10(b)为估计姿态图即网络估计的航天器姿态。该图像标签姿态为:俯仰角2.385°、偏航角25.598°、滚转角-15.074°;估计姿态为:俯仰角4.035°、偏航角24.437°、滚转角-16.501°。

(a)全部训练误差分布

(a)俯仰角误差分布

(a) 标签姿态

实验结果验证了本方法能够取得较高的姿态估计精度,角度误差集中在3°以内也证明了角度误差值与角度间隔阈值δ有关,当角度间隔阈值δ取更小值时能够进一步提高姿态估计精度。本文利用ResNet50网络测量的姿态角平均绝对误差为0.376°~0.431°,优于文献[10] 中对滚转角和偏航角范围在-42°~42°、俯仰角范围在-18°~18°间的航空器进行姿态估计所得到的平均绝对误差0.6°~1.6°;标准差最高精度为0.474°,优于文献[11]中对姿态角范围在-30°~30°间的航天器进行姿态估计所得到的最优标准差0.711°。本算法采用AlexNet网络检测单张图片的平均速度为1.65ms,ResNet50网络检测单张图片的平均速度为6.86ms,不需人工设计特征即可完成对非合作目标的端到端姿态估计。

4 结论

本文针对非合作目标姿态估计问题,提出了一种基于深度学习技术的方案。本文的主要工作与不足为:

1)设计非合作目标姿态估计网络:移除主干网络末端的全连接层,采用三分支网络分别估计姿态角。利用卷积神经网络,不需人工设计特征即可对非合作目标进行端到端的姿态估计,标准差为0.474°,AlexNet平均检测速度为1.65ms、ResNet50平均检测速度为6.86ms。

2)将分类问题与回归问题相结合:姿态分类损失函数确定姿态角基准点,姿态回归损失函数对姿态角精度进行微调。但在总体损失函数中,未平衡两部分的权重。在未来的工作中,将研究姿态分类与姿态回归的不同权重对姿态估计精度的影响。

3)本文仍有不足之处:实验中仅考虑局部姿态下的姿态角估计,且角度间隔阈值较大;仅考虑单一背景下航天器的姿态估计。在未来的研究中,将扩大姿态估计角度范围、减小角度间隔阈值、对复杂地球背景下的航天器进行姿态估计。

猜你喜欢
姿态卷积损失
洪涝造成孟加拉损失25.4万吨大米
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
攀爬的姿态
两败俱伤
另一种姿态
损失
以文青的姿态回归主流——对《后悔无期》的两重解读