劉智軒, 陸善貴, 藍(lán)如師
(1.桂林電子科技大學(xué) 廣西圖像圖形與智能處理重點(diǎn)實(shí)驗(yàn)室, 廣西 桂林 541004;2.品創(chuàng)科技有限公司, 廣西 桂林 541004)
圖像超分辨率重建技術(shù)是將輸入模糊、包含信息較少的低分辨率圖像重建為清晰、包含更多信息的高分辨率圖像,是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)經(jīng)典問題。 生成圖像還可以為下游的計(jì)算機(jī)視覺相關(guān)任務(wù)提供服務(wù),如目標(biāo)檢測(cè)[1-3]、目標(biāo)定位[4-5]等,可以增強(qiáng)任務(wù)效果,提高識(shí)別正確率。 在現(xiàn)實(shí)生活中,圖像超分辨率重建應(yīng)用前景十分廣泛,如醫(yī)學(xué)成像[6-7]、安全監(jiān)測(cè)[7]和圖像壓縮[8-9]等領(lǐng)域。
隨著深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域取得巨大成功,基于深度學(xué)習(xí)的圖像超分技術(shù)也成為現(xiàn)今研究的主流方向,如最早基于卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)的SRCNN[10]、基于生成對(duì)抗網(wǎng) 絡(luò)( Generative Adversarial Network, GAN) 的SRGAN[11]。 然而,基于深度學(xué)習(xí)的圖像超分算法雖然性能較高,但其計(jì)算復(fù)雜度通常會(huì)隨分辨率指數(shù)級(jí)上升,難以滿足現(xiàn)在4K 或8K 的超分應(yīng)用場(chǎng)景上對(duì)于輕量模型且低算力功耗的要求。 因此,算法加速是圖像超分領(lǐng)域的一個(gè)重要研究方向。 當(dāng)前的超分算法加速主要研究方向分為2 大類:基于輕量化網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的超分加速方法研究和基于分治策略的超分加速方法研究。 其中,基于網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的加速方法[12-13]針對(duì)超分網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行設(shè)計(jì)改進(jìn),往往要求超分算法使用特定的網(wǎng)絡(luò),難以根據(jù)應(yīng)用場(chǎng)景中算力條件復(fù)雜多變的需求靈活地調(diào)整算法復(fù)雜度,而基于分治策略的超分算法加速研究[14]針對(duì)整個(gè)算法的流程框架進(jìn)行設(shè)計(jì)改進(jìn),不限于特定的網(wǎng)絡(luò)結(jié)構(gòu),因此靈活度較高,可適用于更廣泛的超分算法和應(yīng)用場(chǎng)景。 因此,本文選取基于分治策略的圖像超分加速方法進(jìn)行研究。
現(xiàn)有分治加速法將大圖像的超分問題分解成不同子圖像塊的超分問題[15],并根據(jù)每個(gè)子圖像塊的超分難易程度,使用不同計(jì)算復(fù)雜度規(guī)模的網(wǎng)絡(luò)分別進(jìn)行超分處理。 具體來說,處于較平滑區(qū)域的子圖由于信號(hào)強(qiáng)度變化緩慢且均勻,因此超分的難度較小,使用較小的計(jì)算復(fù)雜度即可對(duì)其超分過程進(jìn)行建模。 而處于邊緣區(qū)域的子圖由于所含高頻信號(hào)較多,需要較為復(fù)雜的數(shù)學(xué)模型才可建模出所需的超分過程,即需要設(shè)計(jì)復(fù)雜度較高的網(wǎng)絡(luò)結(jié)構(gòu)來實(shí)現(xiàn)較好的超分效果。 總的來說,分治加速法中對(duì)每個(gè)子圖的超分過程采用動(dòng)態(tài)的網(wǎng)絡(luò)參數(shù)量分配策略,相比傳統(tǒng)固定的參數(shù)量分配策略,有效減少了冗余計(jì)算。 然而,該分治策略僅將子問題分解到了子圖像塊級(jí)別,而每個(gè)子圖中,不同子區(qū)域仍可進(jìn)一步劃分出不同的超分難度,因此傳統(tǒng)基于子圖像塊級(jí)的分治加速法尚未達(dá)到最優(yōu)的加速效果。
基于上述問題,將分治策略中所分解的每個(gè)子問題從子圖像塊級(jí)進(jìn)一步細(xì)化到像素級(jí),根據(jù)不同像素所在位置的超分難易程度采用不同復(fù)雜度規(guī)模的網(wǎng)絡(luò)來分而治之,從而在同等計(jì)算復(fù)雜度的限制條件下,進(jìn)一步挖掘網(wǎng)絡(luò)的潛在能力,最終實(shí)現(xiàn)更為高效的加速算法。 現(xiàn)有基于分治加速的圖像超分方法可分為2 個(gè)關(guān)鍵模塊:一是子問題分類模塊,用于估計(jì)每個(gè)子問題的超分難易程度;二是圖像超分模塊,用于對(duì)每個(gè)子問題進(jìn)行處理,即對(duì)其所屬的圖像區(qū)域進(jìn)行超分。 首先,針對(duì)模塊一,需要對(duì)每個(gè)像素的超分難易程度進(jìn)行估計(jì),不確定度估計(jì)大圖像的超分問題分解成不同子圖像塊的超分問題[16]是經(jīng)典的用于研究如何估計(jì)網(wǎng)絡(luò)對(duì)其認(rèn)知結(jié)果不確定性的方法,本文引入該思想用于評(píng)估圖像中每個(gè)像素所在位置的超分難度。 對(duì)于圖像中的每個(gè)像素所在位置,預(yù)測(cè)一個(gè)不確定度用于代表該位置的超分難度。 其次,針對(duì)模塊二,本文提出了一個(gè)自適應(yīng)像素特征精煉模塊,根據(jù)每個(gè)像素的超分難易度,對(duì)超分困難的像素點(diǎn)高層特征進(jìn)一步修正,從而實(shí)現(xiàn)了為不同像素所在區(qū)域的超分分配了不同規(guī)模的計(jì)算量,相比現(xiàn)有基于子圖像塊的計(jì)算量分配策略,本文方法更加精細(xì)且合理,最終實(shí)現(xiàn)了更為高效的圖像超分方法。
本文方法的貢獻(xiàn)分為3 點(diǎn):
① 針對(duì)基于分治策略的圖像超分加速問題,將現(xiàn)有方法中的子問題分解,從子圖像塊級(jí)進(jìn)一步深入到了像素級(jí),提出了基于像素級(jí)分治策略的超分網(wǎng)絡(luò)加速方法,為不同像素所對(duì)應(yīng)區(qū)域分配不同規(guī)模的計(jì)算量來實(shí)現(xiàn)超分過程,從而實(shí)現(xiàn)了更加高效的超分加速策略。 實(shí)驗(yàn)表明,本方法在相同計(jì)算復(fù)雜度的情況下,性能顯著超越了現(xiàn)有基于分治策略的圖像超分加速工作。
② 提出了一個(gè)聯(lián)合困難像素挖掘的重建損失函數(shù),損失函數(shù)可使得網(wǎng)絡(luò)在重建超分辨率圖像的同時(shí),通過無監(jiān)督自適應(yīng)的學(xué)習(xí)預(yù)測(cè)出每個(gè)像素的超分難易程度,用于為每個(gè)像素點(diǎn)所在位置的超分分配更加合理的計(jì)算量。
③ 提出了一個(gè)自適應(yīng)像素特征精煉模塊,根據(jù)每個(gè)像素的超分難度,對(duì)超分困難的像素點(diǎn)特征進(jìn)行采樣,并通過一個(gè)共享參數(shù)的多層感知機(jī)結(jié)構(gòu)對(duì)所選取的像素點(diǎn)特征進(jìn)行特征修復(fù),相比現(xiàn)有基于子圖像塊的計(jì)算量分配策略,更加精細(xì)且合理。
盡管相關(guān)研究已經(jīng)取得了重大進(jìn)展,但現(xiàn)有的輕量級(jí)圖像超分辨率模型還需要進(jìn)行比較深入和廣泛的研究,并且輕量級(jí)圖像超分辨任務(wù)經(jīng)常需要處理大型圖像。 研究人員提出了多種技術(shù),主要是基于插值的方法,如雙線性插值、雙三次插值、曲率插值和自適應(yīng)圖像插值;基于重建的方法,如迭代反投影法、凸集投影法和最大后驗(yàn)概率法;以及基于示例的學(xué)習(xí)方法,如鄰域嵌入方法、稀疏表示方法和回歸圖像插值方法。 然而,傳統(tǒng)方法不能重建圖像的高頻細(xì)節(jié),因?yàn)檩p量級(jí)圖像的超分辨率是一個(gè)難以解決的問題。 隨著機(jī)器學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域的發(fā)展,深度學(xué)習(xí)已廣泛應(yīng)用于輕量級(jí)圖像超分辨率重建任務(wù),并具有良好的重建效果。 如今,基于深度學(xué)習(xí)的輕量級(jí)圖像超分辨率方法正逐漸受到關(guān)注。 下面介紹輕量級(jí)圖像超分辨率的一些相關(guān)理論和技術(shù)成果。
大多數(shù)輕量級(jí)超分辨率算法在重建過程中必須經(jīng)常解決最小二乘問題,從而增加了系統(tǒng)的總體計(jì)算負(fù)載[17]。 為了解決這個(gè)問題,Hardiansyah 等[18]提出了“錨定鄰域回歸”(Anchored Neighborhood Regression,ANR)模型,該模型基于局部線性回歸方法,顯著提高了重建速度。 Choi 等[19]提出了基于局部線性映射和回歸方法的基于GLM-SI 的局部回歸方法。 該方法使用KNN 在執(zhí)行局部回歸以獲得全局圖像之前生成大量的局部候選,還可以進(jìn)一步改善高分辨率圖像塊之間的映射關(guān)系,從而提高重建圖像的質(zhì)量。 此外,基于局部線性映射的全局回歸算法在計(jì)算方面優(yōu)于傳統(tǒng)的CNN 輕量級(jí)超分辨率算法。
用于輕量級(jí)圖像超分辨率的傳統(tǒng)局部線性回歸算法中的重建高分辨率圖像僅來自訓(xùn)練集附近的相鄰樣本,因此該模型的表達(dá)能力非常有限,嚴(yán)重限制了重建圖像的質(zhì)量。 在某種程度上,鄰域嵌入可以解決這個(gè)問題。 劉磊等[20]提出了一種基于鄰域嵌入的超分辨率算法。 在輕量級(jí)圖像的超分辨率問題中,在每個(gè)檢測(cè)到的圖像塊的訓(xùn)練集中找到K個(gè)相鄰點(diǎn)的低頻圖像塊,并使用最小二乘法計(jì)算其重建權(quán)重,一定程度上解決了相關(guān)問題。
當(dāng)處理輕量級(jí)圖像的超分辨率問題時(shí),稀疏表示可以基于每個(gè)檢測(cè)到的圖像塊自適應(yīng)地確定對(duì)應(yīng)字典單元的數(shù)量[21]。 為了獲得更好的重建邊緣和紋理,不需要預(yù)先確定相鄰點(diǎn)K。 為了優(yōu)化超分辨率重建問題,葛鵬等[22]提出了稀疏先驗(yàn)概念來約束超分辨率問題。 基于稀疏表達(dá)式的超分辨率技術(shù)能以比稀疏信號(hào)的奈奎斯特采樣理論更低的頻率進(jìn)行采樣,從而準(zhǔn)確地重建信號(hào)[23]。
基于K-NN 學(xué)習(xí)的輕量化圖像超分辨率重建技術(shù)使用馬爾可夫網(wǎng)絡(luò)建立高分辨率圖像和高分辨率場(chǎng)景之間的關(guān)系模型,并使用信號(hào)傳播算法對(duì)高分辨率圖像進(jìn)行最大后驗(yàn)估計(jì)[24]。 K-NN 算法通過對(duì)圖像的初始值進(jìn)行預(yù)處理,改善了圖像的邊緣、脊、角和其他區(qū)域,有效降低了輕量化圖像的超分辨率重建的模糊性[25]。 然而,這類算法的重建質(zhì)量嚴(yán)重依賴于樣本的數(shù)量,這增加了計(jì)算負(fù)載,使其不適合實(shí)際使用。 此外,如果訓(xùn)練集中的輸入圖像與訓(xùn)練集的結(jié)構(gòu)不一致,則重建效果將顯著降低。
隨著近年來深度學(xué)習(xí)技術(shù)的快速發(fā)展和成功應(yīng)用,基于深度神經(jīng)網(wǎng)絡(luò)的輕量級(jí)圖像超分辨率重建方法引起了許多研究人員的興趣[10]。 基于深度學(xué)習(xí)的輕量級(jí)圖像超分辨率重建方法采用多層神經(jīng)網(wǎng)絡(luò)直接在低分辨率和高分辨率圖像之間建立端到端的非線性映射關(guān)系[26]。 例如,LapSRN 使用漸進(jìn)方法來提高圖像分辨率,但它會(huì)在網(wǎng)絡(luò)中間生成大尺寸的特征映射,導(dǎo)致網(wǎng)絡(luò)計(jì)算顯著增加[27];CARN通過級(jí)聯(lián)機(jī)制集成了多個(gè)級(jí)別的信息,由于使用了密集連接,引入了許多參數(shù)和計(jì)算[28];IDN 使用信息蒸餾機(jī)制通過跳過連接傳輸一些特征,以減少網(wǎng)絡(luò)參數(shù)的數(shù)量[29],但不能有效地過濾掉需要進(jìn)一步細(xì)化的重要特征,模型性能還有進(jìn)一步提高的空間。因此,基于深度學(xué)習(xí)的輕量級(jí)圖像超分辨率技術(shù)仍是一個(gè)值得深入研究的課題。
針對(duì)分治加速,選取基于分治策略的圖像超分加速算法進(jìn)行研究,在該研究領(lǐng)域,最具代表性的方法是ClassSR[30],因此,選取該方法作為本文的基準(zhǔn),下面首先對(duì)ClassSR 進(jìn)行簡(jiǎn)要的介紹。
ClassSR 通過將分類和圖像超分結(jié)合在一個(gè)統(tǒng)一的框架中來實(shí)現(xiàn)分治加速策略。 具體來說,首先,將每張輸入的原始圖像劃分成不同的子圖像塊,對(duì)每個(gè)子圖像塊的超分可看作一個(gè)單獨(dú)的子問題進(jìn)行處理;其次,使用分類模塊根據(jù)每個(gè)子圖像塊超分的難易程度將其分類為不同的類別;最后,應(yīng)用圖像超分模塊對(duì)不同類別的子圖像塊分別執(zhí)行超分過程。其中,分類模塊采用傳統(tǒng)的分類網(wǎng)絡(luò),而圖像超分模塊是由待加速的原始超分網(wǎng)絡(luò)及其通道縮減后的輕量化版本組成的網(wǎng)絡(luò)集合。 經(jīng)過聯(lián)合訓(xùn)練,大部分被分類模塊劃為易超分的子圖像塊,將通過小規(guī)模的網(wǎng)絡(luò)進(jìn)行超分,因此可以顯著降低計(jì)算成本。
ClassSR 將每個(gè)圖像塊的超分看作一個(gè)子問題,從而通過合理分配每個(gè)子圖像塊的超分計(jì)算量來達(dá)到網(wǎng)絡(luò)加速的目的。 借鑒該工作的思想,認(rèn)為當(dāng)子問題被劃分的更小時(shí),整個(gè)超分網(wǎng)絡(luò)的計(jì)算量會(huì)被分配的更為合理,從而得到更好的整體加速效果。 因此,在ClassSR 基礎(chǔ)上把子問題進(jìn)一步劃分到了比圖像塊更精細(xì)的像素級(jí),根據(jù)低分辨率圖像中每個(gè)像素所對(duì)應(yīng)子區(qū)域的超分難易程度,分配不同大小的計(jì)算量,從而得到更好的整體加速效果,子圖像塊級(jí)分治策略和像素級(jí)分治策略的精細(xì)程度對(duì)比如圖1 所示。
圖1 子圖像塊級(jí)分治和像素級(jí)分治策略的子問題精細(xì)程度對(duì)比Fig.1 Fineness comparison of sub-problem between image patch level divide-and-conquer strategy and pixel level divide-and-conquer strategy
在ClassSR 所采用的分治策略下,為了實(shí)現(xiàn)像素級(jí)的分治加速法,首先要從原始低分辨率圖像中估計(jì)得到每個(gè)像素所對(duì)應(yīng)子區(qū)域的超分難易程度,進(jìn)而設(shè)計(jì)不同復(fù)雜度規(guī)模的超分網(wǎng)絡(luò)對(duì)其分而治之。
然而,該問題的解并不直觀,無法沿用ClassSR的方式直接將每個(gè)超像素單獨(dú)輸入到分類網(wǎng)絡(luò)去預(yù)測(cè)超分難易度。 具體來說,單一像素所對(duì)應(yīng)的子區(qū)域由于在圖像中的覆蓋范圍極小,導(dǎo)致該范圍內(nèi)的圖像信號(hào)變化均很微弱,因此,無法僅通過單一像素所提供的信息判別出其超分的難易程度,需要一定的上下文信息作為輔助。 為了解決該問題,在保留ClassSR 的主體結(jié)構(gòu),仍將原圖像劃為多個(gè)子圖像塊分別作為網(wǎng)絡(luò)輸入的同時(shí),為每個(gè)超分網(wǎng)絡(luò)額外增加一個(gè)分支,預(yù)測(cè)出一個(gè)與輸入圖像比例相同的得分響應(yīng)圖,該響應(yīng)圖每個(gè)位置的值即用于表示該位置像素的超分難易程度。 從結(jié)構(gòu)上分析,由于該響應(yīng)圖在CNN 的高層預(yù)測(cè)得到,每個(gè)位置均具有較大的感受野,可以有效地利用到上下文信息,從而解決了單一像素上下文信息不足的問題。
在感受野足夠的條件下,另一個(gè)核心問題是對(duì)像素超分難度的預(yù)測(cè),受不確定度估計(jì)工作的啟發(fā),將原有圖像超分網(wǎng)絡(luò)所使用的L1像素重建損失函數(shù)改進(jìn)成一個(gè)聯(lián)合困難像素挖掘的重建損失函數(shù),該損失函數(shù)可使得網(wǎng)絡(luò)在重建超分辨率圖像的同時(shí),通過無監(jiān)督學(xué)習(xí)預(yù)測(cè)出每個(gè)像素的超分難易程度。 公式為:
式中,fH(x)i為ground-truth 高分辨率圖片上第i個(gè)位置的像素值;Hi為超分網(wǎng)絡(luò)預(yù)測(cè)的高分辨率圖片中第i個(gè)位置的像素值;fS(x)i為超分網(wǎng)絡(luò)預(yù)測(cè)的不確定度響應(yīng)圖上第i個(gè)位置的響應(yīng)值,即i像素所對(duì)應(yīng)的不確定度。 可見,當(dāng)目標(biāo)像素所對(duì)應(yīng)的子區(qū)域難以通過超分重建出來時(shí),式(1)第1 項(xiàng)中重建損失的值會(huì)較大,此時(shí),為了使得網(wǎng)絡(luò)整體損失平衡在一個(gè)較小的值,需要犧牲第2 項(xiàng),通過預(yù)測(cè)一個(gè)較大的不確定度值fS(x)i來減小第1 項(xiàng)的損失大小。可見,fS(x)i值的大小與訓(xùn)練樣本中像素i的重建誤差正相關(guān),因此可用來表示該位置像素的超分難度。 在具體實(shí)現(xiàn)時(shí),在網(wǎng)絡(luò)的最后一層增加一個(gè)輸出通道來表示不確定度的響應(yīng)圖,與高分辨率圖像一起輸出,使得不確定響應(yīng)圖與高分辨率圖像具有相同的尺度和大小。
得到每個(gè)像素的超分難易度后,需要根據(jù)該超分難易度,為每個(gè)像素所對(duì)應(yīng)子區(qū)域自適應(yīng)分配合理規(guī)模的計(jì)算量進(jìn)行超分,超分難度大的像素所對(duì)應(yīng)區(qū)域應(yīng)分配較大的參數(shù)量來進(jìn)行計(jì)算,而超分難度小的像素所對(duì)應(yīng)的區(qū)域應(yīng)分配較小的參數(shù)量。 據(jù)此,提出了一個(gè)自適應(yīng)像素特征精煉模塊來實(shí)現(xiàn)該過程。 該模塊首先根據(jù)不確定圖響應(yīng)圖提供的信息,在網(wǎng)絡(luò)中間層和最高層特征采樣出超分較為困難的像素所對(duì)應(yīng)的特征向量,之后對(duì)于每個(gè)采樣到的特征向量,通過一個(gè)參數(shù)共享的多層感知機(jī)對(duì)特征進(jìn)行進(jìn)一步的融合和精煉,其框架如圖2 所示。
圖2 自適應(yīng)像素特征精煉模塊網(wǎng)絡(luò)框架Fig.2 Network framework of adaptive pixel feature refining module
相比于ClassSR 中對(duì)于整個(gè)子圖像塊中的每個(gè)像素使用同等計(jì)算量進(jìn)行超分的方式,本文方法在每個(gè)子圖像塊內(nèi)部進(jìn)一步使得超分較為困難的子區(qū)域分配到了更多的網(wǎng)絡(luò)參數(shù)進(jìn)行學(xué)習(xí),從而實(shí)現(xiàn)了對(duì)于每個(gè)像素級(jí)子問題分而治之的策略,最終使得整體超分網(wǎng)絡(luò)更加高效。 對(duì)于困難樣本的采樣規(guī)則,采用了與經(jīng)典圖像分割算法PointRend[31]中相同的困難點(diǎn)采樣方式,將不確定度大于0. 065 的像素視為超分困難像素,對(duì)重點(diǎn)像素進(jìn)行采樣的同時(shí),結(jié)合一定比例全圖均勻采樣,以幫助在訓(xùn)練中提升適應(yīng)像素特征精煉模塊的魯棒性。 算法的整個(gè)框架如圖3 所示。
圖3 基于像素級(jí)分治策略的超分網(wǎng)絡(luò)框架Fig.3 Framework of super-resolution network based on pixel-level divide-and-conquer strategy
將各層的特征圖提取出這樣一個(gè)特征張量,通過一個(gè)全連接網(wǎng)絡(luò)進(jìn)行精煉,訓(xùn)練將學(xué)習(xí)超分困難點(diǎn)的修復(fù)。 具體實(shí)現(xiàn)為3 層1×1 卷積網(wǎng)絡(luò),每次將倒數(shù)第2 層特征與其前一層特征按第一維拼起來,通過1×1 卷積后得到的新特征再次重復(fù)拼接,再次通過卷積,然后輸出通過一個(gè)1×1 卷積將通道數(shù)恢復(fù)為倒數(shù)第2 層網(wǎng)絡(luò)的原通道數(shù),并將新特征覆蓋原特征圖,最后通過超分網(wǎng)絡(luò)原本的反卷積層恢復(fù)重建圖像,訓(xùn)練所使用的損失函數(shù)為上述LHCS。
經(jīng)過實(shí)驗(yàn)分析,最終發(fā)現(xiàn)選取第2 層和最高層特征加入提出的自適應(yīng)像素特征精煉模塊會(huì)得到最好的性能。
3.1.1 數(shù)據(jù)集
實(shí)驗(yàn)過程中使用到的數(shù)據(jù)集有DIV2K,DIV8K,Set5,并且有對(duì)這些數(shù)據(jù)集做了重新劃分再使用,先分別簡(jiǎn)單介紹3 個(gè)數(shù)據(jù)集的相關(guān)信息,再?gòu)挠?xùn)練、驗(yàn)證和測(cè)試的角度分別介紹重新劃分使用的情況。
DIV2K[32]:NTIRE2017 超分辨率挑戰(zhàn)賽發(fā)布的用于圖像復(fù)原任務(wù)的高質(zhì)量(2K 分辨率)圖像數(shù)據(jù)集。 DIV2K 數(shù)據(jù)集包含800 張訓(xùn)練圖像,100 張驗(yàn)證圖像和100 張測(cè)試圖像。
DIV8K[33]:DIV8K 是AIM2019 新構(gòu)建的一個(gè)數(shù)據(jù)集,它包含1 500 張分辨率最高達(dá)到8K 的圖像,相比 DIV2K,具有更多樣性的場(chǎng)景,用于進(jìn)行16 pixel 和32 pixel 超分任務(wù)的訓(xùn)練。 此外,還分別有100 張用于驗(yàn)證和測(cè)試的高分辨率圖像。
Set5:該數(shù)據(jù)集是由5 張圖像(“嬰兒”“鳥”“蝴蝶”“頭部”“女人”)組成的數(shù)據(jù)集,通常用于測(cè)試圖像超分辨率模型的性能。
對(duì)以上數(shù)據(jù)集進(jìn)行了重新劃分,以便適應(yīng)實(shí)驗(yàn)需要。 在SR-Module 中使用DIV2K 訓(xùn)練集作為單分支預(yù)訓(xùn)練的訓(xùn)練數(shù)據(jù),首先將DIV2K 訓(xùn)練集中索引為0001~0800 的圖像分別進(jìn)行0. 6,0. 7,0. 8,0.9,1.0 降采樣因子的尺度變換,得到4 000 張?jiān)几叻直媛蕡D像。 接著,將原始高分辨率圖像進(jìn)行模4 取整,再進(jìn)行降采樣4 倍得到4 000 張?jiān)嫉头直媛蕡D像。 然后,將原始高分辨率圖像和原始低分辨率圖像分別進(jìn)行裁剪成1 594 077 張的128 pixel×128 pixel 的高分辨率子圖像,以及1 594 077 張的32 pixel×32 pixel 的低分辨率子圖像,根據(jù)這些子圖像通過MSRResNet[34]的峰值信噪比(Peak Signal to Noise Ratio,PSNR)值,將子圖像平均分為3 類(高分辨率子圖像和低分辨率子圖像分別各自分類)。最后,獲得用于SR-Module 預(yù)訓(xùn)練的“簡(jiǎn)單、中等、困難”數(shù)據(jù)集。 SR-Module 使用的驗(yàn)證集為Set5。
將DIV2K 驗(yàn)證集高分辨率圖中索引為0801~0900 的圖像,以及低分辨率圖中索引為0801×4~0900×4 的圖像,進(jìn)行裁剪得到高分辨率128 pixel×128 pixel 以及低分辨率32 pixel×32 pixel 的子圖像,根據(jù)這些子圖像通過MSRResNet 的PSNR 值,將子圖像平均分為3 類(高分辨率子圖像和低分辨率子圖像分別各自分類)作為SR-Module 測(cè)試集。
本文方法的分類模塊使用上述步驟中生成的1 594 077 張的128 pixel×128 pixel 高分辨率子圖像,以及1 594 077 張的32 pixel×32 pixel 低分辨率子圖像作為訓(xùn)練集,不需要將子圖像進(jìn)行PSNR 值的分類,Class-Module 將通過訓(xùn)練學(xué)習(xí)將子圖像自適應(yīng)分類。 從DIV2K 驗(yàn)證集中選擇了10 張圖像(索引為0801~0810)在Class-Module 訓(xùn)練期間作為驗(yàn)證集。
分類模塊的測(cè)試集來自DIV8K,共300 張?jiān)紙D(索引為1201~1500)。 索引1201~1300 的圖像下采樣為2K 分辨率的高分辨率圖,并再次下采樣4 倍作為低分辨率圖。 索引1301~1400 的圖像下采樣為4K 分辨率的高分辨率圖,并再次下采樣4 倍作為低分辨率圖。 索引1401~1500 的圖像直接作為高分辨率圖,并再次下采樣4 倍作為低分辨率圖。所有圖像均通過與訓(xùn)練階段一樣的裁剪得到子圖像,但不需要將子圖像進(jìn)行PSNR 值的分類,以此得到分類模塊的測(cè)試集。
3.1.2 實(shí)驗(yàn)參數(shù)設(shè)置
在實(shí)驗(yàn)中,同ClassSR 類似,本文方法分為超分模塊和分類模塊。 超分模塊訓(xùn)練與測(cè)試使用的圖像均為32 pixel×32 pixel 的子圖像,分類模塊訓(xùn)練使用的圖像為32 pixel×32 pixel 的子圖像,測(cè)試使用的圖像是2K/4K/8K 的大圖像。 本實(shí)驗(yàn)分為2 階段訓(xùn)練:先是超分模塊的預(yù)訓(xùn)練,然后是分類模塊的聯(lián)合訓(xùn)練。 超分模塊預(yù)訓(xùn)練使用的網(wǎng)絡(luò)結(jié)構(gòu)為FSRCNN原超分網(wǎng)絡(luò)并入PRM 模塊,3 個(gè)分支(simple,medium,hard)的中間層卷積層通道數(shù)分別是16,36,56,訓(xùn)練batch 大小設(shè)置為64,網(wǎng)絡(luò)使用的學(xué)習(xí)率下降策略為CosineAnnealingLR,初始學(xué)習(xí)率為10-3,訓(xùn)練周期為500 000 個(gè)iter,最小學(xué)習(xí)率為10-7。 分類模塊網(wǎng)絡(luò)結(jié)構(gòu)選用ClassSR 原網(wǎng)絡(luò)結(jié)構(gòu),訓(xùn)練batch 大小設(shè)置為96,網(wǎng)絡(luò)使用的學(xué)習(xí)率下降策略為CosineAnnealingLR,初始學(xué)習(xí)率為2×10-4,訓(xùn)練周期為200 000 個(gè)iter,最小學(xué)習(xí)率為10-7。 實(shí)驗(yàn)過程中,先對(duì)超分模塊進(jìn)行3 個(gè)分支(simple,medium,hard)的預(yù)訓(xùn)練,然后先固定分支超分網(wǎng)絡(luò)權(quán)重聯(lián)合訓(xùn)練分類模塊,最后再進(jìn)行finetune。 算法實(shí)現(xiàn)所采用的深度學(xué)習(xí)框架為PyTorch,并在一塊NVIDIA GeForce RTX 3090 上進(jìn)行實(shí)驗(yàn)。
DIV2K:將自劃分的DIV8K 的子集(test2K,test4K,test8K)作為測(cè)試集,將本文提出的方法與現(xiàn)有主流方法進(jìn)行性能對(duì)比,如表1 所示。
表1 不同超分加速算法在DIV8K 測(cè)試集上PSNR 性能對(duì)比Tab.1 Comparison of different super-resolution acceleration methods on DIV8K test set in terms of PSNR
同其他基于分治策略的超分加速方法類似,本文的主干網(wǎng)絡(luò)均支持任意結(jié)構(gòu)和參數(shù)量的網(wǎng)絡(luò),為了公平,所有方法中用于加速的原始網(wǎng)絡(luò)均采用FSRCNN 方法[35]中的超分網(wǎng)絡(luò)。 同時(shí),由于本文方法相比ClassSR 增加了少量計(jì)算量,在實(shí)驗(yàn)中采用了通道數(shù)更少的ClassSR 版本用于本文的基準(zhǔn)方法,使其整體計(jì)算復(fù)雜度不高于原始的ClassSR 方法,從而便于對(duì)比各方法的加速效率。 由表1 可以看出,本文方法在計(jì)算復(fù)雜度更低的前提下,性能仍不低于原始版本ClassSR 方法,該現(xiàn)象說明了本文方法所使用的像素級(jí)分治策略相比子圖像塊級(jí)的分治策略,可更為精細(xì)地對(duì)不同局部區(qū)域分配合理且不同的參數(shù)量進(jìn)行超分計(jì)算,最終有效提升了超分網(wǎng)絡(luò)的加速效率。
為了驗(yàn)證提出的基于像素級(jí)分治策略的超分網(wǎng)絡(luò)加速方法中各個(gè)模塊發(fā)揮的作用,通過控制變量配置了3 組不同的實(shí)驗(yàn)并在DIV8K 的子集(test2K,test4K,test8K)上進(jìn)行了測(cè)試和分析。 為了公平對(duì)比各個(gè)方法,本文實(shí)驗(yàn)中所使用的主干網(wǎng)絡(luò)均為ClassSR-FSRCNN 網(wǎng)絡(luò),輸入圖片的尺度均為32 pixel×32 pixel,通道縮減后的輕量化FSRCNN 組合的通道數(shù)分別為14,32,50,其中14 用于簡(jiǎn)單子圖像塊,32用于中等子圖像塊,50 用于困難子圖像塊。
為了驗(yàn)證所提出的聯(lián)合困難像素挖掘的重建損失函數(shù)的有效性,在原始基于子圖像塊分治加速的ClassSR 方法中將L1重建損失函數(shù)替換為提出的聯(lián)合困難像素挖掘的重建損失函數(shù)進(jìn)行實(shí)驗(yàn),并采用DIV8K 測(cè)試集進(jìn)行評(píng)估,結(jié)果如表2 所示。
表2 各模塊對(duì)整體算法性能的影響Tab.2 Influence of different modules on the overall algorithm performance
加入聯(lián)合困難像素挖掘的重建損失函數(shù)將ClassSR 在test2K,test4K 和test8K 三個(gè)測(cè)試集上的PSNR 值分別提升了0. 25,0. 35,0. 17 dB。 該現(xiàn)象說明,在重建學(xué)習(xí)的過程中引入不確定估計(jì)可動(dòng)態(tài)自適應(yīng)地調(diào)節(jié)困難像素點(diǎn)的學(xué)習(xí)權(quán)重,使得網(wǎng)絡(luò)更專注于容易優(yōu)化的誤差,從而更好地發(fā)揮網(wǎng)絡(luò)的擬合能力。
為了驗(yàn)證所提出的自適應(yīng)像素特征精煉模塊的有效性,進(jìn)一步在聯(lián)合困難像素挖掘的重建損失函數(shù)所訓(xùn)練的ClassSR 網(wǎng)絡(luò)的基礎(chǔ)上加入該模塊對(duì)困難像素點(diǎn)進(jìn)行挖掘和特征修復(fù)。 由表2 可以看出,加入自適應(yīng)像素特征精煉模塊后,本方法在test2K,test4K 和test8K 三個(gè)測(cè)試集上的PSNR 值分別進(jìn)一步提升了1.58,0.77,0.78 dB。 可見,由于2K 測(cè)試集分辨率最低,其超分困難像素點(diǎn)的數(shù)量占比也相對(duì)最多,因此,加入困難像素的特征修復(fù)對(duì)該測(cè)試集的性能提升更為顯著。 同時(shí), 相比原始版的ClassSR,在不損失PSNR 精度的前提下,在test2K,test4K 和test8K 三個(gè)測(cè)試集上的分別節(jié)省了8%,9.8%和12.2%的計(jì)算復(fù)雜度。 可見,本文方法可實(shí)現(xiàn)在復(fù)雜度更低的條件下,得到更高的性能。
困難像素點(diǎn)采樣閾值分析:根據(jù)網(wǎng)絡(luò)預(yù)測(cè)的不確定度響應(yīng)圖判斷每個(gè)像素點(diǎn)的超分難度,并按照固定的采樣比例,將超分困難度最高的前N個(gè)像素點(diǎn)特征通過多層感知機(jī)進(jìn)行特征修復(fù)。 為了分析困難點(diǎn)采樣比例對(duì)性能的影響,統(tǒng)計(jì)了不同采樣比例下最終模型的性能表現(xiàn),并用DIV8K 的test2K 子集進(jìn)行評(píng)估,如表3 所示。
表3 不同超分困難像素點(diǎn)采樣比例對(duì)性能和計(jì)算復(fù)雜度的影響Tab.3 Influence of different difficult pixel point sampling rate on performance and FLOPs
提升困難樣本采樣率對(duì)計(jì)算復(fù)雜度的影響不大,且當(dāng)困難像素點(diǎn)特征的采樣率達(dá)到0.065 時(shí),取得了最優(yōu)的性能25.75 dB。 當(dāng)采樣率更高時(shí),性能逐漸退化,由于特征修復(fù)模塊的參數(shù)量較小,因此,過多的困難像素點(diǎn)加入訓(xùn)練影響了其網(wǎng)絡(luò)的泛化能力。
特征修復(fù)層選取分析:由于困難像素點(diǎn)特征的修復(fù)可選用網(wǎng)絡(luò)的任意中間層與最高層進(jìn)行融合,為了分析不同特征層的選取對(duì)算法超分性能的影響,實(shí)驗(yàn)了在不同層加入自適應(yīng)像素特征精煉模塊后對(duì)像素特征進(jìn)行修復(fù)后網(wǎng)絡(luò)的性能表現(xiàn),并采用DIV8K 的test2K 子集進(jìn)行評(píng)估,結(jié)果如表4 所示。發(fā)現(xiàn)使用第2 層的特征進(jìn)行融合修復(fù)后取得了最優(yōu)的性能,此時(shí)可以更好地結(jié)合低層和高層的特征信息進(jìn)行全局的優(yōu)化。
表4 選取不同層進(jìn)行特征修復(fù)對(duì)性能的影響Tab.4 Influence of selecting different layer to apply feature refining on performance
參數(shù)量和推理時(shí)間:為了分析所提出的像素級(jí)分治加速法在參數(shù)量和實(shí)際硬件推理時(shí)間上的表現(xiàn),與原始ClassSR 工作進(jìn)行了對(duì)比,并采用DIV8K的test2K 子集進(jìn)行評(píng)估,結(jié)果如表5 所示。
表5 不同超分加速算法的參數(shù)量及硬件推理速度對(duì)比Tab.5 Comparison of different super-resolution acceleration methods in terms of parameters and hardware inference speed
提出的方法由于引進(jìn)了不確定度估計(jì)和像素精煉模塊,在參數(shù)量上有一定的增加,但由于所增加模塊的硬件友好性,在PSNR 和SSIM 性能不下降的前提下,仍然顯著快于基于子圖像塊分治策略的ClassSR 方法,從而驗(yàn)證了本文方法在算法加速方面的有效性。
為了定性地驗(yàn)證本文方法進(jìn)行像素級(jí)分治策略的實(shí)際意義,通過實(shí)驗(yàn)對(duì)不同像素點(diǎn)的超分困難度進(jìn)行了可視化。 如圖4 第3 列所示,本文方法很好地將塔尖、山峰等邊緣高頻信號(hào)位置的像素點(diǎn)作為困難點(diǎn)進(jìn)行挖掘。 相比圖4 第2 列中ClassSR 所使用的子圖像塊級(jí)別的子問題分類方法,本文方法更為精細(xì),從而對(duì)整體的計(jì)算量進(jìn)行了更合理地分配,最終實(shí)現(xiàn)了更為高效的圖像超分網(wǎng)絡(luò)加速方法。圖5 展示了本文方法和基于子圖像塊級(jí)別分治策略的ClassSR 方法的超分結(jié)果對(duì)比,實(shí)驗(yàn)中2 個(gè)方法采用相同通道數(shù)配置的主干網(wǎng)絡(luò),可見本文方法在細(xì)節(jié)上的表現(xiàn)更優(yōu)于ClassSR 方法。
圖4 像素級(jí)子問題分解和子圖像塊級(jí)子問題分解對(duì)比示例Fig.4 Examples of image patch-level divide-and-conquer result and pixel-level divide-and-conquer result
圖5 不同方法的超分辨率結(jié)果圖示例Fig.5 Super-resolution results of different methods
在現(xiàn)有基于分治策略的圖像超分加速算法將大圖像的超分問題分解成不同子圖像塊的超分問題,并根據(jù)每個(gè)子圖像塊的超分難易程度,使用不同復(fù)雜度規(guī)模的網(wǎng)絡(luò)對(duì)其分別進(jìn)行超分處理,然而,該分治策略僅將子問題分解到了子圖像塊級(jí)別,尚未達(dá)到最優(yōu)的加速效果。 基于該問題,本文提出了基于像素級(jí)分治策略的超分網(wǎng)絡(luò)加速方法,將分治策略的子問題細(xì)化到像素級(jí)。 引入不確定度估計(jì)思想,提出了聯(lián)合困難像素挖掘的重建損失函數(shù)挖掘每個(gè)像素點(diǎn)的超分難度,并設(shè)計(jì)了一個(gè)自適應(yīng)像素特征精煉模塊對(duì)采樣的困難像素特征進(jìn)行修復(fù),從而實(shí)現(xiàn)了為不同像素分配不同規(guī)模的計(jì)算量的方式來進(jìn)行超分算法加速。 通過在DIV2K 和DIV8K 公開集上的實(shí)驗(yàn)驗(yàn)證,本文方法相比現(xiàn)有基于分治策略的超分加速方法得到了顯著的效率提升。