基于Adaboost算法的驾驶员眨眼识别
发布者:贾延安 发布时间:2009-9-22 12:08
关键字: Adaboost, 算法, 驾驶员
本帖最后由贾延安于 2009-9-22 12:13 编辑
赵雪竹王秀朱学峰华南理工大学自动化科学与工程学院 2009-09-08 来源:电子产品世界
引言
眨眼是一种睁闭眼睛的生理活动,眨眼的速度会受疲劳程度、情感压力、行为种类、睡觉数量、眼睛受伤程度、疾病等因素影响[1~2]。眨眼识别是驾驶员疲劳检测的基础,本文采用 Adaboost算法[3][4][5]训练和检测眼睛睁闭状态,把睁眼和闭眼图片分类出来。
Adaboost算法
Adaboost是一种自适应 boosting算法,它的原理就是将一些简单的弱分类器(矩形特征)通过特定的训练需求(一般为检测率和误检率的要求)组合成为一个强分类器,在训练和检测时每一个强分类器对待检测的矩形特征进行判决,将这些强分类器级联起来就可以生成一个准确的、快速的分类器。它的特点就是检测速度快,因为每一个强分类器都可以否决待检测的矩形特征,所以前面的强分类器就可以把大部分错误的特征给排除掉。
下面介绍Adaboost算法对强分类器的训练。本文正样本为包含各种姿态人眼的图片(睁眼、闭眼、带眼镜),负样本为不包含眼睛的任意图片。设输入的n个训练样本为:{(x1,y1),(x2,y2),......(xn,yn)},其中xi是输入的训练样本,yi∈{0,1}分别表示正样本和负样本,其中正样本数为 l,负样本数m。n=l+m,具体步骤如下:
(1) 初始化每个样本的权重w1,i∈D(i);
(2)对每个t=1,..., T(T为弱分类器的个数)
①把权重归一化为一个概率分布
下载( KB)
2009-9-22 12:01
②对每个特征f,训练一个弱分类器hj计算对应所有特征的弱分类器的加权错误率
下载( KB)
2009-9-22 12:01
③选取最佳的弱分类器ht(拥有最小错误率):et
④按照这个最佳弱分类器,调整权重
下载( KB)
2009-9-22 12:01
其中ei=0表示被正确地分类,ei=1
表示被错误地分类
下载( KB)
2009-9-22 12:01
(3)最后的强分类器为:
下载( KB)
2009-9-22 12:01
基于Adaboost算法的眨眼识别
要保证视频流中图像处理的实时性就必须采用特定的算法。Adaboost算法由于它特殊的算法模式,可以进行快速的目标检测,因此我们的人眼状态检测的定位,系统就选择了 Adaboost算法。基于Adaboost的眨眼识别系统主要包含两个模块:训练和检测。其中训练过程起着决定性的作用。
训练
样本的选择至关重要,包括两个方面,首先是样本源,本文采用BioID-EyeDatabase和AR人脸库(来源于网络)[6],样本库提供了人脸图片和人眼坐标,根据人眼坐标用Matlab编程来提取人眼。正样本从截取出的人眼图片中选取闭眼图片,负样本为剩下的睁眼图片。样本的训练过程就是按第2部分算法所阐述的方法选择弱分类器, 形成强分类器, 再由强分类器级联成
基于Adaboost算法的驾驶员眨眼识别 来自淘豆网m.daumloan.com转载请标明出处.