运动估计综述

本文介绍了基于块的运动估计的基本原理及多种运动估计算法,包括全搜索、早期快速算法如三步法、四步法等,并重点解析了EPZS算法的工作流程及其优势,同时对比介绍了UMHexagonS算法。



 

1.定义

这里指基于块的运动估计,基本思想是将图像序列的每一帧分成许多互不重叠的块,并认为块内所有像素的位移量都相同,然后对每个宏块到参考帧某一给定特定搜索范围内根据一定的块匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。

2.运动估计算法

2.1全搜索

每一点都要比较,需计算(2*d+1)*(2*d+1)次(d是搜索范围)。对分辨率360x288,帧率30fps的视频,设d=21,每秒要计算1.09E10次,计算量太大,需要研究相应的快速算法。

2.2早期的快速算法(固定模式法)

这些算法假设匹配误差随着离全局误差最小点的距离增加而单调增加。一般从原点开始,采用固定的搜索模板和搜索策略得到最佳匹配块。常见的有:三步法(TSS)、四步法(FSS)、菱形法(DS)、六边形法(HEXBS)等。

三步法(TSS)

步骤:搜索模板半径依次减半。

搜索范围大于7时,搜索步骤不止三步。

四步法(FSS)

步骤:反复使用5×5方形模板进行搜索。

模板中心处SAD值最小时再用3×3模板搜索一次确定最佳匹配位置。

菱形法(DS):

步骤:搜索方式与四步法类似,只是搜索模板换为两个菱形模板。

六边形法(HEXBS):

步骤:搜索方式与菱形法类似,只是大搜索模板换为一个六边形模板。

早期算法的不足:

  • 没有利用图像本身的相关信息,不能根据物体运动的剧烈程度自适应的改变搜索起点和搜索半径;
  • 以菱形法为例,对背景图像,也要经历从大模板到小模板的转换过程,至少需要13个搜索点,搜索速度还有待改进;
  • 对于运动剧烈的图像,从原点开始搜索时,要经过多次搜索才能找到匹配点,搜索点过多,且容易陷入局部最优点。

 

2.3近年来提出的新算法

针对以上不足,近几年来,针对序列图像的时空相关性和人眼视觉特性,提出了许多改进算法,主要从以下几个方面着手:

  • 预测搜索起点

    利用相邻块之间的运动相关性选择一个反映当前块运动趋势的预测点作为初始搜索点,这个预测点一般比原点更靠近全局最小点。从预测点开始搜索可以在一定程度上提高搜索速度和搜索精度。

  • 中止判别条件

    利用相邻块的相关性自适应的调整终止阀值,当搜索值小于该值时,则认为满足条件,跳出后面的搜索过程。

  • 搜索模板的选择

    在序列图像中,大多数的运动矢量都位于水平或垂直方向,因此可以设计相应的搜索模板(非对称搜索模板)来加快搜索速度。

     

    2.4 EPZS(Enhanced Predictive Zonal Search)介绍

    目前典型的运动算法有预测运动矢量场自适应快速搜索法(PMVFAST)、增强预测区域搜索法(EPZS)、非对称十字多层六边形搜索法(UMHexagonS),他们都利用了运动矢量的时空相关性、倾向水平垂直方向的非对称模板、灵活有效的中止准则,下面主要介绍一下EPZS。

    快速运动估计算法包括MV预测选择、自适应提前终止、MV修正三大部分。

     

    2.4.1 MV预测选择

    根据时间域和空间域的相关性选择搜索的起点:

S1: Median predictor(取左、上和右上块的运动矢量的中值)

S2:Spatial and temporal predictors 再加上(0, 0)

 

S3:如果有多个参考帧,则相应的运动矢量要作缩放,TRi是第i个参考帧到当前帧的距离,

S4: 由于运动速度并非都是常量,可以再增加accelerator temporal predictor,如下图

Figure: Use of acceleration information as a Motion Vector predictor.

当前块不仅仅和前一帧的对应块相关,还和前一帧对应块的邻近块相关,因此再增加四个predictor:

Figure: The MV of the current block might have more relationship with the motion vectors of the blocks around the collocated block in the previous frame. 

如果参考帧不是当前帧的前一帧,可以用参考帧为前一帧时已经计算出的MV尺度变换后作为预测值:

Figure: Predictor scaling could be used between different reference frames 

还可以在S4中定义特定的搜索范围内一些固定的搜索点:

Figure: Additional fixed predictor Grid for search-range 16. These additional predictors could be centered either at (0,0) or around the MVP.

2.4.2自适应提前终止(Adaptive Early Termination)

相邻块的匹配误差也是相关的,因此可以引入终止条件来加速运动估计。先计算S1中预测向量(median predictor)的匹配误差,如果该值小于T1则不继续搜索而直接退出。T1等于当前块的像素个数。如果不满足条件,则计算其他的预测向量,并和T2做比较,小的话就退出。

a 和 b是常量,MinJ1, MinJ2, …MinJn是相邻块最小的匹配误差,这里使用左,上,右上的块以及前一帧同一位置的块来计算T2。为了避免过早的退出,增加了一个常量MinJ

,Np等于当前块的像素个数。对于多参考帧的情况还要进行相应的缩放。

2.4.3 MV修正

如果提前终止的条件不满足,则需要在前面匹配误差最小的位置作进一步搜索,EPZS提供了三种模板,计算复杂度依次升高,当然结果也越来越准确,可以根据具体的情况选择。

(a) 

(b) 

Figure: Small diamond pattern used in EPZS

 

 

(a) 

(b) 

(c) 

Figure: EPZS using the square/circular pattern (EPZS2)

 

(a) 

(b) 

(c) 

(d) 

Figure: The extended EPZS pattern (extEPZS)

 

Figure: Example of the Dual Pattern for EPZS. 
Extended EPZS is used for the best predictor and EPZS2 is used for the MVP.

3.小结:

本文总结了常用的快速运动估计算法,这些算法针对序列图像的时空相关性和人眼视觉特性,利用运动矢量预测、非对称模板、灵活有效的中止准则,获得了比较理想的搜索结果。

                                                                                    2009.11.13

UMHexagonS算法

在H.264的编码过程中, 运动估计无疑是复杂度和运算最高的两部分. 目前h.264已经正式采纳了"非对称十字形多层次六边形格点搜索"(UMHexagonS算法), 它的运算量相对于快速搜索算法可节约90%以上,同时能保持较好的率失真性能. 在JM的测试模型中采用了该算法作为整像素运动估计算法, 其性能非常接近全搜索算法.

算法过程:(参考<<快速运动估计 UMHexagonS 算法的探讨与改进 >>)

  1. 先确定初始搜索点

  2. 从起始搜索点开始进行的搜索算法

 

UMHexagonS算法的特点

在运动搜索算法中, 一个很重要的步骤是对开始搜索前对运动矢量的预测, 利用运动矢量在空间域和时间域上的相关性可以有如下几种预测方法:

(1)中值预测:

  1. 上层块模式(Uplayer Preditction)

  2. 时间域上的预测方法.

    a、前帧对应块运动矢量预测(Corresponding-block Prediction)

    b、时间域的邻近参考帧运动运动矢量预测(Neighboring Reference-frame Prediction)

     








### 人体姿态估计综述 #### 3D人体姿态估计概述 3D人体姿态估计旨在从单张图片或多视角图像中重建三维空间中的人体关节位置。该领域近年来取得显著进展,主要得益于深度学习技术的发展以及大规模标注数据集的可用性[^1]。 #### 方法分类 根据输入形式的不同,可将现有算法大致划分为两类: - **基于多视图的方法** 这类方案利用多个摄像机同步拍摄获得不同角度的画面信息来进行联合优化求解,从而提高精度并解决遮挡等问题。此类方法通常会综合考虑各个视角的信息,在3D估计阶段发挥重要作用。 - **基于单一视角的方法** 仅依赖一张二维图像作为输入源完成整个流程的任务更为具有挑战性。为了克服这一难题,研究人员探索了多种策略,比如引入先验知识或者借助额外模态的数据辅助训练模型等[^4]。 #### 数据驱动与模型设计 随着计算机视觉和人工智能技术的进步,特别是卷积神经网络(CNNs)、循环神经网络(RNNs)及其变种的成功应用,使得自动化的高维特征提取成为可能。这些先进的机器学习工具不仅能够有效捕捉局部细节特征,还能建模全局结构关系,进而促进更精准的姿态预测效果[^2]。 #### 应用场景与发展前景 除了理论研究外,实际应用场景也推动着这项技术不断向前发展。例如虚拟现实(VR)/增强现实(AR)体验、体育赛事转播中的运动员动作分析、医疗康复训练指导等方面都有广泛的应用潜力。未来的研究方向可能会集中在如何进一步提升鲁棒性和泛化能力方面,同时也需关注隐私保护等相关伦理议题[^3]。 ```python # 示例代码展示了一个简单的骨架绘制函数 import numpy as np import matplotlib.pyplot as plt def plot_skeleton(joints_3d): fig = plt.figure() ax = fig.add_subplot(projection='3d') # 假设 joints_3d 是一个 N x 3 的数组, 表示N个关节点的位置坐标 ax.scatter(joints_3d[:, 0], joints_3d[:, 1], joints_3d[:, 2]) # 连接特定的关键点形成骨骼线条... connections = [(0, 1), (1, 2)] # 只是示意性的连接方式 for conn in connections: coords = [joints_3d[conn[0]], joints_3d[conn[1]]] xs = [c[0] for c in coords]; ys = [c[1] for c in coords]; zs = [c[2] for c in coords] ax.plot(xs, ys, zs) plt.show() # 使用假定的3D关节数据调用此函数 plot_skeleton(np.random.rand(17, 3)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值