图形图像处理领域,经常使用轮廓与颜色匹配或者是预测来跟踪,比较常用的是meanshift和IMM(交互式多模型)跟踪方法,而目前新兴的光流法跟踪已经慢慢走到了前台,因为它受光线干扰小,适用于前景变化复杂的情况,尤其对于人群聚集的活动前景提取与语义分析。最近,《自动扶梯节能与智能监控系统》中,频繁用到这方面的知识,所以总结一下,也借此结合自己的科研,全面复习下这方面的知识。
光流场是指在图像中观察到的表面上的点的运动,而不管是怎么样形成的,有可能是物体在动,摄像机不动,有可能物体不动,摄像机动,也可能谁都在动,是一种图像灰度模式的表面运动。而运动场则需要三维物体实际要运动,并在图像上产生了对应的投影。一个运动物体在空间产生一个三维的速度场(三维指的是运动点前后,左右,上下)。运动前后空间对应点在图像上的投影会形成一个二维场(只有左右和上下)。理想情况下,光流场与运动场是互相吻合的,但实际上并不如此。如在一个摄像机前,让一个颜色均匀的小球,均匀转动,运动场因为有角速度,不为零,但因为图像并不随时间而变化,所以光流场处处为零。研究光流场的目的就是为了从序列图像中近似计算不能直接得到的运动场。
光流法中理解它的约束方程(optical flow constraint equation)是十分关键的,因为它仅是一个基于灰度图的序列变化流,电脑是傻的,它无法知道下一帧对应的点是哪一个,尤其是多目标点类似的时候。约束方程是Vx和Vy两个平面上的未知速度的关系方程。
光流法可以非常方便在应用在人群聚集的地方,对于前景运动对象的异常行为监测,对于任何需要跟踪前景对象的方法一样,必须保证摄像头绝对固定,以免背景点也形成运动光流。异常行为如在某一特定区域内运动方向的相反,或者是非法聚集,或者是拥挤等。
光流法一般先用KLT来计算特征点,然后根据特征点来生成光流向量簇,求出向量簇中心点,即可把一个前景物体用一个点来代替。目前流行的稀疏光流算法是基于金字塔模型的LK光流计算法,首先在图像金字塔模型的最顶层k层搜索特征点的匹配点,然后以k层的计算结果作为k-1层的初始估计值在图像金字塔模型中的第k-1层搜索匹配点,周而复始一直迭代到图像金字塔模型的第0层(原始图像)从而计算得到该特征点的光流。基于金字塔模型的LK光流算法可以较好的计算特征的光流。如图所以,检测到当前帧的运动对象队列之后,进行循环匹配,找到当前帧的匹配对象。