Boosting算法android手机的眼镜虚拟试戴系统设计(5)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

Boosting算法android手机的眼镜虚拟试戴系统设计(5)

在眼检测的过程中,我们要想得到一个强分类器,我们就需要许多弱分类器,而想要得 到弱分类器,我们就要在我们的大量的简单特征,这些特征在一起我们可以称之为特征池。

本科毕业设计说明书 第 7页

在人眼检测时,其检测过程是一个综合过程,仅有眼部视觉上下文是不足以实现准确的人眼 检测的。为了得到一个完备的眼部特征池,在此可以将特征池分为两个子集:一个用类 Haar 特征,一个用视觉上下文矩形特征。

所谓类 Haar 特征,又称作 Haar-like,是一种简单的特征集。如图 3。1 所示。这里需要简 单解释一下,例如图 3。1 中第一个图片左边为黑,右边为白,这就好比在人眼睛眼珠为黑, 眼白为白,这个特征就会在改区域被找到,然后再比如第三个小图,其中间为黑,左右两侧 为白,在眼睛区域中眼珠正中间会有黑,左右两边为白,所以会被检测到。这样检测到的特 征为 Haar-like 特征,由于该特征可能会比参考区域的像素还要多,所以,这将是一个巨大的 特征池。

图 2。1 类 Haar 特征说明例子

分类器的得到过程,我们有以下几个步骤。如表 3。1

表 2。1 强分类器半监督 Boosting 算法过程简述

算法 内容

第 1 步 给标记的例子图片一个小数值,此处正反例子都有;

第 2 步 初始化 AdaBoost 算法的弱分类器的权重;

第 3 步 伴随着标记图片输入, AdaBoost 算法更新权重以选出一个强分类器;

第 4 步 在训练集上使用目前的强分类器;

第 5 步 如果存在未被检测的图片,标记图片为正确例子,返回 True;

第 6 步 如果误检率比阀值高,标记误检以作为反例,返回 True;

第 7 步 如果第 5 步和第 6 步都返回 True,跳到第 3 步继续迭代;

第 8 步 输出最终的分类器。

分类器的得到过程中,有巨大的特征数量,为了得到一个性能好的分类器,我们要通过 Boosting 进行级联。我们采用选择性取样的方法,进行半监督的 Boosting 方法。半监督的 Boosting 算法也就是选择性采样的思想关键就是人工标注那些被检测为正确但是却是不正确 的例子,分类器在每一次被标记后,重新更新。在这样的过程中,逐步完善强分类器。来`自+优-尔^论:文,网www.youerw.com +QQ752018766-

我们通过分类器的分类,我们能够检测出人眼睛的位置。但是由于训练分类器的过程是繁杂并且耗时的,它又需要大量的图片库才能进行,我们并没有实际训练自己的分类器,我 们在这里程序上使用了由 OpenCV 库提供的 haarcascade eye tree eyeglasses 分类器。这是一个 直接检测眼睛的分类器。它对人眼的检测性能还是十分令人满意的,当然,如果它能够在检 测人脸的基础上在人脸的参考区域内进行人眼的检测,那准确率会更加高。但是由于考虑我 们最终要进行基于手机的人眼识别,手机的运行内存和运算速度都是不能够和电脑媲美的, 所以,我们折中考虑,仅仅使用了一次分类器,这样也会加快运算速度,使得应用更加流畅。

(责任编辑:qin)