高建瓴 韓毓璐 孫健
摘 ?要: 為了提高圖像語義分割時的識別和分割能力的問題,本文提出了一種基于DeepLabV3+改進的算法。改進的算法以DeepLab模型作為主體,結(jié)合了DRN的結(jié)構(gòu),減少了分割過程中圖像出現(xiàn)網(wǎng)格化的情況。同時為了能夠檢測到更多邊緣信息,有效提高檢測分割結(jié)果,算法中改進了空洞卷積的部分,提高了分割精度,避免遺漏太多圖像信息。通過PASCAL VOC 2012數(shù)據(jù)集開展的語義分割實驗顯示,改進的算法有效的提高了在分割時的精度和準確率,本文所提出的網(wǎng)絡(luò)對圖像分割有極大的參考價值。
關(guān)鍵詞: 語義分割;空洞卷積;擴張殘余網(wǎng)絡(luò)
中圖分類號: 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 ?引言
隨著當今社會人工智能愈發(fā)成熟,人工智能中與計算機視覺相關(guān)的應(yīng)用越加廣泛。圖形處理已經(jīng)成為當今社會計算機視覺等領(lǐng)域的研究重點,其中圖像分割[1]又在圖像處理中具有重要的意義。圖像分割可以看做是像素級的分類,也就是說將圖像中的每一個像素都歸為同一類別。而圖像語義分割作為一類典型的像素級別的分類任務(wù),它在場景理解、環(huán)境感知、醫(yī)療圖像處理等具有十分廣泛的應(yīng)用場景。圖像語義分割其主要目標是對圖片進行逐像素分割,從而將圖片分成若干個具有相似特征的區(qū)域,用于后續(xù)的圖像分析和語義概念分析任務(wù)。傳統(tǒng)的圖像語義分割[2]模型主要是通過人工添加標簽并且人為設(shè)置規(guī)則來進行規(guī)范的,但是這樣處理人工工作量太大,難以實現(xiàn)復(fù)雜問題的處理[3]。因此近些年來不斷有人提出了模型來進行語義分割的工作。
隨著技術(shù)逐漸進步,基于深度學(xué)研究圖像語義分割成為當下熱點[4]。2012年,Krizhevsky等人提出了AlexNet架構(gòu),使大家看到了深度學(xué)習解決復(fù)雜計算機視覺任務(wù)的可能性。于是卷積神經(jīng)網(wǎng)絡(luò)被不斷應(yīng)用,研究人言提出了多種改進方法[5],其中最著名的包括VGGNet、GoogleNet和ResNet等。2015年,Vijay Badrinarayanan等人提出來SegNet[6],擁有較少參數(shù)的輕量級網(wǎng)絡(luò)。同年,Lonjong等人提出了全卷積網(wǎng)絡(luò)(FCN),F(xiàn)CN是以VGG16為基礎(chǔ)改進而來的,其將后半部分的全連接層改成卷積層,從而支持任意尺寸圖像輸入的分割功能,相比于早期的算法,效果明顯提升。Google[7]團隊在2015年提出了一個DeepLabV1模型,是由DCNN和CRF模型的結(jié)合,二者結(jié)合極大的提高了效率,精準度高并且結(jié)構(gòu)簡單。DeepLabV2就是在DeepLabV1模型的基礎(chǔ)上進行了改進,但是特征分辨率低和空間不變性導(dǎo)致的細節(jié)信息丟失還是有待改進。而在2017年提出的DeepLabV3則改進了級聯(lián)的方式,綜合運用串行和并行的方式,同時在ASPP中使用了BN層,實現(xiàn)對多尺度物體分割。2018年,Google團隊進一步改進,提出了DeepLabV3+,對原來的模型進行改進。他將原來的DeepLabV3作為編碼器,同時加入ResNet101[8]和深度卷積,可以更快的實現(xiàn)了分割,但是輸出圖的放大效果不夠好,信息太少,有待改進。
為了進一步的提高圖像分割時的準確度,本文為了增強對復(fù)雜圖像的分割處理的精度改進了空洞卷積,同時引進了DRN模型,提升了模型的精度,并通過實驗對改進的網(wǎng)絡(luò)結(jié)構(gòu)的效率進行了驗證,在PASCAL-VOC數(shù)據(jù)集上有著一定的提升。
1 ?相關(guān)工作
1.1 ?DRN擴張殘余網(wǎng)絡(luò)
卷積網(wǎng)絡(luò)的圖像分類過程中會逐步降低分辨率,直到圖像被表示為微小的特征圖,而圖片中有場景的空間結(jié)構(gòu)則會變得不明顯。這種空間敏銳度的喪失會限制圖像分類的準確性。這些問題可以通過擴張來緩解,擴張可以提高輸出特征圖的分辨率,而不會減少單個神經(jīng)元的接受域。在不增加模型深度和復(fù)雜性的情況下,擴展的殘差網(wǎng)絡(luò)在圖像分類方面優(yōu)于非擴展殘差網(wǎng)絡(luò)。
擴張殘余網(wǎng)絡(luò)(DRN, dilated residual network)[9]是在卷積網(wǎng)絡(luò)中保持空間分辨率以進行圖像分類的網(wǎng)絡(luò)。雖然漸進式下采樣在對物體或圖像進行分類時非常成功,但空間信息的丟失可能不利于對自然圖像進行分類,并可能嚴重妨礙轉(zhuǎn)移到涉及空間詳細圖像理解的其他任務(wù)。自然圖像通常包含許多對象[10],這些對象的身份和相對配置對于理解場景非常重要。當關(guān)鍵對象在空間上不占主導(dǎo)地位時,分割任務(wù)就會變得困難,也就是說例如,當被標記的對象是薄的(例如,一個三腳架)或圖像中有一個大的背景物體。物體的信號由于向下采樣而丟失,那么在訓(xùn)練過程中恢復(fù)信號的希望就很小。然而,假設(shè)在整個模型中保持高空間分辨率,并提供密集覆蓋輸入域的輸出信號,那么反向傳播可以學(xué)會保存關(guān)于更小、更不突出的對象的重要信息。
DRN是以Resnet為基礎(chǔ),提出了一個改進方法,在resnet的top layers移除下采樣層,這可以保持feature map的空間分辨率,但后續(xù)的卷積層接收野分辨率下降了,這不利于模型聚合上下文信息。針對這一問題,論文使用擴張卷積替換下采樣,在后續(xù)層合理使用擴張卷積,在保持feature map的空間分辨率同時維持后續(xù)層接收野的分辨率。
1.2 ?空洞卷積
因為現(xiàn)有的模型在進行圖像分割任務(wù)的時候,存在著個關(guān)鍵的問題:下采樣過程中導(dǎo)致部分信息丟失[11]。一般來說我們采用下采樣[12],是為了能夠使感受野擴大,使得每個卷積輸出都包含較大范圍的信息,但這種情況下,會導(dǎo)致圖像的分辨率不斷下降,包含的信息越來越抽象,而圖像的局部信息與細節(jié)信息會逐漸丟失,還是不可避免的會造成信息的損失。
空洞卷積可以明確的設(shè)定深度卷積網(wǎng)絡(luò)的特征圖大小,同時也可以通過設(shè)定卷積核感受視野大小通過卷積操作提取多尺度信息。下圖2(a)為常規(guī)的卷積操作,使用擴張率為1的空洞卷積生成,對應(yīng)的感受野為3*3,9個紅點代表卷積核的9個權(quán)重。圖2(b)為atrous rate 等于2的空洞卷積,使用了擴張率為2的空洞卷積處理,是第一次空洞卷積的卷積核大小等于第二次空洞卷積的一個像素點的感受野,即生成的感受野為7*7。同樣有9個權(quán)重,但是這個卷積核的感受視野變大了,在卷積運算時只與紅點所在位置的輸入進行運算,而綠色部分輸入被忽略。圖2(c)為atrous rate等于4的空洞卷積,處理同上,第二次空洞卷積的整個卷積核大小等于第三次空洞卷積的一個像素點的感受野,生成的每一個點感受野為15*15。相比之下,如果僅僅使用stride為1的普通3*3卷積,三層之后的感受野僅僅為7。
1.3 ?DeepLabV3+網(wǎng)絡(luò)模型
DeepLabV3+模型是由Google團隊來提出的,在VOC比賽中取得了非常優(yōu)異的成績,是目前應(yīng)用廣泛的一種語義分割網(wǎng)絡(luò),效果優(yōu)秀,但是DeepLabV3+模型中也存在著一些限制缺點和不足。針對現(xiàn)有的圖像數(shù)據(jù)原模型很容易出現(xiàn)多目標檢測效果不夠好的情況,因此希望對現(xiàn)有的DeepLabV3+模型進行一定的改進,以提升效果。DeepLabV3+的輸出能夠編碼豐富的語義信息,其利用空洞卷積來控制編碼輸出的特征分辨率。DeepLabV3+通過添加一個簡單而有效的解碼器模塊來恢復(fù)對象邊界,擴展了DeepLabV3原有的模型。DeepLabV3+中使用了兩種類型的神經(jīng)網(wǎng)絡(luò),分別是空間金字塔模塊(Atrous Spatial Pyramid Pooling,ASPP)和編碼器-解碼器(Encoder-Decoder)結(jié)構(gòu)做語義分割。DeepLabV3+結(jié)合了這二者的優(yōu)點,擴展了一個簡單有效的模塊用于恢復(fù)邊界信息。
圖3(a)是原來DeepLabV3的結(jié)構(gòu),使用ASPP模塊獲取多尺度上下文信息,直接上采樣得到預(yù)測結(jié)果。圖3(b)是通用的編碼器-解碼器結(jié)構(gòu),高層特征提供語義,解碼器逐步恢復(fù)邊界信息。圖3(c)是DeepLabV3+結(jié)構(gòu),以原有的DeepLabV3為編碼器,解碼器結(jié)構(gòu)簡單。
在DeepLabV3+中使用了空間金字塔池化, 即帶有空洞卷積的空間金字塔結(jié)構(gòu),增加了不同尺度范圍內(nèi)的語義信息的提取和區(qū)分,以實現(xiàn)對目標圖像中多尺度的物體進行分割。
原有的模型中使用了DeepLabV3當做編碼器。 DeepLabV3 采用了使用了空洞卷積的深度卷積神經(jīng)網(wǎng)絡(luò)可以以任意分辨率提取特征。此外,DeepLabv3+增強了ASPP模塊,該模塊通過應(yīng)用具有不同比率的空洞卷積和圖像級特征來獲取多尺度的卷積特征。經(jīng)過ASPP模塊再經(jīng)過1×1的分類層后直接雙線性插值到原始圖片大小。但是這種方法得到的分割結(jié)構(gòu)不夠優(yōu)秀,故DeepLabV3+模型中借鑒了編碼器-解碼器結(jié)構(gòu),引入了新的解碼器模塊。首先將編碼器得到的特征,然后與編碼器中對應(yīng)大小的低級特征concat,如ResNet中的Conv2層,由于編碼器得到的特征數(shù)只有256,而低級特征維度可能會很高,為了防止編碼器得到的高級特征被弱化,先采用1×1卷積對低級特征進行降維。兩個特征concat后,再采用3×3卷積進一步融合特征,最后再雙線性插值得到與原始圖片相同大小的分割預(yù)測。
2 ?本文模型
2.1 ?引入擴張殘余網(wǎng)絡(luò)的deeplabv3+模型
擴張殘余網(wǎng)絡(luò)是在Resnet網(wǎng)絡(luò)的基礎(chǔ)上改進的來的,他們具有相同的參數(shù)和類似的網(wǎng)絡(luò)結(jié)構(gòu)。DRN在Resnet網(wǎng)絡(luò)的基礎(chǔ)上移除了最大池化層,這樣有效的減少了gridding的影響。同時考慮到gridding的影響,在網(wǎng)絡(luò)末端加入了去除殘差模塊的卷積網(wǎng)絡(luò),這樣能夠有效的避免過程中出現(xiàn)混疊的情況發(fā)生。DRN-D-105采取了殘差模塊和去除了殘差的卷積網(wǎng)絡(luò)組合在一起,與Resnet相比在精度上由明顯提升。因此在本文當中
Deeplabv3+的卷積模塊就選用了DRN-D來代替Resnet,能夠獲得更佳的效果。圖5展示了本文所用模型框架。
2.2 ?引入改進ASPP的deeplabv3+算法
一般來說,空洞卷積是通過不使用池化和下采樣的操作來增加感受野的效果,讓每一個卷積都能夠擁有較好的效果。ASPP是以空洞卷積為基礎(chǔ)的,讓圖像通過同樣一個feature map,接下來使用不同的dilation rate的空洞卷積去處理它,然后將得到的各個結(jié)果連接在一起,擴大了通道數(shù),最后再通過一個1*1的卷積層,將通道數(shù)降到我們想要的結(jié)果。
3 ?實驗分析
本實驗所用配置為linux操作系統(tǒng)openSUSE Leap 42.3,選用intel(R)Core(TM)i5-7500的CPU,GeForce RTX2080Ti的GPU,深度學(xué)習框架為Pytorch。實驗所用數(shù)據(jù)集為PASCAL VOC數(shù)據(jù)集,該數(shù)據(jù)集包括20個類別,即飛機、自行車、鳥、船、瓶子、公共汽車、小轎車、貓、椅子、牛、桌子、狗、馬、摩托車、人類、植物、羊、沙發(fā)、火車、電視,共12023張圖片。
3.1 ?評價指標
本文對分割結(jié)果的評價使用了四種業(yè)內(nèi)公認的評價指標,分別為PA,MPA,MIou,F(xiàn)WIou。假設(shè)pij表示應(yīng)該屬于i類語義但卻被誤判為j類的像素點數(shù)量,pii表示預(yù)測正確的像素點的數(shù)量,k+1代表共有類的數(shù)量,PA(Pixel Accurary,像素精度):像素精度顧名思義就是描述圖像的精準度,用于標記正確的像素占總像素的比例。
3.2 ?數(shù)據(jù)分析
實驗中設(shè)置初始的訓(xùn)練數(shù)據(jù)由:batch-size為8,初始學(xué)習率為0.007,epoch為50,得到最終的模型。本文中每個模型都使用的是同樣的訓(xùn)練數(shù)據(jù),并在PASCAL VOC2012數(shù)據(jù)集上驗證模型的性能,并計算出所有的實驗數(shù)據(jù)所對應(yīng)分割圖像相對應(yīng)的評價指標值作為最后的標準。
本文選用了Segnet,F(xiàn)CN8s,原模型和本文改進后的模型進行對比試驗,下圖為實驗得到的數(shù)據(jù)結(jié)果。
從上面可以看出本文模型不僅在MIou指標上,且在各個指標上都超過了Deeplabv3+,有了明顯的提升。本文模型在PASCAL VOC數(shù)據(jù)集上的PA達到了92.5%,與Deeplabv3+相比有了1%的提升,而MPA值相比較于Deeplabv3+也有了2.8%的提升。而在其他兩項評判指標上,本文方法也分別達到了74.9%和87.1%,均優(yōu)于Deeplabv3+的結(jié)果,分別超出3.1%和2.5%。本文的模型不僅在分割精度的指標上超過Deeplabv3+和FCN8s等,同時因為改進了ASPP模塊,獲得了更大的感受野而得到了更好的邊緣信息,PA也有了較大的提升。
但是改進的網(wǎng)絡(luò)確實因為網(wǎng)絡(luò)的改進,參數(shù)量的提升而導(dǎo)致網(wǎng)絡(luò)模型的整體速度不如Deeplabv3+,整體略有下降,這也是有待改進的地方。
4 ?總結(jié)
本文中,我們?yōu)榱颂岣哒Z義分割的精度和準確度,使用了基于深度學(xué)習的語義分割網(wǎng)絡(luò)模型,改進了DeepLabV3+網(wǎng)絡(luò),提升了其分割精度和準確度。通過實驗對比,改進的網(wǎng)絡(luò)相比較于原網(wǎng)絡(luò)在精度等多項指標上得到了大幅提升,優(yōu)化了網(wǎng)絡(luò)結(jié)構(gòu)處理圖像數(shù)據(jù)的效果。但是本文改進的方法并沒有達到極限,接下來我思考逐步改進模型,使其能夠提升精度的同時減少計算量,進一步提升模型各方面的性能。
參考文獻
[1]Simonyan K, Zisserman A. Very deep convolutional networks for large-iamge recognition [J] . Computer Science, 2014.
[2]周飛燕, 金林鵬, 董軍. 卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J]. 計算機學(xué)報, 2017, 40(6): 1229-1251.
[3]郭璇, 鄭菲, 趙若晗, 等. 基于閾值的醫(yī)學(xué)圖像分割技術(shù)的計算機模擬及應(yīng)用[J]. 軟件, 2018, 39(3): 12-15.
[4]尹宗天, 謝超逸, 劉蘇宜, 等. 低分辨率圖像的細節(jié)還原[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īng)網(wǎng)絡(luò)的人體姿態(tài)估計[J]. 測控技術(shù), 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]羅笑玲, 黃紹鋒, 歐陽天優(yōu), 等. 基于多分類器集成的圖像文字識別技術(shù)及其應(yīng)用研究[J]. 軟件, 2015, 36(3): 98-102.
[11]文可, 孫玉國. 彈性RBF神經(jīng)網(wǎng)絡(luò)在人臉識別中的應(yīng)用研究[J]. 軟件, 2018, 39(5): 203-206.
[12]張曉明, 尹鴻峰. 基于卷積神經(jīng)網(wǎng)絡(luò)和語義信息的場景分類[J]. 軟件, 2018, 39(01): 29-34.