李夢怡,朱定局
(華南師范大學 計算機學院,廣州 510631)
圖像語義分割是計算機視覺領域的核心任務之一,語義分割從微觀的角度可以理解為將圖像中的每一個像素點進行分類,是一種像素級的空間密集型預測任務.換句話說,語義分割試圖在語義上理解圖像中每個像素的所代表的含義,比如識別它是汽車、樓房還是行人等;從宏觀的角度則可以將語義分割看作是將一致的語義標簽分配給一類事物[1],而不是每個像素.
與其他計算機視覺任務一樣,卷積神經網絡在圖像語義分割領域發(fā)揮了重大作用,目前許多性能優(yōu)異的圖像分割模型都以卷積神經網絡作為基礎.語義分割對于場景理解的重要性日漸突出,被廣泛應用到無人駕駛技術、地理信息系統和醫(yī)療影像檢測與分析等任務中.
近些年來,隨著深度學習領域研究的不斷發(fā)展和進步,卷積神經網絡也在許多學者的努力下得到了不斷地發(fā)展和進步.2012年,卷積神經網絡的發(fā)展取得了歷史性的突破,Kkrizhevsky 等人提出了經典的AlexNet模型[2],一種更深更寬的卷積神經網絡.AlexNet的提出,奠定了深度卷積神經網絡在計算機視覺領域的核心地位,成為圖像分類、對象檢測、目標跟蹤和圖像分割等計算機視覺領域任務中性能優(yōu)異、應用廣泛的深度神經網絡學習模型,推動了深度學習在語音識別、機器翻譯等其他領域的拓展.
卷積神經網絡主要由輸入層(input layer)、卷積層(convolution layer)、池化層(pooling layer)、全連接層(fully connected layer)和輸出層(output layer)組成,如圖1所示.通過堆疊多層卷積層和池化層,可以得到更深的網絡結構,如VGGNet[3]、ResNet[4]等,其后的全連接層也可以是多層的.
圖1 卷積神經網絡結構
卷積神經網絡的核心概念是卷積操作(convolution),卷積操作則可以看作是輸入樣本和卷積核的內積運算.除了卷積層之外,常用的卷積網絡中通常還包含池化層,作用是減小卷積層產生的特征圖的尺寸.最常用的池化操作主要包括:最大池化(max-pooling)、平均池化(avg-pooling)和全局池化(global-pooling).
此外,卷積神經網絡在輸出層之前會連接全連接層,通過全連接層完成分類輸出.在全連接層中通常使用激活函數計算輸出值,激活函數通常包括Sigmoid、tanh、ReLU 等函數.
卷積神經網絡的出現和發(fā)展使得人工智能領域攀登上了一個新的臺階,但是卷積神經網絡存在自身的缺陷,如何更好的完善和改進卷積神經網絡仍然任重而道遠.
許多性能優(yōu)越的語義分割模型都是在一些經典的深層網絡基礎上提出和改進的,例如AlexNet、VGGNet、GoogLeNet和ResNet 等,因此在本節(jié)主要回顧一下這些經典的分類網絡.
卷積神經網絡受到學術界和工業(yè)界的廣泛關注和研究得益于AlexNet的提出和應用.2012年,Krizhevsky 等人提出了有重要影響力的卷積神經網絡模型AlexNet[2],并用該模型參加了ImageNet ILSVRC 比賽,在比賽中得到了top-1 中37.5%和top-5 中17.0%的錯誤率,遠超于當時其他人所提出的模型結果,比賽成績斐然.
AlexNet 模型的結構圖如圖2所示,從圖中可以看出AlexNet 模型包含輸入層、5 個卷積層和3 個全連接層,其中有3 個卷積層進行了最大池化,并且首次采用修正線性單元(Rectified Linear Unit,ReLU)作為激活函數.
圖2 AlexNet 模型結構示意圖
AlexNet 模型的出現,為人們在提取特征進行圖像檢索、圖像分類、圖像識別等方面提供了一種深度卷積神經網絡的思路,也為后來的研究學者在設計卷積神經網絡模型提供了啟發(fā):
(1)模型的深度與寬度可決定網絡的能力;
(2)使用強大的GPU 以及大規(guī)模的數據量可以進一步提高網絡的訓練能力;
(3)數據增強可以有效地人工增大數據集,減少過擬合;
(4)ReLU 作為激活函數不需要對輸入進行標準化處理來防止飽和現象;
(5)采用LRN、Dropout 層和重疊池化等訓練技巧可以減少過擬合,提高精度和模型的泛化能力,提升了特征的豐富性;
(6)網絡結構具體相關性,不可輕易移除某一層.
AlexNet的成功極大地推進了卷積神經網絡的發(fā)展,越來越多的研究者開始紛紛將注意力轉向卷積神經網絡的研究中,許多人嘗試改進AlexNet 模型,以得到更好的準確率[5-7].2014年Simonyan 等人[3]發(fā)現通過增加網絡的深度可以達到提升網絡的性能,提出了新的模型——VGGNet.VGGNet的核心思想是利用較小的卷積核,通過反復堆疊的方式來增加網絡的深度,有兩種基本類型:VGGNet-16和VGGNet-19.由此卷積神經網絡也開始不斷向縱深化方向發(fā)展,相繼出現了GoogLeNet[8]和ResNet[4]等深層網絡模型.
VGGNet 網絡根據其核心思想可知在模型結構中網絡全部采用3×3 這類較小的卷積核,以及2×2的池化核,其模型結構圖如圖3所示.VGGNet 模型開啟了小卷積核的時代,3×3的卷積核成為主流模型的關鍵,同時VGGNet的成功也相繼成為了各類圖像任務的骨干網絡結構,應用在包括圖像分類、目標定位、對象檢測和圖像分割等一系列圖像大型任務中.
圖3 VGGNet 模型結構示意圖
VGGNet在2014年的ImageNet 大規(guī)模視覺識別挑戰(zhàn)賽(ILSVRC14)中,通過采用堆疊小卷積核以擴大感受域的方式贏得了目標定位(object localization)比賽的冠軍,圖像分類(classification)的亞軍,驗證了加深模型結構有助于提升網絡的性能.同年,Szegedy 等人提出的GoogLeNet[8]則是專注于如何構建更深的網絡結構,在這場比賽中,GoogLeNet 通過引入新型的基本結構——降維Inception 模塊,以增加網絡的寬度,該模型贏得了圖像分類和目標檢測(object detection)的冠軍,目標定位的亞軍.
GoogLeNet 提出了降維Inception 模塊,即Inception V1 模塊,如圖4所示.Inception V1 最大的優(yōu)點就是控制了計算量和參數量的同時,獲得了非常好的分類性能.GoogLeNet V1是一種卷積層、池化層和Inception V1 模塊的堆疊模型,GoogLeNet V1 共包含9 個Inception V1 模塊,其中,所有卷積層均采用ReLU 激活函數.自2014年之后,Inception V1 模塊經過不斷的改進,現已經發(fā)展到GoogLeNet V4 版本,GoogLeNet 也成為一代經典的分類卷積神經網絡.
圖4 降維Inception 模塊(Inception V1 模塊)
VGGNet和GoogLeNet的提出,無疑給許多研究者提供了一個猜想:是不是網絡越深越好,那么是否可以無止境地加深網絡層數? 然而事實卻恰恰相反,隨著網絡層數的增加,網絡將越來越難訓練.如果只是簡單地對網絡進行加深或加寬,并不一定能帶來網絡性能的提升.相反,網絡的加深或加寬,會導致網絡的參數數量變大,計算量增大.在不斷增加網絡深度時,會出現精度下降和梯度消失或梯度爆炸的問題,而這些問題并不是由過擬合引起的,僅因為網絡增加了更多的層數[9].
深度殘差(deep residual learning)模塊[4]的提出,主要是為了解決上述提出的兩個問題,以便能夠成功訓練成百上千層的殘差網絡(ResNet).在ResNet 網絡中引入了跨層連接(shortcut connection),構造了殘差模塊,如圖5所示.基于殘差模塊,可以構建非常深的深度殘差網絡,深度甚至可達1000 層以上.文獻[4]中大量的實驗表明ResNet 網絡可以有效地降低深層網絡在訓練集上誤差增大的現象.
圖5 殘差模塊結構示意圖
ResNet為卷積神經網絡往縱深化方向發(fā)展奠定了基礎,從理論上證明了加深網絡比加寬網絡更加有效[10],也相繼在ResNet 網絡基礎上產生了一些新的變種模型,比如ResNeXt[11],特征金字塔網絡(Feature Pyramid Network,FPN)[12]、寬度殘差網絡(Wide Residual Network,WRN)[13].
2015年,加州大學伯克利分校的Long 等人在經典分類網絡的基礎上提出了全卷積神經網絡(Fully Convolution Network,FCN)[14],該模型摒棄了全連接層,加入了上采樣層和反卷積層這類具有空間平移不變形式的層.不同于傳統的基于圖像塊的分割方法,FCN 證明了端到端、像素到像素訓練方式下的卷積神經網絡可以顯著提高語義分割的計算效率和預測性能,端到端訓練為后續(xù)語義分割算法的發(fā)展鋪平了道路.
FCN的構造方法是,把傳統卷積網絡的所有全連接層都改編成相應大小的密集卷積層.例如,在VGGNet基礎上,FCN 把VGGNet 網絡后面3 層全部改編為1×1的卷積核所對應等同向量長度的多通道卷積層,整個網絡模型全部都是由卷積層組成,沒有全連接層產生的向量,改編過程如圖6所示.從圖中可以看出,FCN的輸入為224×224×3的圖片,輸出層仍為同尺寸大小的熱力圖.
圖6 FCN在VGGNet的基礎上的改編過程
在改編全連接層之后,FCN 通過兩種方式產生密集輸出,一種是直接放大,通過放大變化(上采樣和反卷積),直接把特征圖放大成一個與輸入大小相同的輸出圖像,如圖7所示.在圖中,FCN-32s 直接把池化層pool5 通過上采樣或反卷積方式放大32 倍,產生一個密集輸出(dense output),但是直接放大32 倍得到的結果不夠精確,一些細節(jié)無法恢復.
另一種方法是通過設計一個跳躍連接,將全局信息和局部信息連接起來,相互補償來產生更加準確和精細的分割結果.在圖7中,FCN-16s 把池化層pool4和2 倍的池化層pool5 進行拼接,再通過上采樣或反卷積放大16 倍,得到另一個密集輸出;此外,FCN-8s 中先把池化層pool4和2 倍的pool5 進行拼接后的結果通過上采樣或反卷積進行2 倍放大,然后,與池化層pool3 進行拼接,最后通過上采樣或反卷積放大8 倍,產生一個密集輸出.
圖7 FCN 產生密集輸出的方式示意圖
FCN在PASCAL VOC 等大型數據集上都得到了state-of-the-art的出色結果,可以說,FCN是語義分割領域的開山之作,為后續(xù)許多經典的語義分割模型的提出奠定了思想基礎,推動了圖像語義分割任務的進一步發(fā)展.
目前,許多最成功的,最先進的深度學習圖像語義分割模型思想都來源于2015年Long 等人提出的全卷積神經網絡(FCN)模型[14].全卷積神經網絡可以說是深度學習在圖像語義分割領域的基石,也是深度學習技術應用于圖像語義分割的一個里程碑,它展示了如何端到端訓練卷積神經網絡來進行圖像語義分割,分割精度比傳統方法有了顯著的提高.
盡管全卷積神經網絡模型具有強大功能和足夠的靈活性,它仍然存在某些不足,阻礙了它在某些問題和情況下的應用:卷積網絡所具有的平移不變性使其沒有考慮有用的全局上下文信息.研究表明,全局特征信息或上下文信息相互作用有助于正確地分類像素進行語義分割[15,16].在本節(jié)中將介紹4 種基于FCN的卷積神經網絡分割框架,它們利用上下文信息進行語義分割.
編碼器-解碼器:該模型由兩部分組成:編碼器和解碼器.其中編碼器主要有卷積層和下采樣層組成,通過卷積操作逐漸減小特征圖大小并捕獲更高層次的語義信息;而解碼器主要由上采樣層或反卷積、卷積層和融合層組成,通過上采樣或反卷積的方式逐漸恢復對象細節(jié)信息和空間維度來進行分割.整個結構利用來自編碼器模塊的多尺度特征,并從解碼器模塊恢復空間分辨率[17].U-Net 模型[18]和SegNet 模型[19]就是編碼器-解碼器結構的典型代表之一.
U-Net 模型結構如圖8所示,該結構主要包括一個捕獲上下文信息的收縮路徑和一個用以精確定位的對稱拓展路徑.因此,該模型左側可視為編碼器部分,編碼器中主要由4 個子模塊組成,每個子模塊包含兩個卷積層,每個子模塊之后通過最大池化層(max-pool)實現的下采樣;模型的右側可視為解碼器部分,解碼器同樣由4 個子模塊組成,通過上采樣操作恢復對象細節(jié)和空間維度,直到與輸入圖像的分辨率一致.此外,U-Net 網絡還設計了一個跳躍連接,將上采樣結果與編碼器中具有相同分辨率的子模塊的輸出進行連接,作為解碼器中下一個子模塊的輸入.U-Net 模型提出,成功實現了使用非常少的數據完成端到端的訓練,并獲得了出色的醫(yī)學圖像分割效果,成為大多數醫(yī)療影像語義分割任務的基線.
圖8 U-Net 模型結構示意圖
SegNet 模型如圖9所示,該模型主要由編碼網絡(encoder network)、解碼網絡(decoder network)和逐像素分類層(pixel-wise classification layer)組成.其中編碼網絡是將高維向量轉換成低維向量,同時在池化過程中記錄最大池化索引信息,保存了最大特征值所在的位置,以保存邊界信息.解碼網絡與編碼網絡是相對稱的,通過解碼網絡可以將低分辨率的特征圖映射到高空間分辨率的特征圖,實現了低維向量到高維向量的重構,最后通過Softmax 激活函數用于輸出與輸入圖像具有相同分辨率的像素級標簽.SegNet 模型的提出,使得編碼器-解碼器網絡結構普適化.
圖9 SegNet 模型結構示意圖
基于編碼器-解碼器結構的網絡模型還包括LRR[20]、Refine Net[21]和DeepLab v3_plus[22]等.這些模型的提出證明了該結構在圖像語義分割領域的高效性,此外,該結構也廣泛應用于對象檢測方面并取得了一定的成果[23,24].
特征融合模型通常采用空間金字塔池化在多個范圍內捕獲上下文信息,然后進行多尺度特征融合.該模型結構在一定程度上克服了用全卷積網絡(FCN)進行圖像語義分割時沒有考慮全局上下文信息的主要缺點.其中比較具有代表性的模型是金字塔場景分析網絡(Pyramid Scene Parsing Network,PSPNet)[25]和DeepLab v2 網絡[26].
PSPNet 網絡在FCN的基礎上通過對不同區(qū)域的上下文信息進行聚合,充分利用了全局上下文信息來提高最終預測的可靠性,其總體結構如圖10所示,它的特點在于使用了金字塔池化模塊 (pyramid pooling module),將4 個不同的粗細尺度進行特征融合.在金字塔模塊中,不同尺度級別的輸出包含不同大小的特征圖,通過采用1×1 卷積層把上下文表示的維數降低為原來的l/N,以保證全局權重.然后,通過雙線性插值對低維特征圖進行上采樣以獲得相同大小的特征,不同級別的特征被拼接為最終的金字塔池化全局特征.最后再經過一個卷積層輸出最終的逐像素預測結果.
圖10 PSPNet的總體結構
DeepLab v2 網絡中提出了基于空洞卷積的空間金字塔池化(Atrous Spatial Pyramid Pooling,ASPP)模塊,其思想來源于SPPNet[27],主要是為了解決目標的多尺度問題.通過設計不同的空洞率的多個并行卷積核,組成類似金字塔方式在給定的特征層上進行有效的重采樣,空洞卷積可以保證在參數量的不變的情況下,通過有效地增大卷積核尺寸來擴大感受域的大小,如圖11所示.在這個基礎上,DeepLab v3_plus 提出了包含ASPP模塊的編碼器-解碼器模型,并在幾個語義分割基準數據集上表現出優(yōu)異的性能.空間金字塔池化不僅僅應用于圖像分割領域,也應用于目標檢測領域[28].
圖11 基于空洞卷積的空間金字塔池化
上下文模塊包含級聯的其他模塊,以對長距離上下文進行編碼.語義分割需要對多種空間尺度的信息進行整合,同時也需要對局部信息與全局上下文信息進行平衡.其原因在于,一方面,局部信息對于提高像素級別的標注的正確率是非常重要的;另一方面,整合圖像全局的上下文信息對于解決局部模糊性問題來說也同樣重要的.然而,普通的卷積神經網絡具有的平移不變性容易造成其忽略了高分辨率的特征圖,會導致邊緣信息的丟失.一種常見的改進是使用條件隨機場(Conditional Random Field,CRF)作為后處理過程來調優(yōu)結果.
其中一種有效的方法是將全連接CRF 與DCNN[29]結合,通過計算任意兩個像素之間的概率值來判斷它們之間的相似性從而達到判斷它們是否屬于同一個類.通過這種方式來實現利用全局上下文信息,而不是局部信息來進行語義分割.全連接 CRF 可以捕獲物體的邊緣信息,彌補了DCNN 帶來的邊界平滑問題.
圖像金字塔是圖像中多尺度表達的一種,最主要用于圖像分割,是一種通過提取多分辨率圖像以對圖像進行解釋的有效但概念簡單的結構.圖像金字塔最初用于機器視覺和圖像壓縮,將圖像以不同的分辨率以金字塔形狀進行排列從而形成圖像的金字塔,其通過梯次向下采樣獲得,直到達到某個終止條件才停止采樣.在圖像金字塔中,金字塔的頂層圖像分辨率最低,底層圖像分辨率最高.常見的圖像金字塔有高斯金字塔和拉普拉斯金字塔兩種[30].
典型的例子是Farabet 等人[31]通過Laplacian 金字塔轉換輸入圖像,以多尺度的方式輸入到DCNN 中,并從所有尺度中合并特征圖.但是這類模型的主要缺點是計算機量大,對于較深的DCNNs不能很好地進行縮放,因此通常應用在理論分析.
目前已經有許多專注于圖像語義分割的模型與基準數據集,這些基準數據集為評價模型的性能提供了一套統一的標準.通常對分割模型進行評價會從執(zhí)行時間、內存使用率和算法精度等方面進行考慮.在這節(jié)中,我們主要介紹語義分割模型的算法精度評價指標.
類比二分類問題[32],在圖像分割中,我們也引入“混淆矩陣”,用PA和IoU[33]的值來評估語義分割技術的準確性.假設:共有k+1 個類,Pij表示本屬于類i但被預測為類j的像素數量.即,Pii表示真正的數量(TP+TN,TP:真正例,TN:真反例),而Pij和Pji則分別被解釋為假正例(FP)和假負例(FN),當i≠j時,Pii表示TP,Pjj表示TN,Pij表示FP,Pji表示FN.
PA像素精度(Pixel Accuracy):標記正確的像素占總像素的比例,等價于準確率,公式如下:
Intersection over Union (IoU):模型對某一類別預測結果和真實值的交集與并集的比值,一種測量在特定數據集中檢測相應物體準確度的一個標準,如式(2):
MPA均像素精度(Mean Pixel Accuracy):計算每個類內被正確分類像素數的比例,再求所有類的平均,公式如式(3):
均交并比(Mean Intersection over Union,MIoU):計算真實值和預測值的交集和并集,公式如式(4):
頻權交并比 (Frequency Weighted Intersection over Union,FWIoU):是根據每一類出現的頻率設置權重,權重乘以每一類的IoU并進行求和,公式如式(5):
利用混淆矩陣計算:每個類別的真實數目為TP+FN,總數為TP+FP+TN+FN,其中每一類的權重和其IoU的乘積計算公式如下,在將所有類別的求和即可,公式如式(6):
在上面描述的所有度量中,MIoU由于其代表性和簡單性而脫穎而出,成為最常用的度量.大多數挑戰(zhàn)和研究人員利用這一指標來展示他們的結果.
PASCAL VOC 挑戰(zhàn)賽主要是為圖像分類、目標檢測和圖像分割3 類任務的基準測試比賽,主要有4 個大類別,分別是人、常見動物、交通車輛、室內家具用品,數據集標注質量高、場景復雜、目標多樣、檢測難度大、數據量小但是場景豐富,相比ImageNet等更加考驗人工智能算法的設計和創(chuàng)新能力[34].其官方網址:http://host.robots.ox.ac.uk/pascal/VOC/.
Cityscapes 數據集專注于對城市街道場景的語義理解,共包含來自50 個城市的不同場景、不同背景、不同街道的24 998 張圖片,以及包含30 種類別涵蓋地面、建筑、交通標志、自然、天空、人和車輛等物體標注,以關注真實場景下的環(huán)境理解著稱,任務難度大.此外,圖像根據標記質量分為兩組,其中5000 個是精細注釋,其余19 998 個是粗注釋.將5000 張精細標注的圖像進一步分組為2975 張訓練圖像,500 張驗證圖像和1525 張測試圖像,其官方網站:https://www.cityscapesdataset.com/.
CamVid是第一個具有目標類別語義標簽的視頻集合.該數據庫提供32 個ground truth 語義標簽,將每個像素與32 個語義類之一相關聯.數據主要通過在固定位置架設CCTV 式攝像機進行拍攝和從駕駛汽車的角度拍攝的兩種方式進行獲取,駕駛場景增加了觀察目標的數量和異質性.其官方網站:http://mi.eng.cam.ac.uk/research/projects/VideoRec/Cam-Vid/.
SUN RGB-D 數據集是普靈斯頓大學的Vision &Robotics Group 公開的一個有關場景理解的數據集[35],擁有5285 張訓練圖像和5050 張測試圖像.這些圖像是由不同的傳感器捕獲的,因此具有不同的分辨率.在圖像類別中涵蓋37 個室內場景類,包括墻,地板,天花板,桌子,椅子,沙發(fā)等.由于對象類具有不同的形狀、大小和不同的姿態(tài),因此對這些圖像進行語義分割的任務是十分困難和復雜的,極具有挑戰(zhàn)性,官方網站:http://rgbd.cs.princeton.edu.
NYUD 同樣是關于室內場景的數據集,該數據集分為兩大類型:NYU Depth V1和NYU Depth V2.其中NYU-Depth V2 數據集通過攝像機記錄的各種室內場景的視頻序列組成,它包含來自3 個城市的464 種不同的室內場景和26 種場景類型,407 024 個未標記的幀以及1449 個密集標記的幀.而NYU-Depth V1 包含64 種不同的室內場景和7 種場景類型,108 617 張未標記的幀和2347 個密集標記的幀.其官方網站:https://cs.nyu.edu/~silberman/datasets/.
最后,通過表1來對PASCAL VOC、CityScapes、Camvid、SUN RGB-D和NYUDV2 這些常用語義分割數據集做簡單的歸納總結.除此之外,大規(guī)模圖像分割數據集還包括Semantic Boundaries Dataset(SBD)、Microsoft Common Objects in COntext (COCO)、KITTI、Adobe’s Portrait Segmentation、Youtube-Objects、Materials IN Context (MINC)、Densely-Annotated VIdeo Segmentation (DAVIS)、Stanford background、SiftFlow 以及3D 數據集,包括ShapeNet Part、Stanford 2D-3D-S、A Benchmark for 3D Mesh Segmentation、Sydney Urban Objects Dataset、Large-Scale Point Cloud Classification Benchmark 等.
表1 常見語義分割數據集歸納總結
為了更好地說明網絡的性能,本節(jié)選取其中一個具有挑戰(zhàn)性的數據集:CamVid,主要針對FCN[14]、UNet[18]、PSPNet[26]和DeepLab v3_Plus[22]模型進行實驗,并對實驗結果進行分析對比.CamVid 數據集主要是道路場景,物體涉及行人、路牌、路燈、車輛、建筑物、樹木等,物體種類豐富,背景復雜多變,共包含701 張圖像,其中367 張圖像用于訓練,101 張用于驗證,233 張用于測試.在訓練CamVid 數據集時,沒有考慮類別之間的平衡問題,所以沒有做類別不平衡修正.
我們的實驗系統包括預訓練網絡都是基于PyTorch框架實現,所有實驗都是基于NVIDIA-RTX 2070S (8 G)顯卡和Python3.7 版本上完成.為了加快網絡收斂速度和根據計算機配置,將循環(huán)次數設置為50,初始學習率設置為1×10-4,學習率隨訓練次數的增加而線性遞減,mini-batch size 設置為4,優(yōu)化器采用SGD,且動量設置為0.9,輸入圖像大小為512×512.我們在類別像素上采用Negative Log Liklihood Loss (NLLLoss)損失函數,該函數適用于二分類和多分類任務,也適用于訓練數據集類別不平衡任務.將通過Mean-IoU 記錄模型的性能表現.CamVid 數據集上的實驗對比如表2所示,主要比較因素包括基礎網絡、核心技術和評價指標MIoU.
表2 基于CamVid 數據集實驗對比
從表2中可以看到U-Net、PSPNet、DeepLab v3_plus 三種模型在CamVid 數據集上MIoU與FCN相比均有所提升.其中,PSPNet、DeepLab v3_plus 兩種模型的MIoU均達到了50%左右,能夠識別圖像中不同尺度的物體,分割結果對比其他模型,更加接近真實分割,邊界信息更為準確,是性能出色,具有代表性的圖像語義分割模型.DeepLab v3_plus 集成了DeepLab v2、DeepLab v3 等眾多網絡的優(yōu)點,通過逐漸恢復空間信息來捕獲更清晰的邊界信息;而PSPNet 通過空間金字塔池化模塊,利用多尺度的方式對圖像特征進行融合,有效地捕獲了圖像豐富的上下文信息,二者均提高了圖像的識別效果.此外,U-Net 通過跳躍連接將高級和低級圖像特征進行融合,最大化提取了細節(jié)信息,更常用在數據量少、邊界模糊,需要高分辨率信息用于精準分割的醫(yī)學圖像.實驗結果進一步闡釋了語義分割需要豐富的上下文信息才能產生高質量的分割結果.
圖像語義分割技術越來越受到計算機視覺和機器學習研究者的關注.許多正在興起的產業(yè)應用需要精確有效的分割技術,包括自動駕駛、室內導航,醫(yī)療影像分析等.這些需求與深度學習技術在計算機視覺領域的基本任務中研究不謀而合,包括語義分割或場景理解[33],下面介紹主要的語義分割的3 個方面的應用.
醫(yī)學圖像是臨床診斷與醫(yī)學研究中不可缺少的工具,在醫(yī)學圖像處理與分析領域,醫(yī)學圖像分割是對醫(yī)學圖像進一步分析和處理的基礎[36].醫(yī)學圖像分割的目的就是通過提取描述對象的特征,把感興趣對象從周圍環(huán)境中分離出來,分析和計算分割對象的解裁、病理、生理和物理等方面的信息[37].醫(yī)學圖像分割對醫(yī)學研究、臨床診斷、病例分析、手術計劃、影像信息處理和計算機輔助手術等醫(yī)學研究與實踐領域有著廣泛的應用和研究價值.
然而,構建自動分割框架一直是醫(yī)學界極具挑戰(zhàn)性的課題.隨著深度學習的不斷發(fā)展,神經網絡應用于醫(yī)學圖像分割成為主流趨勢,極大地提高了醫(yī)療診斷的準確性和可靠性.在基于深度學習的醫(yī)學圖像分割方法中,最具代表性的模型是U-Net[17],其通過含有跳躍連接的編碼—解碼結構的網絡結構,有效地適用于醫(yī)學圖像分割,在此基礎上也涌現了許多適合醫(yī)學圖像分割的模型并且得到了廣泛的應用.
遙感圖像是人們獲取地球表層各類地物信息的重要數據來源.遙感圖像語義分割,是指對遙感圖像進行處理、分析,目的是像素級地識別圖像,即標注遙感圖像中每個像素所屬的對象類別,是圖像分析的第一步.通過圖像語義分割技術,可以同時提取遙感圖像中的多種地物,可以在土地利用調查、自然災害探測、環(huán)境監(jiān)測、精確植被、城市規(guī)劃等一系列潛在的實際應用中發(fā)揮重要作用.
然而,由于遙感影像的成像特征,地物之間可能會因“同物異譜,同譜異物”造成類內光譜差異大,類間光譜特征相互重疊,使得物體之間難以區(qū)分.因此,很難提出一種從遙感圖像中以合理的精度和可靠性定位多個目標的方法.隨著深度學習的發(fā)展,目前已經有大量文獻證明了神經網絡在遙感圖像語義分割中取得了顯著進展[38,39].
自動駕駛汽車作為人工智能和汽車工業(yè)結合的產物,毫無疑問是當今的研究熱點.對于無人駕駛汽車而言,最重要的是自動駕駛的汽車對行駛道路上環(huán)境的感知與物體的識別,車輛行駛在過程中,通過車載攝像頭采集車輛所處的位置以及車輛周圍的物體.在目前的自動駕駛技術中,處理好圖像感知到的信息,將有助于提高車輛行駛決策的準確度.圖像語義分割是將圖像中每一個像素按照標簽進行分類,從而從圖像中提取出豐富的駕駛環(huán)境信息,輔助決策[40].目前已經有許多對城市景觀的語義分割開源數據集,這些數據集可以幫助語義分割模型的訓練與測試.
與圖像分類或目標檢測相比,語義分割使我們對圖像有更加細致的了解.這種了解在諸如自動駕駛、醫(yī)療影像分析、機器人以及圖像搜索引擎等許多領域都是非常重要的.
2015年,FCN的提出極大地推動了圖像分割的發(fā)展,所取得的成就已經使圖像分割任務邁入盛況空前的新階段.
盡管如此,圖像語義分割方面仍然存在挑戰(zhàn),可以從兩個角度出發(fā)看待這些挑戰(zhàn):
(1)從深度卷積神經網絡的角度看待語義分割面臨的挑戰(zhàn)[26]:
① 特征分辨率降低:主要是由深度卷積神經網絡結構中設計重復采用最大池化操作和下采樣操作,重復池化和下采樣降低了空間分辨率.其中一種解決方法是采用轉置卷積(deconvolutional layer),但是該方法需要額外的空間的同時也增大了計算量.另一種解決方法是采用將最大池化層用空洞卷積來替代下采樣,保證了不增加參數量的同時有效地擴大了感受域的大小,以更高的采樣密度計算特征圖;
②對象在多尺度的存在:主要是目標在多尺度圖像中的狀態(tài)造成的,因為在同一種尺度下,不同目標的特征往往響應并不相同.已有的解決該問題的一個方法是將圖片縮放成不同尺寸,匯總特征得到結果.這種方法可以提高性能,但是增加了計算成本.除此之外,受SPPNet 啟發(fā),DeepLab v2 提出一個ASPP 模塊,對給定輸入使用不同采樣率的空洞卷積并行采樣,以多比例捕捉圖像上下文;
③ 深度卷積神經網絡的空間不變性造成定位精度的下降:現存的解決該問題的一個方法是使用跳躍連接結構,通過融合不同層的特征圖從而計算最終的分割結果.此外,另一種高效的方法是采用條件隨機場增強模型捕捉細節(jié)的能力.
(2)從分割結果的角度看待語義分割面臨的挑戰(zhàn):
語義分割可以看成是一個逐像素分類的任務,它包含分類和定位兩個挑戰(zhàn)[41].
① 分類:對于分類任務,模型必須具有空間不變性的,以適應目標的各種形式,如平移和旋轉,因此在設計網絡時可以采用全卷積的結構,去掉全連接層或全局池化層;
② 定位:對于定位任務,模型必須是對圖像變換足夠的敏感的,即能夠精確定位語義類別的每個像素,因此在涉及網絡時可以采用較大的卷積核,使得像素與特征圖的結合更加緊密,增強處理不同變換的能力,采用較大卷積核可以保證感受野足夠大,可以覆蓋了較大的目標,有利于分類.
在現有研究成果的基礎上,展望未來,圖像語義分割技術的研究可能會從以下幾個方面展開[33,42]:
(1)應用于3D 數據的語義分割.
(2)應用于場景解析任務的圖像語義分割.
(3)實例級圖像語義分割.
(4)實時圖像語義分割.
(5)應用于序列數據集的語義分割.