何恺明经典去雾算法之SingleImageHazeRemoval
⼀:由简⾄美的最佳论⽂(作者:何恺明视觉计算组)
【视觉机器⼈:个⼈感觉学习他的经典算法固然很重要,但是他的解决问题的思路也是⾮常值得我们学习的】大年初五迎财神
那是2009年4⽉24⽇的早上,我收到了⼀封不同寻常的email。发信⼈是CVPR 2009的主席们,他们说我的⽂章获得了。我反复阅读这封邮件以确认我没有理解错误。这真是⼀件令⼈难以置信的事情。手机牌子
北京灰霾照⽚的去雾结果
CVPR的中⽂名是计算机视觉与模式识别会议,是计算机视觉领域最顶尖的国际会议之⼀。今年的CVPR共收到约1450篇投稿,其中393篇⽂章被接收,接收率为26%。只有⼀篇⽂章被选为今年的最佳论⽂。这是CVPR创⽴25年以来⾸次由中国⼈获得这个奖项。这篇⽂章是我在微软亚洲研究院形象计算组实习的时候完成的,也是我个⼈真正意义上写的第⼀篇论⽂。
简单有效的图像去雾技术
这篇论⽂研究的问题是图像的去雾技术,它可以还原图像的颜⾊和能见度,同时也能利⽤雾的浓度来估
b型血的特点计物体的距离,这些在计算机视觉上都有重要应⽤(例如三维重建,物体识别)。但是之前⼈们还没找到简单有效的⽅法来达到这个⽬的。在这篇论⽂⾥,我们找到了⼀个⾮常简单的,甚⾄说令⼈惊讶统计规律,并提出了有效的去雾⽅法。
与之前的⽅法不同,我们把注意⼒放到了⽆雾图像的统计特征上。我们发现,在⽆雾图像中,每⼀个局部区域都很有可能会有阴影,或者是纯颜⾊的东西,⼜或者是⿊⾊的东西。因此,每⼀个局部区域都很有可能有⾄少⼀个颜⾊通道会有很低的值。我们把这个统计规律叫做Dark Channel Prior。直观来说,Dark Channel Prior认为每⼀个局部区域都总有⼀些很暗的东西。这个规律很简单,但在我们研究的去雾问题上却是本质的基本规律。
由于雾总是灰⽩⾊的,因此⼀旦图像受到雾的影响,那么这些本来应该很暗的东西就会变得灰⽩。不仅如此,根据物理上雾的形成公式,我们还能根据这些东西的灰⽩程度来判断雾的浓度。因此,我们提出的Dark Channel Prior能很有效地去除雾的影响,同时利⽤物的浓度来估算物体的距离。
电脑游戏带来的灵感
食品安全宣传周这个想法的产⽣来⾃于两个偶然的观察。
第⼀个观察来⾃⼀个3D游戏。这个游戏有很多带有雾的场景,但这些场景都是虚构的不实在的东西。
计算机⽣成的3D图像会与⾃然图像的统计规律有很⼤区别,但⼈的视觉系统却仍然能感觉到虚拟图像中存在的雾。这让我相信,⼈的视觉系统⼀定有⼀种有效的机制来感知有雾的图像,⽽且这种机制⼀定与现存的去雾⽅法不⼀样。前⼈提出的去雾⽅法都把重点放在图像的对⽐度上,但虚拟场景和现实场景在对⽐度上的统计规律会很不⼀样。⼈的视觉系统仍然能够感知虚拟场景中的雾,说明除了对⽐度以外,⼈眼⼀定还在利⽤别的东西来感知雾。所以我觉得,这个问题⾥⼀定有⼈们未曾发现的更接近本质的东西。a总
第⼆个观察来⾃对前⼈的去雾⽅法的研究。之前最有效的去雾⽅法是Fattal在2008年的Siggraph⽂章《Single Image Dehazing》中提出来的,这篇⽂章是我们⾸要超越的⽬标。这篇⽂章⾥给出的⽐较结果中,我发现⼀种叫做Dark Object Subtraction的⽅法有时候会有更好的效果。这种⽅法利⽤了全图最暗的点来去除全局均匀的雾。如果雾的确是均匀的,这种⽅法就会更有效。其缺点在于它⽆法处理不均匀的雾,⽽这却正是去雾问题中的难点。因此⾃然的想法就是局部利⽤Dark Object Subtraction处理图像。⽽恰巧这样做并不需要利⽤对⽐度,说明它与之前的⽅法有了本质的区别。让⼈吃惊的是,在⼤量的实验中,我发现这么简单的想法,其效果却⾮常
好。
Single Image Haze Removal Using Dark Channel Prior-2
但我们论⽂中最重要的观点却形成在我动笔写⽂章之后。在⽂章的前⼏稿中,我在形象计算组的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年⼴东省⾼考状元。
⼆:⾼级图像去雾算法的快速实现白色上衣
这是⼀篇详细的介绍何恺明去雾算法的博⽂,并且给出了实现程序,似乎源码没有
三:Single Image Haze Removal(图像去雾)-CVPR’09 Best Paper
CSDN名博Rachel-Zhang给出的Matlab和Opencv代码以及详细介绍
四:何恺明博客
经典:CVPR best paper award in 2009 经典去雾算法Single Image Haze Removal Using Dark Channel Prior。CVPR创⽴25年以来⾸次由中国⼈获得这个奖项
⽅向:deep learning for visual recognition, including image classification, object detection, and mantic gmentation.;
资源:Paper、code
什么歌曲最好听更新:2015