CAMshift算法

2024-11-06

CAMshift算法(共7篇)

CAMshift算法 篇1

Camshift算法作用在于对选定的区域也就是人脸目标进行特征提取。而相较于传统跟踪部分, 本方法通过HSV颜色空间, 能够将色度与亮度进行区分处理, 进一步减少光照的影响。而Camshift算法正是在此特点下的最好方法[1], 该算法重要的一步就将图像完成了从RGB颜色空间向HSV颜色空间的转换, 随后通过对H分量的分离提取进而完成了人脸直方图的建立, 进而成为整个系统的核心。

1 实现过程

设运算得到的人脸图像为f (x, y) , w, h分别代表长与宽, j代表的是图像的最高灰度级数, 那么人脸图像我们可以用以下数学公式来描述。

在上式中, 我们将直方图中的尺度范围进行一定变换, 从[0, max (q) ]到[0, 255],

采集的视频中的像素我们可以通过直方图中相应的统计量来代替, 在此基础上, 再次量化得到结果。那么颜色概率的分布图其实就是视频图像的反相投影。这个分布图中包含了各式颜色分量的分布情况, 比如当目标的颜色概率如果趋于1的话, 那么就代表白色。背景颜色概率如果接近0的话, 就代表黑色。

在视频图像序列中, 我们可以得到人脸目标颜色的概率分布, 利用重心的方法[1], 可以通过图像目标的零阶矩与一阶矩获得, Camshift可以得到目标的质心坐标, 后续的处理与前面类似, 每得到下一帧图像, Camshift算法能够自动调节窗口的大小, 并利用当前帧的位置来预测下一帧的参数即窗口的位置与大小。具体步骤与流程如下。

1) 通过前期对人脸的识别与检测, 在颜色概率分布图中, 设定初始的搜索窗口s, w, h分别代表窗口的长与宽[3]。

2) 其次就可以采用重心的方法来搜索质心。

f (x, y) 是坐标x, y的像素值,

3) 对搜索窗口长w宽h重新设定为上步骤中搜索窗口的颜色概率分布函数。

4) 将2) 与3) 步骤不断反复运算, 当质心改变至小于设定的阈值为止。

5) 在2) 中对零阶矩与一阶矩进行计算的同时, 进行二阶矩的计算, 进而可以得到目标的长轴, 短轴, 方向角与尺度参量[4]。

目标跟踪时, 其长轴的方向角为:, 其长短轴大小分别为:

2 实验结果分析

整个运算过程是在intel双核处理器与4G内存的基础上运行, 该配置足以处理该类视频的运算。如图2所示, 跟踪框也将人体面部成功识别出来, 并开始识别追踪。

从分析结果可知, Camshift算法已经成功在人脸追踪部分运用, 取得了良好的效果, 具有一定的应用价值。

摘要:Camshift (Continuously adaptive mean shift, 连续自适应均值漂移) , 该算法也是从mean shift算法改进而来, mean shift算法能够实现对目标的跟踪, Camshift在实现跟踪的基础上, 能够将窗口实现自动调节大小, 在人体跟踪中, 相比于人体目标, 人脸所占的面积会小很多, 所以采取能够实现窗口自适应, 也就是能自动改变窗口大小的Camshift算法能够更好地实现人脸部的跟踪。

关键词:Camshift,跟踪,自适应

参考文献

[1]Babu V, Makur R.A Kernel-Based Spatial-Color Modeling for Fast Moving Object Tracking[G].Proc.of the IEEE International Conference on Acoustics, Speech and Signal Processing, 2007:901-904.

[2]Naoya Oshimal, Takeshi Saitoh1, Ryosuke Konishil.Real Time Mean Shift Tracking using Optical Flow Distribution[G].SICE-ICASE International Joint Conference, 2006Oct.18-21, in Bexco, Busan, Korea, 2006.

[3]Wu M, Peng X, Zhang Q, et al.Patches-based Markov Random Field Model for Multiple Object Tracking Under Occlusion[J].Signal Proeessing, 2010, 90 (5) :1518-1529.

[4]Cheng Chang, Rashid Ansari.Kernel Particle Filter for Visual Tracking[G].IEEE Signal Processing Letters, 2005, 12 (3) .

CAMshift算法 篇2

针对现有的虹膜跟踪问题,本文提出了一种基于Camshift[6]算法的虹膜跟踪的方法,首先使用Adboost算法定位人眼,然后使用一种圆形滑动窗口遍历整个人眼区域定位虹膜,建立虹膜的颜色概率图作为初始模板,通过颜色特征完成图像序列的跟踪。整个跟踪过程只使用一个300万像素的摄像头,不需要其他物理设备。

1 系统框架

虹膜是环绕于瞳孔周围有颜色的部分,属于眼球中层部位,约占眼部区域总面积的65%;在黄种人中,虹膜一般呈现为棕色,瞳孔为黑色,而包围在外围的白色物质我们称之为巩膜。由于巩膜与虹膜的灰度值差异很大,利用这个特点可以进行虹膜定位。

本文介绍的跟踪系统主要分为三个部分,分别是人眼定位、虹膜定位以及虹膜跟踪。整个系统的流程图如图1所示。

(1)人眼定位:包括人脸定位和人眼定位两个部分。使用Adaboost[7]算法检测人脸,在人脸检测的基础上重新训练分类器,完成人眼检测。

(2)虹膜定位:在第一步人眼检测的基础上对眼部区域进行灰度分析,使用基于灰度值圆形滑动窗的方法进行虹膜定位。

(3)虹膜跟踪:使用Camshift算法,主要包括建立初始模板颜色概率图、颜色模型匹配、更新跟踪模板三个部分。

2 人眼检测和定位

2.1 人脸检测

在人眼定位前进行人脸检测可以有效地提高人眼定位的精度。目前人脸检测的方法主要分为以下三种:

(1)基于几何特征的人脸正面识别方法。核心思想是,将人脸的面目特征对应为几何图形,通过训练出的分类器识别人脸。该方法适用于简单背景下正面人脸的检测,而在复杂背景或者存在遮挡的情况下则效果不是十分理想。

(2)基于肤色模型的人脸检测方法。将肤色模型作为检测特征判断出人脸的位置。该方法优点是计算简单且结算量小,但是存在误检现象,如易将暴露在外的人体其他部分误检为人脸。

(3)基于统计学理论的人脸检测方法。利用统计分析与机器学习的方法寻找人脸样本与非人脸样本的各自统计特征,再利用各自的特征构建分类器,用分类器完成人脸检测。

综合考虑,基于几何特征的方法算法简单并且适合本文系统的条件,所以选择基于Haar-like[8]特征的Adaboost算法进行人脸识别。文献[7]介绍了Haar-like四种基本的矩形特征,如图2所示。

所谓Haar-like特征即为上述几个基本特征,改变这四类特征的特征模板大小,并在图像的窗口内任意放置,可得到大量的脸部特征。Adaboost算法是1995年Freund和Schapire提出的一种快速人脸检测算法,是人脸检测领域里程碑式的进步。该算法根据弱学习的反馈,适应性地调整假设的错误率,使在效率不降低的情况下,检测正确率得到了很大的提高。Adaboost算法的核心思想是将若干个弱分类器组成一个强分类器。该算法能自动调整样本的权重,并能选取表现较好的弱分类器,使所有的弱分类器按一定的权值组成一个强分类器。Haar-like特征是每个弱分类器的输入,即经过Adaboost算法的训练,由几个Harr-like特征的弱分类器组成一个强分类器。使用级联方式(如图3所示)将训练出的强分类器分级组合,分类器前几级包含的Haar-like特征较少且易识别出来的,过滤出大部分非人脸;后几级特征器包含的特征数目较多,但是能到达这些层的非人脸数目也很少。在任一级的计算中,一旦获得目标“目标不在类别”的结论,则终止计算。由于前几级分类器可以过滤了大部分非人脸区域,大大减少了后几级分类器的计算量,所以这种级联结构可以显著地降低计算量。

2.2 人眼检测

通过上述方法得到了人脸区域,下一步在人脸区域进行人眼定位。本文人眼定位的算法也采用上述人脸定位的算法,具体过程与人脸定位一样,不同的是人眼定位分类器的训练样本变成了眼睛样本。与人脸检测相比人眼误检率较高,因此有必要对该分类器检测出的目标进行进一步的校验。为此将人脸面部的三庭五眼的规律加入人眼检测中,所谓三庭五眼就是将人脸的高度和宽度按比例分成几个等份,利用三庭五眼的思想和我们的实验结论可以得出:由Adaboost分类器检测出的人眼矩形框高度与人脸矩形框高度成一定关系,即

式中,face_height为人脸检测中矩形框的高度,eye_height为人眼检测中眼部矩形框的高度,eye_y和face_y是眼部和脸部检测中分类器矩形框左上角点的纵坐标。人眼定位的效果如图4所示,左图为未加入三庭五眼限制条件时分类器找到的人眼位置,右图为加入三庭五眼的限制条件后找到的人眼位置。

3 虹膜定位

由于白色的巩膜和虹膜以及瞳孔灰度值差异明显,因此可以利用眼睛的灰度信息来检测虹膜。文献[9]提出了一种基于滑动窗的眼睛灰度分析方法定位瞳孔,基本思想是使用一个圆形滑动窗口遍历眼睛灰度图像,其中灰度均值最小的圆形区域就是瞳孔。本文对文献[9]提出的方法运用在虹膜检测中。

首先将眼部图像转换为灰度图像,然后使用直方图均衡化的方式对图像预处理,使虹膜与巩膜的灰度对比更明显。图5中左图为预处理前,右图为预处理后。

在图像预处理的基础上,使用一个圆形滑动窗Ai沿着整个眼睛区域扫描,同时计算圆形滑动窗内所有像素的平均灰度值,比较眼睛区域所有滑动窗口的平均灰度值大小,其中最小值的圆心坐标就是虹膜的中心坐标。假设圆形滑动窗Ai的半径为R,其中心点在眼部图像中的坐标为(xoi,yoi),则该滑动窗口的灰度平均密度pi为[9]:

式(3)中e(x,y)表示滑动窗内该点的灰度值,We表示眼部图像的宽度。通过公式(3)计算出每个滑动窗的平均灰度值,再依次比较所有滑动窗pi的大小,其中pi最小的圆形框就是虹膜的位置。本文经过多次实验,得到滑动窗口的半径一般设定为上一步中眼部定位窗口高度的K倍。其中K值保持在0.15~0.2可达到满意的检测效果,本文所有实验中K值为0.15,图6为实验效果图。

4 虹膜跟踪

上述算法应用在单幅图片中的定位虹膜效果较好,但由于其计算量大、运算速度慢使其不能适用于视频序列,因此本文引入Camshift算法完成在视频序列中的虹膜检测。Camshift算法是利用目标的颜色模型进行跟踪,首先初始化一个搜索窗并建立的颜色概率图,使用颜色信息匹配下一帧的目标位置,并调整搜索窗口的位置和大小。Bradski[6]等人提出的Camshift算法共分为三个步骤:①目标模板颜色概率图的计算;②Meanshift[10]匹配算法;③Camshift算法。整个Camshift算法的流程图如图7所示。

4.1 颜色概率图

颜色概率图又叫做颜色直方图反向投影图。为了减少光照对跟踪目标的影响,使用HSV颜色空间建立颜色概率图。首先对HSV空间中的H分量绘制直方图,其可显示出H分量为某值时的概率或者像素个数。接着将原图像中每个像素的值用其颜色出现的概率进行替换,此时得到的便是该图像的颜色概率分布图,这里的颜色概率图是一个灰度图像,如图8所示。

4.2 Meanshift算法

Meanshift算法是一种非参数概率估计密度方法,它通过不断计算得到最优搜索窗口的位置和大小。对于离散的2D图像,Meanshift算法步骤如下:设搜索窗口为S,I(x,y)是投影图像对应的(x,y)像素点的灰度值。则搜索窗口的零阶矩M00,一阶矩M01和M10分别表示为

则S的质心为;将S的中心移动到质心位置,若移动距离小于所设定的阈值,或者到达了循环运算的最大值,则认为该情况收敛。若不满足收敛则继续计算直到满足收敛条件。

4.3 Camshift算法

Camshift算法是在Meanshift算法基础中衍生出来的,是为了解决连续序列中跟踪物体的形状发生变化而出现的。例如:当视线发生变化或眨眼状态时,虹膜由于眼睑的遮挡而呈现出不完整状态,此时跟踪模板已发生变化,继续使用初始虹膜模板将导致跟踪目标的丢失。而Camshift在应对这种问题时则表现出良好的自适应性,其能在完成前面Meanshift算法的基础上,对下一帧视频的搜索窗口的大小进行重新计算,即重新定义跟踪模板。设M20,M02,M11分别是当前帧搜索窗口的二阶矩,则有:

则下一帧的搜索窗的长度L和宽度W分别为

式中

5 实验结果

本实验使用Core(TM)i5 2.53 GHz PC,采用CMOS 300万像素的摄像头;软件系统采用基于VS2008平台的OPENCV2.0。摄像头固定在距人脸正面的50 cm处。视频每帧大小为640×480,通过改变不同视线角度和不同的眼睑遮挡程度进行实验。为了验证算法的有效性,我们找了10多位测试者,录制了近4 h的视频进行虹膜跟踪。实验所采集的视频有以下要求:①测试者为头部姿态为正脸,并且在测试过程中头部转动角度左右不超过10°;②面部光线分布合理;③眼睛部位不得为头发所遮盖;④眼部区域无化妆或者戴美瞳。

5.1 实验过程

使用Adaboost算法进行人脸和人眼检测,如图9(a)和图10(a)所示。建立初始虹膜跟踪模板后,测试者可任意改变视线方向,如图9和图10所示。为了验证Camshift的自适应性,本文还进行了闭眼测试如图9(d)和10(f)所示,实验证明闭眼之后本算法能够自动恢复目标模板继续跟踪。

5.2 实验分析

实验验证了多种情况下的虹膜跟踪:①光线发生变化时;②背景发生变化时;③虹膜部分区域被眼睑遮挡;④虹膜全遮挡(短时间或长时间闭眼);⑤头部轻微移动(包括旋转和平面移动)。实验证明本算法在以上情况中基本保证了的虹膜跟踪的有效性和实时性。为了进一步验证的算法的准确性,从第二组实验中提取出近600帧的图片进行准确率的验证。经过多次实验,我们认为:若检测到的虹膜中心值与实际值距离差在5个像素以内即认为成功跟踪,由式(12)计算跟踪率。

通过人工标注的方法确定实验中的真实值的位置,数据对比如表1所示,计算后可得左眼的跟踪率为84.7%,右眼跟踪率为84.3%。

为了进一步对比实验二的跟踪准确性,将实验二提取出来的589帧图片虹膜中心坐标值提取出来绘制出三维图形如图11和图12。图中真实值为人工标注值,测量值为程序检测值,图中x、y轴为虹膜中心的坐标值,z轴为帧数。由图可看出除少数区域存在错误点,大部分时间满足跟踪的准确性。图13为虹膜半径的跟踪情况,由于会出现眼睑遮挡情况,所以虹膜的半径也存在检测差异,从图中可以看出在100帧和210帧左右存在长时间的偏差,经过验证此时测试者处于长时间闭眼的状态,其他时间出现的波峰和波谷情况为眨眼状态,说明本算法对闭眼后检虹膜半径的检测存在一定的误检,但闭眼后的跟踪目标的恢复还是较为满意。

6 结束语

本文采用了基于Camshift算法的虹膜跟踪,使用非接触仪器达到了令人较满意的效果。实验表明该算法对于解决闭眼问题和眼睑遮挡问题都达到较好效果,但是仍然存在不足之处。整个跟踪过程允许人脸转动的面向保持在10°以内,使该算法的应用存在局限性。今后的工作可以是加入头部姿态估计,使虹膜跟踪能满足头部的移动,使该算法的应用面能更广一些。

参考文献

[1] Zhao Zheng,Fu Shengbo,Wang Yuchuan.Eye tracking based on the template matching and the pyramidal lucas-Kanade algorithm.International Conference on Computer Science&Service System(CSSS),IEEE,2012:2277—2280

[2] Yanok,Lshiharak,Btakikawa.Detection of eye blinking from video camera with dynamic ROI fixation.Systems,Man,and Cybernetics,IEEE SMC'99 Conference Proceedings,IEEE,1999;6:335—339

[3] 张闯,迟健男,张朝晖.一种新的基于瞳孔-角膜反射技术的视线追踪方法.计算机学报,2010;33(7):1273—1285Zhen C,Chi J N,Zhan C H.A novel eye gaze tracking technique based on pupil center cornea reflection technique.Chinese Journal of Computers,2010;33(7):1273—1285

[4] Mehrübeoglu M,Ha Thi Bui,McLauchlan L.Real-time iris tracking with a smart camera.Electronic Imaging.International Society for Optics and Photonics,2011;787104:1—9

[5] Martinez F,Carbone A,Pissaloux E.Radial symmetry guided particle filter for robust iris tracking.Computer Analysis of Images and Patterns.Springer Berlin Heidelberg,2011:531—539

[6] Bradski G R.Computer vision face tracking for use in a perceptual user interface.Proceedings of IEEE Work-shop Applications of Computer Vision,Princeton,NJ:IEEE,1998:214—219

[7] Violap,Jonesm.Robust real-time face detection.International Journal of Computer Vision,2004;57(2):137—154

[8] Lienhartr,Kuranova,Pisarevskyv.Empirical analysis of detection cascades of boosted classifiers for rapid object detection.Lecture Notes in Computer Science,2002;2781(2003):297—304

[9] 王先梅,杨萍,王志良.多姿态眼球中的瞳孔定位算法.计算机辅助设计与图形学学报,2011;23(8):1428—1432Wang X M,Yang P,Wang Z L.Pupil localization for multi-view eyeballs.Journal of Computer-Aided Design&Computer-Aided Design&Compputer Graphics,2011;23(8):1428—1432

CAMshift算法 篇3

Camshift算法是一种基于图像颜色特征的目标跟踪算法, 它是Mean Shift算法的改进, Camshift算法的全称是"Continuously Adaptive Mean-SHIFT", 称为连续自适应的Mean Shift算法, 它的基本思想是视频图像的所有帧作Mean Shift运算, 并将上一帧的结果 (即Search Window的中心和大小)

作为下一帧Meanshift算法的Search Window的初始值, 如此迭代下去。由于具有对目标形变不敏感, 进过优化后实时性好[1,2]等特点近年来备受亲睐。但传统的Camshift算法是一种半自动算法, 算法执行前, 需要人工选定跟踪物体的区域。国内外很多文献中对Camshift算法的半自动改进做了大量研究, 具有典型代表性的有帧差法[3]和背景差分[4]法提取进入视频监控区域的运动物体。Camshift是基于颜色核的算法, 针对运动目标的直方图进行分析[5], 优点是使得算法对目标形变不敏感, 但Camshift算法丢失了运动目标空间以及轮廓信息, 使得在光线变化明显或目标与背景颜色相近的复杂场景下易受干扰[6]。作为跟踪环境的另一重要部分的背景, 对于算法的稳定跟踪具有重要意义, 可以采用动态的更新减少噪声和光照变化对于跟踪鲁棒性的影响[7]。部分文献中, 采用颜色、边缘梯度、纹理等多个特征自适应融合的方式改进算法[8], 提高算法应对光线变化的能力;并通过修正特征直方图、设置合理搜索范围对算法进行进一步改进, 解决相似背景的干扰问题。有些改进方法, 通过将一些成熟的滤波算法引进到Camshift的视频跟踪之中, 比如卡尔曼滤波, 也起到了很好的效果[9]。针对快速运动的目标, 由于运动方向的不确定性, Camshift不能准确跟踪目标, 导致跟踪丢失.有文献研究将目标运动轨迹预测思想引入Camshift算法, 提出了一种能有效跟踪运动目标的新方法.该方法能准确预测运动目标的位置, 减少在算法中搜索目标的次数, 进而提高目标跟踪的准确性和速度[10]。同时, Camshift也是一种能够扩展跟踪运动目标数目的算法, 进过改进的算法可以同时对多目标进行跟踪[11], 使其在实际运用中更有意义。

2 Camshift算法的大致实现流程介绍

Camshift利用目标的颜色直方图模型将图像转换为颜色概率分布图, 初始化一个搜索窗的大小和位置, 并根据上一帧得到的结果自适应调整搜索窗口的位置和大小, 从而定位出当前图像中目标的中心位置。算法的主要流程分为以下几大部分:

⑴初始化运动目标模型、候选区域和二维概率分布中心位置。由于Camshift算法是一个半自动算法, 无法自动查找到进入视野里的运动目标, 需要人工选定运动物体。选择运动物体的同时确定了候选区域。

目标模型的表示: (公式和过程如果参考了其他文献, 请标注出来, 下同。)

设{xi} (i=1, 2, …n) 是选定区域的像素位置, 且区域的中心用x0代表, 定义函数b:R2→{1, 2…m}为像素xi处的颜色索引函数, b (xi) 为xi处像素点有相应直方图中颜色索引值。那么, 选定区域中第u个特征值估计的概率密度为[12]:

计算二维概率分布中心有如下公式[13]:

目标区域零阶矩:

目标区域一阶矩:

二维概率分布中心位置 (xc, yc) :

这样就得到了候选区域中心位置.

⑵调整初始窗口的中心到二维概率分布中心位置

在这里, 候选区域目标模型的定义为:

设{xi} (i=1, 2, …n) (n位选定区域中像素点个数) 是候选目标区域的像素位置, 在当前帧以y为中心, 候选模型的特征值为的颜色概率估计密度为:

其中C位归一化常数。

选用Bhattacharrya系数相似性函数ρ (y) 来表示选定和目标候选模型的相似程度。

则初始窗口到目标模型的移动距离应为:

⑶在视频相邻两帧之间对以上两个步骤反复迭代, 就实现了Camshift算法。

3 动态梯度与色调的融合及Camshift改进研究

3.1 动态梯度与色调信息的融合

传统的Camshift算法中, 对物体进行跟踪的主要依据是将运动目标的颜色直方图反向投影到候选区域, 按照像素点出现的密度来移动跟踪框到下一帧图像中最可能出现的位置。这样做的好处是算法实时性好, 迭代算法轻量而高效。

由于算法是在HSV空间下对颜色信息进行概率计算, 相对于RGB空间下的跟踪, HSV空间的信息和光照没有直接联系, 因此, Camshift算法对光线变化对跟踪的影响具有较好的鲁棒性。但由于颜色核是算法唯一跟踪的唯一依据, 不足是显而易见的, 论文旨在将梯度模型合理最优的引入到跟踪算法中, 增强算法在有颜色相近物体干扰时跟踪的鲁棒性, 不至于对运动物体跟踪丢失。

论文采用Open CV2.4.1开源计算机视觉库在VS2010搭建的平台进行开发。在新版本的Open CV中, 大量使用了Mat图像容器类, 同时它也是一般矩阵类, 因此, 利用Mat创建和操作多维矩阵是简洁高效的[14]。这就为梯度模型和色调模型的融合创造了条件。

在这里, 利用图像容器类Mat构造色调和梯度的二维二通道矩阵:

其中n, m分别是图像矩阵的行数和列数。j是一个动态值, 由选定的目标区域和候选区域的概率模型的巴氏距离大小来动态决定, j在数值上不大于m。j的数值越大, 梯度模型在整个二维二通道矩阵中所占的比重越大, 改进跟踪算法的抗颜色相近物体干扰能力越好, 同时, 计算量也越大。

经过大量实验统计, 将巴氏距离四等分, 不同距离下的j/m值为以下值时, 跟踪效果最佳:

然后求混合二通道矩阵的直方图, 将直方图反向投影, 进行迭代计算找出运动目标在下一帧中最有可能出现的位置。这样就实现了将梯度信息动态的融入到Camshift算法。

3.2 RGB空间到HSV空间转换色调通道计算的化简

考虑到引入梯度信息后, 会增加算法的复杂度, 可能会导致实时性的降低, 达不到跟踪的要求, 对Camshift算法中从RGB空间到HSV空间转换过程进行简化, 减小计算量。

3.2.1 RBG空间到HSV空间的转换方法

用RGB来表示颜色虽然方便, 但是两个相近的颜色的RGB值可能有很大差别, 不利于计算。用HSV (Hue色相、Saturation饱和度、Value (Brightness) 明度, 也叫HSB) 来表示颜色就比较符计算机表达方式, 对光线变化的数据稳定性也更好。

Camshift算法就在HSV空间小进行, 由RGB到HSV空间的转化公式如下[15]。

式中R, G, B与H, S, V分别代表个颜色分量的值。

3.2.2 H~S V颜色空间模型

由式 (1) 可以看到, HSV空间中的H分量计算相对复杂, 涉及到求算术平方根和反余弦运算, 这一部分可以优化以减少跟踪算法整体运算时间。

在保持H分量色调通道特性的基础上, 取:

继续化简可得:

这样得到的分量的表达式中, 只存在基本的四则运算, 缩短了每一帧图像从RGB空间向空间转化所需要的时间。

3.3 基于反距离加权插值的ROI噪声减除方法

在给Camshift算法初始化要跟踪的目标时, 需要人工选定跟踪框的位置, 在选取的过程中, 如果待跟踪的目标不是规则且平行于坐标轴的矩形, 采用的矩形跟踪框会引入不属于目标的背景噪声, 背景噪声会影响迭代计算的稳定性, 甚至造成目标的丢失。因此, 加入反距离加权插值使得离选定区域重心越远的像素点值越小的方式, 弱化边缘像素在整个目标区域的权重, 尽可能的减少属于背景像素点对跟踪的影响。

反距离加权插值以插值点与样本点间的距离为权重进行加权平均, 离插值点越近的样本点赋予的权重越大。

插值权重系数计算表达式为:

其中, P为指数值;

dio是预测点S0与选择区域重心Si之间的距离。

计算过程中参数p影响样点在预测点值所占权重的大小, 选择区域重心与预测点距离影响的权重按指数规律变化, 但这些权重值的总和为1。

得出反距离加权插值法的一般公式:

其中, Z (S0) 为S0处的加权后的像素值;

λi为预测计算过程中使用的各样点的权重, Z (S0) 是在Si处的像素值;N是预测计算过程中要使用的像素点周围样点的数量。

通过插值计算, 图像远离重心的像素值在整幅图像像素值得以减小, 相对将所有像素点同等看待的方法, 对矩形ROI进行反距离加权插值后的数值更加忠于实际情况。

4 实验结果

为了验证算法, 使用VS2010和Open CV搭建实验平台。在室内日光灯照射下, 使用200万像素的摄像头进行视频图像的采集。主要过程包括:程序编译, 视频设备硬件初始化, 选定目标跟踪以及后续跟踪过程。改进的算法在Core I5 M480处理器, 4GB内存计算机上达到30帧/秒以上的处理速度。符合实时性的要求。

图1中.图1 (a) 展示了跟踪算法改进前初始化目标生成的单纯色调直方图图像, 图1 (b) 是经过论文中方法改进的Camshift算法得到的初始化目标的梯度和色调混合直方图图像。可以明显看到图1 (b) 所得到的信息要比图1 (a) 丰富, 也就说明了改进方法进行跟踪依据的要素要比为改进前多, 从而提高了算法稳定性。

传统算法在实际的跟踪效果图2所示。可以明显看到, 在手掌接近面部的时候, 跟踪框扩大, 这是因为手掌颜色与面部颜色相近, 影响了算法的稳定跟踪。动态融合梯度信息的Camshift算法实际跟踪效果如图3。图3中算法在相近颜色物体干扰情况下对运动目标进行跟踪测试。对于相近色物体的干扰, 因为引入了目标的梯度信息, 算法增强了跟踪过程的稳定性, 跟踪框没有发生跳变和将手掌归入实际目标的情况。

5 总结

本文重点研究了针对Camshfit算法不足所采取的几种改进方案, 主要有以下几点:论文中采用的是根据巴氏距离动态地将梯度信息和色调信息融合的方法, 使得Camshift算法不再单单依赖颜色信息。为了弥补加入梯度信息的跟踪以后对原始算法时效性的影响, 重新定义算法中每一帧必须使用的RGB空间向HSV空间转换过程, 保持色调特征基础上优化了得到色调信息的计算步骤。使得再加入梯度信息之后算法依然具有较好的实时性。考虑到手工选定矩形跟踪框时, 会引入背景成为跟踪的噪声, 论文中从一般情况出发, 弱化初始跟踪框边缘部分像素值在整个图像中的比重, 得到了很好的效果。

摘要:将梯度信息引入到Camshift算法之中, 定义Camshift算法的梯度模型。依据运动目标和背景图像直方图的Bhattacharyya距离来动态决定梯度模型在查找算法中的决定权重, 减小加入梯度后对算法时效性的影响;在Camshift算法求运动目标色调分量的过程中, 改进由RGB空间到HSV空间转换计算的方法, 减少反余弦和开方运算。在色调分量Hue基础上定义一种Hue分量, 提高颜色空间之间的转换效率;在对目标跟踪框内颜色直方图进行计算时, 以选取框重心位置为中心, 距离中心越远的像素在颜色直方图中的比重越小.减小在选取运动物体初始位置时引入的背景噪声, 提高跟踪算法的稳定性。实验证明:经过上述的改进, 使得传统的Camshift算法在背景颜色与运动目标和有相似颜色物体对运动目标造成干扰的情况下的跟踪鲁棒性得到提高。

CAMshift算法 篇4

运动目标跟踪就是在一段序列图像中的每一帧图像中实时地找到所感兴趣的目标所在的位置[1]。运动目标跟踪是计算机视觉和图像处理领域研究的核心内容之一,它融合了模式识别、人工智能等多种不同领域的理论知识。在人机交互、医疗诊断、视频监控、智能交通等领域中有着广阔的应用前景。

Meanshift算法由于无需参数、高效、快速模板匹配的特性[2],在目标跟踪领域得到广泛的应用。但是,Meanshift算法在目标跟踪过程中缺乏必要的模板更新,其固定不变的核函数窗宽在目标存在尺度发生明显变化时,会导致尺度定位不准确,甚至造成目标丢失[3]。Bradski提出了连续自适应漂移算法(Camshift),对图像序列的每一帧做Meashift运算 , 同时实现 了对目标 模型进行 自动更新 。Camshift算法能够自动调节窗口的大小以适应跟踪目标的尺寸的变化,但是在大面积相近颜色干扰条件下,Camshift算法与Meanshift算法一样不能实现对运动目标的有效跟踪。卡尔曼(Kalman)滤波器是一种对动态系统的状态序列进行最小均方误差估计的最优滤波器[4],利用运动目标当前时刻的位置以及速度信息,可准确地预测出目标在下一时刻的位置和速度。

本文提出了一种改进的Camshift和Kalman结合的目标跟踪算法,将目标图像的HSV模型的三个分量进行加权建立一种新的目标颜色模型,然后由对整帧图像计算反向投影改为比搜索窗口稍大的区域计算反向投影,减少了相似背景的干扰。在目标被遮挡时,引入了Kalman滤波器,使目标在短时间遮挡时,仍然可以实现对目标的有效跟踪。

1 算法原理

1.1 Camshift算法

Camshift算法是基于Meanshift的改进算法,主要由反向投影图、Meanshift算法和Camshift算法三部分组成[5]。

Camshift算法首先将图像由RGB颜色空间转化为HSV颜色空间[6]。用图像的H分量建立目标的颜色直方图,再将原始图像的像素值用直方图相应像素的统计量所代替,重新量化得到图像的颜色概率分布图。

Camshift算法将视频序列的所有帧做Meanshift运算,把上一帧的运算得到的搜索窗的大小和中心作为下一帧Meanshift算法搜索窗的初始值。如此迭代下去,就可以实现对目标的跟踪。

1.2 Kalman滤波器

Kalman滤波算法是一种基于最小方差的最佳线性递归滤波算法,它能够预测视频图像下一帧区域的中心位置,更新当前帧的目标区域。Kalman滤波器的状态方程为式(1)、观测方程为式(2)。

式中X(k)=[x(k) y(k) Δx(k) Δy(k)]T为状态向量,x(k),y(k)分别为运动目标中心坐标在x轴和y轴的分量。Z(k)=[x(k) y(k)]T为观测向量,x(k),y(k)表示当前帧观测到的目标中心在x轴和y轴的坐标分量。

式中 为系统的状态转移矩阵, 为系统的控制矩阵, 为系统的观测矩阵,w(k),v(k)分别为过程噪声和测量噪声,它们是均值为零的高斯白噪声且相互独立,其协方差分别为Q,R,T为采样间隔。Kalman滤波器的引入可以达到预测目标位置的目的,克服运动目标速度过快、目标被遮挡以及多运动目标之间的相互干扰等导致的跟踪失效问题。

2 算法改进及实现步骤

传统的Camshift算法只利用了HSV颜色空间的H分量作为直方图的模板信息来求颜色概率分布图,这样当待跟踪的目标周围背景的颜色与目标模型H分量颜色相似时,跟踪的准确度就会大大降低[7]。考虑到HSV颜色空间的S(饱和度)分量和V(明度)分量对有效分离运动目标有影响,所以将三个分量进行线性加权,建立一种新的目标颜色模型,其中H分量作为主要的特征参数。

Camshift算法在进行目标跟踪时,需要将每一帧图像的反向投影图计算出来,然后调整搜索窗实现对目标概率最大的区域进行定位。由于相邻两帧图像之间相差很小,所以在下一帧只需计算比当前帧的窗口稍微大的范围内的反向投影图。这样不仅可以减少计算量,同时避免了相近颜色运动物体的干扰,从而保证了跟踪的质量,实现对运动目标的有效跟踪。改进Camshift算法的框图如图1所示。

改进的Camshift算法实现步骤为:

(1)读取视频帧,将彩色图像由RGB转化为HSV色彩空间;

(2)选取感兴趣区域或目标,设定初始跟踪窗口;

(3)计算比当前窗口大的范围内图像的三个分量H,S,V的反向投影图PH,PS,PV,并进行加权得到总的反向投影P,即 ,α,β可根据不同的视频确定;

(4)运行Meanshift算法,重新获得搜索窗口新的位置和大小;

(5)在下一帧视频图像中,用第(4)步获得的值初始化搜索窗口的位置和大小。跳转到(3)继续运行。

将改进的Camshift算法与Kalman滤波器结合,实现对遮挡后的目标重新跟踪,达到更好的跟踪效果。算法框图如图2所示。

首先用搜索窗口的质心初始化Kalaman滤波器的初始状态X0,根据式(1)对窗口的位置进行预测,式(2)对预测的结果进行修正,最后将由Kalman状态修正 方程得到 的状态作 为下一时 刻改进Camshift算法的输入。

3 实验结果与分析

本文算法是在Visual Studio 2008及Open CV2.1函数库编写的软件平台上实现的。实验选用AVI格式的视频序列,分辨率为640×480。实验选择在相似背景干扰条件下和运动目标被遮挡两个方面来验证文中提出算法的跟踪效果,与传统的Camshift算法的跟踪效果进行对比分析。实验结果为如图3至图6所示。

图3表示传统Camshift算法跟踪效果图像,由于背景云彩与运动目标直升机的颜色相近,导致跟踪窗口对飞 机的定位 不准确。 图4表示改进 后的Camshift算法的跟踪效果图像,由于在计算反向投影时融合了目标区域图像的三个分量值,提高了匹配的精度。从图中可以看出改进后的Camshift算法在飞机与云彩颜色相似的条件下能够实现对直升机的准确跟踪。

图5、6表示当运动的小球被遮挡时,Camshift与Kalman融合算法与本文算法的跟踪效果图像。图5中小球被木块遮挡后再次出现时,跟踪窗口未能及时地将小球跟踪。图6中红色窗口是Camshift跟踪窗口,蓝色窗口表示Kalman预测窗口。可以看到,当小球被木块遮挡后再次出现时,跟踪窗口仍然能准确、及时地跟踪上小球。

实验结果表明,在相似背景颜色干扰、运动目标遮挡条件下,改进的Camshift与Kalman融合算法比传统的Camshift跟踪效果明显,能够实现对运动目标准确、实时地跟踪。

4 小结

CAMshift算法 篇5

1 Camshift算法在手势定位中应用

1.1 Camshift算法简介

该算法的核心思想是将视频图像的所有帧作Mean Shift运算,并将上一帧的结果f搜索窗的质心和大小)作为搜索窗的初始值,并通过一直迭代下来实现对目标的跟踪。具体算法步骤如下:

1)初始化搜索窗的大小和位置。

2)计算搜索窗内的颜色概率分布。

3)运行Mean Shift.获得搜索窗新的大小和位置。

4)在下一帧图像中用(3)中的值重新初始化搜索窗的位置和大小,再跳转到(3)继续进行。

5)计算跟踪目标的方向和尺度:

二阶矩:

目标长轴的方向角:

图像中目标长轴和短轴的长度计算公式:

1.2 应用了Camshift算法的手势定位

图1是Camshift算法手势定位的原理框图,其首先是把图像转换成适当的颜色模型,然后提取肤色区域,再在肤色区域上求取直方图,最后利用Camshift算法定位手势。应用了Camshift算法的手势定位在一定程度上去除了背景了肤色相近颜色干扰,但该方法由于直接提取肤色区域的直方图,无法去除手臂的干扰。

2 采用模板阈值修正的改进型Camshift算法研究

2.1 手势定位原理框图

图2是模板阈值修正方法原理框图。首先对输入的模板图像利用模板阈值修正计算出掩码图像阈值。

图3是改进的手势定位原理框图。原理从视频中采集图像,利用已计算出的阈值计算出掩码图像,利用掩码图像缩小提取直接图色调范围,利用改进后的Camshift算法定位手势,最后输出手势矩形,循环进行直方图计算与Camshift算法。

2.2 模板阈值修正

模板阈值修正是为了改进Camshift算法跟踪颜色时容易受到相近颜色干扰,达到更好的去除手臂干扰的效果,其步骤为首先利用一张背景纯白里面只有手掌的图片作为模板,对这张模板利用转换为HSV模型,转换公式如下:

其中H为色调,S为饱和度,S为亮度,R,G,B分别为图像的R(红),G(绿),B(蓝)分量。

然后利用上述公式计算直方图方法计算出手掌的H,S,分量的直方图。求出H、S、分布阳密集的区间,利用这个区间计算出区间的端点。作为制定阈值的依据。为去除手臂对定位的影响,本文利模板阈值修正方法,使得取得的阈值完全去除手臂影响为止。由于H(色调)在手掌与手臂上差别较大,利用这个特点,对取得的H(色调)两个端点利用修正系数方法使得新H(色调)值逐步缩小到手掌区域。

这一步可以逐步迫近到一定程度,再利用同样方法对S(饱和度)进行微调。直到结果满意为止。

利用以上计算出阈值对图像进行简单处理,使得输出的区域大大缩小,加快Camshift算法计算直方图速度。肤色值我们用α,非肤色区域用β表示,即可以得到掩码图像S为:

在上述公式(15)中,因为α,β是互斥的,可以推出等式成立。利用得到的掩码图像,在Camshift算法中对感兴趣区域求取直方图,这样得到的直方图只适应于手掌同时去除手臂干扰。利用这个直方图在每次跟踪更新感兴趣区域的同时更新直方图,以达到自适应跟踪的效果。

3实验结果

实验结果如图6、图7所示,没有采用改进型的Camshift算法将相近肤色手臂带入定位结果,没有完全识别出手掌,会给后续的手势识别处理带来了极大不便。采用基于模板阈值修正的Camshift方法,对手掌进行准确定位跟踪,完全去除手臂背景肤色相近颜色和手臂肤色干扰。

4 结论

本文提出了基于模板阈值修正的Camshift算法来代替以前使用肤色定位算法。对人手这个形状多变休进行定位。有效克服背景干扰,成功定位了手势。实验表明,本文提出的算法可以达到实时手势识别定位的需求。

该算法的提出,虽然可以干扰而较精确的定位到手势,但由于Camshift算法本身的缺点,即需要一个初始输入矩形,使得本文提出的算法无法实现完全自动手势定位,在日后的研究工作将着重对手势的自定位做出努力。

摘要:在基于视觉的手势识别中,手势定位是一个重要环节。从实时性的角度考虑,目前多采用Camshift算法,能实现了对动态手势的实时跟踪。但该算法的缺陷在于容易受到其他部位肤色的干扰而产生误判。该文提出使用了模板阈值修正的改进型Camshift算法的手势定位算法。实验表明,该算法快速准确可靠,并且较好地处理了跟踪过程中大面积肤色干扰的问题,取得了较好的效果。

关键词:手势定位,Camshift,模板阈值修正

参考文献

[1]Black M,Jepson A.A probabilistic framework for matching temporal trajectories:Condensation-based recognition of gestures and ex-pressions[C].Fifth ECCV,Freiburg,Germany,1998:909-924.

[2]Bretzner L,Lindeberg T.Qualitative multi-scale feature hierarchiesfor object tracking[J].Journal of Visual Communication and Image Representation,2000(11):115-129.

[3]Fukunaga K,Hostetler L D.The estimation of the gradient of a density function,with applications in pattern recognition[J].IEEE Trans-action on Information Theory(S0018-9448),1975,21(1):32-40.

[4]Comaniciu D,Meer P.Mean shift:A robust approach toward feature space analysis[J].IEEE Transaction On Pattern Analysis and Ma-chine Intelligence(SO162-8828),2002,24(5):603-619.

[5]Bradski G R.Computer vision face tracking for use in a perceptual user interface[J].Intel Technology Journal,1998,2:214-219.

[6]Freund Y,Schapire R E.A decision-theoretic generalization of on-line learning and an application to boosting[J].Journal of Computer and System Sciences,1997,55(1):119-139.

CAMshift算法 篇6

视觉假体根据在视觉通路的不同层次植入微电极刺激阵列,分为视皮层假体、视神经假体和视网膜假体3种。不管是哪种假体,都是通过电刺激视觉通路来恢复盲人的功能性视觉,而视觉信息都是通过光幻视点的形式提供给植入者的。所谓光幻视点,就是由机械刺激或电磁刺激视觉系统所引起的光感。在视觉假体中,光幻视点通常指在电刺激视觉通路之后所激发的光点,理论上可以认为是组成假体视觉的一个像素点。不同的电极刺激会产生不同位置的光幻视点,尤其是非刺激视网膜方法(如视皮层假体和视神经假体)产生光幻视点的位置很难预测。因此,为了对这些光幻视点加以利用以形成有用的视觉信息,确定光幻视点的特性,诸如空间位置、大小尺寸和形状就非常重要。模拟光幻视点就是临床上真正光幻视点的有效模拟模型,其定位实验的结果对于微电极阵列的参数设计以及假体植入者的临床训练都具有重要意义。

在视觉假体研究中,作为一种心理物理学实验,在模拟光幻视点定位实验中对视力正常的受试者进行眼动监视是必要的,因为受试者感知到的光幻视点位置会随眼动而变化[2],从而影响实验的准确性;并且临床上假体植入后患者也不能通过眼动去获取图像,所以为了能更好地去模拟假体植入患者,受试者在进

行模拟光幻视点定位评估实验时应避免眼动,配合眼动监视装置,使视线固视于视野中心。此外,若能对受试者的各眼动参数指标进行数据挖掘与分析,则对模拟光幻视点定位实验后期的定量分析打下坚实的基础。

作为记录或监视眼动的装置,眼动跟踪系统根据借助的媒介不同,可分为硬件为基础和软件为基础两种。其中以硬件为基础的眼动跟踪系统通过经角膜和瞳孔反射进入摄像头的红外光实时记录眼动情况,因此对硬件的要求较高,往往比较贵重[3,4];此外,由于在模拟光幻视点定位实验中受试者需佩戴5DT头盔式显示器,由于受试者的眼睛处于密闭环境中,若用一般的眼动仪,则无法监视到受试者眼动的变化,因此只能用微摄像头植入5DT头盔式显示器之内,开发眼动跟踪程序以监视眼动。而基于软件的眼动跟踪技术,主要由摄像头、计算机及配套软件组成。受试者无需佩戴任何检测仪器,先通过摄像头获取眼睛的图像,利用数字图像处理方法分离与定位瞳孔,再用软件技术计算眼动的数据与路线[5]。因此,在不需要进行精密眼动记录或监测的场合,基于软件的眼动跟踪系统是比较实在与经济的选择。

1 眼动跟踪系统的硬件系统

硬件系统主要由图像采集模块以及辅助模块组成。

1.1 图像采集模块

图像采集模块包括微型摄像头、计算机、图像采集卡和电源。

微型摄像头嵌于5 D T头盔式显示器中用于眼动跟踪,如图1所示。其主要性能参数为:30万像素(PAL:(H)500×(V)582),PAL625线,50Field/s,内同步,信噪比大于46dB,伽马特性0.45,f3.7mm尖椎针孔,最低光照度0.05Lux,消耗功耗为12V±10%DC×100mA。

计算机运行眼动监视程序,主要配置为2.4GHz CPU,512MHz DDR RAM。

图像采集卡提供微型摄像头特需的接口以采集图像,将摄像头采集的视频流经AD转换,通过PCI总线实时传至计算机内核,转换成计算机可用的数字格式。

电源是将220V、50Hz的市电转换成微型摄像头工作所需的直流12V电压和100mA电流的装置。

1.2 辅助模块

辅助模块包括5DT头盔式显示器、红外二极管、双路直流稳压稳流电源箱和头架。

美国5DT公司生产的5DT-800-26头盔式显示器具有3D显示功能,具有良好的沉浸感与隔光效果,是微型摄像头的载体所在,如图2所示。

在黑暗的实验环境中,红外二极管嵌于5DT头盔式显示器里的狭小空间中,用来提供光源以进行眼动跟踪。

双路直流稳压稳流电源箱为红外二极管供能。

头架用来使受试者头部固定,可根据受试者的身高、体型的不同而调节到适当的位置,确保在进行实验时受试者不会出现不适感。

2 眼动跟踪系统的软件系统

在自制的简易眼动装置中,采用传统的眼动跟踪算法常常因达不到其硬件要求,而不能达到很好的跟踪效果。如基于区域增长的瞳孔定位算法,其跟踪距离及跟踪速度都较好,但是去噪能力较差,遇眨眼和闭眼等情况跟踪效果就会变差;Hough变换圆检测算法受噪声和曲线间断的影响较小,在噪声较大的图像上仍可以对目标进行检测,遇眨眼、闭眼等情况依然能够进行很好的跟踪,但是由于空间复杂度较高,计算量很大,使眼动跟踪的实时性较差,不能做到在线分析等[6]。基于颜色直方图的Camshift目标跟踪算法,能解决上述两种跟踪算法存在的问题。

2.1 Camshift跟踪算法

Camshift(Continuously Adaptive Mean Shift,由Braski提出)算法是一种以跟踪目标的颜色直方图为目标模式的跟踪算法。在跟踪目标的过程中,利用跟踪目标的颜色直方图模型得到每帧图像的颜色投影图,根据每帧图像的跟踪结果自适应地调整跟踪窗口的位置及大小,从而得到跟踪目标的中心位置。

由于光亮度变化对GRB颜色空间的影响较大,为了减少光亮度对跟踪效果的影响,Camshift算法是将RGB颜色空间映射为HSV颜色空间后,再进行后续处理的。

2.2 基于Camshift目标跟踪算法

本文中的眼动跟踪软件系统是基于对Camshift算法进行改进的眼动跟踪算法。Camshift算法不受跟踪目标形状变化的影响,可有效地解决目标图形变形和遮挡等情况,且运算效率较高,实时性很好。在其基础上,加入眼动跟踪模块,就能有效解决上述两个经典算法中的跟踪问题,能较为理想地进行实时眼动跟踪与分析,且在眨眼闭眼等情况下依然能有效地进行眼动跟踪,实为简易眼动跟踪系统的理想算法。

2.3 在Camshift算法中加入眼动跟踪计算模块

若忽略眼球长轴的多余部分,将人眼抽象为一个球体,如图3所示。

眼动计算模块的代码如下:

加入到求搜索窗口中心位置的算法模块,则可以得到所选窗口中心区域(瞳孔)实时变化的坐标位置,由此可得瞳孔移动的距离L(像素数),角度θ为:

若同时记录系统时间,则可以得到眼动的平均速度v为:

图4为原始的眼部图像,其中,椭圆形区域内为跟踪目标和,图5为其对应的灰度投影图。

通过设置窗口上方的V,S通道值,可以改变搜索窗口的大小,使之尽量贴切眼部角膜区,最好是瞳孔区,这里的背景灰度单一,使Camshift算法尽量少受影响,同时也便于计算搜索区域的质心。

图6所示是眼动跟踪程序中的一些热键。欲使跟踪初始化,须先用鼠标选中所要跟踪的目标区域。

图7是基于Camshift算法的眼动跟踪实时分析效果图。当在瞳孔区域选定初始搜索窗口后,从第一帧视频流开始实时跟踪眼动,并实时地分析和显示眼动数据,如瞳孔移动的距离和角度等,在输出窗口实时地分析出来。图7中所示的有眼动的水平速度、垂直速度、平均速度以及瞳孔转过的角度4项指标,其中有些值的负号表示方向意义。当然,根据需要还可以编程计算其他的指标。

2.4 眼动监视报警系统

假设背景图像静止不动(通过头架固定头部保证眼部背景图像静止不动),当受试者有相当幅度的眼动(报警阈值根据需要可调)或眨眼、闭眼等情况时,通过帧间差分技术提取运动目标区域。当受试者的眼动幅值或速率超过模拟光幻视点定位实验中所规定的阈值时,系统发出蜂鸣声,以警告受试者控制眼动,直至警报消失。图8为眼动监视报警系统的调节窗口大小及调节报警阈值大小的界面。图9为实时眼动报警系统示意图,当搜索窗口中出现灰度变化的像素点时,便会鸣发报警,灰度变化处用闪烁的红圈表示。

2.5 对Camshift目标跟踪算法的改进

如果跟踪的目标像素在整个图像中所占的比例并不大,而在两帧间位移较大时,Camshift根据上一帧图像跟踪结果的搜索窗口可能会与下一帧图像的目标图像失去联系,导致跟踪丢失。一般认为,如果初始选择窗口得到的目标图像零阶矩为M00,而后续帧中得到M00′<0.2M00的话,便可认为该跟踪丢失[7]。因此,当目标帧间的位移较大时,可对目标图像进行简单的运动估计,运用估计值对新搜索窗口进行平移,增加新搜索窗口与目标图像联系的可能性,提高跟踪效率。

目标跟踪算法以Camshift算法为核心,对搜索窗口进行运动检测。如果首次目标跟踪丢失,则增大搜索窗口尺寸,进行二次搜索。如果二次搜索后仍不见跟踪目标,则维持搜索窗口在一定大小,继续搜索。当在后续帧中出现跟踪目标时,再进行搜索跟踪。通过这种方法可以提高跟踪的可靠性。

3 结束语

本研究利用Camshift目标跟踪算法,成功地实现了对模拟光幻视点定位实验中眼动的跟踪定位,并在Camshift算法中加入了眼动跟踪计算模块,实现了对眼动量化的计算,为探索自制简易的眼动装置作出了一定的尝试。由于人眼模型的简单抽象,硬件设备和软件计算上的偏差,这些数据不可能非常精确。但是,对于定性的眼动监测,或者在对眼动量化要求不高的情况下,这种眼动跟踪系统还是有实用的价值。

此外,由于Camshift算法是基于颜色直方图进行搜索跟踪的,因此保证跟踪目标的颜色独特性非常重要。同时,还需要保证环境中光亮度变化保持稳定,以免影响跟踪效果。但是,在模拟光幻视点定位实验中不存在这一问题,因为实验环境是在黑暗中进行的,利用红外二极管作为照明光源,所以环境是十分稳定的。

参考文献

[1]赵新灿,眼动仪与视线跟踪技术综述[J].计算机工程与应用,2006,12(3):118-119.

[2]Gislin Dagnelie,Jacob V.Vogelstein.Phosphene Mapping procedures for Prosthetic Vision[J].OSA/VSIA,1999.MB3:294-297.

[3]L Young,D Sheena,Methods&designs:survey of eye movement recording methods[J].Behav Res Methods Instrum,1975.7(5):397-224.

[4]Arnon Amir,Lior Zimet,Alberto Sangiovanni-Vincentelli.An embedded system for eye-detection sensor[J].Computer Vision and Image Understanding,2005,98:104~123.

[5]Ditchburn R W.Eye movements and visual perception[M].Clarendon press Oxford,1973:48-49.

[6]向洋.眼动跟踪系统中的检测算法[J].船舰电子工程,2007,27(1):23.

CAMshift算法 篇7

关键词:压缩跟踪,CamShift,尺度自适应,相似色干扰

近年来,运动目标跟踪技术被大量应用到人们的生产和生活中,人们对目标跟踪领域的研究也在不断的深入,并取得了许多不错的成果。根据对目标外观的建模方式,可以把目标跟踪方法大致分为[1]: 基于生成模型的跟踪方法与基于判别模型的跟踪方法。基于生成模型的目标跟踪算法主要是在上一帧目标位置的相邻区域进行搜索,得到最为相似的区域即为目标区域。这类算法在跟踪的同时必须在线更新外观模型,而更新环节又很容易引入误差,带来漂移等问题。

基于判别模型的目标跟踪算法是利用训练好的分类器将目标和背景分为两类,这种算法同时使用了背景和目标信息,可以有效减少目标漂移的问题。Babenko等人[2]提出的MIL多示例学习方法有效地解决了因部分遮挡和外观变化引起的漂移问题。但是,该算法不能对长时间完全遮挡进行准确跟踪。Zhang等人[3]提出了压缩跟踪算法。该算法简单高效且鲁棒性好。然而当外观模型不能准确描述目标时,该算法对目标的跟踪就会出现漂移等问题。针对这一问题,本文采用Cam Shift和压缩跟踪算法相结合的方法,从不同角度预测目标位置,利用Cam Shift的预测位置对压缩跟踪算法得到的不准确的位置进行矫正。又由于Cam Shift算法是根据目标的H分量颜色特征进行位置预测的,容易受到背景中相似色的干扰,所以本文采用目标的H-S二维概率分布直方图作为目标特征来解决背景中的相似色干扰问题。除此之外,压缩跟踪算法的跟踪框大小是由初始目标大小决定的,而在跟踪过程中目标的尺度显然是变化的。为了解决这一问题,本文利用Cam Shift自适应调整窗口大小和位置的原理,对跟踪结果的窗口进行自适应调整。

1 压缩跟踪算法

压缩跟踪算法( Compressive Tracking,CT) 是在压缩感知理论[4-5]基础上提出的一种快速鲁棒算法。首先根据压缩感知理论的RIP条件,生成非常稀疏的随机矩阵,通过该矩阵对图像的Haar-Like特征进行降维,然后把降维后的特征输入到朴素贝叶斯分类器中分类。再对每一帧进行在线学习采集正负样本更新分类器。

1. 1 随机测量矩阵和特征提取

由压缩感知理论可知,一个可压缩的高维信号x∈Rm可以通过以下关系式投影到一个低维空间v∈Rn上,并且高维信号x的信息被完整地保留在低维信号v中,即

式中,P∈Rn × m是一个符合RIP条件的稀疏矩阵,n≤m。文献[2]将随机测量矩阵P定义为

其中,s随机取得2 或3。提取目标降维后的特征公式[4]为

式中: N表示特征图像块的数目,其值随机取得2 或3; R表示在候选区域内随机选取的图像块。

1. 2 分类器的构建与更新

采集到的每个样本的低维特征v中的每个元素都是由一组Haar-Like特征线性组合而成,并且假定它们都是独立分布的,正负样本的条件概率p( vi| y = 0) 和p( vi| y = 1 ) 均服从高斯分布,利用朴素贝叶斯分类器[6]对特征进行建模。

其中,y取1 和0,分别表示正样本和负样本。假设分类器中两个类的先验概率和特征v中每个元素的条件概率分布如下

式中,μi1和σi1、μi0和σi0分别表示正、负样本的第i个特征的均值和标准差。

最后,通过比较每个样本在分类器中H( v) 值的大小,找到H( v) 最大值所对应的候选样本,则该样本即为本帧的目标位置,然后重新采集正负样本,根据样本信息对相关参数进行更新

式中,λ 为学习因子,0 < λ < 1,且为常数,表示分类器的更新程度。

2 Cam Shift算法

Cam Shift算法是基于Mean Shift的改进算法,运行效率较高。算法的流程如下:

1) 初始化跟踪窗口;

2) 计算目标的反向投影图;

3) 执行Mean Shift算法,不断循环计算跟踪框内图像的质心,移动跟踪框的位置使跟踪框的中心与质心重合,当移动的距离小于指定值或循环的次数足够多时,终止循环;

4) 根据步骤3) 得到的结果,计算出窗口的位置坐标和尺度大小,即为这一帧的跟踪结果;

5) 进入下一帧,跳转至步骤2) 。

3 基于Cam Shift的压缩跟踪算法

3. 1 算法概述

本文提出的基于Cam Shift的压缩跟踪算法主要是为了解决3 个问题:

1) 压缩跟踪算法一旦出现跟踪漂移,就很难再找回目标,本文利用改进的Cam Shift得到的位置信息来矫正压缩跟踪算法不准确的跟踪位置,增大目标和背景的差异性,提高算法的准确性。同时Cam Shift采用H-S二维直方图的反向投影图来预测目标位置能够有效的解决相似色干扰带来的跟踪不准确的问题。

2) 压缩跟踪算法在整个跟踪过程中窗口的大小一直等于初始化阶段的跟踪窗口的大小,然而在运动过程中视频序列捕捉到的目标大小却很难保持不变[7]。当运动目标尺度变大时,跟踪框外存在大量的目标信息,使得采集到的负样本中可能包含目标的特征,从而降低了目标和背景的差异性; 当目标缩小或姿态变化时,跟踪框内包含许多的背景信息,影响目标的参数模型,进而导致跟踪漂移或者跟踪失败[8]。针对这一问题,本文采用Cam Shift自适应调节窗口大小的原理,在得到目标中心点位置后,根据目标位置的各阶矩自适应调整窗口的大小和角度。

3) 压缩跟踪算法采用固定不变的更新方式,即更新分类器的学习因子是预先设定保持不变的,这样不仅易于引入噪声和误差,而且很容易偏向新样本而遗忘之前学习的样本。另外,Cam Shift算法中目标模板也是由初始帧决定的,在跟踪过程中一旦目标结构变化较大时就容易导致跟踪失败。对于模板更新问题,本文通过计算前一帧和当前帧之间的匹配程度,来更新学习参数和目标模板。

3. 2 算法流程

基于Cam Shift的压缩跟踪算法的大致流程如下:

输入第t帧图像,上一帧目标位置为pt-1。

1) 根据上一帧位置,利用改进的H-S Cam Shift算法预测第t帧目标的位置pt0。

2) 在t-1 帧目标位置pt - 1周围小于一定范围内采样N个图像块,然后提取这些图像块的降维特征。

3) 计算各个样本图像块与预测位置之间的距离

式中,psj( x)和psj( y)分别表示第j个样本在x轴和y轴上的位置坐标。若距离大于预设阈值,根据距离为每个样本设置位置权值,距离越远权值越小,距离越小权值越大,并转入步骤4) ; 若样本位置和预测位置距离小于预设阈值,则输出预测位置pt0作为当前帧的目标位置pt,转入步骤5) 。

4) 将样本权重wj和样本特征输入到分类器判别函数

找到H1( v) 最大值所对应的样本即为本帧目标位置pt。

5) 根据前后两帧图像的巴氏距离[9]p判断图像的匹配程度。若p > ε,接受更新,学习因子为: λ' = λ/ρ,Cam Shift的目标模板为当前帧跟踪窗口内图像; 反之,若 ρ≤ε,前后两帧跟踪到的图像差异较大,可能出现遮挡等情况,为了避免引入噪声,此时不更新参数和模板。

6) 在目标位置周围采集正负样本,依据新的学习因子更新分类器。

7) 根据目标位置图像的各阶矩调整跟踪窗口的大小,输出跟踪窗口即为目标位置。

本帧算法结束,读取下一帧。

4 实验结果及分析

本实验在Visual Studio 2013 和Open CV2. 4. 8 环境下进行。选取三组各大经典算法提供的测试视频序列: lemming,skating和soccer作为本实验的测试序列,这些视频序列存在着相似色干扰、目标尺度变化、姿态变化、运动模糊、目标遮挡等问题。然后将本文改进后的算法、CT算法和Cam Shift算法的跟踪结果进行比较,着重分析本文算法与压缩跟踪算法的差异。实验结果如图1,2 和3 所示。

相似色干扰: 根据图1,2,3 得,当出现相似色干扰时,Cam Shift算法不能准确地跟踪目标,而本文算法和CT算法都能较好地处理相似色干扰问题。

尺度旋转: 从lemming序列的第135 帧、soccer序列的第13 帧可以看出,当目标变大时,CT算法的跟踪框外包含了许多目标信息,这将导致负样本的采样过于靠近目标区域,使得背景和跟踪目标的可区分度降低。而本文算法可以自适应调整窗口的大小,使得目标能包含在跟踪窗口内。由skating的第56,68 帧和soccer的第49,68 帧可以得出,当目标旋转、尺度变化时,CT算法的模型参数中引入了许多背景信息,出现跟踪漂移,甚至跟踪失败。

运动模糊: lemming序列的第232 帧由于目标移动过快而导致运动模糊时,CT算法出现跟踪错误,而本文算法仍能很好的跟踪目标。

目标遮挡:遮挡现象是目标跟踪中较为常见的问题。由lemming序列的第350,393帧和skating序列中的第120,298帧可以看出,当目标被遮挡或消失后,本文算法仍能准确地跟踪目标,而CT算法则出现错误。

选择5 个具有代表性的视频序列进行测试,比较本文算法与经典算法: 多示例学习MIL,TLD,CT算法的跟踪成功率。各算法的跟踪成功率如表1 所示。

%

由表1 可以看出,本文算法性能稳定,对于不同的视频序列仍具有较强的鲁棒性和稳定性。

5 小结

上一篇:桩身混凝土下一篇:日出日落时刻