自学内容网 自学内容网

【阅读笔记】Dense trajectories and motion boundary descriptors for action recognition

论文地址:Dense Trajectories and Motion Boundary Descriptors for Action Recognition | International Journal of Computer Vision

如何用一句话描述这份工作?💡

在多个尺度上,对视频序列中每一帧的密集网格上的特征点采样,并使用光流算法进行追踪。

1 论文主要贡献是什么?

  1. 提出了一种基于密集轨迹和运动边界描述符的视频表征方法;

  2. 引入了一种基于运动边界直方图(MBH)的描述符,在真实世界视频中表现出色,尤其是在包含大量相机运动的视频上;

  3. 在九个数据集上评估了视频表征效果,包括KTH、YouTube、Hollywood2等,该方法在所有数据集上均优于当前最先进结果。

2 写在前面

  • 局部时空特征是动作识别的一种有效表征手段,已在实践中得到检验。传统的局部时空特征包括Harris、Gabor滤波、Hessian矩阵等。
  • 直接用3D-SIFT、HOG3D等方法在联合3D空间中检测兴趣点并不有效,原因是视频中的2D空间域和1D时间域表现出了不同的特征,于是就考虑以不同的方式处理它们:根据视频序列跟踪兴趣点。

于是就引出了相关工作,例如下图中的KLT、SIFT方法。

下面对KLT、SIFT简单介绍:

(1)KLT(Kanade-Lucas-Tomasi)

是一种基于光流理论的方法,通过最小化图像亮度变化来估计序列中的特征点运动。(适用于跟踪角点或边缘点)

(2)SIFT(Scale Invariant Feature Transform)

尺度不变特征变换,是一种用于提取图像中关键点和描述符的特征检测算法,旨在提取对尺度、旋转和亮度变化具有不变性的特征。(适用于特征匹配任务)

实际上,从上图也可以看出,密集轨迹算法与其它两种方法的差异:

采样密度:KLT于SIFT的关键点是稀疏分布的,而密集轨迹在关键点是密集处理的。

对快速、不规则运动的处理:也正是因为前两种方法的稀疏性,在这类视频上的处理效果不如密集轨迹;(密集轨迹的一个优点是平滑性约束,在论文有提及)

计算复杂度:从直觉上也可以发现,密集轨迹计算量较大。

注:笔者在这边的理解还不够到位,详细的信息在论文中“4.1.2”节有所描述。


论文还考虑到了真实世界中动作识别的问题:相机本身运动产生的干扰怎么办?

一个直观的想法是:去除相机运动,那如何估计呢?

运动边界描述符(MBH,Motion Boundary Histograms)。

如下图所示,该方法基于光流梯度计算,用于捕获像素之间的相对运动(即运动边界),能够去除局部恒定的相机运动,保留关于运动变化的信息,这样一来,就能够有效区分前景动作和背景中的相机运动。换句话说,MBH的引入使得行为识别对相机运动具有鲁棒性

当然,这张图中还展示了HOG与HOF的效果,私以为比较重要,所以详细索索:

1. HOG (Histograms of Oriented Gradients)

  • 代表图像中的梯度方向和大小,关注静态外观信息
  • 在上图中,HOG描述符通过颜色(色调)表示梯度/流向的方向,通过饱和度表示梯度/流向的大小;
  • 正式因为关注场景中的静态特征,所以HOG对相机运动不敏感

2.HOF (Histograms of Optical Flow)

  • 代表像素点在视频帧之间的光流变化,捕捉局部运动信息
  • 在图中,HOF描述符同样通过颜色(色调)表示光流的方向,通过饱和度表示光流的大小;
  • HOF描述符包含了由于相机运动引起的背景中的恒定运动,可能会对行为识别造成干扰。

3 方法论

3.1 密集采样(Dense Sampling)

【目的】

确保在视频的每一帧中都能均匀地覆盖特征点,以便捕捉到足够的局部运动信息和上下文信息。

【采样过程】

Step1:网格采样

首先,在每个空间尺度上单独进行网格采样,采样点间隔为W像素。这样可以保证特征点在所有空间位置和尺度上均匀覆盖。

作者通过实验证明,W=5 的时候效果是最优的!

Step2:去除同质区域点

这里需要思考一个问题:Step1中,是不是所有点都需要密集采样?

前景人像的运动的确很重要,但背景往往是不会变化的,此时如果对背景同样进行密集采样,必然会引入不必要的信息且增加计算负担。

于是,作者在这里采用了一个Shi和Tomasi(1994)提出的一个方法:根据网格上每一个点的自相关矩阵的特征值大小,选择保留或去除。具体来说:对于图像中的点i,如果其本征值λ1和λ2的最小值小于某个阈值T,则移除该点。阈值T设置为图像中所有点最小特征值的最大值的0.001倍,这样说有点绕,其实公式一目了然:

T=0.001\times \max_{i \in I} \min(\lambda_{1i}, \lambda_{2i})

这样一来,区域中的无效点就不必要追踪了,可以提高特征点的质量。

这里还需要说明一下,论文中提到了“同质区域”(homogeneous image areas),而笔者上面提及了“背景区域”,实际上并不准确。因此,下面对两者做一个区分:

  • 同质区域(Homogeneous Region): 指的是在图像或视频中颜色、亮度、纹理等方面变化不大的区域。这些区域可能包含背景,也可能包含前景中的平坦物体表面。其最大的特征是:缺乏显著的边缘或纹理信息,使得它们在图像处理中难以区分。
  • 背景区域(Background Region): 指视频中或图像中作为前景物体衬托的部分,通常是静态的,不随时间变化。背景区域通常包括场景中的固定物体和结构,如墙壁、地板、家具等。

下图展示的是经密集采样并在去除了同质区域特征点后的效果图:

3.2 轨迹(Trajectories)

【目的】

在 3.1 密集采样特征点的基础上,提取轨迹,并计算与这些轨迹对齐的描述符。

【过程】

Step1:轨迹提取

首先,在每个空间尺度上独立地对采样点进行跟踪。这意味着对于视频中的每一帧,都会计算其相对于下一帧的密集光流场。

定第 t 帧中的点 Pt=(xt,yt),其在第 t+1 帧中跟踪到的位置通过在光流场 ωt=(ut,vt) 上应用中值滤波来平滑得到: 

P_{t+1} = (x_{t+1}, y_{t+1}) = (x_t, y_t) + (M * \omega_t)|_{(x_t, y_t)}

其中,M是中值滤波核,大小为3×3像素。这个时候又会有疑问:为啥是中值滤波?

作者在论文中给出了一个图,很好诠释了中值滤波的优点,如下:

其中,蓝色点属于背景,应该保持在原位,而红色点属于前景物体,应该跟随物体移动。当使用双线性插值时,运动边界变得模糊,导致前景和背景的运动信息混淆;而使用中值滤波能够保持运动边界的清晰度,从而更好地区分前景和背景的运动。

所以中值滤波的优点是什么?

从上述图可以直观体会到,的确可以保持运动边界的清晰度,减少模糊,可以提高轨迹跟踪的质量。

本质原因是:中值滤波对异常值的鲁棒性。(例如,对于噪声或快速运动造成的误差,中值滤波只取邻域中的中值,而不是平均值,所以会更加稳定。)

Step2:光流场计算

采用Farneback(2003)的算法计算密集光流场,其核心在于:通过在两个连续帧的邻域之间嵌入平移运动模型,并使用多项式展开来近似像素强度。

Step3:轨迹长度限制

为了克服跟踪过程中的漂移问题,将轨迹长度限制为L帧,从而确保轨迹不会偏离其初始位置太远。

作者通过实验证明,L=15 的时候效果是最优的!

Step4:轨迹的后处理

一方面,静态轨迹是不包含运动信息的轨迹;另一方面,具有突然大位移的轨迹可能是错误轨迹。

这两类轨迹的纳入会影响追踪效果,所以在后处理时选择去除

3.3 运动和结构描述符(Motion and Structure Descriptors)

【目的】

设计描述符来嵌入视频的外观和运动信息,从而捕捉视频中的动态结构,以更全面地表征动作。

【描述符计算】

  1. 空间-时间体积:沿着轨迹计算描述符,以编码运动信息。论文中定义了一个与轨迹对齐的空间-时间体积,其大小为N×N像素,长度为L帧。
  2. 空间-时间网格:将空间-时间体积细分为nσ×nσ×nτ大小的网格,并在每个网格单元中计算一个描述符(例如HOG、HOF或MBH,在“方法论”的示意图中可以体现),最终的描述符是这些单元描述符的串联

【描述符类型】

  • 1.梯度和光流直方图(HOG+HOF):前面笔者已做过介绍,这两种描述符是用来描述静态外观和局部运动信息的。
  • 2.运动边界直方图(MBH):去除局部恒定的相机运动,保留运动边界信息。

由于算法的后两个步骤相对比较简单,所以论文中算法架构图只显示了前面三部分。

接下来笔者对后两部分做一个简单的描述,包括构建codebook以及分类。

3.4 特征表示

【目的】

高维局部特征转换为一组离散视觉词汇(visual words),这样它们就可以被用来表示和比较图像或视频内容。(这里采用的Bag of Features)

形象化描述议一下BoF:

把一堆单词(特征)扔进一个袋子(池)里,不考虑它们的顺序和位置,只关注单词的种类和数量。

这种表示方法能够捕捉图像或视频中的全局信息,同时忽略局部特征的具体位置,有助于提高模型的泛化能力。

【过程】

Step1:提取特征

从视频中提取局部特征,论文中提取了轨迹、HOG、HOF、MBHx和MBHy等。

Step2:使用k-means聚类构建Codebook

从训练数据中随机选择一部分局部特征(论文中是100000个),然后使用k-means算法将这些特征聚类成预定数量的视觉词汇(论文中是4000个)。

为了提高聚类的质量,论文对k-means算法进行了8次初始化,并保留误差最小的结果。(避免局部最优解

Step3:特征向量化

对于每一个video,计算其局部特征与 Codebook 中每个视觉词汇的相似度,并构建一个直方图。(其中每个维度代表一个视觉词汇的出现频率)

3.5 分类(Classification)

采用非线性核的SVM对利用 BoF 表征的 features  进行训练,论文将不同的描述符通过多通道方法做了结合,公式如下:

K(x_i, x_j) = \exp\left(-\sum_{c} \frac{1}{A^c} D(x_i^c, x_j^c)\right)

最后,论文采用一对多的策略来处理多类分类问题,即每个类别都与其它所有类别进行比较,并选择得分最高的类别作为预测结果。

4 实验结果

讲了那么多方法论,接下来看看结果,毕竟实践才是检验真理的唯一标准!

4.1 不同描述符的比较  |  Comparison of Different Descriptors

本节的实验主要是对比不同描述符(Trajectory、HOG、HOF、和MBH)在动作识别任务中的效果,并确定它们对最终识别性能的贡献。结果如下图:

【结论】

  1. Trajectory 通过捕捉轨迹的动态变化来表征动作,在某些数据集上表现出色(背景简单、跟踪容易),例如KTH、IXMAS和UIUC。
  2. HOG 关注静态外观信息,在包含大量体育动作的数据集上表现良好,如YouTube、UCF Sports和Olympic Sports。
  3. HOF 捕捉局部运动信息,在多个数据集上都有一定的效果,但在某些情况下可能受到相机运动的干扰。
  4. MBH 通过编码相对运动减少相机运动的影响,在所有数据集上都显示出优越的性能,尤其是在真实世界视频数据集上,如YouTube、UCF50和HMDB51。
  5. 当结合所有描述符(Combined)时,识别性能进一步提升,这表明不同描述符之间存在互补性。(相辅相成、相得益彰~~)

4.2 与基线轨迹的比较  |  Comparison to Baseline Trajectories

基线方法包括KLT轨迹、SIFT轨迹以及密集立方体(Dense Cuboids)。结果如下图:

【结论】

  1. KLT轨迹使用Kanade-Lucas-Tomasi跟踪器来提取兴趣点并跟踪,较为稀疏,所以可能无法捕捉到快速或复杂运动的全部细节。
  2. SIFT轨迹通过匹配连续帧之间的SIFT描述符来提取轨迹,在处理视频时较为稳健,但可能在运动变化细微的视频中表现不佳,因为SIFT特征点是基于空间直方图的,不够局部化。
  3. 密集立方体是一种不依赖于轨迹跟踪的方法,它在空间-时间体积中直接提取描述符,而不关心轨迹的动态变化。
  4. 密集轨迹 vs Others:与KLT轨迹和SIFT轨迹相比,密集轨迹在识别准确率上较优;与密集立方体相比,密集轨迹同样优秀(密集立方体虽然简单、计算效率高,但可能无法充分利用视频中的运动信息)
  5. 密集表示 vs 稀疏表示:密集表示在大部分数据集上都是优于稀疏表示的,这也是直觉上能感觉到的,采样点越多、越密集,就有更大的可能在不同的背景和遮挡条件下捕捉到动作的关键信息,也能捕捉到快速变化,从而提高动作识别的准确性。
  6. 总的来说,密集轨迹在九个dataset上效果都是最佳的!

4.3 不同光流算法的比较  |  Comparison of Different Optical Flow Algorithms

光流计算用于估计图像中像素点在连续帧之间的运动,是密集轨迹的前提。

在实验中,论文采用了两种光流算法进行对比,具体如下:

  1. Farneb¨ack(2003)算法​​​​​​:该算法基于多项式扩展,用于两帧之间的运动估计,提供了一个在速度和准确性之间较好的折中方案。
  2. Brox和Malik(2011)算法:该算法是一种大型位移光流算法,包含了全局平滑性约束,能够处理更大的运动位移。

后者在理论上能够提供更准确的光流估计,但经实验证明(在YouTube和Hollywood2上),两者的整体性能相似,但后者计算成本更高。因此,为了平衡计算效率与准确性,论文最后采用了Farneb¨ack(2003)算法。

对比实验结果图:

​​​​​​

4.4 轨迹参数评估  |  Evaluation of Trajectory Parameters

实际上,这一节的内容可以理解成消融研究。论文中评估了算法中的各种参数对动作识别性能的影响,包括:轨迹长度、采样步长、邻域大小、单元网格结构、空间尺度数量和刷新率

参数的最终选择核心是:在保持高识别率的同时,平衡计算成本

实验结果如图所示,详细的分析请阅读论文,笔者在此不再赘述!

4.5 计算复杂度分析  |  Computational Complexity Analysis

这节主要是为了分析算法执行的效率,尤其是考虑到实际应用中对实时或近实时处理的需求。

下图展示的是算法主要步骤的时间消耗占比,主要包括光流计算、轨迹追踪、描述符计算、特征存储。从结果来看,光流计算占据了大半部分时间,描述符计算占据第二。

论文提及:如果只计算MBH描述符,描述符计算时间可以减少约46%,这表明在计算资源有限的情况下,可以选择性地计算特定的描述符。

此外,论文还探讨了不同的参数设置,如采样步长、空间尺度数量和刷新率,对计算速度和特征数量的影响。结果如下图所示:

【结论】

(1)顶部左侧图:展示了不同采样步长计算速度的影响,随着采样步长的增加(即采样点变得更稀疏),计算速度提高(待处理的数据量减少)。但是,如果步长过大,可能会丢失重要的运动信息,影响特征的表达能力。

(2)顶部右侧图:展示了不同采样步长对每帧特征数量的影响,可以发现,采样步长越小,每帧中的特征点数量越多。(更密集的采样意味着更多的点被选取用于计算)

(3)底部左侧图:展示了不同空间尺度数量计算速度的影响,增加空间尺度数量可以提高特征的尺度不变性,但同时也会增加计算负担。

(4)底部右侧图:展示了不同刷新率计算速度和每帧特征数量的影响。(刷新率是指在视频序列中采样特征点的频率。)较低的刷新率意味着在连续帧之间跳过一些帧不进行特征提取,从而减少计算量。图中显示,刷新率对计算速度的影响较小,但会显著减少每帧的特征数量。

4.6 与最新技术比较  |  Comparison to State-of-the-Art Results

与SOAT效果进行对比,结果发现,论文提出的算法在7个dataset上都是最优的!

结论与启发

  1. 作者考虑到了实际行为识别中的问题(而不限于实验室环境),即存在相机扰动,因此采用边界描述符(MBH)进行缓解;

  2. 在密集采样中,作者利用每一个点的自相关矩阵的特征值进行筛选特征点,实际上这个操作和注意力机制的思想还是挺像的,保留重要区域,抑制不重要区域。只不过后者认为哪怕是一些不重要的区域,可以当成 noise 提升鲁棒性,这也是一种不错的选择,或许也可以成为这份工作的一个改进方向;

  3. 融合不同描述符产生了“涌现”的效果:不同的描述符,如轨迹形状、HOG、HOF和MBH,各自捕捉视频内容的不同方面。通过融合这些描述符,模型能够从多个角度理解视频内容,从而提高识别的准确性;

  4. 最后,笔者认为这份工作实验设计比较全面,同时也在九个数据集上做了验证(工作量较大),这为算法在不同场景下的表现提供了丰富的视角!不过,在某些参数/方法选择时,仅在个别数据集上做了实验,或许,是为了给后来者留下一些思考与进一步考究!


原文地址:https://blog.csdn.net/m0_57055443/article/details/143841226

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!