2008-TOG - High-quality motion deblurring from a single image

2024-08-22 11:32

本文主要是介绍2008-TOG - High-quality motion deblurring from a single image,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目地址:http://www.cse.cuhk.edu.hk/~leojia/projects/motion_deblurring/index.html
香港中文大学 贾佳亚团队

  • 分析了振铃现象(ringing artifacts)产生的原因
  • 改进了噪声模型,保证噪声分布在空间上是随机的,非结构化的
  • 概率模型(probabilistic model)到能量最小化问题,基于MAP
  • 图像先验分为:(全局)分段函数拟合图像梯度的对数密度(重尾分布),(局部)在观测图像对比度较低的区域对潜在(latent)图像施加平滑度约束
  • 模糊核先验:指数分布,在能量中对应为一范数(取了负对数negative logarithm)
  • 优化过程介绍很详细,包括一些优化细节

在假设模糊核具有平移不变性(shift-invariant),去模糊问题褪变成图像去卷积问题。该问题是不适定的,且由于自然图像结构的复杂性和模糊核形状的多样性,使得设置的概率先验容易过拟合或欠拟合。

The complexity of natural image structures and diversity of blur kernel shapes make it easy to over- or under-fit probabilistic priors.

振铃效应一般出现在图像的强边缘附近
在这里插入图片描述
文章分析了振铃效应不是吉伯斯现象(Gibbs phenomenon)造成的,而是图像噪声或者模糊核偏差的原因:
I = ( L ′ + Δ L ) ⊗ ( f ′ + Δ f ) + n = L ′ ⊗ f ′ + Δ L ⊗ f ′ + L ′ ⊗ Δ f + Δ L ⊗ Δ f + n \begin{aligned} \bf I&=\bf(L'+\Delta L)\otimes(f'+\Delta f)+n \\ &=\bf L'\otimes f'+\Delta L\otimes f'+L'\otimes \Delta f+\Delta L\otimes \Delta f + n \end{aligned} I=(L+ΔL)(f+Δf)+n=Lf+ΔLf+LΔf+ΔLΔf+n
L ′ \bf L' L f ′ \bf f' f为当前估计值, Δ \bf \Delta Δ表示误差。从公式后半部分可以看出,
如果噪声 n \bf n n没有被很好地建模,算法容易将误差 Δ L \bf \Delta L ΔL Δ f \bf \Delta f Δf误认为是噪声项的一部分,使得估计过程不稳定,难以解决。
之前的方法一般将 n \bf n n或者 ∂ n \partial \bf n n建模成零均值高斯分布,文章认为该模型由于没有捕捉到图像噪声的一个重要特性,即图像噪声表现出的空间随机性
在这里插入图片描述
文章通过对噪声的多阶导数进行约束来建模噪声的空间随机性。

In our formulation, we model the spatial randomness of noise by constraining several orders of its derivatives.

导数通过相邻像素之间的前向差来计算 ∂ x n ( x , y ) = n ( x + 1 , y ) − n ( x , y ) \partial_x n(x,y) = n(x + 1,y) - n(x, y) xn(x,y)=n(x+1,y)n(x,y)

一般的,对噪声建模, ∏ i N ( n i ∣ 0 , ζ 0 ) \prod_i \mathbf{N}(n_i|0,\zeta_0) iN(ni0,ζ0)
对噪声一阶导数建模: ∏ i N ( ∂ n i ∣ 0 , ζ 1 ) \prod_i \mathbf{N}(\partial n_i|0,\zeta_1) iN(ni0,ζ1) 则: ζ 1 = 2 ζ 0 \zeta_1=\sqrt 2 \zeta_0 ζ1=2 ζ0,
同理 q 阶导数 ζ q = 2 ζ q − 1 = 2 q ζ 0 \zeta_q=\sqrt 2 \zeta_{q-1}=\sqrt{2^q}\zeta_0 ζq=2 ζq1=2q ζ0


数据项定义为:
在这里插入图片描述
其中 Θ = { ∂ 0 , ∂ x , ∂ y , ∂ x x , ∂ y y , ∂ x y } \Theta=\{\partial^0,\partial_x,\partial_y,\partial_{xx},\partial_{yy},\partial_{xy}\} Θ={0,x,y,xx,yy,xy}, n = L ⊗ f − I \bf n=L\otimes f-I n=LfI


模糊核先验: p ( f ) = ∏ j e − τ f j p(\mathbf f)=\prod_j e^{-\tau f_j} p(f)=jeτfj

潜在图像先验: p ( L ) = p g ( L ) p l ( L ) p(\mathbf L)=p_g(\mathbf L)p_l(\mathbf L) p(L)=pg(L)pl(L)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Ω \Omega Ω为检测出的局部平滑区域, Φ ( x ) \Phi(x) Φ(x)为了近似图像梯度的重尾分布:
在这里插入图片描述

在这里插入图片描述

优化

能量最小化问题: E ( L , f ) = − log ⁡ ( p ( L , f ∣ I ) ) E({\bf L,f)}=-\log(p({\bf L,f|I})) E(L,f)=log(p(L,fI))
在这里插入图片描述
采用变量替换和交替优化的方式求解。

这篇关于2008-TOG - High-quality motion deblurring from a single image的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1096152

相关文章

Java 连接Sql sever 2008

Java 连接Sql sever 2008 /Sql sever 2008 R2 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

IMAGE LIST

   CImageList就是一个容器,用来存储图片资源,方便这些资源被CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl,CListCtrl等使用。      要使用CImgeList首先要使用它的create函数:      一般用的比较多的是这一个函数,当然,它还有很多重载,自己可以去翻阅msdn.       BOOL

Kafka【十一】数据一致性与高水位(HW :High Watermark)机制

【1】数据一致性 Kafka的设计目标是:高吞吐、高并发、高性能。为了做到以上三点,它必须设计成分布式的,多台机器可以同时提供读写,并且需要为数据的存储做冗余备份。 图中的主题有3个分区,每个分区有3个副本,这样数据可以冗余存储,提高了数据的可用性。并且3个副本有两种角色,Leader和Follower,Follower副本会同步Leader副本的数据。 一旦Leader副本挂了,Follo

【vscode】vscode paste image插件设置

本文首发于 ❄️慕雪的寒舍 vscode编辑md文件的时候,如果想插入图片,自带的粘贴只会粘贴到当前目录下,也没有文件重命名,很不友好。 在扩展商店里面有mushan的Paste Image插件,相比自带的,更加友好一点。但是它的配置把我弄糊涂了,简单测试了一下才明白处理的逻辑。 注意,本文编写的是对mushan的Paste Image插件的教程。 首先是安装这个插件,这个不多说

pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二)

pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二) pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二)DatasetInputs to modelCaption LengthsData pipelineEncoderAttentionDecoder代码数据集初始化 create_input_files.py训练 tr

Show,Attend and Tell: Neural Image Caption Generation with Visual Attention

简单的翻译阅读了一下 Abstract 受机器翻译和对象检测领域最新工作的启发,我们引入了一种基于注意力的模型,该模型可以自动学习描述图像的内容。我们描述了如何使用标准的反向传播技术,以确定性的方式训练模型,并通过最大化变分下界随机地训练模型。我们还通过可视化展示了模型如何能够自动学习将注视固定在显着对象上,同时在输出序列中生成相应的单词。我们通过三个基准数据集(Flickr9k,Flickr

Docker Image 命令

文章目录 目录 文章目录 1 . Docker镜像是什么? 2 . 镜像命令详解 docker images docker tag docker pull docker rmi  docker save 总结 1 . Docker镜像是什么? Docker image 本质上是一个 read-only 只读文件, 这个文件包含了文件系统、 源码、库文件、依赖、工具等一些

[LeetCode] 137. Single Number II

题:https://leetcode.com/problems/single-number-ii/ 题目大意 给定array,其中有一个元素只出现了1次,其他元素都出现了3次。 思路 求和 减去 (set(array)*3 - array)/2 作为答案。 class Solution {public int singleNumber(int[] nums) {Set<Long> se

flutter Image

Flutter中,Image是一个用于显示图片的控件,可以显示网络图片、本地图片以及Asset中的图片。Image控件支持多种常见的图片格式,例如PNG、JPEG、GIF等。 const Image({super.key,required this.image,this.frameBuilder,this.loadingBuilder,this.errorBuilder,this.seman