基于光流的运动目标检测跟踪快速算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
邮局订阅号:82-946120元/年技术创新
软件时空
《PLC 技术应用200例》
您的论文得到两院院士关注
基于光流的运动目标检测跟踪快速算法
The Fast Algorithm Based on Optical Flow for Tracking Moving Targets
(装甲兵工程学院)
关兴来谢晓竹
GUAN Xing-lai XIE Xiao-zhu
摘要:采用光流算法对运动目标进行识别跟踪,其优点是能够适应复杂的背景条件,并且能保证目标分割的完整性,但现有的按照光流矢量对目标进行跟踪的算法有明显的局限性:运算量过大,并且不适用与运动特征复杂的目标。对现有算法进行改进,采用均值平滑算法和基于光流绝对值的区域分割算法,可以有效解决这两个问题。关键词:光流;运动目标;图像分割中图分类号:TP391.4文献标识码:A
Abstract:Using optical flow algorithm for identification and tracking moving targets,the advantage is the ability to adapt to the com -plex background conditions,and can ensure the integrity of the target partition,but the existing target tracking algorithm based on op -tical flow vector has obvious limitations:excessive operation,and does not apply and movement characteristics of complex targets.Im -provements to existing algorithms,using the pyramid optical flow-based smoothing algorithm and the absolute value of the region seg -mentation algorithm can effectively solve these two problems.Key word:Optical flow;Kinetic target;Image segmentation 文章编号:1008-0570(2012)10-0421-03
图像序列中的运动目标检测跟踪是指在图像序列中将前景运动区域从背景中提取出来。图像序列中检测运动目标,主要有图像差分法(帧间差分和背景差分)、光流场的方法、统计模型的方法、运动能量的方法、小波变换的方法等。其中,光流场的方法是利用运动物体随时间变化在图像中表现为速度场的特性,根据一定的约束条件估算出运动所对应的光流,然后根据光流矢量对图像中的目标进行检测,将目标从背景中分割出来。与其它方法相比它的优点是可以避免分割目标不完整的情况,因此得到越来越广泛的应用。
但现有的基于光流算法同样存在以下缺陷:
一是求稠密光流算法过于复杂。图像金字塔法的计算过程过于复杂,求出图像的金字塔的计算量非常大,而且对金字塔的每层图像均需要重新求其光流值。因此,这种经典的求稠密光流的方法运算时间过长,实时性较差。
二是不能适用于特征复杂的运动目标。例如:一个人在走路时,其身体各个部位的光流矢量值是不同的。对此类目标,如果仅仅根据光流矢量判断分割目标,很容易出现错误分割的情况。
1基于光流的运动目标跟踪原理
基于光流的运动目标的检测跟踪流程包括求取稀疏光流,求取稠密光流和目标的分割标识等几个步骤。
目前,最常用的计算运动目标稀疏光流的算法是H-S 算法,此理论的前提是:运动目标的灰度在很短的间隔时间内保持不变;给定邻域内的速度向量场变化是缓慢的。算法具体原理如下:
首先是建立基本的光流约束方程,求稀疏光流。令
为时刻t 图像点(x,y)的灰度,u(x,y)和v(x,y)表示图像点(x,y)的水平和垂直移动速度,则可建立光流方程:
(1)
其中,Jx 、Jy 和Jt 分别表示图像中像素灰度沿X,Y,T 方向的梯度。
由于给定邻域内的速度向量场变化是缓慢的,可利用这个条件来建立下面两个光流约束方程,即:
(2)(3)
HS 算法是将这两个方程与光流方程结合,通过解最小化问题得出下面两个迭代公式:
(4)(5)
上面公式(4)(5),就是H-S 法求光流的迭代公式,一般情况下,需要迭代20次以上,才能求出精度较高的光流值。
通过H-S 算法计算的光流仅仅是稀疏光流,为了将整个目标的完整轮廓描绘出来,需要计算出目标的稠密光流。求稠密光流可采用图像金字塔法:图像金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像集合。先使用金字塔上较低的分辨率图像来求其光流值,然后再逐步求较高分辨率的光流。在计算出稠密光流后,就可以将目标从背景中分割出来,实现对目标的检测和跟踪。
2对基于光流的目标跟踪算法的改
进
上面的算法存在计算复杂和无法跟踪复杂运动状态目标这两个缺陷,可通过对算法进行改进解决这两个问题。改进的思想是,不再将光流矢量做为分割目标的特征,而是将光流取绝对值,根据光流绝对值值的大小,按照基于区域分割的原理,设置相应的阈值,对运动目标进行分割,然后使用均值平滑算法,求出运
关兴来:工程师硕士研究生
421--
技术创新
《微计算机信息》2012年第28卷第10期
120元/年邮局订阅号:82-946
《现场总线技术应用200例》
软件时空
动目标的稠密光流。由于这个方法不再将精确的光流矢量值做为分割目标的特征值,因此在求稀疏光流时,没有必要求出非常精确的光流值,只需要将目标光流和背景分开即可。经实验仅需迭代10次,即可满足分割目标所需的精度要求。
2.1选取阈值对运动目标进行分割
首先对运动目标和背景的特征做如下假定:
①运动目标在图像中投影的各像素的可测量光流值绝对值的的均值大于背景部分的像素;
②运动目标之间的距离较大,明显大于目标本身的尺寸,即不考虑不同运动目标的重合问题;
③在图像中,运动目标的面积明显小于背景。
根据以上假定,选择一个适当的阈值完成对运动目标的分割。其算法是:先对图像中所有像素的水平和垂直光流值取绝对值,将图像中每一个像素的光流值减去阈值,结果大于0的为目标,小于等于0的为背景。
在取绝对值后,运动目标各点的光流平均值大于背景的光流平均值。设运动目标、背景和整幅图像的光流平均值分别为M 1、M 2、M,则这三个值之间的关系如下:
(6)
设各点的光流值为f xy ,其下标中的x 和y 分别代表图像中像素点的坐标,将图像中各点光流绝对值减去M.
(7)
公式(7)中f 1xy 为减去均值后各像素的光流值。由公式(6)可知,公式(7)求出的f 1xy 光流场中,光流值为负值或0的像素是背景像素,而光流值为正值的像素动画目标像素。由于可能存在较强的噪声信号以及光流值计算公式自身不精确等原因,可能出现部分背景像素点的光流值明显大于其邻域的像素点,为了滤除这些干扰点,可以将阈值加上一个修正量:α(M 1-M),其中α为修正系数,一般取值0.01-0.2之间。这样式(7)就变成:(8)
由于按照式(4)(5)求得的光流值仅仅是稀疏光流,因此无法分割得到目标完整的轮廓。同时,由于背景中的干扰信号或光流计算的不精确导致光流场中出现一些干扰信号。解决这两个问题需要对分割后的光流场进行采用均值平滑法进行平滑。
2.2采用对光流图的平滑算法计算稠密光流
均值平滑法的原理是,先确定平滑窗口的尺度,然后将图像中的各像素,在其平滑窗口范围内求其及临域像素的光流平均值做为这个像素的平滑后光流值。其公式是:
(9)
上式中x 和y 分别是当前点的横坐标和纵坐标,f 1(x,y)是点(x,y)处的稀疏光流值,f 2(x,y)是进行平滑处理后,点(x,y)处的稠密光流值,2n+1是光流窗口的大小。例如:n=2时,表示某点的光流值为以当前点为中心的5×5个像素组成的像素块的光流值的均值。
由于在随后进行图像分割时,是按照各像素的光流值是否大于0将图像分割为目标和背景,因此,在各像素光流值相对比例和符号不变情况下,具体数值的大小并不重要,为了简化运算,式(9)中的分母(2n+1)2可以省略,这样,式(9)就成为:
(10)
对于目标中稀疏光流像素临域内的0光流点,采用均值平滑的本质是用临域中光流的平均值进行插值。从而实现求稠密
光流的作用。
对图像的平滑处理,不仅可以将稀疏光流转化为密集光流,而且本身也可以起到消除噪声干扰的作用。如图像中所有运动目标投影的像素集合为N 1,背景投影的像素集合为N 2。则
(11)(12)
因此,在对图像中各像素的光流值进行一定次数的平滑处理后,存在噪声的像素的光流值,会逐渐被平滑为与其临域的背景光流值相同或相近。
(13)(14)
式中,f 2xy 为平滑处理后各像素点的光流值。
在进行平滑时,选择不同的n 的值可以起到不同的平滑效果。n 的值越大时,其平滑效果越明显。
计算出稠密光流后,以图像中各像素的水平和垂直光流值为特征值,根据各像素点光流值的符号,将运动目标造图像中的光流值大于0的像素标记为1,其余部分标记为0,即实现对目标区域分割。分别按照水平和垂直光流分割完毕后,将两次分割的结果求并集,即可得到运动目标在图像中的投影区域。
2.3对目标的标识
对运动目标完成分割后,按照基于游程连通性分析的算法对目标进行标识并计算目标在图像中的具体位置坐标,本文采用运动目标的形心坐标做为运动目标的坐标。形心坐标的求法是:以目标最左侧和最右侧像点的横坐标的平均值做为目标的横坐标,以目标最上一行和最下一行的纵坐标平均值做为目标的纵坐标。设目标i 的形心坐标为(p i ,q i ),其包含的所有像素集合为M i ,则,
(15)(16)
3仿真结果分析
仿真程序采用MATLAB2008编写而成。仿真实验分析包括
两个方面,一是使用改进后的算法对图像序列中的运动目标进行检测,并标记出其坐标位置,观察算法对运动目标的跟踪效果;二是将改进后的求稠密光流的算法———均值平滑算法和经典的图像金字塔算法所需时间进行对比,判断两种算法的优劣。在仿真程序中,图像金字塔算法取分辨率分别为1/2和1/4两层低分辨率图像,而本文改进的算法使用n=1和n=2两次均值平滑。
3.1对目标的跟踪效果分析
下面两组图片是对目标分割和定位的效果。
图1是对车辆的跟踪效果。左上图和右上图分别是从一个视频中截取的两幅连续图片,下图是处理结果,图中的圆圈表示运动目标的形心坐标位置。从图上可以看出,由于汽车的车身的灰度梯度几乎为0,因此很难求出其整个车身的稠密光流,但在进行平滑处理后,车身外部轮廓的光流不为0的区域基本连为一体,求出目标光流场的形心坐标后,其位置基本符合目标的形心位置。
图2是对行进中的人跟踪效果,人的行进过程中,人体各部分的运动特征是非常复杂的,上肢前后摆动和向前迈步所形成的光流方向及大小均和身体躯干部位不同,对光流取绝对值并进行均值平滑后,可以分割出连续的目标区域。从光流图可以看
422--