2012-IJCV - Non-uniform deblurring for shaken images

项目地址:https://www.di.ens.fr/willow/research/deblurring/
作者:Oliver Whyte

  • 非一致性模糊
  • 针对相机转动提出新的模糊模型
  • 将新模型代替卷积模型代入两种去模糊算法框架:Fergus et al. (2006,VB) and Cho and Lee (2009,MAP)

平移vs.转动

文章首先说明了相机转动比平移更容易造成图像模糊,因此本文只考虑了相机转动影响,忽略了相机平移。如下图:
在这里插入图片描述
当造成 δ \delta δ大小的模糊时(像平面上的像素偏移距离),相机需要平移的大小为: X = δ F D X=\frac \delta FD X=FδD,需要转动的角度为: θ = tan ⁡ − 1 δ F \theta=\tan^{-1}\frac \delta F θ=tan1Fδ, 代入实际数据时,当目标距离相机1米时,需要平移1cm,仅需要转动 0.6 ° 0.6\degree 0.6°!所以模糊更有可能是由相机转动造成的。

转动还可以分为in-plane 与 out-of-plane。
in-plane 指围绕Z轴的旋转,相比out-of-plane,像素偏移路径在整个图像中变化更大。
在这里插入图片描述

新模型

在这里插入图片描述
其中 x \mathbf x x表示观测图像 g g g中的齐次坐标, f f f为潜在图像, ε \varepsilon ε表示观测噪声,T表示相机曝光时间, H t \mathbf H_t Ht为t时刻的单应矩阵。
在这里插入图片描述
单应矩阵 H \mathbf H H可以写成:
在这里插入图片描述
R \mathbf R R为相机旋转矩阵, K \mathbf K K为标定矩阵(calibration matrix)。传送门:相机标定及内参外参
在这里插入图片描述在这里插入图片描述
一般来说,模糊的图像没有相关的时间信息T,因此改为对角度的积分(相机不同时刻都会对应一个角度,每个角度也会对应一个单应矩阵):
在这里插入图片描述
w ( θ ) ∈ R N x × N y × N z w(\bm\theta)\in \mathbb R^{N_x\times N_y\times N_z} w(θ)RNx×Ny×Nz是一个三维权重矩阵, θ = ( θ x , θ y , θ z ) \bm\theta=(\theta_x,\theta_y,\theta_z) θ=(θx,θy,θz)。即广义上的“模糊核”。

在这里插入图片描述
进一步地,将单应变换写成矩阵乘法:
在这里插入图片描述
展开后,
在这里插入图片描述
其中 C \bm C C是一个非常稀疏的矩阵,上式对于 w \bf w w f \bf f f都为线性(双线性),
在这里插入图片描述
因此可以直接代入一致性去模糊算法(卷积运算也是双线性的)。
需要注意的是,卷积运算可以通过傅里叶变换加速,而该模型中的双线性形式是不可以的。

接着文章介绍了两种框架:VB-based和MAP-based

VB-based

R. Fergus, B. Singh, A. Hertzmann, S. T. Roweis, and W. T. Freeman.
Removing camera shake from a single photograph. ACM Trans.
Graphics (Proc. SIGGRAPH 2006), 25(3):787–794, 2006.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

MAP-based

S. Cho and S. Lee. Fast motion deblurring. ACM Trans. Graphics
(Proc. SIGGRAPH Asia 2009), 28(5):145:1–145:8, 2009.

能量函数如下:
在这里插入图片描述
文章发现原文中对于模糊核2范数先验效果并不好,所以改成了1范数:
在这里插入图片描述
在这里插入图片描述

非盲去模糊

文章采用了两种:
一种是使用了超拉普拉斯先验的;

D. Krishnan and R. Fergus. Fast image deconvolution using hyperlaplacian
priors. In NIPS, 2009.

另一种是RL算法,文章也简单介绍了,并发现对于包含饱和区域的图像 (由于过大像素值被裁剪,线性模型不再有效),RL算法结果更好。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(3) 参考利用下面的程序代码,完成代码注释中要求的两项任务。 import re """ 下面ref是2020年CVPR的最佳论文的pdf格式直接另存为文本文件后, 截取的参考文献前6篇的文本部分。 请利用该科研文献的这部分文本,利用正则表达式、字符串处理等方法, 编程实现对这6篇参考文献按下面的方式进行排序输出。 a.按参考文献标题排序 b.按出版年份排序 """ ref = """[1] Panos Achlioptas, Olga Diamanti, Ioannis Mitliagkas, and Leonidas Guibas. Learning representations and generative models for 3D point clouds. In Proc. ICML, 2018 [2] Pulkit Agrawal, Joao Carreira, and Jitendra Malik. Learning to see by moving. In Proc. ICCV, 2015 [3] Peter N. Belhumeur, David J. Kriegman, and Alan L. Yuille. The bas-relief ambiguity. IJCV, 1999 [4] Christoph Bregler, Aaron Hertzmann, and Henning Biermann. Recovering non-rigid 3D shape from image streams. In Proc. CVPR, 2000 [5] Angel X. Chang, Thomas Funkhouser, Leonidas Guibas. Shapenet: An information-rich 3d model reposi-tory. arXiv preprint arXiv:1512.03012, 2015 [6] Ching-Hang Chen, Ambrish Tyagi, Amit Agrawal, Dy-lan Drover, Rohith MV, Stefan Stojanov, and James M. Rehg. Unsupervised 3d pose estimation with geometric self-supervision. In Proc. CVPR, 2019""" ref_str = re.sub(r'\[([0-9]{1})\]', r'$[\1]', ref) # 添加分隔$ print(ref_str) #脚手架代码 ref_str_2 = re.sub(r'([a-zA-Z]{2})\.', r'\1.#', ref_str) # 添加分隔# print(ref_str_2) #脚手架代码 ref_str2 = ref_str_2.replace("\n", "") ref_list = ref_str2.split("$") print(ref_list) #脚手架代码 [提示: 排序可以采用内置函数sorted(),语法如下: sorted(iterable, /, *, key=None, reverse=False), 注意掌握形式参数中带“/”和“*”的用途]
最新发布
05-26

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值