何愷明經典去霧演算法

2021-09-06 23:31:08 字數 3783 閱讀 1614

【視覺機械人:個人感覺學習他的經典演算法固然很重要,但是他的解決問題的思路也是非常值得我們學習的】

那是2023年4月24日的早上,我收到了一封不同尋常的email。發信人是cvpr 2009的主席們,他們說我的文章獲得了cvpr 2009的最佳**獎(best ***** award)。我反覆閱讀這封郵件以確認我沒有理解錯誤。這真是一件令人難以置信的事情。 

北京灰霾**的去霧結果

簡單有效的影象去霧技術

這篇**研究的問題是影象的去霧技術,它可以還原影象的顏色和能見度,同時也能利用霧的濃度來估計物體的距離,這些在計算機視覺上都有重要應用(例如三維重建,物體識別)。但是之前人們還沒找到簡單有效的方法來達到這個目的。在這篇**裡,我們找到了乙個非常簡單的,甚至說令人驚訝統計規律,並提出了有效的去霧方法。

與之前的方法不同,我們把注意力放到了無霧影象的統計特徵上。我們發現,在無霧影象中,每乙個區域性區域都很有可能會有陰影,或者是純顏色的東西,又或者是黑色的東西。因此,每乙個區域性區域都很有可能有至少乙個顏色通道會有很低的值。我們把這個統計規律叫做dark channel prior。直觀來說,dark channel prior認為每乙個區域性區域都總有一些很暗的東西。這個規律很簡單,但在我們研究的去霧問題上卻是本質的基本規律。 

由於霧總是灰白色的,因此一旦影象受到霧的影響,那麼這些本來應該很暗的東西就會變得灰白。不僅如此,根據物理上霧的形成公式,我們還能根據這些東西的灰白程度來判斷霧的濃度。因此,我們提出的dark channel prior能很有效地去除霧的影響,同時利用物的濃度來估算物體的距離。 

電腦遊戲帶來的靈感

這個想法的產生來自於兩個偶然的觀察。

第乙個觀察來自乙個3d遊戲。這個遊戲有很多帶有霧的場景,但這些場景都是虛構的不實在的東西。計算機生成的3d影象會與自然影象的統計規律有很大區別,但人的視覺系統卻仍然能感覺到虛擬影象中存在的霧。這讓我相信,人的視覺系統一定有一種有效的機制來感知有霧的影象,而且這種機制一定與現存的去霧方法不一樣。前人提出的去霧方法都把重點放在影象的對比度上,但虛擬場景和現實場景在對比度上的統計規律會很不一樣。人的視覺系統仍然能夠感知虛擬場景中的霧,說明除了對比度以外,人眼一定還在利用別的東西來感知霧。所以我覺得,這個問題裡一定有人們未曾發現的更接近本質的東西。

第二個觀察來自對前人的去霧方法的研究。之前最有效的去霧方法是fattal在2023年的siggraph文章《single image dehazing》中提出來的,這篇文章是我們首要超越的目標。這篇文章裡給出的比較結果中,我發現一種叫做dark object subtraction的方法有時候會有更好的效果。這種方法利用了全圖最暗的點來去除全域性均勻的霧。如果霧的確是均勻的,這種方法就會更有效。其缺點在於它無法處理不均勻的霧,而這卻正是去霧問題中的難點。因此自然的想法就是區域性利用dark object subtraction處理影象。而恰巧這樣做並不需要利用對比度,說明它與之前的方法有了本質的區別。讓人吃驚的是,在大量的實驗中,我發現這麼簡單的想法,其效果卻非常好。

但我們**中最重要的觀點卻形成在我動筆寫文章之後。在文章的前幾稿中,我在形象計算組的mentor孫劍一直追問我,我們的方法能成功的本質原因是什麼,背後有什麼我們沒有充分理解透徹的「真知灼見」。儘管我們有很簡單的方法,也有很漂亮的實驗結果,但我們卻無法讓人對這種方法的有效**到信服。這是因為我們還講不出個道理來。帶著這個問題,我又回到了實驗和觀察之中。我發現,既然大量實驗結果證實區域性做dark object subtraction的做法是成功的,那麼就說明去霧之後的影象的每個區域性的確是有暗的物體存在的。也就是說,在這個方法成功的背後,其實有乙個關於無霧影象的統計規律。我的mentor孫劍讓我去先去研究乙個無霧影象的資料庫。通過大量的實驗,我們發現這個統計規律是客觀存在的。這就是我們所提出的dark channel prior。       

這是我寫的第一篇**

2023年,我從清華大學基礎科學班本科畢業,之後就讀於香港中文大學。在基礎科學班的主修課程是數學和物理,因此在本科階段,我並沒有系統地學習過計算機方面的相關知識。出於興趣,我選修了計算機圖形和影象方面的一些相關課程。但是在進入微軟亞洲研究院實習的初期,這些基礎課程遠遠不足以應付我面對的研究工作。背景知識的缺乏使我在入門的路上舉步維艱。在閱讀文章的時候,我常常都不知道哪些是大家都在用的方法,哪些才是作者的貢獻。對我來說,我看見的每一樣東西都是新的。

在面試的時候,我的導師湯曉鷗就跟我說過,他並不在意我沒有相關的背景知識,因為所有相關的東西都是可以學的。在進入微軟亞洲研究院實習的頭一年裡,我在mentor孫劍的指導下做過幾個不同的課題,雖然都沒有成功,但從中學習了不少知識。其中我花了大量時間研究的image matting問題 (半透明物體邊界提取),就對這次的文章有很大幫助。在剛開始研究去霧的時候,我就發現霧的方程和matting的方程非常相似,而我之前所研究的matting框架可以給去霧帶來幫助。利用這個框架,我只需要尋找乙個能區域性估算霧的濃度的方法就行了。這個框架使得我能專心的尋找這樣的方法並且最後提出了dark channel prior。 

紐約、北京灰霾**的去霧結果

即使有了想法和實驗結果,第一次寫文章也使我覺得非常困難。我經常陷入自己和自己吵架的角色當中。在每一段話寫好之後,我常常會質問自己事情到底是不是這樣的,這其中有沒有漏洞。我也會問自己,如果我是評委,或者是讀者,那麼我能看懂這篇文章嗎,我怎麼寫才能讓思路更加流暢。就在這樣的掙扎中,一稿通常要寫好幾天。而即使是這樣,起初的幾稿也遠沒能讓孫劍滿意。一開始,他只在文章的結構、思路和觀點的提出上給我建議,而不去具體修改我的文章。於是我又回去繼續和自己吵架。但每當我把自己說服了,孫劍還是總能提出新的質疑。就在這樣的迴圈中,終於有一天孫劍說文章已經寫得不錯了,他才開始具體的修改。正是這樣的苛刻要求,才會有後來高質量的文章。

大道之行在於簡

我們這篇文章的三個審稿人都給出了最高的評分。他們認為我們的方法簡單而有效。其中一位評委說,dark channel prior的想法聽起來很不可思議,但我們卻證明了其真實性。另一位評委認為很少有文章能夠用如此簡單的方法使實驗結果獲得如此大的提公升。還有一位評委甚至親自實現了我們的方法並確認其可行。孫劍說閱讀這樣的評審結果是一件讓人快樂的事情。而湯老師認為,這篇文章的成功在於三個方面。第一,方法非常簡單;第二,對於乙個很困難的問題,給出了很好的結果;第三,發現了乙個基本的自然規律並且應用在實際的問題中。在邁阿密的演講結束後,觀眾也給予了很高的評價。他們跟我說,這是這次cvpr上最有趣的乙個演講。

一位與會的研究員說,最好的idea,往往就是那些看起來很簡單,但說出來大家都會覺得怎麼沒有人想到過的idea。而我們的idea正好就符合了這一點。我們**摘要的第一句話是這麼說的,「我們提出了乙個簡單而有效的方法」。或許,這就是對我們這次工作最好的概括——簡單的,就是美的。

作者介紹

何愷明:微軟亞洲研究院視覺計算組實習生,現就讀於香港中文大學訊息工程多**實驗室,本科畢業於清華大學基礎科學班。他是2023年微軟小學者獎學金獲得者之一,同時也是2023年廣東省高考狀元。

這是一篇詳細的介紹何愷明去霧演算法的博文,並且給出了實現程式,似乎原始碼沒有

csdn名博rachel-zhang給出的matlab和opencv**以及詳細介紹

經典:cvpr best ***** award in 2009 經典去霧演算法single image haze removal using dark channel prior。cvpr創立25年以來首次由中國人獲得這個獎項

他的有關去霧的**和持續到2023年的改進在:cvpr09/index.html

方向:deep learning for visual recognition, including image classification, object detection, and semantic segmentation.;

資源:*****、code

更新:2015

何教授去霧演算法C 實現(除錯)

前幾日有幸拜讀了何教授的一篇文章 single image haze removal using dark channel prior 的文章,結合最近接收的工作就像將去霧演算法增強dcm影象。演算法的基本思想並不複雜,詳細的原理和推導大家可以參考大牛們的部落格和何教授的 原文。這裡用幾個公式概述演...

經典去霧演算法DCP的c 實現

首先是需匯入的標頭檔案和包,我覺得一些演算法不給出包的話對我這種初學者不夠友好。本演算法使用到了vector陣列和排序的演算法所以用到了algorithm和vector include include include include using namespace cv using namespac...

暗通道去霧演算法的python實現

import cv2 as cv import numpy as np import matplotlib.pyplot as pyplot def darkchannel for i in range 0,rows 1 for j in range 0,cols 1 min rgb img arr...