金光瑞,王愛華,李 聰,孫吉福
(1.天津津航技術物理研究所,天津 300000;2.上海機電工程研究所,上海 201109)
星敏感器是目前測姿精度最高的探測器,在飛行器和空間飛行器上都有應用[1]。星敏感器光學畸變誤差標定的精度直接影響了星敏感器的精度,需要在使用之前對星敏感器光學畸變進行高精度的校正[2-4]。
在工程應用中,星敏感器需要借助二維高精度轉臺和星模擬器來實現室內標定試驗:通過二維轉臺控制星敏感器在不同俯仰角、不同航向角下對星模擬器成像,采集大量的標定點數據,然后利用基表標定算法進行標定,以實現對星敏感器的高精度標定[5-8]。實際應用中,采集標定點數量不會較多,一般采集的標定點數量為49 個,采用其中25 個標定點用于畸變校正,剩余24個標定點用于測試。而星敏感器模型有20個參數,采用25 個標定點對20 個參數進行擬合,存在過擬合現象,會造成畸變標定結果誤差較大。
針對該問題,本文提出一種基于Dropout方法[9-12]的星敏感器畸變模型標定方法。該方法首先對星敏感器高階曲面畸變模型進行網絡化,然后構建隱藏部分卷積層的星敏感器畸變模型,最后進行監督學習,完成星敏感器畸變模型標定,以提高畸變模型的標定精度,提高星敏感器輸出的姿態精度。
理想的星敏感器物理成像模型為小孔成像模型,其成像原理如圖1所示。

圖1 星敏感器小孔成像原理圖Fig.1 Schematic diagram of small hole imaging of star sensor
根據其物理模型,可以得到星點坐標(u,v)和星光矢量在星敏感器坐標系中的坐標(x,y,z)之間的關系為

式中:f為星敏感器焦距;(u0,v0)為星敏感器的主點位置。
由于星敏感器光學系統像差、裝配誤差及焦距誤差等因素的存在,星敏感器理論模型與實際情況存在差異,主要包括:CCD 平面上星點的中心位置(u0′,v0′)與理想的星點中心坐標(u0,v0)存在主點誤差△d,真實焦距f′和焦距f之間的焦距誤差△f,CCD 面陣與理想位置之間存在旋轉角β和傾斜角α,此外,還包括光學系統畸變等誤差,如圖2所示。

圖2 星敏感器實際模型Fig.2 Physical model of star sensor
根據星敏感器實際模型還包含許多參數,但這些參數對畸變的影響小于0.1″,可以舍去。因此工程上常用的模型中僅包含主點位置(u0,v0)、焦距f、旋轉角β和傾斜角α。這樣的模型復雜度較高,可以將模型表示為

式中:主點位置(u0,v0)、焦距f、旋轉角β和傾斜角α為常數。
在工程上,式(2)可以表示真實的星敏感器鏡頭畸變模型。但是其較為復雜,擬合過程難度較大,因此我們采用高階曲面來描述Fx和Fy函數,將上述模型簡化為

式中:(x,y,z)為星敏感器坐標系矢量;(u,v)為星點坐標;N為畸變模型階數為畸變模型系數。
式(3)即為星敏感器高階曲面畸變模型。該模型通過20個系數來描述主點位置(u0,v0)、焦距f、旋轉角β和傾斜角α等5 個常數,保證了畸變模型的精度;同時采用高階曲面代替復雜的物理模型,大大簡化了標定流程。該方法已在工程上進行了應用,取得了良好的效果。
星敏感器高階曲面畸變模型可采用室內標定和外場標定兩種方法,由于外場標定受大氣影響較大,因此高精度星敏感器一般均采用室內標定。
室內標定需要使用“高精度二維轉臺+單星模擬器”。進行室內標定時,利用高精度二維轉臺控制單星模擬器和星敏感器之間的位置關系,讓星敏感器在不同俯仰角、不同航向角條件下采集多個標定點數據,利用這些數據對高階曲面模型進行擬合,具體過程如下:
1)將星敏感器安裝于轉臺內框架上,調整轉臺和單星模擬器相對位置,使星敏感器采集的星點處于星敏感器像面中心附近;
2)在視場內設置標定點(一般不少于49 個),由星敏感器測出各標定點的星像數據,并用星點質心算法計算出星像中心(ui,vi),同時記錄下轉臺系統中的俯仰角和偏航角;
3)構建星敏感器畸變標定損失函數,可采用真實星光矢量與畸變模型計算出的星光矢量之間的坐標點誤差作為評價標準,據此構建損失函數L為

式中:n為標定網格點總數;(ui,vi)為第i個標定網格點的坐標;(ui′,vi′)為第i個標定網格點的擬合坐標。
采用擬合方法對星敏感器畸變模型進行標定時,存在擬合效果不佳的情況。擬合效果不佳可以分為欠擬合和過擬合。欠擬合是指模型過于簡單時,由于訓練數據誤差大,在無先驗知識的情況下,擬合結果不理想,造成欠擬合。過擬合是指模型過于復雜時,因為訓練數據不足,導致在訓練數據外的測試數據上效果不理想,產生過擬合。擬合效果如圖3所示。

圖3 擬合效果不佳示意圖Fig.3 Indication of poor fitting effect
星敏感器畸變標定過程中,一般采用5 階以上的高階曲面模型。但在實際標定過程中,采集的訓練數據數量較少,且由于轉臺誤差等因素,訓練數據存在一定的誤差。因此,對星敏感器畸變模型進行擬合時,存在一種欠擬合與過擬合耦合存在的情況,即訓練樣本與測試樣本誤差較大。解決辦法主要有優化模型、增加訓練數據、訓練數據進行篩選、模型集成4種。這4種方法在星敏感器畸變標定過程中均存在一定局限性:優化模型方法、增加訓練數據方法針對過擬合有效,但需要犧牲精度、增加工作量,同時無法避免數據誤差引起的欠擬合;訓練數據篩選方法可在一定程度上解決欠擬合和過擬合的問題,但需要大量的數據和高精度的轉臺;模型集成方法通過對多個不同模型進行訓練,采用加權求和的方法進行擬合,雖然可以抑制欠擬合和過擬合問題,但會引起計算量急劇增加,不適用于對系統實時性要求比較高的系統。
因此,需要研究一種星敏感器畸變標定方法,在滿足彈載/星載系統實時性要求的前提下,提高畸變標定精度。
目前,機器學習領域較多采用的是Dropout 方法,可以有效地緩解擬合不佳現象的產生。
Dropout 方法基本原理為:首先在每一次訓練過程中,隨機地將隱層中的某些節點置零;再對這樣的模型進行訓練得到結果;然后將多次訓練的結果進行整合,得到最終的擬合結果,如圖4所示。
電商(商務秘書)場景實驗室以培養學生電子商務實務實踐應用能力和創新創業能力為目標,由學校提供場地和管理、企業提供工作項目、技術和師資,行業協會提供平臺支持,采取校企雙制、產教融合、工學一體的培養模式。

圖4 Dropout方法示意圖Fig.4 Schematic diagram of the Dropout method
由于網絡中節點之間存在強相互作用關系,Dropout方法通過減少網絡中隱層節點之間的相互作用,使模型魯棒性更強,減少過擬合現象對精度的影響。
使用Dropout 方法解決星敏感器畸變模型過擬合問題,首先需要將星敏感器高階曲面模型構建成類似于神經網絡的傳輸網絡。
根據2.1 節描述的星敏感器畸變模型,可以將其分為輸入層、池化層、卷積層、輸出層共4 層網絡。輸入層包括輸入變量i0和i1;池化層為基于輸入提取的特征f0、f1、f2…,池化層參數數量由曲面模型階數確定;卷積層為最簡單的乘法加權網絡,加權系數為k0、k1、k2…;輸出層為加法網絡,輸出結果o。具體網絡結構如圖5所示。

圖5 星敏感器標定網絡模型示意圖Fig.5 Network model of star sensor calibration
輸入層為數據:包含兩個節點,為星點坐標位置信息(u,v)。
池化層為函數:根據輸入層的數據計算出相應的輸出,以三階高階曲面模型為例,星敏感器畸變模型池化層包含10 個節點函數,這10 個節點函數分別為f0(u,v)=1、f1(u,v)=u、f2(u,v)=v、f3(u,v)=u2、f4(u,v)=uv、f5(u,v)=v2、f6(u,v)=u3、f7(u,v)=u2v、f8(u,v)=uv2、f9(u,v)=v3。
卷積層為數據:以三階高階曲面模型為例,該層包含10 個節點,其結構為簡單的乘法網絡,這10 個節點數據分別為k0、u·k1、v·k2、u2·k3、uv·k4、v2·k5、u3·k6、u2v·k7、uv2·k8、v3·k9。
輸出層o為數據:僅包含1 個節點,為星點坐標x或星點坐標y,根據網絡,可表示為

利用Dropout 方法對上一節建立的星敏感器畸變網絡模型進行擬合,首先要實現對星敏感器模型中的部分卷積層進行隱藏,獲得隱藏卷積層的星敏感器畸變模型;然后利用擬合方法對隱藏部分卷積層的星敏感器畸變模型進行監督訓練;最后,對訓練得到的模型進行整合,獲得最終的星敏感器畸變模型。

圖6 星敏感器標定網絡Dropout示意圖Fig.6 Dropout model of star sensor calibration network
對星敏感器模型中的部分卷積層進行部分隱藏,可采用調整加權系數的方法。具體方法為將加權系數ki乘以p,p的計算方法為

式中:rand 為[0,1]之間的隨機數;thrd 為閾值,一般取0.5。
這樣,p的結果為0 或者1 的隨機數,可實現對卷積層的隨機隱藏,具體隱藏概率可通過閾值thrd 進行調整。需要注意,由于星敏感器模型的特點,一般不對k0、k1、k(2畸變模型中0階、1階系數)進行隱藏處理。至此,獲得了“隱藏部分卷積層的星敏感器畸變模型”,可用于下一步監督學習。
采用隨機的方法生成多個“隱藏部分卷積層的星敏感器畸變模型”,并對每個模型進行訓練,統計損失函數Li和模型系數ki。根據式(4)可令損失函數Li為

式中:n為標定網格點總數;(um,vm)為第m個標定網格點的坐標為第i個模型中第m個標定網格點的擬合坐標;。
采用式(7)得到的損失函數Li對訓練的模型系數ki進行加權,獲得最終的模型系數K為

至此,使用Dropout 方法完成對星敏感器畸變模型的標定。
采用“轉臺+單星模擬器”的方法,進行星敏感器畸變模型校正試驗。星敏感器視場為10°×10°,焦距為60 mm,分辨率為2 048×2 048,轉臺精度3″。
根據星敏感器視場,在視場內按7×7網格采集49個采樣點,其中采集25 組數據作為訓練數據,24 組數據作為測試數據,具體如圖7所示。

圖7 星敏感器標定點網絡示意圖Fig.7 Point grid of star sensor calibration
畸變模型采用5階高階曲面模型,如下所示:

根據模型所示,需要對21×2(x、y每個點21 個系數)共42 個參數進行標定,用于標定的有效數據個數為25×2(25 個點,每個點2 個坐標)共50 個。使用50個數據標定42個系數,存在擬合結果較差的問題。
采用最小二乘修正方法進行曲面擬合,得到訓練數據誤差、測試數據誤差如圖8 所示。訓練結果最大誤差為207.91″、誤差均方差為50.78″;測試結果最大誤差為167.98″、誤差均方差為51.64″。

圖8 最小二乘擬合方法訓練數據、測試數據誤差Fig.8 Training data and test data error using least squares fitting method
采用Matlab 曲面擬合工具箱進行曲面擬合,得到訓練數據誤差、測試數據誤差如圖9 所示。訓練結果最大誤差為8.81″,誤差均方差為2.37″;測試結果最大誤差為8.13″,誤差均方差為2.03″。

圖9 高精度工具箱擬合方法訓練數據、測試數據誤差Fig.9 Training data and test data error using MATLAb fitting toolbox
采用Dropout 方法進行曲面擬合,得到訓練數據誤差、測試數據誤差如圖10所示。訓練結果最大誤差為0.63″、誤差均方差為0.17″;測試結果最大誤差為3.65″、誤差均方差為1.12″。

圖10 Dropout方法訓練數據、測試數據誤差Fig.10 Training data and test data error using Dropout method
3種擬合方法的誤差對比、耗時對比如表1~2所示。

表1 3種擬合方法誤差對比Tab.1 Error comparison of three fitting methods
從上述圖表結果中可以看出:
1)實際采集中,轉臺誤差等因素會造成個別點出現較大誤差,而最小二乘法擬合方法對噪聲敏感,用該方法進行擬合效果較差。
2)采用擬合工具箱對星敏感器誤差進行擬合,可有效降低噪聲對擬合結果的影響,提高擬合精度;
3)采用本文提出的基于Dropout方法的高精度擬合方法,相對于工具箱擬合方法,Dropout 方法最大誤差精度提高298.4%、平均誤差精度提高294.1%,測試數據最大誤差精度提高122.7%、平均誤差精度提高80.4%,但運算耗時僅增加0.34 ms。

表2 三種擬合方法耗時對比Tab.2 Time-consuming comparison of three fitting methods
本文借鑒神經網絡擬合的Dropout思想,提出一種基于Dropout方法的高精度畸變標定方法,構建隱藏部分卷積層的星敏感器畸變模型,完成星敏感器畸變模型標定。試驗結果表明,采用基于Dropout方法的星敏感器標定方法可有效提高星敏感器訓練精度,相比于高精度工具箱的擬合結果,本文所提出模型的精度提高了80%。