利用深度學習分析衛星雷達影像
每年平均大約會有500座冰山進入紐芬蘭和拉布拉多離岸區域,這對海洋運輸和船舶行進形成潛在的威脅。在1990年代,有些公司便開始使用衛星合成孔徑雷達(satellite synthetic aperture radar,SAR)來監測冰山與海洋浮冰,SAR非常適用於這樣的任務,因為它可以不分日夜,甚至穿透雲、霧、和其他不利的天氣條件,從大範圍的海洋捕捉影像。
SAR影像的分析工作包含辨識影像中的目標物(高強度畫素的叢集),並將它們分類為冰山或船隻(圖1)。即使是受過高度訓練的專家,分析少量的畫面也會需要花上幾個小時,尤其是在目標物難以辨識的時候。
我們在C-CORE的團隊與挪威的能源公司Equinor合作來開發自動化的軟體,能使用深度學習來分類SAR影像中的目標物。我們決定要藉助世界各地AI研究人員社群的專業,因此辦了一場Kaggle競賽,而我們從競賽學到了最佳的構想,並且使用MATLAB®及卷積神經網路(convolutional neural networks,CNNs)來實現該構想,接著去建構能夠實際操作使用的軟體。
冰山辨識的挑戰
SAR影像的解析度取決於影像涵蓋的範圍要多大:著重於較小範圍的影像的解析度會比涵蓋大範圍海洋的影像更高,也因此較容易進行目標物的分類(圖2及圖3)。在實務上,為了要從資料集中擷取出最大量的可用資訊,我們必須運用各種解析度的影像,甚至是目標物寬度僅有幾個畫素的影像。
在我們開始使用深度學習之前,我們先利用二次判別分析(quadratic discriminant analysis)法來進行冰山的分類,不過這會需要分割影像,把含有目標物的畫素從背景海洋的畫素分開。由於海洋條件可能有很大的差異,而且不佳的條件會造成視覺上的混亂,因而難以定義每一個目標物的輪廓,使得影像分割成為一大挑戰。透過CNNs,演算法是以完整的SAR切片、包含單獨一個目標物的固定尺寸影像來訓練,因此不需要將目標物從背景區分出來。
Kaggle競賽
我們的Kaggle競賽對參賽者提出一項簡單的挑戰:開發一個能夠自動地將SAR影像切片上的目標物分類為船隻或冰山的演算法。競賽用的資料集包含了5000張從透過衛星哨兵一號(Sentinel-1)沿著拉布拉多和紐芬蘭海岸收集的多通道SAR資料擷取出來的影像(圖4)。我們這場競賽吸引了總共有3343組團隊來參加,繳交件數超過47,000,足以證明它是在Kaggle上舉辦過最受歡迎的以影像為基礎的一個競賽。
所有表現最好的參賽者們都使用了深度學習。他們的模型有許多共通的特性和層級,包含卷積、整流線性單位函數(rectified linear unit,ReLU)、最大池化(max pooling)、softmax層等等。除此之外,頂尖的參賽者皆使用總集(ensembles)讓預測的準確度從92%推進到97%。
透過MATLAB搭建自己的深度學習模型
我們採用頂尖的Kaggle參賽結果作為開發的起始點,我們透過MATLAB和深度學習工具箱(Deep Learning Toolbox™)開發了自己的深度學習模型。我們從修改該深度學習工具箱內提供的一個簡單的分類器開始。在幾天之內,我們就可以建立一個能夠良好運作的深度學習架構。
為了優化深度學習架構的表現,我們測試過各種組合的參數值,舉例來說,從每一層裡面的節點數量、在卷積層裡使用的濾波器尺寸、到最大池化層使用的池子大小等等。我們撰寫了一個MATLAB自動化程式來自動地建立、訓練、測試10,000個不同的CNNs,其中的參數值會在合理的界線和限制之間隨機地產生。
我們對這項結果執行了一個簡單的貪婪搜尋(greedy search)來找出七個表現最好的CNNs,並使用這些CNNs來建立總集。如同Kaggle競賽優勝者使用的總集,我們的總集使整體準確率提升了將近5%。
透過MATLAB軟體的協助,我們在兩個星期之內就從不太了解CNN分類器的執行進展到可以自己建立一個運作良好、足以供營運採用的解決方案。
將分類器整合至完整系統
目標鑑別(Target discrimination)是進行冰山辨識流程之中多項步驟的其中一步。這套流程也涉及了陸地的遮蔽效應,以消除由陸地物體引起的錯誤偵測,並且透過與地理資訊系統軟體的整合,以製作出顯示了冰山和船隻位置的地圖(圖5)。
當RADARSAT Constellation Mission衛星從2019年起開始產生資料,我們便有了取得更多SAR影像的途徑—資料量對於以人工視覺檢查來進行的分析實在太多。因此我們在MATLAB所開發的包含深度學習演算法的軟體系統,大大幫助了C-CORE精準、快速、自動地處理,來充分地利用大部分的資料。