鄭雨韻,黃翔宇,毛曉艷
(1.北京控制工程研究所,北京 100094;2.空間智能控制技術(shù)全國重點實驗室,北京 100094)
太陽系存在著數(shù)量龐大的小行星、彗星等小天體,小天體撞擊地球雖然概率極低,但一旦發(fā)生就會引發(fā)巨大災(zāi)難,對地球生物的生存造成巨大威脅[1]。針對近地小行星撞擊地球的威脅,國內(nèi)外學者提出了多種消除或降低威脅的策略,其中無核動能高速撞擊是目前最為成熟、可行的一種策略。為驗證這種動能撞擊防御方式的可行性,美國和歐洲航天局(European Space Agency,ESA)開展了雙小行星撞擊和偏移評估試驗(Double Asteroid Redirection Test,DART)[2],中國正在開展相關(guān)演示驗證任務(wù)的論證。為保證探測器能準確地以最大動能撞擊到小行星預(yù)定區(qū)域,需要實現(xiàn)探測器接近、逼近小行星過程的高精度自主導航與控制。
小行星的軌道和輪廓等信息對精確高速撞擊至關(guān)重要。地面對小行星的測量手段十分有限,小行星星歷信息精度較差(誤差一般200~1 000 km),需航天器利用導航敏感器對目標小行星成像,根據(jù)圖像等信息估計小行星的軌道。目標小行星的圖像識別是圖像導航估計的第一步。小行星尺寸小、亮度弱(一般10星等以上),導航敏感器需要具備暗弱目標成像能力,才能對小行星成像。這導致導航敏感器會同時拍攝到大量暗弱的未知恒星,給目標小行星精確識別帶來挑戰(zhàn)。傳統(tǒng)的目標檢測包括基于特征的模板匹配和基于深度學習的目標檢測算法。其中基于特征的模板匹配法需要較強的特征以區(qū)分目標和背景,如DDIS(Deformable DIversity Similarity)[3];基于深度學習的目標檢測在卷積過程中極易丟失細節(jié),卷積后難以保留目標小行星的信息,如Faster R-CNN[4]、YOLOv3[5]。針對恒星抑制,常用星表匹配方法,如三角形匹配算法[6]和基于多特征匹配的快速星圖識別算法[7],根據(jù)圖像上星點與星表中恒星之間的最小角距判斷該星點是否為恒星,該方法無法抑制未記錄在星表上的恒星,還需要進一步區(qū)分未知的背景恒星和目標小行星。
美國已完成多個小行星飛越、著陸、撞擊任務(wù),如于2005年發(fā)射的“深度撞擊號”(Deep Impact)、2006年發(fā)射的“新地平線號”(New Horizons)、2016年發(fā)射的“歐西里斯–雷克斯號”(OSIRIS-Rex)、2021年發(fā)射的DART和“露西號”(Lucy)等。其中Deep Impact光學導航依托AutoNav系統(tǒng)[8]將相機的點擴散函數(shù)近似為高斯函數(shù),通過測量已知恒星的點擴散以估計高斯函數(shù)的參數(shù),在圖像上疊加該高斯函數(shù)并用最小二乘法調(diào)整位置,以此定位其它恒星和目標物體的位置。KinetX開發(fā)的圖像處理光學導航軟件套件KXIMP為New Horizons和OSIRIS-Rex等任務(wù)提供導航服務(wù),根據(jù)探測器的相機姿態(tài)和視場,將圖像中星點像素坐標映射到非線性探測器空間,比對星表從而確認星點是否為恒星[9]。DART的小型機動自主實時導航算法(SMARTNav)根據(jù)光斑識別視野中2個最大物體中的較小物體,即撞擊目標Didymos-B[10]。Lucy的目標小行星質(zhì)心定位方法與Stardust類似,采用blobber技術(shù)搜索圖像中的亮像素,連續(xù)亮像素形成光斑,根據(jù)光斑大小篩選目標[11]。對于遠距離的目標小行星識別,較多使用星表匹配法,該方法還存在無法篩除星表中未記錄的恒星、運行時間長等問題。
本文針對目標小行星圖像特征弱、未知背景恒星多的特點,研究了利用小行星與背景恒星相對運動特征的目標識別方法。首先采取ORB“改進的具有旋轉(zhuǎn)不變性的FAST和BRIEF算法”(Oriented FAST and Rotated BRIEF,ORB)特征點定位與BEBLID特征點描述結(jié)合的方法對幀間圖像進行配準,再基于閾值分割法識別星點,逐星點計算相應(yīng)窗口之間的結(jié)構(gòu)相似性指數(shù),最后完成暗弱目標小行星的檢測。
由于探測器在不斷運動,探測器的相機坐標系隨時間發(fā)生變化,幀間序列圖像上的恒星背景存在平移、旋轉(zhuǎn)等變換,可使用圖像配準方法將前一幀圖像的坐標系變換為與當前幀圖像相同的坐標系,當前幀圖像如圖1所示。
配準后的前一幀圖像與當前幀圖像的同一恒星處于圖像的同一位置,而目標小行星與背景恒星存在相對運動,因此可對配準后的前一幀圖像與當前幀圖像進行逐一像素點比較,從而剔除背景恒星,保留目標小行星。在接近段,探測器與目標小行星的距離較遠,目標小行星在圖像上所占像素面積極小,目標小行星的相對運動不會影響配準結(jié)果。具體配準流程如圖2所示。
采用ORB對探測器連續(xù)拍攝的目標小行星圖像進行特征點定位。ORB是Rublee等[12]在2011年提出的一種計算成本低、計算速度遠高于SURF[13]、配準精度與SURF接近的特征提取算法,采用改進的FAST(Features from Accelerated Segments Test)算法[14]進行特征點定位。
1)對每一尺度的圖像進行特征點定位。以圖像上的像素點p為例,以p為圓心,以3為半徑畫圓,比較p點灰度值Ip與經(jīng)過該圓的4個等距像素點的灰度值Ip1、Ip2、Ip3、Ip4。若這2個像素點至少存在一對連續(xù)的像素點灰度值與Ip的差值大于閾值h,即該點所處區(qū)域灰度值變化較快,該區(qū)域通常為某種邊緣,則確定p點為圖像一關(guān)鍵點,如圖3所示。
圖3 特征點定位(截?。〧ig.3 Feature point localization (part)
2)基于Harris算法對關(guān)鍵點排序。以每個關(guān)鍵點為中心,分別取窗口,計算該窗口移動(u,v)產(chǎn)生的灰度差值,灰度差值越大則該關(guān)鍵點越重要。定義Harris角點響應(yīng)值為[12]
其中:x、y分別為關(guān)鍵點p的橫縱坐標;Ix和Iy分別為該像素點的水平差分和豎直差分;采用高斯函數(shù)為窗口內(nèi)每個像素點賦予權(quán)重w;設(shè)置k為0.04;選取角點響應(yīng)值較大的前500個關(guān)鍵點作為用于進一步配準的特征點。
使用ORB特征點定位的當前幀圖像如圖4所示,只有部分亮度較高的背景恒星被定位,目標行星過于暗弱,不會被視為特征點,因此目標小行星在幀間圖像的位移大小不會影響后續(xù)配準結(jié)果。
圖4 使用ORB特征點定位的當前幀圖像(截?。〧ig.4 Current frame image using ORB for feature point localization (part)
2020年,Suárez等[15]提出了一種有效的學習型二進制描述符BEBLID(Boosted Efficient Binary Local Image Descriptor),是對BELID[16]的一種改進算法,通過比較特征點鄰域內(nèi)一系列像素點對所在方框的平均灰度值大小,得到該關(guān)鍵點的描述符,精度與速度均優(yōu)于ORB。
BEBLID特征點描述符在特征點鄰域內(nèi)選擇用于比較的512對方形區(qū)域,中心像素為p1、p2,邊長為s。初始化每個弱學習器的閾值T,設(shè)置相同的權(quán)重,采用Adaboost算法不斷迭代p1、p2、s、T,最終輸出“1”和“0”,得到長度為512位的二進制描述符。BEBLID比較每一對方形區(qū)域的平均灰度值以生成描述符。經(jīng)過迭代部分方形區(qū)域包含了特征點鄰域內(nèi)的星點,即每個特征點的描述符提取的特征不是細微的角點特征,而是該星點鄰域內(nèi)其它星點的亮度與位置關(guān)系組成的特征,用于配準的特征為星間結(jié)構(gòu)信息。
其中:γ為學習率,弱學習器hk的權(quán)重 αk取相同值。特征提取函數(shù)f(x)和閾值T組成弱學習器hk
特征提取函數(shù)為特征點鄰域內(nèi)被選擇的一對以p1、p2為中心像素,由s×s個像素組成的方形區(qū)域的平均灰度值之差
遍歷前一幀圖像特征點與當前幀圖像的特征點,由于BEBLID描述符為二進制描述符,因此計算它們的漢明距離(兩個等長字符串之間的漢明距離是兩個字符串對應(yīng)位置的不同字符的個數(shù),即兩個二進制描述符之間對應(yīng)位的值不同的個數(shù))。對于當前幀圖像的每一特征點,保留在前一幀圖像上與其漢明距離最近的特征點,作為正確匹配的特征點對。
由于探測器的運動,幀間序列圖像的恒星背景存在平移和旋轉(zhuǎn),但恒星之間的相對位置不變,是不同時刻探測器相機坐標系上的同一圖像。根據(jù)正確匹配的特征點對,對前一幀圖像進行仿射變換,可將前一幀圖像的恒星轉(zhuǎn)換到當前幀圖像上同一恒星的位置上,達到配準的目的。
1)選取匹配最正確的3個特征點對。從所有特征點對中隨機選出3個特征點對,根據(jù)這3個特征點對計算一個變換矩陣。使用該變換矩陣對所有特征點對進行轉(zhuǎn)換,若轉(zhuǎn)換后的點與原本對應(yīng)的點相差小于閾值,則視該特征點對為正確匹配點對,并記錄正確匹配點對的數(shù)量。重復上一過程,直至達到最大迭代次數(shù),保留正確匹配點對數(shù)量最多的變換矩陣作為最終的變換矩陣。設(shè)置初始最大迭代次數(shù)為500,置信度為0.995,閾值為3,在迭代過程中,根據(jù)置信度、匹配個數(shù)、當前正確匹配點對數(shù)量和當前最大迭代次數(shù)動態(tài)更新最大迭代次數(shù)。
2)計算仿射變換矩陣,通用的變換公式為[17]
使用前文選取的匹配最正確的3個特征點對計算6個未知數(shù),得到坐標系之間的轉(zhuǎn)換矩陣。
3)根據(jù)仿射變換矩陣對前一幀圖像進行變換。將前一幀圖像的每一個像素點位置坐標與仿射變換矩陣相乘,獲得與當前幀圖像同一坐標系的圖像,如圖5所示。配準后的前一幀圖像與當前幀圖像上的恒星背景重疊,目標小行星存在位移。
圖5 前一幀圖像、當前幀圖像、配準后的前一幀圖像(截取)Fig.5 Previous frame image,current frame image and previous frame image after registration (part)
圖像中大部分面積是黑色背景,因此采用先分割再比較的方法,提取當前幀圖像的所有星點,以每一星點為中心取包含該星點的小窗口,計算每一窗口截取的當前幀圖像與配準后的前一幀圖像之間的結(jié)構(gòu)相似性指數(shù),根據(jù)結(jié)構(gòu)相似性指數(shù)判斷該窗口所包含的星點是否為目標星點,完整流程如圖6所示。
1)對當前幀圖像進行二值化。根據(jù)導航敏感器的成像能力和已知的目標小行星星等范圍,將圖像中像素值大于20的像素點賦予新值255,將其它像素點賦予新值0。
2)對二值化后的當前幀圖像進行輪廓檢測[18]。輪廓檢測的具體步驟:①初始化新邊界編號(Newest Border Districts,NBD);②掃描二值化圖像,在掃描到相鄰像素值突變時,認為該處像素點為外邊界起始點,并更新邊界編號為NBD+1,將該邊界點的像素值賦值為NBD;③檢查外邊界起始點鄰域上的非0像素,若存在非0像素,則將該點的像素值賦值為NBD,若不存在非0像素,則認為該邊界點為外邊界終止點;④重復第2步的檢查方式,檢查每個新邊界點;⑤重復第2~4步,進行全圖掃描。
3)計算輪廓的垂直邊界最小矩形。由于恒星與目標小行星的成像均為星點,認為輪廓的垂直邊界最小矩形的中心點為星點質(zhì)心。遍歷每個輪廓邊界,記錄同一邊界所有輪廓點的最大、最小橫縱坐標,從而獲得矩形區(qū)域4個頂點的坐標。記錄每個星點輪廓矩形的左上角頂點坐標(x,y)、矩形寬度w、矩形高度h,并在圖7中繪出。
圖7 當前幀圖像的所有星點(截?。〧ig.7 All star points in the current frame image(part)
結(jié)構(gòu)相似性(Structural Similarity Index)是一種根據(jù)亮度、對比度和結(jié)構(gòu)3個指標衡量2幅圖像相似度的指標[19]。采用逐星點檢測的方法,逐個比對包含各個星點的窗口之間的結(jié)構(gòu)相似性指數(shù)。由于在該階段的圖像中目標小行星僅占1~3個像素,w和h為1~2,且計算結(jié)構(gòu)相似性指數(shù)的滑動窗口大小至少為3,因此設(shè)置包含各星點的窗口以每個星點輪廓矩形的中點(x+w/2,y+h/2)為中心,大小為(w+4)×(h+4)。計算每個窗口截取的當前幀圖像與配準后前一幀圖像之間的結(jié)構(gòu)相似性指數(shù),記錄結(jié)構(gòu)相似性指數(shù)最小的窗口,初步認為其包含的星點為目標小行星。
由于恒星配準精度足夠高,同一恒星之間的結(jié)構(gòu)相似性指數(shù)均大于0.4。目標小行星的幀間位移大小不同,因此存在以下3種情況:①幀間位移遠大于配準誤差,此時最小的結(jié)構(gòu)相似性指數(shù)小于等于0.4,對應(yīng)的窗口包含目標小行星;②幀間位移小于截取窗口邊長,但仍大于配準誤差,此時最小的結(jié)構(gòu)相似性指數(shù)大于0.4,對應(yīng)的窗口包含目標小行星;③幀間位移小于配準誤差,配準后圖像中的目標小行星與當前幀圖像中的目標小行星存在重疊,根據(jù)截取窗口大小和目標小行星所占像素面積,包含目標小行星的窗口對應(yīng)的結(jié)構(gòu)相似性指數(shù)大于0.85,此時最小的結(jié)構(gòu)相似性指數(shù)大于0.4,對應(yīng)的窗口包含配準誤差較大的恒星,而非目標行星。若探測器運動速度較慢,可以選取相隔幀數(shù)較多的2幀圖像進行檢測,即可避免第2、3種情況;若探測器運動速度較快,則相隔幀數(shù)較多的2幀圖像之間恒星背景重復部分較少,難以實現(xiàn)正確的配準,此時通過以下方法區(qū)分。
判斷最小的結(jié)構(gòu)相似性指數(shù)是否小于閾值0.4,若是,則認為是第1種情況,確定該窗口包含的星點為目標小行星,檢測正確;若不是,則進一步判斷前一時刻正確檢測的目標小行星是否位于當前幀初步檢測的目標小行星所在的截取窗口中。若是,則認為是第2種情況,初步檢測的目標小行星是正確檢測。若不是,則初步檢測的目標小行星不是正確檢測,使用前一時刻正確檢測的目標小行星所在窗口分割配準后的前一幀圖像和當前幀圖像,計算二者之間的結(jié)構(gòu)相似性指數(shù)。若大于閾值0.85,則認為是第3種情況,保留前一時刻正確檢測的目標小行星坐標為當前幀圖像正確檢測的目標小行星坐標。若3種情況均不是,則認為未能檢測出目標小行星。
使用上述方法對1 105張圖像進行目標小行星檢測,正確的檢測結(jié)果如圖8所示。
圖8 目標小行星檢測結(jié)果Fig.8 Target asteroid detection results
用于實驗的恒星背景由HIP星表和連續(xù)時刻下探測器的姿態(tài)生成,其中星等為0~9,視場角為6°以便捕獲目標行星。共模擬了1 106張分辨率為1 080×1 080的圖像,其中每張圖像包含50~100顆恒星和1個半徑為1~3個像素的目標小行星。從第2張圖像開始,將前一時刻拍攝的圖像與當前時刻拍攝的圖像進行配準,得到1 105張配準后的圖像,從而進行后續(xù)的目標小行星檢測。
傳統(tǒng)的圖像配準方法有SURF、AKAZE[20]、ORB等,其中ORB速度最快,AKAZE的精度最高。分別使用傳統(tǒng)配準算法和結(jié)合ORB特征點定位與BEBLID描述符的算法進行配準,并對使用4種方法配準后的1 105張圖像進行目標小行星檢測。對檢測結(jié)果進行評估,若檢測的目標小行星與真實的目標小行星像素距離小于等于3,則認為檢測正確。對比ORB特征點定位結(jié)合BEBLID描述符的方法與傳統(tǒng)的圖像配準方法SURF、AKAZE、ORB的檢測精度和配準時間,使用i5-7200U處理器,2.5 GHz主頻,結(jié)果如表1所示。
表1 圖像配準方法對比Table 1 Comparison of image registration methods
傳統(tǒng)的圖像配準方法檢測正確率極低,難以應(yīng)用于序列星點圖像的配準,因為各個細微星點是占像素面積極小的高斯彌散斑點,難以根據(jù)角點特征進行匹配。而ORB與BEBLID結(jié)合的方法以星間結(jié)構(gòu)為特征信息進行匹配,在速度和精度上均明顯優(yōu)于傳統(tǒng)算法,共檢測1 105張星點圖像,其中1 103張圖像檢測正確、2張圖像檢測錯誤、0張圖像未能檢測。
基于圖像配準的目標檢測常用的方法是進行幀間差分,該方法對配準精度有極大精度要求,否則無法完全抑制恒星,易保留恒星邊緣。
另一常用方法是先比較再分割,使用固定大小的滑動窗口對全圖進行掃描,計算相應(yīng)部分之間的結(jié)構(gòu)相似度,得到配準后的前一幀圖像與當前幀圖像的混疊,最后使用閾值分割法定位目標小行星。該方法存在以下缺點:①圖像大部分黑色背景消耗了較長時間;②滑動窗口大小難以選取,較大的滑動窗口難以識別相對運動較小的目標,較小的滑動窗口會消耗較長時間;③在目標行星的相對運動較大時會識別出2個目標,分別為配準后前一幀圖像上的目標和當前幀圖像上的目標,還需要進一步區(qū)分;④在目標行星的相對運動較小時,配準后圖像上的目標和當前幀圖像的目標在混疊后的圖像是部分重疊的,從而無法區(qū)分,且識別出的目標坐標存在一定誤差。
已發(fā)射的小行星探測任務(wù)在該階段多采用星表匹配法。首先根據(jù)探測器姿態(tài)等信息對星表進行分區(qū)。定位圖像中的各個星點,根據(jù)相機視場角、圖像尺寸、相機安裝方向、探測器姿態(tài),計算圖像上的星點在慣性坐標系下的位置矢量,計算其與星表中各個恒星的夾角。根據(jù)視場角和圖像大小,設(shè)置閾值0.01°,若星表上存在一恒星,其慣性坐標與該星點的慣性坐標之間的夾角小于0.01°,則認為該星點為該恒星。遍歷圖像上的每一個星點,從而篩除恒星,保留目標小行星。
文中采用先分割再比較的方法與先比較再分割的方法相比,檢測速度快,且不需要極高的配準精度即可完成檢測。星表匹配法的檢測時間受圖像中星點數(shù)量及相應(yīng)的星表區(qū)域大小影響,檢測時間長。由于本文使用星表生成仿真圖像,檢測結(jié)果足夠精確,而在實際應(yīng)用中檢測精度會受姿態(tài)誤差、星表誤差等影響,且圖像中可能存在星表中未記錄的星點,則需要進一步檢測目標小行星。3種方法的檢測結(jié)果對比如表2所示。
表2 目標小行星檢測方法對比Table 2 Comparison of target asteroid detection methods
針對小天體撞擊任務(wù),采用ORB特征點定位與BEBLID特征點描述結(jié)合的方法進行圖像配準,相比傳統(tǒng)的圖像配準方法具有更高的精度和速度;對于與恒星背景存在相對運動的目標小行星,采用了先分割再比較的方法進行檢測,相比先比較再分割速度更快,并對配準精度具有更強的魯棒性。