《毕业设计论文通信类电子信息工程类专业毕业设计全文》由会员分享,可在线阅读,更多相关《毕业设计论文通信类电子信息工程类专业毕业设计全文(36页珍藏版)》请在金锄头文库上搜索。
1、摘 要在现代社会中,视频采集与检测被广泛应用于生活的方方面面,特别是现代监控、实时统计等领域,有着巨大的商业前景。本设计研究了广告效果评估系统中的人脸检测和识别技术。本系统是在C+环境下,调用DirectShow和OpenCV的库函数编译实现的。DirectShow是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM的流媒体处理的开发包,OpenCV是英特尔公司软件开发中心开发的是面向应用程序开发者开发的计算机视觉库,它由一系列C函数和少量C+构成。另外本设计介绍了快速人脸检测算法,快速人脸检测是Viola提出了基于积分图像与AdaBoost训练
2、的快速人脸检测方法,其中利用积分图像计算矩形特征,再用AdaBoost方法训练这些矩形特征组成强分类器,由于可以在积分图像上快速的计算这些矩形特征从而使分类器的速度大大提高。本设计的基本思想是安装摄像装置来拍摄动态场景,然后在视频中检测人脸信息,并跟踪其运动。该系统硬件结构简单实用,只需在普通PC上安装一块视频采集卡,与前端摄像头连接以获取视频输入。软件结构主要为视频信息的采集与检测,算法的核心是人脸快速检测检测。关键词: DirectShow,OpenCV,人脸检测,人脸跟踪,AdaBoostABSTRACTIn modern society, video capture and detec
3、tion are widely used in all aspects of life, especially modern monitoring, real-time statistics and other fields, has great commercial prospects. The design study to assess the effect of the advertising system of face detection and recognition technology. The system is in C + + environment, called D
4、irectShow and OpenCV to compile the library functions achieve. The design of the basic idea is to install the camera device to shoot dynamic scenes, and then detected in the Face video information, and track their movement. The system hardware structure is simple and practical, just in an ordinary P
5、C to install a video capture card, with the front camera for video input connections. Software architecture of the main video information for the collection and testing, the core algorithm for rapid detection of human face detection.KEY WORDS: DirectShow,OpenCV Face Detection, Face Tracking, AdaBoos
6、t目 录前 言1第1章 DirectShow视频采集原理31.1 DdiectX简介31.2 DirectX 9.0c41.3 DirectShow51.4 Directshow基本原理61.5系统环境及开发环境71.6 用DirectShow实现视频采集7第2章 开发平台OpenCV82.1 OpenCV简介82.2 OpenCV图像处理库82.3 OpenCV中的常用结构9第3章 快速人脸检测13第4章 人脸检测开发环境搭建164.1硬件安装164.2 DirectX SDK 开发包下载安装174.3 OpenCV下载与安装184.4 Microsoft Visual C+环境配置184.
7、5 VC项目的建立18第5章 系统实现215.1系统组成215.2人脸检测的实现21第6章 总结与展望25致 谢26参考文献27附 录DirectShow视频采集函数28前 言 近年来,随着平面广告的发展,对广告效果的评估越来越被企业重视。从功能上讲,建立一个这样的系统需要做视频采集与检测两方面工作。其核心是利用计算机视觉技术从视频图像中检测人脸并对其行为进行理解与描述,其中重要算法就是快速人脸检测。所谓人脸检测,指在给定的一幅静止图像或一段动态图像序列中,从背景未知的图像中分割、提取并确认可能存在的人脸,如果检测到人脸,则确定其位置与大小,并提取出人脸的特征。论文共分五章,主要内容概要如下:
8、第1章首先介绍了DirectShow视频采集原理,DirectShow是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM的流媒体处理的开发包,主要用于视频采集。第2章主要介绍了系统的一个开发平台OpenCV,OpenCV是英特尔公司开发的,是面向应用程序开发者开发的计算机视觉库,它由一系列C函数和少量C+构成,OpenCV函数库不仅对图像进行过滤,统计,分类等基本操作,而且现了图像处理和计算机视觉方面的很多通用算法,主要用于人脸的检测。第3章摘要介绍了快速人脸检测算法,本算法是Viola提出了基于积分图像与AdaBoost训练的快速人脸检测方法
9、,其中利用积分图像计算矩形特征,再用AdaBoost方法训练这些矩形特征组成强分类器,由于可以在积分图像上快速的计算这些矩形特征从而使分类器的速度大大提高。第4章主要介绍了系统环境的搭建,主要包括软硬件两个部分以及C+库函数的路径配置。第5章主要介绍了系统的实现主要介绍了实现视频采集与人脸检测的一些重要函数。人脸检测所存在的主要问题:1.实时性问题,在实际应用中,特别是在数字视频监视系统中,人们往往对于系统的实时性要求更高,当有人走进监控器的监视范围之内时,要求能够实时、准确地检测到人脸的位置,并能跟踪它的运动轨迹及大小变化,直到离开所监控的范围。众所周知,在算法设计时,一方面为了提高实时性,
10、需要减少目标特征的数量和复杂度;另一方面为了提高准确度,需要同时使用多个特征进行综合判断,实时性和准确度往往难以同时满足。此外,由于图像本身数据量大,仅仅为了计算某一个特征往往也需要花费大量的时间。在实时性与准确度之间寻找一个合理的折衷,是许多算法设计的一个主要目标。2.遮挡处理问题,目前,大部分人脸检测、运动跟踪系统都不能很好地解决目标之间互遮挡和人体自遮挡等问题,尤其是在拥挤状态下,多人脸检测和跟踪问题更是难于处理。遮挡时,人体只有部分是可见的,简单依赖于背景减除进行运动分割的技术此时将不再可靠,为了减少遮挡或深度所带来的歧义性问题,必须开发更好的模型来处理遮挡时特征与身体各部分之间的准确
11、对应问题。本论文所做的主要工作:本设计的目的是在学习Visual C+的同时,熟悉VC的编程环境,了解和学习编程的相关知识,并熟悉了一个工程项目的实现过程。本设计对比了几种人脸检测算法,选择了实时性与准确度相对较好的快速人脸检测AdaBoost算法。本文所研究的主要是在DirectShow和OpenCV支持下的视频采集与检测。第1章 DirectShow视频采集原理1.1 DdiectX简介DirectX是一种应用程序接口,DirectX是由很多API组成的,按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和网络部分。 显示部分担任图形处理的关键,分为DirectDraw(DDra
12、w)和Direct3D(D3D),前者主要负责2D图像加速。它包括很多方面:我们播放mp3、DVD电影、看图、玩小游戏等等都是用的DDraw,你可以把它理解成所有划线的部分都是用的DDraw。后者则主要负责3D效果的显示,比如CS中的场景和人物、FIFA中的人物等等,都是使用了DirectX的Direct3D。DirectX并不是一个单纯的图形API1,它是由微软公司开发的用途广泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Set
13、up、Direct Media Objects等多个组件,它提供了一整套的多媒体接口方案。只是其在3D图形方面的优秀表现,让它的其它方面显得暗淡无光。DirectX开发之初是为了弥补Windows 3.1系统对图形、声音处理能力的不足,而今已发展成为对整个多媒体系统的各个方面都有决定性影响的接口。 DirectX 是一组低级“应用程序编程接口”,可为 Windows 程序提供高性能的硬件加速多媒体支持。Windows 支持 DirectX 8.0,它能增强计算机的多媒体功能。使用 DirectX 可访问显卡与声卡的功能,从而使程序可提供逼真的三维图形与令人如醉如痴的音乐与声音效果。 Direc
14、tX 使程序能够轻松确定计算机的硬件性能,然后设置与之匹配的程序参数。该程序使得多媒体软件程序能够在基于 Windows 的具有 DirectX 兼容硬件与驱动程序的计算机上运行,同时可确保多媒体程序能够充分利用高性能硬件。 DirectX 包含一组 API,通过它能访问高性能硬件的高级功能,如三维图形加速芯片和声卡。这些 API 控制低级功能、支持输入设备并控制着混音及声音输出。构成 DirectX 的下列组件支持低级功能: Microsoft DirectDraw Microsoft DirectDraw API 支持快速访问计算机视频适配器的加速硬件功能。它支持在所有视频适配器上显示图形
15、的标准方法,并且使用加速驱动程序时可以更快更直接地访问。DirectDraw 为程序以及 Windows 系统组件提供了一种独立于设备之外的方法来访问特定显示设备的功能,而不要求用户提供设备功能的其它信息。 2002年底,微软发布DirectX9.0。DirectX 9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。全新的VertexShader编程将比以前复杂得多,新的VertexShader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024条。 PS 2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,电影级别的显示效果轻而易举的实现。 VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。 增加对浮