語義分割網(wǎng)絡(luò)經(jīng)典:unet
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
作者:晟 沚?
編輯:趙一帆
目前分割主要存在問題
分割網(wǎng)絡(luò)中的池化操作在減少feature的空間分辨率的同時(shí)增加了模型感受野,這也是模型應(yīng)對小型平移具有魯棒性的根本原因。但是連續(xù)的下采樣得到的feature map 就會(huì)丟失一些low-level中關(guān)鍵信息(例如邊沿,邊界等)。這就讓識(shí)別和準(zhǔn)確定位產(chǎn)生了矛盾。如果網(wǎng)絡(luò)不采取任何池化操作,這在目標(biāo)邊界定位上效果較好,但是識(shí)別性能差。?
為了解決這個(gè)問題,unet采用多個(gè)skip-connection將底層的feature和高層的feature concat,unet結(jié)構(gòu)如下圖。

1
文章主要觀點(diǎn)
?unet建立在FCN的網(wǎng)絡(luò)架構(gòu)上,作者在網(wǎng)絡(luò)框架上改進(jìn),使其能夠使用很少的訓(xùn)練圖像就得到很精確的分割結(jié)果。
添加連續(xù)upsample階段,并且channel維度增大,在decoder部分concat進(jìn)入更多的原圖像紋理的信息。
unet沒有FC層,卷積層的數(shù)量大約在20個(gè)左右,4次下采樣,4次上采樣。輸入圖像大于輸出圖像,因?yàn)樵诒菊撐闹?為了預(yù)測輸入圖像的邊緣部分,對輸入圖像做了鏡像操作,如下圖所示。

細(xì)胞分割的難點(diǎn)是將相同類別且互相接觸的細(xì)胞分開,作者提出weighted loss,讓相互接觸的兩個(gè)細(xì)胞之間的background標(biāo)簽有更高的權(quán)重,其中weight map由下面公式計(jì)算得到:


2
訓(xùn)練過程
框架是Caffe,使用momentum為0.99的SGD,損失函數(shù)為交叉熵,訓(xùn)練輸入圖片與它們對應(yīng)的groundtruth(輸入圖片和最后的圖片的尺寸不一樣)。數(shù)據(jù)增強(qiáng)方面采用彈性形變的方式增加數(shù)據(jù),可以讓模型學(xué)習(xí)得到形變不變性。這對醫(yī)學(xué)圖像分割是非常重要的,因?yàn)榻M織的形變是非常常見的情況,并且計(jì)算機(jī)可以很有效的模擬真實(shí)的形變。
其中交叉熵?fù)p失定義如下:

實(shí)驗(yàn)結(jié)果
2.1
unet在生物醫(yī)學(xué)圖像分割當(dāng)中的應(yīng)用結(jié)果 如下表,在沒有任何預(yù)處理或后處理的情況下實(shí)現(xiàn)了0.0003529的warping error和0.0382的rand-error。

unet在細(xì)胞分割當(dāng)中的應(yīng)用, 實(shí)現(xiàn)了92%的平均IOU,這比83%的次優(yōu)算法要高很多

代碼地址
2.2
網(wǎng)絡(luò)結(jié)構(gòu)部分的代碼詳見:
https://github.com/angelamin/Segmentation/blob/master/models/unet_vgg19bn.py
歡迎star~
交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會(huì)逐漸細(xì)分),請掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會(huì)請出群,謝謝理解~
