http://www.sohu.com/a/155907339_610300
圖像語義分割就是機器自動從圖像中分割出對象區(qū)域,并識別其中的內(nèi)容头岔。
量子位今天推薦的這篇文章塔拳,回顧了深度學習在圖像語義分割中的發(fā)展歷程。
發(fā)布這篇文章的Qure.ai峡竣,是一家用深度學習來讀取醫(yī)學影像的公司靠抑,他們在官方博客上梳理了語義分割中的深度學習方法。
他們希望通過這份介紹适掰,能讓大家了解這個已經(jīng)在自然圖像處理比較成熟颂碧、但是在醫(yī)學圖像中仍需發(fā)展的新興技術(shù)。
作者Sasank Chilamkurthy三部分介紹了語義分割相關研究:
以下內(nèi)容編譯自Qure.ai官方博客:
語義分割是什么类浪?
語義分割方法在處理圖像時载城,具體到像素級別,也就是說费就,該方法會將圖像中每個像素分配到某個對象類別诉瓦。下面是一個具體案例。
△左邊為輸入圖像,右邊為經(jīng)過語義分割后的輸出圖像睬澡。
該模型不僅要識別出摩托車和駕駛者固额,還要標出每個對象的邊界。因此煞聪,與分類目的不同斗躏,相關模型要具有像素級的密集預測能力。
目前用于語義分割研究的兩個最重要數(shù)據(jù)集是VOC2012和MSCOCO昔脯。
VOC2012:
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/
MSCOCO:
http://mscoco.org/explore/
有哪些方法啄糙?
在深度學習應用到計算機視覺領域之前,研究人員一般使用紋理基元森林(TextonForest)或是隨機森林(Random Forest)方法來構(gòu)建用于語義分割的分類器云稚。
卷積神經(jīng)網(wǎng)絡(CNN)不僅能很好地實現(xiàn)圖像分類隧饼,而且在分割問題中也取得了很大的進展。
最初碱鳞,圖像塊分類是常用的深度學習方法桑李,即利用每個像素周圍的圖像塊分別將各像素分成對應的類別踱蛀。其中窿给,使用圖像塊的主要原因是分類網(wǎng)絡通常具有全連接層,其輸入需為固定大小的圖像塊率拒。
2014年崩泡,加州大學伯克利分校的Long等人提出的完全卷積網(wǎng)絡(Fully Convolutional Networks),推廣了原有的CNN結(jié)構(gòu)猬膨,在不帶有全連接層的情況下能進行密集預測角撞。
這種結(jié)構(gòu)的提出使得分割圖譜可以生成任意大小的圖像,且與圖像塊分類方法相比勃痴,也提高了處理速度谒所。在后來,幾乎所有關于語義分割的最新研究都采用了這種結(jié)構(gòu)沛申。
除了全連接層結(jié)構(gòu)劣领,在分割問題中很難使用CNN網(wǎng)絡的另一個問題是存在池化層。池化層不僅能增大上層卷積核的感受野铁材,而且能聚合背景同時丟棄部分位置信息尖淘。然而,語義分割方法需對類別圖譜進行精確調(diào)整著觉,因此需保留池化層中所舍棄的位置信息村生。
研究者提出了兩個不同形式的結(jié)構(gòu)來解決這個問題。
第一種方法是編碼器-解碼器(encoder-decoder)結(jié)構(gòu)饼丘。其中趁桃,編碼器使用池化層逐漸縮減輸入數(shù)據(jù)的空間維度,而解碼器通過反卷積層等網(wǎng)絡層逐步恢復目標的細節(jié)和相應的空間維度。從編碼器到解碼器之間卫病,通常存在直接的信息連接屡穗,來幫助解碼器更好地恢復目標細節(jié)主届。在這種方法中劳曹,一種典型結(jié)構(gòu)為U-Net網(wǎng)絡稳吮。
△一種典型的編碼器-解碼器結(jié)構(gòu)U-Net
第二種方法使用了稱作空洞卷積的結(jié)構(gòu)坚冀,且去除了池化層結(jié)構(gòu)制恍。
△空洞卷積涤垫,當比率為1時篡诽,即為經(jīng)典的卷積結(jié)構(gòu)路星。
條件隨機場(Conditional Random Field罕模,CRF)方法通常在后期處理中用于改進分割效果评腺。CRF方法是一種基于底層圖像像素強度進行“平滑”分割的圖模型,在運行時會將像素強度相似的點標記為同一類別淑掌。加入條件隨機場方法可以提高1~2%的最終評分值蒿讥。
△發(fā)展中的CRF方法效果。b圖中將一維分類器作為CRF方法的分割輸入抛腕;c芋绸、d、e圖為CRF方法的三種變體担敌;e圖為廣泛使用的一種CRF結(jié)構(gòu)摔敛。
接下來,我們會梳理一些代表性論文全封,來介紹從FCN網(wǎng)絡開始的分割結(jié)構(gòu)演變歷程马昙。
這些結(jié)構(gòu)都使用了VOC2012數(shù)據(jù)集來測試實際效果。
一些有趣的研究
接下來將按照論文的發(fā)表順序來介紹以下論文:
1.FCN網(wǎng)絡刹悴;
2.SegNet網(wǎng)絡行楞;
3.空洞卷積(Dilated Convolutions);
4.DeepLab (v1和v2)土匀;
5.RefineNet子房;
6.PSPNet;
7.大內(nèi)核(Large Kernel Matters)恒削;
8.DeepLab v3池颈;
對于上面的每篇論文,下面將會分別指出主要貢獻并進行解釋钓丰,也貼出了這些結(jié)構(gòu)在VOC2012數(shù)據(jù)集中的測試分值IOU躯砰。
FCN
論文:
Fully Convolutional Networks for Semantic Segmentation
于2014年11月14日提交到arvix
https://arxiv.org/abs/1411.4038
主要貢獻:
將端到端的卷積網(wǎng)絡推廣到語義分割中;
重新將預訓練好的Imagenet網(wǎng)絡用于分割問題中携丁;
使用反卷積層進行上采樣琢歇;
提出了跳躍連接來改善上采樣的粗糙程度兰怠。
具體解釋:
本文的關鍵在于:分類網(wǎng)絡中的全連接層可以看作是使用卷積核遍歷整個輸入?yún)^(qū)域的卷積操作。
這相當于在重疊的輸入圖像塊上評估原始的分類網(wǎng)絡李茫,但是與先前相比計算效率更高揭保,因為在圖像塊重疊區(qū)域,共享計算結(jié)果魄宏。
盡管這種方法并不是這篇文章中所特有的秸侣,還有一篇關于overfeat的文章也使用了這種思想,但是確實顯著提高了在VOC2012數(shù)據(jù)集上的實際效果宠互。
△用卷積運算實現(xiàn)的全連接層結(jié)構(gòu)
在將VGG等預訓練網(wǎng)絡模型的全連接層卷積化之后味榛,由于CNN網(wǎng)絡中的池化操作,得到的特征圖譜仍需進行上采樣予跌。
反卷積層在進行上采樣時搏色,不是使用簡單的雙線性插值,而是通過學習實現(xiàn)插值操作券册。此網(wǎng)絡層也被稱為上卷積频轿、完全卷積、轉(zhuǎn)置卷積或是分形卷積烁焙。
然而航邢,由于在池化操作中丟失部分信息,使得即使加上反卷積層的上采樣操作也會產(chǎn)生粗糙的分割圖考阱。因此翠忠,本文還從高分辨率特性圖譜中引入了跳躍連接方式鞠苟。
分值評論來源
62.2無排行榜
67.2增大動量momentum(原文未描述)排行榜
△FCN網(wǎng)絡在VOC2012上測試的基準分值
個人評論:
本文的研究貢獻非常重要乞榨,但是最新的研究已經(jīng)很大程度地改進了這個結(jié)果。
SegNet
論文:
SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
于2015年11月2日提交到arvix
https://arxiv.org/abs/1511.00561
主要貢獻:
將最大池化指數(shù)轉(zhuǎn)移至解碼器中当娱,改善了分割分辨率吃既。
具體解釋:
在FCN網(wǎng)絡中,通過上卷積層和一些跳躍連接產(chǎn)生了粗糙的分割圖跨细,為了提升效果而引入了更多的跳躍連接鹦倚。
然而,F(xiàn)CN網(wǎng)絡僅僅復制了編碼器特征冀惭,而Segnet網(wǎng)絡復制了最大池化指數(shù)震叙。這使得在內(nèi)存使用上,SegNet比FCN更為高效散休。
△SegNet網(wǎng)絡結(jié)構(gòu)
分值評論來源
59.9無排行榜
△SegNet在VOC2012上測試的基準分值
個人評論:
FCN網(wǎng)絡和SegNet網(wǎng)絡都是最先出現(xiàn)的編碼器-解碼器結(jié)構(gòu)媒楼,但是SegNet網(wǎng)絡的基準分值還不能滿足可實際使用的需求。
空洞卷積
論文:
Multi-Scale Context Aggregation by Dilated Convolutions
于2015年11月23日提交到arvix
https://arxiv.org/abs/1511.07122
主要貢獻:
使用了空洞卷積戚丸,這是一種可用于密集預測的卷積層划址;
提出在多尺度聚集條件下使用空洞卷積的“背景模塊”。
具體解釋:
池化操作增大了感受野,有助于實現(xiàn)分類網(wǎng)絡夺颤。但是池化操作在分割過程中也降低了分辨率痢缎。
因此,該論文所提出的空洞卷積層是如此工作的:
△空洞卷積示意圖
空洞卷積層在不降低空間維度的前提下增大了相應的感受野指數(shù)世澜。
在接下來將提到的DeepLab中独旷,空洞卷積被稱為多孔卷積(atrous convolution)。
從預訓練好的分類網(wǎng)絡中(這里指的是VGG網(wǎng)絡)移除最后兩個池化層寥裂,而用空洞卷積取代了隨后的卷積層势告。
特別的是,池化層3和池化層4之間的卷積操作為空洞卷積層2抚恒,池化層4之后的卷積操作為空洞卷積層4咱台。
這篇文章所提出的背景模型(frontend module)可在不增加參數(shù)數(shù)量的情況下獲得密集預測結(jié)果。
這篇文章所提到的背景模塊單獨訓練了前端模塊的輸出俭驮,作為該模型的輸入回溺。該模塊是由不同擴張程度的空洞卷積層級聯(lián)而得到的,從而聚集多尺度背景模塊并改善前端預測效果混萝。
分值評論來源
71.3前端空洞卷積論文
73.5前端+背景同上
74.7前端+背景+ CRF同上
75.3前端+背景+ CRF - RNN同上
△空洞卷積在VOC2012上測試的基準分值
個人評論:
需要注意的是遗遵,該模型預測分割圖的大小是原圖像大小的1/8。這是幾乎所有方法中都存在的問題逸嘀,將通過內(nèi)插方法得到最終分割圖车要。
DeepLab(v1和v2)
論文1:
Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs
于2014年12月22日提交到Arvix
https://arxiv.org/abs/1412.7062
論文2:
DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs
于2016年6月2日提交到Arxiv
https://arxiv.org/abs/1606.00915
主要貢獻:
使用了空洞卷積;
提出了在空間維度上實現(xiàn)金字塔型的空洞池化atrous spatial pyramid pooling(ASPP)崭倘;
使用了全連接條件隨機場翼岁。
具體解釋:
空洞卷積在不增加參數(shù)數(shù)量的情況下增大了感受野,按照上文提到的空洞卷積論文的做法司光,可以改善分割網(wǎng)絡琅坡。
我們可以通過將原始圖像的多個重新縮放版本傳遞到CNN網(wǎng)絡的并行分支(即圖像金字塔)中,或是可使用不同采樣率(ASPP)的多個并行空洞卷積層残家,這兩種方法均可實現(xiàn)多尺度處理榆俺。
我們也可通過全連接條件隨機場實現(xiàn)結(jié)構(gòu)化預測,需將條件隨機場的訓練和微調(diào)單獨作為一個后期處理步驟坞淮。
△DeepLab2網(wǎng)絡的處理流程
分值評論來源
79.7ResNet-101 + 空洞卷積 + ASPP + CRF排行榜
△DeepLab2網(wǎng)絡在VOC2012上測試的基準分值 RefineNet
論文:
RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation
于2016年11月20日提交到Arxiv
https://arxiv.org/abs/1611.06612
主要貢獻:
帶有精心設計解碼器模塊的編碼器-解碼器結(jié)構(gòu)茴晋;
所有組件遵循殘差連接的設計方式。
具體解釋:
使用空洞卷積的方法也存在一定的缺點回窘,它的計算成本比較高诺擅,同時由于需處理大量高分辨率特征圖譜,會占用大量內(nèi)存毫玖,這個問題阻礙了高分辨率預測的計算研究掀虎。
DeepLab得到的預測結(jié)果只有原始輸入的1/8大小凌盯。
所以,這篇論文提出了相應的編碼器-解碼器結(jié)構(gòu)烹玉,其中編碼器是ResNet-101模塊驰怎,解碼器為能融合編碼器高分辨率特征和先前RefineNet模塊低分辨率特征的RefineNet模塊。
△RefineNet網(wǎng)絡結(jié)構(gòu)
每個RefineNet模塊包含一個能通過對較低分辨率特征進行上采樣來融合多分辨率特征的組件二打,以及一個能基于步幅為1及5×5大小的重復池化層來獲取背景信息的組件县忌。
這些組件遵循恒等映射的思想,采用了殘差連接的設計方式继效。
△RefineNet模塊
分值評論來源
84.2CRF + 多維度輸入 + COCO預訓練排行榜
△RefineNet網(wǎng)絡在VOC2012上測試的基準分值 PSPNet
論文:
Pyramid Scene Parsing Network
于2016年12月4日提交到Arxiv
https://arxiv.org/abs/1612.01105
主要貢獻:
提出了金字塔池化模塊來聚合背景信息症杏;
使用了附加損失(auxiliary loss)。
具體解釋:
全局場景分類很重要瑞信,由于它提供了分割類別分布的線索厉颤。金字塔池化模塊使用大內(nèi)核池化層來捕獲這些信息。
和上文提到的空洞卷積論文一樣凡简,PSPNet也用空洞卷積來改善Resnet結(jié)構(gòu)逼友,并添加了一個金字塔池化模塊。該模塊將ResNet的特征圖譜連接到并行池化層的上采樣輸出秤涩,其中內(nèi)核分別覆蓋了圖像的整個區(qū)域帜乞、半各區(qū)域和小塊區(qū)域。
在ResNet網(wǎng)絡的第四階段(即輸入到金字塔池化模塊后)筐眷,除了主分支的損失之外又新增了附加損失黎烈,這種思想在其他研究中也被稱為中級監(jiān)督(intermediate supervision)。
△PSPNet網(wǎng)絡結(jié)構(gòu)
分值評論來源
85.4COCO預訓練匀谣,多維度輸入照棋,無CRF方法排行榜
82.6無COCO預訓練方法,多維度輸入振定,無CRF方法PSPNet論文
△PSPNet網(wǎng)絡在VOC2012上測試的基準分值 大內(nèi)核
論文:
Large Kernel Matters — Improve Semantic Segmentation by Global Convolutional Network
于2017年3月8日提交到Arxiv
https://arxiv.org/abs/1703.02719
主要貢獻:
提出了一種帶有大維度卷積核的編碼器-解碼器結(jié)構(gòu)必怜。
具體解釋:
這項研究通過全局卷積網(wǎng)絡來提高語義分割的效果。
語義分割不僅需要圖像分割后频,而且需要對分割目標進行分類。在分割結(jié)構(gòu)中不能使用全連接層暖途,這項研究發(fā)現(xiàn)可以使用大維度內(nèi)核來替代卑惜。
采用大內(nèi)核結(jié)構(gòu)的另一個原因是,盡管ResNet等多種深層網(wǎng)絡具有很大的感受野驻售,有相關研究發(fā)現(xiàn)網(wǎng)絡傾向于在一個小得多的區(qū)域來獲取信息露久,并提出了有效感受野的概念。
大內(nèi)核結(jié)構(gòu)計算成本高欺栗,且具有很多結(jié)構(gòu)參數(shù)毫痕。因此征峦,k×k卷積可近似成1×k+k×1和k×1+1×k的兩種分布組合。這個模塊稱為全局卷積網(wǎng)絡(Global Convolutional Network, GCN)消请。
接下來談結(jié)構(gòu)栏笆,ResNet(不帶空洞卷積)組成了整個結(jié)構(gòu)的編碼器部分,同時GCN網(wǎng)絡和反卷積層組成了解碼器部分臊泰。該結(jié)構(gòu)還使用了一種稱作邊界細化(Boundary Refinement蛉加,BR)的簡單殘差模塊。
△GCN網(wǎng)絡結(jié)構(gòu)
分值評論來源
82.2-詳情見本論文
83.6改進訓練過程缸逃,未在本文中詳細描述排行榜
△GCN網(wǎng)絡在VOC2012上測試的基準分值 DeepLab v3
論文:
Rethinking Atrous Convolution for Semantic Image Segmentation
于2017年6月17日提交到Arxiv
https://arxiv.org/abs/1706.05587
主要貢獻:
改進了空間維度上的金字塔空洞池化方法(ASPP)针饥;
該模塊級聯(lián)了多個空洞卷積結(jié)構(gòu)。
具體解釋:
與在DeepLab v2網(wǎng)絡需频、空洞卷積中一樣丁眼,這項研究也用空洞卷積/多空卷積來改善ResNet模型。
這篇論文還提出了三種改善ASPP的方法昭殉,涉及了像素級特征的連接户盯、加入1×1的卷積層和三個不同比率下3×3的空洞卷積,還在每個并行卷積層之后加入了批量歸一化操作饲化。
級聯(lián)模塊實際上是一個殘差網(wǎng)絡模塊莽鸭,但其中的空洞卷積層是以不同比率構(gòu)建的。這個模塊與空洞卷積論文中提到的背景模塊相似吃靠,但直接應用到中間特征圖譜中硫眨,而不是置信圖譜。置信圖譜是指其通道數(shù)與類別數(shù)相同的CNN網(wǎng)絡頂層特征圖譜巢块。
該論文獨立評估了這兩個所提出的模型礁阁,嘗試結(jié)合將兩者結(jié)合起來并沒有提高實際性能。兩者在驗證集上的實際性能相近族奢,帶有ASPP結(jié)構(gòu)的模型表現(xiàn)略好一些姥闭,且沒有加入CRF結(jié)構(gòu)。
這兩種模型的性能優(yōu)于DeepLabv2模型的最優(yōu)值越走,文章中還提到性能的提高是由于加入了批量歸一化層和使用了更優(yōu)的方法來編碼多尺度背景棚品。
△DeepLabv3 ASPP結(jié)構(gòu)
分值評論來源
85.7使用了ASPP結(jié)構(gòu),且不帶有級聯(lián)模塊排行榜
△DeepLabv3 ASPP結(jié)構(gòu)在VOC2012上測試的基準分值
原文地址: