l引言
全景视图在诸多领域有着非常广泛的应用,在虚拟现实中,它是一种重要的场景表示方式。在MPEG中的动态Sprite编码通过对视频序列进行全局运动估计,可重构背景的全景视图。在基于内容的视频检索中,用全景图表示一段视频,极大地压缩了视频数据量。本文结合上述文中提到的全景图的优点,提出了一种应用在视频监控中的全景图拼接方法。通过云台控制摄像头左右往返运动实现实时的视频序列图像拼接,摄像头所拍摄的帧之间的转角和重叠区域并没有严格限制,利用全局运动估计方法,估算帧间运动参数,实现多图像的拼接融合,有效地扩大了监视范围和视野。
2全景图生成思路
用摄像机采集得到一系列图像,将首帧做为基准全景图,将下一帧与已有全景图做全局运动估计,得到该帧的运动参数,根据此参数对当前帧进行变换,然后将该帧变形图与已有的全景图进行拼接融合,重复上述步骤,即可生成该视频序列的全景图。其中,为了节约运行时间,保存每一帧的变形图,当读人一帧图像时,将当前帧与前一帧的变形图做全局运动估计,这样得出的运动参数和每次与已有全景图做运动估计得到的参数是一致的,并且由于单帧变形图所占空间小,使得运算速度得以提高。
3全局运动估计
3.1全局运动的仿射模型
帧间全局运动分析是一种基于模型的运动分析方法,在这里宜采用6参数的仿射模型来估算帧间的运动关系。该模型可描述图像的平移、缩放、旋转、仿射等线性变换
x‘=ax+by+c
y‘=dx+ey+f(1)
其中(w)代表k帧中像素的坐标,(x‘,y‘)代表k+l帧中像素的坐标,在该模型下定义参数矢量,其中分量e、f与平移运动有关,分量a、b、c、d与放缩、旋转运动有关。
3.2参数矢量估计
要估计仿射模型的6个参数,至少必须获得3 个非共线位置的运动矢量数据。通常情况下,可由块匹西法、光流分析等方法来进行。本文采用可以适应较大缶移矢量块匹配法来进行参数估计。将图像分为16xl6一共n小块,求出各个小块在上一帧的位移矢量,根据(1).有
其中i为每个小块的编号,axi、ayj为帧小块中心点对应与上一帧在x,y方向上的运动矢量。
此时定义能量函数pi,p’
使得p,、p取得最小值,其中n表示块匹配中的分块数。
利用最小二乘法求解式(2)、(3),使
可得到一组线性方程
求解线性方程,即可得到参数矢量p。
3.3分层运动矢量估计
由于块匹配计算量较大,故本文采用金字塔分层的块匹配技术进行帧间运动估计,以提高运算速度,具体算法
首先,将图像分为三层,最底层为原始图像,中间层为原始图像经过2:l的采样,大小变为底层图像1/4大小(长、宽都减少一半),最上层则为底层图像1/16大小。这样处理的好处是提高了后续运算的速度,且经过两次滤波有效消除了高频噪声对运动估计的影响。
通过计算最上层图像的块运动矢量,利用最小二乘估计法估算运动参数,由于块匹配在有运动前景或者纹理不明显的区域计算时不够精确,故需要进行错误匹配点的剔除。计算所有运动矢量与用运动参数恢复出的运动矢量的平均误差
其中,Axi、△yi为第i小块经过块匹配计算出的运动矢量为用运动参数恢复出的运动矢量。
剔除块匹配运动矢量中所有平均误差值大于此平均误差的矢量,用更新的运动矢量集合再次进行参数估计。
再将最上层用参数估计恢复出的运动矢量扩大一倍,作为第二层的运动矢量初始值,重复与最上层计算运动矢量相同的步骤,直至计算出图像最底层的运动参数。
所示见图l为一段720x576大小的视频序列中利用16x16的块匹配在某帧最上层图像上求出的相对其上一帧的运动矢量。
其中,白线表示迭代运算后的运动矢量,而黑线则麦示误差计算后,被剔除的运动矢量。