教室人数统计系统可编辑.docx

上传人:b****1 文档编号:886518 上传时间:2023-04-30 格式:DOCX 页数:26 大小:102.78KB
下载 相关 举报
教室人数统计系统可编辑.docx_第1页
第1页 / 共26页
教室人数统计系统可编辑.docx_第2页
第2页 / 共26页
教室人数统计系统可编辑.docx_第3页
第3页 / 共26页
教室人数统计系统可编辑.docx_第4页
第4页 / 共26页
教室人数统计系统可编辑.docx_第5页
第5页 / 共26页
教室人数统计系统可编辑.docx_第6页
第6页 / 共26页
教室人数统计系统可编辑.docx_第7页
第7页 / 共26页
教室人数统计系统可编辑.docx_第8页
第8页 / 共26页
教室人数统计系统可编辑.docx_第9页
第9页 / 共26页
教室人数统计系统可编辑.docx_第10页
第10页 / 共26页
教室人数统计系统可编辑.docx_第11页
第11页 / 共26页
教室人数统计系统可编辑.docx_第12页
第12页 / 共26页
教室人数统计系统可编辑.docx_第13页
第13页 / 共26页
教室人数统计系统可编辑.docx_第14页
第14页 / 共26页
教室人数统计系统可编辑.docx_第15页
第15页 / 共26页
教室人数统计系统可编辑.docx_第16页
第16页 / 共26页
教室人数统计系统可编辑.docx_第17页
第17页 / 共26页
教室人数统计系统可编辑.docx_第18页
第18页 / 共26页
教室人数统计系统可编辑.docx_第19页
第19页 / 共26页
教室人数统计系统可编辑.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

教室人数统计系统可编辑.docx

《教室人数统计系统可编辑.docx》由会员分享,可在线阅读,更多相关《教室人数统计系统可编辑.docx(26页珍藏版)》请在冰点文库上搜索。

教室人数统计系统可编辑.docx

教室人数统计系统可编辑

毕业设计论文

论文题目:

教室人数统计系统

学生姓名:

学生学号:

专业班级:

学院名称:

指导老师:

学院院长:

2012年5月15日

教室人数统计系统

摘要

教室人数统计系统能完成对教室人数的实时统计,是高校节能、提高教学质量与方便学生学习生活的关键因素之一。

本文所涉及的教室人数统计系统,由于所需要识别的教室环境较为复杂,而且要能够取得精准的结果,所以应该选用较为鲁棒的算法来进行计算与统计。

本系统的实现采用Qt和C++语言开发,并结合了OpenCV运算机开源视觉库,最终完成了一个完整的能够别离对图像、视频及摄像头进行人数统计的应用程序。

在本文中详细介绍了haar-like特征与积分图方式的相关知识,并采用Adaboost算法为自己成立的样本库训练出了一个级联的分类器,利用该haar分类器完成此系统的人数统计功能。

实验结果表明,本应用程序在给定环境下能够达到94%的识别率。

误窗口数量较少,鲁棒性较好,而且能够知足实时检测的要求。

关键词:

人脸检测,haar-like特征,Adaboost算法

TheStatisticalSystemofPeopleinTheClassroom

Abstract

Thestatisticalsystemofpeopleintheclassroomcancompletethereal-timestatisticsofpeopleinthestatisticalsystemofpeopleintheclassroommentionedinthispaper,shouldchooseamorerobustalgorithmforthecalculationandstatistics,fortheenvironmentofclassroomiscomplexandtheresultsmustbeaccurate.

ThissystemiscompletedwithQtandc++,alsowithOpenSourceComputerVisionpaperdescribesthehaar-likefeaturesandtheknowledgeoftheintegralimagemethoddetailedly,andusedtheAdaboostalgorithmtotrainacascadeofstrongclassifierbasedonmyownsamplelibrary,andusethishaarclassifiertoachievethefunctionofstatistics.

Theexperimentalresultsshowthat,inagivenenvironment,thisapplicationcanachieve94%recognitionnumberofwrongwindowsissmall,andtherobustisgood,atthesametimetheapplicationcanworkforreal-time.

Keywords:

Facedetection;Haar-likefeature;Adaboostalgorithm

1绪论1

课题的研究背景与意义1

国内外研究现状3

本文的主要工作4

设计目的4

需求分析4

设计思路4

本文结构安排5

本章小结6

2haar-like特征与积分图方式7

构造训练样本库7

正样本库7

负样本库8

haar-like特征的表示及计算8

最初的haar-like特征8

改良的haar-like特征9

积分图方式10

0度倾斜角的积分图11

45度倾斜角的积分图12

本章小结12

3Adaboost算法及分类器的训练13

Adaboost算法的来历13

Adaboost算法介绍13

算法描述13

弱分类器14

强分类器14

级联分类器16

训练分类器16

本章小结18

4人脸检测部份的实现19

图片预处置19

人脸检测策略19

基于图像"金字塔"式缩放20

基于检测窗口等比例放大20

本文采用的检测策略21

本章小结22

5开发环境与实验结果23

开发工具的介绍、安装及配置23

OpenCV简介23

Qt简介23

环境配置23

实验结果和分析25

人数统计系统的评价标准25

本系统的检测效果和结果分析25

本章小结28

6总结和展望29

工作总结29

展望29

致谢31

参考文献32

附录34

1绪论

课题的研究背景与意义

中国是一个人口数量超级庞大的国家,在各个公共场合的人员数量,是一个十分重要的信息,也一直都是人们所关注的话题。

教室作为其中一个十分特殊的公共场合,它的人数统计更是有着十分现实的意义:

在无人或少人的教室开启了全数的风扇和电灯,造成了能源的浪费。

据不完全统计,有80%的高校教学楼存在着全天开启电灯的现象,而人数统计能帮忙分析各个

教室的人员情形,帮忙引导电器的开关操作,能有效地减少这种情形的发生。

高校学生逃课严峻,大部份老师采用点名及签到的方式来避免学生逃课,目前还有部份学校采用了打卡上课的方式。

这各种防逃课办法办法,不仅浪费了教学时刻,而且生效甚微。

而采用人数统计系统,则更高效、更准确、更人性化。

高校教学资源紧张,很多学校的学生都面临着“自习难”的问题。

教室的人数与教室的闲置情形直接相关,人数统计系统能帮忙学校合理分派教学资源,让学生在寻觅教室时方便、快捷。

讲座时参与的人数能较为客观地反映讲座的受欢迎程度,人数统计系统能够引导学校多举行受学生欢迎而且成心义的讲座,在学生获取知识的同时又能够丰硕业余生活。

基于以上各个原因,教室人数统计的重要性不言而喻,它是高校节能、提高教学质量与方便学生学习生活的关键因素之一。

在人的身上,能够用来表示人的特征有很多,如头肩部特征、手腕部特征、全身特征、脸部特征、眼睛特征等等。

可是,在实际的人数统计的流程中,有一些特征则对人的识别完全没有帮忙。

比如若一张图片并未拍到人的正脸而是拍到了背影图片,那么嘴巴、眼镜等特征就对那个人的检测毫无可用价值。

在特定的环境当选择一个适当的特征对于人数的检测相当重要。

考虑到本课题所处的研究环境是在教室中,研究的主要对象是学生,在那个时刻那个地址学生正在进行的活动是听课、学习等,而且是处于坐的姿态,大部份的体貌特征会被部份的遮挡,所以在这里选择了上半身中最有代表性的人脸作为特征来进行提取。

从上面的介绍能够明白,要完成人数统计,第一步就是做到精准的人脸检测。

判断一张图片中是不是有人脸,如有人脸则利用标记记录人脸的相关信息,这一进程就称为人脸检测[1]。

人脸检测能够应用于人数统计、视频会议、智能人机交互等,它在电子商务、信息安全方面都有着十分重要的作用。

早在上个世纪,就有相关团队开始涉及人脸检测领域。

可是由于那时的拍照和录像设备的限制,根本不能取得令人满意的图片,对于该领域的探索也就不了了之。

随着科技的进步和设备的更新,又通过了这几十年的运算机视觉领域的深切进展,人脸检测技术已经有了相当大的提升。

但是,人脸检测技术仍是并未达到完美的状态。

目前人脸检测面临着的难点有以下几条:

每一个人人脸的细节都有着千差万异,肤色、脸型各不相同,地理环境的不同造成了世界各个地方的人种有着相差较远的人脸特征[图a]。

即即是同一个人,在不同时刻表情也有转变,喜悦、愤怒、忧伤、快乐等等各个丰硕的表情造成了那个人脸部细节的转变。

一个人脸检测系统可能只能检测出一个人笑的时候的脸,可是却不能检测出那个人哭的时候的脸。

眼睛、头发等附带物品对人脸的检测有着较大影响,这些附带物品会遮挡掉部份人脸特征,对检测的进程造成干扰[图b]。

人脸有着不同的旋转姿态,可能会有正面的人脸,也可能只有侧面的人脸。

对于一个正面的人脸检测系统来讲,它只能够专门好地识别正面的人脸,当碰到侧面的人脸时检测率将会大打折扣。

外部的环境因素?

?

如光照、背景等?

?

对检测结果也会产生必然干扰。

图人脸检测的难点

国内外研究现状

上个世纪70年代,人脸检测技术就已经开始萌芽。

在那时,研究的主要方向是模板匹配和子空间方式。

通过了几十年的进展,人脸检测技术到此刻已日趋成熟,目前主要的研究方向是基于数据驱动的研究方式:

通过训练数量超级多的包括人脸的样本和不包括人脸的样本,将人脸样本的统计学特征计算出来,并用特征来取得分类器,利用此分类器完成人脸检测。

该基于数据驱动的方式主要能够采用以下几个方式:

神经网络学习方式、支持向量机方式、基于Adaboost算法等[2]。

神经网络学习方式:

Rowley等人最先提出了那个基于神经网络的学习方式,并利用样本训练出多层的神经网络模型。

该方式的前端神经网络模块能够进行人脸检测,决策模块能够综合前端模块的结果[3]。

支持向量机方式:

Osuna等人最先将该支持向量机SupportVectorMachine方式运用到了人脸检测中,并利用样本取得一系列支持向量,再通过支持向量机对待检测的目标进行二分类,判断这是不是是一个包括人脸的窗口[4]。

基于Adaboost算法:

该算法于2001年被PaulViola第一次实际用到了人脸检测中。

这次Viola的成功在本领域有着划时期意义,因为他实现了一个实时的人脸检测,是在那时全世界范围内最为先进的检测系统[5]。

随着人脸检测技术的深切进展,每一年在IEEE、ICIP等重要国际会议上,都有着大量的有关人脸检测的论文被发表出来。

据统计,在运算机视觉领域的权威论文中,有三分之一都与人脸检测技术有关。

各国都对此高新技术表现出相当大的研究兴趣[6]。

目前在全世界范围内,有许多个国家的多个研究组在进行人脸检测的工作,其中较出名的有CMU(美国卡耐基梅隆大学)的人机接话柄验室、MIT(麻省理工学院)的AI实验室等。

在国内,李子青教授曾经在微软亚洲研究院从事连年人脸检测与识别工作,后来又在中科院组建了一支科研团队,第一次提出了基于近红外的人脸识别技术并成功将该技术用于2008年北京奥运会,此项技术是国内运算机视觉领域的一项十分重要的成绩。

本文的主要工作

设计目的

掌握图像与视频处置的方式,查阅相关文献并选择一个较好的算法来进行人脸检测,并设计和实现该智能统计系统,要求该系统拥有90%以上的检测识别率。

需求分析

本文的主要研究目的是编写出一款能够统计教室人数的软件。

那个软件需要能够在Windows32位操作系统下运行,能从电脑硬盘中别离选择图片、视频或打开电脑自带摄像头,统计出这三种方式下的教室人数,并将统计结果绘出,利用特殊标记将检测到的人标示出来。

该软件需要保证必然的准确率,能够对不同的教室环境有必然的适应性。

设计思路

本软件主要分为界脸部份和人脸检测部份:

界脸部份利用Qt完成,拥有三个按钮别离控制图片的选择、视频的选择和摄像头的打开。

人脸检测部份是整个软件的核心,利用OpenCV和C++语言完成。

如图,它分为下面两个部份:

分类器的训练

成立一个含有大量图片的样本库,样本库中的图片分为包括人脸特征和不包括人脸特征两种。

从样本库中将人脸和非人脸的haar-like特征提掏出来,作为分类器训练进程的输入,然后利用Adaboost算法训练出一个级联的强分类器。

该分类器就是一个对人脸和非人脸的判断器。

(二)人脸检测

若待检测的是视频或摄像头的录像,则从其中提取一帧进行图片预处置;若待检测的是图片,则直接进行图片预处置阶段。

加载在上一步工作中训练取得的分类器,对截取的待识别图像进行检测,若通过了分类器则表示检测出了人脸,存储该人脸的相关信息并利用一个红色圆圈将人脸标识出来,若未通过则表示没有检测到人脸。

以后移动剪裁窗口并重复检测的工作,直到该测试目标的所有像素点都被扫描过,则这次人脸检测的进程结束。

将最终的图片输出,在这上面所有被检测出来的人脸,都利用了红色圆圈标识了出来。

图本文的人脸检测流程

本文结构安排

本文分为以下几章:

第1章为绪论,主要论述了本文的研究背景、相关科研功效及要实现该项目的技术难点。

第2章中介绍了haar-like特征的由来,及如何利用积分图方式快速地提取人脸样本库的haar-like特征。

第3章主如果对Adaboost算法的研究,并介绍了该算法是如何从样本库的特征生成一个级联的强分类器,在这张最后还将笔者训练出分类器的具体操作步骤进行了演示和讲解。

第4章介绍的是测试文件在进行检测前需要的前置工作和如何用分类器进行人脸检测。

第5章的内容是本软件的开发环境及相关工具的简单介绍,而且还展示了此款软件的实验结果和结果分析。

本章小结

本章主要介绍了本文的研究背景及研究意义,人脸检测的难点,国内及国际的研究功效,还有本文的主要思路和文章结构。

2haar-like特征与积分图方式

构造训练样本库

样本库的数量与质量,直接关系到了检测的效果。

样本库中的图片数量越多,不同化越大,训练出来的分类器效果也就越好。

由于已经选择好了预备提取人脸特征,于是咱们需要预备这两组样本:

一组为正样本,其中所有的图片都包括了人脸的特征;一组为负样本,其中所有的图片都不包括人脸的特征。

正样本库

本文采取的样本库,来自于AT&T、Yale等标准人脸库。

笔者从中挑选了2706张肤色、表情、光照有较大不同的图片,作为本次训练的正样本库。

而且将所有图片的人眼设置在同一个水平位置,去除样本中人的头发,将更有利于训练的进行。

所有正样本库的图片都有着以下要求:

每张图片都要包括完整的人脸特征,我采取的是竖直方向从额头到下巴,水平方向包括左右脸颊。

所有的图片都必需统一格式和大小,我采取的文件格式是bmp图像格式,大小为20×20像素的灰度图。

正样本库中的部份图片如图所示。

图正样本库中的部份图片

负样本库

图片的背景对识别率有着专门大的影响,环境越是简单,人脸的识别率越高,而环境越是复杂,人脸检测的难度也就越大。

负样本库中的文件就是描述背景图片的。

所有负样本库的图片都有着以下要求:

不能够包括人脸的特征。

数量要足够多,一般来讲要多于正样本库的数量。

每张图片之间的不同性要足够大。

对于图片的格式及大小,没有具体要求。

这里采用了4830张20×20像素的灰度图,有利于加速训练速度。

负样本库中的部份图片如图所示:

图负样本库中的部份图片

haar-like特征的表示及计算

最初的haar-like特征

Papageorgiou等人最先在人脸表示中利用haar-like特征,他们在人脸检测的研究中利用了Haar小波基函数,并提出了3种类型3种形式的特征[7]。

尔后,PaulViola等人又对此进行了改良,提出2种类型4种形式的特征[图]。

图最初的haar-like特征

由上图可见,haar-like特征由黑白两色的矩形框所表示。

计算haar特征值时,将灰度化的图像分为黑白两色区域,计算白色区域W与黑色区域B的像素值之和的差值,再乘以相应的权重系数T,即可取得相应的haar特征值[8]:

(2-1)

对于图a、图b及图d,特征值计算方式为:

(2-2)

对于图c,特征值计算方式为:

(2-3)

以上就是最初的haar-like特征的计算方式。

当获取一幅样本图像,按照此方式就可以够计算出这幅图像的特征值并保留下来。

但是最初的haar-like特征矩阵数量过少,不足以描述一幅图像的特征。

改良的haar-like特征

以后,Lienhart等人再次对haar-like特征进行了完善[9],而且提出了一些旋转的haar-like特征,至此,4个边缘特征、8个线性特征、2个圆心围绕特征和1个对角特征组成了新的haar-like特征[图]。

图新的haar-like特征

本文采用了这15种特征矩形模板,将矩形模板在样本图像中任意放置,每一种形态都称作一种特征,找出样本图像所有的特征,就是训练分类器的基础。

图就是其中一种矩形特征在人脸中的表示[10]。

图haar-like矩形特征在人脸中的表示

积分图方式

之前面能够了解到,人脸检测的第一步,就是计算出人脸的特征值。

但是,这里的计算量是超级庞大的,因为每碰到一个样本或子窗口图像,都必需排列穷举出所有包括的特征,而且计算出特征值。

举个例子,即即是PaulViola提出的最简单的4种矩形特征,将它放在像素为24×24的窗口中排列穷举,能够出现数十万的特征。

如此的计算量显然不符合咱们的要求,它将会极大地降低咱们的工作效率。

这时急需一种方式来帮忙咱们降低计算量。

积分图方式就是如此一种咱们所需要的方式。

它是一种能够让咱们只需遍历一次图像就可以够求出图像中所有像素和的算法。

积分图方式的核心思想是把待检测图像从起点到其它各个像素点所组成矩形的像素和保留起来,当需要计算某个矩形区域的像素和时,直接从保留的数组中搜索相关元素,即可直接挪用计算结果[11]。

它的具体计算进程如下:

对指定图像的每一行进行扫描,递归计算每一个像素点在行方向上的累加值和积分图像的值。

积分图又分为两种:

一种是0度倾斜角,另一种是45度倾斜角。

0度倾斜角的积分图

某个像素点x,y的值就是它左上角所有像素点的和:

(2-4)

图中展示的竖直矩形,即为0度倾斜角的积分图。

对于图中的区域B,假设它的左上、右上、左下、右下极点别离为一、二、3、4,则区域B的像素和为:

(2-5)

对于图中的区域D,假设它的左上、右上、左下、右下极点别离为Ⅰ、Ⅱ、Ⅲ、Ⅳ,则区域D的像素和为:

(2-6)

图0度倾斜角积分图的计算

45度倾斜角的积分图

某个像素点x,y的值是就是它左上45度和右上45度区域的像素和:

(2-8)

图45度倾斜角积分图的计算

对于图用蓝色线条所标记出来的区域,咱们有快速的积分图计算方式:

(2-9)

图45度倾斜角积分图的快速计算

本章小结

至此,咱们能够从样本库图像中提掏出人脸的特征作为输入,开始咱们的分类器训练。

本章详细介绍了haar-like特征的由来、进展和利用积分图方式对特征进行提取的进程。

3Adaboost算法及分类器的训练

Adaboost算法的来历

Valiant在1984年就在运算机学习理论中提出了PACProbablyApproximatelyCorrect模型,他以为机械学习不需要每次都正确,只要能够在多项式个样本和多项式的时刻能够达到所需要的准确率,即可算一次成功的学习[12]。

在PAC模型的基础上,Valiant又提出了Boosting算法。

在那个算法中有两个核心概念,弱学习和强学习。

弱学习是指一个识别率不算很高,比随机识别好一点的学习算法,它比较容易取得。

强学习是指一个识别率很高的学习算法,它很难取得。

Valiant和Kearns证明了只要有足够的数据,弱学习能够通过量次学习的方式组合取得一个高精度的强学习算法,使得Boosting算法有据可依。

以后,又有多位机械学习领域的专家对Boosting算法提出了改良,目前已经形成了4种比较成熟的算法,别离是DiscreteAdaboost、RealAdaboost、LogitBoost、GentleAdaBoost。

Adaboost算法介绍

算法描述

本文在训练进程中所利用的算法是GentleAdaBoost算法。

它的具体描述如下[13]:

对于某N个样本文件,,,设定正样本(即人脸样本),设定负样本(即非人脸样本)。

初始化样本的权重。

概念训练的轮数N,从第1轮到第N轮,别离做:

挑选这一轮训练进程中的最优弱分类器,该弱分类器需使得误差最小;

更新权重;

归一化权重;

取得并输出强分类器。

弱分类器

最开始取得的弱分类器,可能只包括一个haar-like特征。

它不能够直接进行咱们的人脸检测工作,因为它的效果可能与随机检测差不多。

咱们需要的是利用它取得一个最优弱分类器,才能进行下一步的工作。

弱分类器的训练进程,咱们把它称为一种决策树的方式:

在机械学习中,咱们用决策树来分析各个因素对结果所造成的影响,它是一种从属性到值的映射[14]。

决策树中的节点代表对象,分叉路径代表属性,叶节点代表从这条路径的属性取得的值。

咱们能够用下图所展示的决策树帮忙理解:

图决策树的流程

弱分类器的训练方式就与此图类似。

它拥有一个阈值,在每一个非叶子节点,它都需要判断一次,当某张图片的计算出的特征值大于那个阈值的时候,就被判定为人脸进行下一步,反之,则被判定为非人脸。

通过如此的运算,最优弱分类器就产生了。

强分类器

前面提到了Adaboost算法的流程,那么从弱分类器具体是如何做才能取得强分类器呢?

强分类器概念如下:

(3-1)

代表强分类器,代表第n个弱分类器,代表强分类器的阈值。

具体操作如下:

设定轮数N。

第一轮训练样本,取得最优弱分类器。

提高被误判样本的权重,将新样本和上一轮错分了的样本统一放在一路,进行新一轮的训练。

循环上一步骤,在N轮以后能够取得N个最优弱分类器。

将N个最优弱分类器组合,即可取得一个强分类器。

图强分类器的取得

级联分类器

虽然强分类器能够保证必然的准确率,可是只有一个强分类器仍是难以真正应用到人脸检测中。

因为单个的强分类器有这么一个特点:

它有着较小的错误同意率,可是检测率也不高。

也就是说,非人脸通过检测的概率超级低,可是人脸能够通过检测的概率不会超级高。

咱们想要的固然是高的检测率和低的错误同意率,比如要高到90%的人脸能通过检测,而只有1%的非人脸能通过检测[15]。

但是,设置强分类器阈值的时候就决定了高的检测率与低的错误同意率是矛盾的,所以咱们需要增增强分类器的个数,以达到分类器在提高检测率的同时,能够大大降低错误同意率[16]。

所以,咱们的级联分类器,就是多个强分类器的组合,在前面的级层,强分类器较为简单,节点数量较少,在后面的级层,强分类器较为复杂,节点数量更多。

训练分类器

前面介绍了正负样本库的构造及级联分类器的取得方式,此刻介绍一下本文从样本库取得级联分类器的进程。

本次训练的环境是Windows32位操作系统,电脑内存2G,英特尔酷睿i3处置器,利用开源的运算机视觉库OpenCV进行训练。

将所有正样本放在名为pos的文件夹下,将所有负样本放在名为neg的文件夹下。

利用""指令将正负样本库别离描述为文本文件[如图],在pos文件夹和neg文件夹下能够别离取得""和""[如图]。

图将正样本库描述为txt文件的指令

图取得正负样本库的描述文件

""的内容如图所示,每一行代表一个样本,bmp表示图片格式,"1002020"表示从坐标0,0到20,20,一张样本图片中只有一个目标?

?

即一张人脸。

图正样本库

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2