胡茄乾,何超群,龔翼飛,溫中凱,于利夫,李 爽
(1.南京航空航天大學 航天學院,江蘇 南京 211106;2.中國空間技術研究院,北京 100094)
隨著深空探測任務的發展,對火星等深空天體的地表探測任務受到了越來越多研究者的關注。其中如何利用巡視器有限的壽命探索更多有科學價值的區域,獲得更高科學回報,甚至能夠獨立進行科學勘探是研究的重點方向。火星表面的環境自主分析,比如自主提取科學興趣區域、檢測行進障礙等是實現巡視器自主探測的基礎。火星表面環境惡劣,許多區域雖然沒有障礙,但是由于地質過軟會導致巡視器下陷、有可滑動的石塊會導致巡視器打滑等問題依然不適合通行,而這些區域無法用激光雷達等主動傳感器分辨,只能依靠相機。但是火星表面的圖像顏色單一且缺少紋理,傳統的基于紋理和灰度梯度的圖像處理方法無法適應這一環境。針對這一難題,本文利用全卷積神經網絡(Fully Convolutional Networks,FCN),借助機器學習強大的分類能力,利用較小的樣本,實現火星表面地貌的分割。
于1997 年7 月4 日著陸在火星表面的索杰納號(Sojourner)是第一個承擔科學勘探任務的火星巡視器[1],出于可靠性因素,它的運作由地面工作人員全權掌控,因此任務執行效率很低。美國國家航空航天局(NASA)、噴氣推進實驗室(JPL)等科學機構,分別建立了巡視器命令語言[2](Contingent Rover Language,CRL)系統、火星在線自主科學考察系統[3](Onboard Autonomous Science Investigation System,OASIS)等,旨在進一步提高“勇氣號”與后續火星巡視器的自主性能。OASIS 通過利用Sober與Canny 算子[4]來檢測導航相機所采集圖像中的閉合輪廓,發展了巖石的快速識別技術;利用序列圖像差分算法實時監測塵暴;利用邊緣檢測算法分割圖像中天空與地面,并認為天空中局部梯度變化較大處為云層,發展了云層識別算法[5-7]。在執行火星“勇氣號”任務后,科學家們一直認為應逐步增加自主分析與智能決策在遠地天體探測任務中的分量,URBACH 等[8]圍繞軌道器遙測數據,發展了火星表面隕石坑自主標定技術。隨后,PINA 等[9]也利用相同數據源發展了火表沙丘地的檢測與標定技術。PALAFOX 等[10]將深度神經網絡應用至火表科學地貌勘探任務中,并驗證了卷積神經網絡(CNN)網絡在檢測不規則火山、波紋風脊這兩類典型特征的優勢[11]。ROTHROCK 等[12]于2016 年發布了火星土壤性質與對象分類(Soil Property and Object Classification,SPOC)框架,其核心是面向火星巡視器自主勘探任務,利用深度學習對復雜地形、地貌進行細致分類,SPOC 共建立了17 類火星地貌,并在AlexNet 基礎上使用遷移學習(Transfer Learning)技術訓練了地形分類網絡,相關技術也將在火星“毅力號”得到驗證,但其在部分地貌下準確率較低,不能滿足全局分割要求。
火星地表場景復雜,包括其衛星在內,有大量不同于地球地表的地形[13],傳統的基于灰度值不連續性和相似性的方法,例如語義紋理森林(Semantic Texton Forests,STF)[14]、馬爾科夫隨機場(Markov Random Fields,MRF)分割[15]等,不能滿足火星場景應用的實時性、魯棒性等需求,圖像語義分割也向深度學習方向發展。CNN 一被提出,就憑借其強大的非線性泛化回歸能力,成為深度學習圖像處理的有力工具,然而受限于其全連接層的一維性,只能將一幅圖片作為一個整體,對其分類進行預測。LONG[16]創造性地將CNN 結構末端的全連接層替換為卷積層,提出了FCN,使得其能夠對不同分辨率圖片上的每一個像素進行預測,得到其歸屬類型的概率分布,相對于像素區塊的分割方法,準確性和快速性都得到了明顯提高,奠定了后續深度學習語義分割的基礎。卷積操作不可避免地縮小了輸入圖像的分辨率,導致即使將全連接層替換為卷積層,最后得到的像素概率分布的分辨率也是小于原圖像,對于這個問題,FCN 引入反卷積(Transpose Convolution)對輸出的概率分布進行處理,最終雖然得到了與原圖像分辨率相同的結果,但是忽略了像素與像素之間的關系,一定程度上減少了圖像信息。RONNEBERGER 等[17]提 出UNet,使用一個收縮通道(Contracting Path)來捕獲像素之間上下文特征關系,再通過擴張通道(Expanding Path)來執行分辨率恢復操作,這兩個通道在結構上呈U 形對稱關系,采用Contact 方法進行特征融合,改進了FCN 會忽略特征信息的不足,但是增大了計算量,且對輸入圖像的分辨率有嚴格要求。BADRINARAYANAN 等[18]在FCN 的基礎上提出使用編碼器-解碼器(Encoder-Decoder)結構的Seg-Net,分別取代了下采樣/收縮通道和上采樣/擴張通道,解碼器網絡采用最大池化層索引(Max-pooling Index)進行特征恢復,進一步減少了特征信息丟失,并提高了運算效率。CHEN 等[19]將空間金字塔池化(Spatial Pyramid Pooling)與編碼器-解碼器融合,提出了DeepLabV1,在下采樣階段提出空洞卷積(Atrous Convolutions),保持參數數量不變的情況下擴大了卷積核的感受野,避免了下采樣過程過多的池化操作帶來的分辨率縮小與信息丟失。空洞空間金字塔池化(Atrous Spatial Pyramidal Pooling,ASPP)通過不同空洞比率的卷積,提取了多尺度的特征信息,節省了時間與計算成本。該團隊后續對DeepLabV1 網絡不斷改進,又提出了Deep-LabV2[20]、DeepLabV3[21]、DeepLabV3+[22]若干個改良版本,其中,DeepLabV3+網絡使用了深度可分離卷積(Depthwise Separable Convolution),在不丟失分割性能的前提下,減少了參數量,降低了運算量,成為基礎應用中運用最廣泛的語義分割網絡。SEDIQI[23]提出基于引導濾波器的密集卷積上采樣方法,有效地保留了二維空間特征信息,實現了精確的對象邊界分割,在ADE20K 和Pascal-Context基準數據集上分別達到了82.86%和81.62%的像素準確率,在Cityscapes 數據集上MIou 達到了83.3%。袁偉等[24]將色差信息輸入到神經網絡中,通過空間變換將其作為PSPNet 的輸入,使分割結果在準確度上得到一定提高。
綜上所述,深度學習方法在圖像分割方面相比于傳統方法具有較大的優勢,而且目前已經擁有豐富的火星表面圖像數據,用于驅動深度神經網絡的訓練,但是缺少公開的已標注數據,且全局分割能力不足。面對上述的火星圖像自主分割難題,本文提出了基于FCN 的火星表面地貌分割方法,利用好奇號拍攝的大量火星表面圖像構造可訓練的數據集,并針對火星場景灰度值單一特點,采用自適應伽馬變換(Adaptive Gamma Transformation,AGT)方法進行圖像預處理,通過全卷積網絡實現了火星表面高準確度的地貌分割,旨在火星表面巡視任務中巡視器能夠自主實現對火星地貌的感知并進行可通過性的評價。
經典的卷積神經網絡在卷積層的末端會加入若干個全連接層,用來將卷積操作得到的特征圖歸一化,將三維的特征信息映射到一維向量,得到整個圖像分類的概率分布。與經典的卷積神經網絡不同,FCN 將經典卷積網絡的全連接層,替換為1×1 的卷積處理,對之前卷積操作獲得的特征圖再次進行卷積計算,從而得到像素級分類概率。
由原始高分辨率圖像獲得低分辨率的像素分類概率圖,這一過程被稱為下采樣(Downsample)。每一層卷積操作的計算公式如下:
式中:i、j為像素坐標;k為卷積核的尺寸;s為卷積步長;fks為卷積層的類型,包括矩陣相乘卷積、平均/最大池化、激活層等。
之后,再通過上采樣(Upsample)計算,將像素概率圖擴充為原圖分辨率大小,即可得到原始每個像素所屬類型的概率分布預測結果。
本文所使用的DeepLabV3+是2018 年推出的全卷積類型深度神經網絡結構,它沿用了編碼-解碼(Encoder-Decoder)結構,如圖1 所示。在編碼階段,首先使用若干層深度卷積網絡(DCNN)對輸入圖像進行特征提取,得到深層信息特征圖;接著對特征圖進行1×1 卷積(Conv)、膨脹率(rate)分別為6、12、18 的空洞卷積和池化(Pooling)操作,將多個不同尺度的結果合并為多層特征圖;最后再使用1×1 卷積進行特征壓縮。在解碼階段,首先從編碼器的初始卷積中獲得低層特征信息,卷積處理后與4階上采樣計算過的高層特征圖合并,然后通過卷積和上采樣化,得到原始分辨率的預測圖。Deep-LabV3+通過膨脹率可調的空洞卷積,擴大了感受野,可以任意控制編碼器獲得的特征的分辨率,獲取不同尺度的上下文信息。
在自建數據集數據量少,難以使FCN 得到充足訓練的情況下,本文使用預訓練模型來加速訓練過程。預訓練模型是其他科研人員使用相同的網絡結構,在大量相同的任務、相似的數據集下訓練得到的網絡參數模型。本文提出的火星地貌分割FCN,骨干(backbone)網絡采用可以快速、有效地提取圖像特征的ResNet50 網絡[25]。ResNet50 是常用的圖像特征提取網絡,其通過引入殘差結構,減小了深層神經網絡降低收斂速度和準確率的影響。ImageNet 則是分類任務中被廣泛用于訓練、驗證、測試的數據集。ImageNet 包含1 400 萬張圖片,共1 000 個類別,需要在龐大的計算能力下才能進行完整的訓練。目前,經過訓練的ResNet50 網絡模型已經開源供研究人員使用,將其預訓練模型應用到本文的仿真中,可以大大加快訓練速度,提高訓練準確率,減小數據匱乏帶來的弊端。基線網絡(baseline)則使用1.1 節介紹的DeepLabV3+網絡。
卷積神經網絡的優化采用梯度下降優化算法,是神經網絡反向傳播的核心。梯度下降算法中,學習率決定了每次優化的學習步長,也決定了神經網絡的參數優化效率。學習率如果設置得過高,會導致函數在最優值附近震蕩,增加找到全局最優的時間甚至不收斂,如果設置得太小,會導致函數收斂速度變慢,訓練時間加長,甚至無法進行學習。考慮到本文使用預訓練模型進行訓練,學習率不宜設置過大,根據訓練經驗,將學習率設置為0.000 1。由于小數據集在訓練過程中極易出現過擬合現象,對損失函數采用L2 正則化處理,λ參數設置為0.001。
火星表面常年受到風吹影響,其地形地貌以沙地和碎巖類型為主要構成,這決定了火星地形數據集圖像多數為灰色,像素灰度變化范圍小,圖像整體過暗,對比度低。且火星大氣層稀薄,自轉速度快,導致其地表光照變化較快,加上常見的沙塵暴對相機視覺的干擾,不確定性因素相比地球遙感圖像更多。因此使用原始圖像作為直接輸入,會給圖像分割的實現帶來困難[26]。為了解決上述問題,提出基于AGT 的火星地表圖像預處理方法,降低灰度單一情況下火星圖像的干擾因素影響,繼而提高卷積神經網絡對特征的提取能力,使深度神經網絡更好地分辨地形邊界等重要特征。
經典伽馬變換(Gamma Transformation,GT)的基本形式如下:
式中:o為輸出的灰度等級;r為輸入的灰度等級;c為GT 的補償系數;γ為伽馬參數。
GT 需要人工手動設定變換參數,如圖2 所示,不同的參數范圍得到的增強效果也不同,導致對同一圖像集批處理,會出現部分過飽和或欠飽和現象,降低了預期效果。

圖2 伽馬變換圖像處理結果Fig.2 Results after GT
在文獻[26]的基礎上,改進現有的AGT 方法,依據不同圖像的整體亮度平均值和標準偏差,計算確定每張圖像的最佳伽馬參數。根據火星圖像整體處于低對比度的情況考慮,統一使用下式計算伽馬參數:
式中:μ為圖像整體亮度均值;σ為圖像整體亮度標準偏差。
μ和σ通過原始RGB 格式圖像轉換為HSV 格式圖像,再處理V 通道亮度信息得來,由此可以根據不同圖像的對比度情況,自適應獲得伽馬參數,進行合適的伽馬校正,如圖3 所示。人工設置的伽馬參數出現了欠飽和現象,而自適應伽馬校正后的像素分布更加均勻,數據能夠更好地適應深度學習處理任務。

圖3 不同圖像像素分布直方圖Fig.3 Distribution histograms of image pixels
目前地形地貌分割工作的主要領域為對地遙感觀測,用于識別并分割遙感衛星拍攝的地球表面不同的地貌,類型包括農田、河流、城市、山脈等。火星表面目前尚未發現河流、植被、有機生命生存環境等,只存在基礎的土壤與巖石,但由于火星沙塵風暴天氣的影響,地形地貌仍然復雜多樣且難以區分。
本文的數據集以Mars32K 數據集為基礎,Mars32K 數據集是NASA 發布的包含好奇號火星車在6 年時間里探索火星的蓋爾撞擊坑的過程中拍攝的3 萬多張圖像。根據基礎地形分割經驗,結合實際火星探測目標研究價值[12],本文將火星地貌分類為沙地、基巖、露出的粗糙的石頭、露出的光滑的石頭、履帶痕、斷層巖和碎石共7 種,其分類依據見表1。

表1 火星地貌類別和地貌定義Tab.1 Types and definitions of Mars terrain
從Mars32K 圖像庫中,挑選地貌特征豐富、不同地貌邊界明顯易于觀察的447 張圖片統一處理為256×256,使用Labelme 工具進行人工標注。在標注完成后,Labelme 生成了各幅圖像一一對應的json數據,存儲了標注目標的像素信息,再將其轉換成圖片格式,完成了數據集建立的初步工作,如圖4 所示。

圖4 火星地貌數據集建立Fig.4 Schematic diagram of the Mars terrain dataset
本試驗以人工標注的火星地形地貌數據集為基礎,經GT 處理后,輸入FCN 進行訓練、測試,仿真軟件平臺為Windows 10 專業版,仿真程序使用Python代碼編寫,硬件方面CPU 為I5-8400,主頻2.8 GHz,顯卡為NVIDIA 1050ti。訓練參數方面,batch size為16,學習率為0.000 1,weight decay 為0.001。
以447 張圖片輸入到FCN 中訓練一次為1 代(epoch),共訓練100 個epochs,batch size 設置為16,訓練和驗證損失函數變化如圖5 和圖6 所示。

圖5 訓練損失函數值Fig.5 Training loss function values

圖6 驗證損失函數值Fig.6 Validating loss function values
由圖5 和圖6 可以看出,在訓練過程中,訓練損失函數值和驗證損失函數值都處于整體穩定下降的狀態,在訓練進行到后期時,訓練損失函數值仍具有繼續下降的趨勢,而驗證損失函數值已經趨于平穩,且沒有上升的趨勢,證明了網絡模型尚未出現嚴重的過擬合現象,保證了模型的擬合泛化能力。
以準確率(ACC)和平均交并比(MIou)作為評價指標,對比 SPOC、ResNet+FCN、GT+ResNet+FCN 方 法、GT+ResNet+DeepLabV3+方法和AGT+ResNet+DeepLabV3+方法,測試結果見表2。

表2 火星地貌分類測試結果Tab.2 Results of Mars terrain segmentation tests
由表2 可以看出,相對于網絡模型較為陳舊的SPOC 方法,使用ResNet 作為骨干網絡使得地形分割測試準確率提升了約10%,這是由特征提取性能更加強勁的主干網絡帶來的,而結合了GT 的ResNet+FCN 方法,雖然在準確率上僅提升了1.34%,但是GT 降低了干擾因素的影響,使各個分類之間區別更加明顯,像素特征更容易互相區分,從而在平均交并比上提升了6.48%。將基線網絡替換為DeepLabV3+結構,雖然在準確率上有微弱提升,但是其強勁的性能在分辨率較小、分類較少且在具有不均衡性的火星地貌數據集上未能得到完全發揮,平均交并比反而有所下降。可見,對于不同規模、類型的數據集,更先進的網絡不一定能發揮更好的效果,這與數據和模型的適應性是息息相關的,而使用AGT 進行圖像處理,兩項指標相對于GT 均有所提升,驗證了本文所提方法對火星圖像深度學習效率提升的有效性。將預測結果可視化,其中一些地形分割結果如圖7 所示。

圖7 測試結果Fig.7 Graphical test results
從圖7 可以看出,對于訓練數據集中數據較豐富的沙地、基巖,網絡的預測結果較為準確,能明顯分割出這類地形與其他地形的邊界,而對于斷層巖、露出的巖石種類等數據類型較少的地形地貌,訓練效果較差,導致在一些模糊地形中預測結果比較混亂。一方面這是實際火星環境下,沙塵風暴導致地形邊界不明顯,特征匱乏造成的;另一方面,標注數據集質量參差不齊,測試結果反而檢測到了不同地形的模糊邊界,導致其存在部分與人工標注真實基準(Ground Truth)不同。試驗證明,本文提出的結合AGT 和FCN 的火星地貌分割方法,可以對火星地表圖像進行適當處理,便于像素值鄰近的各種地形的分割,提高了深度網絡的準確性,卷積網絡經過離線訓練后,能夠自主地對火星地貌圖像進行特征提取與語義分割,實現多種類地貌的識別、分割,為火星車的無人行駛和自主勘測提供了技術支撐。
為了檢驗模型的過擬合程度,分析數據集質量和數據集劃分對訓練、測試結果的影響,進行10 折交叉驗證試驗。將數據集均分為10 份,其中每份約包含45 對數據,依次取其中1 份作為測試集,另外9 份作為訓練集,進行10 次交叉驗證試驗,得到結果見表3。

表3 10 折交叉驗證結果Tab.3 Results of 10-fold cross validation
由表3 可以看出,在10 折交叉驗證試驗中,測試準確率最低達到79.48%,最高達到87.50%,相差不超過10%,平均準確率為82.20%。交叉驗證試驗說明模型總體過擬合程度較低,具備可靠的信服力與一定的泛化能力,能有效地對火星地表圖像進行語義分割。但是,在數據集的標注質量方面有一定不足,導致不同的數據集劃分方式在一定程度上影響了模型訓練的質量,且對不同批次完整訓練結果的過擬合程度產生影響。
本文提出了一種基于FCN 的火星圖像分割方法,用于火星巡視器自主分割、分類火星典型地形地貌。在人工標注自建火星地表圖像數據集中,使用AGT 進行圖像預處理,然后訓練FCN,獲得了較高的準確率。使用訓練后的網絡對測試圖像進行預測,得到了較為準確的圖像分割結果。結果表明:基于深度學習的地貌智能分割技術可以高效地實現對火星地貌的精確分割,有助于減少人工工作,提高火星巡視器的自主性,為火星巡視器地貌可通過性評估提供了依據。在后續的工作中,提升數據集質量的工作還需要繼續進行,包括數據的擴充和各類別數據量的平衡等。同時還需要關注對火星表面高價值目標的主動識別、火星巡視日志撰寫等提高巡視器自主性的工作,以提高火星巡視任務的科學產出。