【图像分割模型】用BRNN做分割—ReSeg
這是專(zhuān)欄《圖像分割模型》的第9篇文章。在這里,我們將共同探索解決分割問(wèn)題的主流網(wǎng)絡(luò)結(jié)構(gòu)和設(shè)計(jì)思想。
盡管許多人都知道RNN在處理上下文上多優(yōu)于CNN,但如何將RNN用于分割任務(wù)還是值得討論一下。本文我們就來(lái)聊聊用BRNN做分割的ReSeg。
作者 | 孫叔橋
編輯 | 言有三
本期論文:《ReSeg: A Recurrent Neural Network-based Model for Semantic Segmentation》
?
1 簡(jiǎn)單說(shuō)說(shuō)BRNN
(1) 什么是循環(huán)神經(jīng)網(wǎng)絡(luò)
不同于卷積神經(jīng)網(wǎng)絡(luò)(CNN,Convolutional Neural Network)通常以圖塊(patches)為輸入,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,Recurrent Neural Network)的輸入是序列形式的。即使在處理圖像時(shí),通常也需要對(duì)圖像矩陣進(jìn)行展開(kāi)(flatten)操作,再應(yīng)用RNN。輸入序列數(shù)據(jù)后,RNN在序列的演進(jìn)方向遞歸所有節(jié)點(diǎn),并將其定向鏈?zhǔn)竭B接。
下圖是一個(gè)簡(jiǎn)單的RNN單元示意圖:
(2) 為什么要用RNN
盡管CNN在處理多維數(shù)據(jù)(如圖像)時(shí)的表現(xiàn)相當(dāng)不錯(cuò),但是其需要依賴(lài)人工指定的核函數(shù)來(lái)完成計(jì)算,因此在處理上下文信息的時(shí)候受到了限制。相反,RNN本身拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì),使得其能夠利用內(nèi)部記憶處理任意時(shí)序的輸入序列,從而在長(zhǎng)短時(shí)間間隔序列的處理上比CNN更具優(yōu)勢(shì)。
(3) 什么是BRNN
BRNN是雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bi-directional RNN)的縮寫(xiě),屬于循環(huán)神經(jīng)網(wǎng)絡(luò)的一種。基礎(chǔ)RNN只能依據(jù)之前時(shí)刻的時(shí)序信息來(lái)預(yù)測(cè)下一時(shí)刻的輸出,但是有些問(wèn)題中需要聯(lián)系上之前和未來(lái)狀態(tài),共同進(jìn)行預(yù)測(cè)。BRNN由兩個(gè)方向不同的RNN堆疊而成,同時(shí)處理過(guò)去和未來(lái)信息。下圖是BRNN的示意圖:
?
2 ReSeg:用BRNN做分割
ReSeg是基于圖像分割模型ReNet提出的。因此,我們首先來(lái)看一下ReNet。下圖是ReNet的運(yùn)算示意圖:
如圖所示,ReNet由兩層順序排列的RNN構(gòu)成。在給定輸入圖像(或前層)特征后,ReNet對(duì)展開(kāi)結(jié)果分別按列、按行掃描。每個(gè)掃描過(guò)程由兩個(gè)相反方向的RNN運(yùn)算單元實(shí)現(xiàn)。具體公式如下:
其中f代表RNN,I為圖像子塊行數(shù)(圖像被分割成IxJ塊),o是結(jié)果,z為之前的狀態(tài),p為子圖塊內(nèi)的像素點(diǎn)。
給定輸入圖像后,ReSeg首先用預(yù)訓(xùn)練好的VGG-16提取圖像的特征,隨后開(kāi)始應(yīng)用基于SeNet的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行分割任務(wù)。具體網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示:
從網(wǎng)絡(luò)結(jié)構(gòu)可以看出,ReSeg應(yīng)用了3次串聯(lián)的完整ReNet模塊,空間分辨率在這個(gè)過(guò)程中逐漸減小。這么做的目的是,將VGG-16提取的特征進(jìn)行進(jìn)一步的處理,從而得到對(duì)輸入圖像更復(fù)雜的特征描述。
特征提取結(jié)束后,特征圖對(duì)輸入圖像的空間分辨率下降為1/8,因此需要恢復(fù)空間分辨率以得到稠密的分割結(jié)果。因此,在所有ReNet模塊結(jié)束后,ReSeg應(yīng)用了若干層由反卷積組成的上采樣層,將特征圖的空間分辨率恢復(fù)成原始輸入圖像的空間分辨率。
最后,簡(jiǎn)單應(yīng)用softmax實(shí)現(xiàn)分割。
?
3 實(shí)驗(yàn)結(jié)果
ReSeg的實(shí)驗(yàn)用到了三個(gè)數(shù)據(jù)庫(kù),分別是Weizmann Horses、Oxford Flowers和CamVid。其中,前兩個(gè)數(shù)據(jù)庫(kù)比CamVid要容易一些,因此這里只討論CamVid下ReSeg的表現(xiàn),感興趣的讀者可以移步原文看ReSeg在其他數(shù)據(jù)庫(kù)下的實(shí)驗(yàn)結(jié)果。
下表是ReSeg在CamVid數(shù)據(jù)庫(kù)下對(duì)不同類(lèi)別的分割結(jié)果以及與其他算法的效果比較。
下圖是ReSeg在CamVid下的分割結(jié)果圖:
從左到右:輸入、真值、ReSeg結(jié)果、帶類(lèi)別平衡的ReSeg結(jié)果
?
總結(jié)
盡管ReNet和ReSeg的提出時(shí)間較早,分割效果相比較state-of-the-art算法也略有不足。但是,其提供的模型設(shè)計(jì)與卷積操作上的思路是非常新穎的,同時(shí)也巧妙地用GRU解決了RNN梯度消失問(wèn)題,因此對(duì)于分割任務(wù)的網(wǎng)絡(luò)設(shè)計(jì)具有一定的啟發(fā)性作用。
下期我們繼續(xù)RNN的討論,看看如何在ReNet的基礎(chǔ)上處理長(zhǎng)程上下文信息下的分割問(wèn)題。下回見(jiàn)!
本專(zhuān)欄文章:
第一期:【圖像分割模型】從FCN說(shuō)起
第二期:【圖像分割模型】編解碼結(jié)構(gòu)SegNet
第三期:【圖像分割模型】感受野與分辨率的控制術(shù)—空洞卷積
第四期:【圖像分割模型】快速道路場(chǎng)景分割—ENet
第五期:【圖像分割模型】以RNN形式做CRF后處理—CRFasRNN
第六期:【圖像分割模型】多感受野的金字塔結(jié)構(gòu)—PSPNet
第七期:【圖像分割模型】全局特征與局部特征的交響曲—ParseNet
第八期:【圖像分割模型】多分辨率特征融合—RefineNet
第九期:【圖像分割模型】用BRNN做分割—ReSeg
第十期:【圖像分割模型】BRNN下的RGB-D分割—LSTM-CF
第十一期:【圖像分割模型】實(shí)例分割模型—DeepMask
第十二期:【圖像分割模型】全景分割是什么?
感謝各位看官的耐心閱讀,不足之處希望多多指教。后續(xù)內(nèi)容將會(huì)不定期奉上,歡迎大家關(guān)注有三公眾號(hào) 有三AI!
?
總結(jié)
以上是生活随笔為你收集整理的【图像分割模型】用BRNN做分割—ReSeg的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【移动端DL框架】当前主流的移动端深度学
- 下一篇: 【图像分割模型】BRNN下的RGB-D分