一:由簡至美的最佳論文(作者:何愷明 視覺計算組)
【視覺機器人:個人感覺學習他的經典算法固然很重要,但是他的解決問題的思路也是非常值得我們學習的】
那是2009年4月24日的早上,我收到了一封不同尋常的email。發信人是CVPR 2009的主席們,他們說我的文章獲得了CVPR 2009的最佳論文獎(Best Paper Award)。我反復閱讀這封郵件以確認我沒有理解錯誤。這真是一件令人難以置信的事情。
北京灰霾照片的去霧結果
CVPR的中文名是計算機視覺與模式識別會議,是計算機視覺領域最頂尖的國際會議之一。今年的CVPR共收到約1450篇投稿,其中393篇文章被接收,接收率為26%。只有一篇文章被選為今年的最佳論文。這是CVPR創立25年以來首次由中國人獲得這個獎項。這篇文章是我在微軟亞洲研究院形象計算組實習的時候完成的,也是我個人真正意義上寫的第一篇論文。
簡單有效的圖像去霧技術
這篇論文研究的問題是圖像的去霧技術,它可以還原圖像的顏色和能見度,同時也能利用霧的濃度來估計物體的距離,這些在計算機視覺上都有重要應用(例如三維重建,物體識別)。但是之前人們還沒找到簡單有效的方法來達到這個目的。在這篇論文里,我們找到了一個非常簡單的,甚至說令人驚訝統計規律,並提出了有效的去霧方法。
與之前的方法不同,我們把注意力放到了無霧圖像的統計特征上。我們發現,在無霧圖像中,每一個局部區域都很有可能會有陰影,或者是純顏色的東西,又或者是黑色的東西。因此,每一個局部區域都很有可能有至少一個顏色通道會有很低的值。我們把這個統計規律叫做Dark Channel Prior。直觀來說,Dark Channel Prior認為每一個局部區域都總有一些很暗的東西。這個規律很簡單,但在我們研究的去霧問題上卻是本質的基本規律。
由於霧總是灰白色的,因此一旦圖像受到霧的影響,那么這些本來應該很暗的東西就會變得灰白。不僅如此,根據物理上霧的形成公式,我們還能根據這些東西的灰白程度來判斷霧的濃度。因此,我們提出的Dark Channel Prior能很有效地去除霧的影響,同時利用物的濃度來估算物體的距離。
電腦游戲帶來的靈感
這個想法的產生來自於兩個偶然的觀察。
第一個觀察來自一個3D游戲。這個游戲有很多帶有霧的場景,但這些場景都是虛構的不實在的東西。計算機生成的3D圖像會與自然圖像的統計規律有很大區別,但人的視覺系統卻仍然能感覺到虛擬圖像中存在的霧。這讓我相信,人的視覺系統一定有一種有效的機制來感知有霧的圖像,而且這種機制一定與現存的去霧方法不一樣。前人提出的去霧方法都把重點放在圖像的對比度上,但虛擬場景和現實場景在對比度上的統計規律會很不一樣。人的視覺系統仍然能夠感知虛擬場景中的霧,說明除了對比度以外,人眼一定還在利用別的東西來感知霧。所以我覺得,這個問題里一定有人們未曾發現的更接近本質的東西。
第二個觀察來自對前人的去霧方法的研究。之前最有效的去霧方法是Fattal在2008年的Siggraph文章《Single Image Dehazing》中提出來的,這篇文章是我們首要超越的目標。這篇文章里給出的比較結果中,我發現一種叫做Dark Object Subtraction的方法有時候會有更好的效果。這種方法利用了全圖最暗的點來去除全局均勻的霧。如果霧的確是均勻的,這種方法就會更有效。其缺點在於它無法處理不均勻的霧,而這卻正是去霧問題中的難點。因此自然的想法就是局部利用Dark Object Subtraction處理圖像。而恰巧這樣做並不需要利用對比度,說明它與之前的方法有了本質的區別。讓人吃驚的是,在大量的實驗中,我發現這么簡單的想法,其效果卻非常好。
但我們論文中最重要的觀點卻形成在我動筆寫文章之后。在文章的前幾稿中,我在形象計算組的mentor孫劍一直追問我,我們的方法能成功的本質原因是什么,背后有什么我們沒有充分理解透徹的“真知灼見”。盡管我們有很簡單的方法,也有很漂亮的實驗結果,但我們卻無法讓人對這種方法的有效性感到信服。這是因為我們還講不出個道理來。帶着這個問題,我又回到了實驗和觀察之中。我發現,既然大量實驗結果證實局部做Dark Object Subtraction的做法是成功的,那么就說明去霧之后的圖像的每個局部的確是有暗的物體存在的。也就是說,在這個方法成功的背后,其實有一個關於無霧圖像的統計規律。我的mentor孫劍讓我去先去研究一個無霧圖像的數據庫。通過大量的實驗,我們發現這個統計規律是客觀存在的。這就是我們所提出的Dark Channel Prior。
這是我寫的第一篇論文
2007年,我從清華大學基礎科學班本科畢業,之后就讀於香港中文大學。在基礎科學班的主修課程是數學和物理,因此在本科階段,我並沒有系統地學習過計算機方面的相關知識。出於興趣,我選修了計算機圖形和圖像方面的一些相關課程。但是在進入微軟亞洲研究院實習的初期,這些基礎課程遠遠不足以應付我面對的研究工作。背景知識的缺乏使我在入門的路上舉步維艱。在閱讀文章的時候,我常常都不知道哪些是大家都在用的方法,哪些才是作者的貢獻。對我來說,我看見的每一樣東西都是新的。
在面試的時候,我的導師湯曉鷗就跟我說過,他並不在意我沒有相關的背景知識,因為所有相關的東西都是可以學的。在進入微軟亞洲研究院實習的頭一年里,我在mentor孫劍的指導下做過幾個不同的課題,雖然都沒有成功,但從中學習了不少知識。其中我花了大量時間研究的image matting問題 (半透明物體邊界提取),就對這次的文章有很大幫助。在剛開始研究去霧的時候,我就發現霧的方程和matting的方程非常相似,而我之前所研究的matting框架可以給去霧帶來幫助。利用這個框架,我只需要尋找一個能局部估算霧的濃度的方法就行了。這個框架使得我能專心的尋找這樣的方法並且最后提出了Dark Channel Prior。
紐約、北京灰霾照片的去霧結果
即使有了想法和實驗結果,第一次寫文章也使我覺得非常困難。我經常陷入自己和自己吵架的角色當中。在每一段話寫好之后,我常常會質問自己事情到底是不是這樣的,這其中有沒有漏洞。我也會問自己,如果我是評委,或者是讀者,那么我能看懂這篇文章嗎,我怎么寫才能讓思路更加流暢。就在這樣的掙扎中,一稿通常要寫好幾天。而即使是這樣,起初的幾稿也遠沒能讓孫劍滿意。一開始,他只在文章的結構、思路和觀點的提出上給我建議,而不去具體修改我的文章。於是我又回去繼續和自己吵架。但每當我把自己說服了,孫劍還是總能提出新的質疑。就在這樣的循環中,終於有一天孫劍說文章已經寫得不錯了,他才開始具體的修改。正是這樣的苛刻要求,才會有后來高質量的文章。
大道之行在於簡
我們這篇文章的三個審稿人都給出了最高的評分。他們認為我們的方法簡單而有效。其中一位評委說,Dark Channel Prior的想法聽起來很不可思議,但我們卻證明了其真實性。另一位評委認為很少有文章能夠用如此簡單的方法使實驗結果獲得如此大的提升。還有一位評委甚至親自實現了我們的方法並確認其可行。孫劍說閱讀這樣的評審結果是一件讓人快樂的事情。而湯老師認為,這篇文章的成功在於三個方面。第一,方法非常簡單;第二,對於一個很困難的問題,給出了很好的結果;第三,發現了一個基本的自然規律並且應用在實際的問題中。在邁阿密的演講結束后,觀眾也給予了很高的評價。他們跟我說,這是這次CVPR上最有趣的一個演講。
一位與會的研究員說,最好的idea,往往就是那些看起來很簡單,但說出來大家都會覺得怎么沒有人想到過的idea。而我們的idea正好就符合了這一點。我們論文摘要的第一句話是這么說的,“我們提出了一個簡單而有效的方法”。或許,這就是對我們這次工作最好的概括——簡單的,就是美的。
作者介紹
何愷明:微軟亞洲研究院視覺計算組實習生,現就讀於香港中文大學訊息工程多媒體實驗室,本科畢業於清華大學基礎科學班。他是2006年微軟小學者獎學金獲得者之一,同時也是2003年廣東省高考狀元。
二:高級圖像去霧算法的快速實現
http://blog.csdn.net/huixingshao/article/details/42834939
這是一篇詳細的介紹何愷明去霧算法的博文,並且給出了實現程序,似乎源碼沒有
三:Single Image Haze Removal(圖像去霧)-CVPR’09 Best Paper
http://blog.csdn.net/abcjennifer/article/details/6662706
CSDN名博Rachel-Zhang給出的Matlab和Opencv代碼以及詳細介紹
四: 何愷明博客
http://research.microsoft.com/en-us/um/people/kahe/
經典:CVPR best paper award in 2009 經典去霧算法Single Image Haze Removal Using Dark Channel Prior。CVPR創立25年以來首次由中國人獲得這個獎項
他的有關去霧的論文和持續到2013年的改進在:http://research.microsoft.com/en-us/um/people/kahe/cvpr09/index.html
方向:deep learning for visual recognition, including image classification, object detection, and semantic segmentation.;
資源:Paper、code
更新:2015