編者按:語義分割(Semantic Segmentation)是計算機視覺中的一個重要領域,它可以將影像中的每一個畫素劃分到不同類別的集合中。近年來,語義分割在自動駕駛、醫療影像識別等領域發展迅速、應用廣泛。
本文中,百分點感知智慧實驗室介紹了語義分割的技術原理及應用場景,並分享了百分點科技基於語義分割技術在水域監控中的應用和具體落地流程。
水域監控是為了定期監控水域、灘地、堤壩等區域情況,檢查是否有堤壩缺失或水域變化異常情況的發生。水域影像會定時定點拍攝,為了實現輔助監控任務需要將傳回的影像分割,並將影像中的不同型別區域區分並標明。水域監控影像示例
具體來說,任務需要識別目標影像中河流、灘地、心灘、草地、連壩、丁壩、防備石、樹林、天空等區域。區域性影像示例
上圖簡單列出了幾種需要識別的型別:河流、河流兩岸的堤壩、用於加固大壩的防備石,以及河流與堤壩旁的灘地。所需分割型別較多且有些較為相似,畫面中的元素較多,背景複雜;
拍攝高度較高,一些目標畫素較小且不同型別目標大小差異巨大;
相機拍攝距離的不同會造成同一物體在影像中存在很大差距,佔幅不同;
部分割槽域相鄰的畫素對應的影像資訊太過相似;
影像中不同類別或例項的畫素存在不均衡的問題;
拍攝條件造成的影響,如光照過曝或過暗、抖動造成的模糊等。
在技術路線上,百分點科技使用了基於語義分割的地理資訊提取系統來實現既定任務。地理資訊提取系統可以透過訓練神經網路讓機器輸入衛星遙感影像,自動識別道路、河流、莊稼和建築物等,並且對影像中每個畫素進行標註。基於地理資訊提取系統的語義分割,百分點科技開發了一套水域分割系統,可定期監控水域,灘地,堤壩等區域情況,並將影像劃分為河流、灘地、心灘、草地、連壩、丁壩、防備石、樹林、天空等,輔助研究人員觀測水域情況。那麼語義分割具體是指什麼、又為什麼要選擇語義分割技術來實現呢?我們知道影像是畫素的集合,語義分割是對影像中屬於某個類別的每個畫素進行分類的過程,因此可以將其視為每個畫素的分類問題。語義分割示例
語義分割同例項分割(InstanceSegmentation )、全景分割(Panorama Segmentation)共同組成了影像分割(Image Segmentation)。當前人類對用計算機視覺解決的最重要問題就是影像分類(Image Classification)、目標檢測(Object Detection)和影像分割,按難度遞增。在傳統的影像分類任務中,人們只對獲取影像中存在的所有物件的標籤感興趣。在目標檢測中,百分點科技嘗試在邊界框的幫助下了解影像中存在的所有目標以及目標所在的位置。影像分割透過嘗試準確找出影像中物件的確切邊界,將其提升到一個新的水平。識別影像中存在的內容,即影像所屬類別,通常結果為一個帶有機率的分類結果,一般取機率最高的類別為影像分類結果。影像分類示例,輸出為類別標籤及機率
目標檢測將物體的分類和定位合二為一,識別影像中存在的內容和檢測其位置,如下圖:目標檢測示例,輸出為類別標籤及回軌框
將影像中的每個畫素打上類別標籤,如下圖,把影像分為人(紅色)、車(深藍色)、天空(淺藍色)、馬路(深褐色)等。語義分割示例,輸出為根據所屬類別區分為不同顏色的掩碼(mask)
目標檢測和語義分割的結合,在影像中將目標檢測出來,然後對每個畫素打上標籤,如下圖,例項分割與語義分割的不同是它只將檢測出的目標畫素打上標籤不需要將全部畫素打上標籤,並且語義分割不區分屬於同類別的不同例項(人統一為紅色,車同一為深藍色),例項分割需要區分同類別的不同例項,為每個目標打上id標籤(使用不同顏色區分不同的人和車)。例項分割示例,輸出為回軌框和根據所屬例項id區分為不同顏色的掩碼
語義分割和例項分割的結合,既要將影像中的每個畫素打上類別標籤,又要區分出相同類別中的不同例項,如下圖:全景分割示例,輸出為根據所屬類別和例項id區分為不同顏色的掩碼
從上面圖例中可以看出,需要劃分出水域影像中不同類別的區域及大小(如河流、灘地、大壩區域),能夠完成此任務的技術路線就是使用語義分割或例項分割,因為只有它們能夠將水域影像中的每一個畫素分割確定為不同型別,從而確定影像中每種型別區域的大小和位置,同時該任務又不需要區分每個型別的例項,因此最適合方案的就是使用語義分割。下面就為大家介紹一下語義分割的原理。2. 語義分割原理
語義分割是為完全理解場景鋪平道路的高階任務之一。越來越多的應用程式從影像中提取、推斷資訊和知識,這一事實凸顯了場景理解作為核心計算機視覺問題的重要性。其中一些應用包括自動駕駛、人機互動、虛擬現實等。近年來,隨著深度學習(Deep Learning,DL)的普及,許多語義分割問題正在使用深度學習架構來解決,最常見的是卷積神經網路(Convolutional Neural Networks,CNN),它超越了其他方法在準確性和效率方面有很大的進步。百分點科技同樣也使用了當前較為先進的基於深度學習的語義分割技術,其中最重要的一個核心就是卷積神經網路。3. 語義分割網路結構
基於深度學習的語義分割基本架構由編碼器和解碼器組成,編碼器透過濾波器(filter)從影像中提取特徵,解碼器負責生成最終輸出,它通常是一個包含物件輪廓的分割掩碼。大多數架構都有這種架構或其變體。卷積編碼器-解碼器的視覺化表示
解碼器的一個核心創新就是使用了全卷積網路(Fully Convolutional Network,FCN)來替代CNN中的全連線層(Fully Connected Layers,FC)。CNN 由卷積層、池化層和非線性啟用函式組成。在大多數情況下,CNN 在末尾有一個全連線層,以便進行類標籤預測。具有全連線層的 CNN示例
但在語義分割方面,通常不需要最後的全連線層,因為目標不是預測影像的類標籤。在語義分割中,目標是在使用特徵將影像分成多個片段之前提取特徵。然而,卷積網路的問題在於,最大池化層影像在透過網路時會減小,為了有效地將影像分成多個片段,需要使用插值技術對其進行上取樣,這是使用反摺積層實現的。具有上取樣和反摺積層的 CNN示例
因為資訊在最後的卷積層(即1 X 1卷積網路)丟失了,所以解碼器產生的輸出是粗糙的,這使得網路很難透過使用這些少量資訊進行上取樣。為了解決這個上取樣問題,使用基於全卷積網路的兩種架構:FCN-16 和 FCN-8。在FCN-16中,來自前一個池化層的資訊與最終特徵圖一起用於生成分割圖。FCN-8 試圖透過包含更多先前池化層的資訊來使其變得更好。與傳統用CNN進行影像分割的方法相比,FCN有兩大明顯的優點:一是可以接受任意大小的輸入影像,而不用要求所有的訓練影像和測試影像具有同樣的尺寸;二是更加高效,因為避免了由於使用畫素塊而帶來的重複儲存和計算卷積的問題。同時FCN的缺點也比較明顯:一是得到的結果還是不夠精細,進行8倍上取樣雖然比32倍的效果好了很多,但是上取樣的結果還是比較模糊和平滑,對影像中的細節不敏感;二是對各個畫素進行分類,沒有充分考慮畫素與畫素之間的關係,忽略了在通常的基於畫素分類的分割方法中使用的空間規整(spatial regularization)步驟,缺乏空間一致性。為了避免FCN的這些缺點,後來又衍生出了許多語義分割網路,如U-Net、SegNet、PSPNet、DeepLab等。4. 模型訓練
模型訓練的過程可以簡單分為資料清洗、資料標註、資料預處理、模型訓練和模型調優等。首先,將清洗好的資料按照不同分類進行畫素級別的標註,如下圖所示:標註檔案示例,為了方便觀看調節了對比度,實際標註時將對應目標畫素標註為0,1,2,3等對應的數值,如河流標記為0,心灘標記為1
標註完成之後進行資料預處理,如影像切割、資料平衡、資料增強等。影像切割在原始影像較大時運用較多,可將一張非常大的圖切割成若干張小圖進行訓練防止很多影像細節的缺失,也可進行隨機切割增加影像的多樣性。資料平衡是當訓練集中存在某些類別的樣本數量遠大於另一些類別時對資料樣本量進行平衡,最簡單的方法有過取樣或欠取樣等。資料增強包含了很多方法,如翻轉、旋轉、拉伸、模糊、加噪聲、亮度調節等,增加資料多樣性,增強模型泛化能力。訓練模型時基於全卷積網路(FCN)框架使用了金字塔池化,也就是進行了多尺度特徵融合,這是因為由於在深層網路中,高層特徵包含了更多的語義和較少的位置資訊。這也使得模型除了具備基於深度學習的語義分割具備的優勢外又結合多尺度特徵,可以提高效能適應不同大小的目標。模型網路示例
模型訓練完成後還需根據測試結果進行調優,除了最佳化損失函式、學習率、最佳化器、dropout等超引數外還使用了遷移學習、模型剪裁等方法。語義分割結果示例
隨著語義分割的發展,基於語義分割的落地應用也越來越多,其中比較典型的有無人駕駛、醫療影像分析、地理資訊提取系統等,百分點科技開發的水域分割系統就屬於地理資訊提取系統,下面將展開介紹一下。無人車駕駛:語義分割也是無人車駕駛的核心演算法技術,車載攝像頭,或者鐳射雷達探查到影像後輸入到神經網路中,後臺計算機可以自動將影像分割歸類,以避讓行人和車輛等障礙。街景語義分割示例
醫療影像分析:隨著人工智慧的崛起,將神經網路與醫療診斷結合也成為研究熱點,智慧醫療研究逐漸成熟。在智慧醫療領域,語義分割可用於醫學影像分析等。本文介紹了使用語義分割技術對水域影像進行分割,實現水域監控。語義分割可以將影像中的每一個畫素分類,從而更好地理解影像中的場景資訊,並從中推斷出相關的知識或語義,這使得語義分割在自動駕駛、醫療影像分析、擴增實境等方向的發展迅速。此外,語義分割也讓大家進一步瞭解了計算機視覺、深度學習中的一些原理和應用。百分點科技一直關注和研究影像分割技術領域,目前,百分點科技應用影像分割技術在土地治理、安防監控等多個領域已經有專案應用落地,今後我們也將更加深入地在影像分割領域進行研究。
[1]Lécun Y, Bottou L, Bengio Y, et al. Gradient-basedlearning applied to document recognition[J]. Proceedings of the IEEE, 1998.[2]Alex Krizhevsky,Ilya Sutskever,Geoffrey E.Hinton,University of Toronto.ImageNet Classification with Deep ConvolutionalNeural Networks.NIPS 2012.[3]K. He, X. Zhang, S. Ren, and J. Sun. Deep residuallearningfor image recognition. In CVPR, 2016.[4]D. Bolya, C. Zhou, F. Xiao, and Y. J. Lee, “Yolact:Real-time instance segmentation,” in The IEEE International Conference onComputerVision (ICCV), October 2019.[5]I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu,D.Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Generative AdversarialNetworks. In NIPS, 2014.[6]Tero Karras,Samuli Laine,Timo Aila,NVIDIA,AStyle-Based Generator Architecture for Generative Adversarial Networks,InCVPR,2019.[7]https://github.com/deepinsight/insightface[8]https://github.com/facebookresearch/detectron2[9]https://venturebeat.com/2021/11/22/nvidias-latest-ai-tech-translates-text-into-landscape-images/