劉智軒, 陸善貴, 藍如師
(1.桂林電子科技大學 廣西圖像圖形與智能處理重點實驗室, 廣西 桂林 541004;2.品創科技有限公司, 廣西 桂林 541004)
圖像超分辨率重建技術是將輸入模糊、包含信息較少的低分辨率圖像重建為清晰、包含更多信息的高分辨率圖像,是計算機視覺領域的一個經典問題。 生成圖像還可以為下游的計算機視覺相關任務提供服務,如目標檢測[1-3]、目標定位[4-5]等,可以增強任務效果,提高識別正確率。 在現實生活中,圖像超分辨率重建應用前景十分廣泛,如醫學成像[6-7]、安全監測[7]和圖像壓縮[8-9]等領域。
隨著深度學習在計算機視覺領域取得巨大成功,基于深度學習的圖像超分技術也成為現今研究的主流方向,如最早基于卷積神經網絡(Convolution Neural Network,CNN)的SRCNN[10]、基于生成對抗網 絡( Generative Adversarial Network, GAN) 的SRGAN[11]。 然而,基于深度學習的圖像超分算法雖然性能較高,但其計算復雜度通常會隨分辨率指數級上升,難以滿足現在4K 或8K 的超分應用場景上對于輕量模型且低算力功耗的要求。 因此,算法加速是圖像超分領域的一個重要研究方向。 當前的超分算法加速主要研究方向分為2 大類:基于輕量化網絡結構設計的超分加速方法研究和基于分治策略的超分加速方法研究。 其中,基于網絡結構設計的加速方法[12-13]針對超分網絡的結構進行設計改進,往往要求超分算法使用特定的網絡,難以根據應用場景中算力條件復雜多變的需求靈活地調整算法復雜度,而基于分治策略的超分算法加速研究[14]針對整個算法的流程框架進行設計改進,不限于特定的網絡結構,因此靈活度較高,可適用于更廣泛的超分算法和應用場景。 因此,本文選取基于分治策略的圖像超分加速方法進行研究。
現有分治加速法將大圖像的超分問題分解成不同子圖像塊的超分問題[15],并根據每個子圖像塊的超分難易程度,使用不同計算復雜度規模的網絡分別進行超分處理。 具體來說,處于較平滑區域的子圖由于信號強度變化緩慢且均勻,因此超分的難度較小,使用較小的計算復雜度即可對其超分過程進行建模。 而處于邊緣區域的子圖由于所含高頻信號較多,需要較為復雜的數學模型才可建模出所需的超分過程,即需要設計復雜度較高的網絡結構來實現較好的超分效果。 總的來說,分治加速法中對每個子圖的超分過程采用動態的網絡參數量分配策略,相比傳統固定的參數量分配策略,有效減少了冗余計算。 然而,該分治策略僅將子問題分解到了子圖像塊級別,而每個子圖中,不同子區域仍可進一步劃分出不同的超分難度,因此傳統基于子圖像塊級的分治加速法尚未達到最優的加速效果。
基于上述問題,將分治策略中所分解的每個子問題從子圖像塊級進一步細化到像素級,根據不同像素所在位置的超分難易程度采用不同復雜度規模的網絡來分而治之,從而在同等計算復雜度的限制條件下,進一步挖掘網絡的潛在能力,最終實現更為高效的加速算法。 現有基于分治加速的圖像超分方法可分為2 個關鍵模塊:一是子問題分類模塊,用于估計每個子問題的超分難易程度;二是圖像超分模塊,用于對每個子問題進行處理,即對其所屬的圖像區域進行超分。 首先,針對模塊一,需要對每個像素的超分難易程度進行估計,不確定度估計大圖像的超分問題分解成不同子圖像塊的超分問題[16]是經典的用于研究如何估計網絡對其認知結果不確定性的方法,本文引入該思想用于評估圖像中每個像素所在位置的超分難度。 對于圖像中的每個像素所在位置,預測一個不確定度用于代表該位置的超分難度。 其次,針對模塊二,本文提出了一個自適應像素特征精煉模塊,根據每個像素的超分難易度,對超分困難的像素點高層特征進一步修正,從而實現了為不同像素所在區域的超分分配了不同規模的計算量,相比現有基于子圖像塊的計算量分配策略,本文方法更加精細且合理,最終實現了更為高效的圖像超分方法。
本文方法的貢獻分為3 點:
① 針對基于分治策略的圖像超分加速問題,將現有方法中的子問題分解,從子圖像塊級進一步深入到了像素級,提出了基于像素級分治策略的超分網絡加速方法,為不同像素所對應區域分配不同規模的計算量來實現超分過程,從而實現了更加高效的超分加速策略。 實驗表明,本方法在相同計算復雜度的情況下,性能顯著超越了現有基于分治策略的圖像超分加速工作。
② 提出了一個聯合困難像素挖掘的重建損失函數,損失函數可使得網絡在重建超分辨率圖像的同時,通過無監督自適應的學習預測出每個像素的超分難易程度,用于為每個像素點所在位置的超分分配更加合理的計算量。
③ 提出了一個自適應像素特征精煉模塊,根據每個像素的超分難度,對超分困難的像素點特征進行采樣,并通過一個共享參數的多層感知機結構對所選取的像素點特征進行特征修復,相比現有基于子圖像塊的計算量分配策略,更加精細且合理。
盡管相關研究已經取得了重大進展,但現有的輕量級圖像超分辨率模型還需要進行比較深入和廣泛的研究,并且輕量級圖像超分辨任務經常需要處理大型圖像。 研究人員提出了多種技術,主要是基于插值的方法,如雙線性插值、雙三次插值、曲率插值和自適應圖像插值;基于重建的方法,如迭代反投影法、凸集投影法和最大后驗概率法;以及基于示例的學習方法,如鄰域嵌入方法、稀疏表示方法和回歸圖像插值方法。 然而,傳統方法不能重建圖像的高頻細節,因為輕量級圖像的超分辨率是一個難以解決的問題。 隨著機器學習在計算機視覺領域的發展,深度學習已廣泛應用于輕量級圖像超分辨率重建任務,并具有良好的重建效果。 如今,基于深度學習的輕量級圖像超分辨率方法正逐漸受到關注。 下面介紹輕量級圖像超分辨率的一些相關理論和技術成果。
大多數輕量級超分辨率算法在重建過程中必須經常解決最小二乘問題,從而增加了系統的總體計算負載[17]。 為了解決這個問題,Hardiansyah 等[18]提出了“錨定鄰域回歸”(Anchored Neighborhood Regression,ANR)模型,該模型基于局部線性回歸方法,顯著提高了重建速度。 Choi 等[19]提出了基于局部線性映射和回歸方法的基于GLM-SI 的局部回歸方法。 該方法使用KNN 在執行局部回歸以獲得全局圖像之前生成大量的局部候選,還可以進一步改善高分辨率圖像塊之間的映射關系,從而提高重建圖像的質量。 此外,基于局部線性映射的全局回歸算法在計算方面優于傳統的CNN 輕量級超分辨率算法。
用于輕量級圖像超分辨率的傳統局部線性回歸算法中的重建高分辨率圖像僅來自訓練集附近的相鄰樣本,因此該模型的表達能力非常有限,嚴重限制了重建圖像的質量。 在某種程度上,鄰域嵌入可以解決這個問題。 劉磊等[20]提出了一種基于鄰域嵌入的超分辨率算法。 在輕量級圖像的超分辨率問題中,在每個檢測到的圖像塊的訓練集中找到K個相鄰點的低頻圖像塊,并使用最小二乘法計算其重建權重,一定程度上解決了相關問題。
當處理輕量級圖像的超分辨率問題時,稀疏表示可以基于每個檢測到的圖像塊自適應地確定對應字典單元的數量[21]。 為了獲得更好的重建邊緣和紋理,不需要預先確定相鄰點K。 為了優化超分辨率重建問題,葛鵬等[22]提出了稀疏先驗概念來約束超分辨率問題。 基于稀疏表達式的超分辨率技術能以比稀疏信號的奈奎斯特采樣理論更低的頻率進行采樣,從而準確地重建信號[23]。
基于K-NN 學習的輕量化圖像超分辨率重建技術使用馬爾可夫網絡建立高分辨率圖像和高分辨率場景之間的關系模型,并使用信號傳播算法對高分辨率圖像進行最大后驗估計[24]。 K-NN 算法通過對圖像的初始值進行預處理,改善了圖像的邊緣、脊、角和其他區域,有效降低了輕量化圖像的超分辨率重建的模糊性[25]。 然而,這類算法的重建質量嚴重依賴于樣本的數量,這增加了計算負載,使其不適合實際使用。 此外,如果訓練集中的輸入圖像與訓練集的結構不一致,則重建效果將顯著降低。
隨著近年來深度學習技術的快速發展和成功應用,基于深度神經網絡的輕量級圖像超分辨率重建方法引起了許多研究人員的興趣[10]。 基于深度學習的輕量級圖像超分辨率重建方法采用多層神經網絡直接在低分辨率和高分辨率圖像之間建立端到端的非線性映射關系[26]。 例如,LapSRN 使用漸進方法來提高圖像分辨率,但它會在網絡中間生成大尺寸的特征映射,導致網絡計算顯著增加[27];CARN通過級聯機制集成了多個級別的信息,由于使用了密集連接,引入了許多參數和計算[28];IDN 使用信息蒸餾機制通過跳過連接傳輸一些特征,以減少網絡參數的數量[29],但不能有效地過濾掉需要進一步細化的重要特征,模型性能還有進一步提高的空間。因此,基于深度學習的輕量級圖像超分辨率技術仍是一個值得深入研究的課題。
針對分治加速,選取基于分治策略的圖像超分加速算法進行研究,在該研究領域,最具代表性的方法是ClassSR[30],因此,選取該方法作為本文的基準,下面首先對ClassSR 進行簡要的介紹。
ClassSR 通過將分類和圖像超分結合在一個統一的框架中來實現分治加速策略。 具體來說,首先,將每張輸入的原始圖像劃分成不同的子圖像塊,對每個子圖像塊的超分可看作一個單獨的子問題進行處理;其次,使用分類模塊根據每個子圖像塊超分的難易程度將其分類為不同的類別;最后,應用圖像超分模塊對不同類別的子圖像塊分別執行超分過程。其中,分類模塊采用傳統的分類網絡,而圖像超分模塊是由待加速的原始超分網絡及其通道縮減后的輕量化版本組成的網絡集合。 經過聯合訓練,大部分被分類模塊劃為易超分的子圖像塊,將通過小規模的網絡進行超分,因此可以顯著降低計算成本。
ClassSR 將每個圖像塊的超分看作一個子問題,從而通過合理分配每個子圖像塊的超分計算量來達到網絡加速的目的。 借鑒該工作的思想,認為當子問題被劃分的更小時,整個超分網絡的計算量會被分配的更為合理,從而得到更好的整體加速效果。 因此,在ClassSR 基礎上把子問題進一步劃分到了比圖像塊更精細的像素級,根據低分辨率圖像中每個像素所對應子區域的超分難易程度,分配不同大小的計算量,從而得到更好的整體加速效果,子圖像塊級分治策略和像素級分治策略的精細程度對比如圖1 所示。

圖1 子圖像塊級分治和像素級分治策略的子問題精細程度對比Fig.1 Fineness comparison of sub-problem between image patch level divide-and-conquer strategy and pixel level divide-and-conquer strategy
在ClassSR 所采用的分治策略下,為了實現像素級的分治加速法,首先要從原始低分辨率圖像中估計得到每個像素所對應子區域的超分難易程度,進而設計不同復雜度規模的超分網絡對其分而治之。
然而,該問題的解并不直觀,無法沿用ClassSR的方式直接將每個超像素單獨輸入到分類網絡去預測超分難易度。 具體來說,單一像素所對應的子區域由于在圖像中的覆蓋范圍極小,導致該范圍內的圖像信號變化均很微弱,因此,無法僅通過單一像素所提供的信息判別出其超分的難易程度,需要一定的上下文信息作為輔助。 為了解決該問題,在保留ClassSR 的主體結構,仍將原圖像劃為多個子圖像塊分別作為網絡輸入的同時,為每個超分網絡額外增加一個分支,預測出一個與輸入圖像比例相同的得分響應圖,該響應圖每個位置的值即用于表示該位置像素的超分難易程度。 從結構上分析,由于該響應圖在CNN 的高層預測得到,每個位置均具有較大的感受野,可以有效地利用到上下文信息,從而解決了單一像素上下文信息不足的問題。
在感受野足夠的條件下,另一個核心問題是對像素超分難度的預測,受不確定度估計工作的啟發,將原有圖像超分網絡所使用的L1像素重建損失函數改進成一個聯合困難像素挖掘的重建損失函數,該損失函數可使得網絡在重建超分辨率圖像的同時,通過無監督學習預測出每個像素的超分難易程度。 公式為:
式中,fH(x)i為ground-truth 高分辨率圖片上第i個位置的像素值;Hi為超分網絡預測的高分辨率圖片中第i個位置的像素值;fS(x)i為超分網絡預測的不確定度響應圖上第i個位置的響應值,即i像素所對應的不確定度。 可見,當目標像素所對應的子區域難以通過超分重建出來時,式(1)第1 項中重建損失的值會較大,此時,為了使得網絡整體損失平衡在一個較小的值,需要犧牲第2 項,通過預測一個較大的不確定度值fS(x)i來減小第1 項的損失大小。可見,fS(x)i值的大小與訓練樣本中像素i的重建誤差正相關,因此可用來表示該位置像素的超分難度。 在具體實現時,在網絡的最后一層增加一個輸出通道來表示不確定度的響應圖,與高分辨率圖像一起輸出,使得不確定響應圖與高分辨率圖像具有相同的尺度和大小。
得到每個像素的超分難易度后,需要根據該超分難易度,為每個像素所對應子區域自適應分配合理規模的計算量進行超分,超分難度大的像素所對應區域應分配較大的參數量來進行計算,而超分難度小的像素所對應的區域應分配較小的參數量。 據此,提出了一個自適應像素特征精煉模塊來實現該過程。 該模塊首先根據不確定圖響應圖提供的信息,在網絡中間層和最高層特征采樣出超分較為困難的像素所對應的特征向量,之后對于每個采樣到的特征向量,通過一個參數共享的多層感知機對特征進行進一步的融合和精煉,其框架如圖2 所示。

圖2 自適應像素特征精煉模塊網絡框架Fig.2 Network framework of adaptive pixel feature refining module
相比于ClassSR 中對于整個子圖像塊中的每個像素使用同等計算量進行超分的方式,本文方法在每個子圖像塊內部進一步使得超分較為困難的子區域分配到了更多的網絡參數進行學習,從而實現了對于每個像素級子問題分而治之的策略,最終使得整體超分網絡更加高效。 對于困難樣本的采樣規則,采用了與經典圖像分割算法PointRend[31]中相同的困難點采樣方式,將不確定度大于0. 065 的像素視為超分困難像素,對重點像素進行采樣的同時,結合一定比例全圖均勻采樣,以幫助在訓練中提升適應像素特征精煉模塊的魯棒性。 算法的整個框架如圖3 所示。

圖3 基于像素級分治策略的超分網絡框架Fig.3 Framework of super-resolution network based on pixel-level divide-and-conquer strategy
將各層的特征圖提取出這樣一個特征張量,通過一個全連接網絡進行精煉,訓練將學習超分困難點的修復。 具體實現為3 層1×1 卷積網絡,每次將倒數第2 層特征與其前一層特征按第一維拼起來,通過1×1 卷積后得到的新特征再次重復拼接,再次通過卷積,然后輸出通過一個1×1 卷積將通道數恢復為倒數第2 層網絡的原通道數,并將新特征覆蓋原特征圖,最后通過超分網絡原本的反卷積層恢復重建圖像,訓練所使用的損失函數為上述LHCS。
經過實驗分析,最終發現選取第2 層和最高層特征加入提出的自適應像素特征精煉模塊會得到最好的性能。
3.1.1 數據集
實驗過程中使用到的數據集有DIV2K,DIV8K,Set5,并且有對這些數據集做了重新劃分再使用,先分別簡單介紹3 個數據集的相關信息,再從訓練、驗證和測試的角度分別介紹重新劃分使用的情況。
DIV2K[32]:NTIRE2017 超分辨率挑戰賽發布的用于圖像復原任務的高質量(2K 分辨率)圖像數據集。 DIV2K 數據集包含800 張訓練圖像,100 張驗證圖像和100 張測試圖像。
DIV8K[33]:DIV8K 是AIM2019 新構建的一個數據集,它包含1 500 張分辨率最高達到8K 的圖像,相比 DIV2K,具有更多樣性的場景,用于進行16 pixel 和32 pixel 超分任務的訓練。 此外,還分別有100 張用于驗證和測試的高分辨率圖像。
Set5:該數據集是由5 張圖像(“嬰兒”“鳥”“蝴蝶”“頭部”“女人”)組成的數據集,通常用于測試圖像超分辨率模型的性能。
對以上數據集進行了重新劃分,以便適應實驗需要。 在SR-Module 中使用DIV2K 訓練集作為單分支預訓練的訓練數據,首先將DIV2K 訓練集中索引為0001~0800 的圖像分別進行0. 6,0. 7,0. 8,0.9,1.0 降采樣因子的尺度變換,得到4 000 張原始高分辨率圖像。 接著,將原始高分辨率圖像進行模4 取整,再進行降采樣4 倍得到4 000 張原始低分辨率圖像。 然后,將原始高分辨率圖像和原始低分辨率圖像分別進行裁剪成1 594 077 張的128 pixel×128 pixel 的高分辨率子圖像,以及1 594 077 張的32 pixel×32 pixel 的低分辨率子圖像,根據這些子圖像通過MSRResNet[34]的峰值信噪比(Peak Signal to Noise Ratio,PSNR)值,將子圖像平均分為3 類(高分辨率子圖像和低分辨率子圖像分別各自分類)。最后,獲得用于SR-Module 預訓練的“簡單、中等、困難”數據集。 SR-Module 使用的驗證集為Set5。
將DIV2K 驗證集高分辨率圖中索引為0801~0900 的圖像,以及低分辨率圖中索引為0801×4~0900×4 的圖像,進行裁剪得到高分辨率128 pixel×128 pixel 以及低分辨率32 pixel×32 pixel 的子圖像,根據這些子圖像通過MSRResNet 的PSNR 值,將子圖像平均分為3 類(高分辨率子圖像和低分辨率子圖像分別各自分類)作為SR-Module 測試集。
本文方法的分類模塊使用上述步驟中生成的1 594 077 張的128 pixel×128 pixel 高分辨率子圖像,以及1 594 077 張的32 pixel×32 pixel 低分辨率子圖像作為訓練集,不需要將子圖像進行PSNR 值的分類,Class-Module 將通過訓練學習將子圖像自適應分類。 從DIV2K 驗證集中選擇了10 張圖像(索引為0801~0810)在Class-Module 訓練期間作為驗證集。
分類模塊的測試集來自DIV8K,共300 張原始圖(索引為1201~1500)。 索引1201~1300 的圖像下采樣為2K 分辨率的高分辨率圖,并再次下采樣4 倍作為低分辨率圖。 索引1301~1400 的圖像下采樣為4K 分辨率的高分辨率圖,并再次下采樣4 倍作為低分辨率圖。 索引1401~1500 的圖像直接作為高分辨率圖,并再次下采樣4 倍作為低分辨率圖。所有圖像均通過與訓練階段一樣的裁剪得到子圖像,但不需要將子圖像進行PSNR 值的分類,以此得到分類模塊的測試集。
3.1.2 實驗參數設置
在實驗中,同ClassSR 類似,本文方法分為超分模塊和分類模塊。 超分模塊訓練與測試使用的圖像均為32 pixel×32 pixel 的子圖像,分類模塊訓練使用的圖像為32 pixel×32 pixel 的子圖像,測試使用的圖像是2K/4K/8K 的大圖像。 本實驗分為2 階段訓練:先是超分模塊的預訓練,然后是分類模塊的聯合訓練。 超分模塊預訓練使用的網絡結構為FSRCNN原超分網絡并入PRM 模塊,3 個分支(simple,medium,hard)的中間層卷積層通道數分別是16,36,56,訓練batch 大小設置為64,網絡使用的學習率下降策略為CosineAnnealingLR,初始學習率為10-3,訓練周期為500 000 個iter,最小學習率為10-7。 分類模塊網絡結構選用ClassSR 原網絡結構,訓練batch 大小設置為96,網絡使用的學習率下降策略為CosineAnnealingLR,初始學習率為2×10-4,訓練周期為200 000 個iter,最小學習率為10-7。 實驗過程中,先對超分模塊進行3 個分支(simple,medium,hard)的預訓練,然后先固定分支超分網絡權重聯合訓練分類模塊,最后再進行finetune。 算法實現所采用的深度學習框架為PyTorch,并在一塊NVIDIA GeForce RTX 3090 上進行實驗。
DIV2K:將自劃分的DIV8K 的子集(test2K,test4K,test8K)作為測試集,將本文提出的方法與現有主流方法進行性能對比,如表1 所示。

表1 不同超分加速算法在DIV8K 測試集上PSNR 性能對比Tab.1 Comparison of different super-resolution acceleration methods on DIV8K test set in terms of PSNR
同其他基于分治策略的超分加速方法類似,本文的主干網絡均支持任意結構和參數量的網絡,為了公平,所有方法中用于加速的原始網絡均采用FSRCNN 方法[35]中的超分網絡。 同時,由于本文方法相比ClassSR 增加了少量計算量,在實驗中采用了通道數更少的ClassSR 版本用于本文的基準方法,使其整體計算復雜度不高于原始的ClassSR 方法,從而便于對比各方法的加速效率。 由表1 可以看出,本文方法在計算復雜度更低的前提下,性能仍不低于原始版本ClassSR 方法,該現象說明了本文方法所使用的像素級分治策略相比子圖像塊級的分治策略,可更為精細地對不同局部區域分配合理且不同的參數量進行超分計算,最終有效提升了超分網絡的加速效率。
為了驗證提出的基于像素級分治策略的超分網絡加速方法中各個模塊發揮的作用,通過控制變量配置了3 組不同的實驗并在DIV8K 的子集(test2K,test4K,test8K)上進行了測試和分析。 為了公平對比各個方法,本文實驗中所使用的主干網絡均為ClassSR-FSRCNN 網絡,輸入圖片的尺度均為32 pixel×32 pixel,通道縮減后的輕量化FSRCNN 組合的通道數分別為14,32,50,其中14 用于簡單子圖像塊,32用于中等子圖像塊,50 用于困難子圖像塊。
為了驗證所提出的聯合困難像素挖掘的重建損失函數的有效性,在原始基于子圖像塊分治加速的ClassSR 方法中將L1重建損失函數替換為提出的聯合困難像素挖掘的重建損失函數進行實驗,并采用DIV8K 測試集進行評估,結果如表2 所示。

表2 各模塊對整體算法性能的影響Tab.2 Influence of different modules on the overall algorithm performance
加入聯合困難像素挖掘的重建損失函數將ClassSR 在test2K,test4K 和test8K 三個測試集上的PSNR 值分別提升了0. 25,0. 35,0. 17 dB。 該現象說明,在重建學習的過程中引入不確定估計可動態自適應地調節困難像素點的學習權重,使得網絡更專注于容易優化的誤差,從而更好地發揮網絡的擬合能力。
為了驗證所提出的自適應像素特征精煉模塊的有效性,進一步在聯合困難像素挖掘的重建損失函數所訓練的ClassSR 網絡的基礎上加入該模塊對困難像素點進行挖掘和特征修復。 由表2 可以看出,加入自適應像素特征精煉模塊后,本方法在test2K,test4K 和test8K 三個測試集上的PSNR 值分別進一步提升了1.58,0.77,0.78 dB。 可見,由于2K 測試集分辨率最低,其超分困難像素點的數量占比也相對最多,因此,加入困難像素的特征修復對該測試集的性能提升更為顯著。 同時, 相比原始版的ClassSR,在不損失PSNR 精度的前提下,在test2K,test4K 和test8K 三個測試集上的分別節省了8%,9.8%和12.2%的計算復雜度。 可見,本文方法可實現在復雜度更低的條件下,得到更高的性能。
困難像素點采樣閾值分析:根據網絡預測的不確定度響應圖判斷每個像素點的超分難度,并按照固定的采樣比例,將超分困難度最高的前N個像素點特征通過多層感知機進行特征修復。 為了分析困難點采樣比例對性能的影響,統計了不同采樣比例下最終模型的性能表現,并用DIV8K 的test2K 子集進行評估,如表3 所示。

表3 不同超分困難像素點采樣比例對性能和計算復雜度的影響Tab.3 Influence of different difficult pixel point sampling rate on performance and FLOPs
提升困難樣本采樣率對計算復雜度的影響不大,且當困難像素點特征的采樣率達到0.065 時,取得了最優的性能25.75 dB。 當采樣率更高時,性能逐漸退化,由于特征修復模塊的參數量較小,因此,過多的困難像素點加入訓練影響了其網絡的泛化能力。
特征修復層選取分析:由于困難像素點特征的修復可選用網絡的任意中間層與最高層進行融合,為了分析不同特征層的選取對算法超分性能的影響,實驗了在不同層加入自適應像素特征精煉模塊后對像素特征進行修復后網絡的性能表現,并采用DIV8K 的test2K 子集進行評估,結果如表4 所示。發現使用第2 層的特征進行融合修復后取得了最優的性能,此時可以更好地結合低層和高層的特征信息進行全局的優化。

表4 選取不同層進行特征修復對性能的影響Tab.4 Influence of selecting different layer to apply feature refining on performance
參數量和推理時間:為了分析所提出的像素級分治加速法在參數量和實際硬件推理時間上的表現,與原始ClassSR 工作進行了對比,并采用DIV8K的test2K 子集進行評估,結果如表5 所示。

表5 不同超分加速算法的參數量及硬件推理速度對比Tab.5 Comparison of different super-resolution acceleration methods in terms of parameters and hardware inference speed
提出的方法由于引進了不確定度估計和像素精煉模塊,在參數量上有一定的增加,但由于所增加模塊的硬件友好性,在PSNR 和SSIM 性能不下降的前提下,仍然顯著快于基于子圖像塊分治策略的ClassSR 方法,從而驗證了本文方法在算法加速方面的有效性。
為了定性地驗證本文方法進行像素級分治策略的實際意義,通過實驗對不同像素點的超分困難度進行了可視化。 如圖4 第3 列所示,本文方法很好地將塔尖、山峰等邊緣高頻信號位置的像素點作為困難點進行挖掘。 相比圖4 第2 列中ClassSR 所使用的子圖像塊級別的子問題分類方法,本文方法更為精細,從而對整體的計算量進行了更合理地分配,最終實現了更為高效的圖像超分網絡加速方法。圖5 展示了本文方法和基于子圖像塊級別分治策略的ClassSR 方法的超分結果對比,實驗中2 個方法采用相同通道數配置的主干網絡,可見本文方法在細節上的表現更優于ClassSR 方法。

圖4 像素級子問題分解和子圖像塊級子問題分解對比示例Fig.4 Examples of image patch-level divide-and-conquer result and pixel-level divide-and-conquer result

圖5 不同方法的超分辨率結果圖示例Fig.5 Super-resolution results of different methods
在現有基于分治策略的圖像超分加速算法將大圖像的超分問題分解成不同子圖像塊的超分問題,并根據每個子圖像塊的超分難易程度,使用不同復雜度規模的網絡對其分別進行超分處理,然而,該分治策略僅將子問題分解到了子圖像塊級別,尚未達到最優的加速效果。 基于該問題,本文提出了基于像素級分治策略的超分網絡加速方法,將分治策略的子問題細化到像素級。 引入不確定度估計思想,提出了聯合困難像素挖掘的重建損失函數挖掘每個像素點的超分難度,并設計了一個自適應像素特征精煉模塊對采樣的困難像素特征進行修復,從而實現了為不同像素分配不同規模的計算量的方式來進行超分算法加速。 通過在DIV2K 和DIV8K 公開集上的實驗驗證,本文方法相比現有基于分治策略的超分加速方法得到了顯著的效率提升。