怎么p出模糊的照片_36. 盲去卷积 - 更加实用的图像去模糊方法

da0a7fb6826bf116527e01d750605000.png

本文同步发表在我的微信公众号和知乎专栏“计算摄影学”,欢迎扫码关注,

e809a3557d1f359b0e4e27309b77847e.png

上一篇文章35. 去卷积:怎么把模糊的图像变清晰?吸引了很多朋友的关注。在这篇文章里面,我给大家讲了一种叫做“非盲去卷积”的方法,当指定了PSF(下图中的c),和观测到的模糊图像(下图中的b),我们可以恢复出清晰的图像(下图中的x)。

15c75f95d10d13ee3cc9d00aeb297c12.png

很多人都觉得去卷积大法好啊,真的可以把渣画质变清晰。可就是需要提前知道PSF,这可就难了。确实,很多情况下提前测定PSF是根本不可能的,有可能你手上只拿到了一张很模糊的照片b,不知道c,想要恢复出x,这时候应该怎么办呢?

f978af12af45e07e12bc18bc9302a932.png

事实上,这也是可以办到的,这就是所谓的“盲去卷积”(Blind Deconvolution),今天我就给大家介绍这种技术。

我们先来看两组盲去卷积的结果,给大家一些直观的感受:

4e9666e639ec4ecbec904aefec805190.png

74ac0b7906274b4ff0c1fcf416a8526e.png

上面的结果来自于盲去卷积领域非常经典而基础的文章:

Fergus et al., “Removing camera shake from a single image,” SIGGRAPH 2006.

今天我主要就为你介绍这篇文章的思想

一、盲去卷积的基本思想

1.1 利用先验信息

小明是第一次用单反的摄影小白,他刚刚很兴奋的端起相机拍了一张照片:

7a64236da4afb497560c6301c7044ab3.png
https://www.zhihu.com/video/1208905929737273344

Oops!手没拿稳,拍出了一张超模糊的照片:

2ae3b1dcf2a9694d63b3c8a2b423e86a.png

我们看看小明的相机在拍照瞬间的运动轨迹

a4cc5eb5a1235c8fc4f373802b51bdf0.png

很显然,他这样是拍不出来好片子的,我们来简化一下他这张照片的生成过程:

8e92c1a2eef7d87ee15cd1a313359682.png

上图中的模糊核(PSF)是由于小明端起相机时的随机抖动导致的,我们无法提前测定,那么怎么样才能把清晰图像恢复出来呢? 这真是一个超难的问题。

这就像你知道了11这个数是由2个数的乘积构成的,要让你猜出是哪两个数一样困难:

c0cb4af9b89c12226e5ae21b53afbf98.png

一张模糊的图像,也有可能有多种生成模式,只有最下面这种才是我们需要的,怎么才能得到它呢?

b11f5dedaa23aa9ff082c6adc7c81df6.png

很显然,我们需要利用一些先验信息。有两个关键的先验信息可以帮助我们

1 - 图像的梯度分布

清晰的自然图像的梯度符合一种叫做"Heavy-Tail"的分布形态。直观上讲,一张清晰图像里面有很多平滑的区域且噪声较低,所以梯度接近0的像素还是占大多数。但是由于图像清晰,所以物体的边界比较明显,所以还是有很多像素的梯度较大。因此这种梯度的分布大概长这个样子(梯度直方图的纵坐标是Log化的密度):

c89edf3f3d536d84f1e3366adca8ae0f.png

但是模糊的图像的边缘被糊掉了,所以更多的像素的梯度趋于0,因此其梯度直方图就会变化:

70bdf925e677f3620e2de06faaf7886a.png

所以我们想要寻找的是符合上面重尾分布的图像,而不是其他随随便便的图像

2 - 模糊核的形态

我们这里展示的是相机的运动导致的模糊,那么可以认为模糊核是稀疏的,有连续的轨迹,并且模糊核值都是非负数。所以我们重建出来的模糊核也不是随随便便的,它必须符合上述这些特点才是一个合格的运动模糊核。

3 - 噪声

相机总是有噪声的,为了简化问题,我们可以假设噪声是均值为0的高斯噪声

于是,我们就有了几种信息用于重建清晰的图像

0df0653436cb2fd07f71841a3829e942.png

1.2 问题的数学建模

已知模糊图像P,未知图像为L,未知的卷积核为K。一个基本的想法是把问题看做是求最大后验概率的问题:

bb92c738c690e49d3fa07db29877c9a5.png

其中K和L满足一定的先验条件的约束。我们所需的就是把后验概率公式表达出来。为了让这篇文章能够比较容易看懂,我把相关的细节列到文章的后面,这样你可以更连贯的阅读这篇文章。

1.3 问题的求解

作者尝试了用标准的MAP求解方法来求解出K和L,但最终效果却很差

14fa942374e6e9b14e1a948f957eaf24.png

作者对此的解释是MAP目标函数会尝试让所有像素的梯度都最小化,而实际的自然图像中包含有大量高梯度的区域。

而在2009年的下面这篇著名论文中,作者Levin教授则提出了更深入的见解。

Levin et al., “Understanding and evaluating blind deconvolution algorithms,” CVPR 2009 and PAMI 2011

Levin教授认为用MAP目标函数同时求解K和L肯定不好,有如下的原因:

  1. 错误的单位卷积核比起正确的稀疏卷积核的可能性更高(Levin的论文中有证明)

0f3e51dccddd9e6211e81bc52cd40fb7.png

2. 上述MAP目标函数的变量个数具有高度的非对称性,比如对于这幅毕加索照片:

e5fe373f0652b36fd50f4965b20ed6ac.png

可见已知量的个数总是小于未知量的个数 #P < #L + #K

以上两个原因就会导致用这种同时估计K和L的目标函数来做MAP总是无法得到好的结果。那有没有更好的方法呢?

Levin认为,更好的办法是只单独估计K,即把下面左边的问题转换为右边的问题

bb49e078e81aa558be411e58fd9a858d.png

这样,已知量的个数就远远大于未知量的个数 #P >> #K

这里的p(K|P)是相对于L的边际概率,即:

3c4f8d7c87c0f4dfe07b8d5e3f663710.png

简单来说,就是对每一个可能的K,我们都要在所有可能的L上求取其后验概率,并把这些后验概率值加起来,得到p(K|P)。你应该可以感觉到求这样的边际概率也是很不容易的事情,计算量非常复杂。于是很多学者采用了近似的方式来进行求解。回到我们开头介绍的Fergus的论文,作者是采用了“变分贝叶斯(variational Bayesian)”方法来近似后验概率的表示和求取

Fergus证明了这种方法能得到远比原始的同时求取K和L的MAP算法好。

b4a0e9e8c5bf925c159f5e2ede2cbb56.png

二、完整的流程

在论文中, Fergus展示了其完整的盲去卷积的流程:

第一步:预处理图像,为了降低计算量,并得到良好的结果,需要用户来选择一个图像块。

第二步:利用变分贝叶斯,估计卷积核K。为了避免陷入局部最优,作者采用了coarse-to-fine的策略

第三步:利用标准的非盲去卷积方法,重建清晰图像L。作者采用了我在上一篇文章里面提到的Richardson-Lucy算法进行。

28f3e85cf7077b07dd9010c8ecd6da16.png

7db8b4fe64b1a9f269193ff8abb76e2e.png

f707c195b2a172a83700df3d85930f2c.png

951bace587bb887ff9d467293e9e0dbb.png

44e7a5ac5fc80e0e1cbb102c2ae00f44.png

三、效果展示

c189c0f229b3b942f986a375e2cc2781.png

da746660160154bfcd6cb5532a57ea92.png

4c44e64d053206c9aff85e5dfb41bf76.png

四、后验概率的细节

正如前面所讲,为了求解问题,需要把后验概率用公式表达出来。先引入一些符号来说明问题:

  • 模糊图像块
  • :可能的模糊核
  • :可能的清晰图像块
  • : P的梯度
  • : Lp的梯度
  • :噪声

首先,我们前面讲过

由于卷积运算是线性运算,因此可以有:

这样我们可以把后验概率改写为

用MAP的思想来说,问题就转换为求使得上述概率最大的K和

我们可以用贝叶斯公式将这个后验概率展开:

19bf5a849817307c13d49b7faa0d3094.png

我们分别来看后面三项:

dc4fa3af6e4f7edefa04747c2dd942f4.png

于是上面的后验概率就可表示为:

c6212e90af1f70b9f193c72dfd8a8dab.png

五、算法值得改进的地方

在文章中Fergus提到的几个点都是值得改进的:

  1. 假设噪声满足高斯分布
  2. 用混合高斯模型来拟合重尾模型
  3. 用混合指数分布来描述模糊核的形态
  4. 多尺度的变分贝叶斯算法复杂度较高,需要用户的手动引导选择小的图像块
  5. 采用的非盲去卷积是RL算法,相信会有更好的方法来改善图像质量
  6. 等等

作者本身也在其文章中提到了一些值得改进的地方,能让后人在此基础上对 这项工作有所完。 果不其然,在随后几年的CVPR, SIGGRAPH, ICCV, ECCV上, 几乎每届都有更好的结果涌现。

比如下面这篇2008年Jiaya Jia团队的文章就作出了非常好的效果:

Shan et al., “High-quality Motion Deblurring from a Single Image,” SIGGRAPH 2008

文章的改善点包括了:

  1. 更复杂的噪声模型,噪声的概率分布由其0阶、1阶、2阶梯度的分布来描述
  2. 更简单的拟合重尾分布的函数
  3. 加入了局部平滑区域的约束,避免出现振铃效应
  4. 复杂的优化方法,交替式的优化估计清晰图像L和模糊核K

下面是算法的效果,还是非常不错的:

e8e1ab8caff25c9902323877a8fda8d5.gif

这个领域后面出了非常多效果更好的文章,在github上有一个专门的项目整理记录:

https://github.com/subeeshvasu/Awesome-Deblurring​github.com

六、总结

去卷积分为非盲去卷积和盲去卷积,我介绍的用途主要是图像的去模糊。今天介绍的Fergus的文章利用了变分贝叶斯算法来求解模糊核K,然后利用经典的非盲去卷积算法Richardson-Lucy算法来进行清晰图像的恢复。从今天介绍的文章你可以看到,理解盲去卷积的算法对图像的统计信息、概率知识、最优化求解方法的要求要比非盲去卷积高很多。坦率说,我自己在看这些文章时也感觉很吃力。

但我希望这篇文章能给你打开一扇大门,让你可以透过它看到一片新的研究天地。如果你喜欢这篇文章,请给我点赞,谢谢!

七、参考资料

  1. CMU 2017 Fall Computational Photography Course 15-463, Lecture 17
  2. Fergus et al., “Removing camera shake from a single image,” SIGGRAPH 2006.
  3. Levin et al., “Understanding and evaluating blind deconvolution algorithms,” CVPR 2009 and PAMI 2011.
  4. Shah et al., “High-quality Motion Deblurring from a Single Image,” SIGGRAPH 2008
  5. https://github.com/subeeshvasu/Awesome-Deblurring
  6. 图像去模糊之初探–Single Image Motion Deblurring

本文同步发表在我的微信公众号和知乎专栏“计算摄影学”,欢迎扫码关注,

e809a3557d1f359b0e4e27309b77847e.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker修改镜像的存储位置_云原生存储详解:容器存储与 K8s 存储卷(内含赠书福利)...

作者 | 阚俊宝 阿里巴巴技术专家参与文末留言互动&#xff0c;即有机会获得赠书福利&#xff01;导读&#xff1a;云原生存储详解系列文章将从云原生存储服务的概念、特点、需求、原理、使用及案例等方面&#xff0c;和大家一起探讨云原生存储技术新的机遇与挑战。本文为该系列…

计算机专业用锐龙笔记本,轻松应对工作挑战——ThinkPad T14 锐龙版,适合办公的笔记本电脑...

拥有一部适合办公的笔记本电脑&#xff0c;可以成为商务人士忙碌工作中强有力的支持。联想旗下的ThinkPad 系列笔记本电脑&#xff0c;一直秉持为高端商务人士服务的理念&#xff0c;以稳定、流畅、安全的使用体验得到广泛认可。其中的ThinkPad T14 锐龙版&#xff0c;更是有着…

python tabula 使用方法_Python中os.walk()的使用方法

os.walk()主要用来扫描某个指定目录下所包含的子目录和文件。这篇文章将通过几个简单的例子来说明python中os.walk()的使用方法。假设我们的test文件夹有如下的目录结构&#xff1a;我们首先用os.walk扫描test文件夹下所有的子目录和文件&#xff1a;# 使用os.walk扫描目录 imp…

乐乐勇智能教育机器人有多少型号_【头条】协作机器人平台化趋势将会是柔性自动化的破局之道...

智能机器人商情微信公众号&#xff0c;关注中国智能机器人行业热点与发展趋势&#xff0c;打造快捷高效的行业资讯交互平台。更多精彩内容&#xff0c;您可以点击标题下方的蓝字关注我们。导语艾利特平台级CS系列协作机器人全新发布9月15日上海工博会第一天&#xff0c;艾利特机…

计算机毕设结束语致谢,毕业设计结束语和致谢

毕业设计结束语和致谢时间&#xff1a;2021-01-17 20:08:40 分类&#xff1a;小结范文 | 毕业论文致谢词范文 | Word文档下载毕业设计结束语和致谢导语&#xff1a;论文致谢应以简短的文字对课题研究与论文撰写过程中间直接给予帮助的人员(例如指导教师、答疑教师及其他人员)…

CSS中属性个属性值怎么区分,[CSS] 详细解释 @media 属性与 (max

前言现在 HTML5/CSS3 很流行罢&#xff0c;也是未来时代的趋势。在 HTML5 带来的许多实用功能之后&#xff0c;CSS3也同带来了一些牛逼哄哄的功能呢。动画 animation转化 transform过渡 translation尽快这已足够让我们兴奋&#xff0c;许多之前必须用 JS 或 JQ 写的效果用 CSS …

西门子精智和精简面板区别_西门子S7-1200的功能与特点,应用范围介绍

S7-1200是西门子公司新推出的一款面向离散自动化系统和独立自动化系统的低端PLC。S7-1200采用了模块化设计&#xff0c;具备强大的工艺功能&#xff0c;适用于多种场合&#xff0c;可以满足不同的自动化需求。S7-1200的定位处于原有的SIMATIC S7-200和SIMATIC S7-300之间&#…

【HDU - 1281 】棋盘游戏 (经典的二分图匹配,匈牙利算法,枚举删除顶点,必须边,关建边)

题干&#xff1a; 小希和Gardon在玩一个游戏&#xff1a;对一个N*M的棋盘&#xff0c;在格子里放尽量多的一些国际象棋里面的“车”&#xff0c;并且使得他们不能互相攻击&#xff0c;这当然很简单&#xff0c;但是Gardon限制了只有某些格子才可以放&#xff0c;小希还是很轻松…

eclipse提示方法已过时_提高效率,eclipse上你可能不知道的技巧

一张思维导图1、控制台(console )日志输出另保存经常会遇到这种情况&#xff0c;习惯性的清掉控制台上的输出日志&#xff0c;再然后发现刚才的日志居然还有用&#xff0c;不得不又重新调试一遍&#xff0c;为了解决这种“手贱”的问题&#xff0c;我在网上搜了一些资料&#x…

【CodeForces - 144B 】Meeting (暴力枚举,水题,计算几何)

题干&#xff1a; The Super Duper Secret Meeting of the Super Duper Secret Military Squad takes place in a Super Duper Secret Place. The place is an infinite plane with introduced Cartesian coordinate system. The meeting table is represented as a rectangle…

html中超链接使用_干货 | HTML中表格的使用方法

HTML中的表格是由表格的标签组成HTML中的表格是由标签用于定义表格的列&#xff0c;标签为又是标签来分割列&#xff0c;形成一个完整的表格。表格的标签组合关系为&#xff1a;我是单元格1我是单元格2表格中可以插入文本、图片、列表、段落、表单、水平线等任何html标签&#…

互补品的交叉弹性系数_重庆事业单位综合备考:需求价格弹性和需求交叉价格弹性有何区别...

需求价格弹性 VS 需求交叉价格弹性一、需求价格弹性指某种商品随着价格的变化&#xff0c;该商品需求变化的程度大小(这里指的是同一种商品)。或者说&#xff0c;是需求变化相对于价格变化的敏感程度。假设&#xff1a;黄金、IPONE手机等商品降价50%&#xff0c;一定会大卖&…

朋友圈自动回复评论_微信新版,朋友圈可以表情包回复了!网友:评论区斗起来.jpg...

你们发现了吗&#xff1f;朋友圈可以发表情包评论了&#xff01;微信iOS版7.0.9正式版今天迎来更新支持发消息时可以引用之前的内容更令人惊喜的是不少网友都发现新版本还新增朋友圈自定义表情评论功能可以用表情包评论别人的朋友圈内容了&#xff01;轻触表情包还可以查看大图…

【CodeForces - 144D】Missile Silos(单源最短路,枚举中间边,枚举情况可能性)

题干&#xff1a; A country called Berland consists of n cities, numbered with integer numbers from 1to n. Some of them are connected by bidirectional roads. Each road has some length. There is a path from each city to any other one by these roads. Accordi…

【牛客 - 210A】游戏(思维,脑洞)

题干&#xff1a; BLUESKY007,fengxunling和dreagonm三个人发现了一个像素游戏,这款神奇的游戏每次会生成一个nxm的网格,其中每一个格子都被随机染色为R,G,B三种颜色之一,每次都可以选择任意一个非B颜色的格子进行一次操作,每次操作都会满足以下规则&#xff1a; 1.操作的范围为…

建房子 最安全图纸_妄想山海初期该怎么办?砍树狩猎建房子,还能拆别人的房子...

妄想山海还是一个很有趣的游戏&#xff0c;唯一的缺点就是游戏对手机配置要求比较高&#xff0c;手机太差的玩家&#xff0c;就别想那么多了&#xff0c;希望等游戏正式上线&#xff0c;能优化的好一些吧&#xff01;在测试中&#xff0c;玩家能体验到游戏中的各种玩法&#xf…

【POJ - 2226】Muddy Fields(匈牙利算法 或 网络流dinic,二分图匹配,最小点覆盖,矩阵中优秀的建图方式 )

题干&#xff1a; Rain has pummeled the cows field, a rectangular grid of R rows and C columns (1 < R < 50, 1 < C < 50). While good for the grass, the rain makes some patches of bare earth quite muddy. The cows, being meticulous grazers, dont w…

javaweb在线问卷系统_2020 最新流行的Java Web报表工具比对

随着信息系统的高速发展&#xff0c;报表平台逐渐成为了信息系统当中最为核心和重要的功能模块。报表工具有助于将原始数据可视化显示&#xff0c;使决策者或者相关人员能够一览整体的数据趋势&#xff0c;完整的报表解决方案会提供多样的表格数据展示、数据可视化元素&#xf…

隧道凿岩机器人_隧道凿岩机器人的研制

隧道凿岩机器人的研制隧道、洞室开挖是现代交通、能源、采掘、建筑等大规模基本建设中的一项难度大、耗资耗时多、劳动条件差但又十分重要、十分关键的施工作业。早期的液压凿岩设备全都是由人工操作的液压凿岩钻车&#xff0c;其施工效率和施工精度完全取决于操作人员的熟练程…

【HDU - 1045】Fire Net (dfs 或二分图)

题干&#xff1a; Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall. A blockhouse is a small castle that has four openings through which to …