張 蓉 趙昆淇 顧 凱
(江蘇科技大學電子信息學院 鎮江 212000)
圖像語義分割是在圖像分割的基礎上對分割出來的物體進行語義標注。圖像語義分割是圖像理解和圖像識別的基石性技術,對后續圖像處理的結果有很大的影響。因此,基于卷積神經網絡的道路圖像語義分割對于可以有效地分割道路圖片,并準確地標記分割物體的類別具有重要意義。
圖像語義分割主要是通過提取圖片的低級特征進行分割,分割出來的結果并沒有進行語義標注,只是簡單的圖像分割。常用的方法如Jianbo shi 提出的“Normalized cut”圖劃分方法,雖然能夠考慮全局信息來進行圖劃分,但分割的結果并不準確且不能對復雜圖像進行分割。此外,微軟研究院提出了一種人機交互的技術——“Grab Cut”方法,人工干預圖片進行處理能得到較好的期望結果,但只能做二類語義分割。
現階段,計算機也從人工智能時代步入了深度學習時代,因此圖像語義分割也進入了全新的發展階段。Long 等在2014 年提出了全卷積神經網絡(FCN),它對深度學習在圖像語義分割上有開創性的意義,沿用了AlexNet卷積網絡的結構,在全連接層的地方擴大了卷積階段和全連接層的plane size,該結構可以將圖像分割成任意大小的圖像,提高了處理速度,但是不能夠對類別圖像進行精確的調整。因此,Cambridge 在FCN 的基礎上提出了Seg-Net網絡,該網絡采用編碼——解碼的網絡結構,將最大池化指數轉移到了編碼器中,保留了池化層中的位置信息,改善了分割分辨率,提高了速度。
然而,在圖像的采集與傳輸過程中會存在各種噪聲,圖像中的噪聲屬于無效信息,因此輸入的圖像也會對分割的結果產生影響。本文在使用Seg-Net 網絡結構模型的基礎上,采用了一種基于差異系數的稀疏度自適應圖像去噪算法,彌補圖像在傳輸和獲取過程中存在的噪聲問題。該算法在對圖片進行去除噪聲的同時盡可能地完整保留圖像的有用信息,然后再利用卷積神經網絡模型對圖像進行語義分割,最終得到較好的分割結果。
本文采用SegNet網絡結構模型,SegNet網絡結構如圖1所示。其中Input為輸入的原始圖片,Output 為分割出的輸出結果,圖片中用不同的顏色代表不同的物體,同一種物體用固定的顏色表示。使用SegNet 網絡進行圖像語義分割的重點是它不僅可以指明圖片中某個物體的屬性,而且還會標注它所在的位置。SegNet 網絡結構是一個對稱的網絡結構,以中間的池化(pooling)層和上采樣(upsampling)層作為分割線。左邊通過卷積的方法提取高維特征,并在提取特征的同時通過池化(pooling)使圖片變小,右邊是采用反卷積(在這里反卷積與卷積沒有區別)與上采樣(upsampling)的方法,通過反卷積使得圖像分類后的特征得以重現,上采樣(upsampling)使圖片變大,最后將輸出的值通過分類器(Softmax)進行分類,得到最終的圖像分割結果。
SegNet 網絡由兩個對應的網絡組成即一個編碼(encoder)網絡和一個對應的解碼(decoder)網絡,在倆個網絡的最后在連接一個像素級的分類層,其中解碼網絡與VGG16 的13 層卷積層相同。解碼網絡的主要作用是將通過編碼網絡得到的低分辨率的編碼特征圖映射到全分辨率的編碼特征圖中,提高特征圖的分辨率,并且使用最大池化的池化索引方法進行非線性上采樣。之后將經過上采樣得到的稀疏的特征圖與可訓練的解碼濾波器相卷積,這樣就能夠得到致密的特征圖。使用池化層索引進行上采樣的優勢:1)提升邊緣刻畫度;2)減少訓練的參數;3)可以將這樣的上采樣模式運用到任何編碼-解碼網絡中。

圖1 SegNet網絡結構圖
SegNet 網絡結構中卷積層與普通的卷積層不同,區別在于SegNet中的卷積層都會在后面加上一個批標準化(bn)層,作用主要是加快學習速度,批標準化(bn)層后面為ReLU 激活層,用于激活函數之前。批標準化(bn)層的作用過程可以歸為
1)訓練時
(1)向前傳播,批標準化(bn)層對卷積后得到的特征值(權值)進行標準化處理,與此同時保持輸出不變,即批標準化(bn)層僅僅是保存輸入權值的均值與方差,當輸出的權值回到卷積層時依舊是當初卷積后的權值,不對它進行任何改變。
(2)向后傳播,結合網絡結構中每一個卷積層與ReLU層對批標準化(bn)層中所保存的均值與方差進行求導得到梯度值從而可以計算出當前的學習速率。
2)測試時
每個批標準化(bn)層都需要對訓練集中的所有數據進行總體均值與方差的求取。假設要將一個預測試圖像經過卷積層再輸入批標準化(bn)層時,首先需要對輸入權值的均值與方差進行統計,然后再根據訓練集中的無偏差估計準確計算出批標準化(bn)層的輸出。需要注意是測試時,批標準化(bn)層已經改變了卷積的權值,因此激活層Re-LU的輸入值也相應的被改變。
在SegNet 的編碼(Encoder)過程中,卷積是為了提取特征。在SegNet 網絡中使用到的是same 卷積,即卷積后不改變圖片的大小;相應地,在解碼(Decoder)過程中,同樣使用same卷積,不過其中卷積的作用與編碼網絡中不同是為經過上采樣(upsampling)處理的圖像豐富其丟失的信息,即對在池化(Pooling)過程中丟失的信息可以通過不斷學習在解碼(Decoder)中得到。
本文采用一種基于差異系數的稀疏度自適應SK-SVD圖像去噪算法(Sparsity Adaptive SK-SVD),該算法在稀疏訓練階段自適應計算稀疏度K,并將此K 值反饋到SK-SDV 去噪過程中。此外,還引入“差異系數”修正在選擇原子列的過程中造成的假相似性。SK-SDV 去噪模型依據灰度方差值將樣本塊分為兩部分分別進行去噪。
該算法將相似度均值作為閾值,并設置最小殘差自適應的生成稀疏度K,同時引入“差異因子”作為計算相似度時的系數,用來修正假相似現象[14]。該去噪算法具有良好的自適應性,在給圖像去噪的同時也能夠很好地恢復圖像的一些細節信息,能夠很好地去除圖像中的無用信息,保留有用信。因此,能夠有效地提高圖像的分割結果。圖像去噪之后對比圖如圖2所示。

圖2 部分去噪結果對比
在訓練網絡模型過程中,重要的是制作自己的標簽數據集。首先要選擇好訓練集,注意,訓練集需要與預分割圖片一個類型。本文用到的制作標簽集工具是labelme,需要手動劃分物體并進行語義標注,對圖像中的各種預分割物體進行逐項素的語義標注,同時達到對圖像的像素級的分割。制作的部分標簽圖如圖3所示。

圖3 部分標簽圖
要有效地對圖像進行語義分割重點要解決兩個部分。首先要訓練網絡模型,在訓練網絡模型之前,應該先確定預分割圖像的類型,然后選擇大量與預分割圖像類型一致的圖片作為數據集,并制作相應的標簽圖,這樣就能夠進行網絡模型的訓練。第二是對輸入圖像進行預處理,本文主要是對圖像進行去噪處理,采用基于差異系數的稀疏度自適應圖像去噪算法有效去除圖像中的噪聲,減少圖像損失,最后將處理過后的圖像輸入到訓練好的網絡模型中,得到輸出的分割結果。整體的分割流程圖如圖4所示。

圖4 整體分割流程圖
為了對本文提出的方法進行驗證,在CamVid數據集上進行測試,有12 個類別,分別為天空、建筑物、電桿、路標、道路、人行道、樹木、道路符號、柵欄、自行車、汽車、行人。將這些數據分為三部分:訓練集、驗證集和測試集。訓練集有367 張圖片,測試集有233 張圖片,驗證集有101 張圖片。首先基于訓練集訓練模型,然后用驗證集的驗證模型,最后用測試集進行測試。
本實驗系統采用ubuntu系統,SegNet網絡實現工具為TensorFlow。模型的訓練和測試基于以下配置環境:Tensorflow+Ubuntu16.04+Cuda8.0。+Cudnn5.0。在上述環境設置下對網絡模型中的參數進行不斷的調整,并一直訓練網絡模型直到達到預期效果。經過訓練之后,網絡模型的參數設置如表1所示。

表1 SegNet網絡參數
通常基于區域的評價標準是IU,通過檢查Sseg和Sgt的重疊率得到其中Sseg和Sgt分別表示分割結果和真值。為了定量評價圖像語義分割結果的精度,采用四種評價指標:像素精度(pixel accuracy),平均類精度(mean accuracy),平 均IU(mean IU)和 帶 權IU(frequency weighted IU)。其中平均IU是最常用的評價方法。
各種評價方法的表達式如下式所示:

式中:nij表示預測第i 類屬于第j 類的像素數,ncl表示不同的類別,是第i 類的總像素數。
分別將未經過預處理的圖片與經過預處理的圖片輸入到訓練好的網絡模型中,對輸出的分割結果圖進行比較,結果對比圖如圖5所示。

圖5 分割對比圖
僅僅從輸出圖片的結果難以分辨出結果的好壞,所以需要根據評價IU 的評價標準進行直接的比較,這樣可以清晰直觀地看出分割的差距。表2是對分割結果的評估。

表2 分割結果評價
除了SegNet 網絡可以用于道路駕駛場景的分割之外,還有FCN,Deeplab-CRF 等用于圖像語義分割的模型。利用不同的網絡結構模型,分別對同一組處理過的圖片進行圖像語義分割,對不同的網絡模型的分割效果進行評估。表3 是FCN,Deeplab-CRF 等各語義分割模型在PASCAL VOC-2011 test set數據集上的結果。

表3 網絡模型結果對比
卷積神經網絡在圖像語義分割領域有很好的應用,本文在SegNet網絡的基礎上對輸入的圖像進行預處理,采用了一種基于差異系數的稀疏度自適應圖像去噪算法,在去除噪聲的同時極大地保留有效信息。本文提出的方法既不增加網絡模型的復雜程度,又能夠簡單高效地提高圖像的分割效果。