Categories
程式開發

高德地圖如何基於深度學習實踐圖像分割


一、前言

圖像分割(Image Segmentation)是計算機視覺領域中的一項重要基礎技術,是圖像理解中的重要一環。圖像分割是將數字圖像細分為多個圖像子區域的過程,通過簡化或改變圖像的表示形式,讓圖像能夠更加容易被理解。更簡單地說,圖像分割就是為數字圖像中的每一個像素附加標籤,使得具有相同標籤的像素具有某種共同的視覺特性。

圖像分割技術自 60 年代數字圖像處理誕生開始便有了研究,隨著近年來深度學習研究的逐步深入,圖像分割技術也隨之有了巨大的發展。早期的圖像分割算法不能很好地分割一些具有抽象語義的目標,比如文字、動物、行人、車輛。這是因為早期的圖像分割算法基於簡單的像素值或一些低層的特徵,如邊緣、紋理等,人工設計的一些描述很難準確描述這些語義,這一經典問題被稱之為“語義鴻溝”。

得益於深度學習能夠“自動學習特徵”的這一特點,第三代圖像分割很好地避免了人工設計特徵帶來的“語義鴻溝”,從最初只能基於像素值以及低層特徵進行分割,到現在能夠完成一些根據高層語義的分割需求。

高德地圖如何基於深度學習實踐圖像分割 1

(圖像分割的發展歷史)

高德地圖擁有圖像/視頻大數據,在眾多業務場景上都需要理解圖像中的內容。例如,在數據的自動化生產中,通常需要尋找文字、路面、房屋、橋樑、指示牌、路面標線等目標。這些數據裡有些是通過採集車輛或衛星拍攝,也有些數據則是通過用戶手機拍攝,如下圖所示:

高德地圖如何基於深度學習實踐圖像分割 2

面對這些場景語義復雜、內容差異巨大的圖像,高德是如何通過圖像分割對其進行理解的?本文介紹了圖像分割在高德地圖從解決一些小問題的“手段”,逐步成長為高度自動化數據生產線的強大技術助力。

二、探索期:一些早期的嘗試

在街邊的數據採集中,我們需要自動化生產出採集到的小區、店舖等 POI (Point of Interest)數據。我們通過 OCR 算法識別其中文字,但苦惱於無法確定採集圖像中到底有幾個 POI。例如,下圖中“領秀麗人”與“燕子童裝”兩家店鋪,人眼可以很容易區分,但是對於機器則不然。一些簡單的策略,比如背景顏色,容易帶來很多的錯誤。

高德地圖如何基於深度學習實踐圖像分割 3

例如,遇到兩個樣式十分相近的掛牌的時候,我們利用無監督的gPb-owt-ucm 算法(1) 在檢測多級輪廓的基礎上結合改進的分水嶺算法將圖像切分為多個區域,並利用Cascade Boosting 的文字檢測結果將圖中帶有文字的區域進行了分割。

三、成長期:自然場景下的語義分割

於 2014 年底問世的全卷積神經網絡 (2)(FCNs, Fully Convolutional Networks)無疑是繼 2012 年問鼎 ImageNet 大賽以來深度學習發展的又一里程碑。 FCNs 提供了第一個端到端式的深度學習圖像分割解決方案。 FCNs 在 CNN 的基礎上可以從任意尺寸的輸入進行逐像素的分類。我們也在第一時間將其落地到高德自身的應用場景中,例如文字區域的分割。自然場景下的文字由於其背景、光照複雜,文字朝向、字體多樣,使得人工構建特徵十分困難。

很快地,我們發現 FCNs 還並不能很好地滿足我們的需求。雖然FCNs 在解決語義鴻溝問題上提供了解決方案,但在一般情況下只能給出一個“粗糙”的區域分割結果,不能實現很好的“實例分割”,對於目標虛警、目標粘連、目標多尺度、邊緣精度等問題上也沒有很好地解決。一個典型的例子就是在分割文字區域時,“挨得近”的文字區域特別容易粘在一起,導致在計算圖像中的文本行數時造成計數錯誤。

高德地圖如何基於深度學習實踐圖像分割 4

因此,我們提出了一個多任務網絡來實現自己的實例分割框架。針對目標粘連的問題,我們在原始網絡中追加了一個分割任務,其目標是分割出每個文本行的“中軸線”,然後通過中軸線區域來拆分粘連的文本行區域。拆分的方法則是一個類似於 Dijkstra 的算法求解每個文本區域像素到區域內中軸線的距離,並以最短距離的中軸線作為像素歸屬。

高德地圖如何基於深度學習實踐圖像分割 5

另外一個比較困擾的問題是 FCNs 結果中的虛警,即非文字區域被分割為文字區域。雖然相較於一些傳統方法,FCNs 結果中的虛警已經少了很多,但為了達到更好的分割正確率,我們在原有網絡基礎上增加了一個並行的R-CNN 子網絡進行文字的檢測,並利用這些檢測結果抑制虛警的產生(False Alarms Suppression)。

為了通過端到端的學習使得網絡達到更好的效果,我們設計了一個一致性損失函數(Consistency Loss Function),來保證網絡主幹下分割子網絡和檢測子網絡能夠相互指導、調優。從優化後分割網絡輸出的能量圖可以看到,虛警的概率明顯降低了。若想要了解詳細細節,可以參考我們 17 年公佈在 arxiv 上的文章(3)。

高德地圖如何基於深度學習實踐圖像分割 6

四、成熟期:分割的精細化與實例化

得益於 Mask R-CNN 框架 (4) 的提出,實例化的圖像分割變得更加容易。以之前提到的商戶掛牌的分割為例,掛牌區域的分割也十分容易出現粘連,且掛牌樣式多樣,不存在文本行這樣明顯的“中軸線”。目標檢測方法可以對提取掛牌的外包矩形。但問題在於,自然場景下掛牌的拍攝往往存在非垂直視角,因此在圖像上並不是一個矩形,通常的檢測算法則會帶來不准確的邊緣估計。 Mask R-CNN 通過良好地整合檢測與分割兩個分支,實現了通用的實例化圖像分割框架。其中目標檢測分支通過 RPN 提取目標區域,並對其進行分類實現目標的實例化;然後在這些目標區域中進行分割,從而提取出精準的邊緣。

一些更加複雜的場景理解需求,也對圖像分割分割精細程度提出了更高的要求。這主要體現在兩個方面:(1)邊緣的準確度(2)不同尺度目標的召回能力。

在高精地圖的數據數據生產需要分割出圖像中的路面,然而高精地圖對於精度的要求在厘米級,換算到圖像上誤差僅在 1~2 個像素點。觀察原始分割的結果不難發現,分割的不准確位置一般都是出現在區域邊緣上,區域內部是比較容易學習的。

因此,我們設計了一個特殊的損失函數,人為地增大真值邊緣區域產生的懲罰性誤差,從而加強對邊緣的學習效果,如圖所示,左側為可行駛路面區域分割,右側是路面及地面標線分割。

高德地圖如何基於深度學習實踐圖像分割 7

道路場景下需要理解的目標種類繁多,一方面其本身有大有小,另一方面由於拍攝的景深變化,呈現在圖像上的尺度也大小各異。特別的是,有些特殊目標,例如燈桿、車道線等目標是“細長”的,在圖像上具有較大長度,但寬度很小。這些目標的特性都使得精細的圖像分割變得困難。

高德地圖如何基於深度學習實踐圖像分割 8

首先,由於受到網絡感受野的限制,過大和過小的目標都不容易準確分割,比如道路場景下的路面與燈桿,衛星影像中的道路與建築群。針對該問題,目前的 PSPNet (5), DeepLab (6), FPN (7) 等網絡結構都能在不同程度上解決。

其次,由於目標尺度不同,導致分割網絡樣本數量的比例極不均衡(每一個像素可以認為是一個樣本),我們將原先用於目標檢測任務的 Focal Loss (8) 遷移到圖像分割網絡中來。 Focal Loss 的特點在於可以讓誤差集中在訓練的不好的數據上。這一特性使得難以學習的小尺度目標能夠被更加準確地分割出來。

高德地圖如何基於深度學習實踐圖像分割 9

五、未來的展望

圖像分割技術目前朝著越來越精確的方向上發展,例如Mask Scoring R-CNN (9)、Hybrid Task Cascade (10) 的提出,在Mask R-CNN 的基礎上持續優化了其分割的精確程度。然而站在應用角度,基於深度學習的圖像分割相較於當量的分類任務則顯得“笨重”。

出於圖像分割任務對精度的要求,輸入圖像不會像分類任務一樣被壓縮至一個很小的尺寸,帶來的則是計算量的指數級增加,使得圖像分割任務的實時性較難保證。針對這個問題,ICNet, Mobile 等網絡結構通過快速下採樣減少了卷積初期的計算量,但也帶來了效果上的折損。基於知識蒸餾(Knowledge Distillation)的訓練方法,則像個更好的優化方案,通過大網絡指導小網絡學習,使得小網絡的訓練效果優於單獨訓練。知識蒸餾在訓練過程中規避了網絡剪枝所需要的經驗與技巧,直接使用較低開銷的小網絡完成原先只能大網絡實現的複雜任務。

對於高德地圖來說,圖像分割已經是一個不可或缺的基礎技術,並在各個數據自動化生產線中得到了廣泛應用,助力高德地圖的高度自動化數據生產。未來,我們也將持續在地圖應用場景下打造更加精準、輕量的圖像分割技術方案。

六、參考文獻

(1) Arbelaez, Pablo, et al. “Contour detection and hierarchical image segmentation.” IEEE transactions on pattern analysis and machine intelligence 33.5 (2010): 898-916.

(2) Long, Jonathan, Evan Shelhamer, and Trevor Darrell. “Fully convolutional networks for semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.

(3) Jiang, Fan, Zhihui Hao, and Xinran Liu. “Deep scene text detection with connected component proposals.” arXiv preprint arXiv:1708.05133 (2017).

(4) He, Kaiming, et al. “Mask r-cnn.” Proceedings of the IEEE international conference on computer vision. 2017.

(5) Zhao, Hengshuang, et al. “Pyramid scene parsing network.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.

(6) Chen, Liang-Chieh, et al. “Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs.” IEEE transactions on pattern analysis and machine intelligence 40.4 (2017): 834-848.

(7) Lin, Tsung-Yi, et al. “Feature pyramid networks for object detection.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.

(8) Lin, Tsung-Yi, et al. “Focal loss for dense object detection.” Proceedings of the IEEE international conference on computer vision. 2017.

(9) Huang, Zhaojin, et al. “Mask scoring r-cnn.” Proceedings of the IEEE Con​​ference on Computer Vision and Pattern Recognition. 2019.

(10) Chen, Kai, et al. “Hybrid task cascade for instance segmentation.” Proceedings of the IEEE Con​​ference on Computer Vision and Pattern Recognition. 2019.

本文轉載自公眾號高德技術(ID:amap_tech)。

原文鏈接

https://mp.weixin.qq.com/s/n9Xdj5RKGR9cyXXNzxzvSw