基于Adaboost算法的驾驶员眨眼识别
引言
本文引用地址:https://www.eepw.com.cn/article/97892.htm眨眼是一种睁闭眼睛的生理活动,眨眼的速度会受疲劳程度、情感压力、行为种类、睡觉数量、眼睛受伤程度、疾病等因素影响[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为弱分类器的个数)
①把权重归一化为一个概率分布
②对每个特征f,训练一个弱分类器hj计算对应所有特征的弱分类器的加权错误率
③选取最佳的弱分类器ht(拥有最小错误率):et
④按照这个最佳弱分类器,调整权重
其中ei=0表示被正确地分类,ei=1
表示被错误地分类
(3)最后的强分类器为:
基于Adaboost算法的眨眼识别
要保证视频流中图像处理的实时性就必须采用特定的算法。Adaboost算法由于它特殊的算法模式,可以进行快速的目标检测,因此我们的人眼状态检测的定位,系统就选择了 Adaboost算法。基于Adaboost的眨眼识别系统主要包含两个模块:训练和检测。其中训练过程起着决定性的作用。
评论