羅子明 馮開平 羅立宏
(廣東工業大學計算機學院,廣東廣州 510006)
近年來,由于語義分割在醫學圖像處理和自動駕駛方面具有廣闊的應用前景,越來越多的研究人員將目光放在語義分割上。語義分割結合了圖像分類、目標檢測和圖像分割,通過一定的方法將圖像分割成具有一定語義含義的區域塊,并識別出每個區域塊的語義類別,實現從底層到高層的語義推理過程,最終得到一幅具有逐像素語義標注的分割圖像。基于卷積神經網絡的語義分割方法與傳統的語義分割方法最大不同是,神經網絡可以自動學習圖像的特征,進行端到端的分類學習,大大提升語義分割的精確度。
本文的主要貢獻如下:(1)本文將語義分割的任務,即將輸入圖像全部像素進行分類的任務按照分類難度劃分成不同的子任務,分別訓練端對端的U-net神經網絡,解決了單一U-net在語義分割難度等級高的類的精度不高的問題。(2)本文通過集成神經網絡來輸出最終的語義分割結果,在集成神經網絡上使用了多種卷積核相結合的方法,使算法在圖片特征提取的過程中保持較大的感受野,減少空間特征信息的丟失。
經典的語義分割算法有全卷積神經網絡(Fully Convolutional Networks)[1],它包含卷積層和用于恢復空間信息的上采樣層,另外一種是基于編碼解碼器的卷積神經網絡,經典的構架為SegNet。
總的來說,當語義分割任務要區分的類的數目增多或被區分的物體在不同的圖片中有不一樣的特征的時候,語義分割的精度就會下降。學者們嘗試了許多方法來解決這個問題,提高語義分割算法的精度。其中Bengio等人提出的循環學習的方法[2]是在訓練神經網絡的時候按語義分割難度區分各類,從簡單類到困難類逐步訓練。而深層級聯方法[3]則是使用級聯的IRNet,其方法主要是根據不同的難度等級逐步根據上一步的結果對圖像進行分割。這些成果驗證了在具有類別劃分的數據集上將語義分割任務劃分成各個子任務是可行的。
本研究在上述研究的基礎上按照各類別分割的難度將語義分割任務拆分成多個分類子任務。本研究按以下兩點判別類別的難度等級:(1)該類別的像素點數目占總的像素數目的百分比;(2)該類別的物體的特征是否會隨著圖片的不同而發生較大的改變。
本研究為各個難度等級分別訓練神經網絡,從這些網絡中獲取概率圖并輸入給集成網絡,通過集成網絡輸出最終的語義分割結果。本研究使用的CamVid[4]數據集包含11個類,根據每個類的像素點的多少將這11個類分成容易、中等、困難三個難度等級。4個像素點最多的類劃分為簡單,3個像素點最少的類劃分為困難,剩下的4個類劃分為中等。
如圖1算法架構示意圖所示,本方法主要分為兩大部分,為每個不同難度等級訓練一個神經網絡和訓練一個集成神經網絡,將從各個子任務的神經網絡中獲取的概率圖輸入到集成網絡中。
本研究將圖像的全類別劃分成不同的難度等級。通常若某個類別的像素點多,那么該類別就容易劃分出來,反之,若某個類別的像素點少,那么就不容易劃分出來。因此,本研究根據不同類別的像素點的多少來劃分其分割難度。

圖1 算法架構圖Fig.1 Algorithm architecture diagram
圖2 是CamVid數據集中的一幅圖片,本研究將CamVid數據集的11個類劃分成三個難度等級:4個像素點最多的類劃分為簡單,3個像素點最少的類劃分為困難,剩下的4個類劃分為中等。
本研究使用U-n e t 作為各個難度等級的分類器。在U-n e t 中使用交叉熵損失函數。如圖1 算法架構所示Unet_1,U-net_2和U-net_3的輸出表示為F1,F2和F3,F表示經過映射的概率圖。U-net_1,U-net_2和U-net_3分別對應三個不同的難度等級。
如圖3所示的架構處理上一步各個難度等級的U-net輸出的概率圖,將級聯的概率圖F1,F2和F3輸入到集成網絡中,在集成網絡中使用兩種卷積核(1×1,3×3)。1×1卷積表示各個像素點的概率加權和;3×3 卷積表示局部區域的概率加權和。通過softmax獲得輸出概率,集成網絡的損失函數也是交叉熵損失函數。
本研究在訓練神經網絡的時候根據圖片各類別像素點的多少來確定各個U-net所占的全總,類別權重的計算公式:

式中Wc表示某類別的權重,fm表示中位頻率,fc表示該類別的頻率。
在訓練網絡時,總的損失函數定義:

總的損失為各個神經網絡損失的和。表1展示了各個網絡架構、難度分級、類別權重和損失函數的對應關系。
實驗部分將本研究提出的方法與傳統的不對類按難度劃分的方法進行對比,使用交并比(IoU)作為性能對比的指標。IoU的計算公式:

其中TP,FP,FN分別表示真陽性,假陽性和假陰性計數。

圖2 難度等級分類示意圖Fig.2 Schematic diagram of difficulty level classification

圖3 級聯網絡示意圖Fig.3 Schematic diagram of cascade network;

圖4 在CamVid 數據集上的實驗結果Fig.4 Experimental results on CamVid data set
本實驗使用CamVid數據集,該數據集包含11個類,701張照片(其中367張圖片作為訓練集,101張圖片作為驗證集,233張圖片作為測試集),圖片尺寸為360×480像素。本實驗設置批處理尺寸大小為4,學習率設置為0.001。
本研究使用的方法將數據集全部11個類按照各類像素點的多少分成了多個難度等級。將難度等級分為兩級(容易,困難)和三級(容易,中等,困難)。(1)在難度等級兩級的情況下:將天空、建筑、道路、樹木、車輛劃分為容易這一等級;將燈柱、人行道、指示牌、行人、自行車手劃分為困難等級。(2)在難度等級三級的情況下:將天空、建筑、道路、樹木劃分為容易等級;將人行道、指示牌、圍欄和車劃分為中等等級;將燈柱、行人和自行車手劃分為困難等級。
圖4為CamVid數據集上的實驗結果對比,從上到下四組圖片分別是原圖,實測值,使用本實驗方法的分割結果和使用U-net的分割結果。
表1 展示了傳統的方法與本研究的方法在I o U 上的精準度對比。其中第一行是沒有劃分難度等級使用單一U-net的方法在各個類別上的IoU,第二,三行分別是劃分了兩個難度等級和三個難度等級的各個類別的IoU。如表1 所示,本研究使用的改進方法與不劃分難度等級的傳統方法對比在各類平均IoU上有了2%的提升。尤其是在圍欄、人行道、自行車手這三類上有超過5 % 的提升,這些類都被劃分為中等難度或者困難難度,這說明本研究的方法對于一些較難檢測的類的語義分割精度有提升作用。

表1 CamVid 數據集實驗結果對比Tab.1 Comparison of experimental results of camvid data set
本研究提出了一種通過劃分不同難度等級提高語義分割精度的方法,首先將語義分割的任務劃分成多個按不同難度等級進行語義分割的子任務,提高了各子任務的神經網絡對自身困難等級的語義特征的提取能力,提高了神經網絡的性能。其次,通過級聯的集成網絡加權各個子任務神經網絡的特征輸出,輸出語義分割結果。最后在C a m V i d 數據集上進行實驗證實了本研究方法的有效性。
下一步的研究可以分兩個方向:(1)本研究使用的神經網絡架構為U-net,但是在不同的難度等級上可以使用不同深度的神經網絡,具體來說就是對難度等級為容易的類使用淺層的網絡,對難度等級為困難的類使用更深層的神經網絡。(2)在計算各層網絡的權重的時候可以使用更強的擬合算法來代替加權平均。