影象模糊是影響影象質量的重要因素,顯著降低了許多計算機視覺應用的效能,例如物體檢測和人臉識別。隨著深度神經網路的發展,計算機視覺領域的難題被一個個解決,單純依靠先驗核去實現影象去模糊的技術已經漸漸被取代。 本文將針對 CVPR2019 Unsupervised Domain-Specific Deblurring via Disentangled Representations 一文進行分析,梳理一下基於深度神經網路下影象去模糊的實現方法。
作者丨武廣
學校丨合肥工業大學碩士生
研究方向丨影象生成
論文引入
影象的模糊嚴重影響影象的本身質量,同時在進行影象的識別和影象中物體識別都會產生影響。影象去模糊旨在從相應的模糊影象中恢復潛在的清晰影象。
大多數傳統方法將影象去模糊任務公式化為模糊核估計問題,在過去的十年中,已經開發了各種自然影象和先驗核來規範潛在銳利影象的解空間,包括重尾梯度先驗,稀疏核先驗,梯度先驗,歸一化稀疏性和暗通道。
然而,這些先驗是透過有限的觀察來估計的,並且不夠準確。結果,去模糊的影象通常欠去模糊(影象仍然模糊)或過度去模糊(影象包含許多偽像)。
近年來深度神經網路和 GAN 的巨大成功,已經提出了一些基於 CNN 的方法用於影象去模糊,例如 Nimisha 在 ECCV 2018 發表的 Unsupervised Class-Specific Deblurring [1] 是一種基於 GAN 的無監督影象去模糊方法,在模型上增加了重覆損失和多尺度梯度損失。雖然它們在合成資料集上取得了良好的效能,但它們對一些真實模糊影象的結果並不令人滿意。
另一類方法是基於現有的影象到影象的模型,例如 CycleGAN [2] 這類無監督端到端的模型,然而,這些通用方法通常編碼其他因素(例如:顏色、紋理)而不是將資訊模糊到發生器中,因此不會產生良好的去模糊影象。
文章對這些方法進行了一個視覺化結果比對,同時也是展示了自己模型的優越性:
上圖最右側就是這篇文章的實驗效果,可以看出對比已有的基於深度神經網路的去模糊模型還是展示了不錯的實現效果的。這些效果的實現得益於文章提出了一種基於解纏表示的無監督域特定影象去模糊方法,透過將模糊影象中的內容和模糊特徵解開,以將模糊資訊準確地編碼到去模糊框架中。
我們後續再詳細分析,這裡總結一下文章的創新和優勢所在:
-
內容編碼器和模糊編碼器將模糊影象的內容和模糊特徵區分開,實現了高質量的影象去模糊;
-
對模糊編碼器新增 KL 散度損失以阻止模糊特徵對內容資訊進行編碼;
-
為了保留原始影象的內容結構,在框架中添加了模糊影象構造和迴圈一致性損失,同時新增的感知損失有助於模糊影象去除不切實際的偽像。
模型詳解
我們還是先透過模型框架圖去理解文章設計的思路:
我們先把模型中的組間介紹清楚,由於模型的迴圈一致性設計,網路的左右是基本對稱的,我們對左側組間交代下。s 代表清晰的真實影象,b 代表模糊的真實影象,是清晰影象的內容編碼器(可以理解為影象顏色、紋理、畫素的編碼器),對應的是模糊影象的內容編碼器,是模糊影象的模糊編碼器(僅用來提取影象的模糊資訊),是模糊影象生成器,是清晰影象生成器,是生成的模糊影象,是生成的清晰影象。經過迴圈的轉換,ŝ 是迴圈生成的清晰影象,b̂ 是迴圈生成的模糊影象。結合上下標和模型結構,這些組間的名稱還是很好區別的。
看了這個模型,大家是不是有一些疑問,我們的目的是實現影象的去模糊,為什麼要新增模糊編碼器?為什麼還要主動去生成模糊的影象?怎麼保證模糊影象的內容編碼器真的提取到影象的內容資訊?為什麼模糊編碼器要同時作用在和上?
這些問題正是這篇文章區別於已有模型的關鍵,我們按照文章思路一步步去分析。
文章的一大創新就是模糊編碼器的設計,它主要的作用是用來捕獲模糊影象的模糊特徵,如何去保證這個模糊編碼器是真的提取到模糊影象的模糊特徵了呢?
作者就採用了迂迴的思路,既然清晰的影象是不含模糊資訊的,如果清晰的影象透過結合模糊編碼器模糊特徵去生成出模糊影象,是不是可以說,模糊編碼器是在對清晰影象做模糊化處理,這個模糊化的前提是什麼?那就是模糊編碼器確實提取到了影象的模糊特徵,所以說由清晰影象生成模糊影象也保證了模糊編碼器是對影象的模糊資訊進行編碼的作用。
同時,由清晰影象到模糊影象的生成過程中,清晰影象的內容編碼器我們是有理由相信它是提取到了清晰影象的內容資訊(因為清晰影象並不包含模糊資訊)。
文章為了保證模糊影象的內容編碼器是對模糊影象的內容進行編碼,文章將清晰影象內容編碼器和模糊影象內容編碼器強制執行最後一層共享權重,以指導學習如何從模糊影象中有效地提取內容資訊。
為了進一步盡可能多地抑制模糊編碼器對內容資訊的編碼,透過新增一個 KL 散度損失來規範模糊特徵的分佈,使其接近正態分佈 p(z)∼N(0,1)。這個思路和 VAE 中的限制資料編碼的潛在空間的分佈思路是相近的,這裡將模糊編碼器的編碼向量限制住,旨在控制模糊編碼器僅對影象的模糊資訊進行編碼。
理清了上面的設計思路,這篇文章的實現就已經基本介紹完畢了。由模糊影象去模糊到清晰影象的過程中,將模糊影象內容編碼和模糊編碼送入清晰影象生成器重構得到去模糊的清晰影象,清晰影象到模糊影象是為了最佳化模糊編碼和模糊影象的內容編碼的作用。
透過迴圈一致性,進行進一步的還原保證模型的魯棒性。核心的損失是影象生成在 GAN 的對抗損失,結合感知損失達到影象下一些偽影的最佳化。
模型損失函式
本部分是對模型實現的補充,在上一小節中,也是大致上分析了各類損失的作用,這裡做一個簡短的展開。
首先是對模糊編碼的隱空間分佈進行約束,這個約束透過 KL 散度去實現,這個過程和 VAE 的思路是一致的:
這裡的 p(z)∼N(0,1),具體的損失可進一步寫為:
此時,zb 可表示為 zb=μ+z∘σ。
接下來就是 GAN 的那一套對抗損失,這裡寫一下清晰影象生成的判別器損失,模糊影象的是一致的:
迴圈一致損失參考的是 CycleGAN [2]:
感知損失的加入,作者是加在預訓練 CNN 的第 1 層的特徵,實驗中加在 ImageNet 上預訓練的 VGG-19 的 conv3,3。
感知損失中使用模糊影象 b 而不是銳利影象作為參考影象有兩個主要原因。首先,假設 b 的內容資訊可以由預訓練的 CNN 提取。其次,由於 s 和 b 未配對,因此在 s 和之間應用感知損失將迫使對 s 中的無關內容資訊進行編碼。值得一提的是,和 s 上沒有新增感知損失。這是因為在訓練期間沒有在中發現明顯的偽像。
整個模型總的損失可寫為:
實驗
文章的網路的設計結構參考了 Diverse image-to-image translation via disentangled representations [3]。內容編碼器由三個摺積層和四個殘差塊組成。模糊編碼器包含四個摺積層和一個完全連線的層。
對於發生器,該架構與內容編碼器對稱,具有四個殘差塊,後面是三個轉置的摺積層。判別器採用多尺度結構,其中每個尺度的特徵圖經過五個摺積層,然後被饋送到 sigmoid 輸出。
採用 Adam 最佳化損失,對於前 40 個時期,學習速率最初設定為 0.0002,然後在接下來的 40 個時期使用指數衰減。超參上 λadv=1, λKL=0.01, λcc=10, λp=0.1。
實驗資料集採用三種資料集:CelebA 資料集,BMVC 文字資料集和 CFP 資料集。
CelebA 資料集包含超過 202,000 個面部影象,文章設定了清晰影象 100k,模糊影象 100k,測試影象 2137。BMVC 文字資料集由 66,000 個文字影象組成,分配方式類似於 CelebA 資料集。CFP 資料集由來自 500 個主題的 7,000 個靜止影象組成,並且對於每個主題,它具有正面姿勢的 10 個影象和具有專業姿勢的 4 個影象。
對於 CelebA 和 BMVC Text 資料集,我們使用標準的 debluring 指標(PSNR,SSIM)進行評估。文章還使用去模糊影象和真實影象之間的特徵距離(即來自某些深層網路的輸出的 L2 距離)作為語意相似性的度量,因為實驗發現它是比 PSNR 和 SSIM 更好的感知度量。
對於 CelebA 資料集,使用來自 VGG-Face 的 pool5 層的輸出,對於文字資料集,使用來自 VGG-19 網路的 pool5 層的輸出。對於文字去模糊,另一個有意義的度量是去模糊文字的 OCR 識別率。在視覺化模型和定量對比上,文章對比了各類模型的去模糊的效果:
實驗也對比了各個組間的有無對實驗結果的影響:
不僅僅在人臉影象去模糊上,在文字去模糊上也展示了不錯的實驗效果:
總結
文章提出了一種無監督的領域特定單影象去模糊方法。透過解開模糊影象中的內容和模糊特徵,並新增 KL 散度損失以阻止模糊特徵對內容資訊進行編碼。為了保留原始影象的內容結構,在框架中添加了模糊分支和迴圈一致性損失,同時新增的感知損失有助於模糊影象去除不切實際的偽像。每個元件的消融研究顯示了不同模組的有效性。
文章的創新之處正是內容編碼器和模糊編碼器的設計和應用,嘗試將內容和模糊資訊分離,這對影象到影象的工作具有一定的指導意義。
參考文獻
[1] T. Madam Nimisha, K. Sunil, and A. Rajagopalan. Unsupervised class-specific deblurring. In Proceedings of the European Conference on Computer Vision (ECCV), pages 353–369, 2018.
[2] J.-Y. Zhu, T. Park, P. Isola, and A. A. Efros. Unpaired image-to-image translation using cycle-consistent adversarial networks. In Proceedings of International Conference on Computer Vision (ICCV), 2017.
[3] H.-Y. Lee, H.-Y. Tseng, J.-B. Huang, M. Singh, and M.-H.Yang. Diverse image-to-image translation via disentangled representations. In Proceedings of European Conference on Computer Vision (ECCV), pages 36–52. Springer, 2018.