高建瓴 韓毓璐 孫健



摘 ?要: 為了提高圖像語義分割時的識別和分割能力的問題,本文提出了一種基于DeepLabV3+改進的算法。改進的算法以DeepLab模型作為主體,結合了DRN的結構,減少了分割過程中圖像出現網格化的情況。同時為了能夠檢測到更多邊緣信息,有效提高檢測分割結果,算法中改進了空洞卷積的部分,提高了分割精度,避免遺漏太多圖像信息。通過PASCAL VOC 2012數據集開展的語義分割實驗顯示,改進的算法有效的提高了在分割時的精度和準確率,本文所提出的網絡對圖像分割有極大的參考價值。
關鍵詞: 語義分割;空洞卷積;擴張殘余網絡
中圖分類號: TN391 ???文獻標識碼: A ???DOI:10.3969/j.issn.1003-6970.2020.09.040
【Abstract】: In order to improve the problem of recognition and segmentation ability in image semantic segmentation, this paper proposes an improved algorithm based on DeepLabV3+ model. The improved algorithm takes the DeepLab model as the main body and combines the structure of the dilated residual network to reduce the gridding of the image during the segmentation process. At the same time, in order to be able to detect more edge information and effectively improve the detection segmentation results, the dilated convolution part is improved in the algorithm. The segmentation accuracy is improved, and the image avoid missing too much image information. The semantic segmentation experiment carries out through the PASCAL VOC 2012 dataset shows that the improved algorithm effectively improves the accuracy and accuracy of the segmentation. The network proposed in this paper has great reference value for image segmentation.
【Key words】: Semantic segmentation; Dilated convolution; Dilated residual network
0 ?引言
隨著當今社會人工智能愈發成熟,人工智能中與計算機視覺相關的應用越加廣泛。圖形處理已經成為當今社會計算機視覺等領域的研究重點,其中圖像分割[1]又在圖像處理中具有重要的意義。圖像分割可以看做是像素級的分類,也就是說將圖像中的每一個像素都歸為同一類別。而圖像語義分割作為一類典型的像素級別的分類任務,它在場景理解、環境感知、醫療圖像處理等具有十分廣泛的應用場景。圖像語義分割其主要目標是對圖片進行逐像素分割,從而將圖片分成若干個具有相似特征的區域,用于后續的圖像分析和語義概念分析任務。傳統的圖像語義分割[2]模型主要是通過人工添加標簽并且人為設置規則來進行規范的,但是這樣處理人工工作量太大,難以實現復雜問題的處理[3]。因此近些年來不斷有人提出了模型來進行語義分割的工作。
隨著技術逐漸進步,基于深度學研究圖像語義分割成為當下熱點[4]。2012年,Krizhevsky等人提出了AlexNet架構,使大家看到了深度學習解決復雜計算機視覺任務的可能性。于是卷積神經網絡被不斷應用,研究人言提出了多種改進方法[5],其中最著名的包括VGGNet、GoogleNet和ResNet等。2015年,Vijay Badrinarayanan等人提出來SegNet[6],擁有較少參數的輕量級網絡。同年,Lonjong等人提出了全卷積網絡(FCN),FCN是以VGG16為基礎改進而來的,其將后半部分的全連接層改成卷積層,從而支持任意尺寸圖像輸入的分割功能,相比于早期的算法,效果明顯提升。Google[7]團隊在2015年提出了一個DeepLabV1模型,是由DCNN和CRF模型的結合,二者結合極大的提高了效率,精準度高并且結構簡單。DeepLabV2就是在DeepLabV1模型的基礎上進行了改進,但是特征分辨率低和空間不變性導致的細節信息丟失還是有待改進。而在2017年提出的DeepLabV3則改進了級聯的方式,綜合運用串行和并行的方式,同時在ASPP中使用了BN層,實現對多尺度物體分割。2018年,Google團隊進一步改進,提出了DeepLabV3+,對原來的模型進行改進。他將原來的DeepLabV3作為編碼器,同時加入ResNet101[8]和深度卷積,可以更快的實現了分割,但是輸出圖的放大效果不夠好,信息太少,有待改進。
為了進一步的提高圖像分割時的準確度,本文為了增強對復雜圖像的分割處理的精度改進了空洞卷積,同時引進了DRN模型,提升了模型的精度,并通過實驗對改進的網絡結構的效率進行了驗證,在PASCAL-VOC數據集上有著一定的提升。
1 ?相關工作
1.1 ?DRN擴張殘余網絡
卷積網絡的圖像分類過程中會逐步降低分辨率,直到圖像被表示為微小的特征圖,而圖片中有場景的空間結構則會變得不明顯。這種空間敏銳度的喪失會限制圖像分類的準確性。這些問題可以通過擴張來緩解,擴張可以提高輸出特征圖的分辨率,而不會減少單個神經元的接受域。在不增加模型深度和復雜性的情況下,擴展的殘差網絡在圖像分類方面優于非擴展殘差網絡。
擴張殘余網絡(DRN, dilated residual network)[9]是在卷積網絡中保持空間分辨率以進行圖像分類的網絡。雖然漸進式下采樣在對物體或圖像進行分類時非常成功,但空間信息的丟失可能不利于對自然圖像進行分類,并可能嚴重妨礙轉移到涉及空間詳細圖像理解的其他任務。自然圖像通常包含許多對象[10],這些對象的身份和相對配置對于理解場景非常重要。當關鍵對象在空間上不占主導地位時,分割任務就會變得困難,也就是說例如,當被標記的對象是薄的(例如,一個三腳架)或圖像中有一個大的背景物體。物體的信號由于向下采樣而丟失,那么在訓練過程中恢復信號的希望就很小。然而,假設在整個模型中保持高空間分辨率,并提供密集覆蓋輸入域的輸出信號,那么反向傳播可以學會保存關于更小、更不突出的對象的重要信息。
DRN是以Resnet為基礎,提出了一個改進方法,在resnet的top layers移除下采樣層,這可以保持feature map的空間分辨率,但后續的卷積層接收野分辨率下降了,這不利于模型聚合上下文信息。針對這一問題,論文使用擴張卷積替換下采樣,在后續層合理使用擴張卷積,在保持feature map的空間分辨率同時維持后續層接收野的分辨率。
1.2 ?空洞卷積
因為現有的模型在進行圖像分割任務的時候,存在著個關鍵的問題:下采樣過程中導致部分信息丟失[11]。一般來說我們采用下采樣[12],是為了能夠使感受野擴大,使得每個卷積輸出都包含較大范圍的信息,但這種情況下,會導致圖像的分辨率不斷下降,包含的信息越來越抽象,而圖像的局部信息與細節信息會逐漸丟失,還是不可避免的會造成信息的損失。
空洞卷積可以明確的設定深度卷積網絡的特征圖大小,同時也可以通過設定卷積核感受視野大小通過卷積操作提取多尺度信息。下圖2(a)為常規的卷積操作,使用擴張率為1的空洞卷積生成,對應的感受野為3*3,9個紅點代表卷積核的9個權重。圖2(b)為atrous rate 等于2的空洞卷積,使用了擴張率為2的空洞卷積處理,是第一次空洞卷積的卷積核大小等于第二次空洞卷積的一個像素點的感受野,即生成的感受野為7*7。同樣有9個權重,但是這個卷積核的感受視野變大了,在卷積運算時只與紅點所在位置的輸入進行運算,而綠色部分輸入被忽略。圖2(c)為atrous rate等于4的空洞卷積,處理同上,第二次空洞卷積的整個卷積核大小等于第三次空洞卷積的一個像素點的感受野,生成的每一個點感受野為15*15。相比之下,如果僅僅使用stride為1的普通3*3卷積,三層之后的感受野僅僅為7。
1.3 ?DeepLabV3+網絡模型
DeepLabV3+模型是由Google團隊來提出的,在VOC比賽中取得了非常優異的成績,是目前應用廣泛的一種語義分割網絡,效果優秀,但是DeepLabV3+模型中也存在著一些限制缺點和不足。針對現有的圖像數據原模型很容易出現多目標檢測效果不夠好的情況,因此希望對現有的DeepLabV3+模型進行一定的改進,以提升效果。DeepLabV3+的輸出能夠編碼豐富的語義信息,其利用空洞卷積來控制編碼輸出的特征分辨率。DeepLabV3+通過添加一個簡單而有效的解碼器模塊來恢復對象邊界,擴展了DeepLabV3原有的模型。DeepLabV3+中使用了兩種類型的神經網絡,分別是空間金字塔模塊(Atrous Spatial Pyramid Pooling,ASPP)和編碼器-解碼器(Encoder-Decoder)結構做語義分割。DeepLabV3+結合了這二者的優點,擴展了一個簡單有效的模塊用于恢復邊界信息。
圖3(a)是原來DeepLabV3的結構,使用ASPP模塊獲取多尺度上下文信息,直接上采樣得到預測結果。圖3(b)是通用的編碼器-解碼器結構,高層特征提供語義,解碼器逐步恢復邊界信息。圖3(c)是DeepLabV3+結構,以原有的DeepLabV3為編碼器,解碼器結構簡單。
在DeepLabV3+中使用了空間金字塔池化, 即帶有空洞卷積的空間金字塔結構,增加了不同尺度范圍內的語義信息的提取和區分,以實現對目標圖像中多尺度的物體進行分割。
原有的模型中使用了DeepLabV3當做編碼器。 DeepLabV3 采用了使用了空洞卷積的深度卷積神經網絡可以以任意分辨率提取特征。此外,DeepLabv3+增強了ASPP模塊,該模塊通過應用具有不同比率的空洞卷積和圖像級特征來獲取多尺度的卷積特征。經過ASPP模塊再經過1×1的分類層后直接雙線性插值到原始圖片大小。但是這種方法得到的分割結構不夠優秀,故DeepLabV3+模型中借鑒了編碼器-解碼器結構,引入了新的解碼器模塊。首先將編碼器得到的特征,然后與編碼器中對應大小的低級特征concat,如ResNet中的Conv2層,由于編碼器得到的特征數只有256,而低級特征維度可能會很高,為了防止編碼器得到的高級特征被弱化,先采用1×1卷積對低級特征進行降維。兩個特征concat后,再采用3×3卷積進一步融合特征,最后再雙線性插值得到與原始圖片相同大小的分割預測。
2 ?本文模型
2.1 ?引入擴張殘余網絡的deeplabv3+模型
擴張殘余網絡是在Resnet網絡的基礎上改進的來的,他們具有相同的參數和類似的網絡結構。DRN在Resnet網絡的基礎上移除了最大池化層,這樣有效的減少了gridding的影響。同時考慮到gridding的影響,在網絡末端加入了去除殘差模塊的卷積網絡,這樣能夠有效的避免過程中出現混疊的情況發生。DRN-D-105采取了殘差模塊和去除了殘差的卷積網絡組合在一起,與Resnet相比在精度上由明顯提升。因此在本文當中
Deeplabv3+的卷積模塊就選用了DRN-D來代替Resnet,能夠獲得更佳的效果。圖5展示了本文所用模型框架。
2.2 ?引入改進ASPP的deeplabv3+算法
一般來說,空洞卷積是通過不使用池化和下采樣的操作來增加感受野的效果,讓每一個卷積都能夠擁有較好的效果。ASPP是以空洞卷積為基礎的,讓圖像通過同樣一個feature map,接下來使用不同的dilation rate的空洞卷積去處理它,然后將得到的各個結果連接在一起,擴大了通道數,最后再通過一個1*1的卷積層,將通道數降到我們想要的結果。
3 ?實驗分析
本實驗所用配置為linux操作系統openSUSE Leap 42.3,選用intel(R)Core(TM)i5-7500的CPU,GeForce RTX2080Ti的GPU,深度學習框架為Pytorch。實驗所用數據集為PASCAL VOC數據集,該數據集包括20個類別,即飛機、自行車、鳥、船、瓶子、公共汽車、小轎車、貓、椅子、牛、桌子、狗、馬、摩托車、人類、植物、羊、沙發、火車、電視,共12023張圖片。
3.1 ?評價指標
本文對分割結果的評價使用了四種業內公認的評價指標,分別為PA,MPA,MIou,FWIou。假設pij表示應該屬于i類語義但卻被誤判為j類的像素點數量,pii表示預測正確的像素點的數量,k+1代表共有類的數量,PA(Pixel Accurary,像素精度):像素精度顧名思義就是描述圖像的精準度,用于標記正確的像素占總像素的比例。
3.2 ?數據分析
實驗中設置初始的訓練數據由:batch-size為8,初始學習率為0.007,epoch為50,得到最終的模型。本文中每個模型都使用的是同樣的訓練數據,并在PASCAL VOC2012數據集上驗證模型的性能,并計算出所有的實驗數據所對應分割圖像相對應的評價指標值作為最后的標準。
本文選用了Segnet,FCN8s,原模型和本文改進后的模型進行對比試驗,下圖為實驗得到的數據結果。
從上面可以看出本文模型不僅在MIou指標上,且在各個指標上都超過了Deeplabv3+,有了明顯的提升。本文模型在PASCAL VOC數據集上的PA達到了92.5%,與Deeplabv3+相比有了1%的提升,而MPA值相比較于Deeplabv3+也有了2.8%的提升。而在其他兩項評判指標上,本文方法也分別達到了74.9%和87.1%,均優于Deeplabv3+的結果,分別超出3.1%和2.5%。本文的模型不僅在分割精度的指標上超過Deeplabv3+和FCN8s等,同時因為改進了ASPP模塊,獲得了更大的感受野而得到了更好的邊緣信息,PA也有了較大的提升。
但是改進的網絡確實因為網絡的改進,參數量的提升而導致網絡模型的整體速度不如Deeplabv3+,整體略有下降,這也是有待改進的地方。
4 ?總結
本文中,我們為了提高語義分割的精度和準確度,使用了基于深度學習的語義分割網絡模型,改進了DeepLabV3+網絡,提升了其分割精度和準確度。通過實驗對比,改進的網絡相比較于原網絡在精度等多項指標上得到了大幅提升,優化了網絡結構處理圖像數據的效果。但是本文改進的方法并沒有達到極限,接下來我思考逐步改進模型,使其能夠提升精度的同時減少計算量,進一步提升模型各方面的性能。
參考文獻
[1]Simonyan K, Zisserman A. Very deep convolutional networks for large-iamge recognition [J] . Computer Science, 2014.
[2]周飛燕, 金林鵬, 董軍. 卷積神經網絡研究綜述[J]. 計算機學報, 2017, 40(6): 1229-1251.
[3]郭璇, 鄭菲, 趙若晗, 等. 基于閾值的醫學圖像分割技術的計算機模擬及應用[J]. 軟件, 2018, 39(3): 12-15.
[4]尹宗天, 謝超逸, 劉蘇宜, 等. 低分辨率圖像的細節還原[J]. 軟件, 2018, 39(5): 199-202.
[5]De S, Bhattacharyya S, Chakraborty S, et al. Image Segmentation: A Review[M]//Hybrid Soft Computing for Multilevel Image ang Data Segmentation. Springer International Publishing, 2016.
[6]Badrinarayanan V, Kendall A, Cipolla R. SegNet: a deep conzolutional encoder-decoder architecture for scene segmentation[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, 99(12): 2481-2495.
[7]Chen L C, Papandreou G, Kokkinos I, et al. DeepLab: semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected CRFs[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2018, 40(4): 834-848.
[8]趙勇, 巨永鋒. 基于改進卷積神經網絡的人體姿態估計[J]. 測控技術, 2018, 37(6): 9-14.
[9]Yu F, Koltun V, Funkhouser T. Dilated residual network[C]// Proceddings of the IEEE conference on computer vision and pattern recognition. 2017: 472-480. 趙
[10]羅笑玲, 黃紹鋒, 歐陽天優, 等. 基于多分類器集成的圖像文字識別技術及其應用研究[J]. 軟件, 2015, 36(3): 98-102.
[11]文可, 孫玉國. 彈性RBF神經網絡在人臉識別中的應用研究[J]. 軟件, 2018, 39(5): 203-206.
[12]張曉明, 尹鴻峰. 基于卷積神經網絡和語義信息的場景分類[J]. 軟件, 2018, 39(01): 29-34.