一种基于lpt变换的星图识别方法

文档序号:5972421阅读:230来源:国知局
专利名称:一种基于lpt变换的星图识别方法
技术领域
本发明属于航天技术领域,涉及对星图识别方法的改进。
背景技术
星敏感器是当今航天飞行器中广泛采用的一种高精度、高可靠性的姿态测量部件,其工作原理为CCD(或者CMOS)图像传感器拍摄当前视场范围内的星空图像,图像经信号处理,提取星体在观测视场中的位置(和亮度)信息,并由星图识别算法在导航星表中找到观测星的对应匹配,最后利用这些匹配星对计算出星敏感器的三轴姿态。星图识别算法是星敏感器中的一个核心部分。
现有的星图识别方法可以大致分为两大类基于星对角距的方法(如多边形角距算法,最大匹配组算法,三角形算法等)和基于“星模式”的方法(如栅格算法等)。传统的星图识别方法一般利用角距作为识别特征。这些方法原理简单,易于实现,但是识别率不高,识别时间较长,不能达到实时性的要求。此外,有些方法还需要依赖先验的姿态信息,不能满足自主性的要求。作为第二类方法中的代表,栅格算法是一种比较优秀的方法,它具有较高的识别率,较快的识别速度且导航数据库的容量也很小。但是它也存在一个问题当定位星(构造模式过程中需要找一个临近的星)识别错误的情况下,会生成错误的模式向量而造成识别失败。由于定位星的识别率不高,因此也从一定程度上影响了算法的识别率。

发明内容
本发明的目的是提出一种基于Log-Polar变换的星图识别方法。通过变换可以提取星的特征模式,并利用这个模式进行匹配识别,以期在减少存储容量和提高抗噪声干扰能力方面均获得优异的性能。
本发明的技术方案是一种基于LPT变换的星图识别方法,其特征在于,1、对导航星表中的所有导航星进行LPT变换,其步骤如下
1.1、选择导航星的邻域R,选择任意一个导航星s,以导航星s的方向矢量为星敏感器的视轴指向,将导航星s半径为R邻域内的其他导航星投影到成像平面上,将这样得到的星像作为原始图像,导航星s投影到原始图像的原点,将该原始图像作为该导航星的邻域,将该邻域中的其他导航星作为该导航星的伴星,R=4°~10°;1.2、对该导航星s的所有伴星做LPT变换,即将伴星所在的平面直角坐标系转换成对数半径的极坐标系,设在平面直角坐标系下二值图像表示为f(x,y),则通过LPT变换后在极坐标系下的图像表示为f′(r,θ),LPT变换定义为r=lnx2+y2,]]>θ=tan-1(y/x),式中r为极坐标系下的对数半径的纵坐标,θ为极坐标系下的横坐标(由于星像可以看作是由二维离散点构成,因此星图的LPT变换只需要对伴星所在的像素点进行变换);1.3、确定导航星s的特征向量,设该导航星s所在的原始图像即投影到成像面上所成的图像大小为M×N,LPT变换后的图像大小为m×n,即在θ和r方向上分辨力分别为360°/m和R/n,LPT变换后的二值图像用一个m×n的稀疏矩阵A来表示 i=1,...,m,j=1,...,n将变换后的图像向θ轴投影,得到一个1×m的向量lpt(s)=(a1,a2,...ai,...am),ai(i=1,...,m)定义如下①如果对于任意的j∈(1,...,n),A(i,j)=0,则ai=0;②如果存在j∈(1,...,n),使得A(i,j)=1,则ai等于使得A(i,j)=1的最小的j值,按照以上定义得到的lpt(s)即为经过LPT变换得到的导航星s的特征向量;1.4、按照上面1.1.1至1.1.3的方法对导航星表中的所有导航星进行LPT变换,得到所有导航星的特征向量lpt(s)并存储起来;2、对观测星图中的所有观测星进行LPT变换,其变换方法和导航星的变换方法相同,3、寻找与观测星匹配的导航星,将某观测星的特征模式lpt(t)与导航星表中的导航星的特征模式lpt(s)一一进行比对,找出与该观测星匹配的导航星,导航星表中,观测星t的特征模式lpt(t)与导航星s的特征模式lpt(s)的相似度定义为sim(lpt(s),lpt(t))=maxv=1msame(cs(lpt(s),v),lpt(t)),]]>式中,cs(lpt(s),v)表示将lpt(s)循环左或右移v位,same定义为两个向量中对应非零位相匹配的个数,same值越大,表明对应非零位相匹配的个数越多,两个模式向量越相近,sim(lpt(s),lpt(t)越大,表明lpt(t)和lpt(s)的相似程度越高;若满足下式sim(lpt(s),lpt(t))>ξ,则观测星t和导航星s匹配,其中,ξ为相似度阈值,ξ的取值与观测星邻域伴星的数目nneighbor有关,假设允许误匹配的伴星数目(非零位不匹配)为nwrong,则可取ξ=nneighbor-nwrong,当找到2颗观测星与导航星匹配时,停止寻找;4、验证,利用上面找到的观测星和导航星的匹配计算星敏感器的姿态,进而,根据这个姿态产生一幅模拟的参考星图,用该参考星图与观测星图比较,如果参考星图中的星均能在观测星图中较小的邻域半径内找到对应观测星,即认为参考星图和观测星图一致,则识别正确;否则,重复1.3和1.4的步骤,直到识别正确为止。
本发明的优点是1、将图像识别中的LPT变换引入到星图识别中来,利用LPT变换提取星图的特征,采用字符串编码和字符串匹配的方式实现观测星和导航星模式的快速匹配。
2、导航星模式库的存储空间较少,优于其它识别算法。
3、对星点位置噪声和星等噪声均具有很强的鲁棒性。


图1是LPT变换原理示意图。
图2是对星图进行LPT变换的示意图。
图3是本发明方法中星图识别中的字符串匹配的示意图。
图4是本发明方法所使用的识别算法流程图。
图5是本发明方法在星敏感器的偏航角,俯仰角和滚转角分别为27.50°,-14.18°和17.20°时模拟生成的一幅星图的识别情况。
图6是星点位置噪声对识别的影响。
图7是星等噪声对识别的影响。
具体实施例方式
下面对本发明做进一步详细说明。首先,对Log-Polar变换做简要说明。Schwartz曾经提出,在人类视网膜表面和视觉皮层之间存在一种Log-Polar的映射,对于具有大小、位移、旋转不变性的目标识别重要的作用。Log-Polar变换(Log-Polar Transform,以下简称LPT)是一种将平面直角坐标系转换到对数半径的极坐标系的一种变换,通过映射,将目标的大小、位移和旋转转换为单一的位移变化,使得问题大大简化。LPT变换在运动目标识别、字符识别等很多领域有着广泛的应用。
参见图1,设在平面直角坐标系下二值图像表示为f(x,y),通过LPT变换后在极坐标系下的图像表示为f′(r,θ),LPT变换可以定义为r=lnx2+y2]]>θ=tan-1(y/x)通过LPT变换,原始图像中的旋转变换表现为极坐标系下θ轴方向的循环平移(circular shift),原始图像中的比例变换表现为极坐标系下r轴方向的平移。因此,LPT变换可以用于在图像匹配中提取旋转不变特征和比例不变特征。
观测星图可以看作是天球上某一区域的星图经过旋转而来,星图识别从某种程度上可以理解为利用旋转不变性特征进行图像匹配识别的过程。
图2所示为星图的LPT变换的示意图。图2(a)为导航星表中导航星s邻近的星所构成的星图及其LPT变换(以s为坐标原点)的结果;图2(b)为观测星图以观测星t为坐标原点进行LPT变换的结果。如果观测星和导航星匹配,则观测星图绕t旋转一定角度后应该与2(a)中导航星构成的星图重合,反映在LPT变换后的图像上为在θ轴方向上的循环平移。以导航星(或者观测星)为中心的LPT变换后得到的结果作为导航星(或者观测星)的特征模式。
本发明星图识别方法的步骤如下对导航星表中的所有导航星进行LPT变换,其步骤如下1.1、选择导航星的邻域R,选择任意一个导航星s,以导航星s的方向矢量为星敏感器的视轴指向,将导航星s半径为R邻域内的其他导航星投影到成像平面上,将这样得到的星像作为原始图像,导航星s投影到原始图像的原点,将该原始图像作为该导航星的邻域,将该邻域中的其他导航星作为该导航星的伴星,R=4°~10°。
1.2、对该导航星s的所有伴星做LPT变换,即将伴星所在的平面直角坐标系转换成对数半径的极坐标系,设在平面直角坐标系下二值图像表示为f(x,y),则通过LPT变换后在极坐标系下的图像表示为f′(r,θ),LPT变换定义为r=lnx2+y2,]]>θ=tan-1(y/x),式中r为极坐标系下的对数半径的纵坐标,θ为极坐标系下的横坐标(由于星像可以看作是由二维离散点构成,因此星图的LPT变换只需要对伴星所在的像素点进行变换);1.3、确定导航星s的特征向量,设该导航星s所在的原始图像(投影到成像面上所成的图像)大小为M×N,LPT变换后的图像大小为m×n,即在θ和r方向上分辨力分别为360°/m和R/n,LPT变换后的二值图像用一个m×n的稀疏矩阵A来表示 i=1,...,m,j=1,...,n将变换后的图像向θ轴投影,得到一个1×m的向量lpt(s)=(a1,a2,...ai,...am),ai(i=1,...,m)定义如下①如果对于任意的j∈(1,...,n),A(i,j)=0,则ai=0;②如果存在j∈(1,...,n),使得A(i,j)=1,则ai等于使得A(i,j)=1的最小的j值,按照以上定义得到的lpt(s)即为经过LPT变换得到的导航星s的特征向量。
1.4、按照上面1.1至1.3的方法对导航星表中的所有导航星进行LPT变换,得到所有导航星的特征向量lpt(s)并存储起来。
2、对观测星图中的所有观测星进行LPT变换,其变换方法和导航星的变换方法相同。
3、寻找与观测星匹配的导航星,将某观测星的特征模式lpt(t)与导航星表中的导航星的特征模式lpt(s)一一进行比对,找出与该观测星匹配的导航星,导航星表中,观测星t的特征模式lpt(t)与导航星s的特征模式lpt(s)的相似度定义为sim(lpt(s),lpt(t))=maxv=1msame(cs(lpt(s),v),lpt(t)),]]>式中,cs(lpt(s),v)表示将lpt(s)循环左或右移v位,same定义为两个向量中对应非零位相匹配的个数,same值越大,表明对应非零位相匹配的个数越多,两个模式向量越相近,sim(lpt(s),lpt(t))越大,表明lpt(t)和lpt(s)的相似程度越高。例如,对于m=20的两个导航星和观测星的特征向量
lpt(s)=(0 23 0 0 54 0 10 0 0 0 21 0 0 0 0 0 0 19 0 0)lpt(t)=(10 0 46 0 21 00 12 0 0 0 19 0 0 0 20 0 0 54 0)其相似度为sim(lpt(s),lpt(t))=same(cs(lpt(s),6),lpt(t))=4,表示导航星的特征向量向左循环6位后与观测星的特征向量具有最大的形似度,即非零位相匹配的个数最大为4。
若满足下式sim(lpt(s),lpt(t))>ξ,则观测星t和导航星s匹配,其中,ξ为相似度阈值,ξ的取值与观测星邻域伴星的数目nneighbor有关,假设允许误匹配的伴星数目(非零位不匹配)为nwrong,则可取ξ=nneighbor-nwrong,当找到2颗观测星与导航星匹配时,停止寻找。
4、验证,验证环节的主要作用是①验证识别的正确性,同时筛选出错误的匹配。
②为观测星图中尽可能多的观测星找到其匹配星,这样有利于跟踪识别以及提高姿态计算的精度。
③可以提供粗略的姿态信息。
验证环节的基本思想为如果有两颗星识别正确,利用这两颗星算得的星敏感器的姿态应该是准确的。进而,根据这个姿态产生的一幅模拟的星图(称为参考星图)也应该和原始的观测星图一致(星点的位置对应一致)。如果参考星图中的星均能在观测星图中较小的邻域半径内找到对应观测星,即认为参考星图和观测星图一致,即认为识别正确,算法结束。否则,重复1.3和1.4的步骤,依次挑选排序较低的其它观测星来识别,直到识别正确为止。整个算法流程图如图4所示。
由于导航星和观测星的特征模式都为1×m的向量,其中除了少数的非零位,大多数位均为0,如果直接用来识别,不仅会增加模式向量库的容量,而且还会增加模式搜索匹配的时间。因此,可以对经过LPT变换得到的模式向量进行重新编码,用字符串的形式来表示星的特征模式,不仅可以节约存储空间,也使搜索的速度得以提高。编码的方法为A、在对导航星表中的所有导航星进行LPT变换时,得到导航星s的特征向量lpt(s)以后,对导航星s的特征向量进行重新编码,用字符串的形式来表示星的特征向量,编码方法为首先,将lpt(s)中第一个非零位前所有的零循环左移到向量末尾,使非零位成为1×m向量的首位;然后,重新编码得到导航星的模式字符串str(s),奇数位为lpt(s)中的非零位,偶数位为lpt(s)中相邻非零位之间的零的个数;对导航星表中的所有导航星进行LPT变换,得到所有导航星的模式字符串str(s)并存储起来。如下所示为导航星表中序号为5的导航星经LPT变换后得到的模式向量(m=100),str(s)为编码后的字符串;lpt(s)=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 0 0 0 00 0 53 0 0 0 0 0 0 0 0 0 44 0 0 0 0 0 52 51 0 00 0 0 0 0 54 48 0 0 0 0 0 0 0 0 0 0 31 0 49 0 00 0 0 0 0 0 0 0 0 0 0 0 53 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 29 0 0 0 0 0 0 0)str(s)=(35 65 39 44 5 52 0 51 7 54 0 48 10 31 1 49 14 53 16 29 21)B、在对观测星图中的所有观测星进行LPT变换时,得到观测星的特征向量lpt(t)以后,对观测星t的特征向量lpt(t)进行重新编码,用字符串的形式来表示星的特征向量,编码方法为首先,将lpt(t)中第一个非零位前所有的零循环左移到向量末尾,使非零位成为1×m向量的首位;然后,重新编码得到观测星的模式字符串str(t),其奇数位为lpt(t)中的非零位,偶数位为lpt(t)中相邻非零位之间的零的个数。
考虑到旋转经LPT变换后体现为循环平移的特性,为了方便模式的匹配,可以将导航星的编码后的字符串延长1/2,而观测星的编码字符串保持不变。这样可以使得在匹配过程中无须再进行循环平移操作,只需要平移即可。如上所示导航星表中序号为5的导航星的模式字符串经过延长后的变为str′(s)=(36 6 53 9 44 5 52 0 51 7 54 0 48 10 31 1 49 14 53 16 29 21 36 6 539 44 5 52 0 51 7 54 0)C、字符串匹配,经过LPT变换和字符串编码之后,可以将星的模式看成单词,而整个导航星表中所有导航星的模式字符串的集合看成一本字典,星图识别的过程就是在字典里面查找与之最相近的单词的过程。
设模式字符串为str1×m,在字典里查找单词实质上是在字典dict={p1,p2,...,pN}中寻找一个模式pi使之与str1×m相匹配。将字典中所有的单词组成一个文本tex1×k,在字典中查找单词可以用字符串匹配问题来描述,即寻找模式字符串str1×m在文本tex1×k中出现的位置。其中,str(i)∈R,i=1,2,...,m,tex(i)∈R,i=1,2,...,k,R表示字符集。一般情况下,k>>m>0。
采用穷尽法字符串匹配的时间复杂度m(k-m-1),即在最坏的情况下(搜索到文本结束)需要进行m(k-m-1)次比较。KMP(Knuth-Morris-Pratt)算法是字符串匹配中常用的一种快速算法。与穷尽法不同的,KMP算法在发现某个字符匹配失败的情况下不是简单的从文本中返回,而是充分利用前面的比较信息。KMP算法可以使字符串匹配的复杂度大大降低,在最坏的情况下只需要进行m+k次比较。
应用于星图识别的字符串匹配算法与一般意义上的字符串匹配算法有所区别,因此不能直接将KMP算法用来进行识别。这些区别主要体现在①两者所用的字符集不同,字符表示的意义不同。普通字符串匹配的各位所表示的意义是等同的,而星图识别中星模式的字符串奇数位字符和偶数位字符表示的意义不同,奇数位字符代表伴星经过LPT变换后在r轴方向上坐标值,偶数位字符代表θ轴方向的间隔。对星图识别而言,字符串匹配实际上是奇数位字符串的匹配。如图3所示,设观测星字符串和导航星字符串以(c1,d1)为起始点匹配,c2i+1和d2i+1匹配必须同时满足c2i+1=d2i+1且c2+c4+…+c2i=d2+d4+…+d2i显然,这里字符串中字符的匹配和一般字符串中字符的匹配定义是不同的。
②星图识别中字符串匹配实际上是一种模糊字符串匹配。这里的“模糊”主要有两方面的含义首先,由于观测星的模式并不完整,特别是在视场边缘的情况下,观测星的模式只有其对应导航星模式的1/4到1/2,再加上星点定位误差以及干扰星的影响,观测星生成模式字符串与其相匹配的导航星模式字符串并不能完全一一对应;其次,由于星点定位误差的存在,不能用精确字符串匹配的原则来对字符的匹配进行定义。因此,为了增加字符串匹配的鲁棒性,需要对上式重新定义在进行所说的星图匹配时,推荐采用模糊字符串匹配方法,其具体方法是在KMP算法的基础上,设观测星的模式字符串为str(t)=c1+c2+…+ci,导航星的模式字符串为str(s)=d1+d2+…+di,
字符匹配的定义为|c2i+1-d2i+1|=1且|(c2+c4+…+c2i)-(d2+d4+…+d2i)|=1本发明在KMP算法的基础上,给出一种适合于星图特征字符串识别的模糊字符串识别方法,它重新定义字符匹配原则。一般的模糊字符串匹配算法需要考虑到字符的删除、插入和替换三种情况,而在星图识别中可以采用一种相对简单的方法。设观测星模式字符串在导航星模式字符串中能对应匹配的字符(奇数位)个数和不能对应匹配的字符个数分别为nmatch和ndismatch,nmatch和ndismatch在匹配过程中不断更新。通过跟踪这两个计数值的状态,以控制识别搜索的流程。设观测星模式字符串在导航星模式字符串中能对应匹配的奇数位字符个数为nmatch,不能对应匹配的字符个数为ndismatch,则字符串匹配的原则是正确匹配如果nmatch大于阈值ξ,则认为找到了正确的匹配,算法成功返回;ξ与组成观测星模式的邻域伴星的个数nneighbor有关。取ξ=nneighbor-2,即允许出现两个字符误识别。
错误匹配当不匹配的字符累计到2个以上,即ndismatch>2,则认为不可能在该位置找到正确的匹配,失败返回,返回的状态由KMP算法构造的失败链接决定。通过这种方式可以尽快的从错误匹配处跳出,从而加快识别的速度。
搜索范围待识别导航星邻域伴星的数目应该在一定范围内,理论上它应该大于和观测星邻域伴星的数目且不能超出太多(在视场边缘观测星的邻域范围为对应导航星邻域范围的1/4到1/2)。设构成导航星模式字符串伴星数目为mneighbor,如果mneighbor<nneighbor-2或者mneighbor>2nneighbor,即忽略该导航星,转而匹配下一颗导航星。这样可以把搜索的导航星限定到一个较小的范围,从而使识别的速度得到提高。
邻域伴星的个数nneighbor越多,观测星被正确识别的概率越高。同时,亮度较高的星更容易被捕捉到,具有更高的可信度。为此,为每颗观测星定义Q=M/nneighbor(M为星等),将观测星按照Q取值排序,具有最小Q值的星优先被挑选进行匹配。
对于观测星图,将挑选出来的观测星进行LPT变化和字符串编码,并用上述字符串匹配的方法进行识别。如果有两颗星找到对应的匹配,则可转入验证环节。
如图5所示为星敏感器偏航角,俯仰角和滚转角分别为27.50°,-14.18°和17.20°时模拟生成的一幅星图的识别情况。表1所示为观测星图中星点的信息。序号为6和7的观测星具有最小的Q值,因此,先对这两颗星进行LPT变换并进行字符串编码,经变换和编码后的模式字符串为str(6)=(26 0 21 27 48 6 44 0 48 7 52 3 41 24 48 25)str(7)=(48 5 55 0 60 17 47 8 24 3 23 2 48 4 52 13)用字符串匹配的方法分别将其与储存的导航星模式字符串进行匹配,实验发现观测星6与导航星表中序号为2869的导航星的模式字符串具有最大的相似度,其相似度为7,观测星7与导航星表中序号为2870的导航星的模式字符串具有最大的相似度,其相似度为7。利用这两个匹配星对进行验证,生成的参考星图中的所有星点和均在观测星图相应邻域找到对应,即参考星图和观测星图一致,因此,认为识别正确。
表1一幅随机生成的星图所包含的星点信息

(表1中记录的分别为观测星图中13颗观测星在的星像中位置、模式半径邻域内伴星数目、星等以及Q值的信息)为了评估本发明方法的性能,采用了模拟的星图进行仿真实验。仿真实验的各项参数如表2所示。实验中其它识别参数的取值为模式半径R=6°,识别过程中LPT变换参数m=100,n=60。仿真实验主要就星点位置噪声和星等(亮度)噪声对识别的影响进行考察。
表2 仿真实验参数

星点的位置噪声主要来源于星点中心细分定位方法的误差。实验中,对于模拟生成的星像,在真实星点位置上加上服从高斯分布,均值为0,标准偏差σ从0到2像素变化的噪声。其识别结果如图6所示。统计结果表明,这种方法对位置噪声具有较强的抗干扰能力,在σ=2像素时,仍然能达到98%以上的识别率。
星等噪声反映了图像传感器对恒星亮度的敏感程度。实验中,在星图模拟过程中,对星等加上服从高斯分布的均值为0,标准偏差从0到1Mv变化的噪声,反映在星图中为星点图像灰度幅值的噪声。同样,随机从全天球取1000幅星图进行识别统计,图7为统计结果。从图中可以看出,从统计可以看出,星等噪声对识别率的影响不大,在噪声标准偏差为1Mv时识别率仍可以达到99%左右,因此可以将亮度误差对识别的影响忽略不计。
本发明方法在Pentium 800M Hz PC机上进行1000次识别平均识别时间为15.7ms,时间开销主要集中在字符串的匹配搜索阶段,在视场内观测星比较多的情况下,识别的运行时间明显增加。在LPT变换中,每个模式字符串的平均长度约为28,以每个字符一个字节计算,3360颗导航星共需要94K字节的存储空间。可见,基于LPT变换的星图识别方法对存储空间的需求是非常小的。
权利要求
1.一种基于LPT(Log-Polar Transform)变换的星图识别方法,其特征在于,1.1、对导航星表中的所有导航星进行LPT变换,其步骤如下1.1.1、选择导航星的邻域R,选择任意一个导航星s,以导航星s的方向矢量为星敏感器的视轴指向,将导航星s半径为R邻域内的其他导航星投影到成像平面上,将这样得到的星像作为原始图像,导航星s投影到原始图像的原点,将该原始图像作为该导航星的邻域,将该邻域中的其他导航星作为该导航星的伴星,R=4°~10°;1.1.2、对该导航星s的所有伴星做LPT变换,即将伴星所在的平面直角坐标系转换成对数半径的极坐标系,设在平面直角坐标系下二值图像表示为f(x,y),则通过LPT变换后在极坐标系下的图像表示为f′(r,θ),LPT变换定义为r=lnx2+y2,]]>θ=tan-1(y/x),式中r为极坐标系下的对数半径的纵坐标,θ为极坐标系下的横坐标(由于星像可以看作是由二维离散点构成,因此星图的LPT变换只需要对伴星所在的像素点进行变换);1.1.3、确定导航星s的特征向量,设该导航星s所在的原始图像即投影到成像面上所成的图像大小为M×N,LPT变换后的图像大小为m×n,即在θ和r方向上分辨力分别为360°/m和R/n,LPT变换后的二值图像用一个m×n的稀疏矩阵A来表示 将变换后的图像向θ轴投影,得到一个1×m的向量lpt(s)=(a1,a2,...ai,...am),ai(i=1,...,m),定义如下①如果对于任意的j∈(1,...,n),A(i,j)=0,则ai=0;②如果存在j∈(1,...,n),使得A(i,j)=1,则ai等于使得A(i,j)=1的最小的j值,按照以上定义得到的lpt(s)即为经过LPT变换得到的导航星s的特征向量;1.1.4、按照上面1.1.1至1.1.3的方法对导航星表中的所有导航星进行LPT变换,得到所有导航星的特征向量lpt(s)并存储起来;1.2、对观测星图中的所有观测星进行LPT变换,其变换方法和导航星的变换方法相同,1.3、寻找与观测星匹配的导航星,将某观测星的特征模式lpt(t)与导航星表中的导航星的特征模式lpt(s)一一进行比对,找出与该观测星匹配的导航星,导航星表中,观测星t的特征模式lpt(t)与导航星s的特征模式lpt(s)的相似度定义为sim(lpt(s),lpt(t))=maxv=1msame(cs(lpt(s),v),lpt(t)),]]>式中,cs(lpt(s),v)表示将lpt(s)循环左或右移v位,same定义为两个向量中对应非零位相匹配的个数,same值越大,表明对应非零位相匹配的个数越多,两个模式向量越相近,sim(lpt(s),lpt(t))越大,表明lpt(t)和lpt(s)的相似程度越高;若满足下式sim(lpt(s),lpt(t))>ξ,则观测星t和导航星s匹配,其中,ξ为相似度阈值,ξ的取值与观测星邻域伴星的数目nneighbor有关,假设允许误匹配的伴星数目为nwrong,则可取ξ=nneighbor-nwrong,当找到2颗观测星与导航星匹配时,停止寻找;1.4、验证,利用上面找到的观测星和导航星的匹配计算星敏感器的姿态,进而,根据这个姿态产生一幅模拟的参考星图,用该参考星图与观测星图比较,如果参考星图中的星均能在观测星图中较小的邻域半径内找到对应观测星,即认为参考星图和观测星图一致,则识别正确;否则,重复1.3和1.4的步骤,直到识别正确为止。
2.根据权利要求1所述的星图识别方法,其特征在于,2.1、在对导航星表中的所有导航星进行LPT变换时,得到导航星s的特征向量lpt(s)以后,对导航星s的特征向量进行重新编码,用字符串的形式来表示星的特征向量,编码方法为首先,将lpt(s)中第一个非零位前所有的零循环左移到向量末尾,使非零位成为1×m向量的首位;然后,重新编码得到导航星的模式字符串str(s),奇数位为lpt(s)中的非零位,偶数位为lpt(s)中相邻非零位之间的零的个数;对导航星表中的所有导航星进行LPT变换,得到所有导航星的模式字符串str(s)并存储在导航起来;2.2、在对观测星图中的所有观测星进行LPT变换时,得到观测星的特征向量lpt(t)以后,对观测星t的特征向量lpt(t)进行重新编码,用字符串的形式来表示星的特征向量,编码方法为首先,将lpt(t)中第一个非零位前所有的零循环左移到向量末尾,使非零位成为1×m向量的首位;然后,重新编码得到观测星的模式字符串str(t),其奇数位为lpt(t)中的非零位,偶数位为lpt(t)中相邻非零位之间的零的个数;2.3、在所说的星图匹配时,采用模糊字符串匹配方法,其具体方法是在KMP算法的基础上,设观测星的模式字符串为str(t)=c1+c2+…+ci,导航星的模式字符串为str(s)=d1+d2+…+di,将字符匹配重新定义为|c2i+1-d2i+1|=1且|(c2+c4+…+c2i)-(d2+d4+…+d2i)|=1设观测星模式字符串在导航星模式字符串中能对应匹配的奇数位字符个数为nmatch,不能对应匹配的字符个数为ndismatch,则字符串匹配的原则是2.3.1、正确匹配如果nmatch大于阈值ξ,则认为找到了正确的匹配,算法成功返回;2.3.2、错误匹配当不匹配的字符累计到2个以上,即ndismatch>2,则认为不可能在该位置找到正确的匹配,失败返回;2.3.3、搜索范围设构成导航星模式字符串伴星数目为mneighbor,观测星模式字符串伴星数目为nneighbor,如果mneighbor<nneighbor-2或者mneighbor>2nneighbor,即忽略该导航星,转而匹配下一颗导航星。
全文摘要
本发明属于航天技术领域,涉及对星图识别方法的改进。本发明的步骤为1.对导航星表中的所有导航星进行LPT变换,并存储变换后得到的特征模式,2.对观测星图中的所有观测星进行LPT变换,3.寻找与观测星匹配的导航星,4.验证。本发明可实现观测星和导航星模式的快速匹配;占用存储空间少;对星点位置噪声和星等噪声均具有很强的鲁棒性。
文档编号G01C21/24GK1796939SQ200410102588
公开日2006年7月5日 申请日期2004年12月28日 优先权日2004年12月28日
发明者张广军, 魏新国, 江洁 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1