matlab 图像语义分割,笔记︱图像语义分割(FCN、CRF、MRF)、论文延伸(Pixel Objectness、)...
圖像語義分割的意思就是機器自動分割并識別出圖像中的內(nèi)容,我的理解是摳圖…
之前在Faster R-CNN中借用了RPN(region proposal network)選擇候選框,但是僅僅是候選框,那么我想提取候選框里面的內(nèi)容,就是圖像語義分割了。
簡單的理解就是,圖像的“分詞技術(shù)”。
參考文獻(xiàn):
1、知乎,困獸,關(guān)于圖像語義分割的總結(jié)和感悟
2、微信公眾號,沈MM的小喇叭,十分鐘看懂圖像語義分割技術(shù)
.
.
一、FCN全卷積:Fully Convolutional Networks
一些簡單的名詞,下采樣=卷積+池化(像素縮小),
上采樣=反卷積(像素放大)Caffe和Kera里叫Deconvolution,而tensorflow里叫conv_transpose。CS231n這門課中說,叫conv_transpose更為合適。
卷積與反卷積過程:
池化與上池化:
池化層作用:池化操作能夠減少計算量,同時也能防止計算結(jié)果過擬合
上池化作用:上池化的實現(xiàn)主要在于池化時記住輸出值的位置,在上池化時再將這個值填回原來的位置,其他位置填0即OK。
1、反卷積
那么反卷積是一種認(rèn)識”卷積“是什么的好辦法。反卷積可以在任何卷積層上進(jìn)行。那么得到的圖像就是一些縮略圖形式。
每一種反卷積的樣子:
可以發(fā)現(xiàn)卷積程度越高,32x圖像越模糊,8x跟ground truth還是挺接近的。這里就是感受野(receptive field),8x感受野較小,適合感受細(xì)節(jié);32x感受野較大,適合感受宏觀。
.
.
2、“帶hole”的卷積——Dilated Convolutions
簡單的卷積過程有一些問題:精度問題,對細(xì)節(jié)不敏感,以及像素與像素之間的關(guān)系,忽略空間的一致性等問題。那么新卷積方式hole卷積,用hole卷積核取代池化。
Dilated Convolutions:沒有了池化感受野就不會變大,“疏松的卷積核”來處理卷積,可以達(dá)到在不增加計算量的情況下增加感受域,彌補不進(jìn)行池化處理后的精度問題。
操作方式:人為加大了卷積核內(nèi)部元素之間的距離:
這是水平X軸方向上的擴展,在Y軸上也會有同樣的擴展,感受域在沒有增加計算(相對于池化操作后)的情況下增大了,并且保留了足夠多的細(xì)節(jié)信息,對圖像還原后的精度有明顯的提升。
.
.
.
3、DenseCRF Conditional Random Field:全連接條件隨機場(DenseCRF)
每個像素點作為節(jié)點,像素與像素間的關(guān)系作為邊,即構(gòu)成了一個條件隨機場。
其中:yi:卷積后的值;i:像素;xi:類別標(biāo)簽
條件隨機場符合吉布斯分布。
在全鏈接的 CRF 模型中,有一個對應(yīng)的能量函數(shù):
那么E(x)由兩個部分組成,可以簡單理解為:
E(x)=一元函數(shù)+二元函數(shù)
一元函數(shù):來自于前端FCN的輸出
二元函數(shù):是描述像素點與像素點之間的關(guān)系,鼓勵相似像素分配相同的標(biāo)簽,而相差較大的像素分配不同標(biāo)簽,而這個“距離”的定義與顏色值和實際相對距離有關(guān)。所以這樣CRF能夠使圖片盡量在邊界處分割。
全連接條件隨機場的不同就在于,二元勢函數(shù)描述的是每一個像素與其他所有像素的關(guān)系,所以叫“全連接”。
通過對這個能量函數(shù)優(yōu)化求解,把明顯不符合事實識別判斷剔除,替換成合理的解釋,得到對FCN的圖像語義預(yù)測結(jié)果的優(yōu)化,生成最終的語義分割結(jié)果。
4、馬爾科夫隨機場(MRF)
在Deep Parsing Network中使用的是MRF,它的公式具體的定義和CRF類似,只不過作者對二元勢函數(shù)進(jìn)行了修改:
其中,作者加入λk為label context,因為只是定義了兩個像素同時出現(xiàn)的頻率,而λk可以對一些情況進(jìn)行懲罰。
比如,人可能在桌子旁邊,但是在桌子下面的可能性就更小一些。所以這個量可以學(xué)習(xí)不同情況出現(xiàn)的概率。
而原來的距離d(i,j)只定義了兩個像素間的關(guān)系,作者在這兒加入了個triple penalty,即還引入了j附近的z,這樣描述三方關(guān)系便于得到更充足的局部上下文。
5、高斯條件隨機場(G-CRF)
這個結(jié)構(gòu)使用CNN分別來學(xué)習(xí)一元勢函數(shù)和二元勢函數(shù)。
.
.
二、一些成型的分割結(jié)構(gòu)
知乎,困獸,關(guān)于圖像語義分割的總結(jié)和感悟在文中提到通用框架:
前端使用FCN進(jìn)行特征粗提取,后端使用CRF/MRF優(yōu)化前端的輸出,最后得到分割圖。
1、“Normalized cut”的圖劃分方法
它的思想主要是通過像素和像素之間的關(guān)系權(quán)重來綜合考慮,根據(jù)給出的閾值,將圖像一分為二。在實際運用中,每運行一次N-cut,只能切割一次圖片,為了分割出圖像上的多個物體,需要多次運行,下圖示例了對原圖a進(jìn)行7次N-cut后,每次分割出的結(jié)果。
2、Grab Cut
增加了人機交互,在分割過程中,需要人工干預(yù)參與完成。需要人工選擇主體候選框,然后將中部作為主體參考,然后剔除和主體差異較大的部分,留下結(jié)果。
此技術(shù)中,摳出來的部分叫“前景”,剔除的部分叫“背景”。缺點也很明顯,首先,它同N-cut一樣也只能做二類語義分割,說人話就是一次只能分割一類,非黑即白,多個目標(biāo)圖像就要多次運算。其次,它需要人工干預(yù),這個弱點在將來批量化處理和智能時代簡直就是死穴。
3、segNet
4、DeconvNet
這樣的對稱結(jié)構(gòu)有種自編碼器的感覺在里面,先編碼再解碼。這樣的結(jié)構(gòu)主要使用了反卷積和上池化。
5、DeepLab
現(xiàn)在的很多改進(jìn)是基于這個網(wǎng)絡(luò)結(jié)構(gòu)的進(jìn)行的。
為了保證之后輸出的尺寸不至于太小,FCN的作者在第一層直接對原圖加了100的padding,可想而知,這會引入噪聲。
DeepLab非常優(yōu)雅的做法:將pooling的stride改為1,再加上 1 padding。這樣池化后的圖片尺寸并未減小,并且依然保留了池化整合特征的特性。
因為池化層變了,后面的卷積的感受野也對應(yīng)的改變了,這樣也不能進(jìn)行fine-tune了。所以,Deeplab提出了一種新的卷積,帶孔的卷積:Atrous Convolution.
.
延伸一:Pixel Objectness —— 更好的自動摳圖、圖像檢索、圖像重定向技術(shù)
論文《Pixel Objectness》提出了一個用于前景對象分割的端到端學(xué)習(xí)框架。給定一個單一的新穎圖像,我們的方法為所有“像對象”區(qū)域 - 即使對于在訓(xùn)練期間從未見過的對象類別,產(chǎn)生像素級掩碼。我們將任務(wù)制定為使用深完全卷積網(wǎng)絡(luò)實現(xiàn)的將前景/背景標(biāo)簽分配給每個像素的結(jié)構(gòu)化預(yù)測問題。
我們的想法的關(guān)鍵是采用訓(xùn)練與圖像級對象類別示例,以及采用相對較少的注釋的邊界級圖像合。我們的方法大大改善了ImageNet和MIT數(shù)據(jù)集上的前景分割的最先進(jìn)的水平 - 在某些情況下,有19%的絕對改進(jìn)。此外,在超過100萬的圖像,我們顯示它很好地歸納到用于訓(xùn)練的前景地圖中看不見的對象類別。
最后,我們演示了我們的方法如何有利于圖像檢索和圖像重定向,這兩種方法在給定的高質(zhì)量前景圖的領(lǐng)域?qū)泻玫男Ч?/p>
總結(jié)
以上是生活随笔為你收集整理的matlab 图像语义分割,笔记︱图像语义分割(FCN、CRF、MRF)、论文延伸(Pixel Objectness、)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二叉树的相关性质及其前中后层序遍历实现
- 下一篇: arma预测matlab讲解,MATLA