徐俁長,張 揚,葉志龍,謝鳳英,臧云朝,楊 光,袁 洪
(1. 中國科學(xué)院空天信息創(chuàng)新研究院,北京 100094;2. 中國科學(xué)院大學(xué)電子電氣與通信工程學(xué)院,北京 100094;3. 上海交通大學(xué)電子信息與電氣工程學(xué)院,上海 200240;4. 上海航天控制技術(shù)研究所,上海 201109;5. 北京航空航天大學(xué)宇航學(xué)院,北京 100191;6. 哈爾濱工業(yè)大學(xué)空間光學(xué)工程研究中心,哈爾濱 150001)
天文導(dǎo)航是一種自主性強、隱蔽性高、不易受外界干擾且可以提供高精度姿態(tài)信息的自主導(dǎo)航方式[1],廣泛應(yīng)用于衛(wèi)星、飛機及導(dǎo)彈等飛行器,同時也是深空探測領(lǐng)域中一種有效的自主導(dǎo)航方案[2]。星圖識別是天文導(dǎo)航中的關(guān)鍵技術(shù)之一[3],主要完成對觀測星圖中的星點提取及識別,根據(jù)星圖識別確定的星圖坐標(biāo)及其對應(yīng)導(dǎo)航星的天文坐標(biāo)即可得到星敏感器的姿態(tài),因此星圖識別成功率及準(zhǔn)確率將直接影響飛行器導(dǎo)航定位及姿態(tài)確定性能。由于星圖識別算法在天文導(dǎo)航應(yīng)用中發(fā)揮著重要作用,因此得到了學(xué)者的廣泛研究。
目前針對星圖識別的研究主要集中在子圖同構(gòu)和模式識別兩類算法及其改進方面。子圖同構(gòu)類算法是在觀測星圖中選定多顆恒星星點,基于星點幾何分布構(gòu)造匹配特征,并在導(dǎo)航星庫中進行特征匹配實現(xiàn)星圖識別[4]。子圖同構(gòu)類算法中三角形算法[5]最具代表性,該算法的優(yōu)點是可靠性高、工程應(yīng)用廣泛[6],但算法識別特征維度低、計算冗余度高,且識別成功率易受噪聲影響。模式識別類算法是分別構(gòu)造觀測星和導(dǎo)航星的模式向量,并根據(jù)兩者的模式向量匹配結(jié)果完成星圖識別。柵格算法[7]是一種典型的模式識別類算法,通過對星圖劃分柵格,根據(jù)柵格中是否存在星點構(gòu)建特征模式,應(yīng)用模式識別進行導(dǎo)航星匹配。柵格算法相較于三角形算法等子圖同構(gòu)類算法具有存儲空間需求小,運行速度快等優(yōu)勢,但易受鄰域星點分布的影響導(dǎo)致識別率下降甚至誤匹配[8],且主要適用于大視場星敏感器中的星圖識別。近年來對于柵格算法的改進研究不斷深入,錢華明等[9]提出了一種擴充柵格算法并將算法的應(yīng)用推廣至觀測星點數(shù)目少的小視場星敏感器中;為了提高星圖識別的準(zhǔn)確性,錢華明等[10]提出了通過構(gòu)建特征模式的度量函數(shù)來反映柵格算法特征模式的內(nèi)在相似程度,從而減小位置誤差對星圖識別的影響;李立宏等[11]針對柵格算法應(yīng)用時觀測星需求大的問題,提出了主星的概念并減少冗余模式,提高了算法的魯棒性和實時性。
本文聚焦于大視場星圖識別中柵格算法對近鄰星依賴性較強、易受鄰域星點分布影響等問題,提出了在柵格算法的基礎(chǔ)上引入星角距特征對受近鄰星影響的觀測星進行再識別的改進方法,進一步提升算法的星圖識別率,并且由于結(jié)合了柵格算法的高效性和角距特征的可靠性,改進算法具有更佳的綜合性能。
改進柵格算法是一種在原柵格算法的基礎(chǔ)上,通過設(shè)計和應(yīng)用星角距識別模式對柵格識別模式的失效場景進行再識別的方法。
柵格算法是通過對星圖劃分柵格來構(gòu)造主星唯一的模式向量以實現(xiàn)星點的匹配識別,其實現(xiàn)流程包括參考基準(zhǔn)統(tǒng)一、柵格模式構(gòu)建、柵格模式匹配三部分內(nèi)容。
1.1.1 參考基準(zhǔn)統(tǒng)一
由于導(dǎo)航星和觀測星所處的坐標(biāo)基準(zhǔn)不同,在使用柵格算法時首先需要進行參考基準(zhǔn)統(tǒng)一,先通過坐標(biāo)轉(zhuǎn)換和投影及平移變換將導(dǎo)航星位置矢量由天球坐標(biāo)系(記為i系)轉(zhuǎn)換到星敏感器成像平面坐標(biāo)系(記為p系)。天球坐標(biāo)系到星敏感器坐標(biāo)系(記為s系)的姿態(tài)轉(zhuǎn)換矩陣Tsi如式(1)所示
(1)
其中,(α0,δ0)為選定作為星敏感器視軸指向的導(dǎo)航星赤經(jīng)、赤緯,且設(shè)定滾轉(zhuǎn)角為0°。星敏感器坐標(biāo)系s系到p系的投影和平移變換如式(2)所示
(2)
式中,(xp,yp)表示p系下的星點坐標(biāo);f表示焦距;a表示像元大小;(Xs,Ys,Zs)表示s系下的星點坐標(biāo);(x0,y0)表示星敏感器成像平面中心點的位置;m×n表示星敏感器成像平面的分辨率。通過計算式(1)和式(2),即可得到由i系轉(zhuǎn)換到p系下的導(dǎo)航星的坐標(biāo)。
1.1.2 柵格模式構(gòu)建
在將導(dǎo)航星和觀測星位置矢量統(tǒng)一到p系后,即可進行觀測星和導(dǎo)航星柵格模式的構(gòu)建,具體構(gòu)建流程如下:
1)以模式構(gòu)建對象為主星,確定主星模式半徑pr(pattern radius)范圍內(nèi)的鄰域星點;
2)將主星及其鄰域星點進行平移,移至主星位于視場中心,根據(jù)緩沖半徑br(buffer radius)確定近鄰星;
3) 以主星為中心,主星和近鄰星連線作為坐標(biāo)軸旋轉(zhuǎn)星圖,至該坐標(biāo)軸與x軸重合;
4)在星圖中劃分g×g柵格,柵格中若存在鄰域星點則記cell(i,j)=1,反之則記cell(i,j)=0,根據(jù)g2個柵格的標(biāo)記構(gòu)造主星的特征模式向量p,具體表示為p=[c1,c2,…,ck,…,cg2-1,cg2],其中ck可由式(3)得到
(3)
其中,(i,j)表示柵格位置坐標(biāo),i∈[1,g],j∈[1,g];ck表示向量p的第k個元素值;k與i,j的關(guān)系式為k=(i-1)×g+j。整個構(gòu)建過程如圖1所示。
(a) 確定主星鄰域星點范圍
1.1.3 柵格模式匹配
在分別構(gòu)建導(dǎo)航星和觀測星模式向量后,即可計算導(dǎo)航星與觀測星的模式匹配結(jié)果,如式(4)所示
(4)
其中,pi表示觀測星模式向量;pj表示導(dǎo)航星模式向量;M(pi,pj)表示一對觀測星與導(dǎo)航星模式匹配結(jié)果。最終匹配結(jié)果是找到各觀測星與導(dǎo)航星特征模式向量按位求與所得結(jié)果的最大值,即確定與觀測星模式最接近的導(dǎo)航星結(jié)果。以觀測星1為例,其最佳匹配導(dǎo)航星計算過程如式(5)所示
M(p1,pm)=max(M(p1,pj)),j=1,2,…,n
(5)
式中,m表示與觀測星1最佳匹配的導(dǎo)航星下標(biāo);n表示導(dǎo)航星數(shù)目總數(shù)。
由1.1節(jié)可知,影響柵格算法性能的關(guān)鍵參數(shù)包括:柵格數(shù)目g、模式半徑pr以及緩沖半徑br。柵格數(shù)目g過小,則易出現(xiàn)多顆恒星位于同一柵格之中,導(dǎo)致模式特征數(shù)量減少;當(dāng)柵格數(shù)目g過大,則無效模式特征維數(shù)增加,從而增加額外的運算時間。模式半徑pr決定了恒星鄰域的范圍,一般為了增加鄰域星點的數(shù)目,選取1~2倍星敏感器視場半徑作為pr的值[10-11]。緩沖半徑br主要用來確定近鄰星的位置,由于觀測星圖中存在噪聲星點,因此易導(dǎo)致觀測星圖和導(dǎo)航星圖中的近鄰星選擇不一致,則兩圖旋轉(zhuǎn)后的星圖不一致,從而造成匹配失敗。
基于上述分析,柵格算法失效主要包括以下三種情況:一是位于星圖邊界的星點,這些觀測星的鄰域星點數(shù)目較少,因此可能由于特征維數(shù)小而導(dǎo)致誤匹配;二是近鄰星選擇錯誤,則導(dǎo)致旋轉(zhuǎn)后的模式結(jié)果與匹配導(dǎo)航星模式結(jié)果不一致使得該星對無法匹配;三是由于柵格劃分不當(dāng)使得多顆鄰域星點位于同一柵格,從而導(dǎo)致特征向量維數(shù)低,與匹配導(dǎo)航星模式不匹配。柵格算法各影響因素與其失效場景的對應(yīng)關(guān)系圖如圖2所示。
圖2 柵格算法影響因素與其失效場景的對應(yīng)關(guān)系圖
上述三種柵格算法失效的情況在模式識別過程中的表現(xiàn)為在遍歷導(dǎo)航星庫后,觀測星的最大特征匹配值相較于正常觀測星的匹配值低。從柵格算法原理可知,觀測星的特征模式圖一般是對應(yīng)匹配導(dǎo)航星特征模式圖的子圖,一顆觀測星的理論最大匹配值應(yīng)與其鄰域星點數(shù)目一致??紤]到實際情況中可能存在缺失星、偽星等影響匹配星點數(shù)目的因素,因此本文將觀測星鄰域星點數(shù)目的1/2作為臨界條件,當(dāng)觀測星的最大特征匹配值大于臨界值則說明匹配成功,反之則認(rèn)為是上述三種匹配失效的情況,需再進一步識別。角距特征按照幾何原理進行匹配,不易受鄰域星點分布、近鄰星位置以及特征維數(shù)的影響,因此將角距特征引入再識別過程,可以有效解決上述三種引起柵格算法失效的問題,接下來介紹星角距模式的特征向量構(gòu)建。
星角距模式是以角距為分量的星點特征模式,其構(gòu)建過程如圖3所示。首先以主星為中心,以模式半徑pr為半徑確定主星的鄰域星點;然后依次將主星和鄰域星點組成星對,計算星對角距值記為d,并依次記錄整理成一維向量v=[d1,d2,…,dn],其中n表示鄰域星點數(shù)目;最后對向量v的元素進行排序得到主星的星角距模式,其模式特征向量的表達式pi為
圖3 星角距模式特征向量構(gòu)建圖
pi=[di1,di2,…,din]
(6)
其中,din表示第i顆主星與第n個鄰星之間的角距。
角距匹配條件如式(7)所示,其中ε表示角距閾值,符合式(7)則認(rèn)為觀測星角距與導(dǎo)航星角距匹配。星角距模式匹配過程則是對星角距模式向量中的匹配角距元素計數(shù),取與觀測星元素匹配數(shù)目最多的導(dǎo)航星作為匹配導(dǎo)航星。
(7)
(8)
其中,si和sj為導(dǎo)航星在天球坐標(biāo)系下的位置矢量,計算公式為
(9)
其中,(α,δ)為導(dǎo)航星的赤經(jīng)、赤緯。
觀測星星對角距計算公式為
(10)
其中,cm和cn為觀測星在星敏感器成像坐標(biāo)系下的方向矢量,計算公式為
(11)
在1.2節(jié)柵格算法性能下降的場景下,引入星角距模式對判定為柵格算法失效的觀測星遍歷匹配。在柵格算法的基礎(chǔ)上進行角距匹配,可以大量減少待匹配觀測星即減少比較匹配過程,在不顯著增加時間消耗的同時提高了算法的識別率,同時可以提高算法的可靠性。
改進的柵格算法以傳統(tǒng)柵格算法為基礎(chǔ),通過對柵格算法失效場景引入星角距模式進行再識別來提高算法的識別率,算法流程如圖4所示。在柵格模式下的星點匹配過程中,遍歷比較各導(dǎo)航星的模式匹配值找到觀測星的最佳匹配結(jié)果,若柵格模式下最佳匹配結(jié)果的最大特征匹配值大于觀測星鄰域星點數(shù)目的一半則視為匹配成功,反之則進入星角距模式進行再識別。在星角距模式下的星點匹配過程中,先將角距模式向量中的角距進行排序,再查找匹配角距,具體過程為將導(dǎo)航星和觀測星的模式向量中的角距作差,若其差值小于角距閾值則認(rèn)為角距匹配成功,最后選擇匹配角距數(shù)目最多的導(dǎo)航星作為匹配結(jié)果。改進柵格算法的結(jié)果由兩部分組成:對于有效的柵格算法保留其匹配結(jié)果,對于判斷為失效的柵格模式下的觀測星將進行角距模式再識別,記錄角距模式下的結(jié)果,兩者共同組成觀測星圖的星點匹配結(jié)果。
圖4 改進柵格算法流程圖
改進的柵格算法綜合了柵格算法的快速性和角距類算法的穩(wěn)定性,同時又規(guī)避了由柵格數(shù)目、近鄰星選擇不當(dāng)?shù)纫饢鸥袼惴ㄕ`識別的問題,提高了算法的識別率。
為了系統(tǒng)評估本文改進柵格算法的性能,分別設(shè)計了改進柵格算法識別效果測試試驗、算法性能對比測試試驗和算法環(huán)境適應(yīng)性測試試驗。其中改進柵格算法的識別效果測試主要是通過開展傳統(tǒng)柵格算法和改進柵格算法的星圖識別試驗并對識別結(jié)果進行對比分析,以檢驗改進柵格算法的有效性和相較于柵格算法的識別能力的提升效果;改進柵格算法性能對比測試是從識別效率、存儲容量和識別率等性能指標(biāo)出發(fā),進行改進柵格算法與三角形算法[5]、徑向模式算法[12]、改進的對數(shù)極坐標(biāo)變換(log-polar transformation, LPT)算法[13]以及星輻射模式匹配識別算法[14]等的星圖識別試驗和性能對比分析;算法環(huán)境適應(yīng)性測試是通過在測試星圖中考慮位置噪聲、缺失星和偽星等干擾因素,從識別率的角度分析改進柵格算法的環(huán)境適應(yīng)性及算法魯棒性。
試驗測試星圖采用不同視軸指向下的仿真星圖,其中星圖仿真參數(shù)設(shè)置信息如表1所示,星表選擇第谷2導(dǎo)航星表(Tycho-2)提供的導(dǎo)航星信息。
表1 仿真星圖基本信息
改進前后柵格算法參數(shù)設(shè)置如表2所示。
表2 仿真試驗中算法參數(shù)設(shè)計
3.2.1 改進柵格算法識別效果分析
隨機選取同一張仿真星圖,分別應(yīng)用傳統(tǒng)柵格算法和改進的柵格算法進行星圖識別處理。使用傳統(tǒng)柵格方法得到的鄰域星點分析結(jié)果如圖5所示。其中圖5(a)表示以觀測星鄰域星點數(shù)目的一半作為判斷閾值時輸出的匹配成功的星點數(shù)目,由圖可知該條件可以有效地將柵格算法是否失效的觀測星區(qū)分開,證明了閾值設(shè)置的合理性。圖5(b)表示各觀測星的鄰域星點數(shù)目和使用柵格算法得到的最大匹配值的對應(yīng)關(guān)系,圖中點狀標(biāo)記表示匹配失敗的星點,表明柵格算法失效的觀測星點多為最大匹配值較小且與鄰域星點數(shù)目差異較大的觀測星點。
(a) 判斷條件與匹配結(jié)果關(guān)系圖
改進前后的柵格算法星圖匹配結(jié)果如圖6所示。圖6(a)為傳統(tǒng)柵格算法的匹配結(jié)果,圖6(b)為改進柵格算法的匹配結(jié)果,其中紅色星點表示正確識別結(jié)果,白色星點則表示誤匹配結(jié)果。由圖可知,由于邊界星點在構(gòu)造柵格模式時鄰域星點分布集中在一側(cè),易導(dǎo)致匹配失敗,而這些星點經(jīng)過改進算法中的角距匹配后,在圖6(b)中可全部得到正確匹配。表明采用本文改進的柵格算法有利于邊界星點的識別,增加了星圖中星點正確識別的數(shù)目、擴大了星點正確識別的星圖范圍。
3.2.2 算法性能測試結(jié)果對比
在不考慮環(huán)境干擾的情況下,基于仿真星圖進行改進柵格算法與三角形算法等5種典型星圖識別算法性能對比試驗。其中測試環(huán)境為:硬件平臺性能為(CPU:Intel(R) Core(TM) i5-9300H,8 GB),軟件平臺為MATLAB 2018。識別時間、空間占用及識別率統(tǒng)計結(jié)果如表3所示。對比表中的算法識別率可知,本文提出的改進的柵格算法的識別率可達98.88%,優(yōu)于其他幾種典型星圖識別算法,其中高出原柵格算法7.87%;在識別效率和存儲消耗方面,改進柵格算法由于增加了角距模式構(gòu)建和角距識別環(huán)節(jié),識別時間和空間占用均稍高于原柵格算法,但顯著低于三角形算法。
表3 不同星圖識別算法性能對比
3.2.3 算法環(huán)境適應(yīng)性試驗結(jié)果分析
在仿真星圖的星點上疊加方差為0~0.5像素的位置偏差來模擬位置噪聲,開展考慮位置噪聲干擾下的算法識別率性能測試,識別結(jié)果如圖7所示。由圖可知,在不同位置噪聲的干擾下,改進后的柵格算法識別率保持在95%以上,均顯著高于原柵格算法,且隨著位置噪聲的增加,改進后的柵格算法相較于角距類算法星圖識別率變化幅度更小,說明改進柵格算法抗位置噪聲影響能力更強,魯棒性更佳。
圖7 位置噪聲影響下的星圖識別率
不僅如此,由于星點的位置誤差直接影響著角距的結(jié)果,因此三角形算法等角距類星圖識別算法識別率波動較大,但如柵格算法等模式識別類算法由于是根據(jù)一定角距區(qū)間內(nèi)是否存在星點而構(gòu)建模式特征進行識別,識別率受位置噪聲影響較小。本文改進的柵格算法具有柵格算法的優(yōu)勢,在位置噪聲影響下具有較好的性能結(jié)果,并且還通過角距二次識別提高了算法的識別率。
在仿真星圖中隨機去除1~5個已成功提取出的星點,來模擬缺失星存在的情況,開展考慮缺失星干擾下的算法識別率性能測試,識別率結(jié)果如圖8 所示。由圖可知,改進的柵格算法在存在不同數(shù)目的缺失星條件下識別率變化趨勢平緩,下降率較低,在1~5個缺失星下識別率均可達到95%以上,相較于原始柵格算法及其他算法性能較優(yōu)。
圖8 缺失星影響下的星圖識別率
此外,整體而言,相較于柵格算法,角距類算法受缺失星影響較小。主要是由于缺失星使得柵格算法的模式特征維數(shù)下降,導(dǎo)致誤匹配增加,識別率會隨著缺失星數(shù)量的增加而顯著下降。本文改進的柵格算法由于加入了星角距識別模式,可以充分利用角距類算法的優(yōu)勢對受缺失星影響而匹配失敗的星點進行再匹配,因此算法的魯棒性和識別率均處于較高水平。
在仿真星圖中隨機添加1~5個不存在的星點,來模擬偽星干擾場景下的星圖結(jié)果,開展考慮偽星干擾下的算法識別率性能測試,算法識別結(jié)果如圖9所示。由圖可知,改進的柵格算法在偽星干擾下識別率始終高于原柵格算法和三角形算法,但識別率受偽星數(shù)目增加的影響較大。主要是由于改進的柵格算法結(jié)合了角距類算法和柵格算法的特點,其中偽星會影響角距特征向量構(gòu)建從而影響星點的識別,同時會使得柵格模式向量中不匹配星對的匹配維數(shù)增加從而引起誤匹配。因此改進柵格算法的識別率雖優(yōu)于三角形算法和原柵格算法,但偽星仍然對算法識別率有一定的影響,且在穩(wěn)定性方面略低于徑向模式算法。對于這一問題,在實際應(yīng)用改進柵格算法時,可以在星點提取環(huán)節(jié)中采用多幀對比的方法濾除偽星點[15],以減小偽星對星圖識別算法識別率的影響。
圖9 偽星影響下的星圖識別率
本文提出的結(jié)合角距特征的改進柵格算法,通過引入星角距模式對柵格算法誤匹配的觀測星進行再識別,解決了柵格算法識別率易受觀測星鄰域星點影響的問題,主要結(jié)論如下:
1)改進的柵格算法識別率可達98.88%,相較于傳統(tǒng)柵格算法的識別率提升了7.87%;
2)在考慮位置噪聲、缺失星和偽星等干擾條件下,算法識別率均高于原柵格算法且魯棒性更強,體現(xiàn)出了很好的環(huán)境適應(yīng)性。
下一步將圍繞算法輕量化及高效性等方面進行數(shù)據(jù)處理流程和參數(shù)優(yōu)化設(shè)計,以適應(yīng)航空航天等平臺應(yīng)用的資源約束。