基于帧间差分法和AdaBoost算法的人脸跟踪
2020-08-10
来源:小奈知识网
文章编号:1007—1423(2013)18—0026—06 DOI:10.3969/j.issn.1007-1423.2013.18.007 基于帧间差分法和AdaBoost算法的人脸跟踪 邬仲垄 . 王晓峰 (上海海事大学信息工程学院,上海203106) 摘 要:对于人脸在复杂背景下的检测与跟踪问题.采用帧间差分法和形态学分割出运动区域,再 使用AdaBoost级联分类器对运动区域扫描,以精确定位人脸。人脸检测成功后,通过保留 和及时更新地成功检测到人脸的区域.使得当人脸运动较慢时候.或人脸静止时仍然能检 测跟踪成功.利用OpenCV开源库和Visual Studio 2005进行仿真,实验结果表明,在复杂 的背景下.无论在人体处于移动正常、缓慢或静止的情况下,该方法都能实现单人脸检测跟 踪,且跟踪速度较快。 关键词:AdaBoost:帧间差分法:人脸检测;OpenCV 0 引言 用了OpenCV开源库作为实验工具.非常方便地完成 了本文实验内容。 人脸跟踪技术是安防保卫、智能监控等领域的研 究热点内容.人脸跟踪是指在实时采集视频序列中确 定人脸的运动轨迹以及人脸大小的变化的过程 人脸 1 人脸检测部分 1.1运动人脸定位 一检测、跟踪在身份验证、基于视频检索、数字视频处理、 视觉检测等方面都有着重要的应用价值 对于人脸在 复杂背景下的检测与跟踪问题.本文主要利用运动信 息和形态学方法.提取前景运动区域.减小后续精度定 位人脸的有效范围.再通过AdaBoost级联分类器分类 般运动目标定位的方法有帧间差分法和光流 法.其中帧间差分法适用于背景动态变化的环境中.该 方法受光照影响较小.能够找到相邻帧像素变化的点. 与设定的阈值相比较.找到前景像素变化的区域。其缺 点是不能完整地提取出运动对象 背景差法的特点是 能够比较完整地提取运动对象.但是却要耗费比较多 的时间建立背景模型及维护背景模型 基于光流法的 精确定位人脸.通过保存历史人脸区域.并且动态变化 历史区域大小.实验证明.该方法能够在10帧/s的实 时视频中成功检测跟踪人脸.并降低了传统AdaBoost 方法的检测耗时 运动目标定位虽然具有很多优点。但是计算过程复杂, 耗时长,实时性差。帧间差分法速度快,实时性好比较 适合本文的复杂的实验环境.综合考虑本文采用了帧 问差分法 OpenCV开源库是英特尔公司利用C/C++语言开 发的.主要用于图像处理和计算机视觉应用.目前已开 发出最新的2.4.4版 它提供了大多数常用的图像处理 函数和基本矩阵运算.因此可以大大缩短应用程序开 发周期 其中大部分的函数代码的编写是基于Intel处 理器指令的.因此可以发挥处理器最强的功能 本文选 收稿El期:2013—04—01 修稿日期:2013—06—04 1.2帧间差分法原理 帧差法的公式为: 作者简介:邬仲望(1989一),男,江西南昌人,硕士研究生,研究方向为人脸跟踪 囝 现代计算机2013.06下 背景区域: li(t)一i(t一1)I<T (1) 前景区域: Ii(t)一i(t一1)I≥T (2) 其中i(t), ( 一1)分别为t,t一1时刻对应像素点的 像素值,T为阈值,最后获得了一个二值化的图像,像素 值为1的点就是运动的点 1.3目标运动区域分割及形态操作 当人体运动的时候.人脸的范围是在前景像素变 化最大区域内.为提高检测效率.只获取当前帧中前景 像素变化最大的区域来作为后面人脸检测的区域 利 用OpenCV库中的相应函数,进行帧差、图像二值化、 运动轮廓提取等相关操作,去除背景、噪声和不连续性 空洞.最终成功提取前景运动目标.作为下一步人脸检 测的范围 1.4人脸检测算法 人脸检测的方法一般有基于人脸的肤色特征I1l、人 脸模板匹配和统计学习等的方法 基于统计学习的人 脸检测方法是目前研究比较热门的.也是比较成熟的 人脸检测算法.本文采取基于统计学习的AdaBoost算 法进行人脸检测 Y.Freund等人翻于1995年提出了AdaBoost算法 它的基本思想是把大量分类能力一般的弱分类器叠加 成强分类器 P.Viola等人l3卅后续提出的级联AdaBoost 人脸检测方法.该方法首先利用一种积分图来表示图 像,这样就能快速地计算出图像的Harr—liketS ̄特征。其 次再利用AdaBoost学习算法将若干由Harr—like特征 生成的简单分类器叠加成强分类器.再次将若干个强 分类器串联成级联分类器,最终完成人脸的检测。 构造级联人脸分类器的思想是:每一层都是一个 强分类器.这个强分类器能够区别人脸和非人脸.为了 使得大多数人脸均能通过.并且去除尽可能多的非人 脸.设置每一层相应的阈值。整个检测流程就像用多个 的筛子去筛选人脸.筛子的筛孔由大变小.每一个筛子 都可以筛除一些前面筛子没有去掉的非人脸.最终选 出人脸 根据宗欣露等人旧在文献中对算法的描述.级联分 类器的训练人脸的算法如下: 已知P是集合训练用的简单特征分类器的训练正 例集.N是集合训练用的简单特征分类器的训练负例 集。 (1)设置f为单层分类器来说最大可接受的错误判 对率,d为单层分类器最小可接受的检测率, 为用 户选择系统最终的整体错误判对率 (2)初始化F0=1.0. 1 (3)while F/>F ̄ ①用P和N训练第i层并设定阈值b,使得错误 判对率 <厂,检测率>d; ② +1七一_, +_- 1, 一 ; ③if + > 用当前的多层分类器对人脸的图像 集进行分类.把得到的错误判为正例的负例放到N集 中.用于后续的训练 2 人脸跟踪部分 考虑到AdaBoost检测速度很快.曾宪贵等人 使 用肤色相似度和AdaBoost算法相结合的方法跟踪人 脸.在视频每一帧中使用AdaBoost对人的肤色区域进 行人脸检测.同样能完成人脸跟踪。效果较好。那么本 文也利用AdaBoost快速检测人脸的特点.在找出的像 素变化最大的区域基础上.再调用AdaBoost级联分类 器.完成对人脸的跟踪.另外本文使用历史人脸区域的 方法.检测人脸运动缓慢或静止的情况.历史人脸区域 指的是离当前帧最近地一次成功检测到人脸时.人脸 存在的区域.即那一帧中用帧间差分法求出的前景像 素变化最大的区域。那么根据人脸的运动速度快慢,跟 踪分成下面三种情况.系统整体检测与跟踪流程图如 图1所示 2.1人以正常速度运动时跟踪 根据帧间差分法公式.设定合适的阈值把前景像 素变化最大的区域找出来.本人根据实验的检测效果 和经验来设定阈值.那么先用帧间差分法缩小使用Ad. aBoost级联分类器的检测区域.然后再在该区域上调 用AdaBoost级联分类器来查找人脸.利用刘瑞祯等人 书中l81的AdaBoost人脸检测方法的代码 现代计算机 2013.06下 囝 二 Exploration and Practice of Program Design Project of Textbook Development LI Zhi——yun /// (Shandong College of Information Technology,Weifang 261041) Abstract:The textbook of the program design project is to study the basic program design courses,is able to quickly adapt to the software development technology job demands that the students after graduation.The project of textbook consists of typical project,the project to organize the teaching material content.It can improve the ability to develop students various software through the project learning. Keywords:Program Design;Project;Occupation Ability (上接第3O页) 一Face l0- racki1‘ nq Based On卜rame Di一 。,一 …tterence ‘ and AdaBoost Algorith m WU Zhong-kun WANG Xiao-feng (College Information Engineering,Shanghai Maritime University,Shanghai 201306) ace detection and tracking in complex background,proposes a novel face tracking Abstract: For the fmethod combined frame diference and AdaBoost algorithm frame difference are used to detect moving target regions,Then these regions are scanned by cascade classifier based on AdaBoost for more accurate face detection.When it is successfully detected.it will store and update the history face area,SO that when face is moving slowly or stops moving,it also can detect the face.Carries out some simulation tests by development tool Visual 2005 and OpenCV source software library,the experimental results show that in situation with the complex background of the slowly moving face or stopping moving face,this method can successfully track the face with the good track rate. Keywords AdaBoost;Frame Difference;Face Detection;OpenCV 现代计算机 2013.o6下 囝