圖像分割算法總結
1.評價指標:
普通指標:
Pixel Accuracy(PA,像素精度):標記正確的像素點占所有像素點的比例。混淆矩陣中=\(\frac{{\rm{對角線}}}{總和}\)
Mean Pixel Accuracy(MPA 均像素精度):計算每個類內被正確分類像素數的比例,再求所有類的平均。混淆矩陣中=\(\frac{{\rm{對角線值}}}{對角線所在的每行和}\)
mean IU(MIoU 均交並比):按類別平均的交並比,計算真實值和預測值的交集和並集。混淆矩陣中=\(\frac{{\rm{對角線值}}}{對角線所在的行和+列和-對角線值}\)
這些指標在程序中通過混淆矩陣進行計算。
用於醫學:
Rand error(蘭德指數):兩個數據聚類的相似性評價方法,改造之后用來衡量分割性能。給定一張圖片,有n個像素點,同時有兩個分割X和Y(實際和預測)。a: 兩個分割同屬於一個聚類的像素點數量; b:兩個分割中都不屬於一個聚類的像素點數量。RE=1-RI
Rand指數:RI用來衡量相似度,越高越好。和誤差相反。$$RI = \frac{{a + b}}{{C_n^2}}$$
Warping error: 主要用來衡量分割目標的拓撲形狀效果,給定候選標注T(預測值)和參考標注L(實際值)的warping error可以認為是L對於T最好的漢明距離。
用於實時分割:
ms: 毫秒數
fps:畫面每秒傳輸幀數,通俗來講就是指動畫或視頻的畫面數
FLOPs:每秒執行的浮點數運算次數
FLOPS:全大寫,是floating point operations per second的縮寫,意指每秒浮點運算次數,可以理解為計算速度,是一個衡量硬件GPU性能的指標
GFLOPS:1GFLOPS=\(10^9\)FLOPs(10億次)
Parameters:模型參數
Model size:模型大小
2.先驗知識
-
語義分割常用特征提取框架:
圖像金字塔 編解碼結構 深度網絡vs空洞卷積 空間金字塔結構 從輸入圖像入手,將不同尺度的圖像分別送入網絡進行特征提取,后期再融合。 編碼器部分利用下采樣進行特征提取,解碼器部分利用上采樣還原特征圖尺寸。 經典分類算法利用連續下采樣提取特征,而空洞卷積是利用不同的采樣率。 除ASPP外,仍有其他網絡使用了該思想,如SPPNet、PSPNet等。
2.注意力機制的作用
注意力機制是把注意力集中在重要的點上,而忽略其他不重要的因素。其中重要程度的判斷取決於應用場景,具備注意力機制的神經網絡可更好的進行自主學習。核心目標即從眾多信息中選擇對當前任務目標更關鍵的信息。
注意力機制包含兩個步驟:
1)注意力機制需要先決定整段輸入的哪個部分需要更加關注
2)從關鍵的部分進行特征提取,得到重要信息。
按照注意力的關注域,可分為:空間域,通道域,層域,混合域,時間域。注意力機制可以幫助模型為輸入圖片的各個部分分配不同的權重,提取更關鍵、更重要的信息,使模型做出更准確的判斷,同時不會給模型的計算和存儲帶來更多消耗。
3.實時分割算法常用思想
實時分割要在保證分割准確性不會過低的前提下, 盡可能減少參數,壓縮模型,因此實時網絡對硬件設備的要求不高且省時。
實時分割算法常用思想有:
1)替換主網絡: ResNet101或ResNet50替換為ResNet34或ResNet18
2)減少通道數:避免出現2048,1024等過多的通道數
3)減少卷積層
4)將卷積層替換為組卷積或其他能減少計算量的卷積操作
5)增加前期數據處理
6)減少復雜融合方式
7)避免使用全連接
4.樣本不平衡
指在訓練的時候各個類別的樣本數量不均衡,由於檢測算法各不相同,以及數據集之間的差異,可能會存在正負樣本、難易樣本、類別間樣本這3種不均衡問題。一般在目標檢測任務框架中,保持正負樣本的比例為1:3(經驗值)。
-
正樣本:標簽區域內的圖像區域,即目標圖像塊
-
負樣本:標簽區域以外的圖像區域,即圖像背景區域
-
易分正樣本:容易正確分類的正樣本,在實際訓練過程中,該類占總體樣本的比重非常高,單個樣本的損失函數較小,但是累計的損失函數會主導損失函數
-
易分負樣本:容易正確分類的負樣本,在實際訓練過程中,該類占的比重非常高,單個樣本的損失函數較小,但是累計的損失函數會主導損失函數
-
難分正樣本:錯分成負樣本的正樣本,這部分樣本在訓練過程中單個樣本的損失函數較高,但是該類占總體樣本的比例較小
-
難分負樣本:錯分成正樣本的負樣本,這部分樣本在訓練過程中單個樣本的損失函數教高,但是該類占總體樣本的比例教小
1.正負樣本不均衡
以Faster RCNN為例,在RPN部分會生成20000個左右的Anchor,由於一張圖中通常有10個左右的物體,導致可能只有100個左右的Anchor會是正樣本,正負樣本比例約為1∶200,存在嚴重的不均衡。
對於目標檢測算法,主要需要關注的是對應着真實物體的正樣本,在訓練時會根據其loss來調整網絡參數。相比之下,負樣本對應着圖像的背景,如果有大量的負樣本參與訓練,則會淹沒正樣本的損失,從而降低網絡收斂的效率與檢測精度。
2.難易樣本不均衡
難樣本指的是分類不太明確的邊框,處在前景與背景的過渡區域上,在網絡訓練中難樣本損失會較大,也是我們希望模型去學習優化的樣本,利用這部分訓練可以提升檢測的准確率。
然而,大量的樣本並非處在前景與背景的過渡區,而是與真實物體沒有重疊區域的負樣本,或者與真實物體重疊程度很高的正樣本,這部分被稱為簡單樣本,單個損失會較小,對參數收斂的作用有限。
雖然簡單樣本單個損失小,但由於數量眾多,因此如果全都計算損失的話,其損失也會比難樣本大很多,這種難易樣本的不均衡也會影響模型的收斂與精度。
值得注意的是,由於負樣本中大量的是簡單樣本,導致難易樣本與正負樣本這兩個不均衡問題有一定的重疊,解決方法往往能同時對這兩個問題起作用。
3.類別間樣本不均衡
在有些目標檢測的數據集中,還會存在類別間的不均衡問題。舉個例子,數據集中有100萬個車輛、1000個行人的實例標簽,樣本比例為1000∶1,屬於典型的類別不均衡。
這種情況下,如果不做任何處理,使用該數據集進行訓練,由於行人這一類別可參考標簽太少,會使得模型主要關注車這一類別的檢測,網絡中的參數主要根據車輛的損失進行優化,導致行人的檢測精度大大下降。
目前,解決樣本不均衡問題的一些思路:
機器學習中,解決樣本不均衡問題主要有2種思路:數據角度和算法角度。從數據角度出發,有擴大數據集、數據類別均衡采樣等方法。在算法層面,目標檢測方法使用的方法主要有:
-
Faster RCNN、SSD等算法在正負樣本的篩選時,根據樣本與真實物體的IoU大小,設置了3∶1的正負樣本比例,這一點緩解了正負樣本的不均衡,同時也對難易樣本不均衡起到了作用。
-
Faster RCNN在RPN模塊中,通過前景得分排序篩選出了2000個左右的候選框,這也會將大量的負樣本與簡單樣本過濾掉,緩解了前兩個不均衡問題。
-
權重懲罰:對於難易樣本與類別間的不均衡,可以增大難樣本與少類別的損失權重,從而增大模型對這些樣本的懲罰,緩解不均衡問題。
-
數據增強:從數據側入手,可以在當前數據集上使用隨機生成和添加擾動的方法,也可以利用網絡爬蟲數據等增加數據集的豐富性,從而緩解難易樣本和類別間樣本等不均衡問題,可以參考SSD的數據增強方法。
5.簡述實時語義分割模型的加速方法
1)通過裁剪或resize來限定輸入的圖片大小,以降低計算復雜度。盡管這種方法簡單有效,但空間細節的損失,尤其是邊界部分,會導致算法精度下降
2)通過減少網絡通道數量加快處理速度,尤其是在骨干模型的早期階段,但會弱化空間信息
3)為追求極其緊湊的框架而丟掉模型最后階段(比如ENet),該方法的缺點也很明顯,由於ENet拋棄了最后階段的下采樣,模型的感受野不足以涵蓋大物體,導致判別能力較差。
4)為彌補空間細節的丟失,很多人采用U型結構,但U型結構在高分辨率特征圖上引入額外的計算,會降低模型速度;丟失掉的空間信息無法通過引入淺層修復,因此性價比不高。
6.RGB-D分割算法中的融合方式主要分為:
早期融合,中期融合,后期融合。早期融合
早期融合&淺層中期融合的優點:低層RGB-D特征能很好的保留空間線索
缺點:RGB圖像中的視覺信息和深度圖像中的幾何信息在低層沒有得到校正,融合后得到的特征信息較少
后期融合&深層中期融合優點:融合了表示語義信息的高級特征,在不同模式下得到的效果更見兼容
缺點:RGB和深度圖像高級特征中的互補空間線索在執行池化后已經被削弱
-
3.算法
算法 | 創新點 | 各種網絡結構框圖 |
---|---|---|
FCN | 1. 第一個實現端到端,像素到像素的語義分割網絡 2. 將當前分類網絡最后全連接層改編成全卷積網絡並進行微調,實現稠密預測 3. 設計跳躍連接將全局信息和局部信息連接起來相互補償 4. 設計shift-and-stich,但是最后沒用,因為上采樣效果已經很好了。 5. FCN中用反卷積進行上采樣,之前都是用插值。 6. backbone: AlexNet, VGG, GooLeNet |
![]() |
U-Net | 1. 設計了一個完全對稱的U型結構。一個收縮路徑來獲取全局信息,一個對稱的擴張路徑以精確定位。 2. 采用了鏡像輸入圖片邊界的方式補全缺失內容。 3. 設計了加權損失函數,對接觸的細胞在loss損失函數中給予較大的權重 4. 因為用來訓練的圖片非常少,所以對可用的訓練圖像應用彈性變形來擴充數據,這也可以讓網絡學到這種變形不變性 5. backbone:自定義 |
![]() |
FusionNet | 1.對U-Net的改進引入基於求和的跳躍連接,允許更深入的網絡結構以實現更精確的分割 2.每個上采樣出來的特征圖還和降采樣的時相同尺寸的特征圖進行skip連接。 3.每個殘差塊都有兩個卷積塊 這有兩個好處: 1)這些卷積塊作為輸入特征圖和殘差塊之間的橋梁,因為之前層特征圖的數量可能和殘差塊特征圖的數量不一樣。2)還有一個作用是保證網絡的對稱性。 4.程序里關於圖片尺寸剪切的部分可以學習。 5. backbone:自定義 |
![]() |
DeconvNet | 1. 提出FCN的幾個缺點: 1)網絡的感受野尺寸是預先固定。因此,對於輸入圖片中比感受野大或者小的物體可能會被忽略。即對於較大的物體,只有局部的細節信息能夠被正確標記,或者標記的結果是不連續的,而對於小物體會被忽略。由於分割的邊界細節和語義信息之間的權衡,通過跳躍結構來改善效果這一做法也無法從根本上解決問題。 2)由於,卷積后送入反卷積層的feature map十分稀疏,而且,反卷積的過程又十分的粗糙,輸入圖片中的結構細節信息會有所損失。 2. 用反池化+反卷積+ReLU作為解碼器 3. 論文寫作格式非常好 摘抄:1)池化定義:Pooling in convolution network is designed to filter noisy activations in a lower layer by abstracting activations in a receptive field with a single representative value. Although it helps classification by retaining only robust activations in upper layers, spatial information within a receptive field is lost during pooling, which may be critical for precise localization that is required for semantic segmentation. 2) The unpooling records the locations of maximum activations selected during pooling operation in switch variables, which are employed to place each activation back to its original pooled location. But it produce sparse activation map. 3). The deconvolution layers densify the sparse activation obtained by unpooling through convolution-like operations with multiple learned filters. Deconvolutional layers associate a single input activation with multiple outputs. The deconvolutional layers correspond to bases to reconstruct shape of an input object. Therefore, a hierarchical structure of deconvolutional layers are used to capture different level of shape details. 4)Unpooling captures example-specific structures by tracing the original locations with strong activations back to image space, it reconstructs the detailed structure of an object in finer resolutions. On the other hand , learned filters in deconvolutional layers tend to capture class-specific shapes, the activations closely related to the target classes are amplified while noisy activations from other regions are suppressed effectively. 4. backbone:VGG |
![]() |
SegNet | 1.提出了SegNet網絡,其核心的訓練引擎包括一個encoder網絡,和一個對稱的decoder網絡,即編碼器-解碼器框架,並跟隨一個用於Pixel-wise的分類層。 2.用反池化做上采樣方式 3.設計了大量的實驗可以借鑒 4. backbone:VGG |
![]() |
DeepLab v1 | 1)背景:語義分割中連續的池化或下采樣會導致圖像的分辨率大幅度下降,從而損失原始信息,且在上采樣過程中難以恢復。現在越來越多的網絡都在試圖減少分辨率的損失,比如使用空洞卷積,或者用步長為2的卷積代替池化。本文說明DCNN網絡的最后一層並不能准確的用來目標分割,這是因為平移不變性使得DCNN擅長高層次理解,但會損害低層次任務,如姿態估計,語義分割,這些任務中需要精准的定位,而不是抽象高級特征。 2)DeepLab引入了多尺度特征。通過設置不同參數的卷積層或池化層,提取到不同尺度的特征圖。將這些特征圖送入網絡做融合,對於整個網絡性能的提升很大。但是由於圖像金字塔的多尺度輸入,造成計算時保存了大量的梯度,從而導致對硬件的要求很高。多數論文是將網絡進行多尺度訓練,在測試階段進行多尺度融合。如果網絡遇到了瓶頸,可以考慮引入多尺度信息,有助於提高網絡性能。 3)參數同比減少,所以占比內存減小,速度快。 4)結合了深度卷積神經網絡和概率圖模型的方法,克服了深度網絡的局部化特性。 深度卷積神經網絡是采樣FCN的思想,修改VGG16網絡,得到粗略映射圖並插值到原圖大小。 概率圖模型(DenseCRFs):借用fully connected CRF對從DCNN得到的分割結果進行細節上的refine. 5) 把全連接層(fc6、fc7、fc8)改成卷積層(端到端訓練),把最后兩個池化層(pool4、pool5)的步長2改為1,保證feature的分辨率。 6) 把最后三個卷積層(conv5_1、conv5_2、conv5_3)的dilate rate設置為2, 且第一個00全連接層的dilate rate設置為4(保持感受野)。 7) 把最后一個全連接層fc8的通道數從1000改為21(分類數為21) 8) 第一個全連接層fc6.通道數從4096變為1024,卷積核大小從7x7變為3x3,后續實驗中發現此處的dilate rate為12時效果最好。 9)backbone: vgg16 |
![]() |
DeepLab v2 | 1)介紹了DCNN應用到語義分割的挑戰:減小特征圖分辨率;目標存在多尺度;因為DCNN的不變性減少了分割精度。 1) 針對分辨率過低的特征圖,文章通過修改最后幾個池化操作,避免特征圖分辨率損失過大,通過引入空洞卷積,在沒有增加參數與計算量的情況下增大了感受野(基本同理v1)。 2)需要分割的目標具有多樣的尺度大小。針對這個問題,文章參考了SPP的思想,使用了不同比例的膨脹卷積構造“空間金字塔結構”——ASPP。ASPP增強了網絡在多尺度下多類別分割時的魯棒性,使用不同的采樣比例與感受野提取輸入特征,能在多個尺度上捕獲目標與上下文信息。 3)DCNN網絡對目標邊界的分割准確度不高,文章引入CRF使得分割邊界的定位更加准確,從而解決該問題。 4) backbone: vgg16 |
![]() |
DeepLab v3 | 1) 本文重新討論了空洞卷積的使用,在串行模塊和空間金字塔池化的框架下,能夠獲取更大的感受野從而獲取多尺度信息。 2)改進了ASPP模塊,由於不同采樣率的空洞卷積核BN層組成,采用了串行和並行的方式布局模塊。 3)討論了一個重要問題:使用大采樣率的3x3的空洞卷積,因為圖像邊界響應無法捕捉遠距離信息(小目標),會退化為1x1的卷積,因此將圖像級特征融合到ASPP模塊中。 4)backbone:ResNet |
![]() |
DeepLab v3+ | 1) 提出了一種編碼器-解碼器結構,采樣DeepLab v3作為encoder,輸入與輸出尺寸之比為16,ASPP:一個1x1卷積+三個3x3卷積(rate=[6,12,18])+全局平均池化。 2)添加decoder得到新的模型。取消了CRF后處理。先把encoder的結果上采樣4倍,然后與編碼器中相對應尺寸的特征圖進行拼接融合,再進行3x3的卷積,最后上采樣4倍(通過雙線性插值)得到最終結果。 3)融合低層次信息前,先進行1x1的卷積,目的是降低通道數。 4)將Xception模型應用於分割任務,模型中廣泛使用深度可分離卷積。 5)backbone: ResNet, Xception |
![]() |
GCN | 1)證明大卷積核的有效性:之前文章多用小卷積核,優點是參數量少,計算量少;並且整合三個非線性激活層代替單一非線性激活層,增加模型判別能力。缺點是感受野不足,深度堆疊卷積容易出現不可控的因素。大卷積核感受野范圍大,但是參數量多,計算量大。本文為了減少計算量,用了不對稱卷積。 2)卷積方式匯總:1.普通正方形標准卷積 2. 空洞卷積——為了讓固定大小的卷積核看到更大范圍的區域,用空洞卷積代替pooling下采樣。 3.非對稱卷積——將標准3x3卷積拆分成一個1x3卷積和3x1卷積,在不改變感受野大小的情況下減少計算量 4.組卷積,深度可分離卷積——組卷積是對輸入特征圖進行分組,每組分別進行卷積。 5.分組卷積對通道進行隨機分組——為了達到特征之間的相互通信,使用channel shuffle。對組卷積之后的特征圖進行重組,保證下面的卷積其輸入來自不同的組,因此信息可以在不同組之間流轉。 6.每組卷積用不同尺寸卷積核——同一層的特征圖可以使用多個不同尺寸的卷積核,以獲得不同尺度的特征,再把這些特征結合起來,得到的特征往往比使用單一卷積核要好。為了盡可能減少參數,一般先用1x1卷積將特征圖映射到隱空間,再在隱空間做卷積。 7.通道間的特征分配不同權重——無論是在inception, denseNet, ShuffleNet里面,我們對所有通道產生的特征都是不分權重直接結合。用注意力機制的方法通過學習的方式來自動獲取每個特征通道的重要程度,然后依據計算出來的重要程度去提升有用的特征並抑制對當前任務用處不大的特征。 8.可變形卷積——規則形狀的卷積核可能會限制特征的提取,如果賦予卷積核形變的特性,讓網絡根據Label反傳下來的誤差自動的調整卷積核的形狀,適應網絡重點關注的感興趣的區域,就可以提取更好的特征。例如網絡會根據原始位置學習一個offset偏移量,得到新的卷積核,那么一些特殊情況就會成為這個更泛化的模型的特例。 3)卷積層連接方式: 1.使用skip connection,讓模型更深 2. densely connection, 使每一層模型都融合其他層的特征輸出(DenseNet) 4)表明語義分割的兩個挑戰:語義分割可以看成是一個逐像素分類任務,包括分類和定位兩個挑戰。這兩個方面天生對立。對於分類任務,模型必須具有不變性,以適應目標的各種形式,如平移和倒轉。對於定位任務,模型應該是對變換敏感的,即能夠精確定位語義類別的每個像素。從上面兩個方面出發,可以引申出設計網絡的兩個原則:第一,從定位的角度出發,應該采用全卷積的結構,去掉全連接層或全局池化層;第二,從分類的角度出發,應該采用較大的卷積核,使得像素與特征圖的結合更加緊密,增強處理不同變換的能力。而且一旦卷積核過小,造成感受野過小,覆蓋不了較大的目標,不利於分類。 5)模型結構:backbone為ResNet,使用FCN作為語義分割框架。使用了ResNet中不同stage的特征圖,是多尺度架構。GCN模塊用於產生低分變率的score map,並上采樣與更高分辨率的score map相加產生新的score map。最后經過上采樣,輸出預測結果。 6)實驗證明,GCN使用大卷積核不僅能提高分割准確性,設計的結構比堆疊小卷積核參數量更少。並且GCN主要是提高內部區域的精度,對邊界區域的精度影響較小。 |
![]() |
ExFuse | 1) 現代語義分割框架通常使用特征融合的方式提升性能,但由於高級特征和低級特征之間存在差距,直接融合的效果並不好。本文在底層特征中引入語義信息,在高層特征中引入細節信息,使后續融合更有效。 2) 一般而言,低級特征和高級特征相輔相成。假定存在一個極端實例。“純”低級特征只編碼低級概念比如點、線或者邊緣。直觀的講,高級特征與這些“純”的低級特征的融合意義不大,因為后者噪聲太多,無法提高高分辨率的語義信息。相反,如果低級特征包含更多的語義信息,比如,編碼相對明確的語義框再做融合會簡單不少——良好的分割結果可通多對齊高級特征圖和低級特征中的語義框獲得。相似的,“純”高級特征的空間信息也很少,不能充分利用低級特征,但是,通過嵌入額外的高分辨特征,高級特征從而有機會通過對齊最近的低級語義框實現自我優化。 3)以ResNet50或ResNeXt101為主網絡,延續GCN思想,另加入SS模塊進行深度語義監督,SEB模塊進行特征那個融合,DAP模塊優化最終結果。 4)測試了GCN不同level融合時的表現,由於低級和高級特征之間的差距,直接進行特征融合會使結果很快達到飽和,即使增加融合數量也無法大幅度提升算法效果。 |
![]() |
DFN | 1)現代語義分割存在類內不一致和類間不一致的問題。因此DFN網絡包括平滑網絡和邊界網絡兩部分。平滑網絡解決類內不一致,通過引入注意力機制平均池化選擇更具代表性的特征。邊界網絡通過深度語義邊界監督更好的區分雙邊特征。 2)從FCN、PSPNet、RefineNet、GCN等網絡學習到特征不具備類內與類間不一致的判別能力。 3)創新角度:從宏觀的角度看待語義分割任務,以往的文章都是從微觀角度看待語義分割,即對每個像素進行分類,這樣就會造成類內與類間不一致。本文將一致的語義標簽分配給事物的類別,而不是每個像素點。將每類像素作為一個整體,內在地考慮類內一致性和類間變化。因此這要求提取到的特征具有判別能力。 4) DFN有邊界網絡和平滑網絡。 邊界網絡主要思想:利用多監督,使網絡學習到的特征具有很強的類間不一致性,利用bottom-up,獲取更多的語義信息。優點:該模塊可以從低階網絡獲得邊界信息,從高階網絡獲得語義信息,再融合,避免缺失某類信息的情況出現。高階語義信息具有優化低階邊緣信息的作用。使用focal loss監督邊界網絡的輸出。 平滑網絡主要思想:不同尺度的感受野產生的特征具有不同程度的判別能力,導致結果不一致。用高階信息的一致性指導低階信息從而可以提升預測效果。現有方法大致可分為兩種類型,一是“Backbone style", 如PSPNet、DeepLab,將不同尺度的全局信息嵌入PSP模塊或ASPP模塊來提高網絡的一致性(consistency);二是“Encoder-Decoder style",如RefineNet、GCN,即利用不同階段固有的多尺度語境,但缺乏具有強一致性的全局語境。 |
![]() |
ENet | 1)實時執行像素級語義分割的能力在移動應用程序中至關重要。最近的DCNN網絡的缺點在於需要大量浮點運算,運行時間長,阻礙了語義分割的可用性。 2)提出ENet,專門針對需要低延遲操作的任務 3)ENet與現存模型相比,速度提升了18倍,FLOPs減少了75倍,參數減少了79倍,並能保證不錯的准確度 4)ENet算法架構:初始化模塊(a)並行執行步長為2的卷積和最大池化,完成對輸入圖片的下采樣,可有效減少參數和計算量 bottleneck(b):以殘差結構為主,可衍生出五種形態,每個卷積層后均接BN和PReLU。五種形態為:normal: 無maxpooling和Padding, conv為3x3卷積。 downsampling:有Maxpooling和Padding,第一個1x1卷積替換為步長為2的2x2卷積。dilated:為3x3卷積設置空洞率 asymmetric:將3x3卷積替換為1x5和5x1非對稱卷積 upsampling:將maxpooling替換為unpool 5)feature map resolution:對圖像的下采樣有兩個缺點:1.降低特征圖分辨率會丟失細節信息,比如邊界信息。 2.語義分割的輸出與輸入有着相同的分辨率,strong downsampling對應着strong upsampling,這增加了模型的大小和計算量。下采樣的好處在於可以獲取更大的感受野,獲取更多的上下文信息,便於分類。針對問題1,有兩個解決方案: 1)FCN的解決辦法是將編碼階段的特征圖與對應解碼階段相融合 2)SegNet的解決辦法是將編碼階段的maxpooling indices保留到解碼階段做上采樣使用 ENet采用的是SegNet的方法,可以減少內存需求,同時為了增加更好的上下文信息,使用dilated conv(空洞卷積)擴大感受域。 Early downsampling:早期處理高分辨率的輸入會耗費大量計算資源,ENet的初始化模型會大大減少輸入的大小。這是考慮到視覺信息在空間上是高度冗余的,可以壓縮成更有效的表達方式。 Decoder size:相比於SegNet中encoder和decoder的鏡像對稱,ENet的encoder和decoder並不對稱,而是由一個較大的encoder和一個較小的decoder組成,原因在於作者認為解碼器的作用在於還原尺寸,對模型結果只起到了微調作用,不必耗費大量參數。 Nonlinear operations:一般在卷積層之前做ReLU和BN會提升效果,但是在ENet上使用ReLU卻降低了精度,論文分析了ReLU沒有起作用的原因是因為網絡架構深度,在類似ResNet的模型上有上百層,而ENet層數很少,較少的層需要快速過濾信息,故最終使用PReLUs Information-preserving dimensionality changes Initial Block中,將Pooling操作和卷積操作並行,再concat到一起,這將推理階段時間加速了倍。同時做下采樣時,ENet使用2x2的卷積核,有效的改善了信息的流動和准確率 Factorizing filters:將nxn的卷積核拆成nx1和1xn,可以有效的減少參數量 Dilated convolutions:空洞卷積可以有效的提高感受野,有效的使用空洞卷積提高了4%的IoU,空洞卷積是交叉使用,而非連續使用. Regularization:因為數據集本身不大,很快會過擬合,使用L2效果不佳,最后選擇Spatial Dropout,效果相對好一點。 |
![]() ![]() |
LinkNet | 1)用於場景理解的像素級語義分割不僅需要准確度。還要保證高效性,才能應用在實時應用程序中。 2)現有算法雖然比較准確,但參數計算量比較龐大,速度很慢,本文提出的LinkNet無需增加大量參數量即可進行學習 3)本文最主要貢獻是直接將編碼器與解碼器對應部分連接起來從而提高准確率,一定程度上減少了處理時間,通過這種方式可以保留編碼部分中不同層丟失的信息,在進行重新學習丟失的信息時並未增加額外的參數與操作。 4)算法結構是:每個編碼器(基於ResNet18)與解碼器相連接,編碼器的輸出連接到對應解碼器的輸入,可更好的提升效率和精度。 |
![]() |
BiSeNet | 為了追求更好更快,設計了兩個路徑,Spatial Path和Context Path,並行執行,分別滿足語義分割的兩個需求,並且研究了兩個組件的融合,以及最后預測的優化,分別提出特征融合模塊,和注意力優化模塊。 算法包含三部分:空間分支、上下文分支和特征融合模塊。 空間分支:現有的語義分割任務中,一些方法用空洞卷積保留輸入圖像的分辨率去編碼足夠的空間信息,另一些方法通過使用金字塔池化模塊、ASPP或大的卷積核捕捉豐富的感受野,這些方法表明空間分辨率和感受野對達到較高的准確率是至關重要的。然而在實時語義分割中很難同時滿足兩種要求。本文提出了空間分支路徑,保留原始輸入圖像的空間尺寸並編碼豐富的空間信息。空間分支主要包含三層,每一層包括一個步長為2的3*3卷積、bn和relu。最終空間分支得到的特征圖是原圖的1/8。 上下文分支:為了兼顧感受野的大小和實時性兩個因素,上下文分支采用輕量級和全局平均池化去提供更大的感受野。輕量級模型可以快速的下采樣從而獲得更大的感受野,來編碼高級特征的上下文信息;然后,使用全局平均池化提供具有全局上下文信息的最大感受野。最后,結合全局池化上采樣輸出的特征圖和輕量級模型的特征圖。為了改善特征。作者提出了ARM。ARM使用全局平均池化去捕捉全局上下文並且計算一個注意力向量去引導特征學習。這個設計可以使特征圖更加精細。 特征融合模塊:兩個分支所提取的特征是不同level的。所以不能簡單把兩者相加。空間分支捕捉空間信息編碼更豐富的細節信息,上下文分支主要編碼了上下文信息。空間分支的特征是低級特征的,而上下文分支的特征是高級特征的,因此本文提出了專門的特征融合模塊。 |
![]() |
DFANet | 實時語義分割網絡,用於資源約束下的語義分割。網絡從單個輕量級網絡框架開始,分別通過子網和子階段級聯聚合判別特征。網絡級聚合可以看成是用后一個網絡優化前一個網絡生成的特征圖。階段級聚合的目標是不同網絡的層之間傳遞語義和空間信息,來解決深度增加造成的空間細節信息丟失問題。編碼器為三個改進的輕量級Xception網絡,由網絡級特征聚合和階段級特征聚合鏈接在一起。解碼器則是簡單地將特征圖按尺寸上采樣后融合在一起。作者認為在ImageNet上預訓練的網絡中全連接層具有強大的全局特征提取能力,因此保留了網絡的全連接層作為全連接注意力模塊的一部分,在其后接一個1x1卷積,並將結果和全連接層之前的特征層按通道相乘。解碼器將三個網絡輸出的深層特征融合,並用雙線性插值的方式上采樣至4倍尺寸,網絡的淺層特征融合,最后上采樣4倍至原圖尺寸。 | ![]() |
RedNet | 基於FCN的主流分割網絡一般分為兩種類型:編碼器-解碼器結構和空洞卷積。本文選擇了編解碼結構,構建了應用於室內的RGB-D分割網絡,該結構將殘差塊作為編碼器和解碼器路徑中的基本構件,提出了金字塔監督訓練方案以優化網絡。由於物體之間的顏色和結構的高度相似性以及室內環境中的照明不均勻,准確的室內語義分割是一個挑戰性問題。算法分為ResNet34和ResNet50兩種情況。 | ![]() |
RefineNet | 多路徑優化網絡,可明確利用下采樣過程中的所有可用信息,以使用殘差連接實現高分辨率預測,並引入鏈式殘差池化結構,有效地捕捉豐富地上下文信息。 反卷積不能恢復low-level特征圖,Deeplab系列使用空洞卷積來解決這一問題,但是空洞卷積仍有兩個缺點:對高分辨率特征圖進行卷積會消耗大量算力,同時也需要大的GPU內存。空洞卷積的特性決定了它會損失一些細節信息。RefineNet是一種多路徑的提煉網絡,利用多級抽象特征進行高分辨率的語義分割。級聯的RefineNet可以進行端到端訓練,使用了殘差結構和跳躍連接。並提出了鏈式殘差池化模塊。 |
![]() ![]() |
Light-weight RefineNet | 將RefineNet改編為更加緊湊地架構,使其適用於需要在高分辨率輸入上實現實時性能的任務。 將RefineNet中的3x3卷積替換為1x1卷積 |
![]() |
RDFNet | 在使用RGB-D數據的多類室內語義分割中,已經表明將深度特征合並到RGB特征中有助於提高分割精度。但是先前的研究尚未充分利用多模式特征融合的潛力,RDFNet網絡通過包含多模式特征融合模塊和多級特征優化模塊,有效地捕獲了多級RGB-D特征。特征融合模塊利用殘差結構學習RGB和深度特征及其結合,以充分利用其互補特征。特征細化塊從多個級別學習融合特征的組合,以實現高分辨率預測。 重新設計了融合模塊,更好的針對RGB和深度圖,后期沿用RefineNet中的Refine模塊進行后端優化。 |
![]() |