怎么p出模糊的照片_36. 盲去卷积 - 更加实用的图像去模糊方法
本文同步發表在我的微信公眾號和知乎專欄“計算攝影學”,歡迎掃碼關注,
上一篇文章35. 去卷積:怎么把模糊的圖像變清晰?吸引了很多朋友的關注。在這篇文章里面,我給大家講了一種叫做“非盲去卷積”的方法,當指定了PSF(下圖中的c),和觀測到的模糊圖像(下圖中的b),我們可以恢復出清晰的圖像(下圖中的x)。
很多人都覺得去卷積大法好啊,真的可以把渣畫質變清晰。可就是需要提前知道PSF,這可就難了。確實,很多情況下提前測定PSF是根本不可能的,有可能你手上只拿到了一張很模糊的照片b,不知道c,想要恢復出x,這時候應該怎么辦呢?
事實上,這也是可以辦到的,這就是所謂的“盲去卷積”(Blind Deconvolution),今天我就給大家介紹這種技術。
我們先來看兩組盲去卷積的結果,給大家一些直觀的感受:
上面的結果來自于盲去卷積領域非常經典而基礎的文章:
Fergus et al., “Removing camera shake from a single image,” SIGGRAPH 2006.今天我主要就為你介紹這篇文章的思想
一、盲去卷積的基本思想
1.1 利用先驗信息
小明是第一次用單反的攝影小白,他剛剛很興奮的端起相機拍了一張照片:
https://www.zhihu.com/video/1208905929737273344Oops!手沒拿穩,拍出了一張超模糊的照片:
我們看看小明的相機在拍照瞬間的運動軌跡
很顯然,他這樣是拍不出來好片子的,我們來簡化一下他這張照片的生成過程:
上圖中的模糊核(PSF)是由于小明端起相機時的隨機抖動導致的,我們無法提前測定,那么怎么樣才能把清晰圖像恢復出來呢? 這真是一個超難的問題。
這就像你知道了11這個數是由2個數的乘積構成的,要讓你猜出是哪兩個數一樣困難:
一張模糊的圖像,也有可能有多種生成模式,只有最下面這種才是我們需要的,怎么才能得到它呢?
很顯然,我們需要利用一些先驗信息。有兩個關鍵的先驗信息可以幫助我們
1 - 圖像的梯度分布
清晰的自然圖像的梯度符合一種叫做"Heavy-Tail"的分布形態。直觀上講,一張清晰圖像里面有很多平滑的區域且噪聲較低,所以梯度接近0的像素還是占大多數。但是由于圖像清晰,所以物體的邊界比較明顯,所以還是有很多像素的梯度較大。因此這種梯度的分布大概長這個樣子(梯度直方圖的縱坐標是Log化的密度):
但是模糊的圖像的邊緣被糊掉了,所以更多的像素的梯度趨于0,因此其梯度直方圖就會變化:
所以我們想要尋找的是符合上面重尾分布的圖像,而不是其他隨隨便便的圖像
2 - 模糊核的形態
我們這里展示的是相機的運動導致的模糊,那么可以認為模糊核是稀疏的,有連續的軌跡,并且模糊核值都是非負數。所以我們重建出來的模糊核也不是隨隨便便的,它必須符合上述這些特點才是一個合格的運動模糊核。
3 - 噪聲
相機總是有噪聲的,為了簡化問題,我們可以假設噪聲是均值為0的高斯噪聲
于是,我們就有了幾種信息用于重建清晰的圖像
1.2 問題的數學建模
已知模糊圖像P,未知圖像為L,未知的卷積核為K。一個基本的想法是把問題看做是求最大后驗概率的問題:
其中K和L滿足一定的先驗條件的約束。我們所需的就是把后驗概率公式表達出來。為了讓這篇文章能夠比較容易看懂,我把相關的細節列到文章的后面,這樣你可以更連貫的閱讀這篇文章。
1.3 問題的求解
作者嘗試了用標準的MAP求解方法來求解出K和L,但最終效果卻很差
作者對此的解釋是MAP目標函數會嘗試讓所有像素的梯度都最小化,而實際的自然圖像中包含有大量高梯度的區域。
而在2009年的下面這篇著名論文中,作者Levin教授則提出了更深入的見解。
Levin et al., “Understanding and evaluating blind deconvolution algorithms,” CVPR 2009 and PAMI 2011Levin教授認為用MAP目標函數同時求解K和L肯定不好,有如下的原因:
2. 上述MAP目標函數的變量個數具有高度的非對稱性,比如對于這幅畢加索照片:
可見已知量的個數總是小于未知量的個數 #P < #L + #K
以上兩個原因就會導致用這種同時估計K和L的目標函數來做MAP總是無法得到好的結果。那有沒有更好的方法呢?
Levin認為,更好的辦法是只單獨估計K,即把下面左邊的問題轉換為右邊的問題
這樣,已知量的個數就遠遠大于未知量的個數 #P >> #K
這里的p(K|P)是相對于L的邊際概率,即:
簡單來說,就是對每一個可能的K,我們都要在所有可能的L上求取其后驗概率,并把這些后驗概率值加起來,得到p(K|P)。你應該可以感覺到求這樣的邊際概率也是很不容易的事情,計算量非常復雜。于是很多學者采用了近似的方式來進行求解?;氐轿覀冮_頭介紹的Fergus的論文,作者是采用了“變分貝葉斯(variational Bayesian)”方法來近似后驗概率的表示和求取
Fergus證明了這種方法能得到遠比原始的同時求取K和L的MAP算法好。
二、完整的流程
在論文中, Fergus展示了其完整的盲去卷積的流程:
第一步:預處理圖像,為了降低計算量,并得到良好的結果,需要用戶來選擇一個圖像塊。
第二步:利用變分貝葉斯,估計卷積核K。為了避免陷入局部最優,作者采用了coarse-to-fine的策略
第三步:利用標準的非盲去卷積方法,重建清晰圖像L。作者采用了我在上一篇文章里面提到的Richardson-Lucy算法進行。
三、效果展示
四、后驗概率的細節
正如前面所講,為了求解問題,需要把后驗概率用公式表達出來。先引入一些符號來說明問題:
- :模糊圖像塊
- :可能的模糊核
- :可能的清晰圖像塊
- : P的梯度
- : Lp的梯度
- :噪聲
首先,我們前面講過
由于卷積運算是線性運算,因此可以有:
這樣我們可以把后驗概率改寫為
用MAP的思想來說,問題就轉換為求使得上述概率最大的K和
我們可以用貝葉斯公式將這個后驗概率展開:
我們分別來看后面三項:
于是上面的后驗概率就可表示為:
五、算法值得改進的地方
在文章中Fergus提到的幾個點都是值得改進的:
作者本身也在其文章中提到了一些值得改進的地方,能讓后人在此基礎上對 這項工作有所完。 果不其然,在隨后幾年的CVPR, SIGGRAPH, ICCV, ECCV上, 幾乎每屆都有更好的結果涌現。
比如下面這篇2008年Jiaya Jia團隊的文章就作出了非常好的效果:
Shan et al., “High-quality Motion Deblurring from a Single Image,” SIGGRAPH 2008文章的改善點包括了:
下面是算法的效果,還是非常不錯的:
這個領域后面出了非常多效果更好的文章,在github上有一個專門的項目整理記錄:
https://github.com/subeeshvasu/Awesome-Deblurring?github.com六、總結
去卷積分為非盲去卷積和盲去卷積,我介紹的用途主要是圖像的去模糊。今天介紹的Fergus的文章利用了變分貝葉斯算法來求解模糊核K,然后利用經典的非盲去卷積算法Richardson-Lucy算法來進行清晰圖像的恢復。從今天介紹的文章你可以看到,理解盲去卷積的算法對圖像的統計信息、概率知識、最優化求解方法的要求要比非盲去卷積高很多。坦率說,我自己在看這些文章時也感覺很吃力。
但我希望這篇文章能給你打開一扇大門,讓你可以透過它看到一片新的研究天地。如果你喜歡這篇文章,請給我點贊,謝謝!
七、參考資料
本文同步發表在我的微信公眾號和知乎專欄“計算攝影學”,歡迎掃碼關注,
總結
以上是生活随笔為你收集整理的怎么p出模糊的照片_36. 盲去卷积 - 更加实用的图像去模糊方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 兴业信用卡对比 爱奇艺联名卡VS淘宝网联
- 下一篇: 全球外汇储备资产中,人民币占比创新高,跟