一种基于表示学习的星图识别方法与流程

文档序号:18454493发布日期:2019-08-17 01:29阅读:329来源:国知局
一种基于表示学习的星图识别方法与流程

本发明涉及星图识别的技术领域,具体涉及一种基于表示学习的星图识别方法。



背景技术:

导航系统的功能有定姿定位以及测速等,是飞行器不可或缺的重要组成部分之一。星敏感器是导航系统中的重要器件,它可以在没有先验知识的前提下确定飞行器的三轴姿态,而且定姿精度极高,因此被广泛运用于各类飞行器如飞机、火箭和卫星当中。星敏感器有两种工作模式:初始姿态捕获模式和跟踪模式。大部分时间星敏感器工作在跟踪模式下,一旦姿态丢失,星敏感器需要进行全天星图识别来获取当前飞行器姿态。星图识别算法致力于寻找观测星以及星库中星的关系,算法主要分为两大范畴:子图同构类算法和模式匹配类算法。

子图同构类算法借鉴了图理论的相关知识:星点被认为是图的顶点,星间角距被认为是两颗星之间的边的权重。星库中的星可以建立一副完全图,而观测到的星则对应一幅子图。因此识别问题可以归约为在完全图中寻找最佳匹配的子图。三角形算法是最为经典且广泛使用的子图同构类算法,该算法利用三颗星与它们彼此之间的角距构成三角形特征,算法虽然在星数目较少甚至只有三颗星的情况下也能取得较好的识别效果,但是由于从星表创建的三角形特征数目过于庞大,因此搜索和匹配相当耗时,算法效率低下。模式类星图识别算法对于每一颗导航星都创建一个独特的模式,主星的模式往往包含着其邻星的信息。对于模式的识别过程就是在预先创建的所有模式中搜索匹配最相近的模式的过程。最具有代表性的模式类算法是由padgett提出的栅格算法,该算法对位置噪声有着良好的抵抗力,但是一旦确定栅格方向的最近邻星缺失或被误识别,整个创建的模式将完全错误。

伴随着人工智能的热潮,神经网络和一些更为高级的算法如遗传算法等被引入星图识别算法中,但由于这些方法并没有构建出足够鲁棒的模式,且算法与网络结构复杂,因此识别率和识别时间都不尽人意。因此,本发明提出了一种结构简单但高效、基于表示学习的星图识别网络rpnet,rpnet利用一个星模式生成器来生成导航星的星模式,然后利用一个星模式识别器来进行识别,最后利用权重搜索策略来提高识别率。通过从海量数据中学习产生的星模式,对于位置噪声、星等噪声以及假星等都有良好的鲁棒性。在平均性能上,rpnet超过了上述模式类和人工智能类算法。同时,在时间复杂度上本算法也远低于其他搜索匹配类算法,在真实星图上的表现也相当优异。



技术实现要素:

本发明提出的一种基于表示学习的星图识别方法,主要是解决以下几部分问题:

(1)针对位置噪声和星等噪声等,传统的星图识别算法普遍存在识别时间长且识别率不高,鲁棒性差等特点。

(2)传统的星图识别算法无法同时满足高精度和高效率的要求,三角形算法识别率高但是识别时间长,栅格算法识别速度快但是识别率不尽人意。

(3)传统的算法对于假星和缺失星的鲁棒性比较差,无法应对这些复杂的噪声情况。

(4)传统的算法没法利用fpga的并行性,因此姿态更新率受到限制。

本发明采用的技术方案为:一种基于表示学习的星图识别方法,该方法包括如下步骤:

步骤(1)对原始星库进行筛选,得到可供rpnet网络识别的导航星;

步骤(2)根据导航星及其邻星的分布特点,构建网络的初始输入;

步骤(3)构建端对端的、基于表述学习的神经网络模型rpnet,用于快速高效且鲁棒性强的全天星图识别任务,其中rpnet从海量随机仿真的星图样本里学习到每颗星独特的星模式r-pattern,随后再对这些星模式进行分类,rpnet主要分两部分组成:1)基于星模式生成网络的星模式生成器,产生样本的特征星模式r-pattern;2)对前端产生的特征星模式r-pattern进行分类的星模式分类器;

步骤(4)利用权重搜索验证算法对rpnet网络识别出来的导航星主星进行筛选和验证;

步骤(5)输入实际星图,输出识别结果。

其中,构建rpnet网络输入的方法,是依据导航星与邻星以及导航星邻星之间的分布关系,选取m颗模式半径内离导航星最近的邻星,分别计算导航星与这m颗邻星的角距和m颗邻星之间的两两角距,拼接成表示导航星初始输入特征的一维向量,再经过离散化处理,作为rpnet的初始输入。

其中,星图识别网络rpnet,是由模式生成器和模式分类器组成,模式生成器由模式生成网络的编码部分构成,模式分类器由典型的前向传播神经网络组成,模式生成网络由去噪自编码器改进得到,三点改进分别为:(1)模式生成网络采用了了一种新的加噪方式,相比于传统的去噪自编码器在离散化后的输入上添加噪声,我们选择在原始仿真星图上添加噪声,进而构建离散化的噪声输入;(2)模式生成网络在传统编码器解码器仅有一层全连接层的结构上,再添加一层全连接层,形成了了两层的编码——解码结构;(3)模式生成网络采用稀疏编码的原则,将输入映射到高维特征空间,而非传统去噪自编码器对输入的降维处理。

其中,对于模式生成网络和模式分类网络分为两阶段进行。在训练好模式生成网络后,在根据其生成的模式和模式样本标签,训练模式分类网络。

其中,权重验证方法,是结合rpnet输出概率以及主星离图像中心距离远近不同的特点,对于每一幅星图,选取三颗离像面中心最近的主星构成rpnet的初始输入进行识别,对于选取的每一颗主星,rpnet输出其可能属于nsao星库中每颗星的概率,选取三颗概率最大的星作为该导航星的候选星,分别赋予每颗候选星位置权重和概率权重,计算在视场范围内的候选星对,通过选取权重得分最大的候选星对,筛选出置信率较高的导航星,从而整体提升了星图识别的准确率。

本发明与现有技术相比,其优点和有益效果是:

(1)对于星点的微小形变以及偏移非常鲁棒,而且星等噪声基本不影响其识别率。

(2)算法理论上的运行速度很快,其时间复杂度仅为o(1),而空间复杂度也不多于其他算法。

(3)网络结构简单,在pc上训练完成后,容易迁移到嵌入式平台如fpga或dsp上实现。

附图说明

图1为本发明一种基于表示学习的星图识别方法原理框图。

图2为rpnet原始输入的构建方式,其中,图2(a)为在以(αs,βs,φs)为视轴指向下星敏感器观测到的s及其邻星,图2(b)为将s和其邻星投影到相面坐标系上,图2(c)为计算s和选定的m颗星的角距以及m颗星之间两两的角距,图2(d)为离散化示意图(其中为方便描述,选取的参数为ρ=6°,e=0.5°,m=4)。

图3为rpnet网络结构。

图4为对关于s的仿真星图添加各种噪声,其中,图4(a)为向仿真星图添加位置噪声。图4(b)为向仿真星图添加星等噪声,图4(c)为向仿真星图添加缺失星噪声,图4(d)为向仿真星图添加假星噪声。

图5为rpnet训练框图。

图6为星模式生成网络结构及训练方式。

图7为权重搜索算法示意图。

图8为一幅真实星图的识别结果。

图9为本发明一种基于表示学习的星图识别方法对于不同位置噪声的识别率。

图10为本发明一种基于表示学习的星图识别方法对于不同星等噪声的识别率。

图11为本发明一种基于表示学习的星图识别方法对于不同假星占比的识别率。

图12为本发明一种基于表示学习的星图识别方法对于不同缺失星的表现。

具体实施方式

下面结合附图以及具体实施方式进一步说明本发明。

本发明提出了一种端对端的、基于表述学习的神经网络模型rpnet,用于快速高效且鲁棒性强的全天星图识别任务。rpnet从海量随机仿真的星图样本里学习到每颗星独特的星模式r-pattern,随后再对这些星模式进行分类。rpnet主要分两部分组成:(1)基于星模式生成网络的星模式生成器,产生样本的特征星模式r-pattern。(2)对前端产生的特征星模式r-pattern进行分类的星模式分类器。本发明还提出了一种权重搜索验证算法,用于对rpnet网络识别出来的导航星主星进行筛选和验证,进一步大大提高了该算法对单幅星图的识别能力。如图1展示了整个算法的流程图。

对于星图识别而言,星库的规模直接影响着识别的快速性和准确性。因此需要对原始星库进行筛选,得到可供rpnet网络识别的导航星。我们选用了史密斯星表,将可探测极限星等设为6等星,删除一些较密集的星区,保留角距过近的双星之一,并最终只保留星的赤经赤纬以及亮度等基本信息。经过以上筛选过程后,得到总计5045颗导航星,将这5045颗导航星重新编号为0~5044,该5045颗导航星构成导航星库nsao。rpnet利用模式生成网络通过训练产生模式,虽然无需人为精确地设计模式,但是仍需要输入蕴含足够的信息,模式生成网络才能生成良好的特征模式。因此如何通过导航星及其模式半径内的邻星的信息来建立网络输入至关重要。

考虑到实际情况下各种噪声都是从图像层面上产生,因此选择将导航星及其邻星的信息从天球坐标系转到星敏感器图像坐标系。假定选定的导航星s其赤经赤纬为(αs,βs),令星敏感器的视轴指向为(αs,βs,φs),φs为滚转角,滚转角不改变s和其邻星的相对位置关系,因此可以设定为范围[-2π,2π]内的任意值。对于另一颗赤经赤纬为(αn,βn)的星n,其在感光面上的成像过程可由如下公式表示:

其中,s为不为0的比例因子,(xn,yn)为像点位置,f为光学系统焦距,(u0,v0)为主点坐标,a11~a33为天球坐标系到星敏感器坐标系的转换矩阵。由此s和n的角距dsn可通过以下式子由相面坐标计算而来:

当dsn在s的模式半径ρ范围内时,即认为星n为导航星s的邻星。在得到了s所有的邻星后,可由如下步骤构建rpnet的初始输入:

1.以选定导航星s的赤经赤纬以及任意滚转角为星敏感器的视轴指向,将s及其周围的星投影到相面,计算s和其他星的星间角距。选取模式半径ρ范围内的星作为s的邻星。

2.选取模式半径内距离s最近的m颗邻星,若模式半径内不足m颗邻星,则选取全部的邻星。这些所选取的邻星与s的角距记为向量dsn。两两计算所选取邻星之间的角距,记为向量dnn。

3.对dsn和dnn进行离散化,离散化因子分别为e和2e,对应dsn和dnn之间的最大角距分别为ρ和2ρ。由此得到的两个离散化向量dsn和dnn维度都为对于dsn中角距为d1的元素和dnn中角距为d2的元素,其离散化过程为:

id1=d1/e,dsn[id1]=dsn[id1]+1

id2=d2/2e,dnn[id2]=dnn[id2]+1

4.将dsn和dnn拼接起来,构成的一维向量即为rpnet的输入。

rpnet网络主要由两部分构成:前端是一个基于模式生成网络的星模式生成器,紧随其后的是一个由前向神经网络构成的星模式分类网络。对于某一颗导航星s产生的初始输入sori,星模式生成器对该初始输入进行编码,产生一个专属于导航星s的特征模式rps,随后星模式识别网路对该特征模式进行分类,得到s分属星表里每颗星的概率。整个网络的结构如图3所示。

网络各部分的结构如下:

星模式生成器:星模式生成器由两层全连接层和一层激活函数层组成,该网络属于模式生成网络的编码器部分,在训练好模式生成网络后,其编码器部分能编码出输入的特征模式向量,将输入的维向量映射到n维空间上的模式向量rps,生成的高区分度模式保证了后续星模式分类网络的简洁性。

星模式分类网络:该网络基于典型前向传播神经网络,在此基础上加入了批标准化层,进一步提升了网络的鲁棒性能。用于分类星模式生成网络产生的星模式。

具体的网络层次结构如下表格1:

表格1rpnet网络各层结构

经过softmax的标准化,rpnet网络的输出是一个概率分布:

其中,k代表星库的规模,输出的概率pj代表该样本来自于nsao星库中第j颗星的概率,满足

无论是模式生成网络还是模式分类网络,都需要从足够的样本中,通过训练完成学习。模式生成网络的训练需要干净样本和噪声样本,而模式分类网络的训练需要训练好的模式生成网络生成的模式以及对应的样本标签。

对于某导航星s,依据前文所述的方式产生不含噪声的仿真星图i,其对应的干净样本可以直接由输入构建方式得到。对于模式生成网络而言,噪声样本的类别和数量决定了网络产生特征模式的性能。理论上无限的各式噪声样本可将编码精度提升至任意高,然而现实中由于硬件条件和性能的限制,仿真以及用于训练的样本数终究有限,因此选择的噪声类别和产生的噪声样本数量均有限。噪声样本通过向i添加各类别噪声得到,具体的噪声类别和添加方式如图4。

具体的噪声样本构建如下:

位置噪声:位置噪声对应星点在图像中的偏移。对于仿真星图i里除s之外所有的星,其x坐标和y坐标添加均值为0,标准差分别为σx和σy的高斯噪声,即:

由于仿真星图i是对称的,因此令σx=σy。噪声标准差的范围取在0.2个像素到1.6个像素,步长为0.2像素,对于每一个强度的噪声,产生10个对应的噪声样本。因此共产生80个关于s的位置噪声样本。

星等噪声:星等噪声引起图像中星的亮度发生变化,对于探测器极限星等附近的星,星等噪声可能会引起较暗的星更暗导致从视野中消失,也可能令之前无法探测到的星变亮而出现在视野中。因此在仿真时取极限星等7.0mv得到仿真星图i,对i里除s外其他星添加星等噪声后再取探测器的极限星等6.0mv作为阈值,得到s及其模式半径内的邻星。星等噪声服从高斯分布:

mn~n(0,σ2),σ∈[0.323,0.484,0.646,0.807,0.969]

对于每一个强度的星等噪声,产生16个样本,因此共产生80个关于s的星等噪声样本。

缺失星:由于光学系统的成像原因或者电路噪声等,会导致原应存在于图像某位置的星以一定概率随机缺失。本文随机选取仿真星图中除s之外的邻星1~5颗丢弃,总计产生80个关于s的缺失星样本,

假星:假星可能由行星、星际尘埃、背景白噪声甚至飞行器尾焰等形成。假星对于角距类算法影响巨大,但本文提出的算法对假星有较好的抗干扰效果。本文认为假星在相面内是随机均匀分布的,因此本文随机往s的模式半径内添加1~5颗假星,幅度均匀分布在0mv到6mv,总计产生80个假星样本。

对于一颗导航星而言,总共产生320个噪声样本,1个干净样本。nsao星表中总计5045颗导航星,因此噪声样本集合总计有5045×320=1614400条,其对应的标签集合为导航星在nsao星表中的索引值。干净样本集合x共5045条,标签集合对应为y。构成了rpnet的训练数据集。

网络的训练也分为两阶段:第一阶段,通过模式生成网络对噪声样本和干净样本的学习,得到能编码各个样本的模式生成器;第二阶段,将噪声样本送入第一阶段训练好的模式生成器中,得到噪声样本的特征模式r-pattern,随后再用模式分类网络对r-pattern进行分类。训练示意框图如5所示。

模式生成网络基于去噪自编码器,它接受损坏的数据作为输入,并训练来预测原始未被损坏的数据作为输出,其中的一个隐藏层能产生表示输入的编码。其具体结构和训练流程如图6所示。

星模式生成器和星模式解码器都包含两层全连接层,它们的第一层全连接层后都接relu激活函数进行非线性化,在创建rpnet的输入时,选取的算法参数为ρ=6°,e=0.03°,因此网络的输入向量维度为网络各部分的规格参数如下表格2所示:

表格2模式生成网络各层参数

模式生成网络的训练采用mse损失,即最小化干净输入xo和重建输入xr向量差的二阶范数:

l(xo,xr)=||x-xr||2

后端的模式分类网络训练采用10折交叠检验法来选择超参数,随后将所有的样本投入训练,损失函数为交叉熵损失:

其中,yi为样本标签,表示rpnet预测出的样本属于标签yi的概率。rpnet两部分训练的超参数设置如表格3所示:

表格3rpnet网络训练参数

模式类算法对于单幅星图的识别,一般可简化为对于最靠近相面中心的导航星的识别,因为该导航星模式半径内包含的邻星最多,模式构建最为完整。当识别出该导航星后,其模式半径内的邻星也可以轻易识别出。而一旦导航星识别错误,或导致星图识别失败,或需要经过大量的验证来试错,进而重新挑选导航星进行识别。本发明基于神经网络输出概率的特点,挑选出距离相面中心最近的三颗导航星,根据其距离中心位置的远近和候选星概率的大小,进行权重搜索验证,从而使得识别出的导航星的置信率大大提升,进而提升了其模式簇内的邻星的识别率。因此对于单幅星图的识别率和效率都有显著提升。算法示意图如图7所示。

假设当前星图中有三颗星s1,s2和s3距离图像中心c最近,距离远近关系为:

s1c<s2c<s3c

将s1,s2和s3构建的初始输入送入rpnet网络进行预测,网络对于这三颗星都将预测出其属于星库中每颗星的概率,取概率最大的前三颗星为该导航星的候选星,以s1为例,其候选星s11,s12和s13在rpnet网络输出中对应的概率分别为p11,p12和p13,满足以下关系式:

p11>p12>p13>...

分别根据距离由近及远和概率由大及小,赋予候选星位置权重po1,po2和po3以及概率权重pr1,pr2和pr3,两组权重满足:

任取s1,s2和s3中两颗星,再分别任取这两颗星里的候选星sij和skl,i,j,k,l∈{1,2,3}且i≠k,形成的候选星对总计有对。假定候选星sij在星库中的赤经赤纬为(α1,β1),skl在星库中的赤经赤纬为(α2,β2),则两颗星的角距可表示为:

dijkl=arccos[cos(β1)·cos(β2)·cos(α1-α2)+sin(β1)·sin(β2)]

若dijkl大于当前视场的最大角距,则表明该候选星对有误,不予考虑。否则根据如下公式计算该候选星对的得分:

最终通过选取所有合格候选星对的最高得分,来确定两颗最为可信的导航星,以此为基础来进行星图识别。即:

实施例

采用本发明对星图进行识别,能够对一定程度的位置噪声、星等噪声、假星和缺失星等有良好的抵抗力。为了测试验证该发明对于实际星图的处理能力,对从资源三号卫星下载下来的323幅真实星图进行星图上识别,仅仅只有5幅识别错误,原因在于星图中星点整体偏暗,而质星定位算法不够精确,导致很多星点未能提取出。本发明达到了98.45%的识别率。对其中一幅星图的识别结果如图8所示:

为了对比本发明和传统方法在不同噪声情况下的表现,我们在pc上进行了一系列的仿真测试,测试的具体内容如下:

(1)算法在不同位置噪声上的表现。与上述添加位置噪声方法相同,对于均值为0,标准差在0.2到1.6个像素的每一个噪声等级,随机生成了10000副星图作为测试集,算法在该测试集上的表现如图9所示:

很显然当噪声标准差小于1个像素时,rpnet的识别率接近100%,仅有微弱的衰减,作为对比,rpnet的识别率稳定比另外两算法高出1个百分点。这表明rpnet对于微小的形变和偏移具有很强的鲁棒性。当噪声强度继续增加时,联合冗余模式算法识别率开始出现大的滑落,而栅格算法识别率也有所下降,但rpnet算法识别率仍高于这两种算法,在1.6个像素的噪声标准差下,rpnet仍能取得超过94%的识别率。

(2)算法在不同星等噪声上的表现。星等噪声服从均值为0,标准差为σ的高斯分布,对于标准差在0到1之内的每个噪声等级,都产生10000副噪声图像作为测试集。

当星等噪声标准差从0.323个星等增加到0.969个星等,rpnet的识别率仅仅从99.90%下降到98.11%。作为对照,联合冗余模式算法识别率从99.29%下降到86.17%,栅格算法识别率从99.70%下降到90.80%。当噪声程度大于0.5个星等时,上述两种算法识别率下降迅速但rpnet仍能保持较好的识别效果。究其原因在于rpnet无需用到星等信息来生成模式,而另外两种算法在构建模式时或多或少用到亮度信息。

(3)算法对于不同数目假星的表现。假星坐标x和y在像面范围内服从均匀分布,即x~u(0,width),y~u(0,height),假星星等服从0mv到6mv的均匀分布。假星的噪声等级是以假星占比来决定,对于一副随机仿真的无噪声星图,若其中真星的数量为nt假星占比为p,则应添加的假星数目nf可根据如下公式计算:

对于每个不同的假星占比,产生10000副添加假星后的星图作为测试集,各算法的表现如图11所示。

在假星占比较小的时候(<20%)rpnet算法效果最佳,识别率在80%以上。随着假星占比持续增加,栅格算法的性能小优于rpnet网络,但相差不大。当假星占比达到50%时rpnet算法识别率在35%以上,高于另外两种算法。

(4)算法对于不同数目缺失星的表现。缺失星在星图中不如前几种噪声那样普遍,联合冗余模式算法也没有关于缺失星的实验,因此这里仅仅给出rpnet网络对于不同数量缺失星的表现,对于1~5颗缺失星,每个缺失等级仿真10000个噪声样本,rpnet的识别率如图12所示。

星图中星的缺失会引起信息的丢失,模式类算法普遍难以应对星缺失的状况。当缺失星的个数从一个增加到5个时,rpnet的识别率从97.6%下降到81.09%。

缺失星少于等于2颗时rpnet识别率下降稍慢,识别率维持在一个可供接受的范畴,当缺失星多于2颗时,识别率下降较快,算法不再稳定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1