楊志堯,彭召意,文志強
(1.湖南工業(yè)大學計算機學院,湖南 株洲 412007;2.智能信息感知及處理技術湖南省重點實驗室,湖南 株洲 412007)
圖像分割作為計算機視覺領域的核心內(nèi)容之一,相關的研究工作早在20世紀60年代就已經(jīng)開始。傳統(tǒng)的圖像分割算法主要包括閾值法[1]、邊界檢測法[2]、區(qū)域法[3]等。近年來,隨著深度學習在圖像分類、檢測與識別等方面有了重大的進展并逐漸擴展到圖像分割領域,圖像分割技術在此影響下也有了不少突破性進展。其中,圖像語義分割領域因其所具有的重大應用價值越來越受人們的關注。目前,圖像語義分割技術在自動駕駛、醫(yī)學影像分析和地質(zhì)勘探等多個領域都有著廣泛的應用。
傳統(tǒng)的圖像分割算法往往是基于圖像的底層信息,主要針對具有相同顏色、紋理或者形狀的圖像區(qū)域進行分割[4]。因此,當圖像所含信息較為復雜時,使用這類分割算法通常達不到預期的分割效果。更為常用的方法則是利用圖像中特征相似的相鄰像素組成的圖像塊并結合其他學科或領域的理論和方法來輔助圖像分割[5]。例如在圖像分割問題中引入圖論的理論方法,將對圖像的分割轉(zhuǎn)換成對帶有權值的無向圖的頂點標注問題,從而獲得被稱為超像素的圖像塊[6]。
圖像語義分割通常需要結合圖像所包含的具有某種特定語義的對象的分類信息來輔助圖像分割。Ohta等人[7]將語義分割的概念歸納為:為圖像中的每個像素賦予一個具有特定語義信息的分類標簽。結合區(qū)域提取算法的圖像語義分割是目前較為流行的方法[8]。
2012年,Krizhevsky等人[9]在Image Net大規(guī)模視覺識別挑戰(zhàn)競賽中使用卷積神經(jīng)網(wǎng)絡算法以接近10%的優(yōu)勢擊敗了其他傳統(tǒng)方法,基于深度網(wǎng)絡的圖像分割方法便層出不窮。2014年,Sermanet等人[10]提出結合滑動窗口算法和卷積神經(jīng)網(wǎng)絡進行圖像語義分割的網(wǎng)絡框架。同年,Girshick等人[11]提出了基于區(qū)域提取的卷積神經(jīng)網(wǎng)絡分割算法,隨后He等人[12]通過在網(wǎng)絡中加入空間金字塔池化層對算法進行改進。Ren等人[13]通過改進區(qū)域提取算法,得到了一個用于提取候選區(qū)域的網(wǎng)絡結構,即區(qū)域建議網(wǎng)絡(Region Proposal Network,RPN),該網(wǎng)絡有效加快了候選區(qū)域的生成效率。但是卷積神經(jīng)網(wǎng)絡存在只能接收和處理固定尺寸圖像的局限性,同時卷積神經(jīng)網(wǎng)絡末端的全連接層也耗費了較大的計算資源。因此,Long等人[14]摒棄了傳統(tǒng)卷積神經(jīng)網(wǎng)絡中的全連接層并用卷積層取代從而得到了全卷積網(wǎng)絡(Fully Convolutional Network,F(xiàn)CN),成為圖像語義分割網(wǎng)絡的常用框架。
圖像語義分割網(wǎng)絡通過區(qū)域建議網(wǎng)絡提取候選區(qū)域,然后使用全卷積分割網(wǎng)絡對圖像進行語義分割。一般來說,使用單一的全卷積分割網(wǎng)絡結構進行圖像語義分割得到的結果過于粗糙,并不是很理想。通過區(qū)域建議網(wǎng)絡提取出的候選區(qū)域可以對全卷積網(wǎng)絡的分割結果進行精細化處理,得到更為精確的分割圖像。
語義分割網(wǎng)絡中的區(qū)域建議網(wǎng)絡和分割網(wǎng)絡均使用的是全卷積網(wǎng)絡。全卷積神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡都是包含多個隱藏層的深度神經(jīng)網(wǎng)絡模型,兩者的區(qū)別在于全卷積神經(jīng)網(wǎng)絡舍棄了全連接層,整個網(wǎng)絡均由卷積層構成。因此,全卷積神經(jīng)網(wǎng)絡對輸入圖像的尺寸沒有特殊的要求,無需對輸入圖像進行裁剪、拉伸等預處理。
全卷積神經(jīng)網(wǎng)絡同樣是基于訓練數(shù)據(jù)自主地學習圖像特征,其網(wǎng)絡結構主要包含了4種基本操作:卷積、池化、非線性變換和逆卷積,由于卷積和池化的過程會丟棄大量的信息,因此逆卷積得到的分割效果較為粗糙。為了獲得更加精確的分割效果,將區(qū)域建議網(wǎng)絡與全卷積網(wǎng)絡相結合,從而得到一個聯(lián)合網(wǎng)絡來進行圖像語義分割。
1.2.1 區(qū)域建議網(wǎng)絡的構建
采用全卷積網(wǎng)絡模型來構建區(qū)域建議網(wǎng)絡,主要目的是為了便于和全卷積分割網(wǎng)絡共享計算資源。實驗在Zeiler和Fergus[15]所提出的網(wǎng)絡模型上做出修改,得到所需要的全卷積神經(jīng)網(wǎng)絡,即ZF_FCN網(wǎng)絡。
區(qū)域建議框的產(chǎn)生同樣是一個卷積的過程。使用一個n×n的滑動窗口在共享卷積層末端的輸出特征圖上進行卷積操作,每一個滑動窗口都將作為一個輸入被送入一個小型的網(wǎng)絡中。該小型網(wǎng)絡將傳入的特征映射到一個256-d的向量上并將這個向量傳輸給2個同級的1×1卷積層。這2個卷積層分別為分類層(cls)和回歸層(reg)。
滑動窗口的中心位置定義為錨點,通常每個滑動位置對應著3種尺度和3種長寬比,這樣每個滑動位置都會有k=9個錨點,每個滑動窗口產(chǎn)生k個區(qū)域建議框。因此,回歸層會有4k個輸出(每個區(qū)域建議框的坐標包含4個參數(shù)),分類層會有2k個輸出(每個區(qū)域建議框是否為目標的概率估計)。具體的區(qū)域建議網(wǎng)絡如圖1所示。
圖1 區(qū)域建議網(wǎng)絡結構圖
1.2.2 定義區(qū)域建議網(wǎng)絡的損失函數(shù)
區(qū)域建議網(wǎng)絡是一個典型的全卷積網(wǎng)絡,因此在網(wǎng)絡的訓練過程中,反向傳播算法[16]和梯度下降算法[17]同樣適用于區(qū)域建議網(wǎng)絡。為了訓練區(qū)域建議網(wǎng)絡,使用一個二進制標簽來標記一個錨點是否為目標。
對于一張輸入圖像,其損失函數(shù)可定義為:
(1)
(2)
(3)
對于回歸部分,參照Girshick等人[18]的論文采用4個坐標,分別為:
(4)
其中,x,y,w,h分別用來標識包圍盒的中心位置坐標,寬和高。變量x,xa,x*分別表示預測包圍盒、錨點的包圍盒、真實的包圍盒的x的坐標,對y,w,h也是如此。
通常,全卷積網(wǎng)絡接收整張圖像作為輸入進行網(wǎng)絡的訓練和圖像的分割,而需要分割的目標對象在圖像中的位置和大小并不固定。當目標對象在圖像中的尺寸較小時,圖像的背景內(nèi)容在訓練的過程中會產(chǎn)生較嚴重的干擾。同樣,在圖像的分割階段也會受到圖像背景部分的影響。而區(qū)域建議網(wǎng)絡的引入,可以較好地解決上述問題。
1.3.1 基本的網(wǎng)絡結構
區(qū)域建議網(wǎng)絡和全卷積分割網(wǎng)絡具有共享的卷積層。輸入的圖像經(jīng)過這個共享卷積層后生成的特征圖不僅會繼續(xù)沿著全卷積分割網(wǎng)絡傳播,同時也會傳入?yún)^(qū)域建議網(wǎng)絡通過計算處理得到候選區(qū)域以及區(qū)域得分。然后,采用極大值抑制算法獲取排名前n(n通常取100)的得分區(qū)域并傳入到池化層。在池化層中,區(qū)域建議網(wǎng)絡輸出的區(qū)域建議和全卷積分割網(wǎng)絡輸出的高維特征圖相結合,通過上采樣方法得到對應的語義分割圖像。由區(qū)域建議網(wǎng)絡和全卷積分割網(wǎng)絡組成的聯(lián)合網(wǎng)絡結構如圖2所示。
圖2 聯(lián)合網(wǎng)絡的結構圖
1.3.2 2種網(wǎng)絡模型的聯(lián)合方法
作為一個聯(lián)合的網(wǎng)絡結構,區(qū)域建議網(wǎng)絡在網(wǎng)絡訓練階段和圖像分割階段都起到了較為重要的輔助作用。
在網(wǎng)絡的訓練階段,區(qū)域建議網(wǎng)絡的主要作用在于接收一張完整的圖像作為輸入并產(chǎn)生一組具有區(qū)域得分的區(qū)域建議框。區(qū)域得分較高的建議框內(nèi)通常包含更高比例的待分割目標物體,因此使用這類區(qū)域建議框所框選的圖像區(qū)域來訓練分割網(wǎng)絡,可以使得網(wǎng)絡對目標對象的分割更具有針對性。為了獲取這類高質(zhì)量的訓練數(shù)據(jù),首先要根據(jù)區(qū)域得分對區(qū)域建議框進行排序,利用排名靠前的區(qū)域建議框(通常取前10%的區(qū)域建議框)在原圖像上裁剪獲得一組候選區(qū)域圖像。然后將這組候選區(qū)域圖像作為輸入傳入全卷積分割網(wǎng)絡,用于分割網(wǎng)絡的訓練和優(yōu)化。在這一過程中,共享卷積層產(chǎn)生的特征圖像只在分割網(wǎng)絡內(nèi)傳輸,不再傳入到區(qū)域建議網(wǎng)絡中。
在圖像的分割階段,區(qū)域建議網(wǎng)絡產(chǎn)生的區(qū)域建議框及對應的區(qū)域得分會輔助語義分割網(wǎng)絡對圖像進行分割。這一階段同樣是利用區(qū)域建議框所具有的分割目標所占圖像比例大,背景圖像干擾小的特點。
首先,采用極大值抑制算法獲取區(qū)域得分排名前n個區(qū)域建議框。
然后,分別為這些區(qū)域建議框分配相應的權重。在權值的分配過程中,通常會給圖像中心位置的像素分配較大的權值,并且像素的權值由中心向四周逐漸降低。本文采用正態(tài)分布為區(qū)域建議框分配權值,具體函數(shù)如公式(5)所示,其中x,y表示區(qū)域建議框上對應像素點的位置。
G(x,y)=1/2πσ2e-(x2+y2)/2σ2
(5)
最后,使用這些帶權區(qū)域建議框與分割網(wǎng)絡的輸出圖像相結合,利用帶權區(qū)域建議框的區(qū)域得分和權值來調(diào)整輸出圖像中對應位置像素所屬類別的概率值,從而得到最終的分割結果。
由于區(qū)域建議網(wǎng)絡和全卷積分割網(wǎng)絡是獨立訓練的,因此語義分割網(wǎng)絡訓練的關鍵在于卷積層的共享。實現(xiàn)卷積層共享的方法有多種,如交替訓練法、近似聯(lián)合訓練法、非近似聯(lián)合訓練法等。交替訓練算法將整個訓練過程劃分為3個階段,逐步學習共享的特征,實現(xiàn)卷積層的共享。
區(qū)域建議網(wǎng)絡的訓練階段,區(qū)域建議網(wǎng)絡的訓練可以使用原始圖像數(shù)據(jù)進行訓練,但是該方法的訓練周期較長,需要的數(shù)據(jù)量也很大。通常采用遷移學習方法,用在ImageNet圖像庫上訓練好的模型參數(shù)對區(qū)域建議網(wǎng)絡進行初始化。
全卷積分割網(wǎng)絡的訓練階段,使用第一步中區(qū)域建議網(wǎng)絡生成的候選框來訓練一個全卷積分割網(wǎng)絡。為了得到更好的訓練效果,全卷積分割網(wǎng)絡同樣可以使用ImageNet圖像庫的預訓練模型參數(shù)來初始化。
聯(lián)合網(wǎng)絡相互微調(diào)階段,使用全卷積分割網(wǎng)絡的參數(shù)再次初始化區(qū)域建議網(wǎng)絡,不同的是,此次初始化的過程中需要保持共享卷積層的參數(shù)不變,只微調(diào)區(qū)域建議網(wǎng)絡的其他層。相同地,保持共享卷積層參數(shù)不變,使用區(qū)域建議網(wǎng)絡的參數(shù)再次初始化全卷積分割網(wǎng)絡,交替進行上述步驟,即可實現(xiàn)卷積層的共享,從而構建成為一個統(tǒng)一的網(wǎng)絡。
實驗中采用的ZF-FCN網(wǎng)絡有5個共享卷積層,并在PASCAL VOC 2012圖像數(shù)據(jù)集分別驗證ZF_FCN網(wǎng)絡和改進后的ZF_RPN_FCN網(wǎng)絡對圖像的分割效果。主要的評估參數(shù)包括像素分類的正確率(Pixel Accuracy)以及分割圖像與標準圖像的平均交集并集比(Mean IU)。
表1展示了在相同配置環(huán)境下,不同的分割方法得到的分割結果。R-CNN網(wǎng)絡在進行圖像分割時,只是利用簡單的線性回歸來獲取待分割目標的最小邊界框,因此它的分割效果遠不如基于全卷積網(wǎng)絡的語義分割方法。對比ZF_RPN_FCN網(wǎng)絡和FCN_8s網(wǎng)絡可以看出,在像素分類準確度和分割效果上,ZF_RPN_FCN網(wǎng)絡都要好于FCN_8s網(wǎng)絡。
表1 不同網(wǎng)絡的圖像分割效果對比(%)
PixelAccuracyMeanIUR?CNN77.947.9FCN_32s87.359.6FCN_16s89.661.7FCN?8s90.162.2ZF?FCN87.960.9ZF_RPN_FCN91.163.5
在對圖像特征的抽象和提取方面,ZF_RPN_FCN網(wǎng)絡和FCN_8s網(wǎng)絡采用了不同的策略和方法。FCN_8s網(wǎng)絡是在FCN_32s網(wǎng)絡和FCN_16s網(wǎng)絡的基礎上,逐步實現(xiàn)對圖像特征的抽象和提取。同時,F(xiàn)CN_8s還利用全卷積網(wǎng)絡中不同層之間的特征融合來實現(xiàn)對圖像更精確的分割。因此從表1可以看出,F(xiàn)CN_32s網(wǎng)絡到FCN_16s網(wǎng)絡再到FCN_8網(wǎng)絡,像素分類準確率和平均交集并集之比都在逐漸提高。
與FCN_8s網(wǎng)絡不同的是,ZF_RPN_FCN網(wǎng)絡是在ZF_FCN網(wǎng)絡的基礎上,通過引入?yún)^(qū)域建議網(wǎng)絡來更好地實現(xiàn)對圖像特征的抽象和提取。改進后的ZF_RPN_FCN網(wǎng)絡的像素分類正確率提高了3.2%,而且平均交集并集之比也提高了2.6%。通過與FCN_8s網(wǎng)絡的分割結果對比可以看出,ZF_RPN_FCN網(wǎng)絡對圖像的分割效果要稍優(yōu)于FCN_8s網(wǎng)絡。這說明,ZF_RPN_FCN網(wǎng)絡有著不弱于FCN_8s網(wǎng)絡的圖像特征提取能力,而且其實現(xiàn)過程要比FCN_8s網(wǎng)絡更為簡易。同時,由于區(qū)域建議網(wǎng)絡產(chǎn)生的建議框?qū)D像語義分割有較好的輔助作用,這使得ZF_RPN_FCN網(wǎng)絡對像素的分類和圖像的分割都更加的精確。
為了更加直觀地展示改進后網(wǎng)絡的分割效果,將圖像分別使用ZF_FCN網(wǎng)絡和ZF_RPN_FCN網(wǎng)絡進行分割,得到分割圖像的結果如圖3所示。對比標準分割圖可以看出,ZF_FCN網(wǎng)絡的分割結果較為粗糙,雖然分割得到了飛機的整體輪廓,但細節(jié)上缺失明顯。而改進后網(wǎng)絡的分割結果相對來說更加精細,ZF_FCN網(wǎng)絡分割時所忽略的飛機尾翼在ZF_RPN_FCN網(wǎng)絡分割得到的圖像中有一定的體現(xiàn),因此最終的分割效果也更好。
圖3 算法分割示意圖
如今,深度學習網(wǎng)絡在圖像語義分割領域上的應用已經(jīng)成為主流。卷積神經(jīng)網(wǎng)絡在圖像的特征提取和抽象等方面有著得天獨厚的優(yōu)勢,但是在圖像的細節(jié)處理方面也有一定的不足。如何將傳統(tǒng)圖像分割算法與深度學習網(wǎng)絡更好地融合在一起,從而獲得高質(zhì)量的分割結果成為圖像分割領域一個重要的研究方向。
[1] Ostu N. A threshold selection method from gray-level histograms [J]. IEEE Transactions on Systems Man & Cybernetics, 1979,9(1):62-66.
[2] Muthukrishnan R, Radha M. Edge detection techniques for image segmentation[J]. International Journal of Computer Science & Information Technology, 2011,3(6):259-267.
[3] Adams R, Bischof L. Seeded region growing[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1994,16(6):641-647.
[4] 魏云超,趙耀. 基于DCNN的圖像語義分割綜述[J]. 北京交通大學學報, 2016,40(4):82-91.
[5] 姜楓,顧慶,郝慧珍,等. 基于內(nèi)容的圖像分割方法綜述[J]. 軟件學報, 2017,28(1):160-183.
[6] Ren Xiaofeng, Malik J. Learning a classification model for segmentation[C]// Proceedings of the 9th IEEE International Conference on Computer Vision. 2003:10.
[7] Otha Y, Kanade T, Sakai T. An analysis system for scenes containing objects with substructures[C]// Proceedings of the 4th International Joint Conference on Pattern Recognitions. 1978:752-754.
[8] 張繼昊. 基于SOFM自組織特征映射網(wǎng)絡的圖像語義分割與標識[D]. 上海:上海交通大學, 2010.
[9] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// Proceedings of the 25th International Conference on Neural Information Processing Systems. 2012:1097-1105.
[10] Sermanet P, Eigen D, Zhang Xiang, et al. Overfeat: Integrated recognition, localization and detection using convolutional networks[J]. Computer Science, 2013:arXiv:1312.6229.
[11] Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2014:580-587.
[12] He Kaiming, Zhang Xiangyu, Ren Shaoqing, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015,37(9):1904-1916.
[13] Ren Shaoqing, He Kaiming, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017,39(6):1137-1149.
[14] Shelhamer E, Long J, Darrell T. Fully convolutional networks for semantic segmentation[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014,39(4):640-651.
[15] Zeiler M D, Fergus R. Visualizing and understanding convolutional networks[C]// European Conference on Computer Vision. 2014:818-833.
[16] Baydin A G, Pearlmutter B A, Radul A A, et al. Automatic differentiation in machine learning: A survey[J]. Computer Science, 2015.
[17] Bottou L. Large-scale machine learning with stochastic gradient descent[C]// Proceedings of COMPSTAT’2010. 2010:177-186.
[18] Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2014:580-587.