龐程程, 張華春, 張巖巖
(1. 中國科學院空天信息創(chuàng)新研究院, 北京 100090;2. 中國科學院大學電子電氣與通信工程學院, 北京100049)
隕石坑作為月球表面最典型且普遍的地貌單元和地質(zhì)結(jié)構(gòu),已成為月球科學研究最多的地貌特征之一。對月表撞擊坑研究有助于加深對月表形貌的認識和理解,對探測器軟著陸地點的修正具有重要意義。由于隕石坑形態(tài)復雜多樣,而人工檢測非常耗時且難以處理大型數(shù)據(jù)集,因此需使用計算機來快速檢測隕石坑。目前應(yīng)用較多的隕石坑檢測方法主要有兩種類型:基于圖像特征的傳統(tǒng)方法和基于機器學習的方法。
基于圖像特征的傳統(tǒng)方法通常會對原始圖像進行預處理以增強坑的邊緣,并使用霍夫變換、橢圓擬合、遺傳算法、Gist特征、分水嶺變換、模式識別、徑向一致性算法或上述方法的組合,將圖像中的環(huán)形坑邊緣識別為圓形或橢圓形特征?;跈C器學習的方法主要使用可擴展模板模型、卷積神經(jīng)網(wǎng)絡(luò)、自適應(yīng)增強和改進自適應(yīng)增強方法、最小二乘支持向量機等。Kang等人提出了一種使用定向梯度(HOG)特征直方圖和支持向量機(SVM)分類器自動提取小規(guī)模撞擊坑的方法。PyCDA是一種基于神經(jīng)網(wǎng)絡(luò)的隕石坑檢測器,由探測器、提取器和分類器組成。Silburt等人用U-Net網(wǎng)絡(luò)對月球DEM圖像數(shù)據(jù)集訓練并輸出預測目標,再用模板匹配算法提取出隕石坑的位置和直徑信息。
然而,目前基于圖像特征的方法雖然處理過程簡單,但檢測精度不高且不適用于多種尺寸隕石坑同時檢測的情況;而基于機器學習的檢測方法則包含繁雜的后期處理步驟,大大降低了推理速度,很難區(qū)分和訓練。
為了更加快速和精確的實現(xiàn)對月表圖像中隕石坑檢測,本文提出一種用于檢測多尺度月球隕石坑的新方法(C-Moon-Net)。該方法基于CenterNet網(wǎng)絡(luò)檢測月球DEM圖像數(shù)據(jù)集中的隕石坑,具有檢測精度高和速度快的優(yōu)勢。首先,利用月球DEM圖像制作數(shù)據(jù)集,并對數(shù)據(jù)集進行預處理,以適應(yīng)深度學習網(wǎng)絡(luò)。主干網(wǎng)絡(luò)選擇DLA(Deep Layer Aggregation)網(wǎng)絡(luò)結(jié)構(gòu),并使用TTFNet中提出的基本損失計算方法對數(shù)據(jù)集進行訓練。
本文使用與Silburt等人相似的方法,選用的圖像數(shù)據(jù)來自月球偵察軌道器(LRO)和Kaguya合并數(shù)字高程模型的數(shù)字高程(DEM)圖像,如圖1所示。該模型跨越緯度范圍為±60°,經(jīng)度范圍是±180°,分辨率為512像素/度(59 米/像素)。該全球灰度圖是簡單圓柱投影,分辨率為184 320×61 440像素,位深度為16位/像素;本文將其下采樣為92 160×30 720像素和8位/像素,以減少計算量。本文使用高程圖像而不是光學圖像,是因為在高程圖像中隕石坑的外觀不受入射陽光方向的影響。這樣可以減少隕石坑之間的外觀變化,從而更容易訓練模型檢測隕石坑。
圖1 LRO和Kaguya合并數(shù)字高程模型的數(shù)字高程圖像
本文數(shù)據(jù)集中每個DEM圖像都是通過以下方式生成的:1)從圖1全月數(shù)字高程圖中裁剪出大量正方形圖像,裁剪區(qū)域位置隨機選擇且分布均勻。2)將裁剪后的圖像使用最近鄰元法降采樣為256×256像素,以降低運算量、增加感受野。3)使用Cartopy Python軟件包將圖像轉(zhuǎn)換為正交投影。原圖像采用的簡單圓柱投影越往兩極變形越大,圓形的撞擊坑在該投影中呈現(xiàn)出的是越來越扁的橢圓形,對后續(xù)檢測的影響較大,而正射投影更接近隕石坑的真實形狀,可以最小化圖像失真。
對于每個輸入圖像,都會生成一個相應(yīng)的地面真實目標,該目標蒙版也為256×256 像素。隕石坑在目標蒙版中編碼為厚度為1像素的環(huán),半徑和中心取自坑在隕石坑目錄中的物理位置和直徑。用于構(gòu)建真實目標的數(shù)據(jù)是通過合并兩個學者建立的隕石坑目錄獲得的。對于5~20 km的隕石坑,使用Povilaitis等人收集的全球隕石坑數(shù)據(jù)集;對于大于20 km的隕石坑,由使用Head等人發(fā)表的全月球隕石坑數(shù)據(jù)集。將上述裁剪圖像和真實目標等分成兩個單獨的數(shù)據(jù)集,用于訓練和測試模型。這兩個數(shù)據(jù)集是從月球的大小相等且互斥的部分采樣的。訓練集為跨越經(jīng)度-180°至-60°的區(qū)域,測試集為經(jīng)度60°至180°的區(qū)域。每個數(shù)據(jù)集包含3 000個DEM圖像,每個DEM圖像的坑口中位數(shù)為21。由于本文采用的人工生成的隕石坑數(shù)據(jù)集不完整,包含許多明顯的遺漏標識。Fassett等人估計,Head等人的數(shù)據(jù)集不完整性為12%。Povilaitis等人的數(shù)據(jù)集不完整性目前未知,但人工檢驗發(fā)現(xiàn)其不完整性更高。數(shù)據(jù)集不完備會導致錯誤的訓練結(jié)果。為了解決真實標注不完備的問題,本文人工選取了數(shù)據(jù)集內(nèi)真實標注最為完整、邊緣更為準確的圖像各3 000張,分別作為模型的訓練集和測試集。
同時,為了適應(yīng)CenterNet網(wǎng)絡(luò),將真實目標標注形狀由環(huán)狀轉(zhuǎn)換為圓外切矩形,并記錄矩形框的左上角和右下角位置坐標。如圖2所示,圖中紅色圓形為隕石坑環(huán)形標注,黑色方框為圓外切矩形框。矩形框左上角和右下角坐標可由式(1)得到:
圖2 真實目標標注形狀轉(zhuǎn)換圖
(≥0,≥0)
(≤256,≤256)
(1)
其中,圓心坐標為(,),直徑為;矩形框的左上角坐標為(,),右下角坐標為(,)。
數(shù)據(jù)集內(nèi)DEM圖像、環(huán)形真實目標、轉(zhuǎn)換后的數(shù)據(jù)標注框的示例如圖3所示。該示例圖的經(jīng)度范圍為(158.742 187 5, 162.410 156 25),緯度范圍為(14.882 812 5,18.550 781 25)。該示例圖中隕石坑真實目標目錄如表1所示,第1列表示目標的序號;第2~4列展示了目標在全月DEM圖像中的中心經(jīng)緯度坐標和直徑(km);第5~7列展示了目標在裁剪圖像中的圓心坐標(,)和直徑(像素);第8~11列展示了目標由環(huán)形標注轉(zhuǎn)換成矩形框標注后, 矩形框的左上角坐標(,)和右下角坐標(,)。
表1 示例圖內(nèi)隕石坑目標目錄
(a) 輸入DEM圖像
本文采用簡化的CenterNet作為基礎(chǔ)卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型。CenterNet算法是Zhou等人在2019年4月提出的。它是在構(gòu)建模型時將檢測目標表示為一個點——目標邊界框的中心點。然后,其他屬性(例如目標尺寸、3D范圍、方向和姿勢)直接從中心點的圖像特征中回歸得到。此時目標檢測轉(zhuǎn)換為標準的關(guān)鍵點估計問題。CenterNet簡單地將輸入圖像饋送到生成熱力圖的完全卷積網(wǎng)絡(luò)。此熱力圖中的峰值對應(yīng)于目標中心。每個峰值處的圖像特征可預測目標邊界框的高度和寬度。該模型使用標準的密集監(jiān)督學習進行訓練。推理是單個前向預測網(wǎng)絡(luò),后期處理沒有非最大值抑制。
(a) 輸入圖像
圖5 本文算法架構(gòu)圖
在訓練階段,定位損失是用修改后的focal損失來計算的,回歸損失用損失計算。
(2)
(3)
式中,為訓練圖像中的目標數(shù)量。
=4-16,=4-16=4+16,=4+16
(4)
將>0的像素區(qū)域定義為,也稱為子區(qū)域,將子區(qū)域中每個像素作為回歸樣本,回歸損失定義為式(5):
(5)
式中是>0區(qū)域的像素數(shù)量,即回歸樣本的數(shù)量。是樣本權(quán)重,用于對不同尺寸下的邊界框平衡損失,從而不會影響本文后續(xù)的討論。
由于大尺寸圖像的目標多樣,大的目標可能產(chǎn)生成千上萬個樣本,而小目標可能只有幾個樣本。在歸一化所有樣本的損失后,小目標的損失可以忽略不計,這將影響小目標的檢測性能。因此,樣本權(quán)重在平衡損失中發(fā)揮了重要作用。
假設(shè)(,)是子區(qū)域的第個標記框,則如式(6)所示:
=
(6)
式中,(,)是在(,)處產(chǎn)生的高斯概率,是第個框的面積。這樣可以利用大目標中包含的標記信息,并保留小目標的標記信息。同時,它還能著重強調(diào)靠近目標中心的樣本,減少模糊樣本和低質(zhì)量樣本的影響。
最終的總損失可以表示為
(7)
本文中設(shè)定=10,=50。
在測試階段,在定位分支輸出的特征圖中的峰值點對應(yīng)的像素作為預測目標邊框的中心點,而其他的像素的輸出會被丟棄。與傳統(tǒng)的錨點檢測模型(如RetinaNet或Faster-RCNN)相比,本文采用的這種簡化的無錨點模型有更快的測試速度(由于其推理速度更快)。
本實驗使用的月表隕石坑數(shù)據(jù)集如第1節(jié)所述。訓練集和驗證集各由3 000張256×256像素的圖像組成。在測試階段,最大池化層kernel大小為3×3,用于提取定位分支中輸出特征圖的峰值點,并且所有峰值點的峰值只有大于才被認定為正目標。在本實驗中設(shè)置為0.05。對應(yīng)于回歸分支輸出結(jié)果的峰值點,通過公式(4)用于計算目標邊界框的位置。
本實驗基于PyTorch深度學習框架,在Anaconda上搭建PYTHON 3.6.9,PyTorch 1.3.0的虛擬環(huán)境。使用第2節(jié)所述的網(wǎng)絡(luò)模型,所有訓練和測試均在Windows 10系統(tǒng)、Tesla P100-PCIE-12GB顯卡、CUDA10.1上進行。所有模型都經(jīng)過隨機梯度下降(SGD)算法訓練。經(jīng)過實驗,在每次迭代中,設(shè)置batch size為32,模型精度和訓練速度達到最優(yōu)。所有模型都訓練了150個epoch。實驗采用余弦退火(cosine annealing)學習率調(diào)度策略,初始學習率設(shè)置為0.001。
為了定量評估本文方法的有效性,使用標準PASCAL VOC評價指標評估C-Moon-Net性能。
對于基于CNN的檢測模型,使用特定的IoU(Intersection-over-Union )閾值,以低置信度篩選出檢測結(jié)果。當閾值增加時,模型精度會隨之增加,而模型召回率會隨之減小。召回率反映了所有真正為正例(positive targets)的樣本中被分類判定為正例的比例,其定義如式(8):
(8)
精度反映了被分類判定的正例中真正的正例樣本的比例,其定義如式(9):
(9)
其中,TP(True Positive)、FP(False Positive),TN(True Negative),F(xiàn)N(False Negative)的含義如表2所示。
表 2 FN、FP、TN、TP含義
AP是目標檢測算法的標準指標,它綜合考慮了在不同置信度級別下模型的精度和召回率,AP定義如式(10)所示:
(10)
一個理想檢測器的=1。本實驗使用4種AP指標來評估結(jié)果,包括mAP,AP30,AP50和AP75。
經(jīng)過150輪的訓練,損失基本達到平穩(wěn)狀態(tài)。表3是150輪訓練后在測試集上的平均精度,IoU為0.5時表示整個網(wǎng)絡(luò)的mAP,其值為67.53%。AP_small,AP_medium,AP_large分別表示像素面積小于32的小目標框、像素面積在32~96之間的中等目標框、像素面積大于96的大目標框的AP測量值。通過觀察序號5~7和序號8~10發(fā)現(xiàn),中等目標的檢測效果最好,其次是大目標,最后是小目標。
表3 測試集AP指標
Silburt等人提出的DeepMoon方法也是基于神經(jīng)網(wǎng)絡(luò)對月球DEM圖像數(shù)據(jù)集訓練并測試。該方法的平均精度僅有56%,而本文的C-Moon-Net用AP50表示網(wǎng)絡(luò)的平均精度為67.53%,比DeepMoon的精度上升11.53%。此外,DeepMoon無法可靠檢測直徑大于15個像素的隕石坑,僅限于像素半徑小于15像素的坑。而本文網(wǎng)絡(luò)對多種尺度的隕石坑均可準確識別,并且對大目標的檢測精度達到69.79%,遠遠高于DeepMoon。本文還與另一種基于神經(jīng)網(wǎng)絡(luò)的隕石坑檢測器PyCDA進行了比較。該檢測方法的精度為25%,只能檢測出較少數(shù)量的大直徑隕石坑。與之相比,本文檢測方法精度有大幅提升,且對中小尺寸隕石坑檢測結(jié)果更為突出,平均精度分別達到78.95%和61.83%。
眾所周知,在圖像中檢測出的隕石坑坑數(shù)量越多、圖像特征數(shù)量越多,對應(yīng)于地形導航中位置估計的不確定性也就越低。圖6是測試數(shù)據(jù)集的示例和真實標簽圖。圖7展示了在同一DEM圖像上的3個隕石坑檢測方法的檢測性能結(jié)果比較。這些圖像顯示了已檢測到并成功與真實標簽匹配的隕石坑。圖7(a)是本文方法檢測結(jié)果圖,綠色框是真實標簽框(ground truth),紅色框是檢測結(jié)果框,藍色框是FN假負例,百分比代表置信度。圖7(b)是DeepMoon方法檢測結(jié)果圖,藍色圓形即檢測結(jié)果。圖7(c)是PyCDA檢測結(jié)果,紅色圓形即檢測結(jié)果。由結(jié)果可知,PyCDA對于DEM圖像的檢測效果最差,檢測到的隕石坑數(shù)量最少,且只能檢測出大直徑隕石坑;DeepMoon檢測的坑不完全,且只能檢測中小尺寸的坑;而本文網(wǎng)絡(luò)不僅能檢測到各種尺寸的隕石坑,而且檢測到的隕石坑數(shù)量最多。
(a) 輸入圖像
(a) 本文檢測結(jié)果
DeepMoon、PyCDA和本文方法C-Moon-Net均在Tesla P100-PCIE-12GB上的Python Keras中進行了測試。圖8柱形圖比較了3種隕石坑檢測方法在測試集上對每張圖片的平均檢測時間。與其他基于神經(jīng)網(wǎng)絡(luò)的隕石坑探測方法相比,C-Moon-Net具有最短的檢測時間,在0.01 s的級別。如表4匯總了3種檢測方法的精度和預測時間比較。由實驗結(jié)果可知,本文的隕石坑檢測方法C-Moon-Net相較于DeepMoon檢測速度提高了201倍,檢測精度提升了11.5%,減少了網(wǎng)絡(luò)的漏檢率,且極大地提高了大目標的檢測率。此外,與PyCDA檢測方法比較,本文檢測精度提升了42.5%,檢測時間降低了95.8%,且對中小尺寸的隕石坑檢測效果有顯著提升。
圖8 3種隕石坑檢測方法對測試集每張圖片的平均檢測時間
表4 3種隕石坑檢測方法檢測時間和精度比較
各隕石坑探測方法處理月球圖像和提取隕石坑所花費的時間和模型精度有較大差異,是由于其網(wǎng)絡(luò)結(jié)構(gòu)以及處理過程不盡相同。本文采用的CenterNet是利用關(guān)鍵點三元組來感知物體內(nèi)部信息,使用DLA-34分割網(wǎng)絡(luò)提取特征,該網(wǎng)絡(luò)模型的深度較高,提取的特征非常多。其次,本文的檢測方法采用的是端到端的網(wǎng)絡(luò)模型,不需要提前設(shè)置錨框的超參數(shù),沒有非最大值抑制,更簡潔更快速更精確,在速度和精度上達到了最好的權(quán)衡。而DeepMoon方法使用的是U-net網(wǎng)絡(luò)。在網(wǎng)絡(luò)結(jié)構(gòu)方面,該網(wǎng)絡(luò)包含4個卷積層和4個上采樣層,它將每個卷積層得到的特征圖融合到對應(yīng)的上采樣層,網(wǎng)絡(luò)模型深度不高,提取的特征數(shù)量遠不如本文網(wǎng)絡(luò)。在處理過程方面,該方法通過模板匹配來處理神經(jīng)網(wǎng)絡(luò)預測。模板匹配需要循環(huán)掃過所有可能的圓半徑,從而延長了其運行時間。PyCDA方法由兩個U-net神經(jīng)網(wǎng)絡(luò)組成,而不僅僅是一個神經(jīng)網(wǎng)絡(luò),這也大大增加了它的運行時間。
現(xiàn)有的月球隕石坑檢測方法需要繁雜的后期處理,難以滿足實時隕石坑檢測需求。針對該問題,本文提出一種用于檢測月球多尺度隕石坑的新方法,C-Moon-Net,能夠?qū)崿F(xiàn)端到端實時檢測。
1)與使用深度學習檢測隕石坑的DeepMoon方法相比,本文所提方法的檢測速度提升201倍,檢測精度提升11.5%;本文方法檢測速度與精度也優(yōu)于其他基于神經(jīng)網(wǎng)絡(luò)的隕石坑探測方法。
2)本文所提方法首次采用簡化的CenterNet網(wǎng)絡(luò)作為訓練模型,沒有耗時且計算負擔大的后期處理。該方法極大地提升了檢測速度,以滿足實時隕石坑檢測的需求。
3)本文方法可以精確地檢測各種尺寸的隕石坑并輸出唯一的檢測框,有效地克服了現(xiàn)有檢測方法需要篩選過濾重復隕石坑目標的問題,提高了檢測的準確率,具有強魯棒性的特點。
在后期的研究工作中還需要降低位置估計誤差并對邊緣提取算法進行研究,以實現(xiàn)高精度的隕石坑檢測。