APP下载

基于CamShift改进算法的人脸跟踪识别系统

2018-07-02秦润泽聂倩倩

山西电子技术 2018年3期
关键词:直方图人脸人脸识别

秦润泽,聂倩倩

(山西农业大学,山西 太谷 030800)

0 引言

目标跟踪是计算机视觉的研究热点,跟踪过程中存在遮挡、光照变化、变形等问题,其影响跟踪效果。王泽楷[1]采用Camshaft与kalman相结合,加入最优阈值法解决跟踪出现的错误识别问题;刘超[2]引入背景减法与Camshift相结合策略,及非线性核密度估计解决光照变化、阴影等问题。初春霞[3]选取颜色和纹理相融合的直方图概率分布,适应遮挡等问题,引入权值将目标模板与检测模板特征进行处理,克服依靠目标模型的不足。上述算法虽然在一定程度上解决了遮挡、光照、重叠等问题,但运行过程中还是会出现跟踪错误,模板更新不及时等问题。

本文提出了改进Camshift算法,实现及时更新目标模板。采用该算法与人脸检测算法相结合实现人脸跟踪识别。

1 系统简述

人脸检测算法多关注检测精度,在视频中检测很难达到实时的要求。Camshift算法能达到实时跟踪的效果。本系统采用基于CamShift改进的人脸跟踪算法,通过混合人脸轮廓特征与肤色特征提高系统的鲁棒性。

整个系统由三大模块组成:人脸检测、人脸识别和人脸跟踪。

人脸检测模块采用Haar分类器的Adaboost算法。该算法处理图像速度较快,通过迭代快速地构建出多个弱分类器并集合成强分类器,大大降低分类器检测的错误率,提高检测准确率。

人脸识别模块采用Eigenfaces算法。该算法能够对输入的训练样本集分析并根据计算特征值构建“特征脸”,将待识别图像映射到特征值空间,通过阈值法得出待识别图像最接近的样本特征,返回特征脸对应的标签。

表1 特征值

在识别出人脸后需要显示人脸对应的身份信息,因此系统建立了后台sqlite数据库,存入人脸标签与人脸身份信息,通过人脸识别模块返回的标签值查询数据库中对应的身份信息。sqlite是一个轻量级的数据库,占用的内存空间小,使得程序的运行速度快,适用于本系统的多平台移植。

图1 特征脸(1)

图2 特征脸(2)

2 传统跟踪算法简述

CamShift即Continuously Adaptive Mean-SHIFT,是对MeanShift算法的一种改进。MeanShift算法仅针对单张图像的颜色概率分布图迭代寻优,得到概率密度最大的地方以获取目标位置。而改进后的CamShift算法是MeanShift算法在连续图像序列上的一个应用,其将上一帧MeanShift算法的结果(搜索窗口的大小和位置)作为下一帧MeanShift算法的输入。如此迭代,便能很好地实现对目标物体的跟踪。

MeanShift算法的实现过程为:

1) 设置搜索窗口,即所要跟踪的感兴趣区域,选定区域后使用ROI(region of interest)函数指定图像分析的重点。

2) 将目标区域图像的颜色空间由RGB颜色空间转化为HSV颜色空间。统计搜索框的H通道值,后对整幅图像二值化处理。此时图像转化为HSV图像显示出目标人脸与背景分割的效果。

3) 使用calcBackProject函数计算搜索窗口的颜色分布概率,即目标人脸图像矩阵的反向投影。

4) 计算出目标图像信息后进行迭代,首先计算搜索窗口的零阶矩,再计算一阶矩,迭代计算直至计算出搜索窗口的质心,将搜索窗口的中心移动到质心,即可完成一次跟踪。否则重复计算直至中心到质心距离小于阈值或循环次数达到设定的最大值。在函数中ITER为完成迭代最大次数,达到后停止算法。EPS为算法精度double epsilon,本次实验环境下当最大迭代次数为10,精度为0.8时有较好的效果。

(1)

其中,M00为零阶矩,M10、M01为一阶矩。

5) CamShift算法进行上述循环,搜索窗口使用此次迭代计算出的新搜索窗口。

3 CamShift算法改进

传统的CamShift算法能够有效解决目标的变形,多维的问题。因为该算法计算了颜色直方图,出现与目标颜色相近区域会误识别,论文在CamShift算法加入了边缘检测,很好地实现对人脸区域检测跟踪。

直方图均衡化利用累计分布函数变换将直方图从集中灰度分布映射成均匀灰度分布。具体步骤为:

1) 使用自适应中值滤波去除图像噪声。对图像遍历时若Zmin

2) 对检测物体进行轮廓检测,采用satoshi suzuki的算法。对数字图像进行拓扑分析,确定图像的边缘信息,由于边缘与目标图像有相对应的关系,可以很好地识别。算法使用时首先对图像进行形态学操作,去除图像不连贯的区域。计算出目标图像上所有目标外轮廓的点序列与边缘的拓扑结构并存储在vector中,使用canny算子提取边缘后的二值化图像。

4 系统流程

人脸跟踪识别系统的具体步骤为:

1) 输入视频流,视频流帧率在100左右,提取视频流中的一帧图像。

2) Haar分类器人脸检测。检测出人脸区域,设置人脸搜索框。

图3 人脸检测画面

3) 保存图片作为训练样本,并信息输入系统。采集样本间隔为5秒,像素为120,保存后图像自动归一化为92*112大小并转化为灰度图,方便图像后续特征值的训练。在保存够十张图片后自动存入数据库。此时训练集中图片标签为1,在数据库中,标签id对应位置存储字符为身份信息。

图4 输入字符信息

图5 前台界面显示存储完毕

图6 训练样本保存在本地目录,at.txt为存储位置文件

列名含义Id标识人的标签,具有唯一性Name从前台界面文本框中输入的人物身份信息

4) 人脸识别阶段将自动与数据库人脸比对,得出信息并显示。

图7 人脸识别功能

5) 在完成人脸识别算法后,摄像头颜色空间转化为HSV空间投影并计算出反向投影图。根据反向投影图和搜索范围框进行迭代,搜索框中心向重心移动即人脸框偏向反向投影图概率大的地方。之后系统在下一次设置搜索框时进行边缘检测,提取出人脸边缘作为之后的搜索框。人脸跟踪不再消耗大量系统CPU资源进行复杂运算,只进行步骤5)持续跟踪。

5 实验与结论

论文综合了人脸识别准确识别和跟踪算法的实时性等优点提出了改进CamShift算法。采用人脸轮廓特征与肤色特征提高系统人脸识别的鲁棒性;采用haar特征的AdaBoost算法检测面部,Eigenfaces算法实现人脸识别;视频序列中,识别的人脸作为跟踪算法的输入并实时更新;CamShift算法可以实时地跟踪人脸。实验显示,改进算法提高算法检测精度及可以达到实时跟踪的效果。

[1] 王泽楷,吴黎明,蔡文,等.基于Camshift改进算法的视频目标跟踪方法[J].自动化与信息工程,2014,35(1):27-31.

[2] 刘超,惠晶.基于改进CAMShift的运动目标跟踪算法[J].计算机工程与应用,2014,50(11):149-153,217.

[3] 初红霞,谢忠玉,王科俊.一种结合颜色纹理直方图的改进型Camshift目标跟踪算法[J].西安交通大学学报,2018,52(3):145-152.

[4] 谭艳,王宇俊.一种结合背景差分的改进CamShift目标跟踪方法[J].西南师范大学学报(自然科学版),2016,41(9):120-125.

[5] 杨杰,穆平安,戴曙光.一种改进Camshift算法的研究[J].计算机应用与软件,2014,31(2):167-170.

[6] 刘明,赵孝磊.一种改进的Camshift目标跟踪算法[J].南京理工大学学报,2013,37(5):755-760.

猜你喜欢

直方图人脸人脸识别
符合差分隐私的流数据统计直方图发布
人脸识别 等
有特点的人脸
一起学画人脸
揭开人脸识别的神秘面纱
人脸识别技术的基本原理与应用
用直方图控制画面影调
三国漫——人脸解锁
中考频数分布直方图题型展示
基于空间变换和直方图均衡的彩色图像增强方法