《SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers》
本(ben)文是(shi)將Transformer模型應用(yong)于(yu)語(yu)義分(fen)割任務的一個新的嘗試,主(zhu)要創新點如(ru)下:
● 使用(yong)分級的Transformer block設計,可(ke)以產生(sheng)多種尺度的特征。
● 使用重疊的(de)patch融合策略,解決了(le)各patch特征不連續問(wen)題。
● 輕量(liang)級全MLP解碼器設計(ji),無需復雜(za)和(he)計(ji)算要求高的模塊即可(ke)產生強大的表(biao)示。
● 在三個公開可用的(de)語義分割數(shu)據集的(de)效率、準(zhun)確性和(he)魯棒(bang)性方面(mian)創(chuang)下了最新水平(ping)。
模型結構
SegFormer主要由(you)Encoder和Decoder組(zu)成。
Encoder: 一個多層的Transformer編碼器。由四(si)層的Transformer block組成。產生(sheng)從高分辨(bian)率到(dao)低分辨(bian)率的不同特征。
Decoder: 接收多尺度(du)的編碼特征,結構為一個結構簡單的解碼器,僅由上采(cai)樣(yang)和多層(ceng)感知機組成。
分級Transformer編(bian)碼器
作者設(she)計了一系(xi)列的(de)(de)Mix Transformer編碼(ma)器(MiT),MiT-B0到(dao)MiT-B5,具有相同的(de)(de)結構,但尺寸不同。MiT-B0是(shi)(shi)用(yong)于快(kuai)速推理的(de)(de)輕量(liang)級模(mo)型,而(er)MiT-B5是(shi)(shi)用(yong)于最佳性能(neng)的(de)(de)最大(da)模(mo)型。作者設(she)計的(de)(de)MiT部分靈感來自ViT。
Overlapped Patch Merging. 給定(ding)一個圖像塊(image patch),ViT里用到的patch merging流程是將一個H * W * 3的圖像塊(kuai)resize為一個(ge)1*1*C的(de)向量。ViT最初(chu)是設計固定的(de)下采樣倍數,以及每個(ge)patch之間沒有重疊信息。因此,它無法保持這些塊周(zhou)圍的(de)局(ju)部連續(xu)性。
作者使(shi)用重疊的(de)塊合并(bing)過(guo)程(cheng)。為此,作者定義了K、S和P,其中K是卷積核大小(xiao),S是兩個相(xiang)鄰(lin)塊之(zhi)間(jian)的步幅(fu),P是填充大小。在實(shi)驗中,設置K=7,S=4,P=3,以(yi)及K=3,S=2,P=1來進行重(zhong)疊(die)的(de)塊合并(bing),分別(bie)可以(yi)實(shi)現相對上一層特征的(de)4倍(bei)和2倍(bei)的(de)下(xia)采樣。
高效(xiao)的自注(zhu)意力。 編碼(ma)器的(de)(de)主要計(ji)算(suan)瓶頸是(shi)自(zi)(zi)注意(yi)力層。在原來的(de)(de)多頭(tou)自(zi)(zi)注意(yi)過程中,每個頭(tou)的(de)(de)Q,K,V都有(you)相(xiang)同的(de)(de)維數N*C、 其(qi)中(zhong)N=H*W是序列的(de)長度,自注意(yi)力的(de)計算為(wei):

作者使用PVT(Pyramid vision transformer )中介(jie)紹(shao)的序列縮減(jian)過程(cheng)。此過程(cheng)使用縮減(jian)比R來縮(suo)短序列長度,如(ru)下所示:

MixFFN ViT使用(yong)位(wei)置編(bian)碼(PE)來引(yin)入位(wei)置信息。然而,PE的(de)(de)分辨(bian)(bian)率是固定(ding)的(de)(de)。因(yin)此(ci),當測試分辨(bian)(bian)率與訓練(lian)分辨(bian)(bian)率不(bu)同時,需要對(dui)位(wei)置編(bian)碼進行插值,這常(chang)常(chang)導致精度下降(jiang)。為(wei)了緩解這個問題,作者認為(wei),對(dui)于語義分割(ge),位(wei)置編(bian)碼實際(ji)上是沒有必要的(de)(de)。相反,作者引(yin)入了Mix-FFN,在前饋網絡(luo)(FFN)中直(zhi)接使用(yong)3×3卷積。MixFFN可寫為(wei):

其中Xin是自注意力輸出的特征。MixFFN將一個3×3卷積和MLP混入到每個FFN中。在作者的實驗中,作者將證明3×3卷積足以為Transformers提供位置信息。具體地,作者使用深度卷積以減少參數量和提高計算效率。
輕量級All-MLP解碼器(qi)
SegFormer集成(cheng)了(le)一個僅由MLP層組成(cheng)的輕(qing)量級(ji)解(jie)碼(ma)器,這(zhe)避免了(le)其他方法中通常(chang)用的手工制作(zuo)和計算要求很高的組件(jian)。實現這(zhe)種(zhong)簡(jian)單解(jie)碼(ma)器的關鍵是作(zuo)者(zhe)的分層Transformer編碼(ma)器比傳統的CNN編碼(ma)器具有更(geng)大的有效感(gan)受(shou)野(ERF)。
作(zuo)者提(ti)出的全MLP解碼器由四個(ge)主要(yao)步驟(zou)組成。
1) 來自MiT編碼器的多級特(te)征Fi會通(tong)(tong)過(guo)MLP層來統一(yi)通(tong)(tong)道維度(du)。
2) 特征(zheng)上采樣到原圖像的1/4尺(chi)寸并拼接在一起。
3) 采用MLP層融合(he)拼接(jie)后的特征F。
4) 最后用一個MLP層進行類(lei)別預測(ce),輸公式為:

其中M表示預測的掩(yan)碼。
下(xia)圖是與DeepLabV3+進(jin)行的有(you)效感受(shou)野對比,SegFormer可以產(chan)生更大的有(you)效感受(shou)野。

與SETR的關系。
與SETR(基于ViT的架構(gou))相(xiang)比,SegFormer包含了多種更高效、更強(qiang)大的設計:
• 只使用(yong)ImageNet-1K進行預訓(xun)練(lian)。SETR中的(de)ViT在較大的(de)ImageNet-22K上預訓(xun)練(lian)。
• SegFormer的編碼器(qi)具(ju)有分(fen)層結構(gou),比ViT更小,可以捕獲高分(fen)辨(bian)(bian)率(lv)粗特(te)征(zheng)(zheng)(zheng)和低(di)分(fen)辨(bian)(bian)率(lv)精特(te)征(zheng)(zheng)(zheng)。相比之下,SETR的ViT編碼器(qi)只能(neng)生成(cheng)單(dan)一的低(di)分(fen)辨(bian)(bian)率(lv)特(te)征(zheng)(zheng)(zheng)圖。
• 本文去除(chu)了位置編碼(ma),而SETR使用固定(ding)尺寸的(de)位置編碼(ma),當(dang)推(tui)理(li)的(de)分(fen)辨率(lv)與(yu)訓練(lian)的(de)分(fen)辨率(lv)不同(tong)時,會降低精度。
• 本(ben)文的(de)(de)MLP解(jie)碼器比SETR中的(de)(de)更(geng)緊湊,計算要求更(geng)低。這導(dao)致了可(ke)以忽(hu)略(lve)不計的(de)(de)計算開銷。相反,SETR需要多個3×3卷積的(de)(de)計算量大的(de)(de)解(jie)碼器。