SegNet論文閱讀

作 者: 心有寶寶人自圓

聲 明: 歡迎轉(zhuǎn)載本文中的圖片或文字庶溶,請(qǐng)說(shuō)明出處

寫(xiě)在前面

自從FCN提出以來(lái)克滴,越來(lái)越多的語(yǔ)義分割任務(wù)開(kāi)始采用采用全卷積網(wǎng)絡(luò)結(jié)構(gòu)算柳,隨著FCN結(jié)構(gòu)使用的增加旅掂,研究人員發(fā)先了其結(jié)構(gòu)天生的缺陷極大的限制了分割的準(zhǔn)確度:CNNs在high-level (large scale) tasks中取得了十分優(yōu)異的成績(jī)搁骑,這得益于局部空間不變性(主要是池化層增大了感受野悲龟,也丟棄了部分細(xì)節(jié)信息)使得網(wǎng)絡(luò)能夠?qū)W習(xí)到層次化的抽象信息屋讶,但這卻恰恰不利于low-level (small scale) tasks

許多研究對(duì)FCN的網(wǎng)絡(luò)架構(gòu)進(jìn)行優(yōu)化:其中一類(lèi)的目的是減少細(xì)節(jié)信息的丟失,因此優(yōu)化大都是針對(duì)Encoder進(jìn)行的须教;還有另外一類(lèi)研究目的是減少將Encoder輸出結(jié)果映射(上采樣)到原始輸入空間的損失皿渗,減少FCN中簡(jiǎn)單的雙線性插值造成的信息損失,因此設(shè)計(jì)了可end-to-end訓(xùn)練的Decoder轻腺。FCN中的雙線性插值可以使用可訓(xùn)練的卷積層進(jìn)行替代乐疆,但為了彌補(bǔ)下采樣帶來(lái)的損失,會(huì)將Decoder中某層上采樣的結(jié)果與Encoder在同層的結(jié)果相加贬养,這又樣帶來(lái)了額外的存儲(chǔ)空間消耗挤土。

SegNet的目標(biāo)就是設(shè)計(jì)一種快速、存儲(chǔ)空間較小的適應(yīng)用于實(shí)時(shí)應(yīng)用的深度網(wǎng)絡(luò)模型煤蚌。

SegNet的創(chuàng)新點(diǎn)在于:使用記錄maxpool層最大響應(yīng)特征位置的tensor(pooling indices)來(lái)進(jìn)行上采樣耕挨,避免了FCN中學(xué)習(xí)上采樣帶來(lái)的消耗,而后再使用可訓(xùn)練的卷積層使稀疏的feature map密集尉桩,這將避面上面描述保存feature map產(chǎn)生的額外空間消耗筒占。

1. Introduction


DCNNs在high-level vision tasks(如圖像分類(lèi)、目標(biāo)檢測(cè)等)取得優(yōu)異得表現(xiàn)蜘犁,這些工作都有共同的主題:end-to-end訓(xùn)練的方法比人工的特征工程方法更優(yōu)翰苫。這得益于CNNs內(nèi)在的局部空間不變性,然而對(duì)應(yīng)low-level vision tasks(語(yǔ)義分割)來(lái)說(shuō),我們需要準(zhǔn)確的位置信息而非空間信息抽象后的層次化信息奏窑。

DCNNs應(yīng)用于low-level vision tasks主要難點(diǎn)是:

  • 信號(hào)的下采樣使細(xì)節(jié)信息丟失
  • 網(wǎng)絡(luò)對(duì)多尺度目標(biāo)的泛化能力較差
  • 空間的局部不變性導(dǎo)致位置信息不再準(zhǔn)確

其中最主要的是下采樣問(wèn)題导披,它是池化層和stride的聯(lián)合影響造成两波,是準(zhǔn)確性和速度糙置、空間消耗的權(quán)衡(即過(guò)大的卷積核運(yùn)算極度耗時(shí)、參數(shù)過(guò)大)绿淋。其目的是為了使較小的卷積核能夠去學(xué)習(xí)空間中有用的信息(因此需要增大感受野)墨叛,但這種下采樣必然造成信息的損失止毕。網(wǎng)絡(luò)對(duì)于小目標(biāo)的性能較差、局部不變性同樣是由于池化層丟失了部分邊界信息帶來(lái)的問(wèn)題漠趁,也就是說(shuō)最大的問(wèn)題集中在了池化層的處理扁凛。即使DeepLabv2使用了帶洞的卷積來(lái)顯式地控制感受野的大小,但網(wǎng)絡(luò)訓(xùn)練的難度決定了網(wǎng)絡(luò)模型中仍必須有下池化層的存在闯传,所以需要將低分辨率的特征圖映射(上采樣)到高分辨率的輸入空間谨朝,同時(shí)映射必須能準(zhǔn)確地進(jìn)行邊界定位的手段。

作者同樣關(guān)注了在推理期間的內(nèi)存和計(jì)算時(shí)間方面的效率甥绿。SegNet由Encoder和Decoder組成字币,其中Encoder與Vgg-16一致,但完全去除了全連接層(也沒(méi)有將其變化為全卷積層妹窖,而是直接將應(yīng)傳入fc6的feature map直接傳入Decoder)纬朝,這樣既減少了訓(xùn)練時(shí)間和存儲(chǔ)空間(最多的參數(shù)就在全連接層中,約占整個(gè)網(wǎng)絡(luò)90%的參數(shù))也減少了信息的丟失(更多的特征)骄呼。SegNet最核心的部分就是Decoder的設(shè)計(jì)共苛,Encoder中的每一層與Decoder中一一對(duì)應(yīng),其每層的設(shè)計(jì)與DeconvNet(Zeiler蜓萄,2013)類(lèi)似隅茎。為了保證邊界信息不丟失,Encoder需要在下采樣之前保存各層feature map嫉沽,但這會(huì)受到內(nèi)存的限制辟犀,因此更為高效的做法是使用max-pooling indices存儲(chǔ)各層下采樣過(guò)程中各池化窗口最大特征值的位置,保存最重要的特征信息绸硕。作者的試驗(yàn)結(jié)果表明與使用完整的feature map相比堂竟,max-pooling indices僅造成了較小的準(zhǔn)確率下降〔E澹總之出嘹,使用max-pooling indices:

  • 保留了部分重要的邊界信息,改善了網(wǎng)絡(luò)模型對(duì)于邊界的描述
  • 減少了FCN中因上采樣而需要訓(xùn)練的參數(shù)
  • 能在極小修改的條件下與Encoder-Decoder網(wǎng)絡(luò)模型相結(jié)合

2. ARCHITECTURE


SegNet的結(jié)構(gòu)如Fig. 2所示咬崔,其中Encoder由Vgg-16的前13層組成(但個(gè)卷積層后都加了一個(gè)BN層)税稼,去除全連接層可以保留更高分辨率的特征圖烦秩,并且能夠顯著地減小網(wǎng)絡(luò)的參數(shù)(from 134M to 14.7M,同時(shí)這也是網(wǎng)絡(luò)難以訓(xùn)練的重要原因)郎仆。Decoder通過(guò)同層Encoder記錄的max-pooling indices進(jìn)行上采樣只祠,再由可訓(xùn)練的卷積層對(duì)于稀疏的解碼特征圖經(jīng)行密集化處理。

2.1 Decoder Variants

許多用于語(yǔ)義分割的網(wǎng)絡(luò)都擁有相似的架構(gòu)扰肌,為了對(duì)比各種設(shè)計(jì)之間造成速度抛寝、存儲(chǔ)、模型性能的差異曙旭,作者設(shè)計(jì)了以下幾種變種(原始網(wǎng)絡(luò)模型的簡(jiǎn)化版):

  • SegNet-Basic:4個(gè)編碼器 + 4個(gè)解碼器墩剖,所有kernel_size = 7,Decoder中使用max-pooling indices取代學(xué)習(xí)一個(gè)conv層來(lái)進(jìn)行上采樣

  • SegNet-Basic- EncoderAddition:與FCN的解碼技術(shù)類(lèi)似夷狰,將Decoder解碼的結(jié)果與同層Encoder的feature map相加傳入下一層,增加了內(nèi)存消耗

  • SegNet-Basic-SingleChannelDecoder:Decoder采用單通道conv層郊霎,可以顯著減少內(nèi)存的消耗沼头,但損失了部分信息

  • FCN-Basic:與SegNet-Basic相同的Encoder,使用FCN的解碼技術(shù)(Fig. 3书劝,將Decoder上采樣結(jié)果與同層Encoder的feature map相加后傳入下一層)进倍,此結(jié)構(gòu)中Encoder最后一層的K通道feature map會(huì)被一個(gè)卷積層壓縮成Number of Class通道feature map后傳入Decoder

  • FCN-Basic-NoAddition:去除FCN-Basic Decoder中將上采樣并將結(jié)果與同層Encoder的feature map相加的步驟,顯著減少內(nèi)存的消耗购对,但損失了部分信息

  • FCN-Basic-NoDimReduction:去除FCN-Basic壓縮Encoder輸出通道數(shù)的conv層猾昆,這樣會(huì)帶來(lái)更多內(nèi)存消耗(需要保存Encoder最后的feature map,壓縮后空間更新獍)垂蜗,但減少了信息損失

  • FCN-Basic-NoAddition-NoDimReduction:去除FCN-Basic-NoAddition和FCN-Basic-NoDimReduction對(duì)應(yīng)的部分

2.2 Training

訓(xùn)練過(guò)程中比較新穎的地方是使用median frequency balancing,基于真實(shí)標(biāo)記的分布為各類(lèi)別的損失重新加權(quán)解幽,以減弱類(lèi)別不平衡對(duì)模型帶來(lái)的影響贴见。median frequency balancing需要如下的步驟:

  • 計(jì)算整個(gè)訓(xùn)練集中各個(gè)類(lèi)別出現(xiàn)的頻率:f_c=\frac{訓(xùn)練集中被標(biāo)記為c的像素?cái)?shù)}{訓(xùn)練集中所有圖片的總像素?cái)?shù)},c=1,...,K

  • 選出集合[f_1,...,f_K]中的中位數(shù)f_{median}

  • 為每個(gè)類(lèi)別的loss分配權(quán)重w_c=\frac{f_{median}}{f_c},c=1,...,K

這意味著訓(xùn)練集中數(shù)量較大的類(lèi)的權(quán)值小于1,數(shù)量最小的類(lèi)的權(quán)值最大躲株。默認(rèn)情況是為每個(gè)類(lèi)別都賦予1作為權(quán)重片部,這被稱(chēng)作natural frequency balancing。

2.3 Analysis

比較不同Decoder變體的性能霜定,選擇了如下幾種指標(biāo):

  • global accuracy (G):數(shù)據(jù)集中正確分類(lèi)的像素的百分比
  • class average accuracy (C):所有類(lèi)別預(yù)測(cè)準(zhǔn)確率的平均值
  • mean intersection over union (mIoU):比類(lèi)平均準(zhǔn)確率更嚴(yán)格档悠,因?yàn)樗鼞土PFP預(yù)測(cè);然而mIoU并不是損類(lèi)別平衡cross-entropy損失函數(shù)的優(yōu)化目標(biāo)(其優(yōu)化目標(biāo)是準(zhǔn)確率最大化)
  • boundary F1-measure (BF):涉及計(jì)算邊界像素的F1指標(biāo)望浩。給定一個(gè)像素容錯(cuò)距離辖所,計(jì)算預(yù)測(cè)值和ground truth類(lèi)別邊界之間的精確度和召回率。作者使用圖像對(duì)角線的0.75%作為容錯(cuò)距離曾雕。與mIoU相比奴烙,BF的評(píng)判結(jié)果更符合人類(lèi)對(duì)語(yǔ)義分割效果的判定


在各網(wǎng)絡(luò)已訓(xùn)練至均收斂的條件下,各變體的評(píng)價(jià)結(jié)果如Table 1所示。結(jié)果表明:

  • (1) Decoder需要訓(xùn)練切诀,使用雙線性插值作為Decoder的效果最差揩环。
  • (2) SegNet-Basic和FCN-Basic性能相近,但后者由于保存各層的feature map消耗更多內(nèi)存幅虑。
  • (3) FCN-Basic-NoAddition的性能差于結(jié)構(gòu)最相近的SegNet-Basic丰滑,表明Encoder中信息的重要性。
  • (4) 不對(duì)Encoder的輸出進(jìn)行壓縮倒庵,能帶來(lái)性能的提升褒墨,但在保存feature map時(shí)會(huì)增大內(nèi)存消耗。
  • (5) 與FCN-Basic-NoAddition和FCN-Basic-NoAddition-NoDimReduction相比擎宝,SegNet-Basic-SingleChannelDecoder雖然丟失了部分信息郁妈,但仍保留了部分Encoder中的信息,因此性能優(yōu)于前兩者绍申。
  • (6) 在不限制內(nèi)存和推斷時(shí)間的條件下噩咪,F(xiàn)CN-Basic-NoDimReduction和SegNet-EncoderAddition達(dá)到了最優(yōu)的性能,F(xiàn)CN-Basic-NoDimReduction的BF1最高极阅,表明存儲(chǔ)空間和準(zhǔn)確率之間存在著權(quán)衡胃碾。

作者總結(jié)了如下要點(diǎn):

  • 更高的性能\Rightarrow不壓縮feature map,記錄Encoder各層feature maps
  • 更小的存儲(chǔ)空間\Rightarrow壓縮feature map筋搏,記錄max-pooling indices
  • 感受野更大的解碼器性能更好

3. BENCHMARKING


作者將完整的SegNet與FCN仆百、DeepLab- LargFOV、DeconvNet進(jìn)行比較奔脐,發(fā)現(xiàn):

  • CRF后處理的改善效果在訓(xùn)練集足夠大的條件下不明顯俄周。
  • 難以使用median frequency balancing訓(xùn)練較大的網(wǎng)絡(luò),但使用median frequency balancing能較明顯地提高網(wǎng)絡(luò)性能髓迎。
  • 網(wǎng)絡(luò)在訓(xùn)練集收斂后栈源,過(guò)擬合仍未發(fā)生,這表明過(guò)擬合在訓(xùn)練大型網(wǎng)絡(luò)是不是嚴(yán)重的問(wèn)題竖般。

4. 總結(jié)


SegNet更關(guān)注內(nèi)存消耗(尤其注重)與推斷時(shí)間甚垦,盡管對(duì)于模型的性能沒(méi)有較為明顯的提升,但使我們了解到減少Encoder中信息損失的重要性和訓(xùn)練Decoder涣雕、結(jié)合Encoder信息的重要性艰亮。此外,其使用median frequency balancing和BF1指標(biāo)都對(duì)于訓(xùn)練與評(píng)價(jià)都有很好的啟發(fā)挣郭。

因?yàn)镾egNet不存在特別難以構(gòu)建的地方(或與之前我寫(xiě)過(guò)網(wǎng)絡(luò)的類(lèi)似)迄埃,這里僅進(jìn)行理解閱讀不再進(jìn)行代碼復(fù)現(xiàn)。

Reference

[1] Badrinarayanan, Vijay , A. Kendall , and R. Cipolla . "SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation."IEEE Transactions on Pattern Analysis and Machine Intelligence (2017).

[2] Zeiler, Matthew D , and R. Fergus . "Visualizing and Understanding Convolutional Networks." European Conference on Computer Vision Springer International Publishing, 2013.

轉(zhuǎn)載請(qǐng)說(shuō)明出處兑障。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末侄非,一起剝皮案震驚了整個(gè)濱河市蕉汪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逞怨,老刑警劉巖者疤,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異叠赦,居然都是意外死亡驹马,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)除秀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)糯累,“玉大人,你說(shuō)我怎么就攤上這事册踩∮窘悖” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵暂吉,是天一觀的道長(zhǎng)仗岸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)借笙,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任较锡,我火速辦了婚禮业稼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚂蕴。我一直安慰自己低散,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布骡楼。 她就那樣靜靜地躺著熔号,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鸟整。 梳的紋絲不亂的頭發(fā)上引镊,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音篮条,去河邊找鬼弟头。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涉茧,可吹牛的內(nèi)容都是我干的赴恨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼伴栓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼伦连!你這毒婦竟也來(lái)了雨饺?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤惑淳,失蹤者是張志新(化名)和其女友劉穎额港,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體汛聚,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锹安,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了倚舀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叹哭。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖痕貌,靈堂內(nèi)的尸體忽然破棺而出风罩,到底是詐尸還是另有隱情,我是刑警寧澤舵稠,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布超升,位于F島的核電站,受9級(jí)特大地震影響哺徊,放射性物質(zhì)發(fā)生泄漏室琢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一落追、第九天 我趴在偏房一處隱蔽的房頂上張望盈滴。 院中可真熱鬧,春花似錦轿钠、人聲如沸巢钓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)症汹。三九已至,卻和暖如春贷腕,著一層夾襖步出監(jiān)牢的瞬間背镇,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工泽裳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芽世,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓诡壁,卻偏偏與公主長(zhǎng)得像济瓢,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妹卿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容