笔记:基于DCNN的图像语义分割综述
寫在前面:一篇魏云超博士的綜述論文,完整題目為《基于DCNN的圖像語義分割綜述》,在這里選擇性摘抄和理解,以加深自己印象,同時達到對近年來圖像語義分割歷史學習和了解的目的,博古才能通今!感興趣的請根據自己情況找來完整文章閱讀學習。
圖像的語義分割是計算機視覺中重要的基本問題之一,其目標是對圖像的每個像素點進行分類,將圖像分割為若干個視覺上有意義的或感興趣的區域,以利于后續的圖像分析和視覺理解.近年來,深度卷積神經網絡(Deep Convolutional Neural Network, DCNN)的出現,極大地推動了語義分割的發展。
圖像分類、物體檢測、圖像語義分割是計算機視覺的三大核心研究問題。其中圖像語義分割任務最具有挑戰性。圖像語義分割融合了傳統的圖像分割和目標識別兩個任務,其目的是將圖像分割成幾組具有某種特定語義含義的像素區域,并識別出每個區域的類別,最終獲得一副具有像素語義標注的圖像。目前,圖像語義分割是計算機視覺和模式識別領域非常活躍的研究方向,并在很多領域具有廣泛的應用價值。例如,在時尚領域,通過對人體的語義分割可以定位出人臉、軀干、著裝等信息,從而幫助網民在互聯網購物過程中實現自動試衣等功能;在自動駕駛領域,通過對車體前方場景的語義分割可以精確定位道路、車體和行人等場景或物體信息,從而提升自動駕駛的安全性。圖像語義分割技術正逐漸應用到人們生活的各個方面,并將改變人類的生活方式。
然而,圖像語義分割任務是一個非常具有挑戰性的問題,其難點主要體現在以下幾個方面:
1 )物體層次:同一物體,由于光照、視角、距離的不同,拍攝出的圖像也會有很大不同,另外,非剛性物體(如貓、狗等動物)由于運動所產生的形變也使拍出的圖像產生很大的變化,同時,物體之間的相互交叉所帶來的遮擋問題,也給圖像語義分割帶來很大的挑戰。
2 )類別層次:類別層面上所面臨的難點主要來自兩個方面,即類內物體之間的相異性和類間物體之間的相似性。
?
3 )背景層次:通常干凈的背景有助于實現圖像的語義分割,但實際場景中的背景往往是錯綜復雜的,這種復雜性也大大提升了圖像語義分割的難度。
圖像語義分割由于其廣闊的應用前景和挑戰性引起了研究者和工業界廣泛的關注,特別是近年來DCNN 等新技術和新工具的出現,為其發展注入新的活力。
本文作者首先介紹了DCNN的相關背景知識;
然后對當前圖像語義分割方面的主流數據庫進行了分析和介紹,并以PASCAL VOC數據庫為主線對近年來基于DCNN的語義分割算法進行了梳理和總結,重點介紹了基于全監督和弱監督的圖像語義分割算法;
最后,對語義分割未來的研究重點進行了探討和預測。
1 DCNN的背景介紹
深度學習在圖像識別領域取得的巨大成功主要得益于大規模標記圖像的出現和計算機硬件的發展。Stanford大學Li等發起的ImageNet大規模視覺識別挑 戰 (Image Net Large Scale Visual Recognition Challenge, ILSVRC)提供了上百萬張有標簽的圖像,這很大程度上緩解了深度網絡在訓練過程中產生的過擬合問題。同時具有超強計算能力的 GPU也為深度學習復雜的運算帶來了可能性。
2012年 Hinton的學生 Krizhevsky等在ILSVRC競賽中通過8層的DCNN(簡稱AlexNet),以接近10%的優勢擊敗了傳統的基于人工設計特征的方法,在1000類的圖像分類任務中獲得冠軍.自此之后的幾年中,所有的參賽隊伍 (紐 約 大 學,新 加 坡 國 立 大 學,牛 津 大 學,Google,Microsoft等)都無一例外的采用了基于深度CNN的方法,并進一步提升了圖像分類的性能 。
?
相對于傳統方法,深度學習在圖像識別領域取得巨大進步的主要原因在于深度卷積神經網絡是通過訓練數據自動學習特征。
卷積神經網絡主要包含了4種基本操作:卷積,池化(Pooling)、全連接和非線性變換,如圖 1 所示,下面簡要介紹這 4 種操作
圖1 卷積神經網絡示意圖
1)卷積
卷積神經網絡在初始化階段主要是初始化卷積層中各個卷積核的權重和偏置量。卷積層的輸入來源包括輸入的圖像和卷積或池化操作后生成的特征圖(feature map)。
卷積操作主要是利用一個固定大小的卷積核,在輸入的圖像或特征圖上按照一定的步長進行滑動,通過內積操作和非線性函數將圖像或特征圖映射到下一層的特征圖上。
卷積層輸出的特征圖的數量是由人工定義的卷積核個數決定的,其輸出的大小由卷積核大小、滑動的步長,以及上一層輸入的特征圖大小共同決定。
2)池化
池化又稱降采樣,卷積神經網絡在通過卷積獲得特征之后,可以利用提取到的特征訓練相應的分類器.然而,若輸入的圖像尺寸較大,僅僅通過卷積操作獲得的特征往往維度很高,因此在訓練分類器過程中很容易出現過擬合現象。池化操作是對上一層特征圖的一個降采樣過程。通過對上一層特征圖中相鄰小區域的聚合統計,可以獲得低維度的特征表示 。通過池化,可以實現利用小尺寸的特征圖描述大尺寸特征圖的目的,有效改善分類器的性能,防止過擬合。常用的池化操作包括平均池化和最大值池化,分別指將每個聚合區域的平均值和最大值映射到下一層特征圖上。
3 )全連接
同傳統神經網絡中的層相似,在全連接層中下一層神經元的輸出同上一層所有神經元的輸入都有關 . 通過全連接層可以使得網絡的參數在訓練樣本上快速收斂。
4)非線性函數
人腦對客觀世界的理解并不是線性的,而是一種復雜的非線性映射.因此,神經網絡在設計中往往會通過非線性激活函數來模擬人腦的非線性認知行為. 常用的非線性激活函數主要包括Sigmoid和修正線性單元(Rectified Linear Units,ReLU)。定義為:
?? ? ? ?
AlexNet在訓練過程中首先將圖片變換到256*256大小,并從中隨機分割出224*224大小的區域輸入到神經網絡中。受限于GPU的內存。整個訓練過程需要多次迭代,每次迭代中輸入256張圖片,并利用這些圖片在損失函數中計算得出的梯度值調整整個網絡的參數 。在迭代過程中,學習速率也在逐漸變小,從而使整個網絡能有效地收斂到某個局部最小值。在測試過程中,AlexNet?可以讀入256*256?大小的測試樣本,并在網絡末端輸出樣本在各個類別上的概率分布,概率最大的類別即為測試圖像中物體的類別。
2 圖像語義分割相關數據庫?(略講)
當某種圖像語義分割算法被提出時,需要采用一個或多個數據集來驗證算法的有效性 。DCNN出現之后,數據庫變得更加重要。基于同樣的深度模型,數據量的增加通常可以有效提升圖像語義分割的性能。
PASCAL VOC 2012
PASCAL-CONTEXT
PASCAL-PERSON-PART
HORSE-COW-PART
ACTIVE TEMPLATE REGRESSION(ATR)
CITYSCAPES
MS COCO
七個數據庫!
3 基于DCNN的圖像語義分割算法
圖像語義分割算法已經有幾十年的發展歷史,本節主要對基于 DCNN (本節所涉及的用于語義分割的 DCNN 網絡的初始參數大多數是通過 120萬的ImageNet圖像進行預訓練獲得)的圖像語義分割算法的發展脈絡進行了簡單梳理和總結。特別以PASCAL VOC 數據庫為主線對近年來具有代表性的全監督和弱監督的語義分割算法(如圖 2所示)進行綜述。
圖2??全監督和弱監督語義分割方法的標注信息示意圖
(1)?全監督的語義分割算法
1)14年的文章《Simultaneous Detection and Segmentation》首次利用DCNN解決語義分割問題。
該文提出了一個協同檢測和分割(Simultaneous Detection and Segmentation,SDS)方法,并利用RCNN(Regions with Convolutional Neural Network Features)框架對網絡參數進行訓練,SDS首先利用似物性推薦框技術MCG(Multiscale Combinatorial Grouping)?抽取了圖片中多個似物性推薦區域(proposal)。其次,SDS保留了每個proposal的前景區域同人工標注像素的交叉區域,并將剩余的背景區域的像素值替換為訓練圖像的像素平均值。最后,SDS利用每個 proposal的類別信息對網絡參數進行訓練,從而獲得可以用于圖像語義分割的DCNN。SDS的缺點在于依賴大量的proposal,其運算量和運算時間都非常高。
?
2)14年的文章《Fully convolutional networks for semantic segmentation》?提出了基于全卷積網絡的圖像語義分割方法,如圖3所示。
圖3? FCN方法的框架圖
FCN的主要特點是將用于DCNN?中的全連接層替換為卷積層,并將圖像語義分割問題轉化為對每個像素點的分類問題。圖3中預測結果特征圖上的21代表語義類別的個數(20個前景類加1個背景類),通過計算每個像素的預測結果和人工標注結果的差異,進而對網絡參數進行優化。
在此之后,大量的基于FCN的圖像語義分割算法被提出,如《Conditional Random Fields as Recurrent Neural Networks》、《High-performance?Semantic?Segmentation?Using?Very?Deep?FullyConvolutional Networks》、《Laplacian?Pyramid?Reconstruction?and?Refinementfor?Semantic?Segmentation》、《Higher?Order?Conditional?Random?Fields?in?Deep?Neural?Networks》、《Efficient?Piecewise?Trainingof?Deep?Structured?Models?for?Semantic?Segmentation》、《Semantic?Image?Segmentation?via?Deep?Parsing?Network》、《Semantic?Image?Segmentation?with?Deep?Convolutional?Nets?and?Fully?Connected CRFs》、《Exploring Context?with?Deep?Structured?models?for?Semantic?Segmentation》等。進一步推動了圖像語義分割的發展。
這些方法或將全連接的條件隨機場引入到FCN中,對FCN的預測結果進行后處理;或基于更強的卷積神經網絡(ResNet);或利用圖像的上下文信息提升 DCNN 的圖像語義分割能力。探索了圖像中“區域 - 區域”和“區域 - 背景”的上下文信息。對于 “區域 - 區域”的上下文信息,構建了基于DCNNs和CRFs的深度模型用以學習不同圖像區域塊之間的語義關聯.對于“區域 - 背景”的上下文信息,采用一種多尺度圖像輸入和滑動金字塔池化的方式獲取,該方法基于FCN的框架進行訓練。
(2) 弱監督的語義分割算法
DCNN在圖像語義分割任務中展示了其出色的分割能力,但大多數方法都屬于全監督的范疇,即利用像素級的標注圖片對網絡進行訓練.然而,標注像素級的訓練樣本往往需要大量的時間和人力.目前,大量的研究人員正在試圖采用弱監督的標注信息對DCNN進行訓練,使其具有圖像語義分割的能力,對于圖像語義分割任務,弱監督的標注信息主要包括圖像中的物體框和圖像的標簽。
1)?基于物體框的語義分割算法
15年的一篇文章《BoxSup:?Exploiting?Bounding?Boxes?to?Supervise?Convolutional?Networks?for Semantic Segmentation》?提出一種利用物體框作為監督信息的語義分割方法BoxSup,如圖4所示。
圖4??BoxSup方法的框架圖?.
該方法首先利用物體的位置框和 MCG方法得到物體粗略的前景區域,并以此作為監督信息,結合FCN框架對網絡的參數進行更新 。進而,基于訓練出的語義分割網絡對物體框中的前景區域進行預測,提升前景區域的精度,并再次結合FCN框架對網絡參數進行更新 。BoxSup的核心思想就是通過這種迭代過程不斷提升網絡的語義分割能力。
2)?基于圖像標簽的語義分割算法
相對于物體框的標注,圖像級的標注信息更容易被獲取,近些年受到了眾多研究人員的關注。但圖像級的語義信息很難同像素的語義產生關聯,這是利用圖像標簽作為監督信息的語義分割面臨的巨大挑戰。
15年的《From?Image-level?to?Pixel-level?Labeling?with?Convolutional?Networks》采用了多實例學習(MIL)機制構建圖像標簽同像素語義的關聯 。 該方法的訓練樣本包含了70 萬張來自ImageNet的圖片,但其語義分割的性能很大程度上依賴于復雜的后處理過程,主要包括圖像級語義的預測信息、超像素平滑策略、物體候選框平滑策略和 MCG分割區域平滑策略。
?
15年的《Weakly- and?Semi-Supervised?Learning?of?a?DCNN?for?Semantic Image Segmentation》提出了一種EM-Adapt的訓練方法。通過利用圖像的標簽信息動態地預測像素的語義信息,并將預測得到的語義分割圖作為監督信息,按 照FCN的框架對網絡的參數進行訓練。
15年的《Constrained?convolutional?neural?networks?for?weakly?supervisedsegmentation》?提出了一種約束卷積神經網絡(CCNN)通過一種損失函數來約束預測的像素標簽類別的分布,并結合圖像的標簽信息,對語義分割結果進行優化.雖然這些方法很大程度上了促進弱監督語義分割算法的發展,但其分割結果很難令人滿意。
15年的《STC: A?Simple?to?Complex?Framework for Weakly-supervised Semantic Segmentation》提出了一種從簡單到復雜(STC)的語義分割算法,極大地提升了基于圖像標簽語義分割的性能 . 該方法首先采用了互聯網中的簡單圖片(即背景干凈的圖片),并利用判別區域特征融合的顯著性檢測算法對圖片的顯著區域(《Salient?Object?Detection: A Discriminative Regional Feature Integration Approach》)進行分析。其次STC利用圖片的標簽信息和顯著性區域圖構建像素點同語義之間的關聯。最后,通過基于顯著圖的損失函數和一種從簡單到復雜的迭代機制,逐漸提升了DCNN的語義分割能力。圖5給出了STC算法的訓練框架圖。
圖5 STC算法框架圖
同時還有《Fully?Convolutional?Multi-Class?Multiple?Instance learning》、《Learning to Segment?with?Image-level?Annotations》、等不錯的文章可以借鑒學習。
基于圖像標簽的語義分割算法在未來具有重要的研究意義。同時,如何有效地利用圖像級的多標簽預測信息和似物性推薦框技術對預測的語義分割圖進行后處理,也具有重要的研究價值。
3 未來研究方向
當前,DCNN已經成為解決圖像語義分割的主流方法,但目前DCNN依然面臨著一些難點和挑戰.這些難點和挑戰一方面來自DCNN自身存在的問題,另一方面來自更具挑戰性的語義分割任務。
DCNN存在的問題主要包括:
1 )計算復雜度高。DCNN的訓練和測試很大程度上依賴具有超強計算能力的 GPU.因此,很難在普通PC端或移動設備端部署基于DCNN的相關應用。
2 )參數量大。當前主流的 DCNN模型包含幾十兆甚至幾百兆的參數,如何有效的壓縮模型并保持其準確性是深度學習的一個重要研究內容。
3 )性能和速度之間的矛盾 。近期的研究成果表明:網絡的層數越深,其識別物體的能力越強 。 然而,層數的增加,往往會導致速度變慢.一些應用場景(如自動駕駛)對 DCNN的性能和速度要求都很高。
此外,更具挑戰性的語義分割任務主要包括:
1 )小物體的語義分割.同物體檢測任務相似,當前的圖像語義分割網絡往往很難識別圖像中尺度較小的物體.如何有效地識別圖像中小尺度的物體是圖像語義分割中的重要內容。
2 )示例級的語義分割.圖8中展示了類別級的語義分割和示例級語義分割的區別.示例級的語義分割不僅要求識別像素的語義,也要求識別出像素所歸屬的示例.示例級的語義分割相比類別級的語義分割更具有挑戰性,同時也具有更廣闊的應用前景,是未來值得研究的方向之一 。
3 )弱監督的語義分割 . 雖然當前已經涌現出大量的弱監督算法,但其性能同全監督算法依然相差甚遠 . 如何利用當前互聯網中大量的具有語義標簽的圖片訓練有效地語義分割網絡是值得研究的另一方向。
總結
以上是生活随笔為你收集整理的笔记:基于DCNN的图像语义分割综述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python读取.nii.gz文件并展示
- 下一篇: pytorch中的pre-train函数