首先簡單介紹一下什麼是語義分割。計算機視覺是深度學習的熱門研究方向,在人臉識別、影象檢索、自動駕駛等領域擁有廣泛的應用。語義分割(semantic segmentation)則是計算機視覺中的一項基本任務,其目標是將影象的每個畫素所屬類別進行劃分,使得不同種類的物體在影象上可以被區分開來。
(a)原影象 (b)語義分割
語義分割被廣泛用於自動駕駛、醫療影像分析和機器人等領域,其在地理資訊影像分析場景下的應用,主要是透過訓練深度神經網路模型,讓機器從影像中識別道路、河流、建築物等不同地物。
實現流程
基於深度學習的語義分割技術識別影像中的建築物,主要包括資料準備、模型構建、模型推理幾個過程。超圖為我們提供了完成空間深度學習專案的GeoAI流程工具,支援完整的任務實現流程,可以幫助快速構建適合於各自業務的AI模型,並獲得推理結果。
空間深度學習實現流程
l 資料情況
l 1、訓練資料:包含建築物的影像塊(約2萬張)以及無建築物的影像塊(約5萬張),影像塊行列數目均為1024,解析度為0.02-0.2m;以及與影像塊對應的向量標籤資料。
l 2、測試資料為分佈在非洲不同區域的影像塊(約1萬張),行列數目均為1024。
訓練資料示例(含有向量標籤的影像資料)
l 模型選型
可以用於影像語義分割的模型有很多,包括FPN、FCN、U-Nett、PSPNet、DeepLab系列等。在選擇分割模型時,需要針對專案要求,選擇合適的模型。在該專案中,我們透過對比精度和效率,最終選用FPN模型。其中,EfficientNet 作為主幹網路,用於提取影象基本特徵, FPN則可以對EfficientNet提取的特徵再做進一步處理。
l 1、EfficientNet
谷歌在2019年提出了一種新型卷積神經網路EfficientNet,具備高效的影象特徵提取能力。卷積神經網路(CNN)通常在固定資源預算下開發,然後在更多資源加入進來時擴大規模,以達到更高精度,EfficientNet利用簡單而高效的複合係數統一縮放模型的多個維度,有效提升了模型的準確率和效率。
選擇合適的主幹網路,可以使模型提取影象特徵能力表現更好、效率更高。在語義分割中,常用的主幹網路還包括ResNet、 VGG 、DenseNet等。
l 2、FPN
FPN(Feature Pyramid Network)是一種高效提取圖片中各尺度特徵的模型,可以使最終輸出的特徵更好地表示出輸入圖片各個維度的資訊。本質上說它是一種加強主幹網路特徵表達的方法。
FPN基本架構
最佳化策略
為了提高模型整體表現,我們分別從資料、訓練策略和推理過程幾個方面進行了針對性的最佳化,下面將著重介紹幾種對訓練效率、推理準確度有顯著提升作用的最佳化方法:
l 資料最佳化
l 1、進行資料增強
在深度學習專案中,一般資料越多,訓練任務的效果越好。資料增強可以讓有限的資料產生更多的有效訓練資料,增加訓練的資料量,提高模型的泛化能力。在資料最佳化過程中可以採用裁剪、縮放、旋轉等多種資料增強方法。
部分資料增強效果
l 2、增加負樣本
樣本中增加部分包含無建築物區域的訓練資料(例如耕地)作為負樣本,進行訓練時可以提高推理準確度,減少模型誤判情況。
耕地推理誤判情況
l 訓練最佳化
l 1、最佳化器
為了使模型輸出逼近最優值,我們需要用各種最佳化策略和演算法,來更新影響模型訓練和輸出的網路權重引數。通常我們將更新引數的演算法稱為最佳化器,即透過何種演算法去最佳化網路權重引數。
如上表所示,梯度下降法是最基本的一類最佳化器;動量最佳化方法是在梯度下降法的基礎上進行的改進;自適應學習率最佳化演算法針對於模型訓練過程的學習率設定進行最佳化,而學習率的有效調整可以提高訓練速度和效果。
在實際應用中,需結合具體問題來選擇適合的最佳化器。在該專案中,我們發現利用Radam + LookAhead最佳化器效果顯著,這是一種新的組合最佳化器,把RAdam(經典Adam最佳化器的一個新變種)和LookAhead協同組合,能實現較高的最佳化水平,作為深度學習初學者也可以以此訓練出一個表現較好的模型。
l 2、多顯示卡
l 多顯示卡訓練可以使訓練效率明顯提升,同時在一定程度上也能提升模型的最終精度和泛化能力。
l
l 推理最佳化
l 1、多尺度影象推理加權
在推理過程中將影象放大縮小,利用多尺度影象進行推理,再將結果加權平均,得到最終輸出結果,這種最佳化方法在應用中可以顯著提高推理準確率。
多尺度影象推理加權
經過一系列最佳化後,該專案在測試資料集上的最終精度值IOU優於0.83,即可以較為準確地將影像中的建築物分割出來,達到了實際應用的程度。
推理結果示例
IoU:用於評估語義分割演算法效能的標準指標。這個標準用於測量真實範圍和預測範圍之間的相關度,相關度越高,該值越高。
如下圖綠色標線是人為標記的正確結果,橙色標線是演算法預測出來的結果,IoU的測算準則是兩個區域重疊部分除以兩個區域的集合部分得出的結果。一般來說,IoU> 0.5 就可以被認為一個不錯的結果了。
IoU計算原理
小結
越來越多的實際應用場景需要從影像中推理出相關的語義或知識,而深度學習是解決這些場景任務的有效技術。本文以高解析度影像建築物語義分割為例,介紹了語義分割的實現以及從資料、訓練和推理過程方面採用的不同最佳化方法,為建立行之有效的深度學習專案提供了一個實用參考。
首先簡單介紹一下什麼是語義分割。計算機視覺是深度學習的熱門研究方向,在人臉識別、影象檢索、自動駕駛等領域擁有廣泛的應用。語義分割(semantic segmentation)則是計算機視覺中的一項基本任務,其目標是將影象的每個畫素所屬類別進行劃分,使得不同種類的物體在影象上可以被區分開來。
(a)原影象 (b)語義分割
語義分割被廣泛用於自動駕駛、醫療影像分析和機器人等領域,其在地理資訊影像分析場景下的應用,主要是透過訓練深度神經網路模型,讓機器從影像中識別道路、河流、建築物等不同地物。
實現流程
基於深度學習的語義分割技術識別影像中的建築物,主要包括資料準備、模型構建、模型推理幾個過程。超圖為我們提供了完成空間深度學習專案的GeoAI流程工具,支援完整的任務實現流程,可以幫助快速構建適合於各自業務的AI模型,並獲得推理結果。
空間深度學習實現流程
l 資料情況
l 1、訓練資料:包含建築物的影像塊(約2萬張)以及無建築物的影像塊(約5萬張),影像塊行列數目均為1024,解析度為0.02-0.2m;以及與影像塊對應的向量標籤資料。
l 2、測試資料為分佈在非洲不同區域的影像塊(約1萬張),行列數目均為1024。
訓練資料示例(含有向量標籤的影像資料)
l 模型選型
可以用於影像語義分割的模型有很多,包括FPN、FCN、U-Nett、PSPNet、DeepLab系列等。在選擇分割模型時,需要針對專案要求,選擇合適的模型。在該專案中,我們透過對比精度和效率,最終選用FPN模型。其中,EfficientNet 作為主幹網路,用於提取影象基本特徵, FPN則可以對EfficientNet提取的特徵再做進一步處理。
l 1、EfficientNet
谷歌在2019年提出了一種新型卷積神經網路EfficientNet,具備高效的影象特徵提取能力。卷積神經網路(CNN)通常在固定資源預算下開發,然後在更多資源加入進來時擴大規模,以達到更高精度,EfficientNet利用簡單而高效的複合係數統一縮放模型的多個維度,有效提升了模型的準確率和效率。
選擇合適的主幹網路,可以使模型提取影象特徵能力表現更好、效率更高。在語義分割中,常用的主幹網路還包括ResNet、 VGG 、DenseNet等。
l 2、FPN
FPN(Feature Pyramid Network)是一種高效提取圖片中各尺度特徵的模型,可以使最終輸出的特徵更好地表示出輸入圖片各個維度的資訊。本質上說它是一種加強主幹網路特徵表達的方法。
FPN基本架構
最佳化策略
為了提高模型整體表現,我們分別從資料、訓練策略和推理過程幾個方面進行了針對性的最佳化,下面將著重介紹幾種對訓練效率、推理準確度有顯著提升作用的最佳化方法:
l 資料最佳化
l 1、進行資料增強
在深度學習專案中,一般資料越多,訓練任務的效果越好。資料增強可以讓有限的資料產生更多的有效訓練資料,增加訓練的資料量,提高模型的泛化能力。在資料最佳化過程中可以採用裁剪、縮放、旋轉等多種資料增強方法。
部分資料增強效果
l 2、增加負樣本
樣本中增加部分包含無建築物區域的訓練資料(例如耕地)作為負樣本,進行訓練時可以提高推理準確度,減少模型誤判情況。
耕地推理誤判情況
l 訓練最佳化
l 1、最佳化器
為了使模型輸出逼近最優值,我們需要用各種最佳化策略和演算法,來更新影響模型訓練和輸出的網路權重引數。通常我們將更新引數的演算法稱為最佳化器,即透過何種演算法去最佳化網路權重引數。
如上表所示,梯度下降法是最基本的一類最佳化器;動量最佳化方法是在梯度下降法的基礎上進行的改進;自適應學習率最佳化演算法針對於模型訓練過程的學習率設定進行最佳化,而學習率的有效調整可以提高訓練速度和效果。
在實際應用中,需結合具體問題來選擇適合的最佳化器。在該專案中,我們發現利用Radam + LookAhead最佳化器效果顯著,這是一種新的組合最佳化器,把RAdam(經典Adam最佳化器的一個新變種)和LookAhead協同組合,能實現較高的最佳化水平,作為深度學習初學者也可以以此訓練出一個表現較好的模型。
l 2、多顯示卡
l 多顯示卡訓練可以使訓練效率明顯提升,同時在一定程度上也能提升模型的最終精度和泛化能力。
l
l 推理最佳化
l 1、多尺度影象推理加權
在推理過程中將影象放大縮小,利用多尺度影象進行推理,再將結果加權平均,得到最終輸出結果,這種最佳化方法在應用中可以顯著提高推理準確率。
多尺度影象推理加權
經過一系列最佳化後,該專案在測試資料集上的最終精度值IOU優於0.83,即可以較為準確地將影像中的建築物分割出來,達到了實際應用的程度。
推理結果示例
IoU:用於評估語義分割演算法效能的標準指標。這個標準用於測量真實範圍和預測範圍之間的相關度,相關度越高,該值越高。
如下圖綠色標線是人為標記的正確結果,橙色標線是演算法預測出來的結果,IoU的測算準則是兩個區域重疊部分除以兩個區域的集合部分得出的結果。一般來說,IoU> 0.5 就可以被認為一個不錯的結果了。
IoU計算原理
小結
越來越多的實際應用場景需要從影像中推理出相關的語義或知識,而深度學習是解決這些場景任務的有效技術。本文以高解析度影像建築物語義分割為例,介紹了語義分割的實現以及從資料、訓練和推理過程方面採用的不同最佳化方法,為建立行之有效的深度學習專案提供了一個實用參考。