用于运动目标跟踪的改进Camshift算法的研究

2018-07-24 03:32秦勇商萌萌赵晓红盖建新
哈尔滨理工大学学报 2018年3期

秦勇 商萌萌 赵晓红 盖建新

摘 要:Camshift是一种应用颜色特性来对目标实施跟踪的算法,所以当背景过于复杂、目标被遮挡或做加速运动时很容易发生目标跟丢的情况。针对以上缺点,提出首先采用帧间差分法自动的选取搜索窗口,然后引入加权颜色概率直方图排除相似背景颜色的干扰,最后采用Kalman滤波器预测和Camshift算法相结合的方法准确跟踪做加速运动的物体。实验表明,此方法能够准确定位做加速运动或被遮挡的目标。

关键词:Camshift;帧间差分;加速运动;Kalman滤波

DOI:10.15938/j.jhust.2018.03.006

中图分类号: TP391

文献标志码: A

文章编号: 1007-2683(2018)03-0034-05

Research on Improving Camshift Algorithm about Target Tracking

QIN Yong, SHANG Meng-meng, ZHAO Xiao-hong, GAI Jian-xin

(School of Measurement and Control Technology and Communications Engineering,

Harbin University of Science and Technology, Harbin 150080,China)

Abstract:

The target is easily lost by using Camshift when the target is blocked or accelerated in complex background. The reason for this is Camshift is an algorithm that uses color characteristics to track the target. For solving above shortcomings, the improving Camshit algorithm is proposed in this paper. Firstly, the search window is automatically selected using frame difference method. Then, the weighted color histogram is introduced to eliminate the interference of similar background colors. Finally, the accelerating object can be tracked accurately based on Camshift algorithm combined with Kalman filter prediction. It is shown with experimental data that the blocked or accelerating target can be accurately located by used the method proposed in this paper.

Keywords:Camshaft;frame difference;accelerated motion;Kalman filter

0 引 言

視频序列中移动目标的跟踪是计算机视觉研究中的一个重要分支,在安全监控,智能感知等领域应用比较广泛[1]。它能够为场景分析和目标运动分析提供必要的信息来源,同时也是目标识别、行为描述等高级处理的基础。Camshift算法简单,运行效率相对较高且计算量较小,在背景颜色过于单一的情况下跟踪的效果良好。但是传统的Camshift算法需要手动初始化搜索窗口,如果背景颜色和目标物体相似容易受到干扰,不适应遮挡环境,不能够对目标模型实时更新并且对高速运动的物体容易跟踪失败。针对以上缺点,本文提出了用四帧差分和Kalman算法相结合的方法对Camshift进行改进。

1 目标检测算法

1.1 四帧差分法

帧间差分法运算简单且便于计算,比较适于改进Camshift算法。但是二帧差分和三帧差分都比较容易产生空洞现象且三帧差分不能够准确的检测出目标重叠部分,使目标难以提取。所以,本文运用连续四帧差分算法通过交叉差分以及二值化处理来精确的得到前景目标。

读取视频中四帧连续的图像I1(x,y),I2(x,y),I3(x,y),I4(x,y),经过预处理后分别对I1(x,y)与I3(x,y)以及I2(x,y)与I4(x,y)做差分运算,得到差分结果:

g1=|I1(x,y)-I3(x,y)|

g2=|I2(x,y)-I4(x,y)|

然后将g1,g2进行二值化处理,并对其执行“与”运算,得到结果H=g1g2,“与”运算能够很好的抑制目标重叠的现象。

1.2 连通区域检测

经过四帧差分得到的二值化图像仍不可避免的存在一些噪声及空洞,可以通过连通性检测的方法消除小的空洞和残留的噪声斑点。

前景图像中具有相同像素值的像素点构成连通区域。判断图像是否具有连通性用的是邻接性,经常运用的邻接性是四邻接以及八邻接。本文应用四邻接性对连通域进行检测,选取能够连通的区域最大面积的4%作为分割值,留下面积大于此分割值的连通域作为我们感兴趣的目标区域,清除面积小于此分割值的干扰区域,最终得到运动前景图像。

2 改进Camshift算法

2.1 Camshift算法

Camshift算法的核心是在视频图像所有帧中的颜色概率分布图的基础上运行meanshift算法,并运用目标概率直方图的特性来识别单一帧中的运动目标。Camshift算法首先初始化一个搜索窗口的大小和位置,使其可以恰好包含整个运动物体;其次对图像的颜色直方图的模型进行反向投影获得颜色概率的分布图;然后执行meanshift算法并得到新的搜索窗口对应的质心和大小;最后根据上一帧得到的结果重新调整搜索窗口的位置和大小,以此为基础进入到下一帧的跟踪。迭代这个过程,实现移动目标的连续跟踪。

在反向投影的计算中,我们首先选择包括移动目标的初始窗口,再统计得到HSV空间的H分量的直方图。选取直方图的最大值作为目标的亮度值,并按照式(1)计算与目标的亮度值相似的亮度值的概率。其中,n代表直方图的横坐标表示亮度值,h(n)代表直方图的纵坐标表示像素的统计值。为了便于计算,我们把横坐标取值范围规定为0~255,并最终得到类似目标概率的查找表。获得类似目标概率的查找表后,计算后续每一帧中的像素并与查找表对照,最终得到反向投影图。

p(n)=h(n)max[h(n)]n=0,1,…,255(1)

根据式(2)~(5)可以得到0阶矩和1阶矩,然后确定新的搜索窗口的质心和大小。

搜索框零阶距:

M00=∑x∑yI(x,y)(2)

x和y的一阶距:

M10=∑x∑yxI(x,y)

M01=∑x∑yyI(x,y)(3)

搜索窗口的质心:

x0=M10M00 y0=M01M00(4)

搜索窗口的宽度:

S=M00256(5)

2.2 改进Camshift算法

HSV颜色空间中的H分量用于树立目标的直方图模型,它是有限的追踪有简单背景的特定颜色的目标。为了追踪目标颜色复杂的情况,在HSV空间中建立基于H和S两个元素的2-D直方图。目标的外部采样点的可靠性往往受到噪声的影响,所以用加权直方图的方法使具有不同位置的像素点具有不同权重,距离目标中心的位置越近权重相应的越大。目标的加权直方图计算方法如下:

q^u(y)=∑ni=1k(‖xi‖2)δ[b(xi-u)]

u=1,…,m(6)

其中{xi}i=1,…,n为目标图像像素坐标,b和δ的作用是确定颜色值xi是否属于特征值u。k(x)为核函数。移动目标用矩形框来表示,在某些情况下当目标被跟踪时矩形框不仅包含目标也会包含一部分背景。因此矩形框的统计目标直方图应该包含背景颜色的特征。将上面所用的加权直方图变换成彩色的概率分布图使目标区域更精确的被检测到。所以该方法可以减小背景像素的影响更好的跟踪目标。

3 Kalman滤波运动估计

传统的Camshift算法比较简单的以上一帧的搜索窗口的结果为基础初始化下一帧的搜索窗口。所以当目标做加速运动时,很容易跟丢运动目标。针对这一问题,本文引入Kalman滤波。卡尔曼滤波器是一种动态系统中状态变量最小方差的估计算法。它可以精确的预测移动物体的质心和速度。所以,我们用卡尔曼滤波器来估计运动目标的参数,该系统的状态方程和观测方程分别为:

X(k)=A(k)X(k-1)+W(k)(7)

Y(k)=H(k)X(k)+V(k)(8)

其中A(k)是状态转移矩阵,Y(k)是观测变量,H(k)是观测矩阵,W(k)和V(k)分别为激励白噪声和观测白噪声,它们是互不相关的零均值白噪声,协方差矩阵分别为Q和R。由于在跟踪做平抛运动的目标的过程中,前后两帧的间隔时间较短,所以可以把目标在两帧之间的运动看做匀速运动。令系统状态向量为X(k)=[x(k),y(k),vx(k),vy(k)],观测向量为Y(k)=[x(k),y(k)]。其中x(k),y(k)为目标区域质心在X轴、Y轴的位置坐标,vx(k),vy(k)为目标在X轴、Y轴的速度。根据式(7)、(8)我们可以分别得到状态转移矩阵A(k)和观测矩阵H(k)分别为:

A(k)=10dt0

010dt

0010

0001

H(k)=10010000

4 本文算法

首先运用四帧差分算法检测出比较完整的前景区域,根据得到的前景区域自动的选取初始搜索框。然后引用Kalman滤波器,用其预测Camshift算法里第二帧以后的搜索框的质心和大小,最后用Camshift算法得出移动目标区域的准确的位置和大小。判断是否出现相似颜色干扰或者目标被遮挡情况,如果出现那么用前景区域与Kalman滤波相相结合的预测值作为观测值来更新Kalman滤波器,否则用Camshift的结果作为观测值。本文运用ε,μ,φ(k)来分别判断视频中是否出现颜色相似干扰或目标被遮挡,计算公式为:

ε=S_now/S_bef(9)

μ=S_now/S_beg(10)

φ(k)=(x(k)-x^(k))2+(y(k)-y^(k))2(11)

其中S_now是通过camshift得到的搜索框的大小,S_bef是上一帧中搜索框大小,S_beg是最初搜索框大小,(x(k),y(k)),(x^(k),y^(k))分别表示目标质心的观测值和预测值。当ε>2时,判定存在大面积相似背景颜色的干扰;当μ<0.4并且φ(k)>10的时候,判定移动目标被大面积遮挡。算法流程图如图1所示:

5 实验结果与分析

5.1 相似颜色背景干扰实验

本实验在白色实验台上进行,其中干扰背景为橙黄色书本,跟踪目標为运动的黄色小球,跟踪结果用黑色方框表示。

图2为相似颜色背景干扰实验的结果,其中图2(a)为原始算法跟踪结果,图2(b)为改进算法跟踪结果。当出现相似颜色背景干扰时,图2(a)中搜索窗口的质心停留在干扰物橙黄色书本上,导致跟踪失败,而图2(b)中由于运用了改进算法,能够剔除背景书本的干扰,使书本与小球分离,能够正常的跟踪到黄色小球。

5.2 目标遮挡实验

本实验在木质实验台上操作,遮挡物为金色长方体,被跟踪目标为运动的黄色小球,目标由右向左运动。

图3为遮挡结果,其中图3(a)为原始算法跟踪结果,图3(b)为改进算法跟踪结果。从实验结果可知,目标在被全部遮挡前两种算法均可以跟踪,但是当目标被全部遮挡再次出现后,只有改进算法可以连续追踪目标。

5.3 物体平抛运动实验

本实验为平抛运动实验,选取固定摄像头拍摄视频,其中背景为蓝色木板,被跟踪的目标为黄色小球,它被人为抛出。小球做平抛运动,其运动轨迹为一条抛物线。用黑色方框表示跟踪结果。

如图4所示,分别选取原始视频的第1、7、12、14帧,在第1、7帧时两种算法均可以准确跟踪运动目标,但当追踪到第12、14帧的时候,与原始算法不同,改进算法能够精确定位每一帧中运动目标的位置,保证跟踪要求。

由于相似颜色、遮挡、加速运动等原因都会对每帧图片在收敛过程中的迭代次数有所影响,本文分别根据Camshift算法和本文算法对平抛运动实验进行了跟踪,对前30帧的迭代次数统计如图5所示。图中黑色实线代表Camshift算法,红色实线代表本文算法,相比之下文中改进算法的迭代次数明显要少,即改进算法的收敛性强于传统Camshift算法,有效提升了跟踪系统的实时性。

6 结 论

针对传统Camshift算法的不足,提出一种基于四帧差分目标检测并结合Kalman预测模型对运动目标进行跟踪的改进算法。首先在相似背景颜色干扰实验中利用四帧差分和加权颜色概率直方图排除颜色干扰。在遮挡和平抛实验中利用Kalman滤波器预测每帧目标位置并结Camshift算法准确定位。通过实验证明改进算法能很好的适应相似颜色干扰,目标遮挡,物体加速运动情况,有较好的鲁棒性和实用性。

参 考 文 献:

[1] 梁超, 史东承. 基于运动估计的CamShift移动目标跟踪算法[J]. 吉林大学学报(工学版), 2013, 43(增刊1):169-172(S1):169-172.

[2] 万中田, 冼钟业, 胡明宇,等. 基于Kalman预测器的多特征Camshift运动目标跟踪算法[J]. 武汉大学学报:工学版, 2015, 48(5):712-716.

[3] 袁伟, 王朝立, 张旭飞. 混合高斯模型与CamShift算法结合的台球跟踪方法[J]. 微型电脑应用, 2013, 29(2):10-12.

[4] 邬大鹏, 程卫平, 于盛林. 基于帧间差分和运动估计的Camshift目标跟踪算法[J]. 光电工程, 2010, 37(1):55-60.

[5] 张宇. 一种图像确认目标的多目标跟踪方法[J]. 电子测量与仪器学报, 2014, 28(6):617-624.

[6] 修春波, 魏世安. 显著性直方图模型的Camshift跟踪方法[J]. 光学精密工程, 2015, 23(6):1749-1757.

[7] 陈东彦, 余永龙, 胡军. 具有相关噪声和不确定观测系统的全局最优Kalman滤波[J]. 哈尔滨理工大学学报, 2015, 20(4):1-10.

[8] 张鹏, 李思岑, 杨燕翔. 融合边缘检测的四帧差分运动目标检测[J]. 电子技术与软件工程, 2014(20):106-107.

[9] 胡波, 陈恳, 徐建瑜,等. 基于Kalman预测和Mean-shift算法的视频目标跟踪[J]. 光电子:激光, 2009(11):1517-1522.

[10]杨明极, 范希冀, 于舒春. 基于三维混沌映射的HSV空间图像加密算法研究[J]. 哈尔滨理工大学学报, 2015, 20(6):103-106.

[11]贾茜, 谢勤岚, 董蓓. 基于TMS320DM642的实时运动目标检测与跟踪系统[J]. 计算机测量与控制, 2009, 17(3):469-471.

[12]柴华, 任洪娥, 张俊卿. 利用Sobel算子结合蚁群算法提取竹材的内外轮廓[J]. 哈尔滨理工大学学报, 2014, 19(1):54-58.

[13]莫林, 廖鹏, 刘勋. 一种基于背景减除与三帧差分的运动目标检测算法[J]. 微计算机信息, 2009, 25(12):274-276.

[14]白晓方, 杨卫, 陈佩珩. 一种改进的运动目标检测与跟踪方法[J]. 电视技术, 2014, 38(1):180-182.

[15]钟建冬, 苏剑波. 基于视觉预测的运动目标实时跟踪系统[J]. 机器人, 2010, 32(4):516-521.

[16]庾鹏, 王旭, 仝天乐,等. 基于GrabCut算法和四帧差分法的目标提取算法[J]. 微型机与应用, 2016, 35(11):40-42.

[17]纪青华, 禹素萍. 基于 Surendra背景减除法和四帧差分法的目标检测算法[J]. 计算机应用与软件, 2014(12):242-244.

[18]刘士荣, 孙凯, 张波涛,等. 基于改进Camshift算法的移动机器人运动目标跟踪[J]. 华中科技大学学报(自然科学版), 2011, 39(s2):223-226.

[19]杨玲, 甄志明, 刘国红,等. 基于多尺度边缘提取的薄雾图像处理方法[J]. 哈尔滨理工大学学报, 2014, 19(5):94-98.

[20]万琴, 王耀南. 基于卡尔曼滤波器的运动目标检测与跟踪[J]. 湖南大学学报(自然科學版), 2007, 34(3):36-40.