移動(dòng)端超分的磁懸浮,推理僅需10ms!港理工&達(dá)摩院開源超輕量超分網(wǎng)絡(luò)ECB

極市導(dǎo)讀
香港理工和達(dá)摩院張磊團(tuán)隊(duì)提出了一種即插即用的重參數(shù)模塊,并基于該模構(gòu)建了用于端側(cè)設(shè)備的超輕量超分網(wǎng)絡(luò)ECBSR,該工作取得與其他SOTA方案相當(dāng)?shù)男阅懿⒁验_源。>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿

原文鏈接:https://www4.comp.polyu.edu.hk/~cslzhang/paper/MM21_ECBSR.pdf
代碼鏈接:https://github.com/xindongzhang/ECBSR
本文是香港理工&達(dá)摩院張磊團(tuán)隊(duì)(https://www4.comp.polyu.edu.hk/~cslzhang/)在移動(dòng)端超分 方面的工作,已被ACM-MM2021接收。本文將low-level領(lǐng)域知識(shí)與重參數(shù)思想進(jìn)行了巧妙結(jié)合,提出了一種新穎的模塊:Edge-oriented Convolution Block(ECB) ?;贓CB構(gòu)建了超輕量型且性能同樣突出的ECBSR,在x4任務(wù)輸出為1080p,硬件平臺(tái)為驍龍865DSP上:
當(dāng)性能媲美SRCNN/ESPCN時(shí),ECBSR-M4C8在移動(dòng)端推理僅需10ms ,而SRCNN與ESPCN分別需要1583ms、26ms;
當(dāng)性能媲美LapSRN時(shí),ECBSR-M10C32在移動(dòng)端推理僅需17ms ,而LapSRN則需要5378ms;
當(dāng)性能媲美IMDN、EDSR以及CARN時(shí),ECBSR-M16C64在移動(dòng)端的推理僅需71ms ,而IMDN、EDSR與CARN的推理則分別為2782ms、527ms、170ms。
Abstract
在實(shí)際應(yīng)用場(chǎng)景中,高效輕量超分網(wǎng)絡(luò)極具高需求。然而,現(xiàn)有研究大多聚焦于降低模型參數(shù)量與FLOPs,而這并不總是意味著更快的端側(cè)推理速度。
本文提出了稱之為ECB的重參數(shù)化模塊用于高效超分網(wǎng)絡(luò)設(shè)計(jì)。在訓(xùn)練階段,ECB采用多分支方式提取特征:包含常規(guī)卷積、卷積、一階與二階梯度信息;在推理階段,上述多個(gè)并行操作可以折疊為單個(gè)卷積。ECB可視作一種提升常規(guī)卷積性能的“即插即用 ”模塊且不會(huì)引入額外的推理消耗。我們基于ECB提出了一種用于端側(cè)設(shè)備的超輕量超分網(wǎng)絡(luò)ECBSR。
所提ECBSR取得了與其他SOTA輕量超分方案相當(dāng)?shù)男阅埽瑫r(shí)可以在通用端側(cè)設(shè)備(比如驍龍865SOC、天璣1000+SOC)上實(shí)時(shí)將270p/540p圖像超分到1080p,可參考下圖。

Method
我們首先基于端側(cè)友好算子設(shè)計(jì)了一種基礎(chǔ)模型,然后提出了一種重參數(shù)化的面向邊緣的卷積模塊提升超分性能。
Base Model

為確保高推理速度與跨設(shè)備部署(常見移動(dòng)設(shè)備),我們?cè)谧屑?xì)考慮移動(dòng)端設(shè)備有限計(jì)算資源與內(nèi)存資源后,設(shè)計(jì)了一種僅由基礎(chǔ)模塊構(gòu)成的基礎(chǔ)模型,見上圖(注:這里的圖示應(yīng)該是有問題的,起碼是與論文開源的code不對(duì)應(yīng);code中對(duì)應(yīng)的是類EDSR架構(gòu) )。
Neat Topology 盡管復(fù)雜的結(jié)果(比如多分支、稠密連接)可以在不引入過多FLOPs的前提下帶來豐富的特征表達(dá),但是這類結(jié)構(gòu)會(huì)導(dǎo)致過高的MAC(Memory Access Cost, MAC)、犧牲并行度,進(jìn)而降低推理速度。由于DDR的低帶寬問題,這種現(xiàn)象在移動(dòng)端尤為嚴(yán)重。比如,F(xiàn)SRCNN采用了簡(jiǎn)單的結(jié)構(gòu),F(xiàn)LOPs比IMDN-RTC稍高,但在驍龍865平臺(tái)上FSRCNN的推理速度要快的多(大概快2個(gè)數(shù)量級(jí) ,可參見前面的Figure1圖示部分)。因此,我們將帶寬限制問題納入考慮后,設(shè)計(jì)了上述非常簡(jiǎn)單的結(jié)果以盡可能降低模型的MAC。
Basic Operations 不同于GPU端側(cè),移動(dòng)端DSP/GPU/NPU上優(yōu)化的算子非常有限且不同設(shè)備之前的優(yōu)化程度也不一樣,不支持的算子需要在CPU上進(jìn)行處理,不僅會(huì)降低推理速度而且會(huì)引入額外的MAC。因此,我們僅僅采用了卷積(針對(duì)移動(dòng)端DSP/GPU/NPU均進(jìn)行了高度優(yōu)化)提取特征,在上采樣部分我們采用PixelShuffle。
上述所提基礎(chǔ)模塊非常適用于移動(dòng)端場(chǎng)景,同時(shí)具有高效率與靈活性。在移動(dòng)端,上述結(jié)果具有超快推理速度、更低MAC;此外,簡(jiǎn)單的基礎(chǔ)操作使其非常適合跨設(shè)備部署。通過控制卷積數(shù)量與通道數(shù),我們可以控制模型的復(fù)雜度以獲取不同設(shè)備上更好的性能-速度均衡。
Edge-oriented Convolution Block
盡管上述結(jié)果非常高效,但其性能要弱于復(fù)雜的模型。因此,我們采用重參數(shù)技術(shù)(比如ACNet、DBB以及RepVGG)提升模型的表達(dá)能力。然而,在超分任務(wù)上直接采用技術(shù)帶來的性能提升非常有限。針對(duì)超分任務(wù),我們?cè)O(shè)計(jì)了一種更合適的重參數(shù)模塊ECB(見下圖),它可以更有效的提取邊緣與紋理信息。從圖示可以看到:ECB包含四種類型的算子。(注:下面的圖示應(yīng)該也是有問題的,第四個(gè)分支應(yīng)該是 卷積,起碼code中不是 )

Component I: Normal 卷積 我們首先采用常規(guī)卷積以確?;€性能,類似于已有超分模型,我們同樣并未采用BN操作。該分支的操作可以如下:
Component II: Expanding-and-Squeezing Convolution WDSR(https://bmvc2019.org/wp-content/uploads/papers/0288-paper.pdf)中實(shí)驗(yàn)表明:更寬的特征可以顯著提升表達(dá)能力、提升超分性能 。因此,我們采用卷積進(jìn)行通道升維。具體來說,我們通過卷積將輸入通道從C提升到D,然后再通過卷積將通道從D降低到C,確保不同分支的輸出通道相同。該分支的操作定義如下(注:我們?cè)O(shè)置):
Component III: Sequential Convolution with Scaled Sobel Filters SPSR(https://arxiv.org/abs/2003.13081)研究表明:邊緣信息對(duì)于超分任務(wù)非常有用 。不同于SPSR的顯式利用梯度信息,我們采用隱式方式將Sobel梯度集成到ECB模塊的第三與第四分支。這兩個(gè)分支操作定義如下(注:分表水平與垂直Sobel濾波器):
Component IV: Sequential Convolution with Scaled Laplacian Filters 除了一階梯度外,我們還采用Laplacian濾波器提取二階梯度(更穩(wěn)定,對(duì)噪聲更魯棒)。該分支操作定義如下:
ECB模塊的輸出則是上述五個(gè)成分的組合,組合后特征將送入到非線性激活層。在實(shí)驗(yàn)中,我們采用了PReLU。
Re-parameterization for Efficient Inference
接下來,我們將介紹如何將ECB折疊為單個(gè)卷積以便于高效推理。如DBB所說,卷積與卷積可以合并為單個(gè)常規(guī)卷積:
Component III與Component IV采用串行卷積與DWConv,而DWConv可以視作常規(guī)卷積的一種特例,DWConv可以通過補(bǔ)零擴(kuò)展為常規(guī)卷積。擴(kuò)展方式描述如下:
最終折疊后的參數(shù)定義如下:
因此,我們可以在推理階段采用單個(gè)常規(guī)卷積替換上述ECB模塊:
Experiments
Main Results

上表給出了不同尺度、不同模型的參數(shù)量、FLOPs、Acts、#Conv以及PSNR、SSIM等方面的對(duì)比,從中可以看到:
在最小模型量級(jí)方面,ECBSR-M4C8大幅優(yōu)于SRCNN、ESPCN,同時(shí)具有更少的參數(shù)量(12x/10x)、更低的FLOPs(92x/9x)、更少的Activations(9x/2x)。
類似地,ECBSR-M4C16、ECBSR-M10C16以及ECBSR-M10C32等模型在不同量級(jí)方面均取得了顯著的性能、計(jì)算復(fù)雜度優(yōu)勢(shì)。
值得一提的是,相比通過NAS搜到的MoreMNAS-C、FALSR-B以及FALSR-C,所提方案具有相當(dāng)甚至更優(yōu)的性能,同時(shí)更小模型、更低計(jì)算量、更少顯存占用。
ECBSR-M16C64可以取得與EDSR-R16C64、CARN-M、IMDN相當(dāng)?shù)男阅?,同時(shí)更小、更輕量。

上圖對(duì)比了不同方案的視覺效果對(duì)比(注:這里僅對(duì)比了可以滿足實(shí)時(shí)推理的模型),從中可以看到:所提方案具有更銳利的邊緣、更清晰的紋理 。
Hardware Running Speed
由于模型大小、參數(shù)量、FLOPs以及Activations無法精確的反映模型的真實(shí)推理速度,我們進(jìn)一步在兩臺(tái)移動(dòng)設(shè)備評(píng)估了其實(shí)際推理速度。在這里,我們選擇了兩個(gè)極具代表性的旗艦機(jī)型SOC:天璣1000+GPU 與驍龍865DSP 。由于SDK對(duì)于推理速度影響非常大,我們?cè)谙嗤琒DK相同配置下運(yùn)行所有模型,采用AI benchmark AP運(yùn)行模型。注:所有模型均進(jìn)行量化并采用INT8算法推理 。

上表的推理速度均為上采樣到1080p分辨率,從上表可以看到:
大部分對(duì)標(biāo)超分方案遠(yuǎn)遠(yuǎn)無法達(dá)到實(shí)時(shí)推理;
ECBSR-M4C8、ECBSR-M4C16非常高效,在兩個(gè)設(shè)備上均達(dá)到實(shí)時(shí);而ECBSR-M16C64過于復(fù)雜,無法在移動(dòng)設(shè)備達(dá)到實(shí)時(shí);
盡管EDSR-R5C32與IMDN-RTC非常輕量,但仍無法達(dá)到實(shí)時(shí)推理,主要原因:稠密連接與多分支結(jié)構(gòu)帶來了過多MACs、降低了計(jì)算并行度。
Ablation Study

為更好說明ECB的作用,我們將其與其他重參數(shù)模塊(包含AC模塊、RepVGG模塊模塊以及DB模塊)進(jìn)行了對(duì)比,此外Triple Duplicate模塊作為參考基線,這里所對(duì)比的幾個(gè)模塊可參見上圖。

上表給出了消融實(shí)驗(yàn)對(duì)比(注:表中結(jié)果是在x2超分任務(wù)上統(tǒng)計(jì)所得),從中可以看到:
三個(gè)成分的任何一個(gè)都可以提升基線模型性能,移除任何一個(gè)均會(huì)導(dǎo)致ECBSR模型性能下降;
相比基線模型,AC與RepVGG帶來的性能非常有限,而DB模塊帶來的性能提升稍好;
總而言之:ECB在所有數(shù)據(jù)及上均可以帶來~0.1dB指標(biāo)提升。

我們還在SRCNN、ESPCNN結(jié)果上驗(yàn)證所提ECB模塊的有效性,見上表。從中可以看到:增強(qiáng)版模型可以取得 指標(biāo)提升 。這說明:ECB是一種廣義的、“無痛”提升超分性能的即插即用型 模塊。
吐槽時(shí)刻
全文一共也沒幾個(gè)圖啊,結(jié)果核心的結(jié)構(gòu)圖竟然存在問題。這是在趕稿子嗎 ?
We, for the first time, investigate the structure re-parameterizable technique for SR task and propose an Edge-oriented Convolution Block (ECB)。
此外,論文中提出:ECBSR是首個(gè)將結(jié)構(gòu)重參數(shù)化用于超分任務(wù)的方案。看到這里,估計(jì)ARM的研究員第一個(gè)不服,因?yàn)樵诮衲甑?月份他們就將他們的SESR工作上傳到arxiv,可參考筆者的之前的解讀:
46FPS+1080Px2超分+手機(jī)NPU,arm提出一種基于重參數(shù)化思想的超高效圖像超分方案
也許,哈工大的左老師團(tuán)隊(duì)也會(huì)反對(duì)(機(jī)智如我),同樣是在今年3月份將其采用非對(duì)稱卷積(同樣是一種重參數(shù)結(jié)構(gòu))用于超分的文章上傳到arxiv,可參考筆者之前的解讀:
ACNet|增強(qiáng)局部顯著特征,哈工大左旺孟老師團(tuán)隊(duì)提出非對(duì)稱卷積用于圖像超分
此外,非對(duì)稱卷積ACNet(https://github.com/DingXiaoH/ACNet)可以有效提升low-level的性能已得到了多次驗(yàn)證,比如NTIRE2020的幾個(gè)競(jìng)賽中就有幾個(gè)方案把當(dāng)做漲點(diǎn)技巧。當(dāng)然,以上僅為吐槽,別無惡意。
ECBSR這篇文章最大的亮點(diǎn)是:將low-level的領(lǐng)域特征與結(jié)構(gòu)重參數(shù)思想進(jìn)行了結(jié)合。在low-level領(lǐng)域,圖像的梯度是非常重要的一個(gè)考慮,如何有效提升生成圖像的邊緣銳利度一直是業(yè)界的關(guān)注點(diǎn)。ECBSR就巧妙的就一階梯度與二階段梯度進(jìn)行了結(jié)合,在超分任務(wù)上達(dá)到了比DBB、RepVGG、ACNet等重參數(shù)模塊更優(yōu)秀的性能。
如果覺得有用,就請(qǐng)分享到朋友圈吧!
公眾號(hào)后臺(tái)回復(fù)“CVPR21檢測(cè)”獲取CVPR2021目標(biāo)檢測(cè)論文下載~

# 極市平臺(tái)簽約作者#
happy
知乎:AIWalker
AIWalker運(yùn)營(yíng)、CV領(lǐng)域八年深耕碼農(nóng)
研究領(lǐng)域:專注low-level領(lǐng)域,同時(shí)對(duì)CNN、Transformer、MLP等前沿網(wǎng)絡(luò)架構(gòu)保持學(xué)習(xí)心態(tài),對(duì)detection的落地應(yīng)用甚感興趣。
公眾號(hào):AIWalker
作品精選
ResNet被全面超越了,是Transformer干的:依圖科技開源“可大可小”T2T-ViT,輕量版優(yōu)于MobileNet
何愷明團(tuán)隊(duì)最新力作SimSiam:消除表征學(xué)習(xí)“崩潰解”,探尋對(duì)比表達(dá)學(xué)習(xí)成功之根源


