2006-TOG - Removing camera shake from a single photograph

2024-08-22 11:32

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

项目地址:https://cs.nyu.edu/~fergus/research/deblur.html

  • 多尺度
  • 变分贝叶斯
  • 高斯混合模型
  • 用户选取区域及模糊核方向
  • 泊松重构中间图像
  • Richardson-Lucy (RL)算法恢复最终图像(优势:速度快)

假设为一致性模糊(卷积操作 ⊗ \otimes 的边界条件为非周期 non-periodic):
B = K ⊗ L + N \bf B = K\otimes L+N B=KL+N

In order to estimate the latent image from such limited measurements, it is essential to have some notion of which images are apriori more likely.

先验的作用:从有限的测量值B估计L(K未知),有很多解,有必要知道那种解更有可能。

研究表明,真实场景图像虽然像素分布变化很大,但是梯度分布服从重尾分布。

the distribution of gradients has most of its mass on small values but gives signicantly more probability to large values than a aussian distribution.

重尾分布相比高斯分布在梯度值大的区域具有更高的概率,如果使用高斯分布则恢复出的图像过于平滑。
在这里插入图片描述

The estimation process is performed in a coarse-to-fine fashion in order to avoid local minima.

估计模糊核时通过有粗到细的方式,可以避免局部最小值,特别是针对大模糊核。

算法需要用户提供(1)模糊的图像 P \bf P P,(2)模糊图像中的矩形块(局部区域 P \bf P P),(3)模糊核大小的上限(以像素为单位),以及(4)模糊核的初始方向(水平或垂直)。

由于先验是关于图像梯度的,因此算法优化需要从像素域转到梯度域。
因为卷积操作是线性操作,所以 ∇ P = ∇ L p ⊗ K \bf \nabla P=\nabla L_p \otimes K P=LpK

论文使用C个分量(component)的高斯混合模型表示图像梯度先验,D个分量的混合指数模型表示模糊核先验。
在这里插入图片描述
论文首先通过最大后验概率MAP实现去卷积(deconvolution), 等价于解一个正则化的最小二乘问题(a regularized-least squares problem)传送门:最小二乘法的本质是什么
但结果并未成功。一种解释是,MAP的目标函数试图最小化所有的梯度(即使是较大的梯度),而我们期望自然图像具有一些较大的梯度。此外,作者发现MAP目标函数很容易受到局部极小值的影响。

论文采用变分贝叶斯(variational Bayesian, VB)估计一个分布 q ( K , ∇ L p ) q\bf (K,\nabla L_p) q(K,Lp)近似 p ( K , ∇ L p ∣ ∇ P ) p\bf (K,\nabla L_p|\nabla P) p(K,LpP),代价函数为:
K L ( q ( K , ∇ L p , σ − 2 ) ∣ ∣ p ( K , ∇ L p ∣ ∇ P ) ) KL(q{\bf(K,\nabla L_p,\sigma^{-2})}||p\bf (K,\nabla L_p|\nabla P)) KL(q(K,Lp,σ2)p(K,LpP))
具体优化过程没看懂=_=
传送门:

  1. 变分贝叶斯相关PPT
  2. 变分贝叶斯初探

附:

绘制图像梯度分布代码:

f=imread('onion.png');
subplot(1,2,1);
if size(f,3) == 3f_gray = rgb2gray(f);
elsef_gray = f;
end
f_gray=double(f_gray);kx = [-1 1; 0 0];
ky = [-1 0; 1 0];f_grad_x=conv2(f_gray,kx,'valid');%水平方向梯度
f_grad_y=conv2(f_gray,ky,'valid');%垂直方向梯度
% g=sqrt(f_grad_x.^2+f_grad_y.^2);Ix=f_grad_x;
Value=unique(Ix(:));
Count=[hist(Ix(:),Value)]';
s=sum(Count(:));
count1=log2(Count/s);
figure,plot(Value,count1,'Color','black','LineWidth',2);
axis([-100 100 -18 0]);
title('Heavy-tailed distribution on image gradients');
xlabel('Gradient');
ylabel('Log2 probability density');
grid on;

这篇关于2006-TOG - Removing camera shake from a single photograph的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)

一、Camera 简化思路 在 Camera 的开发中,其实我们通常只关注打开相机、图像预览和关闭相机,其他的步骤我们不应该花费太多的精力 为此,应该提供一个工具类,它有处理相机的一些基本工具方法,包括获取摄像头 ID、选择最优预览尺寸以及打印相机参数信息 二、Camera 工具类 CameraIdResult.java public class CameraIdResult {

[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

【matlab】double和single类型

看到博客(这里)中说,在matlab中, 当数据比较大时,运算起来就困难了,有时候还会out of memory。原因是默认情况下matlab用double存储数据。而double数据类型占8个字节,single类型占4个字节。把数据类型从double类型转换成single类型可以节省一半的空间。(如果怀疑可以用whos指令查看)。本来很有道理的,但是看到有人说(比如这里):Th

Android Camera系列(三):GLSurfaceView+Camera

人类的悲欢并不相通—鲁迅 Android Camera系列(一):SurfaceView+Camera Android Camera系列(二):TextureView+Camera Android Camera系列(三):GLSurfaceView+Camera 本系列主要讲述Android开发中Camera的相关操作、预览方式、视频录制等,项目结构代码耦合性低,旨在帮助大家能从

CameraManager——Camera的过时替代方法

CameraManager 用于检测,表征和连接的系统服务管理器 CameraDevices。 有关与相机设备通信的更多详细信息,请阅读相机开发人员指南或camera2 包文档。 此类的实例,必须使用能够获得Context.getSystemService(Class)与所述参数CameraManager.class或Context.getSystemService(String)使用参数Co

Android Camera系列(一):SurfaceView+Camera

心行慈善,何需努力看经—《西游记》 本系列主要讲述Android开发中Camera的相关操作、预览方式、视频录制等,项目结构代码耦合性低,旨在帮助大家能从中有所收获(方便copy :) ),对于个人来说也是一个总结的好机会 一. Camera操作 Android系统存在这么多年,google更新了不少API。光是对摄像头的操作目前就有3中API: android.hardware

leetcode 136:Single Number

之前没有做过这类题,网上看到使用异或的方式 int singleNumber(std::vector<int>& nums) {int result=0;for(int i=0;i<nums.size();i++)result=result^nums[i];return result;}

Android Camera照相机

java代码: [java]  view plain copy package com.Aina.Android;      import java.io.BufferedOutputStream;   import java.io.File;   import java.io.FileNotFoundException;   import java.io.FileOutpu

[论文笔记]Single Shot Text Detector with Regional Atterntion

Single Shot Text Detector with Regional Atterntion 论文地址:https://arxiv.org/abs/1709.00138 创新点: 提出an atterntion mechanism,也就是an automatically learned attention map,从而实现抑制背景干扰。 模型架构: -text-sp