這是專欄《影象分割模型》的第9篇文章。在這裡,我們將共同探索解決分割問題的主流網路結構和設計思想。

儘管許多人都知道RNN在處理上下文上多優於CNN,但如何將RNN用於分割任務還是值得討論一下。本文我們就來聊聊用BRNN做分割的ReSeg。

作者 | 孫叔橋

編輯 | 言有三

本期論文:《ReSeg: A Recurrent Neural Network-based Model for Semantic Segmentation》

1 簡單說說BRNN

(1) 什麼是迴圈神經網路

不同於卷積神經網路(CNN,Convolutional Neural Network)通常以圖塊(patches)為輸入,迴圈神經網路(RNN,Recurrent Neural Network)的輸入是序列形式的。即使在處理影象時,通常也需要對影象矩陣進行展開(flatten)操作,再應用RNN。輸入序列資料後,RNN在序列的演進方向遞迴所有節點,並將其定向鏈式連線。

下圖是一個簡單的RNN單元示意圖:

【影象分割模型】用BRNN做分割—ReSeg

(2) 為什麼要用RNN

儘管CNN在處理多維資料(如影象)時的表現相當不錯,但是其需要依賴人工指定的核函式來完成計算,因此在處理上下文資訊的時候受到了限制。相反,RNN本身拓撲結構的設計,使得其能夠利用內部記憶處理任意時序的輸入序列,從而在長短時間間隔序列的處理上比CNN更具優勢。

(3) 什麼是BRNN

BRNN是雙向迴圈神經網路(Bi-directional RNN)的縮寫,屬於迴圈神經網路的一種。基礎RNN只能依據之前時刻的時序資訊來預測下一時刻的輸出,但是有些問題中需要聯絡上之前和未來狀態,共同進行預測。BRNN由兩個方向不同的RNN堆疊而成,同時處理過去和未來資訊。下圖是BRNN的示意圖:

【影象分割模型】用BRNN做分割—ReSeg

2 ReSeg:用BRNN做分割

ReSeg是基於影象分割模型ReNet提出的。因此,我們首先來看一下ReNet。下圖是ReNet的運算示意圖:

【影象分割模型】用BRNN做分割—ReSeg

如圖所示,ReNet由兩層順序排列的RNN構成。在給定輸入影象(或前層)特徵後,ReNet對展開結果分別按列、按行掃描。每個掃描過程由兩個相反方向的RNN運算單元實現。具體公式如下:

【影象分割模型】用BRNN做分割—ReSeg

其中f代表RNN,I為影象子塊行數(影象被分割成IxJ塊),o是結果,z為之前的狀態,p為子圖塊內的畫素點。

給定輸入影象後,ReSeg首先用預訓練好的VGG-16提取影象的特徵,隨後開始應用基於SeNet的網路結構進行分割任務。具體網路結構如下圖所示:

【影象分割模型】用BRNN做分割—ReSeg

從網路結構可以看出,ReSeg應用了3次串聯的完整ReNet模組,空間解析度在這個過程中逐漸減小。這麼做的目的是,將VGG-16提取的特徵進行進一步的處理,從而得到對輸入影象更復雜的特徵描述。

特徵提取結束後,特徵圖對輸入影象的空間解析度下降為1/8,因此需要恢復空間解析度以得到稠密的分割結果。因此,在所有ReNet模組結束後,ReSeg應用了若干層由反捲積組成的上取樣層,將特徵圖的空間解析度恢復成原始輸入影象的空間解析度。

最後,簡單應用softmax實現分割。

3 實驗結果

ReSeg的實驗用到了三個資料庫,分別是Weizmann Horses、Oxford Flowers和CamVid。其中,前兩個資料庫比CamVid要容易一些,因此這裡只討論CamVid下ReSeg的表現,感興趣的讀者可以移步原文看ReSeg在其他資料庫下的實驗結果。

下表是ReSeg在CamVid資料庫下對不同類別的分割結果以及與其他演算法的效果比較。

【影象分割模型】用BRNN做分割—ReSeg

下圖是ReSeg在CamVid下的分割結果圖:

【影象分割模型】用BRNN做分割—ReSeg

從左到右:輸入、真值、ReSeg結果、帶類別平衡的ReSeg結果

總結

儘管ReNet和ReSeg的提出時間較早,分割效果相比較state-of-the-art演算法也略有不足。但是,其提供的模型設計與卷積操作上的思路是非常新穎的,同時也巧妙地用GRU解決了RNN梯度消失問題,因此對於分割任務的網路設計具有一定的啟發性作用。

下期我們繼續RNN的討論,看看如何在ReNet的基礎上處理長程上下文資訊下的分割問題。下回見!

本專欄文章:

第一期:【影象分割模型】從FCN說起

第二期:【影象分割模型】編解碼結構SegNet

第三期:【影象分割模型】感受野與解析度的控制術—空洞卷積

第四期:【影象分割模型】快速道路場景分割—ENet

第五期:【影象分割模型】以RNN形式做CRF後處理—CRFasRNN

第六期:【影象分割模型】多感受野的金字塔結構—PSPNet

第七期:【影象分割模型】全域性特徵與區域性特徵的交響曲—ParseNet

第八期:【影象分割模型】多解析度特徵融合—RefineNet

第九期:【影象分割模型】用BRNN做分割—ReSeg

第十期:【影象分割模型】BRNN下的RGB-D分割—LSTM-CF

第十一期:【影象分割模型】例項分割模型—DeepMask

第十二期:【影象分割模型】全景分割是什麼?