引言
随着科学技术的快速发展,计算机视觉的应用范围越来越广,深深地影响人类的生产和生活。目标检测与跟踪是计算机视觉的重要研究课题,其涉及到图像处理、人工智能以及模式识别等诸多领域。在无人驾驶、国防安全、智能视频监控、基于视频的人机交互等领域都有广泛的应用,因此研究此课题很有意义。
视频对象检测与跟踪技术[1]是计算机视觉中一个非常关键的技术,与之有联系的应用主要有:智能视频监控、基于视频的人机交互、智能机器人、医疗诊断中的应用。此外,目标跟踪在视觉控制[2]、国防安全[3]、农业自动化[4]、视觉重构[5]等领域均有应用。目标跟踪,即在一段视频图像中的每一帧图像中找到感兴趣的目标所处的位置。一个好的视频跟踪算法一般要满足两个基本要求:实时性强和鲁棒性强。
meanshift概念最早是由Fukunaga[6]等提出,基于Lindeberg提出的尺度空间理论[7]。Collins提出了一种改进的meanshift算法,弥补了在运动目标跟踪中核函数带宽不能实时变化的缺陷[8]。Zhao等简化Correlogram直方图,同时考虑了目标的三维信息,结合meanshift算法对运动目标进行跟踪[9]。Birchfield等提出一种空间直方图模型,该模型不仅考虑运动目标的颜色信息,同时考虑各个像素之间的空间位置关系。
基于传统meanshift算法,本文在融合目标信息的颜色模型和Contourlet变换后的纹理模型基础上,从多角度建立匹配特征,最终在特定的嵌入式平台上实现了该算法。实验结果显示,本文所提出的算法能够在嵌入式平台实现,而且在视频图像的目标跟踪中,与单一特征空间的目标模型相比,本算法具有更好的鲁棒性及有效性。
1颜色直方图的meanshift跟踪算法
1.1目标参考模型
设计假设目标区域有n个像素,X*i1…n为相对于目标区域中心位置在目标区域中各像素点的坐标,特征值bin的个数为m个,β=1,2,…,m为各直方图段数的索引值,则目标模型的核密度概率函数的颜色直方图可以用式(1)表示:
(1)
式中:k(·)是核函数;δ(·)是KroneckerΔ函数δ(·);b(X*i)是指示函数,指示像素点X*i所在直方图段数。定义如下所示:
(2)
函数b(·)和δ(·)的作用是判断像素X*i的颜色是否为输入特征β;归一化直方图即∑qβ=1,则得到归一化常数c,如下所示:
(3)
1.2候选目标模型
设Xii=1…nk是相对于以y为中心位置候选目标中各像素点的坐标,β=1,2,…,m是索引值,指示各直方图的段数。采用尺度为h的核函数k(x),则候选目标的核概率密度函数的颜色直方图如下所示:
(4)
同上,归一化常数ch如下所示:
(5)
1.3基于相似性函数的测度
目标候选模型和目标参考模型之间的相似程度可以通过相似函数来描述,两个模型的概率分布在理想情况下是相同的。通常使用Bhattacharyya系数作为相似性度量函数,用来描述候选模型和目标模型之间的相似程度,定义如下所示:
(6)
式中,ρ值为0~1,ρ值越大,表示目标模型和候选区域越相似。
1.4位置更新
当目标模型确定后,候选区域在当前帧内移动时,令其中心为y,则得到不同的Bhattacharyya系数ρ(y),跟踪目标的位置就在ρ(y)极大值处。令初始中心位置为y0,通过泰勒展开,ρ(y)可近似为:
(7)
其中:
(8)
式(7)中只有第二项含有y,根据均值平移理论可知,只要核函数k(·)是单调的并且函数的曲线是凸的,令g(·)=-k(·),则根据均值平移理论,该概率密度估计的极值点可以从y0处递归得到,计算得到新的目标位置y1为:
(9)
2改进meanshift算法
2.1Contourlet变换
Contourlet分解变换是通过两个步骤实现的:方向滤波器组(Directional filter bank, DFB)滤波和拉普拉斯金字塔(Laplacian pyramid, LP)分解。将方向滤波器和金字塔分解结合起来,就实现了Coutourlet变换,单独使用其中任何一步都不能很好地对图像进行描述。金字塔分解不具有方向性,对高频部分不能很好地分解;而方向滤波器对高频部分能很好地分解,但对低频部分不行。二者的结合可以很好地描述图像。
图像经过拉普拉斯塔形滤波器(LP)产生一个低通图像以及原图与低通逼近图之间的差值,也就是得到了该层分解后的低频子带和高频子带。方向滤波器组再对高频子带进行分解,则高频子带可被分解为2i个方向子带(i为任意正整数)。对低频子带重复上述过程,实现了对图像的多分辨率多方向分解。
2.2纹理模型
在基于Contourlet变换的算法中,一般用子带能量的均方差和平均值来表示分解后子带的纹理。为了降低计算复杂度,本文采用子带能量的平均值来提取各子带纹理特征,即:
(10)
式中,M和N分别为各子带系数的行列数,ai,j为Contourlet变换后各子带的系数,C为归一化因子,即满足下式:
(11)
式中,Nsb表示子带的个数。
进行2级Contourlet分解得到的13个子带分别用公式(11)对其进行纹理信息提取,得到建模区域的Contourlet变换后的纹理模型:
(12)
2.3信息融合的meanshift算法
求得颜色特征空间和小波纹理特征空间的目标模型后,对这两个模型加权融合得到联合特征空间的目标模型。
(13)
其中,pcβ(y)表示颜色模型,ptβ(y)表示纹理模型,α为调节因子,在0和1之间取值。根据跟踪目标的先验知识,若纹理信息多则取值大于0.5,否则小于0.5。
3目标跟踪算法实现
3.1嵌入式系统
随着智能手机、平板电脑、MP3等数码产品的广泛使用,嵌入式系统从工业控制领域的应用渗透到人类的生产生活中,从仪表仪器、制造工业到移动通信以及数码产品各个应用领域,研究嵌入式系统有广泛的应用意义。本节交叉编译基于颜色模型的meanshift目标跟踪算法和本文改进的meanshift算法,把编译成功后的二进制码传输到开发板上,比较算法的优缺点,同时为以后做基于嵌入式的视频图像检测与跟踪系统做铺垫。
本文使用的是由飞思卡尔开发的 i.MX53 Quick Start Board工程嵌入式平台,基于MCIMX535DVV1B,可以支持Linux/Android/WinCE等操作系统,采用CortexA8架构,可应用于多种嵌入式设计领域。平台的参数如表1所列。
3.2环境搭建
本文嵌入式的开发采用宿主机目标机的形式。宿主机里装有Windows XP和Linux双操作系统,通过串口、USB、以太网口与开发板相连。串口用来输出调式信息,通过USB烧写Bootloader、根文件系统,网口用来传输文件和挂载。开发环境硬件连接示意图如图1所示。
图1 硬件环境示意图
3.3目标跟踪算法实现
本节主要用C++语言编写基于颜色直方图的meanshift跟踪算法和本文提出的算法,然后用交叉编译工具链编译成开发平台可执行的二进制代码。
本文提出的算法的伪代码:
① 手动选取第一帧的跟踪区域。
② 分别建立目标区域纹理和颜色模型,然后建立目标区域的信息融合模型,如下所示:
(14)
③ 分别建立候选区域纹理和颜色模型,然后建立候选区域的信息融合模型,如下所示:
(15)
④ 迭代计算候选区域新位置。
⑤ 如果相似性函数递增,则继续执行下面的流程。否则,更新值,更新后的值变为新位置和旧位置的中点,跳转到步骤②,继续执行。
⑥ 如果新位置和旧位置的差的绝对值小于阀值,则收敛到最优点,即找到目标的质心。否则,更新值取新位置,跳转到步骤②,继续执行。
⑦ 收敛到最优点。
4实验结果与分析
本文的实验环境是基于CortexA8、主频1 GHz的嵌入式开发平台,平台上运行的系统是嵌入式Linux系统。实验所处理的视频是分辨率为128×96的彩色图像序列,是由斯坦福大学的实验室提供的,专门用于检测人脸跟踪算法的好坏。本实验视频共有50帧,含有人脸旋转、人脸不可见的情况。跟踪效果图如图2和图3所示。
图2 基于颜色模型的 meanshift跟踪效果图
图3 基于本文算法跟踪效果图
图2是基于颜色模型的 meanshift跟踪效果图,从图中可以看出,人脸姿态的变化引起视频跟踪结果的不准确,当人脸不可见时,跟踪目标丢失。图3是基于本文算法的结果截图,从图中可以看出,跟踪效果明显得到改善,始终可以很好地跟踪目标,这得益于加入的纹理模型。
由表2可以看出,本文提出的算法耗时稍微高于基于
颜色模型的meanshift的耗时,但是满足实时要求。