发明名称 一种基于有向环的星图识别方法
摘要 本发明提出了一种基于有向环的星图识别方法,该方法选取视场内最亮星作为基准星,通过连接基准星与相邻星构建辐射状星图,采用匹配概率的方法来获取候选基准星匹配组,再以相邻星构建有向环模型,基于整体匹配和最长匹配链原则,选取最优的匹配组作为最终识别结果。与现有技术相比,本发明具有具备星图识别成功率高、识别速度快等优点。本发明所提供的星图识别方法可以在星像点位置误差优于0.1pixel时,保证星图识别成功率达到99%,识别速度达到5~10HZ。
申请公布号 CN103148852B 申请公布日期 2015.08.12
申请号 CN201310064949.3 申请日期 2013.03.01
申请人 国家测绘地理信息局卫星测绘应用中心 发明人 谢俊峰;唐新明;江万寿;高小明;付兴科;赵利平
分类号 G01C21/02(2006.01)I 主分类号 G01C21/02(2006.01)I
代理机构 代理人
主权项 一种基于有向环的星图识别方法,其特征在于,所述方法包括以下步骤:步骤1,预先存储导航星表;其中:所述导航星表包括基本星表和星对角距索引表,所述基本星表包括恒星的星号、星等、赤经、赤纬信息,所述星对角距索引表包括每个星对角距的大小以及与每个所述星对角距对应的两颗恒星在所述基本星表中的星号,在所述星对角距索引表中,按照星对角距的大小升序排列,所述星对角距为任意两颗恒星之间与天球中心的球心角;计算所述星对角距e<sub>ij</sub>的公式(1)为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>e</mi><mi>ij</mi></msub><mo>=</mo><mi>arccos</mi><mfrac><mrow><msub><mi>s</mi><mi>i</mi></msub><mo>&times;</mo><msub><mi>s</mi><mi>j</mi></msub></mrow><mrow><mo>|</mo><msub><mi>s</mi><mi>i</mi></msub><mo>|</mo><mo>&times;</mo><mo>|</mo><msub><mi>s</mi><mi>j</mi></msub><mo>|</mo></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FSB0000138597390000011.GIF" wi="504" he="128" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>s</mi><mi>i</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>cos</mi><msub><mi>a</mi><mi>i</mi></msub><mi>cos</mi><msub><mi>&delta;</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><mi>sin</mi><msub><mi>a</mi><mi>i</mi></msub><mi>cos</mi><msub><mi>&delta;</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><mi>sin</mi><msub><mi>&delta;</mi><mi>i</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FSB0000138597390000012.GIF" wi="479" he="235" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>s</mi><mi>j</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>cos</mi><msub><mi>a</mi><mi>j</mi></msub><mi>cos</mi><msub><mi>&delta;</mi><mi>j</mi></msub></mtd></mtr><mtr><mtd><mi>sin</mi><msub><mi>a</mi><mi>j</mi></msub><mi>cos</mi><msub><mi>&delta;</mi><mi>j</mi></msub></mtd></mtr><mtr><mtd><mi>sin</mi><msub><mi>&delta;</mi><mi>j</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FSB0000138597390000013.GIF" wi="507" he="256" /></maths>其中,s<sub>i</sub>和s<sub>j</sub>分别表示两颗星的单位矢量,星号i和星号j为不相等的正整数,a<sub>i</sub>、a<sub>j</sub>分别为恒星i和恒星j的赤经,δ<sub>i</sub>、δ<sub>j</sub>分别为恒星i和恒星j的赤纬;步骤2,计算并存储每组星对角距的系数;所述步骤2具体包括以下步骤:步骤2.1,对星对角距进行分组;设定x轴上对应的星对角距的数量为N,以L个星对角距为一组,对所述N个星对角距进行分组,如果L能被N整除,则将所述N个星对角距分为m组,其中,m=N/L;如果L不能被N整除,则先将所述N个星对角距按照编号由小到大的顺序、以L个星对角距为一组进行分组,剩余的数量少于L个的星对角距为一组,其中,N,m和L均取正整数;步骤2.2,分组对星对角距与序号的关系进行直线拟合,建立星对角距序号与星对角距之间的线性关系;步骤2.3,存储计算得到的每组星对角距的系数,以用于查找星对角距序号;步骤3,进行星图识别;所述步骤3具体包括下述子步骤:步骤3.1,星图预处理;在由恒星相机摄取的星图上,选择最亮的恒星作为基准星;步骤3.2,构建辐射状星图;在所述星图上,以基准星S为起点,将基准星S与星图上的除基准星S之外的其他恒星分别进行连接,构建成辐射状星图;利用公式(3)计算基准星与所述其他恒星的星对角距,并存储所计算的星对角矩,其中,所述辐射状星图中的每条连接线段均对应一个星对角距;所述公式(3)为:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><msub><mi>e</mi><mi>s</mi></msub><mi>ij</mi></msub><mo>=</mo><mi>arccos</mi><mfrac><mrow><msub><mi>V</mi><mi>si</mi></msub><msub><mi>V</mi><mi>sj</mi></msub></mrow><mrow><mo>|</mo><msub><mi>V</mi><mi>si</mi></msub><mo>|</mo><mo>|</mo><msub><mi>V</mi><mi>sj</mi></msub><mo>|</mo></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FSB0000138597390000021.GIF" wi="573" he="127" /></maths>其中,<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>V</mi><mi>si</mi></msub><mo>=</mo><mfrac><mn>1</mn><msqrt><msubsup><mi>x</mi><mi>i</mi><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mi>i</mi><mn>2</mn></msubsup><mo>+</mo><msup><mi>f</mi><mn>2</mn></msup></msqrt></mfrac><mfenced open='[' close=']'><mtable><mtr><mtd><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><mi>f</mi></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FSB0000138597390000022.GIF" wi="635" he="213" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>V</mi><mi>sj</mi></msub><mo>=</mo><mfrac><mn>1</mn><msqrt><msubsup><mi>x</mi><mi>j</mi><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mi>j</mi><mn>2</mn></msubsup><mo>+</mo><msup><mi>f</mi><mn>2</mn></msup></msqrt></mfrac><mfenced open='[' close=']'><mtable><mtr><mtd><mo>-</mo><msub><mi>x</mi><mi>j</mi></msub></mtd></mtr><mtr><mtd><mo>-</mo><msub><mi>y</mi><mi>j</mi></msub></mtd></mtr><mtr><mtd><mi>f</mi></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FSB0000138597390000023.GIF" wi="644" he="213" /></maths>(x<sub>i</sub>,y<sub>i</sub>)、(x<sub>j</sub>,y<sub>j</sub>)分别为星图上两颗恒星在影像中心坐标系的坐标,以像素为单位;f为恒星相机的主距;V<sub>si</sub>V<sub>sj</sub>分别表示恒星S<sub>i</sub>,S<sub>j</sub>在影像中心坐标系中沿x轴,y轴和光轴三个方向的矢量;步骤3.3,建立有向环;所述步骤3.3具体包括:首先,建立以基准星为原点的新的影像坐标系,所述新的影像坐标系的x’,y’轴平行于原影像中心坐标系的x,y轴;然后将星图上除基准星之外的其他恒星按照与x’轴的夹角依次增大的次序从0开始编号,并建立从编号为0的恒星开始、以该编号为0的恒星结束、首尾相连的有向环;步骤3.4,利用分组直线拟合进行星对角距匹配,并存储候选星号;所述步骤3.4具体包括:按照有向环的顺序,将辐射状星图中的星对角距e<sub>Sij</sub>依次与星对角距索引表中的星对角距求差值,设星对角距阈值为ε<sub>angle</sub>,当该差值小于给定阈值ε<sub>angle</sub>时,则利用分组直线拟合在星对角距索引表中搜索得到两个恒星星号,并将所述两个恒星信号作为一组候选星号来进行存储;步骤3.5,统计所记录的候选恒星星号的重复次数,并将星号重复次数从大到小进行排序,判断是否存在星号重复次数大于星图上恒星数量减一的候选恒星,如果没有则退出星图识别;如果存在,则将该候选恒星作为所述星图上基准星的候选星;然后,继续判断基准星的候选星是否唯一,是则将该唯一的基准星的候选星作为基准星,执行步骤3.6;否则依次取出各个基准星的候选星,按照步骤3.6进行处理;步骤3.6,按照有向环次序,依次取出步骤3.4中所存储的各组星号,取包含与基准星对应的候选导航星星号的星号组,将每个星号组中除基准星星号的其他星号,作为星图上有向环上对应的一个恒星的候选星,最终得到有向环上每个恒星所对应的候选星;步骤3.7,首先获得在步骤3.2中已计算的星图上有向环上相邻两个恒星之间的第一星对角距,然后依次计算该相邻的两个恒星中的一个恒星的候选星与另外一个恒星的候选星之间的第二星对角距,求所述第一星对角距和第二星对角距的差值,当所述差值小于步骤3.4中设定的星对角距阈值ε<sub>angle</sub>时,将所述候选星的候选星号作为与其相对应的所述两个相邻恒星的候选导航星号,对星座图上有向环的所有两两相邻的恒星均进行上述匹配过程,待有向环上所有两两相邻的星对角距匹配完毕后,按照有向环的顺序,将满足匹配条件的相邻候选导航星号两两相连,取星号相连最长的一组作为最后的匹配结果。
地址 100830 北京市海淀区莲花池西路28号