高 捷
(民航中南空管局 通信导航监视部,广州 510405)
E-mail:gaojie028@126.com
随着全球经济的快速增长,计算机分析与处理、电子产业等高新技术的快速发展,将计算机图形图像处理技术作为研究基础的复杂视频监控系统,目前已经快速地适用于人类现实生活中,而目标检测与跟踪研究是智能视频监控系统开发中必不可少的问题[1,2].运动目标跟踪,通过手动或者自动标记感兴趣的运动目标,通过建立该目标的颜色、边界、位置和角点等描述特征,然后在后续的每一帧视频帧上利用前述特征找到该目标的位置,从而找到目标的连续运动轨迹.大多数目标跟踪根据对运动目标特征的主流目标跟踪方法大致被划分为下面四类方法:利用点特征进行跟踪[3]、利用核函数进行跟踪[4]、利用团块进行跟踪[5]及利用特征进行跟踪[6].
基于点特征的跟踪方法是需要找到视频序列中一组特定的点集之内元素的相互间对应关系.然而点集内的点的对应问题却是相当复杂.当目标被遮挡、目标快速运动时,点元素的对应及点元素的舍弃都是复杂问题.其优点是对较小的运动目标跟踪效果较好,因为目标很小,简化为点来代替团块跟踪,缺点是不仅需要目标检测算法来做支撑,而且当目标物体尺度很大时,点代替目标就很不合理,以至于会把二维的信息几乎全部丢弃.基于核函数的跟踪方法是通过标记出来的初始模板和候选模板之间的直方图采用一定的度量方法.将其大致分为两类:基于密度的模型、基于多角度的模型[7].其中基于密度的目标描述和跟踪的过程计算量相对小,因此在图像分割和目标跟踪中都应用相当广泛;然而基于多角度的目标描述和跟踪的过程计算量相对较高,因此不适合在图像分割和目标跟踪中应用[8].基于团块的跟踪方法是利用特定的矩形或者椭圆标示并且跟踪目标,利用该团块的颜色信息、边缘信息以及图像的纹理信息作为后续的搜索目标的基础条件[9].文献[6]提及的基于特征的目标跟踪方法中常用的图像特征包括颜色直方图、目标边缘、角点特征等.其中这些特征中的角点特征由于可以包揽很多的目标的信息在目标跟踪中其应用相对广泛一些.
本文针对视频监控场景中运动目标种类多(行人、车辆及航空器等)、运动目标姿态特征多(快速运动的目标、场景中缓慢移动的目标及场景中逗留的目标等)的特点,提出了一种自适应双门限与KLT融合的目标跟踪方法.其基本思想是首先采用自适应双门限运动目标检测以获得高门限和低门限二值图像信息,同时将双门限二值图像信息与KLT目标特征点跟踪进行融合处理.如果KLT找到的特征点大部分在双门限目标的轮廓内,标记该轮廓为目标轮廓;否则,使用KLT特征点来确定目标的轮廓,最终实现场面不同环境中多类动目标体的可靠、准确跟踪.根据不同监控场景中行人、车辆及航空器等多类动目标体,利用本文算法与文献[6]方法分别验证了跟踪效果及性能.
首先利用原始视频图像的所有像素点(x,y)通过时间轴各自计算n帧视频序列之前该点的灰度值,同时计算其沿时间轴生成相应的灰度直方图Gray(x,y,0),Gray(x,y,1),… Gray(x,y,255),同时将沿时间轴计算获得的灰度直方图里频率生成最大的灰度值用于其像素点(x,y)最初的背景灰度值,如下统计公式:
Background(x,y)=MAX(Gray(x,y,0),…Gray(x,y,255))
(1)
通过以上公式,可知利用视频帧序列中前n帧计算图像序列中所有像素点的初始灰度值,获取初始的背景图像.
考虑到真实场景下背景会随着时间的推移而变化造成初始背景的不断改变,需对背景图像做更新处理.本文根据视频序列中缓冲帧机制进行背景更新的方法,把原始视频序列导入到缓冲帧中,利用缓冲帧具有屏蔽过滤及中间缓冲的功能.再进行快速计算,从而实现背景图像不断的匹配和更新,如图1所示为本文背景匹配更新的结构图.该计算流程简单、快速,同时能解决因短暂停留目标导致背景图像噪声多的影响,满足背景图像实时、可靠的更新过程.
图1 背景图像的更新结构图
引入缓冲帧机制对背景进行匹配和更新策略,主要分为如下实时视频序列缓冲帧的更新过程、匹配过程、背景图像的修正和更新过程三个方面.
1)实时视频序列缓冲帧的更新过程:首先将初始缓冲帧Q0(x,y)及初始背景模型B0(x,y)引入初始背景图像.同时在后续的实时视频监视中,缓冲帧会利用视频帧序列中具有的图像信息通过迭代的方式进行统计,从而根据监视环境的变化而不断改变.其迭代更新公式为:
QT(x,y)=QT-1(x,y)+α*sgn[LT(x,y)-QT-1(x,y)]
(2)
其中,QT(x,y)表示实时视频序列图像上像素点(x,y)中缓冲帧的灰度值,QT-1(x,y)表示在T-1时刻视频图像上像素点(x,y)中缓冲帧的灰度值;LT(x,y)表示实时视频序列图像上像素点(x,y)的灰度值.α表示参数变量,由以下公式决定:
(3)
2)匹配过程:在获得实时视频帧序列后,采用实时视频帧序列对缓冲帧中的所以像素点做匹配和标记处理.当|LT(x,y)-QT(x,y)|<=1成立时,标记该像素点匹配成功;如果不成立,剔除该像素点.
3)背景图像的修正和更新过程:利用步骤2)完成匹配后,标记完成缓冲帧中所有像素点,下面采用标记的像素点来更新当前的背景图像,其计算过程如下:
BT(x,y)=BT-1(x,y)+β*sgn[QT(x,y)-BT-1(x,y)]
(4)
式中,BT(x,y)表示在T时刻获得的背景图像,BT-1(x,y)表示在T-1时刻获得的背景图像,QT(x,y)表示实时视频序列缓冲帧中标记成功后像素点的灰度值.β表示参数变量,由以下公式决定:
(5)
采用不同监控场景下具有的实时图像信息进行背景图像的不断更新,从而过滤短暂停留的目标和慢动目标给背景图像带来的干扰和噪声,以保证提取到干净的背景图像.
结合上述的视频帧序列中引入缓冲帧机制进行背景不断更新的基础上,获得鲁棒性较好的背景图像,接下来的目标检测算法对于简单进行背景图像与前景图像差分中门限值获取尤为重要.本文通过自适应门限值统计方法来解决差分阈值选取难的问题,提出了基于自适应双门限的目标检测方法如图2所示,其主要实现步骤如下:
1)通过获取不同监视场景下的实时视频帧序列,提取初始背景图像,然后引入实时视频帧中缓冲帧机制对背景图像进行不断更新;
2)将实时视频帧序列图像与更新提取的背景图像做差二值化处理,从而得到灰度差分图像;
3)统计并计算步骤2)中灰度差分图像的均值V及标准方差θ;
4)根据步骤3)计算出的数值,可建立公式计算高门限值MH及低门限值ML:
ML=V+4θ
(6)
MH=M+10θ
(7)
5)根据式(6)、式(7)分别计算出高门限值和低门限值,同时进行二值化处理获得动目标体的大致前景区域;
6)将二值化前景图像采用腐蚀和膨胀处理以剔除噪声干扰;
7)统计高门限二值图像里目标块面积R>RTH的所有像素区域,将其划分为RHI;
8)统计高门限二值图像里所有RHI对应的低门限二值图像块中像素面积R>RTL的所有像素区域,将其划分为RLI;
9)计算同一目标在实时视频帧图像中持续出现的次数y,同时将计算出的次数y与固定阈值G做比较.假如y≥G,那么此目标块是前景目标,否则为噪声目标,将其剔除.
图2 双门限二值化信息获取流程图
根据上述自适应的双门限运动目标检测方法来完成复杂监控场景下运动目标精确检测之后,针对运动目标种类多(行人、车辆及航空器等)、运动目标姿态特征多(快速运动的目标、场景中缓慢移动的目标及场景中逗留的目标等)的特点,采用基于特征点的KLT(Kanade-Lucas-Tomasi)[10,11]跟踪方法来解决场景中运动目标的持续稳定跟踪.
计算灰度图像中像素点A在x,y方向处的梯度值:
x=A⊗(-1,0,1)=∂A/∂x
(8)
y=A⊗(-1,0,1)T=∂A/∂y
(9)
(10)
Z=det(P)-k*trace2(P)>T
(11)
其中,det(P)是矩阵P的两个特征值积,trace(P)是矩阵N 的两个特征值和,T为固定阈值,k为常数,其取值0.04~0.06.当该点Z值大于阈值T时,判定为角点.
针对以上通过Harris提取出待跟踪的特征点,并在亮度不变的情况下,定义一个以该特征点为中心的跟踪小区域V,在t时刻的灰度图像中像素点为G(x,y,t),其中,x,y为该特征点的坐标.该跟踪小区域内的像素点G(x,y,t)可通过之前时刻灰度图像中跟踪小窗口内的每个像素进行相应位移变化关系得到,其式如下:
G(x,y,t)=G(x+sx,y+sy,t+θ)
(12)
式中,sx,sy表示像素点位移的变化,θ表示时间变化,设s=(sx,sy)为像素点的平移变化关系,KLT算法就是求解位移变化量s,从而对选定特征点区域跟踪.
对于像素点为中心的窗口W,结合式(12),可计算出像素点平移过程中带来的误差量φ,其表达式为:
(13)
把G(x+sx,y+sy,t+θ)进行一阶泰勒级数展开,然后带入式(13)中,并令误差量φ的微分等于0,可得到
V*s=e
(14)
s=V-1*e
(15)
针对以上的KLT跟踪算法的计算步骤推导,其实现步骤如下:
1)通过Harris角点检测算法检测第一帧视频图像中运动目标的特征点,并读取特征点的横坐标和纵坐标;
2)利用局部非极大值抑制的方法筛选出比较稳定的特征点,并在每15帧视频图像序列进行特征点的提取更新(即重复步骤1)-步骤2));
3)利用挑选出来的稳定特征点当做运动目标的待跟踪点,并利用KLT算法跟踪式子计算出两帧图像的一系列位移信息对(位移量);
4)通过位移量求平均值的方法得到两帧视频图像中特征点的位移值,最终实现目标跟踪.
综上所述,本文采用的运动目标跟踪主要是Harris角点检测算法和KLT跟踪算法两大主要的部分构成.针对室外视频监视场景下场景背景是固定不变的特定场景应用,并通过自适应双门限的运动目标检测方法进行了前景目标区域的精确检测,因此采用KLT跟踪算法会取得良好的跟踪精度和跟踪效率.然而,在实际应用中KLT跟踪算法在运动目标进行跟踪时也可能带来目标跟踪的漂移现象.
本文考虑到如果直接采用KLT跟踪算法来跟踪Harris角点检测算法检测出来的特征点会带来一些问题:在用双门限检测出目标后就交由KLT算法进行跟踪,由于噪声、目标圈定时同时圈定了部分背景等原因,在不进行其他任何干预的条件下,目标的特征点会出现漂移甚至跟踪丢失.在场景复杂条件下进行初步测试结果可知,对于某些运动目标,KLT跟踪算法只能够正确的跟踪几帧视频图像中的目标,而不能达到持续稳定的跟踪效果,最终出现目标跟踪的丢失及错误跟踪的现象.因此,通过实验分析,总结得出下面的一系列错误跟踪的情况,如图3所示.
图3 目标跟踪出现的漂移现象图
1)目标范围被标定太小:这是由于KLT跟踪算法使用的特征检测只能够检测到一部分运动物体某部分的特征所致.在这种情况下,由于目标中稳定特征点的存在,基本上可以长时间的跟踪目标.但是,在跟踪过程中KLT算法圈定的目标逐渐变小,直至消失,最终出现丢失目标的情况;
2)目标范围被标定过大:只是由于KLT算法提取到了背景中的某些特征信息.这种情况下会导致圈定的目标范围越来越大,导致跟踪过程中KLT算法计算圈定的目标逐渐变大,直至跟踪到一个特征点丰富的区域(此区域有可能不包含正确的目标),最终也出现丢失目标的情况;
3)跟踪过程中KLT跟踪算法只是稳定圈定了部分目标.显然,如果漂移点超过一定的数量时,将会给以后在连续视频图像序列帧之间的位移变化关系的计算上带来一定的误差.而且,随着目标跟踪的不断持续,漂移带来的累积误差将会逐渐增大,加之跟踪点的丢失,最终导致目标跟踪失败的出现.分析得出的主要原因被归纳为以下几点:
1)由于双门限检测方法检测目标的依据是通过时域滤波的原理,若双门限检测到的候选目标在视频图像中连续出现的次数大于某个设定门限值就认为是正确的目标,但是并没有考虑到每次是否精确的圈定目标,这造成有可能在交给KLT算法跟踪时目标就没有被正确圈定.特别是对于缓慢变化的目标,背景提取算法万一将其某部分识别为背景,从而导致正确识别到了部分目标或是将本来不是目标的区域识别为目标;
2)由于出现KLT算法在跟踪目标上的正确特征点数目不够,就会导致目标的某部分区域没有提取出相应的特征点,从而在跟踪的时候这部分区域被错误的识别为背景,最终被逐渐地忽略掉;
3)由于该KLT算法易受跟踪到的错误特征点影响.主要是识别出多个上一帧圈定目标范围内非目标区域的特征点.
针对KLT算法在跟踪过程中出现的漂移问题,通过低门限背景二值图像的信息进行处理相结合,最终可以取得比较有效的目标跟踪效果,本论文采用以下方法来解决以上的问题,其主要步骤如下:
1)结合双门限二值图像的信息来进行目标跟踪.由于双门限方法的计算量小,对动目标提取较为准确,于是考虑在目标丢失时才使用KLT算法进行跟踪.
2)使用KLT特征提取方法确定有效的特征点及其匹配;
3)计算低门限二值化后图像中的目标轮廓;
4)基于KLT特征点和双门限目标检测的联合跟踪.如果KLT算法找到的特征点大部分在双门限目标的轮廓内,标记该轮廓为目标轮廓;否则,使用KLT特征点来决定目标的轮廓.
搭建测试验证实验的硬件环境CPU:Intel 至强 银牌4114 @ 2.20GHz;内存:16G;Win10 64位操作系统,程序编译软件:Microsoft Visual Studio 2015;库文件:OpenCV4.1.2.本次实验采集的测试录像分别采集了一段时间的学校路口、路口停车场(分辨率均为320×240@25fps)及机场空侧区(分辨率为1280×720@25fps).针对不同监视场景进行了文献[6]方法(KLT特征点跟踪)和本文运动目标跟踪算法的测试与对比.
图4 行人跟踪测试对比效果图
图4为某校内截取的视频监控图像,本实验是对单个行人分别进行两种目标跟踪算法的测试与对比结果.图4中分别提取了监控视频图像序列中的第120、150、165、172帧图像进行处理,行人目标的运动轨迹是由近至远行走的.图4(a)为文献[6]方法对行人的跟踪效果,刚开始跟踪时还是能够圈定运动目标,随着目标越来越小,目标特征点不是很明显,其稳定性也不断下降,以至于出现跟踪失效的情况.图4(b)由于结合了Harris角点算法来检测特征点,本文跟踪算法不仅准确的定位目标,而且能够稳定进行跟踪.表1为图4中行人的定位信息表,将圈定目标所绘的矩形框的中心位置作为行人定位的位置(把视频图像左上角的位置当做坐标的原点),表1中数据可知,本文跟踪方法在目标定位准确性上比文献[6]跟踪方法更好.
表1 行人跟踪的定位信息对比
Table 1 Comparison locating information of pedestrian tracking
帧数真实位置文献[6]方法本文跟踪方法文献[6]误差/像素本文误差/像素120(162,144)(160,146)(161,143)2.82841.4142150(142,103)(145,98)(143,101)5.83102.2361165(135,90)(129,95)(134,91)7.81021.4142172(129,81)无(128,83)100.00002.2361
图5 行人跟踪精度对比图
图5为实验截取的上述行人监视视频图像中135帧视频图像序列进行的跟踪轨迹测试对比,可以明显看出两种跟踪方法在测试中行人轨迹与行人真实轨迹之间的偏差大小,由图5可知,本文跟踪方法获得的跟踪轨迹相对误差比较稳定.
图6 车辆跟踪测试对比效果图
接下来,图6为车辆监控视频图像进行两种跟踪方法测试.分别提取出第121、142、160、182帧的跟踪效果图,目标车辆行驶轨迹为前景-转弯-停车的过程.图6(a)为文献[6]方法对黑色车辆进行跟踪的结果;图6(b)为本文跟踪方法对黑色车辆进行跟踪的结果.从这段视频的跟踪效果上不能直观的分辨出两种跟踪算法的优劣.表2为图6中黑色车辆的定位信息表,由表2可知,本文跟踪算法在跟踪进度上还是略好于文献[6]方法.
表2 车辆跟踪的定位信息对比
Table 2 Comparison locating information of vehicle tracking
帧数真实位置文献[6]方法本文跟踪方法文献[6]误差/像素本文误差/像素121(56,128)(57,127)(57,127)1.41421.4142142(155,112)(153,114)(154,113)2.82841.4142160(165,110)(163,113)(164,112)3.60562.2361182(182,75)(183,78)(183,74)3.16231.4142
最后,为了进一步验证本文跟踪方法的自适应性和稳定性,针对机场复杂天气情况下的运动目标进行本文跟踪方法的测试.图7(a)为天气晴朗下机场航空器跟踪结果(帧数从左到右从上到下分别为:50帧、94帧、106帧),图7(b)为雾天低能见度状况下机场航空器跟踪结果(帧数从左到右从上到下分别为:220帧、403帧、421帧).通过在复杂天气情况下对机场航空器进行的跟踪实验可知,本文跟踪方法能够在晴天以及天气能见度较低的情况下,实现比较稳定的跟踪效果,在一定程度上满足了实际应用的需求.
图7 复杂天气条件下航空器跟踪效果图
本文通过在不同监视场景下,对行人、车辆和航空器等多类动目标体进行运动目标跟踪研究,提出了一种自适应双门限与KLT融合的目标跟踪方法.该方法首先采用自适应双门限运动目标检测获得高门限和低门限二值图像信息,同时将双门限二值图像信息与KLT目标特征点跟踪进行融合处理.如果KLT找到的特征点大部分在双门限目标的轮廓内,标记该轮廓为目标轮廓;否则,使用KLT特征点来确定目标的轮廓,最终实现场面复杂环境下运动目标的持续、准确跟踪.通过实验验证了本文跟踪方法可解决跟踪过程出现的漂移问题,对目标可进行稳定可靠跟踪,同时对低能见度天气下具备一定的适应性.
在下一步的研究中,重点针对复杂监视场景中多类目标同时跟踪、目标运动遮挡及基于深度学习的目标跟踪算法展开进一步研究和探索,以满足在实际生活中数字化、网络化及智能化实时视频监控系统[12-14]的需要.