編者按:語義分割(Semantic Segmentation)是計算機視覺中的一個重要領域,它可以將圖像中的每一個像素劃分到不同類別的集合中。近年來,語義分割在自動駕駛、醫療圖像識別等領域發展迅速、應用廣泛。
本文中,百分點感知智能實驗室介紹了語義分割的技術原理及應用場景,并分享了百分點科技基于語義分割技術在水域監控中的應用和具體落地流程。
一、場景需求及技術難點
水域監控是為了定期監控水域、灘地、堤壩等區域情況,檢查是否有堤壩缺失或水域變化異常情況的發生。水域圖像會定時定點拍攝,為了實現輔助監控任務需要將傳回的圖像分割,并將圖像中的不同類型區域區分并標明。
上圖簡單列出了幾種需要識別的類型:河流、河流兩岸的堤壩、用于加固大壩的防備石,以及河流與堤壩旁的灘地。目前,水域分割任務的技術難點有以下幾類:
所需分割類型較多且有些較為相似,畫面中的元素較多,背景復雜;拍攝高度較高,一些目標像素較小且不同類型目標大小差異巨大;相機拍攝距離的不同會造成同一物體在圖像中存在很大差距,占幅不同;部分區域相鄰的像素對應的圖像信息太過相似;圖像中不同類別或實例的像素存在不均衡的問題;拍攝條件造成的影響,如光照過曝或過暗、抖動造成的模糊等。
二、技術路線
在技術路線上,百分點科技使用了基于語義分割的地理信息提取系統來實現既定任務。地理信息提取系統可以通過訓練神經網絡讓機器輸入衛星遙感影像,自動識別道路、河流、莊稼和建筑物等,并且對圖像中每個像素進行標注。
語義分割同實例分割(InstanceSegmentation )、全景分割(Panorama Segmentation)共同組成了圖像分割(Image Segmentation)。當前人類對用計算機視覺解決的最重要問題就是圖像分類(Image Classification)、目標檢測(Object Detection)和圖像分割,按難度遞增。在傳統的圖像分類任務中,人們只對獲取圖像中存在的所有對象的標簽感興趣。在目標檢測中,百分點科技嘗試在邊界框的幫助下了解圖像中存在的所有目標以及目標所在的位置。圖像分割通過嘗試準確找出圖像中對象的確切邊界,將其提升到一個新的水平。接下來用圖例簡單介紹以下它們分別是如何工作的:
從上面圖例中可以看出,需要劃分出水域圖像中不同類別的區域及大小(如河流、灘地、大壩區域),能夠完成此任務的技術路線就是使用語義分割或實例分割,因為只有它們能夠將水域圖像中的每一個像素分割確定為不同類型,從而確定圖像中每種類型區域的大小和位置,同時該任務又不需要區分每個類型的實例,因此最適合方案的就是使用語義分割。下面就為大家介紹一下語義分割的原理。
2. 語義分割原理
語義分割是為完全理解場景鋪平道路的高級任務之一。越來越多的應用程序從圖像中提取、推斷信息和知識,這一事實凸顯了場景理解作為核心計算機視覺問題的重要性。其中一些應用包括自動駕駛、人機交互、虛擬現實等。近年來,隨著深度學習(Deep Learning,DL)的普及,許多語義分割問題正在使用深度學習架構來解決,最常見的是卷積神經網絡(Convolutional Neural Networks,CNN),它超越了其他方法在準確性和效率方面有很大的進步。百分點科技同樣也使用了當前較為先進的基于深度學習的語義分割技術,其中最重要的一個核心就是卷積神經網絡。
3. 語義分割網絡結構
基于深度學習的語義分割基本架構由編碼器和解碼器組成,編碼器通過濾波器(filter)從圖像中提取特征,解碼器負責生成最終輸出,它通常是一個包含對象輪廓的分割掩碼。大多數架構都有這種架構或其變體。
因為信息在最后的卷積層(即1 X 1卷積網絡)丟失了,所以解碼器產生的輸出是粗糙的,這使得網絡很難通過使用這些少量信息進行上采樣。為了解決這個上采樣問題,使用基于全卷積網絡的兩種架構:FCN-16 和 FCN-8。
在FCN-16中,來自前一個池化層的信息與最終特征圖一起用于生成分割圖。FCN-8 試圖通過包含更多先前池化層的信息來使其變得更好。
與傳統用CNN進行圖像分割的方法相比,FCN有兩大明顯的優點:一是可以接受任意大小的輸入圖像,而不用要求所有的訓練圖像和測試圖像具有同樣的尺寸;二是更加高效,因為避免了由于使用像素塊而帶來的重復存儲和計算卷積的問題。
同時FCN的缺點也比較明顯:一是得到的結果還是不夠精細,進行8倍上采樣雖然比32倍的效果好了很多,但是上采樣的結果還是比較模糊和平滑,對圖像中的細節不敏感;二是對各個像素進行分類,沒有充分考慮像素與像素之間的關系,忽略了在通常的基于像素分類的分割方法中使用的空間規整(spatial regularization)步驟,缺乏空間一致性。
為了避免FCN的這些缺點,后來又衍生出了許多語義分割網絡,如U-Net、SegNet、PSPNet、DeepLab等。
標注完成之后進行數據預處理,如圖像切割、數據平衡、數據增強等。
圖像切割在原始圖像較大時運用較多,可將一張非常大的圖切割成若干張小圖進行訓練防止很多圖像細節的缺失,也可進行隨機切割增加圖像的多樣性。
數據平衡是當訓練集中存在某些類別的樣本數量遠大于另一些類別時對數據樣本量進行平衡,最簡單的方法有過采樣或欠采樣等。
數據增強包含了很多方法,如翻轉、旋轉、拉伸、模糊、加噪聲、亮度調節等,增加數據多樣性,增強模型泛化能力。
訓練模型時基于全卷積網絡(FCN)框架使用了金字塔池化,也就是進行了多尺度特征融合,這是因為由于在深層網絡中,高層特征包含了更多的語義和較少的位置信息。這也使得模型除了具備基于深度學習的語義分割具備的優勢外又結合多尺度特征,可以提高性能適應不同大小的目標。
三、應用場景
隨著語義分割的發展,基于語義分割的落地應用也越來越多,其中比較典型的有無人駕駛、醫療影像分析、地理信息提取系統等,百分點科技開發的水域分割系統就屬于地理信息提取系統,下面將展開介紹一下。
無人車駕駛:語義分割也是無人車駕駛的核心算法技術,車載攝像頭,或者激光雷達探查到圖像后輸入到神經網絡中,后臺計算機可以自動將圖像分割歸類,以避讓行人和車輛等障礙。
總結
本文介紹了使用語義分割技術對水域圖像進行分割,實現水域監控。語義分割可以將圖像中的每一個像素分類,從而更好地理解圖像中的場景信息,并從中推斷出相關的知識或語義,這使得語義分割在自動駕駛、醫療影像分析、增強現實等方向的發展迅速。此外,語義分割也讓大家進一步了解了計算機視覺、深度學習中的一些原理和應用。
百分點科技一直關注和研究圖像分割技術領域,目前,百分點科技應用圖像分割技術在土地治理、安防監控等多個領域已經有項目應用落地,今后我們也將更加深入地在圖像分割領域進行研究。