武汉大学测绘学院 王晨捷
基于光流法的视频中目标跟踪
武汉大学测绘学院 王晨捷
视频信号是视觉信息的一大源头,它是由按序列排放的图像组成,即帧(Frame)。这些图像通过有规律的间隔进行拍摄(以帧率的形式指定),它们展示了动态的场景。一旦我们能够提取视频中的某个单独帧,就可以通过比较相邻帧的方式对物体进行跟踪,本文研究利用光流法来进行视频中目标的跟踪。
光流的概念最初是由Gibson在1950年首先提出来的。它是在成像平面中运动物体的像素运动的瞬时速度。利用时域中的图像序列的像素变化和相邻帧之间的相关性,可以找到前一帧与当前帧之间的对应关系。最重要的是,该方法计算了相邻帧中物体的运动信息,研究光流场的目的是获得无法直接从图像序列中获得的运动场。运动场是物体在三维真实世界中的运动;光流场是二维图像平面运动的投影。
为了在不同帧之间跟踪特征点,我们必须定位特征点在随后的图像帧中的新位置。如果我们假设特征点的强度在相邻帧之间不发生变化,那么我们要找到一个偏移量(u,v):It(x,y)= It+1(x+u,y+v)。其中,It和It+1分别是当前帧以及下一时刻的值。这个强度不变的假设对于拍摄时间相近的图像中的微小偏移量而言都是成立的。我们可以使用泰勒展开式来近似这个方程式,新的方程式将涉及图像的倒数:
如果强度不变假设成立,可以推出另一个方程式:
这个著名的约束便是基础光流约束方程式,在引入另一个假设后,它被使用于Lukas-Kanade特征跟踪算法,即特征点附近所有点的偏移量都是一致的。因此我们对于拥有独特未知偏移量(u,v)的点都利用光流约束。这给予我们超过未知数数量(两个)的方程式,我们可以使用均方法进行求解。在实践中它通过迭代的方式进行求解,Opencv实现了在不同分辨率进行估算求解的函数,使得可以更有效地进行搜索,同时也能适应较大的偏差。默认情况下,图像的层数是3,而搜索窗口的尺寸是15.这些参数是可以修改的,可以通过制定终止条件来控制迭代过程,本文就是利用Opencv实现了Lukas-Kanade跟踪器的编程。
生成的程序展示出随时间变化的特征点,例如此处便是两个不同时刻的图像帧。在这个视频中,相机的位置是规定的,因此运动的小车是唯一的运动物体。
图3.1 视频开始时刻的图像帧
图3.2 开始几秒后的图像帧
在视频流中,选择特征点,并跟踪它们。当检测到特征点时,计算位移向量,并在连续帧间显示这些关键点的运动,这些向量被称为运动向量。由实验分析可以得到,光流法能够近似得到图像中特征点的运动向量,通过找到其中光流值不为零的特征点组成的最大连通区域,比较前一帧与当前帧实现在视频中对于运动目标的跟踪。
[1]B.Lucas&T.Kanade. An Iterative Image Registration Technique with an Application to Stereo Vision [J].Proceedings of Imaging Understanding Workshop,1981:121-130.
[2]Zhendong Yu.Iris detection tracking based on optical flow[D].LanZhou:LanZhou University,2015.
[3]董颖.于光流场的视频运动检测[D].山东:山东大学,2008.
王晨捷(1996—),男,安徽合肥人,武汉大学本科在读,研究方向:遥感、计算机视觉。