研究了低級計算機視覺任務(例如去噪、超分辨率和去雨)并開發了一種新的預訓練模型,即圖像處理變壓器(IPT)。利用著名的 ImageNet 基準來生成大量損壞的圖像對。 IPT 模型是在這些具有多頭和多尾的圖像上進行訓練的。此外,引入對比學習以更好地適應不同的圖像處理任務。因此,預訓練模型在微調后可以有效地應用于所需的任務。
1. 介紹
圖像處理是更全局的圖像分析或計算機視覺系統的低級部分的組成部分之一。圖像處理的結果很大程度上影響后續高層部分對圖像數據的識別和理解。近年來,深度學習已廣泛應用于解決低級視覺任務,例如圖像超分辨率、修復、去雨和著色。由于許多圖像處理任務都是相關的,因此很自然地期望在一個數據集上預訓練的模型可以對另一個數據集有所幫助。
在計算機視覺中,deraining是指圖像去雨的過程。具體來說,deraining技術旨在從被雨水影響的圖像中恢復出清晰、無雨的圖像內容。deraining是一個具有挑戰性的任務,因為雨水在圖像中可能表現為不同的形態和密度,且對圖像的影響也是復雜多變的。
預訓練可能為圖像處理任務提供有吸引力的解決方案:
首先,對于特定任務的數據可能受到限制。這個問題在涉及付費數據或數據隱私的圖像處理任務中更加嚴重,例如醫學圖像和衛星圖像。各種不一致的因素(例如相機參數、照明和天氣)可能會進一步擾亂捕獲的訓練數據的分布。
其次,在呈現測試圖像之前,不知道將請求哪種類型的圖像處理作業。因此我們手頭必須準備一系列的圖像處理模塊。他們有不同的目標,但一些基本操作可以共享。
本文中,我們使用Transformer架構開發了一種用于圖像處理的預訓練模型,即圖像處理Transformer(IPT)。由于預訓練的模型需要兼容不同的圖像處理任務,包括超分辨率、去噪、去雨等,因此整個網絡由對應不??同任務的多對頭尾和單個共享主體組成。
由于Transformer的潛力需要使用大規模數據集來挖掘,因此我們應該準備大量具有相當多樣性的圖像來訓練IPT模型。為此,我們選擇包含各種高分辨率、1000 個類別的 ImageNet 基準測試。對于 ImageNet 中的每個圖像,我們使用操作來生成多個對應圖像來服務于不同的任務。
Transformer架構在巨大的數據集上進行訓練
1、訓練圖像被輸入到特定的頭部,生成的特征被裁剪為補丁,并隨后展平為序列。
2、Transformer主體被用來處理扁平化特征,其中位置嵌入和任務嵌入分別用于編碼器和解碼器。
3、尾部被迫根據特定任務預測具有不同輸出大小的原始圖像。此外,引入了不同輸入的塊之間關系的對比損失,以便更好地使用不同的圖像處理任務。
2. 相關工作
2.1 圖像處理
圖像處理包括對圖像的操作,包括超分辨率、去噪、去霧、去雨、去模糊等。
2.2 Transformer
Transformer及其變體已證明其在各種自然語言處理任務中是強大的無監督或自監督預訓練框架的成功。
探索 Transformer 在計算機視覺任務中的好處:
1、在傳統的卷積神經網絡中引入自注意力。引入了圖像分割的空間注意力、提出DANET通過結合空間和通道注意力來利用上下文信息、通過自注意力增強特征,以增強模型在幾個高級視覺任務上的性能
2、用自注意力塊代替卷積神經網絡。
3. Image Processing Transformer
3.1 IPT架構
IPT 的整體架構由四個部分組成:頭部用于從輸入的損壞圖像(例如,帶有噪聲的圖像和低分辨率圖像)中提取特征,編碼器-解碼器Transformer用于恢復輸入數據中缺失的信息,尾部用于將特征映射到恢復的圖像中。
頭部
為了適應不同的圖像處理任務,我們使用多頭架構來單獨處理每個任務,其中每個頭由三個卷積層組成。將輸入圖像表示為,頭部生成具有C個通道的相同高度和寬度的特征圖
,計算公式為:
,
表示第 i 個任務的頭部,
表示任務的數量。
Transformer編碼器
在將特征輸入到Transformer主體之前,我們將給定的特征分割成補丁,每個補丁被視為一個“單詞”。具體來說,特征圖被重塑為補丁序列,
,其中
是補丁的數量(序列長度),P是補丁的大小。
為了維護每個補丁的位置信息,我們為之后的每個特征?補丁添加可學習的位置編碼
,并且
將直接輸入到Transformer編碼器中。編碼器層具有多頭自注意力模塊和前饋網絡。每個補丁的編碼器
的輸出具有與輸入補丁
?相同的大小。?
其中??表示編碼器中的層數,MSA表示傳統變壓器模型中的多頭自注意力模塊,LN表示層歸一化,FFN表示前饋網絡,其中包含兩個完全連接層。
Transformer解碼器
解碼器也遵循相同的架構,并將解碼器的輸出作為變壓器主體的輸入,Transformer主體由兩個多頭自注意力(MSA)層和一個前饋網絡(FFN)組成。
可以利用特定于任務的嵌入作為解碼器的附加輸入。這些特定于任務的嵌入被學習來解碼不同任務的特征。解碼器的計算可以表述為:
其中表示解碼器的輸出。然后,將解碼后的 N 個大小為?
的補丁特征重新整形為大小為 C × H × W 的特征
。
尾部
尾部的屬性與頭部相同,我們使用多尾來處理不同的任務。計算可以表述為,
表示第 i 個任務的頭部,
表示任務的數量。輸出
的結果圖像大小為
由具體任務決定。對于2× 超分辨率任務,H′ = 2H,W = 2W。
3.2 ImageNet上的預訓練
成功訓練出優秀Transformer的關鍵因素之一是大規模數據集的充分利用。與圖像分類相比,用于圖像處理任務的可用數據數量相對較少。建議利用眾所周知的ImageNet作為基線數據集預訓練 IPT 模型,然后我們為多個任務(例如超分辨率和去噪)生成整個數據集。
由于 ImageNet 基準測試中的圖像具有很高的多樣性,其中包含來自 1,000 個不同類別的超過 100 萬張自然圖像。這些圖像具有豐富的紋理和顏色信息。
首先刪除語義標簽,并使用針對不同任務的各種退化模型,從這些未標記的圖像中手動合成各種損壞的圖像。例如,超分辨率任務通常采用雙三次退化(bicubic)來生成低分辨率圖像,去噪任務在不同噪聲級別的干凈圖像中添加高斯噪聲以生成噪聲圖像。這些合成圖像可以顯著提高學習深度網絡(包括 CNN 和 Transformer 架構)的性能。
損壞的圖像合成為:,其中
表示退化變換,對于超分辨率任務,
正是雙三次插值;對于圖像去噪,
,其中
是加性高斯噪聲;對于除雨,
其中?
?是手工制作的雨條紋。以監督方式學習 IPT 的損失函數可以表示為:
。
其中 表示重建所需圖像的傳統 L1 損失,
分別表示任務 i 的損壞圖像。所提出的框架同時接受多個圖像處理任務的訓練。具體來說,對于每個批次,我們從
?個監督任務中隨機選擇一個任務進行訓練,每個任務將同時使用相應的頭、尾和任務嵌入進行處理。
在預訓練 IPT 模型后,它將捕獲各種圖像處理任務的內在特征和轉換,因此可以進一步微調以使用新提供的數據集應用于所需的任務。此外,為了節省計算成本,其他頭部和尾部將被丟棄,并且剩余頭部、尾部和主體中的參數將根據反向傳播進行更新。
然而,由于退化模型多種多樣,我們無法為所有圖像處理任務合成圖像。實踐中可能存在多種可能的噪聲水平。因此,應進一步增強所得IPT的泛化能力。與預訓練自然語言處理模型類似,圖像塊之間的關系也提供了信息。我們引入對比學習來學習通用特征,以便預先訓練的IPT模型可以用于未見過的任務。將 IPT 解碼器針對給定輸入生成的輸出補丁特征表示為
其中
是從一批訓練圖像
。我們的目標是最小化來自相同圖像的補丁特征之間的距離,同時最大化來自不同圖像的補丁特征之間的距離。
,其中
表示余弦相似度。為了充分利用監督和自監督信息,我們將損失函數重新表述為:
?其中,我們將λ平衡對比損失與監督損失相結合作為IPT的最終目標函數。
4. 實驗
預訓練的 IPT 模型可以在這些任務上實現最先進的性能。此外,大量的消融研究實驗表明,在使用大規模數據集解決圖像處理問題時,基于 Transformer 的模型比卷積神經網絡表現更好。
超分辨率圖像處理(Image Super-resolution)是一種重要的圖像處理技術,旨在通過算法和模型將低分辨率(Low Resolution, LR)圖像提升到高分辨率(High Resolution, HR),從而增強圖像的細節和清晰度。
數據集
使用著名的 ImageNet 數據集,該數據集由超過 1M 個高度多樣性的彩色圖像組成。訓練圖像被裁剪成 48 × 48 的 patch,具有 3 個通道進行訓練,即有超過 10M 個 patch 用于訓練 IPT 模型。然后,我們生成具有 6 種退化類型的損壞圖像:分別是 2×、3×、4× 雙三次插值、30、50 噪聲級別高斯噪聲和添加雨紋。
超分辨率
由于高縮放因子導致大量信息丟失,因此很難恢復原始高分辨率圖像。以前的方法生成模糊圖像,而我們的模型生成的超分辨率圖像可以很好地從低分辨率圖像中恢復細節。