特征点跟踪(共7篇)
特征点跟踪 篇1
0 引 言
人脸跟踪领域是计算机视觉中的研究热点,多目标人脸跟踪是新闻摄像、视频监控、人机交互等领域的关键技术。首先广泛使用的人脸跟踪方法是由Fukunaga[1]等人提出的Meanshif跟踪方法,其是一种基于肤色信息的方法,张涛[2]在此基础上提出了使用序贯跟踪方法的改进Meanshift算法,完成了多目标人脸跟踪,但其仍然没有有效解决背景色与人脸颜色相近时的误匹配问题和多人脸重叠问题。其次是通过直接对脸部几何特征进行检测的方法,例如徐建军[3]设计了结合Gabor纹理和颜色特征的Adaboost方法,该方法依赖于获得大量的训练好的分类器,其次对于在类似于门禁系统等存在大量非合作跟踪的场合,成功率较低。最后,Wang[4]通过融合人脸检测器、运动跟踪器和颜色跟踪器,并结合Kalman滤波器来构建用于多人脸跟踪的系统框架,取得了较好的跟踪效果,但是算法实现复杂。传统KLT算法[5],是由史[6]提出的特征点提取方法和KLT匹配算法相结合的方法。国内外利用该方法实现了运动车辆跟踪、单目标人脸跟踪[7]和人脸表情识别[8]等特征点跟踪的应用。近几年,人们对传统KLT算法提出了不少改进,刘玉[9]等创新性的提出了一种将改进的SIFT特征点提取方法与KLT匹配算法相结合跟踪算法,获得了更高的鲁棒性和定位精度。
文献[7]中使用传统KLT算法完成单目标人脸跟踪,其首先使用KLT特征点提取方法,提取人脸区域中的特征点,其次使用由KLT匹配算法实现的人脸跟踪器完成跟踪。但由于KLT算子提取的特征点容易丢失、匹配精度不高等问题,本文提出了一种将SURF特征点提取方法与KLT匹配算法结合的方法,以获取更高的精度的运动信息和跟踪成功率,并将通过并联多个独立的人脸跟踪器,创新性地设计了一种多目标情况下的人脸跟踪系统。
1 多人脸跟踪方法
1. 1 SURF 特征点提取算法
SURF特征点提取方法是SIFT算法的改进,由Bay[10]等人于2006年提出。由于其在光照变换和视角变化不变性方面的性能较好,对图像严重模糊和图像旋转均有较好效果,被认为是最具鲁棒性的局部特征算法。对特征点的提取是在检测到的目标人脸区域内进行,由Adaboost人脸检测方法[11]快速地获取图像中每个人脸区域的位置信息和大小信息。
SURF算法提取特征点的主要步骤如下:
( 1) 生成尺度空间金字塔
SURF算法用方框滤波的方法来近似SIFT算法中的二阶高斯函数所构建的多尺度空间,然后不断地与原始图像进行卷积操作。方框滤波是带权重的,直接通过扩大方框的大小来形成多尺度空间金字塔,其每一个下层是通过不断增大的模板滤波然后与图像进行卷积操作得到。
( 2) 确定候选极值点
在尺度空间金字塔建立后,就可以快速求取特定尺度下的局部极值。Hessian矩阵一般公式如式( 1) 所示,在尺度σ下,可将Hessian矩阵重新定义为式( 2) ,经过滤波后,某一尺度上,某一像素点是否为兴趣点,Bay等人通过一个逼近det( H) 的式( 3) 来判别,从而获得单一尺度上的兴趣点。通过以上获得的兴趣点,需要与其所在的多尺度空间的3×3×3立体邻域内的26点进行比较,如果是局部极大或极小值点,则识别为候选特征点。
相比于仅考虑角点信息的KLT特征点提取方法方法,在尺度空间下提取的SURF点,充分利用图像局部特征,对旋转、尺寸缩放、亮度变化具有较好的不变性,更适合于人物多姿态下的人脸跟踪。在提取时间上,SURF算子耗时更短。
1. 2 KLT 匹配算法
基于特征点的运动目标跟踪,其本质就是依据某个相似性度量标准,寻求前后两帧的特征点集的对应关系和空间映射关系。特征点匹配一般基于灰度特征,通常情况下用特征点以及周围邻域的像素点所构成的特征窗口来表征一个特征点的灰度特征。
KLT特征匹配方法[12]是一种以SSD为度量的最优估计匹配方法,设t时刻对应的图像帧表示I( x,y,t) ,t + τ刻对应的图像帧表示I( x,y,t + τ) ,在一定条件下,它满足灰度守恒定律。假设两幅跟踪图像I( X) 和J( X) ,特征点X( x,y) 的位移为d =( dx,dy) ,定义ε为:
这里W是给定的特征窗口,ω( X) 是窗口加权函数,一般设为1,也可设为高斯函数以强调特征窗口的中心区域。为了使ε最小化,将J( X + d) 泰勒展开,保留前两项,令g是泰勒展开的一阶泰勒系数,并对变换后的ε两边对d求导,当导数为0时,ε取得最小值,即SSD最小,如式( 5) :
对于连续两帧灰度图,对式( 5) 求解得到特征点的位移d,由于式( 5) 在泰勒展开阶段中引入了误差,通过Newton-Raphso迭代求d消除误差,式( 6) :
迭代计算的初始值d0设为0,为了提高匹配的精度和速度,dk表示第k次牛顿迭代计算得到的位移,则本文迭代匹配的终止条件为水平位移或垂直位移的迭代增量小于0. 1,迭代次数不超过10。
1. 3 多人脸跟踪系统
在该跟踪系统框架中,由每个人脸区域提取的SURF点所构建的特征点集,来表征一个目标人脸。每个人脸单独提取的特征点集之间不存在关联性,所以多目标人脸之间的干扰能够有效降低。跟踪系统使用的人脸跟踪方法由SURF特征点提取算法和KLT特匹配算法两部分组成。人脸跟踪器为KLT匹配算法实现,已经用于完成单目标下人脸跟踪。
为了减少匹配时间和提高匹配精度,文献[7,8]中的传统KLT算法中使用了图像金字塔方法[13]来完成特征点跟踪,其在人脸跟踪器内部构建对应的图像金字塔来完成快速而精确的亚像素跟踪,而构建金字塔本身就是一个非常耗时的工作,对存储资源也是巨大挑战,放弃金字塔技术对特征点匹配跟踪影响甚大。针对这一矛盾,本文提出了多个跟踪器共用同一图像金字塔的策略,即将图像金字塔将放在人脸跟踪器外部构建,针对单帧的跟踪只需构建一次图像金字塔,且多人脸跟踪系统中的多个单独人脸跟踪器将共用该金字塔来完成跟踪。
在实际人脸跟踪场景中,多个人脸目标的运动相互独立,可以并联多个独立的目标人脸跟踪器来完成跟踪。系统流程如图1所示。
该系统执行流程:
Step1通过人脸检测Adaboost算法检测人脸区域,获取各人脸区域位置、大小信息。
Step2通过使用SURF提取算法分别在各个人脸区域内提取各人脸的特征点集。
Step3读取后续帧,构建金字塔,针对每个人脸的特征点集,分别利用人脸跟踪器进行亚像素级的分层迭代跟踪。保留跟踪成功后的人脸位置信息。
Step4如果存在下一帧,继续执行Step3,否则结束。
引入图像金字塔技术的KLT匹配算法,通过分层迭代由粗到细地实现特征点匹配。根据Bouguet的金字塔理论[14],依据实验素材中特征点运动情况,设定实验参数如下: 特征窗口大小为7和搜索半径大小15,采样率设为4,金字塔层数设为2。图2为金字塔迭代匹配跟踪示意图。
2 实验结果与分析
实验平台: CPU为酷睿E5200,2. 5 GHz,内存为2 GB,操作系统为Windows XP SP3。软件测试平台: Visual Studio 2008,程序语言选用C ++ 。
本文使用AVSS2007[15]的Single face dataset和Multiplefaces dataset进行实验,帧大小720×576。因为多人脸跟踪系统为本文跟踪方法具体实现,其精度和成功率,直接依赖于本文跟踪方法的性能,首先使用Single face dataset视频库测试其他跟踪方法如Mean Shift算法、传统KLT算法和本文方法,在单目标情况下跟踪成功率和跟踪精度,以及验证跟踪系统在光照不充分、较大尺度缩放和旋转的复杂环境下的性能。其次选用Multiple faces dataset视频库测试多人脸跟踪系统在多目标干扰及局部遮挡下的跟踪效果。注: 下面各图中白色点为SURF点,Frame X( Y) 表示X帧中剩余特征点个数Y。
2. 1 多人脸跟踪系统在单目标情况下实验分析
针对motinas_toni视频中的120个连续帧分别使用3种跟踪方法,图3( a) 使用Meanshift方法,在已检测到的人脸区域中心为初始圆心,经过多次实验,以半径为40的样本区域取得较好跟踪,即便如此,在第50帧时开始出现了偏移,第57帧时彻底离开人脸区域,跟踪失败主要是书架背景色与人脸颜色相近,造成的干扰导致。图3( b) 、( c) 是在motinas_toni首帧检测到的人脸区域内分别提取7个最优的KLT点和SURF点后,使用相同参数的人脸跟踪器进行跟踪,发现在第13帧时跟踪使用的KLT点开始丢失了,而SURF点在第108帧人脸左转情况下才开始丢失了左脸上的特征点,这说明相比KLT点,SRUF点更具有稳定性。表1为基于motinas_toni视频的3种跟踪方法抽样数据,参照于数据库的Groundtruth值,我们对比了3种方法获取的运动位移信息。表2为多组实验中3种跟踪算法的成功率和误差率对比。
由于本文相对于传统KLT算法,只改进了特征点提取部分,因此我们分别对SURF算子和KLT算子在提取相同数目特征点时的耗时情况进行统计分析,使用数据库中3个视频首帧内人脸区域进行了特征点提取,实验数据见图4所示,SURF算子的提取时间明显优于KLT算子。
图5取数据库中motinas_nikola_dark视频,该视频在光照不充分、人脸大尺度缩放情况下拍摄,通过人脸区域内的2个SURF点,仍能够对人脸实现稳定跟踪。在该部分连续帧中,目标人物在摄像机前快速变换多种姿态和尺度缩放: 向右移动,人脸旋转、向左移动、向摄像机方向移动、快速远离摄像机。
2. 2 多人脸跟踪系统在多目标情况下实验分析
图6为多人脸跟踪系统对motinas_multi_face_fast视频中多个目标进行同时人脸跟踪的实验结果,人脸框由人脸检测部分选定,并随特征点的移动而移动,少部分特征点的遮挡或者丢失,并不会直接导致跟踪失败,大部分跟踪算法在图6( b) 人脸局部遮挡、黏连靠近时,往往会导致跟踪失败,在图6( c) 中,最右边人脸鼻部SRUF点由于始终没有被遮挡,多目标人脸跟踪系统仍能成功跟踪最右目标,有效延长了跟踪时间。
实验过程中,我们发现虽然SURF点具有较强的鲁棒性,但是仍然存在一些特征点跟踪的本质缺陷,首先,对于弯曲形变过快和像素模糊的人脸,进行点提 取和跟踪 的效果不 佳,例motinas_emilio_webcam视频,出现了较快的人脸扭曲,这种情况使用基于颜色的跟踪方法能获得更好的效果。其次,对于遮挡和背身旋转问题,特征点跟踪方法能够在局部遮挡情形下,有效延长跟踪时间和提高跟踪精度。国内外研究特征点跟踪正在朝着点轨迹分析[16]方向发展,即加上时间轴构建3维点轨迹信息,通过分析连续时间段内的特征点点轨迹规律,能够有效解决全遮挡、背身旋转、运动预测等问题。本文提出的特征点跟踪算法,仍是获取点轨迹的有效途径。
3 结 语
本文针对多目标情况下的多人脸跟踪问题,使用了一种结合SURF算法和KLT匹配算法的特征点跟踪方法,该方法首先对多个目标人脸分别提取鲁棒性强的SRUF点集,针对每个人脸使用人脸跟踪器进行独立地跟踪,通过融合该方法,设计了一个多人脸跟踪系统。实验结果表明: 该跟踪方法比传统KLT算法和Meanshift算法具有更好的鲁棒性,更加准确的位移信息,且其特征点提取部分耗时更短; 其次,由于使用了SURF特征点来描述人脸信息,其能够很好地保证点跟踪在目标姿态及尺度大小变化和复杂背景下的稳定跟踪; 最后,在多目标下的场景中多人脸跟踪系统能够实现多个人脸的有效跟踪。
目标跟踪中的特征研究 篇2
所谓目标的跟踪, 就是从视频中或者观测到的图像中, 根据他的特征, 获取背景中感兴趣的区域, 对其特征进行描述, 然后根据特征匹配去跟踪目标。目标特征研究的流程为:读取视频、混合高斯模型检测前景、进行图像预处理、研究目标大小以及研究目标的颜色。
2目标检测
混合高斯模型使用K个高斯模型来表征图像中各个像素点的特征, 如果新一帧图像所获得后更新混合高斯模型, 最后用当前生成的图像中的每个像素点与所建立的混合高斯模型匹配, 如果成功那么就判定该点为背景点, 反之是前景点。
单分布高斯背景模型表示, 对于一个生成背景图像, 其特定的像素亮度分布必满足其特定的高斯分布, 即对背景图像A, (x, y) 点的亮度满足:
就可以认为 (x, y) 是背景点, 反之是前景点。根据时间的变化背景图像也会慢慢的发生变化, 故要不间断地更新图像的像素点的个数。
3研究运动目标特征
打印出目标每一帧的运动情况, 可以通过目标框左上角的位置以及目标框的宽度和高度来描绘目标的大小, 可以通过数据得到框的大小a。由于目标的移动很平缓, 所以框的大小波动性很小, 这样可以得到目标框大小的平均值, 如果在a左右, 即是检测到的目标框。以下是得到的数据表:
从上面的数据可以得到, X的大小变化为变小, Y的变化不一定变大, 而框的宽度和高度则没有明显的变化趋势, 通过对上面的数据得到目标是向左下方移动, 可以得出框的宽度大小的平均值为49.7, 框的高度的大小的平均值为73.8, 即取出框的中心点的位置, 与下一目标框进行距离匹配, 根据上面方差公式, 得出目标框宽度的方差为4.81, 框的高度的方差为2.76, 目标在移动时候总体趋于稳定。如果检测到的目标框比求出的平均值要小, 即检测到的目标框不是目标, 反之即删除相应的目标框和目标。
研究目标特征, 就是分析目标所表现出来的特性。首先分析目标颜色信息, 可以用MATLAB来画出颜色直方图, H代表色调, V代表亮度, N代表像素个数。其中把H (0~360) 划分9个等级, 其中颜色信息为0~7, 但是要注意的是, Open CV里面是把色调范围规定在0~180, 每一个数字对应的是不同的颜色信息, 而8为灰度信息, 把V (0~1) 划分8个等级, 从1~8亮度信息明显。核心代码如下:
这是通过目标容器每一帧运行中提取数据出来的结果。可以在直方图中取出几组数据, 看是否稳定, 这里10帧的数据, 可以算出在某一色调亮度下的像素个数, 算出其平均值和方差, 选取 (4, 2) , (7, 4) 这几组数据来说明, 主要是由于目标的颜色信息主要是红色和青蓝色为主, 以下为它们的信息表:
通过以上公式以及表格中的数据, 第一组直方图可以得出 (4, 2) 青蓝色的像素个数的平均值为0.02974, 方差大小为1.33×10-5, 这方差非常小, 说明这点为目标上的颜色信息。同理 (7, 4) 品红色也可以作为目标稳定的颜色特征。而 (4, 2) 蓝青色的点的像素个数在十帧的波动范围为0.0221~0.0341, 即如果下一帧得到的目标框内的颜色信息为蓝青色的像素个数在这个范围之内, 那么就可以根据这一特征进行目标跟踪。同理符合实际情况。
从整体来看, 以上数据都趋于稳定, 可以不考虑在区间之外的值, 即可能因为由于人的移动导致背景移动, 或者是人的姿势的变化导致像素个数的变化, 但总体趋于稳定, 故这几组数据可以用来实现目标的跟踪。经过试验证明, 本方法能基本满足要求, 但是还有很多的缺陷。由于视频像素比较清晰和拍摄者的抖动, 导致了产生了不该有的目标框, 但是经过图像的预处理过后, 能解决这些干扰情况。总的来说, 本方法能够比较准确的跟踪目标, 具有实验结果的准确性和稳定性, 并且可以通过研究到的特征, 进行运动物体的跟踪。
参考文献
[1]杨章伟, 等, 编.21天学通Visual C++[M].北京:电子工业出版社, 2009.
[2]布拉德斯基, 克勒.研究Open CV (中文版) [M].于仕琪, 刘瑞祯, 译.北京:清华大学出版社, 2009, 10:1-16, 351-355.
[3]刘慧颖.MATLAB2006a基础教程[M].北京:清华大学出版社, 2007.
[4]姚敏.数字图像处理[M].北京:机械工业出版社, 2006:1-87.
[5][美]冈萨雷斯, 等.数字图像处理[M].北京:电子工业出版社, 2009-12.
[6]魏亮, 李春葆, 编.Visual C++程序设计例学与实践[M].北京:清华大学出版社, 2006.
[7]向世明.visual c++数字图象与图形处理[M].北京:电子工业出版社, 2005.
特征点跟踪 篇3
目前目标跟踪算法可以分为两类: (1) 基于模型的方法, 如模板匹配、图像分割和活动轮廓法[1]。以Mean Shift算法和Snake算法为代表, 其中Mean Shift以目标颜色进行建模, 具有较好的实时性和跟踪性能, 但目标颜色与背景颜色接近时跟踪失败;Snake算法基于目标轮廓进行跟踪, 受目标初始形状和位置影响较大, 计算量大不适合实时操作。 (2) 基于运动的方法, 如光流法和特特征点法[1], 现有的基于特征点跟踪算以目标的质心或任意特征点实现对目标的跟踪, 在处理多目标跟踪时效果较差[2]。
本文提出了将检测区按32×32像素点进行分割, 以图像序列多状态转移综合判定前景目标和背景的情况, 完成背景的提取与更新;基于运动的方法, 提出利用目标的亮度和颜色信息, 以及在图像序列中的相对位置来构建代价函数的算法, 进行目标特征匹配与跟踪, 改善多目标情况下的跟踪性能。以商场客流统计为例, 从人体目标运动检测、特征匹配跟踪和计数三方面展开论述。
1 人体运动检测
在客流量统计中运动目标检测有获取目标在场景中的位置信息及获取目标尽可能多的特征信息两个任务。
商场客流统计摄像头常安装于出入口正上方垂直向下摄取图像, 属于静止背景的目标识别, 常用算法有帧间差分法、背景差分法和光流法。
1.1 帧间差分法
帧差法具有运算量小、对光照和阴影等外界因素不敏感的优点。但其缺点也非常明显:无法检测出静止或移动速度缓慢的目标, 相反在目标移动较快时, 检测出来的目标又远大于实际目标;亮度、颜色等特征单一的目标在差分运算后将形成较大的空洞, 造成差分结果不连通, 即便进行图像的膨胀和腐蚀等形态学方面的处理, 也不能消除空洞的影响。图1所示为相邻两帧差分结果信息相对丰富, 而图2 (a) 中目标信息单一, 图2 (b) 差分结果只有目标轮廓, 采用参考文献[3]等改进的差分算法对运动目标进行提取, 结果如图2 (c) 所示。
1.2 背景分块更新算法
背景差与帧间差相比, 检测出的目标内部区域不会出现较大的空洞, 可以将目标完整提取出来, 获取丰富的特征信息, 便于目标的匹配跟踪。
常用的方法包括基于卡尔曼滤波模型、基于高斯背景模型和基于简单概率统计的方法等, 前两种方法实现过程较为复杂, 且算法的实现对硬件要求高。第三种方法在没有运动目标长时间滞留的情况下效果较好, 且运算量不大, 符合实时性要求;在实际应用中, 由于天气、光照等外界条件的变化, 或目标长时间滞留, 影响了背景的准确更新, 由此可能会得到虚假的运动目标, 从而造成误判。
基于概率统计的背景更新方法, 常以一段时间内序列帧图像每个像素做差分运算, 满足预设条件, 则进行背景更新[4]。如图3所示, 按32×32像素大小将检测区域进行分割, 对每个分块图像按照图4所示将其分成初始状态Status0, 当三帧差结果判定图像无前景目标和干扰时, 进入Status1取背景数据BG1;在该状态若有前景目标运动, 则进入Status2;当前景目标消失、图像恢复静止, 则进入Status3取背景数据BG3, 据BG1、BG3差分运算判定进行背景更新, 否则返回Status0。
本文提出的方法可以解决如下两个问题:
(1) 检测区域覆盖面积较大, 若部分区域图像信息长时间做不规则变化时, 将影响整幅图像的背景更新。
(2) 目标滞留造成背景更新错误。
图4中, (1) 采用三帧差分法, 检测图像是否为静止状态, 无光线变化或细微的运动物体, 具体步骤如下:
(1) 每间隔200 ms获取{F1, F2, F3}三帧数据, Fi={fi (x, y) , x∈N, y∈M, i=1, 2, 3}。 (x, y) 为二维视场 (N×M, N为列线, M为行线) 中的一点。
(2) 对应点做差分运算, 与亮度阈值Lum T1比较得到差分图像, i={1, 2, 3}, k={i+1, .., 3}
(3) 对Di (x, y) 进行统计, 得到差分像素点个数:
(4) 对差分像素点个数Cntii=1, 2, 3均小于Cnt T1时Flag1=0, 则图像静止, 否则Flag1=1
(5) Flag1=0时, 判断当前状态, 若为Status0则跳转到Status1;若为Status1则保持;若为Status2则跳转到Status3。在Status1和Status3时将当前{F1, F2, F3}三帧数据取平均分别存为BG1={bgi (x, y) }, BE3={bgi (x, y) }。
图4中, (2) 主要判断是否有前景运动目标存在, 与 (1) 检测图像细微变化不同, 人体运动时帧差结果较大、差分像素点数也较大, 故将步骤 (2) 中的亮度阈值Lum T1修改为Lum T 2=2Lum T 1, 步骤 (4) 中阈值Cnt T1修改为Cnt T 2=10Cnt T 1。当Cntii=1, 2, 3均大于Cnt T2时判定有前景目标移动Flag2=1, 由Status1跳转到Status2。
图4中, (3) 判定是否进行背景更新。
(1) 将在Status1和Status3保存的背景数据做差分运算:
(2) B (x, y) 进行统计得到差分像素点个数
(3) 对BCnt小于Cnt T1, Flag3=0认为Status1和Status3均无前景目标, 则进行背景更新得到新的背景数据BG={bg (x, y) }, 否则返回到Status0
对所有分块区域按照图4方法进行背景更新, 可以得到整个检测区的背景数据。
1.3 光流法
光流法的优点在于能够检测独立运动的目标, 对背景处于静态或是动态的环境均能适用, 但是计算量较大, 无法保证实用性和实时性[1]。
2 人体运动目标跟踪和计数
采用分块更新的方法可准确提取背景信息有效检测出前景目标, 识别人体运动。在此基础上实现人体特征结点的创建、跟踪和计数。
2.1 虚拟检测区
图3中将检测区域划分为3个区域、2条计数线, 分别是:
(1) (3) 创建区, 创建人体特征结点;
(2) 跟踪区, 匹配人体特征信息, 跟踪人体运动;
(4) 出计数线, 当人体从 (3) 区域跨过该计数线时, 出计数值加1, 标注为 (7) 。
(5) 进计数线, 当人体从 (1) 区跨过该计数线时, 进计数值加1, 标注为 (6) 。
2.2 人体特征结点的创建
采用9宫格方法查找背景差结果的连通域[5], 得到图3中 (8) 所示的人体目标的位置、长宽信息, 综合判断其是否在 (1) (3) 区域, 以及长宽大小、比例等信息, 创建该目标Person[i], i为人体目标序号, i=[1:I], I为当前场景下目标个数, 其信息如下:
Person[i].x第i个人中心位置x坐标;
Person[i].y第i个人中心位置y坐标;
Person[i].W人体宽度;
Person[i].H人体高度;
Person[i].Cnt包含的特征方块个数;
Person[i].Dir创建区域。
而该目标的特征信息由Psn Feature[i][m]表示, m表示特征方块序号, m=[1:Person[i].Cnt]
Psn Feature[i][m].x该特征方块x坐标;
Psn Feature[i][m].y该特征方块y坐标;
Psn Feature[i][m].Ymean该特征块Y分量均值;
Psn Feature[i][m].Umean该特征块U分量均值;
Psn Feature[i][m].Vmean该特征块V分量均值;
Y、U、V均值采用算术平均的方法获得。
2.3 特征匹配与跟踪
目标在检测区域内运动轨迹无规律可循, 特别是当人流量较大时, 人体的运动轨迹杂乱。提出以目标特征信息进行匹配、跟踪的算法, 步骤如下:
(1) 获取当前帧数据与背景做差分运算;
(2) 查找连通域, 去除干扰点保存变量为:
Zone[k].x第k个连通域中心x坐标;
Zone[k].y第k个连通域中心y坐标;
Zone[k].Cnt第k个连通域特征方块个数。
k=[1:K], K为当前计算的满足条件的连通域个数, 隶属于第k个连通域的特征信息方块, 表示为变量Zone Feature[k][m], 其中m=[1:Zone[k].Cnt]
Zone Feature[k][m].x第m个方块x坐标;
Zone Feature[k][m].y第m个方块y坐标;
Zone Feature[k][m].Ymean特征块Y分量均值;
Zone Feature[k][m].Umean特征块U分量均值;
Zone Feature[k][m].Vmean特征块V分量均值。
(3) 计算第i个目标与第k个连通域 (k=[1:K]) 的距离和颜色特征差异保存为变量Comp Dist[i][k]和Comp Res[i][k], 并做归一化处理, 构建代价函数, 得到第i个目标与所有连通域的代价函数值Cst Fun[i][k]=0.6Comp Dist[i][k]+0.4Comp Res[i][k]。
(4) 将步骤 (3) 重复I次, 得到I×K的代价函数矩阵Cst Fun;
(5) 由Cst Fun得到与第i个目标最为匹配的连通域, 即满足Cst Fun[i][k]最小的序号k, 用Zone[k]变量更新Person[i]变量, 用Zone Feature[k]更新Psn Feature[i]变量, 完成目标跟踪。
图5所示为采用该算法对走出某卖场出入口的两人进行跟踪的结果。
2.4 计数
Person[i]跟随第i个目标的运动不断被更新, 当满足2.1节所述条件时计数, 之后将Person[i]结点删除, 其他出边界的情况则只删除结点不计数。
3 算法实现和结果分析
TMS320DM648是一款针对多媒体处理和视频安全与监控领域, 基于Veloci TITM超长指令结构的高性价比的单核DSP芯片。结合视频解码芯片TVP5154, 视频编码SAA7015实现了4路PAL格式视频输入, 1路PAL格式视频输出的商场客流统计系统, 其结构如图6所示[6]。
将该系统成功应用于某家电卖场, 其中抽取了2个时间段共7 h, 统计结果如表1所示, 现场人工计数为实际值, 系统计数为检测值。由表1可见统计准确率保持在95%左右, 注意到“正大门”、“通信门”和“数码门”这3个门在2个时间段内系统均多计, 而“服务门”均少计, 说明算法性能稳定, 不会出现忽多计、忽少计的情况。
本文针对基于概率模型的背景更新方法进行了改进, 更新了背景分区域, 提高了背景更新的可靠性和准确性。在此基础上提出了以目标位置、亮度和颜色构建代价函数的特征匹配和跟踪算法, 并将其成功应用于商场客流统计系统, 在TMS320DM648硬件平台同时处理4路PAL视频, 且客流统计准确率稳定在95%。结果表明, 该算法有较好的目标识别、匹配和跟踪能力。
参考文献
[1]赵艳启.运动目标识别与跟踪算法的研究[D].南京:河海大学, 2005.
[2]金鑫.基于改进特征跟踪的客流量统计[J].计算机工程, 2012, 38 (15) :175-178.
[3]丁磊, 宫宁生.基于改进的三帧差分法运动目标检测[J].电视技术, 2013, 37 (1) :151-153.
[4]曹海青.基于全局和局部特征的目标识别研究[J].微型机与应用, 2011, 30 (14) :41-43.
[5]孙抗, 汪渤, 郑智辉.基于局部亮度直方图特征的实时目标识别与跟踪[J].系统工程与电子技术, 2011, 33 (9) :1927-1931.
特征点跟踪 篇4
在计算机视觉领域,目标跟踪一直是其中的重要研究课题之一。目标跟踪是各种高层视频图像处理的基础,如目标分析、三维重建、视频图像压缩编码、行为识别等[1]。现有的目标跟踪的主要方法包括:基于区域的跟踪、基于特征的跟踪、基于轮廓线的跟踪、基于模型的跟踪、基于运动场估计的跟踪以及混合方式的跟踪等方法[2]。
卡尔曼滤波是基于线性、高斯假设的,这对于目标跟踪要求太过严格。现实中的系统往往是非线性的,这使得卡尔曼滤波的适用范围受到严格的限制。近年来,粒子滤波(PF)[3,4]算法被认为是目前解决非线性、非高斯模型最成功的方法。粒子滤波算法是一种基于蒙特卡洛(MC)技术来求解贝叶斯概率的使用算法,它的基本思想是通过重要性函数产生带权值的样本(粒子)来逼近系统状态的真实后验概率分布。在本文中提出了融合[5]颜色特征[6]和运动边缘特征[7]的粒子滤波算法进行目标跟踪。使用颜色特征信息来实现目标跟踪快捷且容易实现,但在跟踪过程中由于目标所处的位置、光照等易发生变化,这会影响跟踪效果。另一方面,运动边缘特征信息可以很好地适应各种光照、背景变化的情况。两种特征融合可以弥补双方的不足,同时也能提高目标跟踪算法的有效性。这些效果在实验结果分析中都能得到很好的说明。
1粒子滤波基本原理
1993年由Gordon和Salmond[8]提出了一种新的基于序贯蒙特卡洛(SIS)方法的Bootstrap非线性滤波方法奠定了粒子滤波的算法基础。所谓粒子滤波就是指通过寻找一组在状态空间中传播的随机样本(粒子){x
p(xt|z1:t-1)=∫p(xt|xt-1)p(xt-1|z1:t-1)dxt-1 (1)
其中,p(xt|xt-1)由目标状态转移模型定义;p(zt|xt)由观测模型定义;p(xt-1|z1:t-1)为t-1时刻的后验概率密度;p(zt|z1:t-1)为归一化常数,即p(zt|z1:t-1)=∫p(zt|xt)p(xt|z1:t-1)dxt。t时刻的后验概率密度p(xt|z1:t)是滤波问题的最终解。
但是在上述的计算过程中,需要通过计算积分来求解概率密度的分布,而一般的目标跟踪问题都是高维的、非线性、非高斯的问题,所以求解这类问题非常困难。因此,粒子滤波中采用了序贯蒙特卡洛方法来解决积分计算复杂的问题。它从一个被称为重要性概率密度的建议分布q(x1:t|z1:k)中进行采样从而得到状态集或者粒子集{x
式(3)中,
在取得提议函数的最优时的权值更新如下:
当N→∞时估计式(3)的值无限趋近于p(xt|z1:t)的真实值,进而得到t时刻目标状态的估计值。
2特征融合与目标跟踪
2.1目标颜色特征
颜色特征能简单地描述一幅图像中颜色的全局分布,有效地提高目标跟踪的鲁棒性。由于选定的目标跟踪区域一般为矩形,其中距离目标跟踪区域边界处必然包含了很多非可靠的像素信息。本文中采用基于RGB颜色空间模型的核加权颜色直方图对目标进行建模。其中,核函数的基本思想是:通过核函数根据像素点距离目标中心的距离远近对它们赋予不同的权值。给距离目标中心点比较远的部分像素点赋予比较小的权值,从而来减弱跟踪目标模块边界及遮挡等问题的干扰。本文高斯核函数,其定义如下:
式(6)中r表示像素点与目标中心之间的距离,参数σ控制核函数的作用半径,实验中σ=1。
对于选定的目标区域内的各像素点{xi, i=1,…,M},其中M为目标区域内像素点的总数。设m为量化阶数,且定义颜色量化函数b(xi):R2→{1, 2,…, m,m=32},则第i个像素点颜色粒子所对应区域的核加权颜色特征直方图p(x)={pu(x)}u=1,2,…,m可定义为[9]:
式(7)中A为归一化因子,用来保证
对于候选区域所对应的核加权颜色直方图也可采用上述同样的计算方法,记为q(x)={qu(x)}u=1,2,…,m。Bhattacharyya系数是建立两概率分布相似性度量的有效工具。则对于目标区域p(x)={pu(x)}u=1,2,…,m与候选区域q(x)={qu(x)}u=1,2,…,m两个核加权颜色直方图,它们之间相似性可用Bhattacharyya系数来衡量,可定义为:
式(9)中ρ值越大代表目标区域与候选区域之间的相似性越高,当ρ=1时,即两个区域直方图完全相似。由此得出基于颜色特征的观测值的概率密度函数为:
实验中σ=0.25。
2.2目标运动边缘特征
为了适应目标光照变化及背景中相似颜色的干扰等,仅仅使用颜色特征达不到理想的跟踪效果,因此本文中引入了运动边缘特征。它利用相邻两帧图像之间的目标区域运动特征,生成差分图像进行梯度求解得到运动边缘图像信息,从而在复杂背景下使目标跟踪达到更好地效果。
假设视频中两帧连续的图像分别记为Rt和Rt+1,对两帧图像进行差分处理可得到差分图像Dt为:
对差分图像Dt进行梯度求解,则可得到该时刻t的图像运动边缘信息Et,即:
式(12)中,
式(3)中,θ的取值范围为0~2π。对方向角θ进行量化,分成n等份
当某一候选区域Qt值越接近于1时,说明候选区域与目标区域的相似度更高。利用Qt值得出基于运动边缘特征的观测值的概率密度函数为:
式(15)中
2.3目标特征融合与跟踪实现
本文结合颜色特征和运动边缘特征的优点,通过将两种特征融合从而达到更好地跟踪效果,即得到一个关于多个观测值的融合概率密度函数。这里假设颜色特征和运动边缘特征两个观测过程是相互独立的,则定义融合后的概率密度函数为:
p(zt|x
w2pmotion(zt|x
式(16)中w1,w2分别为自适应的归一化权值,即
基于多特征融合的改进粒子滤波目标跟踪算法具体步骤见如表1的算法。
3实验结果分析
实验平台为P4 2.66 G的CPU,内存1.5 G的PC机上使用Matlab R2007a仿真实现。为了验证本文算法的有效性,分别对两组视频进行测试。两段视频中待跟踪目标区域都需在视频图像序列第一帧中手动标定。
视频一是对直升机降落的视频中的直升机进行跟踪,视频图像大小为320×240,视频总帧数为860帧,采样粒子数为500。视频中直升机背景逐渐有蓝色的天空转变为绿色的树丛,并且直升机的颜色与树丛颜色比较近似。基于本文算法跟踪的结果如图1所示。具体的误差数据分析见图2,实线为本文所提算法的实现数据,虚线为基于自适应颜色特征的粒子滤波算法[10]所实现的数据。本文中将误差数据分为x方向和y方向,其中目标真实位置在x,y方向的值为手动标定。在视频跟踪图像中我们选取200帧、330帧、363帧等作为显示跟踪结果,其中,在开始阶段,如第200帧时背景都为蓝天,从330帧开始有短暂的视频背景相似干扰,在第363帧时直升机目标被完全遮挡,以及当从580帧开始视频背景开始完全有蓝天变为绿色树丛。在这些情况下,结合图2中跟踪误差数据分析,我们可以看出从600帧左右开始基于自适应颜色特征的粒子滤波算法[10]出现了目标丢失的情况,但是本文中提出的算法都能较好地跟踪目标,不会发生目标丢失的情况。在这段视频中说明了本文中的算法融合目标的颜色特征信息和运动边缘信息能够很好地克服跟踪目标背景相似干扰的情况,表现出了较强的鲁棒性。
视频二是采用CAVIAR项目组[11]提供的标准视频序列“ThreePastShop2cor.mpg”进行测试,该视频采集于视频图像大小为384×288,帧速率为25帧/秒,从视频序列的第370帧开始截取其中的500帧视频序列做跟踪实验,采样粒子数为500。实验跟踪结果如图3所示。
在实验中第459帧附近跟踪目标第一次被短暂遮挡,因为遮挡人物穿着红色外套,背景区分比较明显,只有人物的黑色背包会造成一定干扰。当穿过第一个遮挡任务后跟踪效果即为第476帧,紧接着跟踪目标穿过第二个遮挡人物,这时在第492帧时跟踪目标被完全遮挡,而且由于遮挡人物同样穿着黑色外套,和跟踪目标比较接近,造成了跟踪目标中心的扰动,但在穿过遮挡人物后,正如第602帧跟踪效果显示的跟踪目标中心会自适应地调节到原来的跟踪中心。在视频截取的最后阶段第818帧时,有路过的行人对跟踪目标再一次的遮挡,实验效果如第847帧所示。
与基于自适应颜色特征的粒子滤波算法[10]跟踪效果对比的具体误差数据分析见图4,本文中将误差数据分为x方向和y方向,其中目标真实位置在x,y方向的值为手动标定。
4结论
本文给出了一种基于多特征融合的改进粒子滤波目标跟踪算法。该算法融合了物体的颜色特征信息和运动边缘特征信息,可以有效地解决视频目标跟踪过程中背景相似干扰以及运动目标遮挡问题。相比单一的基于自适应颜色特征的粒子滤波跟踪算法,本文中提出的算法更能有效地提高目标跟踪过程的稳定性与精确性。
参考文献
[1] Wang X G,Kinh T.Grimson W E L.Correspondence-free activityanalysis and scene modeling in multiple camera views.IEEE Transac-tion on Pattern Analysis and Machine Intelligence,2010;32(1):56—71
[2] Yilmaz A,Javed O,Shah M.Object tracking:a survey.ACM Com-puting Surveys,2006;38(4):1—45
[3] Arulampalam M S,Maskell S,Gordon N,et al.A tutorial on particlefilters for online nonlinear/non-Gaussian Bayesian tracking.IEEETransactions on Signal Processing,2002;50(2):174—188
[4] Hu W M,Tan T N,Wang L.A survey on visual surveillance of ob-ject motion and beha-viors.IEEE Transactions on System,Man andCybernetics,2004;34(3):334—352
[5]王永忠,梁彦,赵春晖,等.基于多特征自适应融合的核跟踪方法.自动化学报,2008;34(4):393—399
[6] Intill S S,Bobick A F.Visual tracking using closed-worlds.Int ConfComputer Vision,1995:672—678
[7] Li P.,Chaumette F.Image cues fusion for object tracking based onparticle filter.Intl Conf Articulated Motion and Deformable Objects-(AMDO),2004:99—107
[8] Gordon N,Salmond D,Smith A.Novel approach to non-linear andnon-Gaussian Bayesian state estimation.Proceedings of Institute Elec-tric Engineering,1993;140(2):107—113
[9] Comaniciu D,Ramesh V,Meer P.Kernel-based object tracking.IEEE Trans on Pattern Analysis and Machine intelligence,2003;25(5):564—575
[10] Katja N,Esther K M,Luc V G.An adaptive color-based particlefilter.Image and Visio-n Computing,2003;21(1):99—110
特征点跟踪 篇5
图像的局部特征[4]也是目前计算机图像处理的一个热点, 是许多方法的基础, 对实现目标跟踪有直接的影响, 在寻找每个图像间的对应点和目标特征描述有着重要的作用。在视觉领域刊物和会议上都有特征描述论文发表。同时也被广泛的应用。在实际的三维图像重建和场景恢复中, 当建立每幅图像之间点与点之间的对应关系时, 优秀的局部图像特征描述算子必不可少。在实现物体跟踪算法中, 目前比较流行的算法就是根据局部特征进行跟踪, 这是因为局部特征通常是利用物体局部形状, 这样物体可以存在遮挡、复杂背景等情况下被识别。表示目标的局部特征有很多种, 目标的轮廓特征最容易被感知, 稳定性相对其他特征是最好的, 能够直接描述物体的形状。形状上下文 (Shape Context) 一种基于边界轮廓的表示方法, 能够很好的描述物体的形状特征。
1 Shape Context算法
Shape Context[5]特征是由Serge Belongie于2002年提出的一个形状描述方法。依据以往的学术研究, Shape Context的形状描述比基于边界的形状在理论上能够实现更精确的匹配, 该方法能够很好地表示图像区域的内部特征。并经过大量测试, 在仅有轮廓的匹配信息时, Shape Context仍然可以保证到很高的精确度。
首先, 要获得物体轮廓特征, 利用轮廓上的一系列离散的点就可以表示整个目标轮廓, 提取Shape Context特征。在提取离散点时, 应做到的是使这些提取点能准确反映出物体的轮廓信息, 尤其是物体中形态发生变化部位的重要信息, 并尽量做到提取点集的质心与目标质心能够保持相同位置。在提取目标边缘时, 采用微分算子法, 这种算法通过卷积完成, 这是因为导数算子有使灰度变化突出的作用。将导数算子应用的图像中, 就可以使图像灰度变化较大的点处得到的数值较高, 因此把这些导数值作为对应点的边界强度值, 通过设置阈值的方法, 提取边界点集合。实验证明, 这种方法准确性较高。其次, 就是要提取轮廓采样点。利用均匀采样的方法, 将提取到的轮廓线上曲率最大的点确定为采样的开始点。如果轮廓有不止一个曲率最大的像素点, 则比较曲率最大的点的毗邻点的曲率, 比较毗邻点曲率较大的点所对应的曲率最大点作为起始点, 如果毗邻点的曲率也相同, 则在比较毗邻点, 直到找出较大的相邻像素点为止。找到起始点后, 依次均匀抽样。
Shape Context方法的理论基础是:对任一图像通过上文叙述方法得到的N个离散边界点来说, 其中任意一个点与其他的N-l个点之间都存在对应关系, 可以将这种对应关系看成不同向量, 这N-l个向量包含了有用的的边界信息, 由这N-1个向量就能表示物体的形状特征, 这可以看出, 当N值越大时, 表示目标信息越多, 表示目标的形状也就越准确。在提取到轮廓点后[6], 利用坐标变换得到该点对应的直方图, 对数极坐标直方图能够直观反映基准点与其他点之间的空间位置关系, 从而正确表示物体的特征。
对任一图像, 在提取目标边缘点后, 可以得到一组离散边界点集, 设点集为Pi={p1, p2, …, pn}, 对任一个点pi, 其余点与该点能构成的向量组, 这就能很好的反映该点在目标中的位置信息。
为更直观反映Shape Context特征方法, 引入一种常用的圆形的对数极坐标系, 如图1所示, 图1 (a) 为原图, 图1 (b) 为特征提取结果图。
如图1所示, 整个空间被分成12×5=60个区域, 每个区域所占的大小按从外到里逐渐增强, 这是因为对于某点, 离其近的点比距离远的点有更好的鉴别能力。而在同一个圆弧范围内的区域所占空间相同, 这是因为相同距离的点对基准点的鉴别能力是相同。在本文算法中, 对给定点pi, 在以该点为原点所组成的极坐标系中, 通过统计分布在每个区域中点个数来表示目标的边界特征信息。根据利用不同的点, 可依次计算得到每个点的直方图, 这样物体的边界特征就可以用n×60的矩阵表示。
通过上述介绍可知, 对于给定点pi, 其特征可以用以该点为中心的极坐标系的60个区域中落入每个区域中的像素点个数Qi (k) 来表示, 公式显示如下
式 (1) 中, k=0, …, 60, #操作符代表了落入第k个区域中的不同于点的所有其余点的个数, 通过这种方法能得到有60个分量的直方图值, 逐一计算所有的离散点, 得到n个形状直方图。这样所有物体的形状信息我们都可以量化为一个n×60的矩阵。根据这些点的直方图中分布在不同区域的点数, 就可以建立图像的Shape Context直方图。
对于原图像上的点pi和需要匹配的图像上的点qj, 可以用Cij=C (pi, qj) 表示点pi和qj的ShapeeContext直方图的相似度, 计算公式如式 (2) 所示。
其中, hi (k) 和hj (k) 表示在这两个不同点的第k个标准化的直方图。
2 本文跟踪算法
2.1 Mean Shift算法
经典的Mean Shift[7]目标跟踪算法采用的颜色直方图作为搜索特征, 通过不断迭代使得算法趋向于目标的真实位置, 从而实现目标的跟踪。传统的MeannShift算法在跟踪中优势明显。这些优势[8]主要体现在计算量不大, 基本上可以做到实时跟踪。
假设给定d维空间Rd中的n个样本点xi, i=1, 2, …, n。在x点的Mean Shift向量的基本形式定义为
其中, Sh是一个高维球区域, 半径为h, 满足以下关系的y点的集合
K是落入Sh区域内的所有样本点的个数。
Mean Shift向量[9]表示被采样点的平均偏移量, 不断向样本分布最多的区域迭代, 这也就是概率密度函数的梯度方向。一般来说, 在Sh中, 离x越近的样本点, 对x周围的统计特征关联行越大, 所以将核函数的引入, 并根据每个样本点的位置不同赋予其不同的权值, 经扩展后的Mean Shift向量表示为
Mean Shift算法是一个不断迭代直至达到最佳位置的过程, 如果假设初始点为x, 允许的误差为ε, 则Mean Shift算法按照以下步骤进行:第1步, 计算mh (x) ;第2步, 把mh (x) 付给x;第3步, 如果结束循环, 否则, 继续执行第1步。
2.2 本文跟踪算法
Mean Shift算法方法简单、计算速度快, 在现实得到广泛应用。但与此同时, Mean Shift算法也存在着一些缺点, 这是由于直方图特征[10]在目标颜色特征描述方面略显单一, 缺少空间信息, 对目标变形和遮挡不能实现正确的跟踪。尽管颜色特征是简单可行的, 但颜色特征不能很好地解决跟踪中出现的遮挡问题, 并且在复杂背景下跟踪的效果也不理想。所以, 在目标跟踪领域, 但考虑到其缺点, 在本文算法中用ShapeeContext特征替代颜色特征, 来解决颜色特征缺陷的问题。
在跟踪的起始帧中, 通过人工选定方法来选取要跟踪的目标, 然后对所选取的目标提取轮廓点, 对提取的轮廓点进行抽样, 将所得抽样点按在极坐标分布区域不同分成m块, 分布在不同区块的点进行Epanechnikov核函数加权, 构成图像的Shape Context直方图, 该直方图模型就叫做目标模型, 在后续帧的目标跟踪图像帧上可能包含目标的区域是候选区域。
为了直观反映跟踪算法, 假设现有两个归一化的直方图分别为ha={ha (1) , ha (2) , …, ha (n) }和hb={hb (1) , hb (2) , …, hb (n) }, 则它们之间的Bhatta-charyya距离ρ (ha, hb) 计算公式如下
为使目标模型与候选模型的相似性最大, 即使得Bhattacharyya系数的值最大。由于前面部分的研究已经得出, 对式子进行泰勒展开, Bhatta-charyya系数ρ (y) 可以表示成
式中如果ρ (y) 越大, 表示这两个Shape Context特征直方图相似程度越高, 因此利用Mean Shift算法对公式的第二项进行迭代, 从而得到目标在下一帧图片的位置。
3 实验结果及分析
实验中所用的硬件环境为CPU P (R) 4 2.8 GHz, 内存4 GB, 显存512 MB。软件开发环境为Matlab2010b, 实验数据为多组视频序列。为验证本文算法的稳定性与鲁棒性, 本文从验证平移、旋转不变性、遮挡稳定性和复杂场景稳定性等3个方面进行论证, 经过实验研究, 都表明该算法的稳定性, 受篇幅限制, 以下每方面只列举出一种场景。
3.1 验证平移、旋转不变性
由于平移只是目标位置的平移, 其特征并未改变, 所以平移之前与之后的形状上下文特征相同, ShapeeContext具有平移不变形。通过对轮廓上的点建立极坐标图, 统计周围点落入极坐标图的数量来建立ShapeeContext直方图, 所以旋转之后, 点的位置信息不变, 所建立的直方图也不变。不同形状的目标Shape Context特征也不相同, 对于颜色相似而形状不同的目标能实现良好的跟踪。为验证本文提出跟踪算法对旋转和平移具有良好的鲁棒性, 提取了序列图像中两幅有颜色相似、形状不同的两个物体相互运动、物体角度变化的图片, 图2中方框表示被跟踪的物体, 从图中可以看到, 该算法能实现良好的跟踪。
3.2 验证遮挡稳定性
虽然颜色特征是简单可行的, 但颜色特征不能很好地解决跟踪中出现的遮挡问题, 并且在复杂背景下跟踪的效果也不理想, 而Shape Context特征可以弥补这些不足。图3是一组手遮挡脸的视频序列, 可以看到, 当跟踪人脸时, 图3 (b) 、图3 (c) 图有手遮挡时, 仍能实现良好的跟踪。虽然跟踪出现较小的偏差, 但是跟踪没有丢失。实验表明, 本算法具有较强的抗噪性。
3.3 验证复杂场景稳定性
由于均值漂移算法根据加权的颜色直方图对目标建立模型, 算法容易受颜色相似但颜色空间分布不同的目标干扰。同时由于仅仅根据颜色信息对目标进行跟踪, 容易受背景颜色的干扰。图4为跟踪物体出现遮挡, 且被遮挡物体与跟踪物体颜色相似, 基于空间色彩直方图的方法不能实现很好的跟踪。而从图3中可以看出, 基于Shape Context特征的Mean Shift目标跟踪算法跟踪效果很好, 对遮挡具有良好的鲁棒性。
4 结束语
传统的全局特征在跟踪中容易受到背景信息的干扰, 并且不能很好的处理遮挡问题。本文详细介绍了Shape Context特征, 并且具体讨论了在该的鲁棒性和稳定性。随后, 通过Shape Context特征对目标进行建模, 在Mean Shift算法的框架下进行跟踪, 并在户内外多个视频中对提出的算法进行了验证, 都能实现良好的跟踪, 充分说明本文算法具有良好的鲁棒性, 比基于颜色特征的跟踪算法更能适应复杂场景, 为下一步研究提供了新的思路。
摘要:利用均值漂移进行目标跟踪的算法, 在被跟踪目标出现旋转、尺度变化、噪声干扰等情况下, 无法得到准确的跟踪结果。文中提出了基于当前流行目标跟踪算法和局部特征相结合的算法, 基于局部特征—形状上下文 (Shape Context) 特征的Mean Shift目标跟踪算法。该算法首先提取目标的轮廓信息和特征, 根据采样点之间位置和距离关系建立Shape Context直方图, 最后所有点的Shape Context直方图构成了图像的Shape Context特征, 最后根据Mean Shift算法进行跟踪。实验结果表明, 该算法在跟踪目标出现尺度变化、旋转、噪声干扰和遮挡等情况下能够准确地跟踪物体, 鲁棒性好。
关键词:局部特征,形状上下文,均值漂移,目标跟踪
参考文献
[1]Milan Sonka, Vaclav Hlavac, Roger Boyle.图像处理、分析与机器视觉[M].3版.艾海舟, 苏延超, 译.北京:清华大学出版社, 2011.
[2]李弼程, 邵美珍, 黄洁.模式识别原理与应用[M].西安:西安电子科技大学出版社, 2008.
[3]王辉.复杂场景下多摄像机运动目标连续跟踪研究[D].北京:北京交通大学, 2013.
[4]Belongie S, Malik J, Puzicha J.Shape matching and object recognition using shape contexts[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24 (4) :509-522.
[5]刘翔.基于视频的运动目标检测与跟踪算法研究与应用[D].武汉:武汉科技大学, 2009.
[6]曲明志.基于局部特征和粒子滤波的目标跟踪算法研究[D].长春:吉林大学, 2013.
[7]朱胜利, 朱善安, 李旭超.快速运动目标的Mean Shift跟踪算法[J].光电工程, 2006, 33 (5) :66-70.
[8]胡波, 陈恳, 徐建瑜, 等.基于Kalman预测和Mean-Shift算法的视频目标跟踪[J].光电子·激光, 2009, 20 (11) :1517-1522.
[9]朱英宏, 李俊山, 郭莉莎, 等.基于LBP的尺度不变特征的描述和匹配算法[J].计算机辅助设计与图形学学报, 2011, 23 (10) :1758-1763.
特征点跟踪 篇6
关键词:目标跟踪,均值偏移,目标中心,NMI特征
0 引言
实时目标跟踪一直是计算机视觉领域的研究重点,其中跟踪目标的计算复杂度直接影响着实时性。Mean shift算法[1]是一种以目标区域像素概率分布为特征的高效模式匹配算法,它不需要进行穷尽搜索,所以成为目标跟踪中效率较高的一种。传统基于Mean shift算法的初始跟踪窗口是固定不变的,但是在实际目标跟踪中,经常会遇到目标的尺寸随着其离摄像头的远近或自身的畸变而改变的情况。这时初始窗口若不随着目标尺寸相应改变,则会造成跟踪目标的丢失,而且窗口的大小会影响Mean shift算法计算的迭代次数。为了得到自适应更新大小的跟踪窗口,文献[3]中提出采用正负10%的增量简单的估算核窗宽,这个方法对目标尺寸逐渐变小比较有效,但是对于目标尺寸逐渐放大的效果不佳。文献[10]中,Collins对采样图像进行加权和滤波,引入了一个新的尺度核,并在尺度空间中进行Mean shift迭代,从而找到最优的跟踪窗口尺度。但该方法需要收敛到三维空间的极值点,造成计算量加大。同时由于文中采用的是Epanechnikov核,造成算法迭代过程等效于对尺度空间进行平均操作,因此跟踪效果和文献[3]相似。文献[4]利用视频前后两帧进行形心配准,再对目标的角点进行匹配,以此估计刚性物体的仿射模型参数,并由此参数来更新核窗宽,由于依赖于角点匹配,不适合非刚性物体的跟踪,而且形心点的处理比较粗糙。
本文将概率图的圆检测法[5]改进并引用到目标跟踪中来,实时得到跟踪目标的中心。利用Mean shift算法的快速收敛性,计算改变核窗宽后的Bhattacharyya系数,以此选择最优的跟踪窗口大小。同时根据NMI特征在目标尺寸变换、旋转后的不变性[6],识别实时更新的初始跟踪对象,保证中心定位的准确性。
1 基于Mean shift算法的跟踪原理
Mean shift算法是文献[7]提出的一种非参数的密度估计算法,文献[1]将其引用到目标跟踪上来,其跟踪的原理如下:
设{xi}i=1...n是d维空间里的n个点,则以核K(x)和带宽h的x点的密度估计是:
k(x)是K(x)的轮廓(profile)函数,且K(x)=k(‖x‖2),则式(1)可写为:
假设g(x)=-k′(x),则密度估计梯度为:
以提取目标色调值的直方图z为特征,设它的密度分布函数为qz。候选目标的中心位置y处的特征分布为pz(y),利用Bhattacharyya系数来寻找qz和pz(y)最相似的y值,判断式如下所示:
因为式(6)的第一项取决于y0,即由初始位置决定。所以要使式(6)最大,即求第二项的极大值。通过Mean shift算法可得新位置,以后各帧均按此式迭代获得:
2 目标中心定位
2.1 图像分割
为了得到目标的中心,需要对跟踪的目标进行图像分割,并得到较为清晰的目标边缘。
本文根据OTSU算法[8]获得最佳门限阈值。OTUS算法是日本人大津首先提出的,该算法以图像的一维直方图为基础,以背景和目标对象的类间方差最大为阈值判断依据。首先提取每帧图像的色调值H,并将H扩展到0~255之间。其灰度等级为G={0,1,…,L-1},t∈G为选取的分割阈值,H={H1,H2}为分割后图像的两个灰度值级别,则:
其中f(x,y)为坐标(x,y)处的像素灰度。
假设灰度级为i的像素个数为Ni,则一帧图像里的像素总数为:
灰度级为i的像素出现的概率为:
将灰度级分成(c0,c1)两类,若分割灰度阈值为t,则可将像素按灰度分为背景区{0,1,…,t}和目标区{t+1,t+2,…,L-1}两类。
背景的像素比例为:
则背景和目标对象的平均灰度分别为:
背景和目标物体间的方差为:
当方差σ12取最大值时,变量t即为所求的最优门限值。为得到连通清晰的边缘,对二值图像进行一次开启和闭合操作。最后利用Sobel算子对二值图像进行边缘提取,可以得到清晰的目标边缘。
2.2 目标中心定位原理
文献[5]中提出了一种基于圆心存在概率的圆检测方法,该方法利用图像边缘点到中心点的欧式距离以及圆的半径,建立圆心概率分布图来获取中心点位置。此方法计算效率和精确度都很高,但对不规则边缘的图像效果不大。本文将其扩展,能够适应不规则图形的中心获取。
在第k帧图像I的边缘内部搜索中心点(u0,v0),E(xi,yi)表示边缘上的点,则图像中心点(u0,v0)到边缘(xi,yi)的欧氏距离用r标示为:
由于目标的边缘是不规则的,因此需要对r设置一个范围:{rmin,rmax}(rmin表示允许的最小半径,rmax表示允许的最大半径)。用式(9)计算边缘内部每一点(ui,vi)到边缘点(xi,yi)的欧氏距离,若计算的r在预设半径范围之内,则将累加器数组Ai自加1。
根据2.1节中得到的二值图像,计算当前帧图像中目标的面积S。
定义中心定位概率(Probability of Centre location)Pi(u,v),表示存在以(u,v)为中心,目标面积为S,统计边缘像素点数为Ai时的中心概率的大小:
其中,在同一帧图像里,目标的面积S是定值。遍历边缘内部所有点后,得到一个中心定位概率图P(u,v),图中的P(u,v)越大表示在点(u,v)处中心的概率就越大,返回最大值处(u,v)坐标即为中心点位置(u0,v0)。经过大量的实验表明,该方法对目标边缘呈类似的圆形或椭圆形效果最好。图1是经过OT-SU算法和Sobel算子提取后的边缘检测图像,图像大小为570×335。利用中心定位法得到中心标记概率图,最后在概率最大处用十字形标示出中心。该图中心最大概率为0.73,目标中心点坐标是:(311,261)。
实验中的边缘内部通常会存在一定的噪声,此时的面积S比实际要小。根据实验统计发现,中心点处的最大概率在0.4~0.8之间。如果边缘提取得越准确、噪声越少,那么得到的概率图的波峰将会越明显。图1中目标在提取边缘后存在一定的噪声,但从中心定位的效果来看,该算法具有一定抗噪声能力。
2.3 图像的NMI特征
文献[6]中提出了二值图像的归一化转动惯量NMI,它具有伸缩、平移和旋转的不变性。所以在目标的跟踪过程中,可以将其作为一个有效的特征对目标进行识别。
经过2.1节中处理的二值图像的目标重心记为(cx,cy),则:
该目标对象绕重心(cx,cy)的NMI可表示为:
其中,为所有像素值之和。
利用NMI特征进行识别,计算每帧图像连通区域的NMI值,若0.8<<1.2,则判断该目标即为需要跟踪的对象[9],利用中心定位法计算当前的中心位置(cxi,cyj)。
3 算法实现及实验结果分析
3.1 算法实现步骤
结合Mean shift目标跟踪特点,本文的跟踪算法步骤如下:
(1)本文目标区域的跟踪窗口为长方形,记录第k帧跟踪窗口的宽ak、高bk、中心坐标(xk,yk)以及NMIk,同时比较ak和bk的大小。
(3)根据中心定位概率法,定位当前帧目标的中心,并设置跟踪窗口的大小。在前一帧宽和高的基础上,以中心为原点,x轴和y轴方向上两边分别增加Δhai和Δhbi,保留此时跟踪窗的高和宽。
(4)根据不同状态下跟踪窗口的大小,计算在当前定位的中心点处的Bhattacharyya系数的值,以此寻找前后帧目标的最佳匹配,从而得到变化后的窗口大小。
(5)重复步骤(2)~(4),得到每一帧目标的最佳跟踪窗口大小。
3.2 实验结果和分析
在实例采样中,CCD相机的采样速率是30帧/s,摄像窗口大小为570×335。编程用VC++6.0实现,运行环境是Intel双核1.6,内存512MB。
图2和图3(颜色不能显示,请联系作者)是采用文献[3]中Kernel-based算法的跟踪效果图,表1是相应各帧图像的Bhattacharyya系数。实验表明该算法对目标尺寸逐渐减小的情况比较有效,但继续跟踪发现,由于场景中干扰对象的出现以及窗口尺寸不能很好适应目标尺寸实时变化的影响,在第386帧后出现跟踪丢失。图3中红色跟踪窗口是采用kernel-based算法的效果,黄色矩形框为较理想情况下校正的跟踪窗口。以第130帧为初始跟踪窗口图像,在第235帧时跟踪基本丢失。由于该算法只是采用以正负10%的增量简单的估算核窗宽,所以在目标尺寸逐渐增大的情况下,造成尺度定位不明确,而且使得Mean shift算法迭代的中心偏移越来越大,从而造成目标跟踪偏差直至丢失。
图4和图5是采用本文算法的跟踪效果。
在图4的第300帧时,跟踪的窗口仍然能较好地和目标相匹配,较之kernel-based算法,跟踪效果有很好的改善。在图5显示的目标尺寸逐渐增大的实例中,由于中心定位较准确,因此保证了空间定位的准确性,继而根据本文提出的改变窗口尺寸方法,使得跟踪效果较好。表2为采用本文算法的采样示例中心点的坐标和Bhattacharyya系数。
4 结束语
本文针对当前多数使用基于Mean shift算法的目标跟踪不能很好地实时改变核窗宽的特点,提出了一种基于目标中心定位和NMI特征的跟踪算法。在目标跟踪过程中,通过建立二值模型,利用NMI特征识别要跟踪的目标,跟踪过程始终定位目标的中心。结合Mean shift算法的寻优相似度函数,选择最优的核窗宽。目标在移动过程中,其中心点也是在做不规则的移动,本算法正是抓住了这点,以中心点为基点来扩展跟踪窗口。
本算法的目标定位和NMI特征有很大关系,而中心定位还和目标边缘的分布有关。实验表明,即使背景中出现和目标区域的NMI值相近的物体时,本算法也能较好地跟踪目标。
参考文献
[1]Dorin Comaniciu,Visvanathan Ramesh,Peter Meer.Real-Time Track-ing of Non-Rigid Objects using Mean Shift[C]//Proceeings of IEEE Conference on Computer Vision and Pattern Recongnition.South Caro-lina,USA,2000:142-149.
[2]Bradski G R.Computer vision face tracking for use in a perceptual user interface//Regina Spencer Sipple.IEEE Workshop on Applications of Computer Vision.Stoughton:Printing House,1998:214-219.
[3]Dorin Comaniciu,Visvanathan Ramesh,Peter Meer.Kernel-Based Ob-ject Tracking[J].IEEE Trans on Pattern Analysis and Machine Intelli-gence,2003,25(5):564-577.
[4]彭宁嵩,杨杰.Mean-Shift跟踪算法中核函数窗宽的自动选取[J].软件学报,2005,16(9):1542-1550.
[5]张运楚,王宏明,梁自泽,等.基于存在概率图的圆检测方法[J].计算机工程与应用,2006:49-51.
[6]杨小冈,付光远,缪栋,等.基于图像NMI特征的目标识别新方法[J].计算机工程,2002,28(6):149-151.
[7]Fukanaga K,Hostetler LD.The estimation of the gradient of a density function,with applications in pattern recognition.IEEE Trans.on Infor-mation Theory,1975,21(1):32-40.
[8]Otsu N.A threshold selection method from gray-level histograms[J].IEEE Transactions on System Man and Cybernetic.1979,9(1):62-66.
[9]江淑红,王沁,等.基于目标中心距离加权和图像特征识别的跟踪算法[J].电子学报,2006,34(7):1175-1180.
特征点跟踪 篇7
随着计算机和图像处理技术的不断发展,利用视频技术进行车辆检测与跟踪逐渐成为智能交通系统等领域中的重要应用。视频车辆跟踪系统通常包括车辆提取,车辆跟踪两个模块。
车辆提取常用的方法有差分法[1]和混合高斯模型(Gaussian Mixture Model,GMM)法[2]。
差分法速度快,但所提取目标通常不完整,容易影响后期跟踪模块性能;GMM利用角点,欧式距离,颜色,形状以及外部轮廓等信息描述目标,使用上述信息匹配完成跟踪,通常需要多项信息结合进行大量运算才能拥有比较理想的性能,实时性较差。跟踪算法常用的方法大体上分为模板匹配,卡尔曼滤波以及基于最优贝叶斯估计的粒子滤波算法[3]。模板匹配算法中最简单的属直接模板匹配,即对视频帧中所有的像素点进行匹配,得到所求车辆区域并标识出来完成跟踪,但该方法存在很大的盲目性,单帧的匹配需要十分巨大的运算量才能完成,就目前的计算机硬件性能很难达到即时处理效果。基于贝叶斯滤波原理的粒子算法[3]采用构造系统状态变量的后验概率密度,采用先前观测结果对最近观测值进行修正,从而获得最优估计最后采用最优估计对模板匹配位置进行筛选,消除直接模板匹配的盲目性,很好地解决了非高斯非线性观测下的车辆跟踪问题,由于在修正和筛选的过程中需在的运算量十分巨大而且存在着粒子退化的致命问题,导致系统的实时性和鲁棒性不理想。卡尔曼滤波法使用高效的递归滤波模型,它能从一系列不完全包含噪声的测量中估计出动态系统的状态,即它不需要后验概率的修正但却能得到更优的预测结果,同时它只需要对已知的状态进行迭代更新即可不断地得到最优预测结,通过预测匹配的位置减少匹配所带来的盲目性和运算量。
为了改善跟踪系统效果,减少运算量,提高实时性。本文设计了一种基于SIFT特征结合区域卡尔曼滤波算法的视频车辆跟踪系统。由于SIFT特征具有信息丰富及对旋转、缩放、亮度等变化保持不变等优点,使用SIFT特征点抽象出目标信息,以一组SIFT特征向量描述目标区域,结合卡尔曼预测算法以各个目标区域的SIFT特征做为输入信息进行独立预测,达到减少匹配信息运算量,提高系统实时性的目的。通过使用实际交通监控视频进行的相关实验测试表明本算法能够有效地减少计算量,同时具有很好的实时性。
2 SIFT特征算法与卡尔曼滤波算法
2.1 SIFT特征算法
SIFT算法[4]是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置,尺度,旋转不变量。SIFT特征是图像的局部特征,其对旋转,尺度缩放,亮度变化保持不变性,对视角变化,仿射变换也保持一定程序的稳定性,同时拥有丰富信息量很适合用于特征的匹配。其算法步骤包括检测并定位尺度空间极值点,指定极值点方向参数同时生成描述向量两步。关键公式有:
其中L(x,y,σ)为二维图像的尺度空间,G((x,y,σ))为尺度可变高斯函数,I(x,y)为坐标,σ为尺度坐标。
其中k为高斯函数中的可变尺度,D(x,y,σ)(为高斯差分尺度空间。
其中θ(x,y)为(x,y)处梯度方向,L所用的尺度为每个关键点各自所在的尺度。
最终由各点处的梯度方向组成该点的128维方向向量即为所求的SIFT特征。
2.2 卡尔曼滤波算法
卡尔曼滤波算法[5]是一个最优化自回归数据处理算法,对于解决大部分问题,他是最优,效率最高同时也是最有用的。自从它被提出以来一直被广泛地应用于图像处理,军事制导等领域。卡尔曼滤波算法包含两个模型:
其中Xk=[xkykdxkdyk]T,(xk,yk)为目标在k时刻的位置,(dxk,dyk)为目标在k时刻的运动速度。观测向量Yk=[xckyck]T,其中xck,yck表示目标位置在k时刻的观测值。Ak,Bk,Ck为常量矩阵,Vk为观测噪声。
3 视频车辆跟踪系统流程
如图1所示,系统首先对读入的视频帧进行预处理工作,如灰度图像转换,滤波噪声消除以及对比度增强处理等。对预处理后的图像进行差分,得到感兴趣区域。对感兴趣区域采用SIFT算法提取区域特征点,使用卡尔曼滤波算法进行位置预测。读取下帧图像,在上述所得的目标最优位置进行相应的SIFT特征提取对比,若SIFT特征点分布相似则设置相应的跟踪标记,否则取消对象跟踪,依此算法得到最终的跟踪轨迹。具体各部分的实现将在第四部中论述。
4 跟踪系统的具体实现
4.1 运动目标提取
采用差分法实现运动目标的提取。
差分方法是基于图像矩阵模型,把视频帧图像(n×m个像素点)用一个n×m的矩阵G进行刻画,通过对量化后的视频帧作差分运算来获得运动目标轮廓的方法。采用当前帧与前一帧相减,计算同一位置像素点之差实现差分:
其中Dt(i,j)为差分后的绝对值,上述公式表示第t帧和第t-1帧(i,j)位置像素值之差,1≤t≤N,,N为视频帧数。Gt(i,j)表示第t帧中(i,j)位置像素点的像素值,1≤i≤n,1≤j≤m。
设置相应的阀值T把两两差分后的图像所得转换为二值图像:
其中B(i,j)为二值化后(i,j)位置像素值。
由于差分法存在着很大的局限性。当目标运动过快时会导致所得到的区域很容易会被分割成两个区域,形成两个不同的目标。对于原本属于同一个目标的区域应尽可能保持完整,由于两块区域通常相隔的距离只有若干像素,因此可以考虑使用膨胀的方法来达到两个区域连通的目的,保证区域的完整性。当目标离摄像头较远时,目标区域显得小而密集会导致在膨胀的过程中形成一个较大的区域,这对于本系统来说是一个很大的干扰因素,同时由于目标过小,特征点过少也允许我们可以舍弃此部分车辆目标,可在膨胀之前采用腐蚀的方法消除过小的区域。
通过先腐蚀后膨胀的方法得到系统所需的感兴趣区域。将感兴趣的区域还原到视频帧中消除背景区域:
基中Gt(i,j)为还原后的图像,B(i,j)为对应二值图像中(i,j)位置的值。
得到运动区域后,计算出各区域的质心坐标信息M(i,j)。
其中i_min,i_max为横向坐标的最小与最大值,j_min,j_max为纵向坐标的最小最大值。
通过上述处理最终得到系统所需的感兴趣区域
4.2 感兴趣区域SIFT特征提取
对上述经过腐蚀再膨胀,二值化处理得到的目标区域还原至原图像帧中得到的感兴趣区域使用SIFT算法进行特征提取。
对感兴趣区域进行采样,使用直方图统计各个像素点邻域像素的梯度方向。通过梯度方向决定关键点的主方向和辅方向,直至所有的像素点检测完毕。此时每个关键点包含有:位置、所处尺度、方向三个信息。
以关键点为中心取窗口,每小格中箭头方向代表此像素的梯度方向,越长说明梯度越大,采用高斯加权方法选取主要影响点。在每小块上计算8个方向上的梯度,形成种子点。为了增强稳定性,通常每个关键点使用16个种子点描述,每个种子点有8个方向的信息,因此共有128个数据,形成128维的SIFT特征向量。如图2所示。
图中中央黑点为关键点,蓝色区域即为使用高斯加权的主要影响点所处范围。经过上述做法即可得到各个感兴趣区域的SIFT特征点,以此完成对车辆目标的抽象化描述。
4.3 车辆跟踪
4.3.1 卡尔曼滤波预测算法
使用4.1中所得到的区域质心坐标作为卡尔曼滤波器的输入,对公式4中的部分变量进行一定的初始化即可完成目标位置的预测。
假设目标以加速度为a(k)进行直线运动,其中则上述的公式(4),(5)可以表示为公式(10),(11):
初始化其中[xpyp]为第一帧中感兴趣区域的质心位置。通过预测算法即可得到目标的最优位置。
4.3.2 目标匹配
当两帧图像中所有的感兴趣区域SIFT特征向理生成后,采用关键点特征向量的欧式距离做为相似性的判定依据。对感兴趣区域中的关键点在对应使用卡尔曼预测得到的位置所在区域优先找出两个与之欧式距离最近的两个关键点。当最近的距离除以次近的距离小于一定的阀值时则接受匹配事实。以此类推直到所有的特征点均完成相应的匹配,从而实现跟踪。
5 实验结果验证
本实验所使用的平台为Matlab 2009b,采用320尺寸每秒15帧共4S的实验视频进行处理,反复处理后得到平均处理速度为117.71ms/帧,即每秒所产生的帧能够在1.79s内完成响应,能够满足实时性处理的要求。
采用320尺寸每秒15帧共4S的4个不同实验视频其处理时间与准确率如表1。
实验中并没有对视频进行特殊的处理,如果采用一定策略对摄像所得固定区域进行加黑处理,即消除视线过远以及过于边缘的区域则可以达到更高的处理速度与跟踪效果。取视频1中的两帧作为举例如图3。
其中图3(a)为视频原帧灰度图,图3(b)为提取的感兴趣区域,图3(c)为SIFT特征提取并进行预测和匹配的示意图,图3(d)为实际多目标跟踪效果图,红色方框代表车辆。
6 总结
本文利用尽可能简单的图像预处理手段与感兴趣区域提取方法,结合SIFT特征提取算法与卡尔曼滤波预测算法,通过预测目标的下帧所在位置进行匹配实现跟踪。
经过实验验证取得了良好的效果,较小的运算量使之具有更好的实时性,SIFT特征的引入也使系统具有了更好的鲁棒性。
参考文献
[1]邵娜,应捷.视频序列中运动目标检测与跟踪方法研究[J].光机电信息,2009(2).
[2]陈祖爵,陈潇群,何鸿.基于改进的混合高斯模型的运动目标检测[J].中国图象图形学报,2007,12(9):1585-1589.
[3]占荣辉,辛勤,万建伟.基于最优采样函数的粒子滤波算法与贝叶斯估计[J].信号处理,2008(2).