基于相位的运动放大:如何检测和放大难以察觉的运动(01/2)

基于相位的运动放大:如何检测和放大难以察觉的运动

目录

  • 一、说明
  • 二、结果的峰值
  • 三、金字塔背景
    • 3.1 可操纵金字塔
    • 3.2 亚倍频程复数可控金字塔
  • 四、基本方针
    • 4.1 1D 问题陈述
    • 4.2 一维方法
    • 4.3 实际实施说明
  • 五、放大倍率的限制
    • 5.1 空间支持的影响
    • 5.2 频带的影响
  • 六、推导放大范围
    • 6.1 将频率纳入运动界
    • 6.2 降低八度以增加放大倍率
  • 七 处理噪音
    • 7.1 原理
    • 7.2 滤波相位增量
  • 八、总结
  • 九、结论

一、说明

   当我第一次接触到运动放大时,我很惊讶,移动不到一个像素的东西怎么会有运动放大?没错,我们实际上可以检测和放大静态视频中难以察觉的运动,而且我们可以在不放大噪音的情况下做到这一点!这个概念有很多应用,并且已经在多个行业中使用。例如,结构和设备并不总是容易安装传感器。可靠的视觉技术可以成为快速识别和诊断问题的有效方法,这提供了低成本的结构分析。

第 1 部分:背景和理论(本)
第 2 部分:Python 实现

二、结果的峰值

   下面的 GIF 显示了基于相位的运动放大的几个示例,原始视频在左侧,运动放大视频在右侧。在每个 GIF 中,处理仅应用于 YIQ 色彩空间中的亮度通道。
在这里插入图片描述
图 1. 放大系数为 25 的运动放大起重机视频。

在这里插入图片描述
图2.运动放大吉他弦,放大倍数为 25。

   这不是最新的AI,原始论文是2013年的。在这篇文章中,我们将解开论文中的主要概念,并了解基于相位的运动放大背后的细节。在第 2 部分中,我们将在 Python 中从头开始实现它,并学习如何制作如上所示的视频和 GIF。

三、金字塔背景

   大部分背景知识涉及理解复杂可操纵金字塔,以及可选的亚倍频程复杂可操纵金字塔。为简洁起见,我们仅在此处进行总结,详情请参阅链接的帖子。

3.1 可操纵金字塔

   可操纵金字塔是一种线性的多尺度和多方向图像分解,使我们能够在不同的频带和方向上观察图像。每个滤波器都占据频域的连续区域,并具有定位在空间域中的脉冲响应。在实践中,我们生成了一组不同频段和方向的频域滤波器以及非定向高通和低通分量,然后在频率空间中进行分解。该转换没有混叠,并且过度完成,这意味着它包含足够的信息来重建原始图像。

   复杂可操纵金字塔在多个尺度和方向上添加了局部相位的概念。一般来说,相位告诉我们事物在图像中的位置,而局部相位只是某个位置的相位概念,例如图像左下角的相位。如果我们看到视频序列中的相位变化,这意味着图像中的事物正在移动。视频序列中的局部相位描述了图像在给定位置的变化方式,这正是我们将用来放大运动的内容。关键是要知道如何使用它,我们将在本文后面介绍。

   复杂可控金字塔提供局部相位信息,用于描述视频帧在给定位置的变化方式

3.2 亚倍频程复数可控金字塔

   默认情况下,可操纵金字塔的频率滤波器相距一个倍频程。由于频域支持与空间域支持成反比,因此我们可以通过在频域中缩小滤波器来增加滤波器的空间域支持。这就是Sub-Octave滤波器的全部功能。例如,如果我们有半倍频程滤波器,那么需要两个倍频程滤波器才能代替单个倍频程滤波器。我们稍后将看到,亚倍频程滤波器对于大型运动放大至关重要。

   在这篇文章中,我们将大量讨论复杂可操纵金字塔,从现在开始,我们将以简写的方式将它们称为金字塔。

四、基本方针

   在我们全力以赴尝试用视频来做到这一点之前,让我们先考虑一下 1D 中的事情。通过这篇文章,概念将在 1D 中解释,并附有将其与 2D 实用方法相关的注释。

4.1 1D 问题陈述

   考虑一个空间信号 f(x),它可以通过某个瞬态位移函数 δ(t) 进行位移,位移的信号为:f(x + δ(t)))。我们希望将位移放大 α 倍,使放大的位移信号为:f(x + (1 + α)δ(t)))。

4.2 一维方法

   我们可以使用傅里叶级数分解来表示复正弦曲线的信号。这种分解为复正弦曲线是我们用于视频的金字塔分解的 1D 模拟。傅里叶分解。修改自源代码。
在这里插入图片描述

   每个正弦波的相位 ω(x + δ t)) = ωx + ωδ(t) 包含运动信息,其中 ω 对应于单个频带。我们需要做的第一件事是隔离与运动相关的相位信息。直流分量:ωx 表示底层空间信号,对应于静态背景。如果我们去掉它,我们就剩下 ωδ(t) 分量,其中包含我们希望放大的运动信息。我们将其表示为带通阶段 B。
在这里插入图片描述

   然后,我们可以按α比例缩放 B,并在频域中获得放大的运动,以获得运动放大的复正弦曲线。
在这里插入图片描述

   我们对每个子带ω都这样做,以获得空间域中的全运动放大信号:f(x + (1 + α)δ(t)))。

4.3 实际实施说明

   在实践中,我们可以使用参考系的局部相位来估计直流分量ωx的值,以便我们可以提取运动信息。我们从电流帧处的相位中减去参考相位,得到运动信号ωδ(t)。由于我们假设视频大部分是静态的,因此这种方法往往效果很好。

   除了去除直流分量外,我们还对相位增量进行时间带通滤波,以隔离某个感兴趣的时间频带。这对如何使用运动放大有很大的影响,因为我们能够可视化我们选择的任何频段。例如,我们可以可视化已知的感兴趣频率,也可以扫描多个频段以发现隐藏的运动。

   在视频帧中,运动是局部的,这意味着帧中一个位置的对象相对于其他位置的其他对象以不同的方式移动。因此,δ(t) 实际上是 δ(x, t),其中空间变量 x 允许我们根据空间位置区分时间 t 的运动。

五、放大倍率的限制

   事实证明,我们可以放大运动的程度是有限的。除了看起来很荒谬之外,极大的运动放大倍率并不能代表真实的信号。换句话说,错误的特征将被放大!此限制来自金字塔筛选器的两个方面:

  • 滤波器的空间支持→空间覆盖
  • 滤波器的空间频带→中心频率
       让我们看两个一维示例,以了解为什么它们会限制放大倍率。

5.1 空间支持的影响

   金字塔滤波器的空间支持有一些滚降,我们可以使用高斯窗口在一维中近似它。在此示例中,考虑一个由复正弦曲线和高斯窗口组成的函数 f。
在这里插入图片描述

   f 的参数是:频率 ω、位置向量 x 和标准差 σ。我们可以将这个函数移动一个倍α正如我们之前所看到的,这个相移对应于运动放大倍率。由于窗口化,我们只能在高斯窗口的范围内移动它。让我们在 Python 中实现它以更好地理解它,用于此的笔记位于 GitHub 上。

S = lambda x, omega : np.exp(1j*omega*x) 
G = lambda x, sigma : np.exp((-x**2)/(2*sigma**2))

x = np.arange(-15, 15, 0.01)
octaves = 1 # number of octaves for Gaussian window
sigma = octaves*np.pi # std dev of Gaussian window
omega = np.pi/4 # frequency
alpha = np.pi/2 # initial phase shift factor

signal = S(x, omega) * G(x, sigma) 
shifted = S(x, omega) * G(x, sigma) * np.exp(1j*omega*alpha)

下面的 GIF 显示了复正弦波的实部和虚部的相移。
在这里插入图片描述
图3.具有复正弦波的相移示例。
   一旦我们将相位偏移一定量,振幅将由于高斯窗口而高度衰减。如果我们可以增加高斯窗口的大小(增加它的空间支持),那么我们可以扩展这个限制并实现更大的偏移,而不会有那么多的衰减。

回到 2D 中,这意味着我们只能将运动放大一定数量的像素,然后才能将信号降级到无法识别的程度。此限制基于金字塔过滤器的空间支持。如果我们要增加空间支持,那么我们可以执行更强烈的放大倍率,并且仍然准确地接近真实的移位信号。

5.2 频带的影响

   当我们应用运动放大倍率时,我们将其应用于单个金字塔滤镜。我们可以应用的有用运动放大倍率与滤波器的频带直接相关。让我们通过比较两种不同频率下的相移效应来在一维中说明这一点。(从现在开始,我们将只看正弦曲线的实部)。

omega1 = 0.2 # frequency 1
omega2 = 1.0 # frequency 2

signal_1 = S(x, omega1) * G(x, sigma) 
signal_2 = S(x, omega2) * G(x, sigma) 

alpha_vals = np.arange(0, 2*np.pi, 0.025)

for i, alpha_val in enumerate(alpha_vals):
    f_shifted_1 = signal_1 * np.exp(1j*omega1*alpha_val)
    f_shifted_2 = signal_2 * np.exp(1j*omega2*alpha_val)

在这里插入图片描述

图4.相移对全倍频程高斯窗口内不同频段的影响。仅显示复正弦曲线的实部。资料来源:作者。
   两个正弦波的偏移量相同,但请注意频率较高的右侧衰减量较大。更糟糕的是,如果我们继续前进,我们将得到一个翻转(由于周期性),所以主导特征甚至不会是我们打算放大的特征。

   大放大倍率在较高的空间频率下具有更大的衰减

六、推导放大范围

   您可能会问自己,在降低信号质量之前,我们可以将运动放大多少?我很高兴你问,我们实际上可以根据高斯窗口近似推导出放大倍率的理论界限。我们简单地将运动绑定为高斯窗口的一个标准差,因此我们至少保持原始信号的 ~61%。
在这里插入图片描述

   好吧,这似乎不是很有见地,我们所做的只是根据标准差进行任意的截止。边界的真正用途是观察某些因素(如频率和倍频程带宽)如何影响运动放大倍率和信号衰减关系。

6.1 将频率纳入运动界

   在全倍频程带宽滤波器(复数可控金字塔提供)中,我们在窗口下大约有一个周期的正弦曲线。如果我们假设窗口的全宽约为 4σ,那么我们得到:
在这里插入图片描述
其中ω对应于滤波器的频带。这提供了频率 ω 或波长 λ 的界限:
在这里插入图片描述

   该界限总结了信号频率与有用放大倍率之间的关系,即没有极端衰减的放大倍率。它告诉我们,较低频率(较长)的放大信号比较高频率的信号经历的衰减更少。现在让我们看看倍频程带宽如何影响放大倍率范围。

6.2 降低八度以增加放大倍率

   如前所述,增加滤波器的空间支持将使我们能够在减少信号衰减的情况下增加放大倍率。亚倍频程意味着我们正在减少滤波器的频率支持(使它们在频率空间中更小),这反过来又增加了每个滤波器的空间支持。例如,半倍频程意味着两个半倍频程滤波器在频率空间中取代了单个全倍频程滤波器。在一维中,半倍频程高斯窗口可以支持正弦曲线的两个周期,我们可以相应地修改我们的边界。
在这里插入图片描述
更进一步,四分之一倍频程带宽高斯窗口可以支持正弦波的四个周期。我们可以用倍频程带宽来概括边界,其中放大倍率的边界变大,倍频程带宽减小。
在这里插入图片描述

这是一张 GIF,显示了 Sub-Octave 的影响。
在这里插入图片描述

图5.正弦波在不同倍频程带宽的高斯窗口下移位。资料来源:作者。
   我们还可以使用由高斯窗口化的局部函数来可视化移位。
在这里插入图片描述

图6.局部函数在不同倍频程带宽的高斯窗口下发生偏移。资料来源:作者。
   上面的 GIF 显示,在四分之一倍频程窗口下的移位信号达到 0.60 之前,全倍频程高斯窗口中的移位信号被长期衰减为 0。

七 处理噪音

7.1 原理

   这种基于相位的运动放大方法实际上并没有放大噪声,而是通过移动的运动将其转换。考虑一个带有附加噪声的图像 I:I + σnn,其中噪声功率 σn 远小于图像信号 I。它在频率 ω 的金字塔滤波器下的响应表示为:
在这里插入图片描述

   其中 N 是噪声对滤波器的响应 由于我们假设噪声远小于信号,因此我们也假设对应于运动的相位近似等于 ωδ(t),就像我们之前看到的一样。放大的运动响应为:
在这里插入图片描述

   运动放大滤波器响应中的噪声项现在具有相移 αωδ(t),对应于噪声的平移,而不是放大。这与这种基于阶段的方法的基础知识有关。我们不是直接放大信号,而是通过对感兴趣的特征进行相移来放大运动。碰巧的是,我们也放大了噪声的运动(将噪声从一个点移动到另一个点),但我们实际上并没有增加噪声功率。

7.2 滤波相位增量

   尽管这些假设意味着滤波相位将等于ωδ(t),但我们仍然需要意识到噪声会破坏相位信号并导致不正确的运动被放大。为了解决这个问题,我们可以过滤获得的相位差。为此,我们使用幅度加权滤波器对每一帧的相位差应用空间高斯模糊。
在这里插入图片描述

   其中 φ 是金字塔滤波器 i 和视频帧 k 处的相位信号,A 是电流滤波器响应的幅度,K 是标准偏差为 ρ 的高斯核。

八、总结

   基于相位的运动放大率概述如下所示:
在这里插入图片描述

图7.基于相位的运动放大概述。来源。
   需要注意的是,我们一次对单个金字塔过滤器执行处理,并且通常对视频的所有帧执行处理。但是,处理不是在高通和低通金字塔组件上执行的,它们保持不变,并在最后一步重新合并。

🇦 → 使用复杂可操纵金字塔分解图像。
🇧 → 从每个帧中移除直流相位分量,以获得运动信号 ωδ(t) 的相位。然后,将视频帧中的运动/相位信号按时间过滤到目标带宽。
🇨 → (可选)执行幅度加权滤波以对相位信号进行降噪。
🇩 → 在每个滤光片上应用运动放大倍数 αωδ(t)。
🇪 → 重新合并高通和低通组件并折叠金字塔并获得运动放大的视频帧

九、结论

   我们已经通过一维示例介绍了基于相位的运动放大的基础知识。我们已经描述了 2D 的基本方法以及它取决于空间支持和频段的局限性。我们已经展示了噪声实际上是如何被放大的,它只是被平移,这是这种方法的一个方便的特点。上面显示了该算法的高级概述,第 2 部分展示了如何实际实现它。

引用
[1] Simoncelli, EP, & Freeman, WT (未注明日期).可操纵金字塔:一种用于多尺度导数计算的灵活架构。论文集,图像处理国际会议。https://doi.org/10.1109/icip.1995.537667

[2] 波蒂利亚,哈维尔和西蒙切利,埃罗。(2000). 基于复杂小波系数联合统计的参数化纹理模型.国际计算机视觉杂志。40. 10.1023/A:1026553619983.

[3] Granlund,GH和Knutsson,H.(2011)。计算机视觉的信号处理。斯普林格。

[4] Wadhwa,N.,Rubinstein,M.,Durand,F.和Freeman,WT(2013)。基于相位的视频运动处理。基于相位的视频运动处理。https://people.csail.mit.edu/nwadhwa/phase-video/

[5] https://rxian.github.io/phase-video/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Oracle】玩转Oracle数据库(五):PL/SQL编程

前言 嗨,各位数据库达人!准备好迎接数据库编程的新挑战了吗?今天我们要探索的是Oracle数据库中的神秘魔法——PL/SQL编程!🔮💻 在这篇博文【Oracle】玩转Oracle数据库(五)&#xff1…

2.25基础会计学

资本公积是指由股东投入、但不能构成“股本”或“实收资本”的资金部分。 盈余公积是指公司按照规定从净利润中提取的各种积累资金。 所以区别在于盈余公积来自净利润。 借贷其实就是钱从哪来和到哪去的问题,来源是贷,流向是借。比如购入9w原材料&…

【监控】grafana图表使用快速上手

目录 1.前言 2.连接 3.图表 4.job和path 5.总结 1.前言 上一篇文章中,我们使用spring actuatorPrometheusgrafana实现了对一个spring boot应用的可视化监控。 【监控】Spring BootPrometheusGrafana实现可视化监控-CSDN博客 其中对grafana只是打开了一下&am…

YApi-pro docker安装在centos7上

之前安装失败了,只好在docker中装了。 准备环境 1.docker安装 centos7 docker 安装-CSDN博客 2.mongodb数据库docker安装 创建mongo容器目录 mkdir /data/mongo -p docker pull mongo:4.2.21 创建一个yapi网络插件 docker network create yapi …

音频声波的主观感受

一、响度 声压是“客观”的,响度是“主观”的。 响度又称音量。人耳感受到的声音强弱,它是人对声音大小的一个主观感觉量。响度的大小决定于声音接收处的波幅,就同一声源来说,波幅传播的愈远,响度愈小…

python jupyter notebook打开页面方便使用

如果没安装jupyter, 请安装: pip install jupyter notebook 运行jupyter notebook jupyter-notebook

【Redis】搞懂过期删除策略和内存淘汰策略

1、过期删除策略 1.1、介绍 Redis 是可以对 key 设置过期时间的,因此需要有相应的机制将已过期的键值对删除,而做这个工作的就是过期键值删除策略。 每当我们对一个 key 设置了过期时间时,Redis 会把该 key 带上过期时间存储到一个过期字典…

如何做到三天内完成智能直流伺服电机系统开发?

适应EtherCAT/CANopen协议三相伺服电机直流伺服电机直线伺服音圈电机 如何开发高性能直流伺服电机驱动控制器? 需要熟悉高性能单片机(至少是ARM或DSP水平的),需要掌握空间磁场矢量控制FOC,需要掌握运动轨迹算法……此…

Vue监听器(上)之组合式watch

1. 定义监听器 //要监视的属性被改变时触发 watch(要监视的属性, (更改后的心值, 更改前的旧值) > {具体操作}, );//监视对象为getter的时候 //表达式内任意响应式属性被改变时触发 watch(() > return表达式, (表达式的新值, 表达式的旧值) > {具体操作} );//数组中任…

四六级成绩爬取代码原创

在六级成绩刚发布时,只需要通过学生姓名和身份证号便可以查询到成绩 据此,我们可以利用selenium框架对学生的成绩进行爬取 首先我们要建立一个excel表格,里面放三列(多几列也无所谓),第一列列名取为学生姓…

在openEuler中通过KVM可视化安装华为FusionCompute的VRM节点

一、说明 本文是华为FusionCompute云平台配置的延续,是在CNA(ComputingNode Agent,计算节点代理)主机安装配置完成后,详细安装VRM(Virtual Resource Manager,虚拟资源管理器)节点的…

基于Clion+stm32cubemx+rt-thread os进行环境搭建

前言 RT-Thread文档中心Clion开发STM32的环境搭建,请参考之前的文章本次使用的芯片为STM32F407VET6,其他芯片相似.项目创建 使用STM32CubeMx快速生成项目工程,此步骤的话可以参考官方文档 基础配置如下

AtCoder ABC341 A-D题解

比赛链接:ABC341 Problem A: 先签个到。 #include <bits/stdc.h> using namespace std; int main() {int n;cin>>n;for(int i0;i<n;i)cout<<"10"<<endl;cout<<"1"<<endl;return 0; } Problem B: 继续签。 #i…

在 where子句中使用子查询(二)

目录 ANY ANY &#xff1a;功能上与 IN 是没有任何区别的 >ANY &#xff1a;比子查询返回的最小值要大 ALL >AL &#xff1a;比子查询返回的最大值要大 EXISTS() 判断 NOT EXISTS Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209…

【Go的函数】

函数 函数的引入函数细节祥讲包的引入包的细节详讲init函数匿名函数闭包defer关键字系统函数字符串相关函数日期和时间相关函数内置函数 函数的引入 【1】为什么要使用函数&#xff1a; 提高代码的复用&#xff0c;减少代码的冗余&#xff0c;代码的维护性也提高了 【2】函数…

论文解析——Review of chiplet-based design: system architecture and interconnection

作者 Liu Yafei1, Li Xiangyu2, YIN ShouYi1, Review of chiplet-based design: system architecture and interconnection, SCIENCE CHINA Information Sciences, 2024, ISSN 1674-733X, https://doi.org/10.1007/s11432-023-3926-8. 1School of Integrated Circuit, Tsingh…

来看大厂如何设计运营后台系统的?

0 背景 重运营的应用。对于App里的顶导航、我的页面、弹窗等&#xff0c;需要根据模式、版本、平台、语言、渠道等不同的维度进行运营管理。随着业务快速发展&#xff0c;版本快速迭代&#xff0c;如何&#xff1a; 保持运营资源能够被高效、稳定和灵活地配置高效稳定的为新的…

软件游戏显示d3dx9_42.dll丢失的5种解决方法,快速解决dll问题

当计算机系统中d3dx9_42.dll文件丢失时&#xff0c;可能会引发一系列运行问题和功能异常&#xff0c;具体表现形式多样且影响范围较广。首先&#xff0c;对于依赖于DirectX 9.0c版本的各类应用程序&#xff0c;尤其是部分经典的老款游戏&#xff0c;由于d3dx9_42.dll是其中不可…

深度解析:Integer.parseInt() 源码解读

深度解析&#xff1a;Integer.parseInt() 源码解读 关键要点 解析字符&#xff1a;用于将字符转换为对应的数字值 Character.digit(s.charAt(i),radix) 确定limit&#xff1a;根据正负号分别设定 int limit -Integer.MAX_VALUE;【正】 limit Integer.MIN_VALUE;【负】 负数…

【卷积神经网络中用1*1 卷积有什么作用或者好处呢?】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;深度学习 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 1*1 卷积有什么作用或者好处呢 作用降维和增加非线性特征组合和交互网络的宽度和深度调整全连接替代增强…