3D计算机视觉:原理、算法及应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.2 运动分类和表达

视频可以记录不同物体的各种运动情况。运动信息是视频特有的,其对运动情况的分类和表达有自身特点。

4.2.1 运动分类

在对图像的研究和应用中,人们常把图像分为前景(目标)和背景。同样在对视频的研究和应用中,也可把其每帧分为前景和背景两部分。这样在视频中,就需要区分前景运动和背景运动。前景运动指目标在场景中的自身运动,它导致图像部分像素的变化,所以又称为局部运动背景运动主要是由进行拍摄的摄像机自身运动造成的图像内所有像素的整体移动,所以又称为全局运动摄像机运动

上述两类运动各有特点。全局运动一般具有整体性强、比较规律的特点。在许多情况下,全局运动仅用一些特征或一组含若干参数的模型就可以表达。局部运动常比较复杂,特别是在运动目标(部件)比较多的时候,各目标可做不同的运动。目标的运动仅在较小的空间范围内表现出一定的一致性,需要采用比较精细的方法才能够准确地表达。

在图像中,前景和背景的运动或静止可能有4种组合情况,即两者均运动或均静止,以及其中一者静止而另一者运动。由于可对全局运动建立模型,所以在两者均运动的情况下,局部运动可看作与全局运动模型不相符合的部分。

4.2.2 运动矢量场表达

由于运动既可能包括全局运动又可能包括局部运动,所以对整个运动场的表达不能仅采用全局模型的方法(虽然此时可能只需要很少的几个模型参数)。在极端情况下,可以考虑分别描述每个像素的运动,但这样需要在每个像素位置计算一个矢量(运动既有大小又有方向)且结果并不一定满足实际物体的物理约束。一种综合折中的考虑精确性和复杂性的运动矢量场表达方法是将整幅图像分成许多固定大小的块。在块尺寸的选择上,需要考虑应用的要求。如果块尺寸比较小,则块中的运动可用单个模型来表示,并且有较高的精确度,但计算量会比较大;如果块尺寸比较大,则运动检测的整体复杂度会比较小,每个块有一个运动细节被平均了的综合运动。在图像编码的国际标准H.264/AVC中,使用了从4×4到16×16的块。

对于图像块的运动,既要考虑大小也要考虑方向,所以须用矢量表示。为表示瞬时运动矢量场,在实际应用中,常将每个运动矢量用(有起点)无箭头的线段(线段长度与矢量大小,即运动速度成正比)表示,并叠加在原始图像上。这里不使用箭头只是为了使表达简洁,减少箭头叠加对图像的影响。由于起点是确定的,所以虽然没有箭头,但方向仍是明确的。

例4-2 运动矢量场表达示例

如图4-3所示,基于一幅足球比赛的场景图,对运动矢量场的计算采用了先对图像分块(均匀分布),然后计算各图像块综合运动矢量的方法。由每块图像获得一个运动矢量,并用一条由起点(起点在块的中心位置)射出的线段表示,将这些线段叠加在场景图上就得到运动矢量场的表达图。

图4-3 运动矢量场表达示例

图4-3仅显示了全局运动的情况。由图中大部分运动矢量线段的方向和大小可见,图中右下方的运动速度较快。这是由于摄像机在拍摄时具有以守门员所在的左上方为中心、以球门为起点的逐步变焦(缩小镜头,大部分运动矢量的方向是远离球门)的运动。

4.2.3 运动直方图表达

局部运动主要对应场景中目标的运动。目标的运动情况常比摄像机的运动情况更不规范。虽然同一刚性目标上各点的运动常具有一致性,但不同目标间还可以有相对运动,所以局部运动矢量场常比全局运动矢量场复杂。

由摄像机造成的全局运动延续的时间常常比目标运动变化的时间间隔长,利用这个关系,可用一个全局运动矢量场代表一段时间内的视频。而为表示目标运动的复杂多变性,需要获得连续的短时段的稠密局部运动矢量场。这带来的问题是数据量会相当大,需要更紧凑的方式来表达局部运动矢量场。

1.运动矢量方向直方图

运动矢量方向直方图(MDH)是一种紧凑的运动表达方式。其基本思路是仅保留运动方向信息以减少数据量,依据是人们在分辨不同运动时首先考虑运动方向,而运动幅度的大小则需要较多的注意力才能区分,所以可认为运动方向是最基本的运动信息。运动矢量方向直方图通过对运动矢量场中的数据进行统计,提取场中的运动方向分布,从而表达视频中目标的主要运动情况。在实际表达时,可将0°~360°的方向划分成若干间隔,把运动矢量场上每个点的数据归到与它的运动方向最接近的间隔中。最后的统计结果就是运动矢量方向直方图,一个示例如图4-4所示。

图4-4 运动矢量方向直方图示例

在具体计算时,考虑到局部运动矢量场中可能存在很多静止或基本静止的点,在这些位置上计算的运动方向通常是随机的,并不一定能够代表该点的实际运动方向。为避免错误数据影响直方图的分布,在统计运动矢量方向直方图前,可先对矢量大小取一个最低幅度阈值,不把小于最低幅度阈值的像素计入运动矢量方向直方图。

2.运动区域类型直方图

运动区域类型直方图(MRTH)是另一种紧凑的运动表达方式。当目标运动时,根据局部运动矢量场可实现对目标的分割,并得到具有不同仿射参数模型的运动区域。这些仿射参数可看作表达运动区域的一组运动特征,从而可借助对运动区域仿射参数模型的表示来表达运动矢量场中各种运动的信息。具体就是对运动区域仿射参数模型进行分类,统计各运动区域中满足不同仿射参数模型的像素数量。运动区域类型直方图示例如图4-5所示(区域面积以像素个数统计)。对每个运动区域用一个仿射参数模型来表达,既比较符合人们主观理解的局部运动,又能够减少描述运动信息所需的数据量。

图4-5 运动区域类型直方图示例

运动区域仿射参数模型分类就是根据运动矢量将模型分为不同的类型。例如,一个运动区域仿射参数模型有6个参数,对它的分类也就是对6D参数空间的一个划分,这种划分可以采用矢量量化的方法。具体来说,先根据每个运动区域的仿射参数模型,用矢量量化器找到对应的仿射参数模型类型,然后统计满足该模型类型的运动区域的面积值,这样得到的统计直方图表示了每个运动类型所覆盖的面积。不同的局部运动类型不仅可以表示不同的平移运动,还可以表示不同的旋转运动、不同的运动幅度等,因此相比于运动矢量方向直方图,运动区域类型直方图的描述能力更强。

4.2.4 运动轨迹描述

目标的运动轨迹给出了目标在运动过程中的位置信息,当在一定环境或条件下对动作和行为进行高层解释时,可以使用运动轨迹。国际标准MPEG-7推荐了一种专门的描述符以描述目标的运动轨迹,这种运动轨迹描述符由一系列关键点和一组在这些关键点之间进行插值的函数构成。根据需要,关键点可用2D或3D坐标空间中的坐标值表达,而插值函数则分别对应各坐标轴,xt)对应水平方向的轨迹,yt)对应垂直方向的轨迹,zt)对应深度方向的轨迹。如图4-6所示,以xt)为例,图中有4个关键点t0t1t2t3,在两两关键点之间共有3个不同的插值函数。

图4-6 运动轨迹描述中关键点和插值函数示意

插值函数的一般形式是二阶多项式:

其中,p代表时间轴上一点;vp代表运动速度;ap代表运动加速度。对应图4-6中3段轨迹的插值函数分别为零次函数、一次函数和二次函数,A段是xt)=xt0),B段是xt)=xt1)+vt1)(t-t1),C段是xt)=xt2)+vt2)(t-t2)+0.5×at2)(t-t22

根据轨迹中的关键点坐标和插值函数形式,可以确定目标沿特定方向的运动情况。综合沿三个方向的运动轨迹,可确定目标随时间变化在空间中的运动情况。注意两个关键点之间的水平轨迹、垂直轨迹和深度轨迹插值函数可以是不同阶次的函数。这种描述符是紧凑且可扩展的,而且根据关键点的数量,可以确定描述符的粒度,既可描述时间间隔短的细腻运动,也可粗略地描述大时间范围内的运动。在最极端的情况下,可以仅保留关键点而不使用插值函数,因为关键点序列已经是对轨迹的一个基本描述。