窦 超,孟立凡,任景平
(中北大学仪器科学与动态测试教育部重点实验室,山西太原030051)
Camshift算法作用在于对选定的区域也就是人脸目标进行特征提取。而相较于传统跟踪部分,本方法通过HSV颜色空间,能够将色度与亮度进行区分处理,进一步减少光照的影响。而Camshift算法正是在此特点下的最好方法[1],该算法重要的一步就将图像完成了从RGB颜色空间向HSV颜色空间的转换,随后通过对H分量的分离提取进而完成了人脸直方图的建立,进而成为整个系统的核心。
设运算得到的人脸图像为f(x,y),w,h分别代表长与宽,j代表的是图像的最高灰度级数,那么人脸图像我们可以用以下数学公式来描述。
在上式中,我们将直方图中的尺度范围进行一定变换,从[0,max(q)]到
采集的视频中的像素我们可以通过直方图中相应的统计量来代替,在此基础上,再次量化得到结果。那么颜色概率的分布图其实就是视频图像的反相投影。这个分布图中包含了各式颜色分量的分布情况,比如当目标的颜色概率如果趋于1的话,那么就代表白色。背景颜色概率如果接近0的话,就代表黑色。
在视频图像序列中,我们可以得到人脸目标颜色的概率分布,利用重心的方法[1],可以通过图像目标的零阶矩与一阶矩获得,Camshift可以得到目标的质心坐标,后续的处理与前面类似,每得到下一帧图像,Camshift算法能够自动调节窗口的大小,并利用当前帧的位置来预测下一帧的参数即窗口的位置与大小。具体步骤与流程如下。
图1 Camshift跟踪算法流程图
1)通过前期对人脸的识别与检测,在颜色概率分布图中,设定初始的搜索窗口s,w,h分别代表窗口的长与宽[3]。
2)其次就可以采用重心的方法来搜索质心。
则窗口质心:(x0,y0)为
f(x,y)是坐标 x,y 的像素值,x⊆(1,w),y⊆(1,h)。
3)对搜索窗口长w宽h重新设定为上步骤中搜索窗口的颜色概率分布函数。
4)将2)与3)步骤不断反复运算,当质心改变至小于设定的阈值为止。
5)在2)中对零阶矩与一阶矩进行计算的同时,进行二阶矩的计算,进而可以得到目标的长轴,短轴,方向角与尺度参量[4]。
整个运算过程是在intel双核处理器与4G内存的基础上运行,该配置足以处理该类视频的运算。如图2所示,跟踪框也将人体面部成功识别出来,并开始识别追踪。
图2 实验结果图
从分析结果可知,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,2006 Oct.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).