朱立華,張 強(qiáng),高建東,程向紅,杜忠華
(1.南京理工大學(xué) 機(jī)械工程學(xué)院,南京 210094;2.東南大學(xué) 儀器科學(xué)與工程學(xué)院,南京 210096)
星敏感器(Star tracker)是自主姿態(tài)測量系統(tǒng)中以星空中的恒星為觀測目標(biāo)的高精度姿態(tài)測量儀器,具有精度高、工作壽命長等優(yōu)勢,有效保證了航天器的可靠飛行和工作,在深空探測、遙感、編隊(duì)飛行等航天應(yīng)用領(lǐng)域中具有重要的戰(zhàn)略意義[1]。傳統(tǒng)星敏感器通常是采用CCD 或CMOS 圖像傳感器,是基于幀的成像模式,在曝光時(shí)間內(nèi)拍攝視場內(nèi)的恒星分布,通過提取星點(diǎn)質(zhì)心、匹配星圖完成航天器的姿態(tài)測量與跟蹤[2]。載體的大機(jī)動(dòng)會(huì)導(dǎo)致星圖拍攝模糊、星點(diǎn)拖尾等現(xiàn)象,嚴(yán)重影響星點(diǎn)質(zhì)心的提取精度,限制了星敏感器的使用[3]。對于傳統(tǒng)光學(xué)星敏器的運(yùn)動(dòng)模糊問題,常用的去模糊方法主要有維納濾波、RL(Richardson-Lucy)算法和改進(jìn)的Radon 方法等[4]。這些方法主要解決傳統(tǒng)視覺傳感器去模糊問題,存在易受噪聲干擾、算法復(fù)雜等問題,且當(dāng)動(dòng)態(tài)過大時(shí)去模糊效果不理想。
事件相機(jī)是一種敏感光強(qiáng)變化從而實(shí)現(xiàn)異步像素觸發(fā)的傳感器。與傳統(tǒng)的幀相機(jī)相比,其成像范式發(fā)生了改變,具有高動(dòng)態(tài)范圍、高時(shí)間分辨率、低功耗的特點(diǎn)[5],尤其適合運(yùn)動(dòng)檢測,因此已被用于場景重建、無人駕駛、目標(biāo)跟蹤等領(lǐng)域。鑒于事件相機(jī)的突出優(yōu)勢,其應(yīng)用也逐漸擴(kuò)展到空間探測領(lǐng)域[6]。Cohen等人[7,8]利用事件相機(jī)對恒星和行星進(jìn)行了不同程度的探測實(shí)驗(yàn),測試并驗(yàn)證了事件相機(jī)進(jìn)行連續(xù)實(shí)時(shí)天體測定的可行性。Afshar 等人[9]提出了一種檢測和跟蹤方法,旨在處理由事件相機(jī)采集的空間目標(biāo)數(shù)據(jù),包括基于特征的檢測器和能夠同時(shí)跟蹤多個(gè)目標(biāo)的順序最小二乘跟蹤器。Chin 等[10]研究了利用事件相機(jī)進(jìn)行恒星跟蹤的相對姿態(tài)解算技術(shù)方案,研究表明其與傳統(tǒng)傳感器相比具有更低的功耗和更快的運(yùn)行速度。呂媛媛等[11]利用事件相機(jī)對空間目標(biāo)進(jìn)行探測,建立并驗(yàn)證了事件相機(jī)空間目標(biāo)探測靈敏度模型,為觀測實(shí)驗(yàn)設(shè)置提供參考。周曉麗等[12]研究了一種空間目標(biāo)事件流數(shù)據(jù)的降噪算法,為后續(xù)的空間場景視覺應(yīng)用提供基礎(chǔ)。
由于事件相機(jī)的異步成像特性,需要將一定時(shí)間窗口內(nèi)的事件量進(jìn)行積分以構(gòu)建時(shí)間曲面圖像??紤]到積分時(shí)間窗口與目標(biāo)的相對動(dòng)態(tài)有關(guān),在高動(dòng)態(tài)環(huán)境下,積分時(shí)間選取過長,會(huì)造成星點(diǎn)光斑成像模糊拖尾;積分時(shí)間選取過短,則會(huì)造成星點(diǎn)光斑特征不足,難以識別。實(shí)際應(yīng)用中動(dòng)態(tài)環(huán)境復(fù)雜,難以用先驗(yàn)設(shè)置值匹配所有場景,因此,本文針對動(dòng)態(tài)環(huán)境下星點(diǎn)光斑特征清晰成像的需求,提出一種事件星敏器自適應(yīng)積分時(shí)間曲面算法。該算法對去噪后積分形成的星點(diǎn)目標(biāo)進(jìn)行橢圓擬合,根據(jù)擬合結(jié)果自適應(yīng)調(diào)整積分時(shí)間,實(shí)現(xiàn)了動(dòng)態(tài)環(huán)境下星點(diǎn)目標(biāo)的有效提取,提高了星敏感器的動(dòng)態(tài)檢測能力。
動(dòng)態(tài)視覺傳感器(Dynamic Vision Sensor)又稱事件相機(jī),起源于基于幀的硅視網(wǎng)膜設(shè)計(jì)。與以固定幀速率生成完整圖像的傳統(tǒng)相機(jī)不同,事件相機(jī)各像素獨(dú)立敏感光照強(qiáng)度變化,當(dāng)像素的亮度變化超過預(yù)設(shè)閾值,則會(huì)觸發(fā)產(chǎn)生一個(gè)事件,如圖1 所示。
圖1 單個(gè)感光像素單元產(chǎn)生事件示意圖Fig.1 Schematic diagram of events generated by a single photosensitive pixel unit
事件流使用地址事件表示協(xié)議,單個(gè)事件可以表示為ei=(xi,yi,ti,pi),i為事件序號,ti為事件發(fā)生時(shí)間,(xi,yi)為像素坐標(biāo),pi?{- 1,1}表示事件極性(-1代表亮度變暗,1 代表亮度變亮)。
圖1 中I表示光電流??梢?,事件相機(jī)各像素獨(dú)立響應(yīng)其對數(shù)光電流(用于表征亮度L)的變化。在無噪聲場景中,當(dāng)像素處的上一次事件亮度增加時(shí),事件ei在像素(xi,yi)處和時(shí)間ti處被觸發(fā)。
其中,Δti是同一像素的兩個(gè)相鄰事件的時(shí)間差。
當(dāng)亮度變化達(dá)到事件生成閾值C(C> 0),則產(chǎn)生對應(yīng)像素(xi,yi)處的事件輸出,即
事件星敏器的技術(shù)方案如圖2 所示,不同于傳統(tǒng)星敏感器在曝光時(shí)間內(nèi)累積入瞳光電子的方式形成灰度星圖,基于事件相機(jī)的星敏感器需要對輸出的異步事件流去噪后進(jìn)行積分處理形成星圖虛擬幀,進(jìn)而完成質(zhì)心提取、星圖識別以及姿態(tài)解算等一系列步驟。其中,積分時(shí)間的選擇是保障高動(dòng)態(tài)環(huán)境下質(zhì)心提取精度的關(guān)鍵之一。如果積分時(shí)間過短,可能導(dǎo)致虛擬幀中目標(biāo)的弱結(jié)構(gòu),不能完整表達(dá)目標(biāo)特征。相反如果積分時(shí)間過長,會(huì)導(dǎo)致目標(biāo)存在拖尾現(xiàn)象,嚴(yán)重影響星圖識別的能力。合適的積分時(shí)間能夠構(gòu)造清晰的星圖虛擬幀,使其具有明顯的目標(biāo)特征,無過多位移和運(yùn)動(dòng)模糊現(xiàn)象。積分時(shí)間的設(shè)置與目標(biāo)的動(dòng)態(tài)息息相關(guān),當(dāng)相對運(yùn)動(dòng)劇烈時(shí),設(shè)置較短的積分時(shí)間即可獲得清晰點(diǎn)目標(biāo);當(dāng)相對運(yùn)動(dòng)比較平緩時(shí),應(yīng)做長積分設(shè)置以獲得星點(diǎn)的清晰特征。然而,相對運(yùn)動(dòng)的動(dòng)態(tài)情況無法預(yù)先獲取,難以針對各類場景設(shè)置統(tǒng)一的積分長度。本文針對相對動(dòng)態(tài)不確定性問題,研究了自適應(yīng)積分時(shí)間曲面算法,以確保復(fù)雜動(dòng)態(tài)環(huán)境下對星圖的清晰成像。
圖2 事件星敏感器工作流程圖Fig.2 Event-based star sensor work flow chart
星空背景下星點(diǎn)目標(biāo)微弱,星點(diǎn)事件流數(shù)據(jù)具有稀疏的特性,單個(gè)事件點(diǎn)包含的信息太少,使得傳統(tǒng)圖像處理方法無法直接適用,需要對星點(diǎn)事件流e={(x,y,t,p)}進(jìn)行積分處理,形成虛擬幀,構(gòu)建場景的幾何結(jié)構(gòu),從而增加目標(biāo)特征信息。星點(diǎn)事件流是事件相機(jī)運(yùn)動(dòng)在連續(xù)時(shí)間段t? [tstart,tend]的輸出。通過對事件流進(jìn)行積分,生成N張?zhí)摂M幀圖像。
在事件流e中,每個(gè)虛擬幀圖像為:
虛擬幀Pi是對事件窗口內(nèi)所有事件點(diǎn)進(jìn)行積分得到的。
對事件流積分形成的虛擬幀圖像在時(shí)間域是連續(xù)且不重疊的,即
一種常用的事件流處理方法是將固定時(shí)間窗口d內(nèi)的事件積分為虛擬幀[13]。采用固定時(shí)間存在的問題是:如果積分時(shí)間選擇過長,則會(huì)導(dǎo)致事件存在堆疊,使得目標(biāo)存在拖尾;相反如果過短,則會(huì)導(dǎo)致目標(biāo)事件稀疏。另一種常用的方法是積累固定數(shù)量的k個(gè)事件形成虛擬幀[14]。這種方法的缺點(diǎn)是缺乏全局性,對于具有多個(gè)特征的復(fù)雜場景,難以設(shè)置合適的全局k值。為了解決這一問題,提出一種星點(diǎn)事件流積分方法—自適應(yīng)積分時(shí)間曲面算法(Adaptive Integration Time Surface Algorithm),該算法通過判斷虛擬幀內(nèi)星點(diǎn)目標(biāo)特征來自適應(yīng)地調(diào)整時(shí)間窗口。圖3 介紹了三種星點(diǎn)事件流積分方法。三個(gè)時(shí)間軸下的虛擬幀表示這三種積分方法結(jié)果,固定時(shí)間窗口和固定事件數(shù)量的時(shí)間間隔和全局事件數(shù)量是固定的,自適應(yīng)積分時(shí)間曲面算法可以動(dòng)態(tài)調(diào)整積分時(shí)間窗口,從而使其更適合高動(dòng)態(tài)場景。
圖3 三種事件流積分方法Fig.3 Three event stream integration methods
事件相機(jī)由于受自身元器件、電路設(shè)計(jì)和環(huán)境干擾等因素影響,輸出事件流會(huì)包含大量噪聲事件。這些噪聲事件可能被錯(cuò)誤地識別為星點(diǎn),嚴(yán)重影響后續(xù)算法的運(yùn)行。噪聲事件具有隨機(jī)性、孤立性的特點(diǎn),在成像平面上隨機(jī)分布;星點(diǎn)運(yùn)動(dòng)產(chǎn)生的真實(shí)事件在時(shí)空上具有延續(xù)性和持續(xù)性,在一定時(shí)間段內(nèi)總是聚集分布[15],因此利用事件的時(shí)空關(guān)聯(lián)性,構(gòu)造時(shí)空濾波器可以有效去除噪聲事件,如圖4 所示。
圖4 時(shí)空濾波器去噪示意圖Fig.4 Schematic diagram of spatiotemporal filter denoising
時(shí)空濾波器在事件的空間鄰域中搜索時(shí)間戳比閾值dT更接近處理事件時(shí)間戳的事件。如果存在時(shí)間戳比閾值dT更接近處理事件時(shí)間戳的事件,則處理事件得到支持并可以通過濾波器,否則處理事件將作為噪聲被濾除。采用式(9)對輸出的事件流進(jìn)行時(shí)空濾波去噪。
事件點(diǎn)ei(xi,yi,ti,pi)不是背景噪聲等效于:
其中,ei(xi,yi,ti,pi)是處理事件;tc,r是列col=c、行row=r處最近事件的時(shí)間戳,不包括處理事件;dT是設(shè)置的時(shí)間閾值。
對于每個(gè)事件采取如下步驟:
1)對于每個(gè)事件,將事件的時(shí)間戳存儲在所有8個(gè)相鄰像素的時(shí)間戳內(nèi)存中,并覆蓋之前的時(shí)間戳;
2)檢查當(dāng)前時(shí)間戳是否在寫入此事件位置的時(shí)間戳的前一個(gè)值dT以內(nèi)。如果時(shí)間差小于dT,則該事件作為有效事件保留并輸出,否則將其作為背景噪聲去除。
事件流通過事件簇的形式傳遞信息,星點(diǎn)的運(yùn)動(dòng)、光強(qiáng)的變化都會(huì)產(chǎn)生時(shí)空上關(guān)聯(lián)緊密的事件,稱之為事件簇。星點(diǎn)產(chǎn)生的事件簇幾何形狀呈橢圓形,因此可以使用最小二乘橢圓擬合,得到星點(diǎn)事件簇的幾何中心、長短半軸等信息。
橢圓曲線的一般性方程為:
其中,α1,α2…α6為待回歸的橢圓參數(shù);xe和ye為數(shù)據(jù)點(diǎn)坐標(biāo)。
基于最佳平方逼近理論,結(jié)合橢圓一般方程,對式(10)中的參數(shù)進(jìn)行回歸:
從目標(biāo)函數(shù)的最小值進(jìn)行計(jì)算,可以得到參數(shù)值α1~α6。由此可以解算其幾何中心坐標(biāo)(X,Y)和長、短半軸a、b:
星點(diǎn)目標(biāo)在事件相機(jī)成像近似為圓形,而在高動(dòng)態(tài)環(huán)境下,星點(diǎn)事件簇因運(yùn)動(dòng)模糊成像近似為橢圓形,圖5(a)是視場中的星點(diǎn),圖5(b)為事件相機(jī)輸出的星點(diǎn)事件流,圖5(c)是對星點(diǎn)事件流積分得到的虛擬幀。理想的虛擬幀,其中每個(gè)星點(diǎn)簇形狀應(yīng)該近似為圓形,所以可以通過星點(diǎn)的幾何形狀特征判斷當(dāng)前積分時(shí)間窗口是否合適,如果不符合要求則繼續(xù)調(diào)整積分時(shí)間,流程圖見圖6。
圖5 視場中的星點(diǎn)、星點(diǎn)事件流和星點(diǎn)事件流虛擬幀F(xiàn)ig.5 Star point in field of view,star event stream and star event stream virtual frame
圖6 基于橢圓函數(shù)特征參數(shù)擬合算法流程Fig.6 Algorithm flow of characteristic parameter fitting based on elliptic function
對于星圖事件流采取如下步驟:
1)利用時(shí)空濾波器去噪,將事件流中的噪聲事件去除;
2)將去噪后的事件流按照動(dòng)態(tài)積分時(shí)間T積分成虛擬幀,初始時(shí)動(dòng)態(tài)積分時(shí)間為T0;
3)對于得到的虛擬幀,利用星點(diǎn)簇邊緣事件點(diǎn)進(jìn)行橢圓擬合,解算出星圖虛擬幀中每個(gè)星點(diǎn)的長半軸a和短半軸b。定義一個(gè)評價(jià)值γi,滿足:
其中,ai和bi分別為第i個(gè)星點(diǎn)擬合橢圓的長半軸和短半軸。
4)判斷評價(jià)值γi是否處于閾值范圍 [γmin,γmax]內(nèi),標(biāo)準(zhǔn)星點(diǎn)形狀近似為圓形,γi值接近1。如果星點(diǎn)簇的γi均處于閾值內(nèi),則采用當(dāng)前的動(dòng)態(tài)積分時(shí)間T;若不滿足要求,則將動(dòng)態(tài)積分時(shí)間T增加τ,即T=Told+τ。判斷當(dāng)前積分時(shí)間T是否處于設(shè)定時(shí)間閾值 [Tmin,Tmax]內(nèi)。如果處于時(shí)間閾值內(nèi)則返回步驟2。
5)創(chuàng)建一個(gè)列表儲存當(dāng)前虛擬幀序號、積分時(shí)間和符合標(biāo)準(zhǔn)的星點(diǎn)簇?cái)?shù)量,即評價(jià)值γi處于閾值范圍內(nèi)的擬合橢圓數(shù)量。選擇符合標(biāo)準(zhǔn)的星點(diǎn)簇?cái)?shù)量最多的積分時(shí)間作為最優(yōu)積分時(shí)間,此時(shí)虛擬幀內(nèi)標(biāo)準(zhǔn)星點(diǎn)簇最多。如果存在多個(gè)時(shí)間窗口的標(biāo)準(zhǔn)星點(diǎn)簇同為最大值,則選擇最小積分時(shí)間作為最優(yōu)積分時(shí)間。
為了驗(yàn)證本文所提方法,本文設(shè)置了轉(zhuǎn)臺實(shí)驗(yàn)和滑軌實(shí)驗(yàn)。實(shí)驗(yàn)設(shè)置見圖7,轉(zhuǎn)臺實(shí)驗(yàn)(角運(yùn)動(dòng))將事件相機(jī)通過支架固定在高精度三軸轉(zhuǎn)臺,滑軌實(shí)驗(yàn)(線運(yùn)動(dòng))將事件相機(jī)固定在滑軌上,模擬星圖使用小型LED 燈來模擬星點(diǎn)。控制轉(zhuǎn)臺僅水平方向轉(zhuǎn)動(dòng),轉(zhuǎn)速分別設(shè)置5 °/s、10 °/s、15 °/s、20 °/s??刂苹壏謩e設(shè)置相機(jī)直線運(yùn)動(dòng)速度為100 mm/s、200 mm/s、300 mm/s 和400 mm/s。事件傳感器原理與普通相機(jī)不同,但針孔成像模型仍適用。在開始拍攝前,通過閃爍棋盤格對事件相機(jī)進(jìn)行標(biāo)定[16],得到相機(jī)的內(nèi)參矩陣和畸變參數(shù)。在轉(zhuǎn)臺轉(zhuǎn)動(dòng)的同時(shí)利用事件相機(jī)進(jìn)行拍攝,同時(shí)上位機(jī)采集事件流數(shù)據(jù)。
分別利用本文提出的方法和常用的固定時(shí)間窗口方法對事件流進(jìn)行積分處理,將不同動(dòng)態(tài)環(huán)境的事件流積分形成星圖事件幀,圖8 給出了不同動(dòng)態(tài)環(huán)境下兩種方法積分得到的虛擬幀對比。
圖8 不同動(dòng)態(tài)環(huán)境下兩種事件流積分方法虛擬幀對比Fig.8 Comparison of virtual frames formed by two event stream methods in different dynamic environment
從圖8 可以看出,固定時(shí)間窗口得到的虛擬幀中星點(diǎn)都存在拖尾,且隨著角速度加快,運(yùn)動(dòng)模糊越來越嚴(yán)重;而本文提出的自適應(yīng)積分時(shí)間曲面算法得到的虛擬幀中,星點(diǎn)都是近似理想的圓形星點(diǎn),不存在運(yùn)動(dòng)模糊。
采用兩種積分方法得到星圖虛擬幀后,利用2.2節(jié)提出的橢圓擬合方法得到每幀中的星點(diǎn)質(zhì)心坐標(biāo)。根據(jù)星對角距的不變性,采用視場內(nèi)星對角距統(tǒng)計(jì)偏差Δθ評估星敏感器的姿態(tài)測量精度[17]。
其中,Nstar為當(dāng)前幀視場中的定姿星數(shù);b和v分別為標(biāo)準(zhǔn)星矢量和測量星矢量;l代表幀序號。
分別利用本文提出的方法和常用的固定時(shí)間窗口方法對事件流進(jìn)行積分處理,將事件流積分形成星圖事件幀,固定時(shí)間窗口積分時(shí)間選擇10 ms。得到星圖虛擬幀后,利用2.2 節(jié)提出的橢圓擬合方法得到每幀中的星點(diǎn)質(zhì)心坐標(biāo),根據(jù)式(16)計(jì)算視場內(nèi)星對角距統(tǒng)計(jì)偏差。同時(shí)計(jì)算質(zhì)心的提取成功率,提取成功率是指幀中成功提取的星點(diǎn)與視場中所有星點(diǎn)的比值。若算法可以成功輸出星點(diǎn)質(zhì)心,則判定星點(diǎn)提取成功。
表1 是不同角速度下兩種方法的星對角距統(tǒng)計(jì)偏差和提取成功率。分析實(shí)驗(yàn)結(jié)果,在角速度為5 °/s、10 °/s、15 °/s、20 °/s 的高動(dòng)態(tài)條件下,本文提出方法較常用固定時(shí)間窗口方法星對角距誤差均值分別減少了26.5%、45.7%、60.9%、77.9%。
表1 不同角速度下兩種方法實(shí)驗(yàn)結(jié)果Tab.1 Experimental results of two methods under different angular velocity
表2 是不同線速度下兩種方法的星對角距統(tǒng)計(jì)偏差和提取成功率。分析實(shí)驗(yàn)結(jié)果,在線速度分別為100 mm/s、200 mm/s、300 mm/s、400 mm/s 的高動(dòng)態(tài)條件下,本文提出方法較常用固定時(shí)間窗口方法星對角距誤差均值分別減少了25.1%、48.9%、56.2%、70.7%。且本文提出的方法提取星點(diǎn)的成功率均高于常用的固定時(shí)間窗口方法,在高動(dòng)態(tài)環(huán)境下也可以很好地提取星點(diǎn)坐標(biāo)。
表2 不同線速度下兩種方法實(shí)驗(yàn)結(jié)果Tab.2 Experimental results of two methods at different linear velocity
為了解決事件星敏感器高動(dòng)態(tài)環(huán)境下積分時(shí)間選取不當(dāng)導(dǎo)致星點(diǎn)運(yùn)動(dòng)模糊的問題,本文提出了事件星敏感器自適應(yīng)積分時(shí)間曲面算法,該方法基于虛擬幀內(nèi)星點(diǎn)的幾何形狀特征,實(shí)現(xiàn)高動(dòng)態(tài)下的積分時(shí)間自適應(yīng)選取?;跈E圓函數(shù)特征參數(shù)擬合方法,利用事件流的時(shí)空相關(guān)性進(jìn)行去噪處理,再對去噪事件流進(jìn)行積分處理,根據(jù)虛擬幀內(nèi)星點(diǎn)幾何形狀特征調(diào)整積分時(shí)間。通過實(shí)驗(yàn)驗(yàn)證,該方法可以在高動(dòng)態(tài)環(huán)境下選取出最優(yōu)積分時(shí)間,獲得消除運(yùn)動(dòng)模糊的虛擬幀。