周逢道,馬 晨,潘自超
(吉林大學儀器科學與電氣工程學院,長春 130061)
星敏感器是衛(wèi)星姿態(tài)控制系統(tǒng)的重要組成部分?,F(xiàn)代化步伐的加快使得太空環(huán)境越來越復雜,太陽光和地氣光等雜散光對星敏感器的干擾持續(xù)存在。雜散光使得星敏感器拍攝到的星圖中的星點變得模糊,且難以將星點的邊緣輪廓和星圖背景區(qū)分開,不利于從圖像中提取星點位置,從而導致星敏感器定姿精度下降。因此,如何有效地處理雜散光干擾,準確地提取星圖中星點的位置坐標是目前航天領域利用星敏感器進行導航研究的一個重難點[1]。
現(xiàn)有減緩雜散光對星敏感器拍攝星圖干擾的研究方向主要有衛(wèi)星外部硬件、衛(wèi)星控制策略以及圖像處理3個方向[2]。其中對于衛(wèi)星外部硬件的優(yōu)化設計包括遮光罩的設計,遮光罩遮光角越大對雜散光的過濾能力越強[3],但遮光罩內(nèi)壁也會帶來一定向內(nèi)散射的光線,恒星的信號也會被過大的遮光罩遮擋。對衛(wèi)星控制策略的優(yōu)化主要是通過工程師設計,規(guī)劃衛(wèi)星在特定的姿態(tài)下規(guī)避地氣光,但這種方式規(guī)避太陽光等天體散發(fā)的雜散光較為困難。圖像處理的方式范圍較廣[4-5],現(xiàn)有從圖像處理角度出發(fā)提高星圖中星點坐標提取精度的方式主要包含以下幾種:1)對已知噪聲進行濾波處理。常見的濾波方式包括高斯濾波、均值濾波、中值濾波和雙邊濾波等。這些方法可以有效降低已知來源的噪聲對星敏感器定位的干擾,有效去除圖像中的噪聲粒,但同時會使圖像中的邊緣信息變得模糊,降低灰度圖像的相鄰像素梯度,損失一定的灰度信息,有可能導致星點坐標提取精度的損失。2)閾值分割法。常用的閾值分割算法分為全局閾值法和局部閾值法。全局閾值法為整幅圖像確定一個閾值,適合前景和背景區(qū)分比較明顯的圖像,特別是處理灰度直方圖且具有明顯雙峰的圖像[6-7]。局部閾值法則是根據(jù)圖像的具體特征,將其劃分為若干區(qū)域,對每一塊區(qū)域進行動態(tài)求解閾值[8]。局部閾值法往往適用于灰度直方圖為多波峰的情況,雖其抗噪能力較強,但是又容易使得局部和細節(jié)過曝,且處理效率較全局閾值法低。對于閾值分割算法,閾值的選取是最為重要的一步,而最佳的閾值往往很難判斷,所以此方法具有不確定性[9-10]。3)模糊圖像復原方法。該方法主要分為以下兩大類:盲復原方法和非盲復原方法[11-13]。該系列方法主要研究模糊核函數(shù),通過分析星圖模糊機理,研究星象運動軌跡,從而提高星點坐標提取精度,但實際星象運動軌跡和模糊復原軌跡的誤差始終存在[14-16]。4)形態(tài)學處理。常見的形態(tài)學處理包括:腐蝕、膨脹、開運算和閉運算等。形態(tài)學處理大多可以將非完整的星點像素補全或減弱干擾信息的像素特征,但直接對星圖進行形態(tài)學處理可能造成質(zhì)心坐標點偏移,無法消除雜散光信號的干擾,因此其僅可以作為其他圖像處理方式的輔助手段[17-18]。
綜上所述,常見用于消除雜散光對星敏感器干擾的方式存在弊端,且都有相對比較嚴重的局限性,因此本文提出了一種基于Sobel算子的星敏感器星像坐標提取方法。該方法基于星點像素值與背景像素值差異較大的特性,以梯度大于某一閾值像素作為樣板,認為該像素區(qū)域是星點的邊緣,通過在原始星圖上提取質(zhì)心,從而達到消除星圖中雜散光干擾信號的目的。仿真結(jié)果顯示,該方法具有較好的普適性和魯棒性。
星敏感器拍攝的星圖大部分區(qū)域為星空背景,星點所占區(qū)域較少[19]。在沒有雜散光干擾的情況下,可以通過像素區(qū)分星點和背景,其中星點位置的像素遠高于背景像素。如圖1所示,假設星圖灰階為8位,那么理想星圖上星點區(qū)域的灰度值接近255,圖像顯示白色部分;星空背景的灰度值接近0,圖像顯示黑色部分,其像素特性如圖1(b)所示,可見星點處像素值遠高于星圖背景,且相鄰像素梯度相差較大。
(a)星圖
在實際星敏感器工作的環(huán)境中,星圖背景受到來自太陽光和地氣光等雜散光干擾。由于雜散光的出現(xiàn),使得星圖背景的像素值升高,星圖背景像素變得不均勻,增加了從圖像處理的方式提取星點坐標的難度。實際環(huán)境下,星圖及其像素分布如圖2所示。由圖2(b)像素特性可以看出,星點在雜散光的干擾下被淹沒,增加了星點質(zhì)心坐標提取的難度,甚至直接采用質(zhì)心法難以提取恒星星點坐標。
(a)星圖
為了減少太陽光和地氣光等雜散光的干擾,需要利用圖像銳化技術,使星圖的星點邊緣變得清晰。星圖銳化處理的目的就是使恒星星像的邊緣和輪廓線變得清晰,由此可以對其進行逆運算(如微分運算),該運算可以使星圖中的星點變得清晰。從頻率域來考慮,星圖模糊的實質(zhì)是因為其高頻分量被衰減,因此可以利用高通濾波器使星圖清晰。但要注意能夠進行銳化處理的星圖必須具有較高的信噪比,否則銳化后星圖的信噪比反而更低,從而使得背景和干擾信號增加的比星點信號還要多。一般是先去除或減輕噪聲后再進行銳化處理,因此星圖的銳化可以用于星點邊界的檢測與提取,把星點的結(jié)構(gòu)輪廓清晰地表現(xiàn)出來。星圖的銳化方法主要有一階微分銳化方法和二階微分銳化方法,由于星敏感器需要較高的數(shù)據(jù)更新率,因此需要減少星圖處理的時間,一般采用一階微分銳化方法來降低計算時間。
一階微分計算公式如式(1)
(1)
其中,?f表示星圖中(x,y)點的能量。離散之后的差分方程如式(2)
Δf(i,j)=[f(i+1,j)-f(i,j)]+
[f(i,j+1)-f(i,j)]
(2)
考慮到圖像邊界的拓撲結(jié)構(gòu)性,根據(jù)這一原理派生出許多相關的方法,如一階微分銳化又可分為單方向一階微分銳化和無方向一階微分銳化,后者又包括交叉微分銳化、Sobel銳化和Priwitt銳化。
Sobel算子是計算機視覺領域的一種重要處理方法,主要用于獲得數(shù)字圖像的一階梯度信息,常見的應用和物理意義是邊緣檢測。Sobel算子是根據(jù)圖像中每個像素的上下左右四鄰域的灰度值加權(quán)差,在邊緣處達到極值從而檢測邊緣。在技術上,它是一離散性差分算子,用來計算圖像亮度函數(shù)的梯度近似值。在圖像的任意一點使用此算子,將會產(chǎn)生對應的梯度矢量或者法矢量。Sobel算子不但擁有較好的檢測效果,而且對噪聲具有平滑抑制的作用,但是其得到的邊緣較粗,且可能出現(xiàn)偽邊緣。
Sobel算子使用2個3×3的矩陣算子分別和原始圖片作卷積,分別得到橫向Gx和縱向Gy的梯度值,如果梯度值大于某一個閾值,則認為該點為邊緣點。其Gx方向的模板如式(3)所示
(3)
其Gy方向上的模板如式(4)所示
(4)
圖像的梯度直觀來說就是像素值在某個方向上的變化率,其計算方法如式(5)所示;有時為了簡化計算會使用不開方的近似值來代替G,其替代公式如式(6)所示
(5)
或者
|G|=|Gx|+|Gy|
(6)
對于數(shù)字圖像{f(i,j)}經(jīng)典算子的定義如下:
設
A=|(f(i-1,j-1)+2(i-1,j)+
f(i-1,j+1))+(f(i+1,j-1)+
2(i+1,j)+f(i+1,j+1))|
(7)
B=|(f(i-1,j-1)+2(i,j-1)+
f(i+1,j-1))+(f(i-1,j+1)+
2(i,j+1)+f(i+1,j+1))|
(8)
則
S(i,j)=max(A,B)
(9)
或
S(i,j)=A+B
(10)
通過定義,可以利用2個方向模板與圖像進行鄰域卷積來完成算子的邊緣檢測。這2個方向模板一個檢驗水平邊緣,一個檢驗垂直邊緣。
基于Sobel算子的星圖銳化實現(xiàn)過程如下:適當選取閾值M,作如下判斷:若S(i,j)>M,則(i,j)為邊緣點。S(i,j)為邊緣圖像,由于數(shù)據(jù)溢出的關系,通常不直接使用這種邊緣圖像,而使用的是由邊緣點與背景點構(gòu)成的圖像,故稱為二值圖像。
原始的Sobel算子處理模板中各因子之和為0,由于正的因子與負的因子之和分別為4和-4,在極端情況下處理結(jié)果可能溢出。因此,在實際使用時,雖然Sobel算子檢測所得的星點邊緣光滑連續(xù),但是星點邊緣較粗,這是因為Sobel算子處理時需作二值化處理,即處理結(jié)果得到的是二值化后的星點邊緣圖,這種結(jié)果導致星點邊緣圖中幅值較小的邊緣丟失了。為了克服這個缺陷,可以引入一個衰減因子Scale,去除計算的不良結(jié)果,以消除數(shù)據(jù)溢出的可能,這樣就不再需要進行二值化處理,而且得到的是不失真的灰階邊緣圖,從而保留了星圖中所有星點邊緣的數(shù)值。即S(z,j)=max(A,B)/Scale或S(z,j)=(A-B)/Scale,在灰階邊緣圖中可看到幅度不等的各種星點邊緣,其中,衰減因子Scale取4,它同時也是歸一化因子,即2個灰度層的階躍,交界處的處理結(jié)果就是星點的灰度差值。
因此,星圖經(jīng)過Sobel算子預處理后的結(jié)果如圖3(c)所示。
(a) 單個星點原始星圖
從圖3中可以看出,雜散光干擾較強的星圖,如果直接采用質(zhì)心法從星圖中提取星點坐標,不但會把強干擾信號也作為星點目標,而且由于提取星點坐標的閾值較大,會把星點目標的部分像素作為背景被濾除。因此,降低了星點坐標提取精度,甚至把整個弱星點目標的像素都作為背景濾除,減少了星敏感器視場內(nèi)參與計算姿態(tài)的恒星數(shù)量,導致星敏感器姿態(tài)精度降低。而星圖經(jīng)過Sobel算子預處理后,星圖中的強干擾信號和星圖低頻噪聲全部被濾除,只剩下星點目標像素,因此可以在閾值較小的情況下實現(xiàn)對所有恒星星點坐標的提取,而不會濾除星點目標像素和弱星目標,從而提高了星敏感器姿態(tài)精度。
為了驗證本文算法的可行性和可靠性,選用某型號衛(wèi)星星敏感器進行試驗。實驗方法:將星模擬器和星敏感器放置在光學平臺的暗室中,且暗室中安裝一個探照燈來模擬雜散光,可以通過控制探照燈的開關來模擬暗室中是否存在雜散光;利用星敏感器拍攝星模擬器的星圖,并通過低電壓差分信號(Low Voltage Differential Signaling, LVDS)將星圖傳輸給測試計算機,同時通過RS422把計算的坐標傳輸給測試計算機,測試計算機能夠?qū)崟r顯示星敏感器拍攝的星圖和星像坐標。實驗模擬環(huán)境如圖4所示。
圖4 實驗室模擬環(huán)境Fig.4 Laboratory simulation environment
暗室中分別設置不存在雜散光的環(huán)境和存在雜散光的環(huán)境,并分別采用傳統(tǒng)的質(zhì)心法和本文方法,對計算的結(jié)果進行比較。
測試方法:關閉暗室中的探照燈,此時暗室中沒有任何雜散光,測試計算機給星敏感器發(fā)送指令,使星敏感器采用傳統(tǒng)的坐標提取方法,將星敏感器拍攝的原始星圖和提取的恒星星像坐標發(fā)送給測試計算機;然后通過測試計算機給星敏感器發(fā)送切換指令,使星敏感器工作在本文圖像處理算法下,將星敏感器拍攝的原始星圖和提取的恒星星像坐標發(fā)送給測試計算機,結(jié)果如圖5和表1所示。
(a)原始圖像
表1 無雜散光條件下提取恒星星像結(jié)果
根據(jù)表1中提取的恒星星象坐標數(shù)值結(jié)果可知,采用傳統(tǒng)方法和本文方法提取的星像坐標是一致的,因此采用本文算法不會損失坐標精度。
測試方法:打開暗室中的探照燈,探照燈照射的光作為暗室的雜散光,效果如圖6所示。此時暗室中存在雜散光,首先星敏感器把拍攝的原始星圖發(fā)送給測試計算機,然后測試計算機給星敏感器發(fā)送指令,使星敏感器采用傳統(tǒng)的坐標提取方法,計算星圖的閾值為205。利用該閾值對原始星圖進行二值化后,將二值化的圖像發(fā)送給測試計算機,結(jié)果如圖7(a)所示,此時星敏感器不能輸出任何星像坐標。
(a)探照燈模擬雜散光干擾
給星敏感器發(fā)送切換指令,使星敏感器工作在本文圖像處理算法下,計算星圖的閾值為12。基于本文算法預處理后的星圖如圖7(b)所示,將提取的恒星星像坐標發(fā)送給測試計算機。
(a)傳統(tǒng)算法二值化的星圖
根據(jù)圖7及表2中提取的恒星坐標結(jié)果顯示,存在較強干擾時,采用傳統(tǒng)方法無法從星圖中提取坐標。只要恒星星像沒有完全淹沒在強光中,采用本文算法提取的星像坐標與相應的理想坐標相比,誤差在0.5像素以內(nèi)。
表2 存在雜散光環(huán)境下提取恒星星像結(jié)果
對于傳統(tǒng)圖像處理方法在雜散光干擾下難以有效提取星圖中的恒星坐標,本文提出了一種基于Sobel算子的星敏感器星像坐標提取方法。根據(jù)實驗仿真結(jié)果得出以下結(jié)論:
1)利用本文方法可以很好地提取未被雜散光淹沒的恒星輪廓,通過Sobel算子計算后新的星圖只有恒星星像,從而達到消除星圖中雜散光干擾信號的目的。
2)結(jié)合圖像形態(tài)學處理,星點質(zhì)心提取的精度得到了較大的提高。
3)隨著雜散光強度的升高,其在星圖中所占范圍增大,被淹沒的星點增多,因此該方法適用于提取未被雜散光完全覆蓋的星點。
經(jīng)過本文算法處理后的仿真結(jié)果顯示,該方法具有較好的魯棒性與普適性。