常用语义分割小样本模型
常用語義分割小樣本模型
1.介紹
深度卷積神經網絡在圖像分類、目標檢測、語義分割等許多視覺理解任務上都取得了重大突破。一個關鍵的原因是大規模數據集的可用性,比如ImageNet,這些數據集支持對深度模型的培訓。然而,數據標記是昂貴的,特別是對于密集的預測任務,如語義分割和實例分割。此外,在對模型進行訓練之后,很難將模型應用于新類的預測。與機器學習算法不同的是,人類只看到幾個例子就能很容易地從圖像中分割出一個新概念。人類和機器學習算法之間的差距激發了對小樣本學習的研究,其目的是學習一個模型,可以很好地推廣到具有稀缺標記的訓練數據的新類別。
語義分割:給圖像的每個像素點標注類別。通常認為這個類別與鄰近像素類別有關,同時也和這個像素點歸屬的整體類別有關。利用圖像分類的網絡結構,可以利用不同層次的特征向量來滿足判定需求?,F有算法的主要區別是如何提高這些向量的分辨率,以及如何組合這些向量。
幾種結構
·
全卷積網絡FCN:上采樣提高分割精度,不同特征向量相加。[3]
·
UNET:拼接特征向量;編碼-解碼結構;采用彈性形變的方式,進行數據增廣;用邊界加權的損失函數分離接觸的細胞。[4]
·
SegNet:記錄池化的位置,反池化時恢復。[3]
·
PSPNet:多尺度池化特征向量,上采樣后拼接[3]
·
Deeplab:池化跨度為1,然后接帶孔卷積。
·
ICNet:多分辨圖像輸入,綜合不同網絡生成結果。
小樣本分割的終極目的是利用支持集中的K個訓練圖像對來“學習”一個模型,使得該模型能對訓練圖像對中出現的類別的新樣本能夠實現分割。
- 相關工作
2.1 元學習
元學習解決的是學習如何學習的問題。元學習的思想是學習「學習(訓練)」過程。主要有基于記憶Memory的方法、基于預測梯度的方法、利用Attention注意力機制的方法、借鑒LSTM的方法、面向RL的Meta
Learning方法、利用WaveNet的方法、預測Loss的方法等等等。
2.2 小樣本學習
小樣本學習是元學習在監督學習領域的應用,Few-shot
Learning
模型大致可分為三類:Mode Based,Metric Based 和 Optimization Based。
其中 Model Based 方法旨在通過模型結構的設計快速在少量樣本上更新參數,直接建立輸入 x 和預測值 P 的映射函數;Metric
Based方法通過度量 batch 集中的樣本和
support 集中樣本的距離,借助最近鄰的思想完成分類;Optimization Based方法認為普通的梯度下降方法難以在 few-shot 場景下擬合,因此通過調整優化方法來完成小樣本分類的任務。
2.3 語義分割
語義分割就是按照“語義”給圖像上目標類別中的每一點打一個標簽,使得不同種類的東西在圖像上被區分開來??梢岳斫獬上袼丶墑e的分類任務。輸入:(HW3)正常的圖片;輸出:( HWclass )可以看為圖片上每個點的one-hot表示,每一個channel對應一個class,對每一個pixel位置,都有class數目個channel,每個channel的值對應那個像素屬于該class的預測概率。
FCN是語義分割的開山之作,主要特色有兩點:全連接層換成卷積層,不同尺度的信息融合FCN-8S,16s,32s。
U-net用于解決小樣本的簡單問題分割,比如醫療影片的分割。它遵循的基本原理與FCN一樣:1.Encoder-Decoder結構:前半部分為多層卷積池化,不斷擴大感受野,用于提取特征。后半部分上采樣回復圖片尺寸。2.更豐富的信息融合:如灰色剪頭,更多的前后層之間的信息融合。這里是把前面層的輸出和后面層concat(串聯)到一起,區別于FCN的逐元素加和。不同Feature map串聯到一起后,后面接卷積層,可以讓卷積核在channel上自己做出選擇。注意的是,在串聯之前,需要把前層的feature map crop到和后層一樣的大小。
SegNet和U-net在結構上其實大同小異,都是編碼-解碼結果。區別在于,SegNet沒有直接融合不同尺度的層的信息,為了解決為止信息丟失的問題,SegNet使用了帶有坐標(index)的池化。在Max pooling時,選擇最大像素的同時,記錄下該像素在Feature map的位置(左圖)。在反池化的時候,根據記錄的坐標,把最大值復原到原來對應的位置,其他的位置補零(右圖)。后面的卷積可以把0的元素給填上。這樣一來,就解決了由于多次池化造成的位置信息的丟失。
Deeplab V1不同于之前的思路,他的特色有兩點:1.由于Pooling-Upsample會丟失位置信息而且多層上下采樣開銷較大,把控制感受野大小的方法化成:帶孔卷積(Atrous conv)2.加入CRF(條件隨機場),利用像素之間的關連信息:相鄰的像素,或者顏色相近的像素有更大的可能屬于同一個class。
PSPnet:前面的不同level的信息融合都是融合淺層和后層的Feature Map,因為后層的感受野大,語義特征強,淺層的感受野小,局部特征明顯且位置信息豐富。
PSPnet則使用了空間金字塔池化,得到一組感受野大小不同的feature map,將這些感受野不同的map concat到一起,完成多層次的語義特征融合。
Deeplab V2在v1的基礎上做出了改進,引入了ASPP(Atrous Spatial Pyramid Pooling)的結構,如上圖所示。我們注意到,Deeplab v1使用帶孔卷積擴大感受野之后,沒有融合不同層之間的信息。ASPP層就是為了融合不同級別的語義信息:選擇不同擴張率的帶孔卷積去處理Feature Map,由于感受野不同,得到的信息的Level也就不同,ASPP層把這些不同層級的feature map concat到一起,進行信息融合。
Deeplab v3在原有基礎上的改動是:1.改進了ASPP模塊2.引入Resnet
Block 3.丟棄CRF。新的ASPP模塊:1.加入了Batch Norm 2.加入特征的全局平均池化(在擴張率很大的情況下,有效權重會變小)。全局平均池化的加入是對全局特征的強調、加強。在舊的ASPP模塊中:我們以為在擴張率足夠大的時候,感受野足夠大,所以獲得的特征傾向于全局特征。但實際上,擴張率過大的情況下,Atrous conv出現了“權值退化”的問題,感受野過大,都已近擴展到了圖像外面,大多數的權重都和圖像外圍的zero padding進行了點乘,這樣并沒有獲取圖像中的信息。有效的權值個數很少,往往就是1。于是我們加了全局平均池化,強行利用全局信息。
Deeplab v3+可以看成是把Deeplab v3作為編碼器(上半部分)。后面再進行解碼,并且在解碼的過程中在此運用了不同層級特征的融合。此外,在encoder部分加入了Xception的結構減少了參數量,提高運行速遞。
3.方法總結分類
3.1 OSLSM
motivition就是學習一個one-shot的分割模型,首次提出雙分支的網絡用于few-shot segmentation,條件分支用VGG提取特征,生成權重(w,b),分割分支用FCN-32s結構對query image 進行特征提取,將其與條件分支所得參數進行點乘再通過σ函數得到分割結果。得到一個分割圖,上采樣到圖像大小,利用某個閾值產生分割的二值圖,
輸出的時候,為了是參數量與分割分支的特征圖的通道數相對應,采用weight hashing的策略,將輸出的1000維向量映射為4097維(w:4096, b:1),這種映射機制是建模成固定權重參數的全連接層來實現的。
3.2 co-FCN
文章的主要比較驚奇的一點是僅對原始圖像做一些稀疏的標注(目標位置上點幾個關鍵點,背景位置上點幾個關鍵點)就卻能夠實現對目標的像素級的分割。網絡結構和BMVC那篇paper設置類似,也是采用雙分支結構,將標注信息與原始圖像concate后輸入conditioning branch得到輸入圖像的embedding。利用segmentation branch對qurey image進行特征提取,并將結果與conditioning branch得到的embedding進行concate,再進行像素級分割。
3.3 AMP-2 motivation:如何得到一個更好的原型。
方法:在task流中,不斷地更新每個類別地原型。
3.4 SG-One
訓練任務的流程:
網絡包含一個主干網絡Stem(代表的是VGG-16的前3個Block)和兩個分支:Guidance Branch 和 Segmentation Branch,需要注意的是兩個分支共用了三個卷積塊
,個人的理解是,如果兩個分支完全獨立,那么Guidance Branch產生的指導就會一成不變;這就失去了意義,作者在論文最后的消融實驗中做了相關的分析與實驗;與Segmentation Branch 產生交互后就可以在優化分割損失的同時對引導的特征圖進行優化,使之匹配相應的真實mask. 網絡在訓練的時候加載了在ILSVRC數據集上預訓練的權重。
測試任務的流程:
主要的創新點:
a.提出使用masked average pooling 來提取
support set 的中目標的表征向量;
b.采用余弦相似度來度量 query set 的表征向量與support
set 的表征向量之間距離,用于指導query set的分割;
為什么masked average pooling會有用?
解釋如下:全卷積網絡(FCN)能夠保留輸入圖像的中每個像素相對位置;所以通過將二值mask與提取到的特征圖相乘就可以完全保留目標的特征信息,排除掉背景等無關類別的特征。
3.5 PANet
創新點:
利用了prototypes上的度量學習,無參數
提出prototypes對齊正則化,充分利用support的知識
對于帶有弱注釋的少樣本直接使用
用同一個backbone來提取support和query的深度特征,然后使用masked average pooling從support的特征將不同的前景物體和背景嵌入不同的prototypes中,每個prototype表示對應的類別,這樣query圖像的每個的像素通過參考離它的嵌入表達最近的特定類的prototype來標記,得到query的預測mask后;訓練的時候,得到mask后,再將剛才提取的query feature和mask作為新的“support set”,將之前的support set作為新的“query set”,再用“support set”對“query set”做一波預測,然后再算一個loss
prototype緊湊且魯棒的對每個語義類別進行表達;mask標記那塊就是無參度量學習,通過和嵌入空間的逐像素匹配來執行分割
執行一個prototype對齊正則化,用query和他的mask建立新的support,然后用這個來預測原始的support set的分割,實驗證明能鼓勵query的prototype對齊他們的support的prototype,只有訓練的時候這么做(反向再推一次,看看是否真的相似)
3.6 CANet
主要貢獻:
開發了一種新穎的雙分支密集比較模塊,該模塊有效地利用來自CNN的多級特征表示來進行密集的特征比較。
提出迭代優化模塊,以迭代方式改進預測結果。迭代細化的能力可以推廣到具有少量鏡頭學習的看不見的類,以生成細粒度圖。
采用注意機制有效地融合來自k-shot設置中的多個支持示例的信息,其優于單次結果的不可學習的融合方法。
證明給定的支持集具有弱注釋,即邊界框,我們的模型仍然可以獲得與昂貴的像素級注釋支持集的結果相當的性能,這進一步減少了新類別對于少數鏡頭分割的標記工作量。
3.7 PGNet
在CANet基礎上加了一個圖注意力機制
3.8 FWB
兩個主要創新點:
Feature Weighting
支持集前后景差異標準化向量:
最大化特征差異:
最終得到的關聯向量:
標準化處理后的余弦相似性:
Feature Boosting
4.數據集介紹
PASCAL-5i
MS COCO-20i
FSS-100
5.評測指標介紹
Mean-IoU:
IoU就是每一個類別的交集與并集之比,而mIoU則是所有類別的平均IoU。
FB-IoU:
前景和背景一起的準確率
6.結果陳列
總結
以上是生活随笔為你收集整理的常用语义分割小样本模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gamma矫正技术
- 下一篇: 长篇自动驾驶技术综述论文(上)