孫廣偉,李博,陳嘉浩,張大富,范俊甫
(山東理工大學 建筑工程學院,山東 淄博 255049)
高分辨率遙感影像能夠精細地表達豐富的地表信息,在自然資源普查、農作物估產、生態環境評價、氣候變化分析、人類活動監測等領域具有巨大的應用潛力和發展前景,被廣泛應用于國民經濟建設的各個行業[1]。高分辨率遙感影像包含多種多樣的復雜地物信息,傳統的地物信息提取往往依靠大量的人工參與實現,費時費力且效率低下,成本昂貴。2006年,多倫多大學的Hinton等[2]提出了深度學習的概念。隨著相關理論與模型的深入發展,基于深度學習的人工智能技術逐漸在機器人、語音識別、圖像識別、自然語言處理和專家系統等領域得到了深入研究和廣泛應用[3-4]。
深度學習模型需要建立包含大量樣本的訓練數據才能獲得更好的計算效果。高分辨率遙感影像不僅具有龐大的數據量,同時也蘊含著豐富的地物信息,能夠滿足建立深度學習訓練數據集的需要。2010年,Mnih等[5]首次將深度學習技術應用于道路信息提取。此后,深度學習技術在高分辨率遙感影像的地物識別、各類信息的提取、變化檢測等方面得到了深入研究。近年來,基于卷積神經網絡(convolutional neural network,CNN)的深度學習技術廣泛應用于自動化遙感信息提取與地物識別,已成為高分辨率遙感影像處理領域的前沿與熱點之一[6]。
隨著計算機軟硬件技術的發展,出現了一些經典的卷積神經網絡模型與算法[7]。2014年以來,基于卷積神經網絡的圖像目標檢測算法,包括R-CNN[8], Fast R-CNN[9], Faster R-CNN[10]等的two stage算法,以及YOLO[11]、SSD[12]等的one stage算法,在通用圖像識別領域已經得到了較為廣泛的應用。R-CNN、Fast R-CNN、Faster R-CNN等算法先生成許多默認的先驗框,再使用卷積神經網絡對目標進行分類。此類算法精度較高,速度較慢,其中Faster R-CNN算法精度最高[10]。YOLO是最早出現的單階段目標檢測方法,速度較快,但檢測精度較低。SSD算法在保持YOLO算法的速度優勢的同時,在目標類別的確定、位置信息獲取等方面表現出與Faster R-CNN算法相當的精度優勢[12]。相比之前的卷積神經網絡的工作方式,單次檢測器SSD提高速度的根本原因是消除了先驗框的推薦以及后續的像素或特征重采樣階段,并且這種改進措施不會使得識別精度下降。在高分影像目標檢測領域,對上述經典模型在面向多種地物時的計算速度與檢測精度的綜合比較尚不多見。
國內學者在基于深度學習的遙感數據處理領域進行了較為廣泛和深入的研究。劉大偉等[13]利用深度學習技術實現了基于高分辨率遙感影像的地物分類,并與SVM等一些經典方法進行了對比,發現深度學習技術可以更準確地揭示地理對象的空間分布規律。高常鑫等[14]使用分層的方法建立深度學習模型,完成了對高分辨率遙感影像的高精度分類。郝曉慧等[15]、王卓等[16]采用深度學習技術實現了基于高分辨率遙感影像的道路網提取。因此,應用深度學習模型與方法解決高分影像中典型地物的自動檢測問題,對充分挖掘高分辨率遙感影像的應用價值,提升高分辨率遙感影像處理的智能化水平具有重要意義。
為對經典卷積神經網絡模型在高分辨率遙感影像的多種典型地物檢測過程中的特征表現進行對比,本文基于Python語言和TensorFlow深度學習框架[17],采用Faster R-CNN、YOLOv3和SSD三種基于CNN的目標檢測算法,實現了模型訓練和對典型地物信息的自動檢測。對上述三種網絡模型的性能表現進行了比較和分析,相關結論能夠為基于卷積神經網絡的高分辨率遙感影像目標檢測應用提供一定的參考。
本文選用RSOD-Dataset數據集[18-19],該數據集由武漢大學團隊于2017年發布,包括含有儲油罐、飛機、體育場和立交橋四類地物的高分辨率遙感影像,空間分辨率為1.7 m;其中446張影像中包含4 993架各類飛機,189張影像中包含191個體育場,176張影像中包含180座立交橋,165張影像中包含1586個儲油罐目標。將該數據集按照4∶1的比例生成模型訓練集與測試集,RSOD-Dataset數據集中四種地物如圖1所示。

圖1 四種地物的示例
本文實驗是在Windows10操作系統上進行,編程語言及版本為Python3.7,編程環境為PyCharm2019.3,使用TensorFlow深度學習框架搭建地物檢測模型并對數據集進行訓練,所選深度學習框架版本為TensorFlow-GPU 1.14.0。使用CUDA加速模型訓練,顯卡為NVIDIA GeForce GTX 1080 Ti,顯存為11GB。
使用沒有先驗知識的空模型,通過數據訓練,機器進行自主學習,生成檢測相關典型地物的最佳參數配置模型。
每一行命令代表訓練中的一次迭代,每一次迭代包含已經迭代的次數(Step)、損失值(loss,即預測值與真實值之間的誤差)和每次訓練所用時長。在訓練過程中,會根據迭代次數自動生成日志文件,根據生成的日志文件,可以選擇某個迭代次數生成的日志文件導出所需模型,訓練過程中,使用TensorBoard對loss值進行可視化。
將建立的模型應用到高分辨率遙感影像典型地物的檢測中,并分別對四種典型地物進行實驗。實驗時將Faster R-CNN和YOLOv3兩個算法的IOU閾值設置為0.7,SSD的IOU閾值設置為0.5。模型訓練的初始學習率[20](Initial_learning_rate)設置為0.000 1;批大小(Batch Size,即每次輸入到神經網絡中進行訓練的樣本數量)設置為5,最大迭代次數設置為200 00次,迭代過程中可手動停止,下次可以根據日志文件繼續進行訓練。實驗的地物檢測結果如圖2至圖5所示,分別表示飛機、立交橋、體育場和儲油罐。三種算法的訓練損失值如圖6所示。
圖2飛機的檢測結果顯示,Faster R-CNN和SSD算法均準確地檢測出了飛機的位置,且精度均在90%以上,YOLOv3算法存在誤檢測的情況,且有一處飛機檢測精度較低。圖3立交橋的檢測結果顯示,SSD算法檢測精度最高,Faster R-CNN算法檢測精度其次,YOLOv3檢測精度最低,且Faster R-CNN和YOLOv3都錯誤地將一個目標檢測成了多個目標。圖4體育場檢測結果顯示,三種算法均準確地檢測出了體育場的位置,Faster R-CNN和SSD算法的精度高于YOLOv3。圖5儲油罐的檢測結果顯示,三種算法均準確檢測出了儲油罐的位置,YOLOv3的檢測精度略低于其他兩種算法,Faster R-CNN算法存在誤檢測現象。圖6中,SSD算法和YOLOv3算法收斂效果最好,Faster R-CNN收斂效果較差。

圖2 飛機的檢測結果

圖3 立交橋的檢測結果

圖4 體育場的檢測結果

圖5 儲油罐的檢測結果

圖6 三種算法的訓練損失
三種模型在自行劃分的RSOD-Dataset測試數據集上的表現結果見表1,測試硬件環境為NVIDIA GeForce GTX 1080 Ti。
表1中Batch Size(批大小)表示每次訓練時輸入神經網絡中樣本的數量;Step 表示訓練迭代次數;mAP表示均值平均精度,即各類別AP的平均值;FPS表示每秒幀數,數值越大代表處理速度越快。從表中數據結合四種地物檢測結果圖可以看出,當批大小和訓練次數都相同時,SSD算法的檢測精度最高,達到了86.62%,均高于Faster R-CNN算法的78.52%和YOLOv3算法的66.81%;且SSD算法在提升精度的同時,也提高了檢測速度,FPS達到了60.26,是Faster R-CNN算法檢測速度的11.18倍,是YOLOv3算法的2.35倍,使用SSD圖像檢測算法進行典型地物檢測有更高的應用價值。

表1 SSD算法與Faster R-CNN算法和YOLOv3算法的比較
1)多目標以及小目標對典型地物識別的影響。由于高分辨率遙感影像包含豐富的數據、復雜的場景,在檢測目標過多以及目標較小的環境中使用SSD圖像檢測算法進行典型地物檢測會導致檢測精度下降,易產生目標遺漏的情況,如圖7所示。圖7中大部分飛機和儲油罐被準確識別標注,但是因為小目標過多,造成典型地物識別精度下降,遺漏了幾個正確目標,因此需要優化初始學習率等參數進行改善。

圖7 模型漏檢示例
2)訓練數據的數量對典型地物識別的影響。依據卷積神經網絡訓練模型的基本原理,訓練的數據集足夠大,模型的泛化能力將會得到較大提升,對未知數據的預測效果更好[21]。
3)參數優化對典型地物識別的影響。通過調整訓練迭代的次數,修改初始學習率和批大小等參數,逐漸優化模型,可降低模型的損失值。
目前用于遙感影像典型地物檢測的算法,難以兼顧處理速度和檢測精度。針對這一問題,本文提出基于高分辨率遙感影像和深度學習的目標檢測算法技術,將高分辨率遙感影像的典型地物檢測與卷積神經網絡技術相結合,實現了對遙感影像中典型地物信息的自動提取,實驗結果表明本方法有效的提高了高分辨率遙感影像中典型地物檢測的處理速度和檢測精度。將SSD算法、YOLOv3算法與Faster R-CNN算法進行對比,實驗證明SSD算法在地物檢測上的表現優于其他兩種檢測算法,在mAP指標上比Faster R-CNN算法和YOLOv3算法分別高出了8.1%和19.81%,檢測速度分別是Faster R-CNN算法和YOLOv3算法的11.18倍和2.35倍。本方法只在光學遙感影像上進行實驗,未考慮其他類型的影像數據,未來將考慮多源數據融合進行相關實驗。