段 輝,張志利,周召發(fā),梁 哲,姚鑫玲
(1.火箭軍工程大學(xué)導(dǎo)彈工程學(xué)院,陜西 西安 710025;2.火箭軍工程大學(xué)兵器發(fā)射理論和技術(shù)國家重點學(xué)科實驗室,陜西 西安 710025)
星敏感器是目前精度最高的姿態(tài)敏感器之一,其以距離無窮遠(yuǎn)的恒星為基準(zhǔn),可以獲得角秒級的定姿精度。星點提取作為星敏感器的關(guān)鍵技術(shù)之一,其算法的優(yōu)劣直接影響著星圖識別算法的識別效果。
目前,針對星點質(zhì)心定位,國內(nèi)外學(xué)者主要從誤差產(chǎn)生的機理出發(fā)展開相關(guān)研究。Salomon[1-2]等人基于大量的實測數(shù)據(jù)分析發(fā)現(xiàn),該誤差用正弦函數(shù)擬合時具有較高的擬合優(yōu)度,并基于該特性對誤差進(jìn)行相應(yīng)補償。Stanton[3-5]等人通過理論推導(dǎo)發(fā)現(xiàn)質(zhì)心法改進(jìn)之后,其誤差并不全是高斯白噪聲,仍然存在固定的系統(tǒng)誤差,并通過標(biāo)定降低了該系統(tǒng)誤差的影響。Grossman[6]等人開拓性地引入了高斯模型以描述星點能量分布,并結(jié)合理論分析與仿真實驗定量確定出質(zhì)心定位誤差與恒星星等、拍攝星圖的信噪比等因素之間的關(guān)系。Li[7]等人首次將加權(quán)思想引入到質(zhì)心定位中,并研究了不同強度的加性噪聲和乘性噪聲對加權(quán)質(zhì)心法的影響。Alexander[8]等人摒棄傳統(tǒng)的空域分析方法,轉(zhuǎn)而從頻域的角度進(jìn)行誤差分析與建模,從理論上證明了質(zhì)心定位誤差會隨著星點模糊而降低,但是通過大量實驗發(fā)現(xiàn)當(dāng)模糊區(qū)域超過某一臨界值時,其系統(tǒng)性誤差反而開始增加,對于該現(xiàn)象,其建立的模型無法給出合理的解釋。Fisher[9]等人推導(dǎo)了質(zhì)心定位的系統(tǒng)性誤差與星點彌散區(qū)域范圍之間的理論關(guān)系,實驗表明其所確定的最佳星點彌散區(qū)域具有一定的定位精度,但是該方法對星點能量分布模型等進(jìn)行了較多簡化,無法運用于高精度領(lǐng)域。姜亮[10]等人將傳統(tǒng)的高斯模型替換為Giancarlo模型,并從頻域的角度分析基于Giancarlo模型的誤差傳遞形式。譚迪[11]等人通過對光學(xué)平臺的各項參數(shù)進(jìn)行單獨建模,再結(jié)合大量的數(shù)值仿真實驗,準(zhǔn)確得到了質(zhì)心定位的系統(tǒng)性誤差與光學(xué)平臺的各項參數(shù)之間的定量關(guān)系。曹陽[12]等人指出像素位置偏差也是造成系統(tǒng)性誤差的重要原因之一,并推導(dǎo)了其誤差傳遞模型,實驗表明高精度的標(biāo)定可以基本消除該因素的影響。
在星點提取算法方面,Kim[13]等人基于遍歷整幅星圖的思想,提出了掃描法。但該算法所提取的星點像素數(shù)量會隨著噪聲的增加而快速增加,進(jìn)而導(dǎo)致后續(xù)的星點像素聚類過程十分耗時。Mortari[14]等人提出的矢量法在星圖受到較嚴(yán)重的噪聲污染時,其提取的星數(shù)會迅速達(dá)到預(yù)設(shè)值,而且當(dāng)某行(列)存在多個星點時,整數(shù)矢量只能存儲灰度值最大的那個點。田玉龍[15]等人提出的局部熵法以圖像不同位置的局部熵大小來敏感所尋目標(biāo),在星點所處區(qū)域,其局部熵會由于該區(qū)域的灰度不均勻而發(fā)生突變,最小熵值位置即為恒星星點所處位置。余路偉[16]等人針對星敏感器在軌運行時面臨的復(fù)雜惡劣環(huán)境問題,提出了背景自適應(yīng)預(yù)測算法。該算法以星點區(qū)域與背景區(qū)域的性質(zhì)差異為基準(zhǔn)分配權(quán)值,并提出了一種旋轉(zhuǎn)對稱掩膜以解決雜散光與星點區(qū)域完整性問題。Luo[17]等人提出的灰度交叉投影法的計算量明顯降低,但是當(dāng)不同星點的投影區(qū)域存在重疊時,將會導(dǎo)致星點的鄰接矩形變大,會有更多的獨立噪聲點參與質(zhì)心計算,嚴(yán)重影響星點提取精度。針對上述傳統(tǒng)的星點提取算法的局限性,本文結(jié)合極值分析下的星點彌散區(qū)域粗提取算法與基于位置矩陣的線段編碼標(biāo)記法進(jìn)行星點提取,既能保證較高的星點提取精度,又能滿足工程上對算法的實時性與對噪聲的魯棒性要求。
本文高精度星點提取流程如下:① 針對去噪后的星圖,從投影差分的角度出發(fā),利用所提極值分析下的星點彌散區(qū)域粗提取算法,找出各星點的內(nèi)部所屬像素,進(jìn)而得到星像區(qū)域的概略位置;② 基于位置矩陣的線段編碼標(biāo)記法采用邊掃描邊合并的方式,僅通過一次掃描完成對所有星點的連通區(qū)域標(biāo)記,并有效剔除噪點;③ 采用高斯曲面擬合法計算出星點質(zhì)心坐標(biāo)。
星點目標(biāo)的尺寸非常小且沒有形狀、紋理等特征,星敏感器拍攝的星圖本身又具有較低的信噪比,因而投影到像平面的星點像素區(qū)域極易被噪聲和背景所淹沒。
本文重點不在星圖去噪上,所以下面簡要敘述星點提取時采用的去噪方法。本文采用文獻(xiàn)[17]提出的改進(jìn)多窗口抽樣自適應(yīng)閾值選取方法,根據(jù)實時得到的星圖確定閾值,既能夠有效去噪,又不會耗時過多。首先,選取大小適當(dāng)?shù)某闃哟翱?其確定原則如下:為了快速得到分割閾值以降低星圖去噪的處理時間,抽樣時所有抽樣窗口的像素之和一般為星圖總像素的4%~8%,抽樣窗口數(shù)目一般取30~50且各個抽樣窗口的位置盡可能分布均勻,抽樣窗口的像素之和與抽樣窗口數(shù)目之間的比值即為抽樣窗口大小。然后,在星圖的不同位置選取抽樣窗口,計算該抽樣窗口的灰度均值和標(biāo)準(zhǔn)差,多次重復(fù)上述過程,最后綜合考慮所有抽樣窗口的數(shù)據(jù),以確定出分割閾值。從上到下,從左到右依次掃描星圖圖像中的各個像素,大于該分割閾值的視為潛在的星點像素,后續(xù)會進(jìn)行相關(guān)處理,否則視為背景像素,予以剔除。多窗口抽樣的核心公式如下所示:
(1)
式中:Nw為抽樣窗口的個數(shù);μi和σi分別是第i個抽樣窗口中所有像素的均值和方差;α為經(jīng)驗值,一般取3~5。
近年來,學(xué)者們紛紛提出了許多優(yōu)秀的圖像分割算法[18-23],但由于星圖圖像的特殊性,大多數(shù)算法的星點提取效果并不理想。因此,本文從投影差分的角度出發(fā),提出極值分析下的星點彌散區(qū)域粗提取算法,實現(xiàn)初步的星圖圖像分割。在星點內(nèi)部某像素位置已知的情況下,下一步的星點內(nèi)部像素精提取便會具有更高的準(zhǔn)確性和更快的搜索速度。極值分析下的星點內(nèi)部像素確定算法如下:對于星敏感器拍攝的一幅M×N大小的星圖,先進(jìn)行縱向的投影,即對每一列中所有像素點的灰度值求和,得到關(guān)于x的投影函數(shù)S(x)如下所示:
(2)
式中:x為像素點的橫坐標(biāo);y為像素點的縱坐標(biāo);s(x,y)為坐標(biāo)(x,y)處的像素點灰度值;M為星圖的行數(shù);N為星圖的列數(shù)。
得到投影函數(shù)S(x)后,在整個取值范圍內(nèi)對S(x)進(jìn)行前向一階差分運算,得到差分函數(shù)P(x)如下所示:
P(x)=S(x+1)-S(x)
(3)
遍歷差分函數(shù)P(x)的所有項,若存在相鄰兩項滿足:
(4)
則說明點x=n+1為投影函數(shù)S(x)的極大值點,找出所有的極大值點作為候選。星圖經(jīng)縱向投影得到星點的橫坐標(biāo)范圍,通過差分函數(shù)P(x)找出所有極大值點,然后對以橫坐標(biāo)范圍為界的條狀區(qū)域進(jìn)行橫向投影,即可得到該條狀區(qū)域內(nèi)的星點個數(shù)和縱坐標(biāo)范圍。取極大值點作為星點內(nèi)部像素的候選橫坐標(biāo),縱坐標(biāo)范圍的中點作為星點內(nèi)部像素的候選縱坐標(biāo)。那么可以給出結(jié)論,即使在縱向投影時出現(xiàn)兩顆星點存在重疊的現(xiàn)象,也一定存在某一個候選橫坐標(biāo)(極大值點),使得該候選橫坐標(biāo)既落在星點1的的橫坐標(biāo)區(qū)域,又落在星點2的橫坐標(biāo)區(qū)域;或者存在某兩個候選橫坐標(biāo)(極大值點),使得一個落在星點1的的橫坐標(biāo)區(qū)域,另一個落在星點2的橫坐標(biāo)區(qū)域。此時,候選橫坐標(biāo)與候選縱坐標(biāo)的兩兩組合之中,一定會同時出現(xiàn)星點1的內(nèi)部像素點和星點2的內(nèi)部像素點。具體的證明在后續(xù)給出。
算法的具體步驟如下。
步驟 1利用式(2)對M×N大小的星圖進(jìn)行縱向的投影,得到投影函數(shù)S(x)。
步驟 2利用式(3)對S(x)進(jìn)行前向一階差分運算,得到差分函數(shù)P(x)。
步驟 3遍歷差分函數(shù)P(x)的所有項,找出所有的極大值點作為候選橫坐標(biāo),這些候選橫坐標(biāo)中一定存在某一個值同時落在星點1和星點2的橫坐標(biāo)區(qū)域內(nèi)。
步驟 4星圖經(jīng)縱向投影得到星點的橫坐標(biāo)范圍,然后對以橫坐標(biāo)范圍為界的條狀區(qū)域進(jìn)行橫向投影,可得到該條狀區(qū)域內(nèi)的星點個數(shù)和縱坐標(biāo)范圍。取縱坐標(biāo)范圍的中點作為星點內(nèi)部像素的候選縱坐標(biāo)。候選橫坐標(biāo)與候選縱坐標(biāo)任意組合得到所有候選的星點內(nèi)部像素坐標(biāo),判斷每一個候選坐標(biāo)的鄰域,篩選出最終的星點內(nèi)部像素坐標(biāo)。以該星點內(nèi)部像素坐標(biāo)為中心,δ為半徑的某個矩形區(qū)域即為星點粗提取結(jié)果,δ取值一般較大。
下面從理論上證明兩顆星點的縱向投影重疊時,一定存在某一個候選橫坐標(biāo)(極大值點),使得該候選橫坐標(biāo)既落在星點1的橫坐標(biāo)區(qū)域,又落在星點2的的橫坐標(biāo)區(qū)域;或者存在某兩個候選橫坐標(biāo)(極大值點),使得一個落在星點1的橫坐標(biāo)區(qū)域,另一個落在星點2的橫坐標(biāo)區(qū)域。兩顆星點橫向投影發(fā)生重疊時的情況類似。
星點光斑在電荷耦合器件(charge coupled device,CCD)平面上的能量分布服從二維正態(tài)分布,對星點光斑進(jìn)行縱向投影,可理解為求該二維正態(tài)分布的邊緣分布。由概率論的知識可知,二維正態(tài)分布的邊緣分布一定也為正態(tài)分布,此處不加以證明。所以,原問題抽象出來的數(shù)學(xué)模型為
(5)
3σ以外的能量占比很小,這一部分的像素點的灰度值非常小,遠(yuǎn)遠(yuǎn)小于去噪閾值,在星圖去噪時會被直接置0。所以函數(shù)f1(x)和f2(x)在分析時可以看作是截斷函數(shù),即取值范圍嚴(yán)格為[μ-3σ,μ+3σ],函數(shù)在取值范圍內(nèi)連續(xù)。
當(dāng)正態(tài)分布f1(x)和f2(x)的均值和方差滿足:
(6)
存在圖1中的5種重疊情況。
圖1 第一類正態(tài)分布函數(shù)重疊示意圖Fig.1 Diagram of the first kind of normal distribution function overlap
第一類5種情況下重疊區(qū)域的取值范圍如下所示:
(7)
當(dāng)正態(tài)分布函數(shù)f1(x)和f2(x)的均值和方差滿足:
(8)
存在圖2中的5種重疊情況。
圖2 第二類正態(tài)分布函數(shù)重疊示意圖Fig.2 Diagram of the second kind of normal distribution function overlap
第二類5種情況下重疊區(qū)域的取值范圍如下所示:
(9)
數(shù)學(xué)模型經(jīng)上述步驟細(xì)化后,研究問題變?yōu)?證明上述10種情況中的每一種都存在一個極大值點,且該極大值點恰好落在星點1和2縱向投影的重疊區(qū)域范圍內(nèi),即該極大值點既落在星點1的橫坐標(biāo)范圍內(nèi),又落在星點2的橫坐標(biāo)范圍內(nèi)。
需要強調(diào)的是,正態(tài)分布函數(shù)f1(x)和f2(x)不同的重疊形式所對應(yīng)的函數(shù)表達(dá)式F(x)也不盡相同,如圖3中的兩種情況所示,其中實線部分為f1(x),虛線部分為f2(x)。
圖3 函數(shù)表達(dá)式差異化示意圖Fig.3 Diagram of function expression differentiation
圖4中的兩種情況對應(yīng)函數(shù)表達(dá)式F(x)從左到右可分為F1(x)、F2(x)、F3(x)3段,分別如下所示:
(10)
(11)
(12)
可以看出,求解極值點的解析解會非常困難,而且解析解中會同時包含未知參數(shù)E1、E2、μ1、μ2、σ1、σ2,導(dǎo)致無法判定解析解是否在重疊區(qū)域取值范圍內(nèi)。因此,這種思路行不通。既然無法通過求解精確的解析解來證明極值點是否存在于重疊區(qū)域之中,那么換種思路,轉(zhuǎn)而去證明這10種情況都存在兩個極大值點分別落在函數(shù)f1(x)和f2(x)的橫坐標(biāo)范圍內(nèi),或者存在1個極大值點落在函數(shù)f1(x)和f2(x)重疊區(qū)域內(nèi),且必須是極大值點。
可以知道,原函數(shù)F(x)和導(dǎo)函數(shù)F′(x)在定義域內(nèi)均為連續(xù)函數(shù),則只要能夠證明某開區(qū)間上都存在實數(shù)m和n,且滿足m 考慮圖1中情況a,函數(shù)F2(x)的定義域為x∈(μ1-3σ1,μ1+3σ1),且滿足μ1≤μ2、σ1≤σ2,如圖4所示。 圖4 圖1中情況a示意圖Fig.4 Diagram of situation a in Fig.1 (13) 若滿足,則說明存在1個極大值點落在函數(shù)F2(x)的定義域內(nèi)。 證畢 (14) 證畢 考慮圖1中情況b,函數(shù)F2(x)的定義域為x∈[μ2-3σ2,μ1+3σ1],且滿足μ1≤μ2和σ1≤σ2。不難發(fā)現(xiàn),均值點μ1、μ2恰好落在閉區(qū)間[μ2-3σ2,μ1+3σ1]中,此時證明過程與結(jié)果與圖1中情況a完全一致,不再贅述。 考慮圖2中情況c,函數(shù)F2(x)的定義域為x∈[μ1-3σ1,μ1+3σ1],且滿足μ1≤μ2、σ1≤σ2,如圖5所示。 圖5 圖1中情況c示意圖Fig.5 Diagram of situation c in Fig.1 由圖5可知,此時函數(shù)F2(x)的定義域雖然與圖1中情況a相同,但是函數(shù)分布不同,此時的分段函數(shù)形式如下所示: (15) 由于f1(x)>0和f2(x)>0,且f1(x)在區(qū)間[μ1-3σ1,μ1]上為增函數(shù),f2(x)在區(qū)間[μ2-3σ2,μ2]上為增函數(shù),且f1(μ1-3σ1)為左邊界,所以函數(shù)F(x)在間斷點μ1-3σ1處產(chǎn)生向上的跳變,該間斷點無法等價為極大值點;f1(x)在區(qū)間[μ1,μ1+3σ1]上為減函數(shù),f2(x)在區(qū)間[μ2-3σ2,μ2]上為增函數(shù),且f1(μ1+3σ1)為右邊界,所以函數(shù)F(x)在間斷點μ1+3σ1處產(chǎn)生向下的跳變,則間斷點μ1+3σ1即為要找的等價極大值點。雖然等價極大值點μ1+3σ1在斷點處,但仍處于f1(x)和f2(x)的重疊區(qū)域,滿足要求。 證畢 同理,圖1中情況d、情況e的證明過程與結(jié)果與圖1中情況c完全一致,不再贅述。 考慮圖2中情況a、情況b,均值點μ1和μ2恰好落在f1(x)和f2(x)的重疊區(qū)域中,此時證明過程與結(jié)果與圖1中情況a完全一致,不再贅述。 考慮圖2中情況c,函數(shù)F2(x)的定義域為x∈[μ2-3σ2,μ2+3σ2],且滿足μ1≤μ2、σ1≥σ2,如圖6所示。該情況與圖1中情況c略有不同,此時f1(x)>0且f2(x)>0,f1(x)在區(qū)間[μ1,μ1+3σ1]上為減函數(shù),f2(x)在區(qū)間[μ2-3σ2,μ2]上為增函數(shù),且f2(μ2-3σ2)為左邊界,所以函數(shù)F(x)在間斷點μ1-3σ1處產(chǎn)生向上的跳變,該間斷點即為要找的等價極大值點,兩種情況產(chǎn)生差異的原因主要是函數(shù)f1(x)和f2(x)的單調(diào)性區(qū)間不同。 證畢 同理,圖2中情況d、情況e的證明過程與結(jié)果與圖1中情況c完全一致,如圖3所示。 圖6 圖3中情況c示意圖Fig.6 Diagram of Situation c in Fig.3 至此,10種情況全部證明完畢。在星點1、星點2發(fā)生重疊時,總是存在一個極大值點或者等價極大值點落在星點1和星點2的重疊區(qū)域。 得到星點像素大概所處的區(qū)域之后,還需要進(jìn)一步精提取星點像素?;诖?本文提出了一種基于位置矩陣的線段編碼標(biāo)記算法。 線段編碼標(biāo)記時,若上下行中兩像素線段有交集,則標(biāo)號相同,反之,則賦予不同標(biāo)號。判斷上下行中兩線段是否連通的方法如下所示: xa≤xc≤xb或xc≤xa≤xd (16) 式中:xa、xb和xc、xd分別為上下行中各線段的端點坐標(biāo)。若滿足該不等式,則兩條線段連通,否則,不連通。 傳統(tǒng)的線段編碼標(biāo)記算法至少需要兩次掃描才能完成標(biāo)記,第一次掃描時記錄連通關(guān)系,第二次掃描歸并具有等價關(guān)系的連通體。該方式執(zhí)行效率低,而且無法規(guī)避噪聲點的影響。而基于位置矩陣的線段編碼標(biāo)記算法,采用邊掃描邊合并的方式,僅需一次掃描便可完成對所有星點的連通區(qū)域標(biāo)記,并能有效剔除星圖圖像中的噪聲點。 位置矩陣coor[N×M]的第i行數(shù)據(jù),表示編號值為i的線段集合中每一條線段起始點的列坐標(biāo)。值得注意的是,位置矩陣coor中并未記錄線段起始點的橫坐標(biāo),因為橫坐標(biāo)的值可以在算法的執(zhí)行過程中自動推算出來。 為了解釋更加直觀,本節(jié)以較為復(fù)雜的圖8作為原圖來說明該算法,圖中空白像素的值為0,具體的執(zhí)行步驟如下。 圖7 基于位置矩陣的線段編碼標(biāo)記法示意圖1Fig.7 Schematic diagram 1 of line segment coding notation based on position matrix 步驟 1位置矩陣coor的行數(shù)取7,列數(shù)取7,并將位置矩陣內(nèi)所有元素初始化為0。對原圖的第1行進(jìn)行線段編碼,遇到“0”像素點到非“0”像素點的跳變時,賦予非“0”像素點編號“1”。而該非“0”像素點后面與之相連續(xù)的所有非“0”像素點都賦予相同的編號,直到遇到“0”像素點或這一行掃描結(jié)束。繼續(xù)進(jìn)行該行后續(xù)像素點的掃描,若發(fā)現(xiàn)線段,進(jìn)行上述相同的判別操作,對其編號,并且編號值在之前的基礎(chǔ)上加1,直至掃描完第1行全部像素,即第1行不會進(jìn)行標(biāo)號,位置矩陣coor不變。 步驟 2對原圖的第2行進(jìn)行同樣的線段編碼,若存在像素線段,則需要對其進(jìn)行連通性分析。遍歷新線段與第1行中所有線段之間的連通關(guān)系,若新線段與第1行的多條線段存在連通關(guān)系,則需要依賴位置矩陣對具有等價關(guān)系的標(biāo)號類進(jìn)行歸并。由于該矩形區(qū)域第2行無目標(biāo)線段,所以不對其標(biāo)號,位置矩陣coor不變。 步驟 3對原圖的第3行進(jìn)行線段編碼,其第1段線段標(biāo)號為1。同理,第2段線段標(biāo)號為2。此時,將第1段線段的起始點列坐標(biāo)值1賦給位置矩陣coor[1,1],將第2段線段的起始點列坐標(biāo)值5賦給位置矩陣coor[2,1]。接著,對原圖的第4行進(jìn)行線段編碼,第1段線段與上一行中標(biāo)號為1的線段存在交集,所以標(biāo)號為1;第2段線段標(biāo)號為2,將該行中第1段線段的起始點列坐標(biāo)值1賦給位置矩陣coor[1,2],將第2段線段的起始點列坐標(biāo)值4賦給位置矩陣coor[2,2]。此時的標(biāo)記圖像和位置矩陣如圖7所示,左圖為標(biāo)記圖像,右圖為位置矩陣。 步驟 4對原圖的第5行進(jìn)行線段編碼,該行的唯一線段與第4行的兩線段相重合,此時將兩線段中較小標(biāo)號值1賦予新線段,并利用位置矩陣合并等價連通體1和2。首先,找到位置矩陣coor中與編號2所對應(yīng)的行,即第2行,取其最后一個非0元素值4,即為上一行中編號為2的線段的起始點縱坐標(biāo);接著,由于掃描的是第5行,5-1=4,則可以反推出上一行的行數(shù)為4,即為第4行中編號為2的線段的起始點橫坐標(biāo)。至此,得到了第4行中編號為2的線段的起始點坐標(biāo)(4,4),將該像素點及其之后的像素點值置1,直到遇到0像素點停止;然后,取位置矩陣中第2行元素值4前一位的值,該值即為第3行中標(biāo)號為2的線段的起始點列坐標(biāo),列坐標(biāo)為5。由于掃描的是第5行,5-1-1=3,則可以反推出該起始點橫坐標(biāo)為3。至此,得到了第3行中編號為2的線段的起始點坐標(biāo)(3,5),將該像素點及其之后的像素點值置1,直到遇到0像素點停止;以此類推,直至將編號為2的目標(biāo)線段全部更新。繼續(xù)掃描第6行和第7行,此時的圖像和位置矩陣如圖8所示。 圖8 基于位置矩陣的線段編碼標(biāo)記法示意圖2Fig.8 Schematic diagram 2 of line segment coding notation based on position matrix 步驟 5對原圖的第8行進(jìn)行線段編碼,第1段線段標(biāo)為4,第2段線段標(biāo)為1,并對標(biāo)號3的線段集合進(jìn)行合并,依次可得標(biāo)號3的兩條線段的起始點坐標(biāo)為(8,9)和(7,9),然后分別置1。接著掃描下一行,直至原圖掃描完畢,此時的圖像和位置矩陣如圖9所示。 圖9 基于位置矩陣的線段編碼標(biāo)記法示意圖3Fig.9 Schematic diagram 3 of line segment coding notation based on position matrix 從圖9可以看出,基于位置矩陣的線段編碼標(biāo)記法僅需一次掃描就可標(biāo)記出所有連通區(qū)域。 得到星點精確的像素區(qū)域之后,則可以進(jìn)行星點質(zhì)心坐標(biāo)的計算。相較于傳統(tǒng)的質(zhì)心法,高斯曲面擬合法具有更高的精度[24-25]。因此,本文采用高斯曲面擬合法對星點進(jìn)行質(zhì)心定位。該算法的核心思想是利用星點區(qū)域像素信息估計出高斯曲面參數(shù)以得到星點精確的質(zhì)心坐標(biāo),具體原理在此不再贅述。 使用Matlab 2012b仿真軟件,對所提方法進(jìn)行仿真實驗驗證。 本文采用第4版的SKY2000星表作為基本星表。文中設(shè)定導(dǎo)航星的星等小于6 Mv[26]。模擬星圖圖像的分辨率設(shè)為512×512 pixel,星敏感器的視場范圍為12°×12°,模擬星圖的灰度級為0~255。星圖中存在的各種噪聲,統(tǒng)一簡化為高斯白噪聲,不作過多區(qū)分。 噪聲的影響主要指的是噪聲標(biāo)準(zhǔn)差帶來的影響[27-31],因此將高斯白噪聲均值設(shè)置為0,標(biāo)準(zhǔn)差設(shè)置為8,得到相應(yīng)的模擬星圖。仿真實驗結(jié)果如表1所示。從左到右依次為本文方法、掃描法、矢量法、塊掃描法的最終質(zhì)心定位結(jié)果,各方法均通過高斯曲面擬合進(jìn)行最后的質(zhì)心計算。 表1 星點提取仿真實驗結(jié)果Table 1 Results of star extraction simulation pixel 從表1中的仿真結(jié)果可以看出,在強噪聲干擾下,本文所提方法和塊掃描法成功地提取出了所有的星像點(15顆),而掃描法和矢量法都只提取出了13顆星點,掃描法未識別出序號為3和14的星點,矢量法未識別出序號為4和10的星點。觀察可知,序號為8和9的星點和序號為11和12的星點在行坐標(biāo)方向部分重疊,但本文所提算法仍然能夠?qū)⑵湔_提取,可見本文算法的優(yōu)勢所在。從表1可以粗略看出本文方法和塊掃描法星點提取的精度最高。為更直觀地看出兩種方法的精度差異,通過與各個星點的真值作差得到這兩種方法在兩個方向上的質(zhì)心定位偏差,如圖10所示。 圖10 星點質(zhì)心坐標(biāo)誤差仿真結(jié)果Fig.10 Simulation results of star centroid error 掃描法執(zhí)行過程中大量的噪聲點被誤劃分為星像點,而星像像素聚類過程往往只選取前30顆最亮的星作為候選導(dǎo)航星[32]。矢量法提取的星數(shù)會迅速達(dá)到上限,而且當(dāng)某行(列)存在多個星點時,整數(shù)矢量只能存儲灰度值最大的那個點。而塊掃描法通過滿足某條件的像素個數(shù)值來搜索星點彌散區(qū)域,其抗干擾性能得到較大的提升,但仍易受到噪聲點的影響[33]。 本文算法通過極值分析下的星點彌散區(qū)域粗提取算法對去噪星圖中的星點進(jìn)行粗定位;然后,利用基于位置矩陣的線段編碼標(biāo)記法,采用邊掃描邊合并的方式,僅需一次掃描便可完成對所有星點的連通區(qū)域標(biāo)記,并能有效剔除星圖圖像中的噪聲點,且該方法在高精度提取星點質(zhì)心坐標(biāo)的前提下,對星點彌散范圍較小的弱星仍具有較好的識別效果。因此,較之其他3種方法,本文所提方法具有更好的抗干擾性能。 前文的仿真分析只是在標(biāo)準(zhǔn)差為8的條件下基于一幅星圖得出,為了進(jìn)一步考察本文方法的抗干擾性能并對上述分析進(jìn)行驗證,首先通過設(shè)置不同的光軸指向參數(shù),模擬得到500幅不同星圖并分別加入不同標(biāo)準(zhǔn)差的高斯白噪聲,以檢驗前述幾種方法在不同工作環(huán)境下的總體表現(xiàn)水平。星點質(zhì)心誤差計算如下: (17) 式中:Err為星點提取誤差;Nm為參與仿真的星圖數(shù),此處為500;Ni為星圖中正確提取的星點數(shù);(xrj,yrj)為第j個星點的質(zhì)心坐標(biāo)標(biāo)準(zhǔn)值,即真實值;(xj,yj)為所提4種算法解算出的星點坐標(biāo),即測量值,星點提取結(jié)果如表2所示。 表2 不同噪聲水平下星點提取結(jié)果Table 2 Results of star point extraction in different noise levels 根據(jù)上述仿真實驗結(jié)果,可以明顯看出,本文方法在星點提取成功率和星點提取誤差兩方面都優(yōu)于其余3種算法,尤其是相較于掃描法和矢量法而言,算法性能提高幅度較大。具體來說,本文方法在星點提取精度方面相比于掃描法平均提高7.9倍;相比于矢量法平均提高8.3倍;相比于塊掃描法平均提高1.9倍。仿真結(jié)果與前文分析結(jié)論相一致。 在星點提取成功率方面,隨著噪聲強度加大,各算法都不可避免的受到影響。其中,矢量法的抗干擾能力最差,在標(biāo)準(zhǔn)差為2時就已經(jīng)開始出現(xiàn)部分星點無法提取的情況,且在噪聲標(biāo)準(zhǔn)差為12時,提取成功率僅為54.83%,而提取的星點數(shù)量急劇減少也影響著后續(xù)的定姿精度;掃描法受噪聲影響次之,噪聲標(biāo)準(zhǔn)差大于4時,星點提取成功率開始下降,噪聲標(biāo)準(zhǔn)差為12時,提取成功率為77.28%;塊掃描法受噪聲影響較小,噪聲標(biāo)準(zhǔn)差大于6時,星點提取成功率開始出現(xiàn)下降,且在噪聲標(biāo)準(zhǔn)差為12時,提取成功率仍能達(dá)到83.95%,體現(xiàn)了其較好的抗噪性能;本文方法的抗干擾能力最強,噪聲標(biāo)準(zhǔn)差較小時對算法幾乎不造成影響,噪聲標(biāo)準(zhǔn)差大于8時,星點提取成功率才開始出現(xiàn)小幅下降,在噪聲標(biāo)準(zhǔn)差為12時,還能保證90.03%的高提取成功率??梢姳疚姆椒ǖ目垢蓴_性能明顯優(yōu)于其他3種星點提取方法。 接著對本文方法與掃描法、矢量法、塊掃描法的算法復(fù)雜度進(jìn)行簡要分析。掃描法聚類過程往往選取前30顆最亮的星作為候選導(dǎo)航星,涉及到最大灰度值的捜索過程,矢量法相應(yīng)的矢量所存儲的是候選星像中心的位置和灰度值,再以星像中心為基礎(chǔ)進(jìn)行候選導(dǎo)航星的確認(rèn),且掃描法和矢量法需要多次遍歷整幅星圖以搜索出特征信息,時間消耗較為嚴(yán)重;而塊掃描法避免了全圖掃描,且其提取速度與掃描塊的大小有關(guān),當(dāng)掃描塊設(shè)定不同大小時,其提取速度變化較大。由前文可知,本文方法在搜索星點像素區(qū)域時有效避免了多次遍歷整幅星圖,所以實時性應(yīng)顯著優(yōu)于掃描法和矢量法。相比于塊掃描法,本文綜合采用基于距離判別的灰度交叉投影法和基于位置矩陣的線段編碼標(biāo)記法,耗時基本能與之持平。 為了進(jìn)一步考察本文方法的實時性并對上述分析進(jìn)行驗證,進(jìn)行了仿真對比實驗。對隨機生成的500幅星圖加入均值為0、標(biāo)準(zhǔn)差為8的高斯白噪聲,分別利用本文方法、掃描法、矢量法和塊掃描法進(jìn)行星點提取,統(tǒng)計各自的平均星點提取時間,結(jié)果如表3所示。 表3 星點提取時間比較Table 3 Comparsion of star point extraction time s 由表3中的仿真結(jié)果可知,4種方法的實時性水平由高到低依次為塊掃描法、本文方法、矢量法、掃描法。本文方法與塊掃描法的星點提取時間基本相等,掃描法和矢量法的星點提取時間較長,可見仿真結(jié)果與理論分析結(jié)果相吻合。 仿真實驗針對不同的工作環(huán)境給出了不同的仿真條件,并從質(zhì)心定位精度、識別星點的數(shù)量水平以及算法處理速度3個方面對本文方法與較常見的掃描法、矢量法、塊掃描法進(jìn)行了性能比對。仿真結(jié)果表明,在不同的噪聲標(biāo)準(zhǔn)差下,本文方法的星點提取精度和星點提取成功率具有更大的優(yōu)勢。本文方法的星點提取時間基本與塊掃描法相等,但與掃描法和矢量法相比,具有顯著的優(yōu)勢??傮w而言,本文方法在不同的干擾條件下,仍能在星點提取精度、星點提取成功率以及實時性方面保持良好的性能水平。 本文所提方法通過極值分析下的星點彌散區(qū)域粗提取算法,對去噪星圖進(jìn)行星點局部區(qū)域限定,克服了傳統(tǒng)方法難以應(yīng)用于星點重疊情況的不足,并在提高星敏感器抗噪性能的同時,降低了星點提取算法的內(nèi)存和時間開銷。然后,采用基于位置矩陣的線段編碼標(biāo)記法精確提取星點所有的內(nèi)部像素,僅需一次掃描便可完成對所有星點的連通區(qū)域標(biāo)記,并能有效剔除星點矩形區(qū)域中的噪聲點。最后,利用星點區(qū)域像素信息估計出高斯曲面參數(shù)以得到星點精確的質(zhì)心坐標(biāo)。仿真結(jié)果表明,星圖噪聲標(biāo)準(zhǔn)差處于2的水平時,本文的數(shù)據(jù)處理方法可以使星點質(zhì)心定位精度達(dá)到0.070 4 pixel,且在星圖噪聲標(biāo)準(zhǔn)差處于12的水平時,仍具有90.03%的高星點提取成功率。相比于傳統(tǒng)的星點提取方法,本文方法的星點提取精度和提取成功率均大幅提高,并且星點提取時間仍維持在一個較好的水平。3 星點的精提取
4 仿真實驗及分析
4.1 仿真條件設(shè)置
4.2 模擬星圖仿真實驗結(jié)果
5 結(jié) 論