运动估计

运动估计是视频去噪技术的重要组成之一,计算相邻两帧视频序列各像素的相对运动偏移量,从而得到其运动轨迹。

(

i

,

j

)

(i,j)

(i,j)和

(

x

,

y

)

(x,y)

(x,y)分别是同一物体第t-1帧和第帧的像素点。

运动估计的目的就是需要找到该点在这两帧中的运动向量(x-i, y-j/)。在寻找视频序列中两顿图像各像素之间的运动向量时,往往需要确定其整体、局部或者特征的对应关系,即得到图像像素之间的匹配关系,因而图像匹配是运动估计的核心内容。根据图像中匹配方式的不同,运动估计算法可分:块匹配算法、像素法、特征法和相位法等。

其中块匹配法原理简单、运算效率较高,在视频去噪领域应用比较广泛。

块运动匹配

块运动匹配是当前数字图像处理领域中应用最广泛的一种运动估计方法。

首先将当前帧图像分成若干块,然后依次对每个块在参考帧(当前帧前一帧图像)的特定搜索区域中寻找与其最匹配的像素块,得到两个匹配块之间的位移即为当前诀的运动向量。以块为单位匹配,块内部的所有像素具有统一的运动向量。

在应用块匹配运动算法时,首先需要在当前顿中选取一个n x n大小的像素块(子块),如下图中左侧所示:

然后在参考帧中选取N X N的搜索窗口,并且需要保证该搜索窗口的中也与当前侦中n x n的像素块中也在空间坐标上重合,然后按照一定的匹配规则和搜索模式在该搜索窗口中寻找最为匹配的像素块。在块匹配运动估计算法中常用的匹配规则一般可分为两类:最小均方误差(Minimum Mean Square Deviation, MMS)
匹配和最小绝对误差(Minimum Absolute Daviation, MAD)匹配。

1)最小均方误差匹配

假设

f

c

(

i

,

j

)

f_c(i,j)

fc​(i,j)为当前帧中子块的中心像素,

f

p

(

i

,

j

)

f_p(i,j)

fp​(i,j)表示参考帧中搜索窗口内一子块的中心像素,

$S(\delta_i,\delta_j) = \sum_{i=1}^n \sum_{j=1}n(f_c(i,j)-f_p(i+\delta_i,j+\delta_j))2 $

上式中出了参考帧中特定子块与当前帧子块的均方差值,并求出参考帧变动范围内的所有子块的均方差值,比较得到最小值。

(

δ

i

0

,

δ

j

0

)

=

a

r

g

m

i

n

δ

i

,

δ

j

S

(

δ

i

,

δ

j

)

(\delta_{i_{0}},\delta_{j_{0}}) = argmin_{\delta_{i},\delta_{j}} S(\delta_i,\delta_j)

(δi0​​,δj0​​)=argminδi​,δj​​S(δi​,δj​)

上式求使

S

(

δ

i

δ

j

)

S(\delta_i,\delta_j)

S(δi​,δj​)最小的参数值

(

δ

i

0

,

δ

j

0

)

(\delta_{i_{0}},\delta_{j_{0}})

(δi0​​,δj0​​)。在参考帧中与当前帧子块匹配的像素块中。为,运动向量为最小绝对误差匹配最小绝对误差匹配与上述的最小均方误差匹配的操作步骤类似,只是所比较的值由均方差变成了差的绝对值。

2)最小绝对误差匹配

最小绝对误差匹配与上述的最小均方误差匹配的操作步骤类似,只是所比较
的值由均方差变成了差的绝对值

$S(\delta_i,\delta_j) = \sum_{i=1}^n \sum_{j=1}^n(f_c(i,j)-f_p(i+\delta_i,j+\delta_j)) $

在运动匹配算法中.常用的匹配规则即为如上两种,相对来说最小绝对误差
匹配的复杂度更低,但是匹配的准确性不如最小均方误差匹配。

待补充

我的个人博客主页,欢迎访问

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

3D降噪_运动估计块运动匹配的更多相关文章

  1. Java面向对象理解_代码块_继承_多态_抽象_接口

    面线对象: /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生 ...

  2. nginx中server块的匹配顺序

    客户端发出一个http请求时,nginx收到后会取出header头中的host,与nginx.conf中每个server的server_name进行匹配,以此决定到底由哪一个server块来处理这个请 ...

  3. unity 3d 三、空间与运动

    3D游戏编程第三次作业 简答并用程序验证[建议做] 游戏对象运动的本质是什么? 游戏对象运动的本质是游戏对象Position.Rotate.Scale属性数值的变化. 请用三种方法以上方法,实现物体的 ...

  4. 3D数学基础_图形与游戏开发

    https://blog.csdn.net/popy007/article/list/2?t=1&  //向量计算相关文章 https://www.baidu.com/link?url=48C ...

  5. JS基础_代码块

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. Unity3D_(游戏)双人3D坦克_简易版

    双人3D坦克实现 player1: WSAD控制上下左右 空格键发射炮弹 player2: IKJL可控制上下左右 B键发射炮弹 每个坦克只有100hp,子弹击中1次扣30hp,hp时时显示在坦克上 ...

  7. 类变量_main方法_代码块

    需要解决的问题: 统计一共创建了多少个对象 类变量(静态变量) 被所有对象共享 可以通过 类名(推荐)|对象名.变量名 方式来访问 main main 方法 是虚拟机在调用  args 传值灵活 结果 ...

  8. 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_函数块

    右击POUs,添加一个FB功能块,相比于FUN,FB功能块有INPUT,OUTPUT,还有VAR,即FB可以有多个输出,但是整个FB没有返回值   实现相同的功能,FB要比FUN难看的多,FB要声明实 ...

  9. 【探索之路】机器人篇(5)-Gazebo物理仿真环境搭建_让机器人运动起来

    如果完成了前两步,那么其实我们已经可以去连接我们的现实中的机器人了. 但是,做机器人所需要的材料还没有到,所以我们这里先在电脑平台上仿真一下.这里我们用到的就算gazebo物理仿真环境,他能很好的和R ...

  10. ISP图像调试工程师——3D和2D降噪(熟悉图像预处理和后处理技术)

    2D降噪:只在2维空间域上进行降噪处理.基本方法:对一个像素将其与周围像素平均,平均后噪声降低,但缺点是会造成画面模糊,特别是物体边缘部分.因此对这种算法的改进主要是进行边缘检测,边缘部分的像素不用来 ...

随机推荐

  1. C#中使用CAS实现无锁算法

    CAS 的基本概念 CAS(Compare-and-Swap)是一种多线程并发编程中常用的原子操作,用于实现多线程间的同步和互斥访问. 它操作通常包含三个参数:一个内存地址(通常是一个共享变量的地址) ...

  2. 如何生成文本: 通过 Transformers 用不同的解码方法生成文本

    简介 近年来,随着以 OpenAI GPT2 模型 为代表的基于数百万网页数据训练的大型 Transformer 语言模型的兴起,开放域语言生成领域吸引了越来越多的关注.开放域中的条件语言生成效果令人 ...

  3. C# 当前进程是否有控制台窗口

    WPF应用程序,在VS的项目属性中,可以设置输出类型: 那我们在代码中,如何判断应用的类型呢.有没有控制台?是否Windows应用程序还是控制台应用程序? Kernel32下函数GetConsoleW ...

  4. 基于.NetCore开发博客项目 StarBlog - (27) 使用JWT保护接口

    前言 这是StarBlog系列在2023年的第二篇更新 这几个月都在忙,更新变得很不勤快,但是拖着不更新我的心里更慌,很久没写,要开头就变得很难 说回正题,之前的文章里,我们已经把博客关键的接口都开发 ...

  5. 用Python语言进行时间序列ARIMA模型分析

    应用时间序列 时间序列分析是一种重要的数据分析方法,应用广泛.以下列举了几个时间序列分析的应用场景: 1.经济预测:时间序列分析可以用来分析经济数据,预测未来经济趋势和走向.例如,利用历史股市数据和经 ...

  6. 原来Spring能注入集合和Map的computeIfAbsent是这么好用!

    大家好,我是3y,今天继续来聊我的开源项目austin啊,但实际内容更新不多.这文章主是想吹下水,主要聊聊我在更新项目中学到的小技巧. 今天所说的小技巧可能有很多人都会,但肯定也会有跟我一样之前没用过 ...

  7. Laf Assistant:云开发从未如此爽快!

    原文链接:https://forum.laf.run/d/67 工欲善其事,必先利其器.在编写代码时,IDE 也是我们不可或缺的.它可以让我们更高效地完成代码编写,提高开发效率.因此,IDE 是我们编 ...

  8. 查找命令 (which 、 find )----grep 、 wc 和管道符,echo ,反引号 `

    which命令 通过which命令,查看所使用的一系列命令的程序文件存放在哪里 find命令 按文件大小查找文件 语法:find  起始路径  -size  [(+,-)k,m,g  ] •+.-表示 ...

  9. 2021-02-22:一个象棋的棋盘,然后把整个棋盘放入第一象限,棋盘的最左下角是(0,0)位置,那么整个棋盘就是横坐标上9条线、纵坐标上10条线的区域。给你三个 参数 x,y,k。返回“马”从(0,0)位置出发,必须走k步。最后落在(x,y)上的方法数有多少种?

    2021-02-22:一个象棋的棋盘,然后把整个棋盘放入第一象限,棋盘的最左下角是(0,0)位置,那么整个棋盘就是横坐标上9条线.纵坐标上10条线的区域.给你三个 参数 x,y,k.返回"马 ...

  10. AcWing 1023. 买书

    小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元. 问小明有多少种买书方案?(每种书可购买多本) 输入格式 一个整数 n,代表总共钱数. 输出格式 一个整数,代表选择方案种数. ...