一种运动目标检测和跟踪方法与流程

文档序号:16435192发布日期:2018-12-28 20:26阅读:577来源:国知局
一种运动目标检测和跟踪方法与流程

本发明属于运动目标跟踪技术领域,特别是一种运动目标检测和跟踪方法。

背景技术

运动目标检测和跟踪是机器视觉研究的主要问题之一,它交叉融合了图像处理、模式识别、人工智能、自动控制以及计算机技术等众多领域的先进技术,在军事制导、医学图像诊断、视频监控、智能交通等方面都有广泛应用。但是由于受到光照变化、噪声、遮挡等诸多因素的影响,现有算法在实际应用中面临着许多问题。因此,研究和设计出准确性高、鲁棒性好的运动目标检测和跟踪方法仍然具有极大的挑战性。

进行运动目标跟踪,首先需要进行目标检测,目前常用的目标检测算法有光流法、帧间差分法和背景减法。光流法是通过计算图像中像素点的光流来进行运动目标检测的方法,该算法检测准确度高但是其计算量相当大,且抗噪性能差;帧间差分法是利用视频图像序列的连续帧,通过差分来检测像素变化的区域,判断出运动区域,该算法简单易实现,计算速度快,但是容易产生空洞的检测结果,无法检测出相似度高及运动速度较快的运动目标;背景减法是将当前图像与事先设定或随时间更新的背景图像相减,若差值大于设定的阈值,则认为该像素属于运动目标,该算法的背景模型的更新是一个难点,且对背景中的干扰特别敏感。从实际应用角度来看,将多种检测算法结合到一起能更为准确、快速的检测出运动目标。

国内外也有很多优秀的跟踪算法,例如meanshift、camshift、粒子滤波、kalman滤波、tld、kcf等。目前主流的跟踪算法,大致可以分为以下三类:基于模板匹配的跟踪方法、基于状态估计的跟踪方法和基于分类器的跟踪方法。

基于模板匹配的跟踪方法,就是通过比较候选区域与目标区域的匹配程度,选择匹配最大的区域作为跟踪目标,其中具有代表性的就是meanshift、camshift算法。meanshif算法一种基于非参数的核密度估计理论,在概率空间中求解概率密度极值的优化算法,该算法不能保证全局最优,并容易陷入局部极值,且其核窗口由初始跟踪窗口的大小决定,并且在整个跟踪过程中不再发生变化,当目标存在明显尺度变化的时候,尤其是当目标尺寸逐渐增大以至超出核窗宽范围的时候,固定不变的核窗宽常常会导致目标的丢失。camshift算法作为连续自适应的meanshift,通过自动调节核窗口大小以及被跟踪目标在图像中的大小,从而可以有效地解决目标变形问题,但其算法也收敛于局部最大值,并没有对目标的相似度做判定,当camshift的搜索窗口里面包含多个特征相似候选模型时,camshift算法无法辨别是否出现同色干扰,经常出现跟踪精度不够的问题,而且当目标运动物体缓慢地通过障碍物或进行快速无规则运动时,camshift算法将很容易失效,导致目标跟踪丢失。同时,当目标瞬间有个较大的加速度或被遮挡时,camshift跟踪算法容易失效。

基于状态估计的跟踪方法,是一种通过预测和更新来获得当前状态量的方法,其代表为kalman滤波、粒子滤波。kalman滤波一种利用线性系统状态方程,通过系统输入输出观测数据,利用实际的运动参数不断修正运动状态的估计值。粒子滤波利用一定数量的随机样本(粒子)来表示系统随机变量的后验概率分布,它是一种适用于非线性、非高斯系统的基于模拟的统计滤波器。为了提高精度,可以增加粒子数,但又会导致计算量增大。

基于分类器的跟踪方法:通过在线学习的方式采集正负样本特征集并更新分类器参数,代表有tld和kcf。此类跟踪方法能应付复杂的场景,算法的鲁棒性较强,但是此类算法为了提高精度需要训练大量的样本,算法复杂度较高,很难保证实时性。



技术实现要素:

本发明的目的在于提供一种具有较高准确性和鲁棒性的运动目标检测和跟踪方法。

实现本发明目的的技术解决方案为:一种运动目标检测和跟踪方法,包括以下步骤:

步骤1、通过图像传感器从外界实时获取每帧图像,将获取的每一帧图像转化为灰度图,并对灰度图进行滤波去噪,得到去噪后的图像;

步骤2、将去噪后的图像,先利用三帧差分法初步得出运动目标的区域;再采用形态学滤波闭运算,填补使用帧间差分法处理后得到的二值图像中存在的空洞;再将形态学滤波闭运算后图像中灰度值不为零的像素点,即运动区域的像素点进行光流计算,提取出运动目标;

步骤3、在初始帧图像中对搜索窗口的位置和大小进行初始化,并从搜索窗中的目标区域内提取目标的hsv格式的颜色直方图,进而求得该帧图像的反向投影图;

步骤4、使用camshift算法对图像序列进行跟踪,调整搜索窗口大小,并得出第i+1帧图像中运动目标的质心坐标

步骤5、使用kalman滤波预测运动目标在第i+1帧图像中的质心坐标

步骤6、将camshift算法在跟踪过程中得到的运动目标质心坐标与kalman滤波算法对目标质心坐标的预测值进行比较,两者坐标值作差,若差值大于设定的阈值,则使用kalman滤波算法得到的预测值来计算当前图像中运动目标的质心坐标,反之则使用camshift算法求得的运动目标质心坐标来计算当前图像中运动目标的质心坐标;

步骤7、更新模型,获取下一帧图像,重复整个跟踪过程,直至跟踪结束。

进一步地,步骤2所述将去噪后的图像,先利用三帧差分法初步得出运动目标的区域;再采用形态学滤波闭运算,填补使用帧间差分法处理后得到的二值图像中存在的空洞;再将形态学滤波闭运算后图像中灰度值不为零的像素点,即运动区域的像素点进行光流计算,提取出运动目标,具体如下:

将当前帧和前一帧图像之间的前向帧差图像记为fdb(x,y),下一帧和当前帧之间的后向帧差图像记为fdf(x,y),设定阈值t,对三帧差分法差分后的图像进行阈值化处理,得到二值图像,再计算fdb(x,y)和fdf(x,y)的交集,得到运动区域e(x,y),计算公式如下:

e(x,y)=fdb(x,y)∩fdf(x,y)

其中,fi(x,y)为第i帧图像的像素值,fi-1(x,y)为第i-1帧图像的像素值,fi+1(x,y)为第i+1帧图像的像素值;

得到二值图后,采用形态学滤波的闭运算,即先膨胀后腐蚀,消除二值图中存在的空洞;

二值图中不为零的像素点对应于灰度梯度大于设定值的点,这些点处的光流场基本方程ixu+iyv+it=0成立,其中,ix、iy、it表示图像中像素点灰度沿x、y、t方向上的梯度,u、v是像素点在x、y方向上的速度,再联合迭代方程即求得u、v,得到运动目标;

迭代方程为:

其中,上标k表示迭代次数,u0、v0是光流初始值,取值为0;是局部平均,λ为控制平滑约束的权重系数,根据导数求取的精确度确定。

进一步地,步骤3所述在初始帧图像中对搜索窗口的位置和大小进行初始化,并从搜索窗中的目标区域内提取目标的hsv格式的颜色直方图,进而求得该帧图像的反向投影图,具体如下:

(1)针对计算量及视频亮度变化不定的问题,采用hsv模型中的色度h分量作为camshift跟踪算法的特征,其中h为色度分量、s为色彩饱和度分量、v为亮度分量;

设定使用m级量化的直方图,{xi}1=1....n为目标区域图像的像素位置,定义c:r2→{1...m}来表示像素xi对应的像素值,那么目标颜色直方图分布为:

其中,qu为直方图分量u的值,c(xi)为像素xi的量化值,δ为kronecker函数;

为使得到的概率分布在[0,255]范围内,需将直方图进行缩放:

对当前帧视频图像作反向投影,即将hsv格式图像中xi对应的像素值u替换为pu;

(2)初始化搜索窗口的位置和大小,设跟踪窗口区域的零阶矩为m00,沿水平方向和垂直方向的一阶矩为m10和m01:

则搜索窗口的质心(xc,yc):

p(x,y)为反向投影图中像素(x,y)处的颜色概率分布值。

进一步地,步骤4所述使用camshift算法对图像序列进行跟踪,调整搜索窗口大小,并得出第i+1帧图像中运动目标的质心坐标具体如下:

搜索窗的宽度s和长度l分别由以下公式确定:

根据步骤3得出的搜索窗口,将搜索窗口的中心移动到运动目标的质心,如果移动距离大于预设的阈值,则重新计算调整后的窗口中心,进行新一轮的窗口位置和尺寸更新,直到搜索窗的中心与运动目标的质心间的移动距离小于预设的阈值,或者循环运算的次数达到设定的最大值,则停止计算;

最后将窗口的位置和大小作为下一帧搜索窗的初始值,如此循环迭代。

进一步地,步骤6所述的将camshift算法在跟踪过程中得到的运动目标质心坐标与kalman滤波算法对目标质心坐标的预测值进行比较,两者坐标值作差,若差值大于设定的阈值,则使用kalman滤波算法得到的预测值来计算当前图像中运动目标的质心坐标,反之则使用camshift算法求得的运动目标质心坐标来计算当前图像中运动目标的质心坐标,具体为:

两者坐标值作差,若差值大于设定好的阈值,则判定camshift算法的跟踪过程存在遮挡干扰或同色干扰,那么当前图像中运动目标的质心坐标将依据kalman滤波算法得到的预测值来计算,反之则使用camshift算法求得的运动目标质心坐标。

本发明与现有技术相比,其显著优点在于:(1)综合考虑了帧间差分法和光流法各自的优缺点,融合了两种算法,既降低了整幅图像使用光流法的计算量,又提高了帧间差分法的检测精度;(2)三帧差分法在对运动目标检测的时候,更能提取完整的目标轮廓,不连续以及出现漏洞的区域也相对要少,减小了目标的缺失;在使用三帧差分法后,对得到的差值图像进行形态学滤波闭运算,填补了差值图像中可能存在的空洞,减小了检测误差,提高了准确性;(3)将kalman滤波和camshift算法相结合,有效地解决了camshift算法对运动目标受到遮挡干扰或者同色干扰,提高了跟踪精度;(4)将rgb颜色空间模型转换为hsv颜色空间模型,提取h分量作为camshift算法的跟踪特征,降低了图像亮度的影响。

附图说明

图1是三帧差分法的流程示意图。

图2是三帧差分法和光流法融合过程示意图。

图3是camshift跟踪算法的流程示意图。

图4是本发明的运动目标检测和跟踪方法的流程示意图。

图5是本发明实施例中的仿真效果图,其中(a)~(f)分别为视频第35帧、第105帧、第154帧、第201帧,第254帧、第307帧的跟踪结果图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步详细说明。

如图1~3所示,图1是三帧差分法的流程示意图,图2是三帧差分法和光流法融合过程示意图,图3是camshift跟踪算法的流程示意图。

本发明运动目标检测和跟踪方法,包括以下步骤:

步骤1、通过图像传感器从外界实时获取每帧图像,将获取的每一帧图像转化为灰度图,并对灰度图进行滤波去噪,得到去噪后的图像;

步骤2、将去噪后的图像,先利用三帧差分法初步得出运动目标的区域;再采用形态学滤波闭运算,填补使用帧间差分法处理后得到的二值图像中存在的空洞;再将形态学滤波闭运算后图像中灰度值不为零的像素点,即运动区域的像素点进行光流计算,提取出运动目标,具体如下:

将当前帧和前一帧图像之间的前向帧差图像记为fdb(x,y),下一帧和当前帧之间的后向帧差图像记为fdf(x,y),设定阈值t,对三帧差分法差分后的图像进行阈值化处理,得到二值图像,再计算fdb(x,y)和fdf(x,y)的交集,得到运动区域e(x,y),计算公式如下:

e(x,y)=fdb(x,y)∩fdf(x,y)

其中,fi(x,y)为第i帧图像的像素值,fi-1(x,y)为第i-1帧图像的像素值,fi+1(x,y)为第i+1帧图像的像素值;

得到二值图后,采用形态学滤波的闭运算,即先膨胀后腐蚀,消除二值图中存在的空洞;

二值图中不为零的像素点对应于灰度梯度大于设定值的点,这些点处的光流场基本方程ixu+iyv+it=0成立,其中,ix、iy、it表示图像中像素点灰度沿x、y、t方向上的梯度,u、v是像素点在x、y方向上的速度,再联合迭代方程即求得u、v,得到运动目标;

迭代方程为:

其中,上标k表示迭代次数,u0、v0是光流初始值,取值为0;是局部平均,λ为控制平滑约束的权重系数,根据导数求取的精确度确定。

步骤3、在初始帧图像中对搜索窗口的位置和大小进行初始化,并从搜索窗中的目标区域内提取目标的hsv格式的颜色直方图,进而求得该帧图像的反向投影图,具体如下:

(1)针对计算量及视频亮度变化不定的问题,采用hsv模型中的色度h分量作为camshift跟踪算法的特征,其中h为色度分量、s为色彩饱和度分量、v为亮度分量;

设定使用m级量化的直方图,{xi}1=1....n为目标区域图像的像素位置,定义c:r2→{1...m}来表示像素xi对应的像素值,那么目标颜色直方图分布为:

其中,qu为直方图分量u的值,c(xi)为像素xi的量化值,δ为kronecker函数;

为使得到的概率分布在[0,255]范围内,需将直方图进行缩放:

对当前帧视频图像作反向投影,即将hsv格式图像中xi对应的像素值u替换为pu;

(2)初始化搜索窗口的位置和大小,设跟踪窗口区域的零阶矩为m00,沿水平方向和垂直方向的一阶矩为m10和m01:

则搜索窗口的质心(xc,yc):

p(x,y)为反向投影图中像素(x,y)处的颜色概率分布值。

步骤4、使用camshift算法对图像序列进行跟踪,调整搜索窗口大小,并得出第i+1帧图像中运动目标的质心坐标具体如下:

搜索窗的宽度s和长度l分别由以下公式确定:

根据步骤3得出的搜索窗口,将搜索窗口的中心移动到运动目标的质心,如果移动距离大于预设的阈值,则重新计算调整后的窗口中心,进行新一轮的窗口位置和尺寸更新,直到搜索窗的中心与运动目标的质心间的移动距离小于预设的阈值,或者循环运算的次数达到设定的最大值,则停止计算;

最后将窗口的位置和大小作为下一帧搜索窗的初始值,如此循环迭代。

步骤5、使用kalman滤波预测运动目标在第i+1帧图像中的质心坐标

步骤6、将camshift算法在跟踪过程中得到的运动目标质心坐标与kalman滤波算法对目标质心坐标的预测值进行比较,两者坐标值作差,若差值大于设定的阈值,则使用kalman滤波算法得到的预测值来计算当前图像中运动目标的质心坐标,反之则使用camshift算法求得的运动目标质心坐标来计算当前图像中运动目标的质心坐标,具体为:

两者坐标值作差,若差值大于设定好的阈值,则判定camshift算法的跟踪过程存在遮挡干扰或同色干扰,那么当前图像中运动目标的质心坐标将依据kalman滤波算法得到的预测值来计算,反之则使用camshift算法求得的运动目标质心坐标。

步骤7、更新模型,获取下一帧图像,重复整个跟踪过程,直至跟踪结束。

实施例1

首先将usb接口相机连接到计算机,打开相机,拍摄一段有遮挡物的运动目标视频。拍摄的视频自动保存到预先设定的路径中,计算机再对视频进行处理。处理平台为visualstudio2010+opencv2.4.9。

本发明的一种运动目标检测和跟踪方法,从运动目标跟踪的三个指标实时性、准确性和鲁棒性出发,针对camshift算法容易被相似背景特征干扰、无法跟踪快速无规则运动物体以及抗遮挡能力差等情况,提出了一种基于camshift,并引入kalman滤波的预测型自适应局部搜索跟踪方法。此算法具有高实时性,抗遮挡,有较高鲁棒性等特点。

结合图4,本发明运动目标检测和跟踪方法,具体步骤如下:

步骤1,通过图像传感器从外界实时获取每帧图像,将获取的每一帧rgb图像利用公式y=0.3r+0.59g+0.11b转化为灰度图,并对灰度图进行滤波去噪,得到去噪后的图像。

步骤2,将去噪后的图像,先利用三帧差分法初步得出运动目标的区域;再采用形态学滤波闭运算,填补使用帧间差分法处理后得到的二值图像中存在的空洞;再将形态学滤波闭运算后图像中灰度值不为零的像素点,即运动区域的像素点进行光流计算,提取出运动目标。具体如下:

将当前帧和前一帧图像之间的前向帧差图像记为fdb(x,y),下一帧和当前帧之间的后向帧差图像记为fdf(x,y),设定阈值t,对三帧差分法差分后的图像进行阈值化处理,得到二值图像,再计算fdb(x,y)和fdf(x,y)的交集,得到运动区域e(x,y)。计算公式如下:

e(x,y)=fdb(x,y)∩fdf(x,y)

其中,fi(x,y)为第i帧图像的像素值,fi-1(x,y)为第i-1帧图像的像素值,fi+1(x,y)为第i+1帧图像的像素值。

得到二值图后,采用形态学滤波的闭运算,即先膨胀后腐蚀,消除二值图中存在的空洞,提高目标提取的准确性。

在二值图中不为零的像素点对应于灰度梯度较大的点,这些点处的光流场基本方程ixu+iyv+it=0近似成立。其中,ix、iy、it表示图像中像素点灰度沿x、y、t方向上的梯度,u、v是像素点在x、y方向上的速度。再联合迭代方程即可求得u、v,得到更为准确的运动目标。

迭代方程为:

其中,k是迭代次数,u0、v0是光流初始值,取值为0;是局部平均,λ为控制平滑约束的权重系数,根据导数求取的精确度确定。

步骤3,在初始帧图像中对搜索窗口的位置和大小进行初始化,使搜索窗比运动目标稍大并完全包围运动目标,并从搜索窗中的目标区域内提取目标的hsv格式的颜色直方图,进而求得该帧图像的反向投影图。具体如下:

(1)针对计算量及视频亮度变化不定的问题,采用hsv(h为色度分量;s为色彩饱和度;v为亮度分量)模型中的色度h分量作为camshift跟踪算法的特征。设定使用m级量化的直方图,{xi}1=1....n为目标区域图像的像素位置,定义c:r2→{1...m}来表示像素xi对应的像素值,那么目标颜色直方图分布为:

其中qu为直方图分量u的值,c(xi)为像素xi的量化值,δ为kronecker函数。为使得到的概率分布在[0,255]范围内,需将直方图进行缩放:

对当前帧视频图像作反向投影,即将hsv格式图像中xi对应的像素值u替换为pu。

(2)初始化搜索窗口的位置和大小,设跟踪窗口区域的零阶矩为m00,沿水平方向和垂直方向的一阶矩为m10和m01:

则搜索窗口的质心(xc,yc):

p(x,y)为反向投影图中像素(x,y)处的颜色概率分布值。

步骤4,使用camshift算法对图像序列进行跟踪,调整窗口大小,并得出第i+1帧图像中运动目标的质心坐标

搜索窗的宽度s和长度l分别由以下公式确定:

根据步骤3得出的搜索窗口,将搜索窗口的中心移动到运动目标的质心,如果移动距离大于预设的阈值,则重新计算调整后的窗口中心,进行新一轮的窗口位置和尺寸更新,直到搜索窗的中心与运动目标的质心间的移动距离小于预设的固定阈值,或者循环运算的次数达到某一最大值,则停止计算。最后将窗口的位置和大小作为下一帧搜索窗的初始值,如此循环迭代。

步骤5,使用kalman滤波预测运动目标在第i+1帧图像中的质心坐标

kalman滤波进行状态估计分为预测和修正两个阶段,描述系统的状态方程和观测方程为:

状态方程:xk=akxk-1+bkwk

观测方程:zk=hkxk+vk

式中:ak是系统的状态转移矩阵,hk是系统的观测矩阵,wk(协方差q)和vk(协方差r)是满足正态分布的过程噪声和观测噪声向量,他们是互不相关的零均值白噪声序列。然后利用观测值和协方差修正状态预测值。

步骤6,将camshift算法在跟踪过程中得到的运动目标质心坐标与kalman滤波算法对目标质心坐标的预测值进行比较,通过以下公式判断:

t是预先设定的阈值,如果跟踪结果满足上式关系,则判定camshift算法的跟踪过程存在遮挡干扰,那么当前图像中运动目标的质心坐标将依据kalman滤波算法得到的预测值来计算。即:反之,

步骤7,更新模型,获取下一帧图像,跳转到步骤4,重新执行搜索过程,直到跟踪结束。

图5是本发明实施例中的仿真效果图,其中(a)~(f)分别为视频第35帧、第105帧、第154帧、第201帧,第254帧、第307帧的跟踪结果图,本发明方法能够更准确、快速地检测出运动目标,并解决遮挡干扰和背景同色干扰,提高目标跟踪的精度。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1