基于视觉的人脸识别是人机交互领域的一个重要研究课题[1]。这种交互方式自然、直观, 其具有广泛的应用前景。
连续自适应的Mean-Shift (Continuously Adaptive Mean-Shift, Camshift) 是一种常用的跟踪算法, 在跟踪过程中容易出现窗口尺度过度放缩问题[2]。在Camshift算法中, 跟踪窗口直接影响跟踪结果, 如果跟踪窗口不能真实反映目标实际尺度的变化, 可能会导致丢失跟踪目标。尺度控制问题决定了Camshift算法的鲁棒性。
国内外许多研究学者对跟踪窗口尺度控制开展了研究。由Li等[3]提出的SURF (Speeded Up Robust Features) 融合进Camshift算法有效地跟踪复杂背景中的目标, 但是在跟踪目标尺度发生剧烈变化时, 容易丢失目标。还有一些基于这种思想的改进方法, 如徐建军等[4]提出了融合Adaboost (Adaptive Boostint) 算法来保证跟踪目标的真实尺度, 但是该算法要提取每一帧图像加入分类器中, 导致计算量过大, 跟踪效率大大降低;王鑫等[5]提出将粒子滤波融合Camshift算法中来计算跟踪窗口大小, 该方法能较好地反映真实尺度, 但是粒子数会影响跟踪效果, 粒子数过低会丢失跟踪目标, 而随着粒子数增加, 算法运算量也会增加。
为了克服以上算法的不足, 本文提出将图割算法融入Camshift中解决尺度放缩这一问题。首先利用Camshift跟踪目标得到跟踪目标位置, 再使用跟踪框内的像素点构造图割网络, 通过能量函数计算跟踪框范围内的最大流完成图割。图割算法使用高斯肤色模型作为能量函数权值, 然后在跟踪窗口内分割出肤色团块, 最大团块即是跟踪目标。实验结果表明, 本文算法实时反映了跟踪目标的真实尺度, 同时实现了实时的、快速的跟踪。
1 Camshift算法Camshift是一种使用颜色信息的跟踪算法, 通过提取HSV颜色空间的H分量分布图进行跟踪[6]。它的算法流程如下:
1) 初始化, 手动选择目标, 得到搜索窗W。
2) 计算跟踪目标反向投影图。
3) 根据反向投影图和选择框进行Meanshift迭代, 找到跟踪目标中心。
4) 根据上述搜索窗内的颜色概率分布函数来重新设定搜索窗的大小。
5) 使用迭代出的结果作为跟踪目标在下一帧图像中继续跟踪。
2 基于图割的匹配算法图割是基于图的重新组合和优化的思想[7], 将一幅图像中的像素点映射为一个网络图, 并建立关于标号的能量函数[8]。由最大流最小割定理可知:可以通过图像中像素所构造出来的网络最大流来得到图的最小割。首先需要构造成能量函数, 再将像素点代表的权值代入能量函数中构造图像网络才能得到最大流[9-11]。
设有向图用G=(V, E) 表示, 其中V代表图中节点的集合。节点分为两类:普通节点P={Pi|i=1, 2, …, n};端节点S和T,S为前景目标, T为背景。E={(u, v)|u∈P, v∈P}代表图中边的集合, 每条边都设有权值ω(u, v)。图割就是将边的权值带入能量函数中通过计算结果使图中节点划分为两部分s和t, 而分割结果则需要满足
要分割出“目标”, 先引入能量函数:
$ E(A)=\sum\limits_{{{p}_{i}}\in P}{{{R}_{{{p}_{i}}}}({{A}_{{{p}_{i}}}})}\text{+}\sum\limits_{\left( {{p}_{i}}, {{p}_{j}} \right)\in N}{\delta ({{A}_{{{p}_{i}}}}, {{A}_{{{p}_{j}}}})} $ | (1) |
其中:P表示图像中像素点的点集; N表示S的邻域系统; Api表示像素Pi的权值, 即若用1来表示属于前景目标, 那么就用0来表示背景; Rpi(Api) 和δ(Api, Apj) 分别表示将元素pi和边 (pi, pj) 标号为目标的权值[13]。可以通过求得能量函数最小值来得到最符合真实情况的图像分割即是目标最小割[14-15]。于是构造能量函数是图割应用在目标分割上的一个关键步骤。
3 改进的人脸跟踪算法在目标跟踪研究中, Camshift算法具有很强跟踪性能, 被广泛应用于各种视频跟踪系统中。但是当跟踪目标尺度发生剧烈变化时, 跟踪窗口就可能出现过度放缩, 甚至会丢失跟踪目标。而图割理论在图像分割领域有着较强的分割性能, 可以准确分割出跟踪目标与背景。因此, 在Camshift跟踪出的结果中引入图割理论, 能准确分割出Camshift跟踪框内真实的跟踪目标, 同时计算出该目标真实大小和位置。
3.1 目标分割鉴于全局图割会加大运算量, 本文采用局部图割, 使用Camshift迭代出的跟踪窗口W作为图割区域。这种方法不仅提高了算法效率, 同时防止了跟踪场景中肤色相近区域的干扰。
系统运行Camshift算法后, 会产生一个长为h0, 宽为w0的初始跟踪框, 其跟踪中心为 (xc, yc)。在跟踪中心点纵向扩展M(M < h0/2) 个、横向扩展N(N≤w0/2) 个像素点作为图割算法分割区域。
跟踪中心 (xc, yc) 作为源点S, Camshift跟踪框内像素点作为有向图中普通节点, 而其他点作为背景节点, 所以图割结果就是跟踪目标和背景的两个割, 如图 1所示。
为了求取精确肤色模型来表示肤色的分布, 本文使用高斯肤色模型来作为图割算法的分割权值, 公式如下:
$ \begin{align} & p(\mathit{\boldsymbol{r}})=\sum\limits_{i=1}^{K}{\frac{{{W}_{i}}}{{{(2\rm{ }\!\!\pi\!\!\rm{ })}^{n/2}}|{{\sum }_{i}}{{|}^{1/2}}}\cdot } \\ & \ \ \ \ \ \ \ \ \exp \left( -\frac{1}{2}{{(\mathit{\boldsymbol{r}}-\mathit{\boldsymbol{ }}\!\!\mu\!\!\rm{ })}^{\rm{T}}}\frac{1}{\sum\nolimits_{i}{(\mathit{\boldsymbol{r}}-\mathit{\mu }{{}_{i}})}} \right) \\ \end{align} $ | (2) |
其中:K代表高斯混合模型中高斯模型个数; Wi表示第i个高斯所占权重值, 所有Wi值之和是1;r表示高斯分布的方差; μ表示高斯分布的均值;Σi表示第i个高斯分布的共变异矩阵。式 (2) 代表参数 (ω, μ, Σ) 可用k均值算法来求得, 而得到像素点的肤色判断概率值。
此时把高斯肤色赋值给从点S到每个普通节点的边W(pi) 上, 而相邻普通节点之间的权值则为W(pi, pj)。因此能量函数可以构造如下:
$ E(O)=\sum\limits_{{{p}_{i}}\in P}{W({{P}_{i}})}\text{+}\sum\limits_{\left( {{p}_{i}}, {{p}_{j}} \right)\in N}{W({{P}_{i}}, {{P}_{j}})} $ | (3) |
其中:P表示普通节点的点集; N表示S的邻域系统即跟踪区域; W(pi) 和W (pi, pj) 分别表示将元素pi和边 (pi, pj) 划分为目标的代价。计算W中的每个像素的W(pi) 和W(pi, pj)。该网络中E(O) 的最大流既是通割集S-T中边的权值之和最小的割, 而分割出的肤色团, 也就是跟踪目标真实位置的点集, 如图 2所示。
记录该帧搜索框内肤色点的数量, 并与上一帧中肤色点数量比较。当相邻两帧肤色点数差距过大, 即可判断出已丢失跟踪目标, 重新使用该帧运行Camshift算法搜索跟踪目标。
3.2 尺度提取为了防止颈部肤色的干扰使尺度偏大, 本文选择肤色团块横坐标计算尺度。
在整个视频区域内建立坐标系, 坐标原点为视频区域中的左上角, 数字图像的列数和行数代表坐标系中Y轴和X轴。
通过像素点的四领域判断图连通性, 来判断周围像素点是否是肤色点, 并将肤色点集标记为肤色团块。而团块中肤色最多的即为最大团块。
在肤色团内找出中心点处 (xc, yc) 中yc对应的最左侧的像素点的坐标为 (x1, yc), 然后取出yc+i, yc-i(i=1, 2, …, h0) 在肤色团中所对应的2h0个横坐标值, 求出x1和这2h0个横坐标值的均值赋给x1。同时, 肤色团最右边的x2也可用此方法得出, 于是得出肤色团的长度w=x2-x1。由于人脸大小的比例是不变的, 本文通过计算手动标记的人脸比例大小h0/w0, 可以计算出肤色团的高度h=w(h0/w0), 于是得到目标真实尺度。
3.3 本文算法基本步骤本文提出的基于图割的人脸跟踪算法步骤如下:
1) 手动选取跟踪目标, 得到目标的长为h0, 宽为w0;
2) 执行Camshift, 计算目标中心 (xc, yc),同时计算出当前搜索框长为h1, 宽为w1;
3) 在搜索框区域内, 由跟踪中心 (xc, yc) 上下扩展位置作为图割区域;
4) 比较当前帧与上一帧肤色点数量, 若数量相差大于上一帧肤色点数量的1/4, 则判断丢失跟踪目标, 重新执行Camshift搜索跟踪目标;
5) 当肤色点对比结果小于1/4, 则计算肤色团的长w=x2-x1, 宽h=w(h0/w0);
6) 得出当前跟踪目标真实尺度;
7) 继续读取下一帧, 执行步骤2)~5)。
4 实验与分析本实验在Core i3-3220@3.30GHz, 内存4.00GB的计算机上采用C++语言编程实现。实验采用的视频序列分辨率为320×240。实验比较Camshift算法、融合粒子滤波的Camshift算法,以及本文算法的跟踪效率和性能。
从图 3所示的跟踪情况可看出不同算法的性能:图 3(a)中在第46帧出现了过度放缩, 算法跟踪了脸部以下的区域;在第99帧出现了手部干扰, 使跟踪框放大到手部区域。图 3(b)中在第112帧处发生了丢失跟踪目标。图 3(c)实时地反映了目标的真实尺度, 同时也避免了手出现在跟踪场景中的干扰。
图 4显示了三种算法来跟踪人脸的性能图。中心误差是跟踪结果与真实位置之间的欧氏距离, 其值越小说明算法尺度控制性能越好。从图 4可以看出, 基于图割的Camshift算法在运行过程中, 跟踪的结果与目标真实坐标之间的差距较小, 其尺度控制的性能较为稳定;而Camshift算法在控制方面性能相对低, 当视频中出现手的干扰时, 跟踪框远远大于人脸真实尺度;而融合粒子滤波的Camshift算法相较本文算法在跟踪目标时的跟踪框与真实位置之间的距离也大于本文算法, 因此本文算法能有效地反映人体快速运动中人脸真实尺度变化。
本文的基于图割的Camshift跟踪算法, 由于采用了局部图割, 计算量很小, 跟踪目标单帧用时0.121s;融合粒子滤波的Camshift算法单帧用时相对较长, 需要0.231s;而Camshift算法计算时间虽然比本文算法短, 仅为0.023s, 但是跟踪性能远不如本文算法。
5 结语Camshift算法具有计算量小、抵抗目标形变、反应迅速等优点被很多研究人员应用到目标跟踪中, 但其跟踪性能被尺度过度放缩这一问题所影响。本文提出的基于图割的Camshift跟踪算法根据图割出的目标来计算尺度, 从而得到目标的真实尺度, 并且保证了算法的运算速度。从实验结果可知:基于图割的Camshift跟踪算法能有效地反映跟踪目标真实的尺度变化。
[1] | HU Z, WANG Y, LUO Y. An improved camshift-based particle filter algorithm for real-time hand gesture tracking[J]. Sensors & Transducers, 2014, 177 (8) : 307-312. |
[2] | 吕卓纹, 王科俊, 李宏宇, 等. 融合Camshift的在线Adaboost目标跟踪算法[J]. 中南大学学报 (自然科学版), 2013, 44 (7) : 231-238. ( LYU Z W, WANG K J, LI H Y, et al. Online Adaboost target traking algorithm combined fused with Camshift[J]. Journal of Central South University (Science and Technology), 2013, 44 (7) : 231-238. ) |
[3] | LI J, ZHANG J, ZHOU Z, et al. Object tracking using improved Camshift with SURF method[C]//Proceedings of the 2011 IEEE International Workshop on Open-source Software for Scientific Computation. Piscataway, NJ: IEEE, 2011:136-141. |
[4] | 徐建军, 张蓉, 毕笃彦, 等. 一种新的AdaBoost视频跟踪算法[J]. 控制与决策, 2012, 27 (5) : 681-685. ( XU J J, ZHANG R, BI D Y, et al. An new AdaBoost video tracking algorithm[J]. Control and Decision, 2012, 27 (5) : 681-685. ) |
[5] | 王鑫, 唐振民. 一种改进的基于Camshift的粒子滤波实时目标跟踪算法[J]. 中国图象图形学报, 2010, 15 (10) : 1507-1514. ( WANG X, TANG Z M. An improved camshaft based particle filter algorithm, for real-time target traking[J]. Journal of Image and Graphics, 2010, 15 (10) : 1507-1514. ) |
[6] | 厉丹, 田隽, 肖理庆, 等. 基于Camshift自适应多特征模板的视频目标跟踪[J]. 煤炭学报, 2013, 38 (7) : 1299-1304. ( LI D, TIAN X, XIAO L Q, et al. Adaptive multi-feature template video target tracking based on Camshift algorithm[J]. Journal of China Coal Society, 2013, 38 (7) : 1299-1304. ) |
[7] | KOLMOGOROV V, BOYKOV Y, ROTHER C. Applications of parametric maxflow in computer vision[C]//ICCV 2007: Proceedings of the 2007 IEEE 11th International Conference on Computer Vision. Piscataway, NJ: IEEE, 2007:1-8. |
[8] | PRICE B L, MORSE B, COHEN S. Geodesic graph cut for interactive image segmentation[C]//Proceedings of the 2010 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2010: 3161-3168. |
[9] | 姜伟, 吕晓琪, 任晓颖, 等. 结合区域生长与图割算法的冠状动脉CT血管造影图像三维分割[J]. 计算机应用, 2015, 35 (5) : 1462-1466. ( JIANG W, LYU X Q, REN X Y, et al. 3D segmentation method combining region growing and graph cut for coronary arteries computed tomography angiography image[J]. Journal of Computer Applications, 2015, 35 (5) : 1462-1466. ) |
[10] | 张少娟, 邹建成. 图割综述[J]. 北方工业大学学报, 2010, 22 (3) : 10-16. ( ZHANG S J, ZOU J C. Review on graph cuts[J]. Journal of North China University of Technology, 2010, 22 (3) : 10-16. ) |
[11] | 张凤军, 赵岭, 安国成, 等. 一种尺度自适应的Mean-Shift跟踪算法[J]. 计算机研究与发展, 2014, 51 (1) : 215-224. ( ZHANG F J, ZHAO L, AN G C, et al. Mean-Shift tracking algorithm with scale adaptation[J]. Journal of Computer Research and Development, 2014, 51 (1) : 215-224. ) |
[12] | JUAN O, BOYKOV Y. Active graph cuts[C]//Proceedings of the 2006 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2006:1023-1029. |
[13] | STAWIASKI J, DECENCIERE E. Region merging via graph-cuts[J]. Image Analysis & Stereology, 2008, 27 (1) : 39-45. |
[14] | COOKE T. Two applications of graph-cuts to image processing[C]//DICTA 2008: Proceedings of the 2008 Digital Image Computing: Techniques and Applications. Washington, DC: IEEE Computer Society, 2008:498-504. |
[15] | 段丁娜, 张欢, 邱陈辉, 等. 基于活动轮廓模型的图像分割算法综述[J]. 中国生物医学工程学报, 2015, 34 (4) : 445-454. ( DUAN D N, ZHANG H, QIU C H, et al. A review of active contour model based image segmentation algorithms[J]. Chinese Journal of Biomedical Engineering, 2015, 34 (4) : 445-454. ) |