使用CNN生成影像先驗,實現更廣泛場景的盲影像去模糊
現有的最優方法在文字、人臉以及低光照影像上的盲影像去模糊效果並不佳,主要受限於影像先驗的手工設計屬性。本文研究者將影像先驗表示為二值分類器,訓練
CNN 來分類模糊和清晰影像。實驗表明,該影像先驗比目前最先進的人工設計先驗更具區分性,可實現更廣泛場景的盲影像去模糊。
論文:Learning a Discriminative Prior for Blind Image Deblurring(學習用於盲影像去模糊的判別先驗)
我們提出了一種基於資料驅動的判別先驗的盲影像去模糊方法。我們的工作是基於這樣一個事實:一個好的影像先驗應該有利於清晰的影像而不是模糊的影像。在本文中,我們將影像先驗表示為一個二值分類器,它可以通過一個深度卷積神經網路 ( CNN ) 來實現。學習到的先驗能夠區分輸入影像是否清晰。嵌入到最大後驗 ( MAP ) 框架中之後,它有助於在各種場景 (包括自然影像、人臉影像、文字影像和低照明影像) 中進行盲去模糊。然而,由於去模糊方法涉及非線性 CNN,因此很難優化具有學習已影像先驗的去模糊方法。為此,本文提出了一種基於半二次分裂法和梯度下降法的數值求解方法。此外,該模型易於推廣到非均勻去模糊任務中。定性和定量的實驗結果表明,與當前最優的影像去模糊演算法以及特定領域的影像去模糊方法相比,該方法具備有競爭力的效能。
簡介
盲影像去模糊(blind image deblurring)是影像處理和計算機視覺領域中的一個經典問題,它的目標是將模糊輸入中隱藏的影像進行恢復。當模糊形狀滿足空間不變性的時候,模糊過程可以用以下的方式進行建模:
其中代表的是卷積運算元,B、I、k 和 n 分別代表模糊影像、隱藏的清晰影像、模糊核以及噪聲。式(1)中的問題是不適定性,因為 I 和 k 都是未知的,存在無窮多個解。為了解決這個問題,關於模糊核和影像的額外約束和先驗知識都是必需的。
圖 1: 一個去模糊的例子。本文提出了一個判別影像先驗,它是從用於影像去模糊的深度二分類網路中學習得到的。
最近的去模糊方法的成功主要來自於有效影像先驗和邊緣檢測策略方面的研究進展。然而,基於邊緣預測的方法常常會涉及到啟發式的邊緣選擇步驟,當邊緣不可預測的時候,這種方法表現不佳。為了避免啟發式的邊緣選擇步驟,人們提出了很多基於自然影像先驗的演算法,包括稀疏性歸一化(normalized sparsity)[16]、L0 梯度 [38] 和暗通道先驗(dark channel prior)[27]。這些演算法在一般的自然影像上表現良好,但是並不適用於特殊的場景,例如文字 [26]、人臉 [25] 以及低光照影像 [11]。大多數上述的影像先驗都有相似的效果,它們更加適用於清晰的影像,而不是模糊的影像,這種屬性有助於基於 MAP(最大後驗)的盲影像去模糊方法的成功。然而,大多數先驗都是手工設計的,它們主要是基於對特定影像統計的有限觀察。這些演算法不能很好地泛化以處理自然環境中的多種場景。所以,開發能夠使用 MAP 框架來處理不同場景的影像先驗是很有意義的。
為達到這個目的,研究者將影像先驗表示為能夠區分清晰影像和模糊影像的二值分類器。具體來說,他們訓練深度卷積神經網路來分類模糊影像 (標記為 1 ) 和清晰影像 (標記為 0 )。由於基於 MAP(最大後驗)的去模糊方法通常使用 coarse-to-fine(由粗到精)策略,因此在 MAP 框架中插入具有全連線層的 CNN 無法處理不同大小的輸入影像。為了解決這個問題,他們在 CNN 中採用了全域性平均池化層 [ 21 ],以允許學習的分類器處理不同大小的輸入。此外,為了使分類器對不同輸入影像尺寸具有更強的魯棒性,他們還採用多尺度訓練策略。然後將學習到的 CNN 分類器作為 MAP(最大後驗)框架中潛在影像對應的正則項。如圖 1 所示,本文提出的影像先驗比目前最先進的人工設計的先驗 [ 27 ] 更具區分性。
然而,使用學習到的影像先驗去優化這個去模糊方法是很困難的,因為這裡涉及到了一個非線性 CNN。因此,本文提出了一種基於半二次方分裂法(half-quadratic splitting method)和梯度下降演算法的高效數值演算法。這個演算法在實際使用中可以快速地收斂,並且可以應用在不同的場景中。此外,它還可以直接應用在非均勻去模糊任務中。
本文的主要貢獻如下:
提出了一種高效判別影像先驗,它可以通過深度卷積神經網路學習到,用於盲影像去模糊。為了保證這個先驗(也就是分類器)能夠處理具有不同大小的輸入影像,研究者利用全域性平均池化和多尺度訓練策略來訓練這個卷積神經網路。
將學習到的分類器作為 MAP(最大後驗)框架中潛在影像對應的正則化項,並且提出了一種能夠求解去模糊模型的高效優化演算法。
研究者證明,與當前最佳演算法相比,這個演算法在廣泛使用的自然影像去模糊基準測試和特定領域的去模糊任務中都具備有競爭力的效能。
研究者展示了這個方法可以直接泛化到非均勻去模糊任務中。
二分類網路
我們的目標是通過卷積神經網路來訓練一個二分類器。這個網路以影像作為輸入,並輸出一個標量數值,這個數值代表的是輸入影像是模糊影像的概率。因為我們的目標是將這個網路作為一種先驗嵌入到由粗到精的 MAP(最大後驗)框架中,所以這個網路應該具備處理不同大小輸入影像的能力。所以,我們將分類其中常用的全連線層用全域性平均池化層代替 [21]。全域性平均池化層在 sigmoid 層之前將不同大小的特徵圖轉換成一個固定的大小。此外,全域性平均池化層中沒有額外的引數,這樣就消除了過擬合問題。圖 2 展示了整個網路架構和二分類網路的細節引數。
圖 2. 本文中使用的二分類網路的架構和引數,其中使用了全域性平均池化層取代全連線層來應對不同大小的輸入。CR 代表的是後面跟著一個 ReLU 非線性函式的卷積層,M 代表的是最大池化層,C 代表的是卷積層,G 指的是全域性平均池化層,S 代表的是 Sigmoid 非線性函式。
圖 4. 資料集 [15] 中的一個很具挑戰性的例子。本文提出的方法以更少的邊緣振盪效應和更好的視覺愉悅度恢復了模糊影像。
圖 5. 在實際的模糊影像中的去模糊結果。本文的結果更加清晰,失真較少。
圖 6. 文字影像上的去模糊結果。與目前最先進的去模糊演算法 [26] 相比,本文的方法生成了更加尖銳的去模糊影像,其中的字元更加清晰。
圖 12. 去模糊結果和中間結果。作者在圖 (a)-(d) 中與目前最先進的方法 [40, 27] 比較了去模糊結果,並在 (e)-(h) 中展示了迭代中的(從左至右)中間隱藏影像。本文的判別先驗恢復了用於核估計的具有更強邊緣的中間結果。
相關文章
- 基於Tensorflow + Opencv 實現CNN自定義影像分類OpenCVCNN
- 手把手教你使用LabVIEW實現Mask R-CNN影像例項分割ViewCNN
- 泛型使用場景泛型
- 數字影像處理實驗(四)影像銳化
- CVPR 2019 | 無監督領域特定單影像去模糊
- 【技術面對面】基於場景圖的多物體影像生成技術
- DeepFaceDrawing: 使用草圖生成人臉影像
- 使用 Vyper 實現影像邊緣檢測
- 使用 Vala 實現影像邊緣檢測
- 使用 Fantom 實現影像邊緣檢測
- 五個實現角色一致性的影像生成工具
- 廣告場景下雙邊市場的實驗設計
- 原來CNN是這樣提取影像特徵的。。。CNN特徵
- 用PNGMaker.io快速生成透明PNG影像——使用者分享體驗
- 【影像處理】基於OpenCV實現影像直方圖的原理OpenCV直方圖
- ICML 2024 | 人物互動影像,現在更懂你的提示詞了,北大推出基於語義感知的人物互動影像生成框架框架
- 使用F#實現基本影像識別
- 更好也更快!最先進的影像去模糊演算法DeblurGAN-v2演算法
- GAN生成影像綜述
- TensorFlow2基礎:CNN影像分類CNN
- oepncv實現——影像去水印
- 影像旋轉的FPGA實現(一)FPGA
- Laravel 驗證類 實現 路由場景驗證 和 控制器場景驗證Laravel路由
- 使用Rust語言實現基本影像識別Rust
- 使用Scala語言實現基本影像識別
- 使用Haskell語言實現基本影像識別Haskell
- 使用Lua語言實現基本影像識別
- 廣泛被應用的雲專線實際應用場景有哪些?——VecloudCloud
- 0206-生成最終影像
- 五種文字生成影像的AIGC工具AIGC
- 極端影像壓縮的生成對抗網路,可生成低位元速率的高質量影像
- SimMIM:更簡單的掩碼影像建模
- 使用EasyCV Mask2Former輕鬆實現影像分割ORM
- go需要泛型的場景Go泛型
- Go 需要泛型的場景Go泛型
- 單幅RGB影像整體三維場景解析與重建
- 涵蓋18+ SOTA GAN實現,這個影像生成領域的PyTorch庫火了PyTorch
- 一個 Pillow 實現的影像填充函式函式