




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 绪论1.1 课题的背景及意义随着我国社会和经济等各项事业的迅猛发展,许多行业对于快速和准确地识别有关人员身份的需求正日趋迫切。由于生物特征是人体的内在属性,具有很强的自身稳定性和个体差异性,所以人体的生物特征是进行身份识别最理想的依据。在这样的背景下,一门新的学科,即生物测定学引起了人们的研究热潮,生物测定学(Biometrics)是指通过计算机将人体固有的生理特征(如指纹、虹膜、面部、掌纹)或行为特征(如书写、声音等)收集并进行处理,来进行个人身份鉴定的技术。其中利用人脸的特征进行身份识别1具有直接、友好、主动的特点,成为身份识别最自然和最直接的手段。眼睛作为人脸上最显著、最稳定的特征,可以被用于帮助定位人脸,提供人的注视信息,识别人脸动作(如表情变化)等。有资料表明,高速公路上发生的交通事故中有50以上是由于长时间驾驶造成疲劳或由所见目标单调而形成注意力不集中,甚至打瞌睡等原因造成的,而驾驶员在车辆行驶过程中是否疲劳驾驶就可以从眼睛的状态反映出来。当驾驶员精神饱满时,眼皮张开程度及眨眼频率都有统计的正常值;当驾驶员精神萎靡不振时,眼皮张开程度明显变小,眨眼频率也明显降低。所以,利用驾驶员眼睛的状态信息来判断其疲劳状况是一种可行的方法。在车辆中安装驾驶员疲劳监测系统,利用摄像头对驾驶员的驾驶行为进行监控,获取驾驶员脸部的一段连续图像,对每幅图像中的眼睛状态进行分析,综合每幅图像的数据来获得一个眨眼周期。由于正常的眨眼频率与疲劳状态下的眨眼频率有着明显的区别,从而可以判断出该图像序列获取时驾驶员韵精神状态,在判断驾驶员疲劳时由系统适时的给出警告信号以避免事故发生。因此,准确、快速的获得每幅图像中眼睛的精确位置,就成为实现驾驶员疲劳状态监控的关键。作为人眼定位的另外一个重要应用就是人脸识别。人脸识别不仅与模式识别、图像处理、计算机视觉和人工智能等多个学科相关,还与认知学、神经学、心理学等有紧密联系,在私法验证、安全监控、智能卡、档案管理、视频会议、人机交互等方面有着广泛的应用。特别是,有专家提出要在北京2008年奥运会使用人脸识别系统。如果在奥运会中使用人脸识别系统,就可以有效地管理奥运区内敏感区域和高风险实验室的人员出入,辨别后勤、食品运送人员及其他工人是否经过登记授权,防止恐怖人员等影响社会稳定的人员进入奥运区,防止意外事件发生。随着后PC时代的来临,人们开始更多的关注这样一个全新的概念:嵌入式处理器。嵌入式处理器经过发展,已经由8位的单片机发展到32位的微处理器,已经能够满足图像处理等任务。ARM(Advanced RISC Machines,高级精简指令集机器)作为嵌入式技术中极其重要的一份子,发展极其迅猛2。采用ARM技术的设备已在各项领域中被广泛应用。在32位嵌入式微处理器市场上,基于ARM内核的微处理器在市场上处于绝对的领导地位,因此追踪ARM技术的发展趋势显得尤为重要3。而采用基于ARM技术来实现的人眼定位系统,具有体积小、低功耗、方便、快捷、经济等优点,很具有研究意义,工业应用广泛,有很好的发展前景。1.2 国内外发展现状人脸检测与人眼定位的研究4最早可追溯到十九世纪法国人Alton的工作,现代的研究,始于60年代末70年代初,在90年代以来成为了研究热点。目前,国内外对人脸检测和人眼定位的研究越来越热,国外比较著名的美国麻省理工学院,卡耐基梅隆大学等高校都建立了人脸检测实验室,其中著名的研究机构有Media lab,Human-Computer Interface Institute、Department of Engineering in University of Cambridge等。其它国家比如JAPAN、SINGAPO、KOREA等,在人脸检测方面也取得了相应的研究成果。文献5利用了人脸的几何、空间和灰度的度量特征,对人脸进行粗定位,然后利用人眼与嘴巴的三角关系来精确地定位人脸,人脸的检测率达到96.7%,器官特征的检测率达到90.0%。文献6-7对人脸样本和非人脸样本采用了Kohonen自组织映射网络进行聚类。Samaria8等人提出了使用HMM模型进行人脸检测的算法。他们将隐马尔可夫模型的状态迁移的条件使用人脸区域的结构信息来表示,这种方法的鲁棒性较好,对不同角度和不同光照条件的人脸图像都可以取得较好的识别效果。国内开展人脸检测研究的主要单位有清华大学,哈尔滨工业大学,北京工业大学等,相对而言都取得了一定的成果。针对人脸检测环境的复杂性,文献9-11提出了一种利用肤色和支持向量机(SVM)的人脸检测方法,该方法可以有效地从复杂背景信息中检测出人脸。该方法是在统计学习理论的基础上发展出的一种新的模式识别方法,它采取基于结构风险最小化原理的方法,在检测速度上取得了很好的效果。虽然经过国内外众多学者们的共同努力,人脸检测的速度有了一定的提高,但是相对于人脸检测的精度而言进步相对较慢。2001年,P.Viola的一篇文章12的发表可以认为是检测速度提高的一个转折点。他通过综合Adaboost和Cascade算法实现了实时的人脸检测系统,使得人脸检测从真正意义上走向了实用。之后,更多的学者,如Rainer、Lienhart、B.Froba、Stan Z.Li、C.Liu等13-15,开始将注意力集中到Boosting算法上来,使得在提高检测精度的同时也大幅度地提高了速度。著名的Intel OpenCV开源库16的人脸检测与跟踪算法正是使用了Adaboost算法实现的,它对正面人脸的检测及跟踪达到了相当好的效果。目前的人眼定位方法大多都是在经过人脸检测确定人脸基本位置的基础上进行人眼定位的,显然,这样做可以减少背景干扰,缩小搜索区域,从而提高人眼检测的精度和速度。主要有以下几种方法:(1)灰度投影法,该方法多用于在人脸矩形区域中进行人眼的粗定位。由于在人脸图像中人眼的灰度较低,在人脸的水平灰度投影曲线上,认为曲线的最大值点(对应人的额头部位)和次最大值点(对应人的鼻中部)之间的一个极小值点对应位置为眼睛所在的大致水平位置 17。(2)二值化法,该方法首先用直方图阈值法将图像二值化,然后根据其中黑色区域的面积、形状和相对位置等几何特征确定出瞳孔的位置18。(3)Hough变换法19,Hough变换是一种用于区域边界形状描述的方法,常常用于直线段、圆和椭圆的检测。由于眼球的圆形结构特征,人眼定位问题可以转化为在图像中确定圆形结构位置的问题。该方法的缺点是占用存储空间大,耗费时间长。(4)基于模版匹配的方法 20,根据上眼睑曲线特征构造了一种弹性模板。(5)眼角检测法21,该方法通过Gabor滤波器检测眼角,因此要求脸像尺寸较大,对图像质量,尤其是对眼角的对比度要求较高。(6)对称性检测法,对称性是识别物体可利用的基本性质之一,它包括点对称性(也叫中心对称性)和轴对称性。对于人脸图象来说,人眼、眉毛、嘴等都具有很强的点对称性22。(7)特征眼法,类似于特征脸法,该方法将候选眼部投影到特征眼空间得到构造眼部23。目前大多数人脸检测与人眼定位都是在运算速度很快的PC机上实现的,随着嵌入式系统运算速度的不断加快,人们开始在嵌入式系统中实现一些简单的图像处理。所谓的嵌入式系统就是软件硬件结合紧密的系统,一般而言,嵌入式系统的构架可以分为4个部分:处理器、存储器、输入输出接口和软件。而嵌入式处理器则是整个系统的心脏。从应用的角度来划分,嵌入式处理器可以分为以下四个类型:嵌入式微处理器、嵌入式微控制器、嵌入式DSP、嵌入式片上系统。嵌入式微处理器的基础是通用计算机中的CPU,在应用中,将处理器装配在专门设计的电路板上,只保留与完成功能有关的部分,这样可以大大减小系统的体积和功耗。为了满足应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本一样,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。嵌入式微处理器目前主要有Am186/88、Power PC、MIPS、ARM系列等。其中,采用ARM技术知识产权(IP)核的微处理器,即通常所说的ARM微处理器,已经遍及各类电子产品市场,应用最为广泛,占有75%以上的市场份额。人们在嵌入式系统中处理一些简单的图像时,最先得到应用是在高速运算的DSP系统中,但由于DSP系统控制功能不足,扩展能力也不理想,所以人们开始尝试在ARM系统中开发人脸检测与人眼定位系统。1.3 论文的主要研究工作本文的研究目标是在ARM(S3C2440X)和嵌入式Linux组成的平台上进行图像采集、处理、计算及定位结果的显示,从而实现整个系统的功能,可以看作是对人眼定位便携化的一种新的尝试。本文采用了高性价比的ARM9嵌入式处理器,处理速度可高达203MHz,可以很好地实现图像处理功能;采用开源的、可裁剪的嵌入式Linux为操作系统,使系统具有处理复杂情况的能力,尤其是它的内核可裁剪,移植性好,性能稳定,因此在此系统上进行应用软件的设计。该系统构成简单,体积小,功耗小,性能稳定,安装简易,通用性强,可以满足多种工业应用的需要,而且开源操作系统的使用也降低了成本。论文的主要内容包括以下几个方面:(1)根据实时人眼定位系统的基本要求,从性能、价格、体积和实验室具体实验条件等各个方面进行软硬件选型,并依据嵌入式系统开发平台设计要求进行了系统设计。(2) 将Adaboost算法应用于人脸检测中,构建了一个实时人脸检测系统。(3) 系统的分析了OPenCV的结构,并将带有开源视觉处理库的OPenCV移植到嵌入式ARM平台上。1.4 论文的结构安排第一章主要介绍了本课题的研究背景及意义、国内外的发展现状以及本文的主要内容。第二章从系统要实现的功能出发,进行嵌入式操作系统和微处理器选型以及硬件模块的选择,搭建了系统所需的软硬件平台。第三章介绍了基于Adaboost算法的人脸检测的原理,对该学习算法的原理做了详细的分析和研究。其中包括如何利用积分图像快速地计算Haar特征、弱分类器、强分类器以及级联分类器的训练方法。第四章介绍了OpenCV库的功能及优势,重点研究了如何移植OpenCV到ARM的嵌入式系统,以及使用OpenCV来实现实时人眼定位的软件设计。第五章展示了实时人眼定位的结果。第六章总结全文并提出了本文还存在的一些不足之处。2 系统的软硬件平台2.1 嵌入式系统根据IEEE的定义,嵌入式系统是“控制、监视或者辅助操作机器和设备的装置”(原文为devices used to control,monitor,orassist the operation of equipment,machinery or plants)24。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。根据这个定义,可以从3个方面来理解嵌入式系统:嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力,才更具有优势。嵌入式系统具有以下几个重要特征。(1)系统内核小 由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如,嵌入式Linux系统中的内核只有700 K左右。(2)专用性强 嵌入式系统的个性化很强,其中的软件系统和硬件结合得非常紧密,一般要针对硬件不断进行系统移植。(3)系统精简 嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。(4)多任务的操作系统 为了合理的调度多任务、利用系统资源、系统函数以及专家库函数接口,嵌入式系统必须使用多任务的操作系统。从嵌入式系统的以上几个特征不难看出,它与实时人眼定位系统的设计要求契合度相当高,所以选用嵌入式系统作为整个定位系统的平台。2.1.1 嵌入式操作系统的选择在种类繁多的嵌入式操作系统中,本系统选用嵌入式Linux操作系统作为软件开发平台,本小节将详细阐述选择Linux系统的原因。Linux是一种计算机操作系统,中文读法为“里纳克斯”。Linux操作系统的内核的名字也是“Linux”。Linux操作系统是自由软件和开放源代码发展中最著名的例子。Linux具有很高的可靠性和效率,它在这方面的表现是公认的25。Linux的出现,最早开始于一位名叫Linux Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能,因而开始了Linux雏形的设计。Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同使用Windows NT一样,允许使用窗口、图标和菜单对系统进行操作。Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿的对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益26。Linux操作系统不仅能够运行于PC平台,还在广泛应用于嵌入式系统中,平台通用性很强,已经成功地用在几种微处理器上,包括x86、SPARC、ARM、PowerPC、MIPS和SuperH。目前正在开发的嵌入式系统中,49%的项目选择嵌入式Linux操作系统作为软件平台。嵌入式Linux操作系统之所以成为嵌入式产品的理想选择,主要由于嵌入式Linux系统具有如下显著特点。(1)开放性 开放性27是指Linux系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互连。源代码可以从互联网上免费下载使用,而且Linux操作系统上运行的大多数应用程序也是免费得到的,用户可以根据自己的需要对Linux操作系统进行修改,剪裁成适合于自己应用的系统。从使用费用上看,Linux与其他操作系统的区别在于Linux是一种开放、免费的操作系统,而其他操作系统都是封闭的系统,需要有偿使用。这一区别使得用户能够不用花钱就能得到很多Linux的版本以及为其开发的应用软件。当用户访问Internet时,会发现几乎所有可用的自由软件都能够运行在Linux系统上。(2)多用户 多用户是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。Linux和Unix都具有多用户的特性。(3)多任务 多任务是现代计算机的最主要的一个特点。它是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程平等地访问微处理器。由于CPU的处理速度非常快,其结果是,启动的应用程序看起来好像在并行运行。事实上,从处理器执行一个应用程序中的一组指令到Linux调度微处理器再次运行这个程序之间只有很短的时间延迟,用户是感觉不出来的。(4)可配置内核 因为可供嵌入式操作系统使用的存储容量十分有限,嵌入式系统要尽量减少体积。通常采用软件固化的方法,将程序和操作系统嵌入到整个产品里面。嵌入式Linux除了本身体积较小以外,还保留了Linux操作系统中非常有特色的一点:模块化内核。用户可以自己裁剪系统内核,用户完全可以根据不同的任务来选择特定内核模块,而将不用的部分去掉,减少体积,从根本上解决了体积和功能的矛盾。(5)可移植性 可移植性是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。可移植性为运行Linux的不同计算机平台与其他任何机器进行准确而有效的通信提供了手段,不需要另外增加特殊的通信接口。(6)良好的用户界面 Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的命令行界面,即Shell,它既可以联机使用,又可在文件上脱机使用。Shell有很强的程序设计能力,用户可方便地用它编制程序,从而为用户扩充系统功能提供了更高级的手段。可编程Shell是指将多条命令组合在一起,形成一个Shell程序,这个程序可以单独运行,也可以与其他程序同时运行。系统调用给用户提供编程时使用的界面。用户可以在编程时直接使用系统提供的系统调用命令。系统通过这个界面为用户程序提供低级、高效率的服务。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。(7)网络功能 完善的内置网络是Linux的一大特点。Linux在通信和网络功能方面优于其他操作系统。Linux为用户提供了完善、强大的网络功能。支持Internet是其网络功能之一。Linux免费提供了大量支持Internet的软件,Internet是在Unix领域中建立并发展起来的,在这方面使用Linux是相当方便的,用户能用Linux与世界上的其他人通过Internet网络进行通信。文件传输是其网络功能之二。用户能通过一些Linux命令完成内部信息或文件的传输。远程访问是其网络功能之三。Linux不仅允许进行文件和程序的传输,它还为系统管理员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位技术人员能够有效地为多个系统服务,即使那些系统位于相距很远的地方。(8)设备独立性 设备独立性是指操作系统将所有外部设备统一看作文件来对待,通过它们的设备驱动程序,应用程序可以将设备作为一个文件进行读写等控制,不必知道它们具体的存放形式和地址。Linux操作系统是具有设备独立性的操作系统,它的内核具有高度适应能力,根据公开的内核源代码,可以很方便的进行新型的外部设备驱动程序设计。(9)可靠的系统安全 Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。2.1.2 Linux操作系统的核心内核是整个操作系统的核心28,是操作系统性能的主要体现,向外部提供了对硬件设备的核心管理调用。Linux是最受欢迎的自由电脑操作系统内核29。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux是一个一体化内核(monolithic kernel)系统。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。对Linux来说,可以将操作系统的代码分成两部分。内核所在的地址空间称作内核空间。而在内核以外的统称为外部管理程序,它们大部分是对外围设备的管理和界面操作。外部管理程序与用户进程所占据的地址空间称为外部空间。通常,一个程序会跨越两个空间。当执行到内核空间的一段代码时,称程序处于内核态,而当程序执行到外部空间代码时,称程序处于用户态。多进程并发运行时,每个进程都请求系统资源,比如处理能力、内存等。内核作为大的可执行代码,负责处理所有这些请求,管理各个任务,或者说为每个任务分配CPU时间,并且负责任务间的通信。Linux内核的主要模块包括几个部分30:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。2.2 处理器选型嵌入式系统是软件硬件结合紧密的系统,一般而言,嵌入式系统的构架可以分为4个部分:处理器、存储器、输入输出接口和软件。对本系统来说,在选择嵌入式系统各部分的时候需要考虑以下几个方面:系统的工作频率;存储器容量;I/O口的种类和数量;操作系统和内核。其中,由嵌入式处理器决定的工作频率是其核心部分,它决定着系统其它部分的功能强弱,相当于计算机的CPU,可以说是整个系统的心脏。2.2.1 嵌入式处理器的广泛应用从应用的角度来划分,嵌入式处理器可以分为以下四个类型:嵌入式微处理器、嵌入式微控制器、嵌入式DSP、嵌入式片上系统。嵌入式微处理器的基础是通用计算机中的CPU,在应用中,将处理器装配在专门设计的电路板上,只保留与完成功能有关的部分,这样可以大大减小系统的体积和功耗。为了满足应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本一样,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。嵌入式微处理器目前主要有Am186/88、Power PC、MIPS、ARM系列等。其中,采用ARM技术知识产权(IP)核的微处理器,即通常所说的ARM微处理器,已经遍及各类电子产品市场,应用最为广泛,占有75%以上的市场份额。2.2.2 ARM9的选择ARM既是一个公司的名字,也是对一类微处理器的通称,一种技术的名字31。1991年ARM公司于英国剑桥成立,主要出售芯片设计技术的授权。ARM本身不从事芯片生产而是转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据应用领域不同加入适当的外围电路,从而形成自己的ARM微处理器芯片。ARM7处理器采用3级流水线,而ARM9采用5级流水线。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30左右。指令周期数的改进最明显的是loads指令和stores指令。从ARM7到ARM9这两条指令的执行时间能够减少30。指令周期的减少是由于ARM7和ARM9两种处理器内的两个基本的微处理结构不同所造成的。一方面,ARM9有独立的指令和数据存储器接口,允许处理器同时进行取址和读写数据,这叫作改进型哈佛结构。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。而ARM7则采用冯诺伊曼结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。所以,ARM7只有数据存储器接口,它同时用来取指令和数据访问。另一方面,5级流水线引入了独立的存储器和写回流水线,分别用来访问存储器和将结果写回寄存器。以上两点实现了一个周期完成loads指令和stores指令。新一代的ARM9处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。因此,与适用于工业控制、网络设备、移动电话等的ARM7系列相比ARM9更适用于成像和安全产品。由于本文需完成图像采集、显示和处理等功能,因此采用ARM9系列。2.2.3 S3C2440的选择在ARM9系列中,S3C2440X是韩国三星公司推出的16/32位RISC微处理器,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。S3C2440采用了ARM920T的内核,0.13um的CMOS标准宏单元和存储器单元。其低功耗,简单,优雅,且全静态设计特别适合对于成本和功率敏感型的应用。它采用了新的总线架构Advanced Micro Bus Architecture(AMBA)。S3C2440的杰出特点是其核心处理器(CPU),是一个由Advanced RISC Machines有限公司设计的16/32位ARM920T的RISC处理器。ARM920T实现了MMU,AMBA BUS和Harvard高速缓冲体系结构。这一结构具有独立的Cache和16KB数据Cache,每个字都是由具有8字长的行组成,通过提供一套完整的通用系统外设,S3C2400减少整行系统成本和无需配置额外的组件。S3C2400具有以下特性:l 为手持设备和通用嵌入式应用提供片上集成系统解决方案。l 16/32位RISC体系结构和ARM920T内核强大的指令集。l 加强ARM体系结构MMU用于支持WinCE,EPOC32和Linux。l 指令高速存储缓冲器(I-Cache),数据高速存储缓冲器(D-Cache),写缓冲器和物理地址TAG RAM减少主存宽带和响应性带来的影响。l 采用ARM920T CPU内核支持ARM调试体系结构。l 内部高级微控制总线(AMBA)体系结构(AMBA2.0,AHB/APB)。 所以,S3C2440十分适合于图像处理功能和网络功能的嵌入式设备开发。基于S3C2440的以上优点,本系统选用它作为硬件系统的处理器。2.3 基于ARM的实时人眼定位系统的硬件结构对于本系统使用的ARM9实验箱,片上有丰富的硬件接口资源,可以连接各种功能模块,由于本系统要完成的功能较多,所需各种硬件结构也较多。1.电源电路TQ2440开发板上的电压设计采用5V输入实验板,板上带电源开关和指示灯,经可带载1.5V的低压差线性稳压源AS2815AR-3.3IC芯片稳压,提供给实验板所需要的3.3V电源。在核心板上CPU内核电压(1.25V)采用低噪声、地压差线性稳压源MAX8860EUA稳压芯片。2.系统复位电路为了提供高效的电源监控作用,选取了专门的系统监视复位芯片MAX811S,实现对电源电压的监控和手动复位操作。该芯片优良,一旦系统电源低于系统复位的阀值(2.93V),复位芯片MAX811S将会对系统进行复位。3.系统时钟电路系统时钟源直接采用外部晶振,内部PLL电路可以调整系统时钟,使系统运行速度更快。4.JTAG接口电路JTAG(Joint Test Action Group)是一种国际标准测试协议,通过该标准可对具有JTAG接口芯片的硬件电路进行边界扫描和故障检测,主要用于芯片内部测试及对系统进行仿真、调试。JTAG 采用2.0mm间距的10脚调试接口电路,减少了底板的占用面积,方便用户的二次开发,S3C2440芯片内部有JTAG 核,因此,可以通过外部JTAG 调试电缆或仿真器与开发板系统连接调试。JTAG技术也是一种嵌入式调试技术。一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如FLASH、RAM、SOC内置模块的寄存器,像UART、Timers、GPIO等等的寄存器。但是,要使用这些功能,还需要软件配合,具体实现的功能则由具体的软件决定。5.串口电路 实验板带有一个五线异步串行接口和一个UART扩展接口。UART应用很普遍,所以大部分微控制器内部都集成有UART接口,但是不同类型的微控制器的UART接口内部电路和寄存器并不相同。UART允许在串行链路上进行全双工的通信,输出/输入的电平为TTL电平。6.实时时钟备用电池供电电路为了保持系统的状态数据,在系统断电后,必须使用备用电池供电。7.摄像头接口 CAMERA模块集成在S3C2440时,可以直接利用其中的CAMERA模块,使用这个扩展口可连接不同型号的摄像头(如OV9650)。8. NOR/NAND选择电路FLASH主要有NOR FLASH和NAND FLASH两种,是现在市场上两种主要的非易失闪存技术。当OM0接地时,从NAND FLASH启动;当OM0悬空时,从OM0启动。NOR FLASH相当于计算机的内存,不过也可以存储数据,而NAND FLASH则相当于硬盘,适合大量数据存储。NOR FLASH的特点是XIP(eXecute In Place,芯片内执行),这样应用程序可以直接在FLASH闪存内运行。NAND FLASH结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。本系统配置了一片2 MB的NOR FLASH,1片32 MB的NAND FLASH存储器为用户数据提供存储空间。3 基于Adaboost算法的人脸检测3.1 经典方法概述与Adaboost算法的选取人脸检测实际上是一个二值的分类问题,即在一幅图像中只有“人脸”和“非人脸”之分,人脸检测的目的就是确定图像中的人脸区域和非人脸区域。随着研究人员对人脸检测问题研究的深入,人们提出了很多优秀的人脸检测方法。总体上讲,人脸检测方法可以分为两类,一类是基于知识的方法,一类是基于统计理论的方法基于知识的方法一般先提取各种基本特征,如几何形状、灰度、纹理等,然后根据一些知识规则确认图像中是否包含人脸。这些规则可以通过人的先验知识获得,也可从较多样本中总结出来。一般比较容易提出简单的规则来描述人脸特征和它们的相互关系。例如,正面人脸通常都包括两只位置相互对称的眼睛,灰度图像中眼睛区域要比其他地方暗。特征之间的相互关系可以通过它们的相对距离和位置来描述。在输入图像中首先提取面部特征,确定基于编码规则的人脸候选区域。这种方法存在的问题是很难将人类知识转换为明确定义的规则。如果规则是详细的严格的,由于不能通过所有的规则检测可能失败。如果规则太概括通用,可能会有较高的错误接受率。此外,很难将这种方法扩展到在不同的位姿下检测人脸,因为列举所有的情况是一项很困难的工作。Yang等提出了基于镶嵌图(Mosaic,又称为马赛克图)的人脸检测方法,他们建立了一个基于知识的三层检测系统。Yang等先将人脸的五官区域划分为44个马赛克块,每块的灰度取块中各像素灰度的均值,使用一组规则进行检验,确定人脸候选区域,然后将人脸的区域划分为88个马赛克块,重新构建镶嵌图,再使用一组规则从候选区域定位人脸区域,最后将得到的人脸区域二值化,利用边缘特征进一步验证。卢春雨等对镶嵌图方法进行了改进,按照人脸器官的分布将人脸划分为3x3个马赛克块,在检测中自适应地调整各块的大小,使用一组基于各块灰度和梯度统计特征的知识规则检验该区域是否为人脸,取得了较好的实验结果。Leun提取和组合脸部特征,并统计特征位置关系的特性,实现了各种姿势人脸的检测,且可容忍脸部的部分遮挡。本和非人脸样本训练出具有较强分类能力的分类器,通过判断图像中所有可能区域属于哪类来实现人脸的检测。目前,被广泛应用于人脸检测的统计方法主要有:基于子空间的方法、基于神经网络的方法、基于支持向量机的方法、基于隐马尔可夫模型的方法、以及基于Adaboost算法的方法,下面对这些基于统计理论的方法一一介绍。基于子空间的方法:子空间主要包括两类:主成分分析 (PCA)和线性判别分析 (PDA)。主成分分析方法是对图像进行KL变换,以消除原来各个分量之间的相关性,取变换后所得到的最大的若干个特征向量来表示原来的图像,保留了原始图像的最大差异性信息,这若干个分量就称为主成分。Turk和Peniland将PCA用于人脸检测,对训练集中的人脸图像进行主成分分析,转换成一个小的特征向量集,叫“特征脸”它们是最初训练图像集的基本组件,同样地处理非人脸训练集。然后根据人脸图像在这一过程中改变较小而非人脸图像改变较大的特点,遍历测试图像中所有候选人脸位置,计算候选位置对应的图像块与人脸空间之间的距离,其中,距离最小的位置就认为是测试图像中的人脸所在位置。线性判别分析方法中典型的有Yang等提出的Fisher线性判别 (FLD)方法。他们首先使用自组织映射(SOM)将人脸和非人脸样本各分为25个类,然后计算各类的类间离散度与类内离散度,利用两者的比值求出投影矩阵。比较本征脸方法,FLD同时考虑了类间与类内的离散度,选取的投影方向优于本征脸方法,因此得到了较其优良的检测的效果。神经网络(Neural Network):人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在这一模型中,大量的节点(或者称“神经元”、“单元”)之间相互联接称网络,即“神经网络”,以达到处理信息的目的。神经网络可以充分地逼近任意复杂的非线性关系,采用并行分布处理方法,使得快速进行大量运算成为可能。神经网络具有自学习功能,在实现图像识别时,只需要先把许多不同的图像样本和对应的识别结果输入人工神经网络,网络就会通过自学习功能,慢慢学会识别类似的图像。用神经网络进行人脸检测的好处是很容易训练一个用于检测人脸模式的系统,但是,其缺点是网络结构需要大范围的调整(层数、节点数、学习速率等)才能获得期望的性能。在使用神经网络的人脸检测方法中,有里程碑式意义的工作由Rowlcy等人最早于1996年提出。Rowley等采用局部连接的神经网络检测人脸。将每个区域划分成多个方形或者矩形的子区域以便更好地描述人脸的局部特征,每个区域对应一个神经网络隐含单元。对神经网络在多个分级上的输出进行判断以降低误检率。支持向量机(SVM):支持向量机是Vapnik等提出的基于结构风险最小化原理的统计学习理论,其基本思想是:首先通过非线性变换,将输入空间变换到一个高维空间,然后在这个高维空间中求取最优线性分类面。所谓最优分类面则是使分类间隔最大,从而达到结构风险最小化。SRM使 VC(Vapnik Cherovnenkis)维数的上限最小化,这使得SVM方法比基于经验风险最小化 (Empirical Risk minimization,ERM)的人工神经网络具有更好的泛化能力。osuna等将SVM方法用于人脸检测,取得了较好的实验效果。其基本思路是对每一个1919像素的检测窗口使用SVM进行分类,以区分“人脸”和“非人脸”窗口。但是SVM的训练要求解决计算复杂度极高的二次优化问题,限制了该方法的使用。Platt提出了SMO解决SVM训练困难的问题。Bemd等提出了一个层次型结构的SVM分类器,它由4个线性SVM和1个非线性SVM共5层串联在一起的分类器组成。检测时,4个线性SVM依次采用33,44,1111,1919的窗口对输入图像进行全局搜索,以快速排除掉图像中绝大部分背景,最后由非线性SVM用19xl9的窗口对少量的候选区域做出确认。梁路宏等提出了基于模板匹配与支持向量机的人脸检测算法。算法使用一组双眼一人脸模板对来搜索候选人脸,并在搜索过程中使用多层感知器进行确认,以减少错误报警。实验结果的对比数据表明,该算法是十分有效的。隐马尔可夫模型(HMM): 隐马尔可夫模型是用于描述信号统计特征的一组统计模型。HMM使用马尔可夫链来模拟信号统计特征的变化,而这种变化又是间接地通过观察序列来描述的,因此,因马尔可夫过程是一个双重的随机过程。在H链中,节点表示状态,有向边表示状态之间的转移,一个状态可以具有特征空间中的任意特征,对同一特征,不同的状态表现出这一特征的概率不同,由于HMM是一个统计模型,对于同一特征序列,可能会对应于许多状态序列,特征序列与状态序列之间的对应关系式非确定的。这种模型对于状态序列来说是隐的,故称为隐马尔可夫模型。Nefian等人采用隐马尔科检测人脸。检测区域中的每个子区域采用主要的Karhunen-Loeve变换系数作为观察矢量,通过Baum-Welch算法和Viterbi分割算法获得HMM的模型参数,根据检测区域的观察序列的输出概率进行判决。基于AdaBoost算法的方法:基于AdaBoost学习算法的人脸检测方法由viola等人于2001年提出,该方法采用一种称为“积分图像”的图像表示方法,这种表示法能够快速计算出弱分类器用到的特征。然后基于AdaBoost学习算法,从一个较大的特征集中选择少量的关键的特征,被选取的特征应尽量满足两个特性:较强的区分性和较强的独立性,继而产生一个高效的强分类器。再用级联的方式将单个的强分类器合成为一个更加复杂的级联分类器,使图像的背景区域快速地丢弃,而在有可能存在目标(人脸)的区域花费更多的计算。该方法的突出地位和贡献在于,它给出了一个稳定的、实时的目标检测框架,是第一个实时的人脸检测算法,并由此激发了更多研究人员在基于局部特征和智能学习的实时人脸检测算法方面的研究。基于Adaboost的人脸检测方法是目前比较流行的方法,其不需要提取具体的人脸特征,而是从大量典型的数据中获得统计特征,能够更好地反映人脸图像和非人脸图像之间的差别,因此,其具有较强的适应能力和鲁棒性。故本课题选择AdaBoost算法进行人脸检测。3.2 矩形特征及积分图Viola等在2001年提出一种基于Boosting方法的实时人脸检测系统,该系统的检测速度可以达到每秒15帧,实时检测速度及检测准确率表现优异,这是人脸检测从研究走向实用的一次质的飞跃。他们对人脸应用积分图方法计算矩形特征,用其得到的结果训练分类器。3.2.1 矩形特征(1)Harr-like特征Harr-like特征是Viola等提出的一种简单矩形特征,因其类似于Harr小波而得名。Harr-like特征的定义是黑色矩形和白色矩形在图像子窗口中对应的区域的灰度级总和之差,可见,它反映了图像局部的灰度化。Viola等用到的Harr-like特征总共有三类,如图3.1所示,其中第一行属于二矩形特征,第二行左边一个属于三矩形特征,右边一个属于四矩形特征。每个图像可得到用于训练的Harr-like特征超过18万个,但是实际上不一定需要这么多,因为过多的特征会加大训练过程的时间和空间复杂度,实际上过细的特征中会引起过多的冗余,所以在选择特征时可适当放粗一些。图3.1 四种矩形Harr-like特征(2)Walsh特征离散沃尔什变换(DWT: Discrete Walsh Transform)是数字信号处理方面经常采用到的一种正交变换,并且该变换同离散傅立叶变换一样,可以很好的反映数字信号的频率变换情况,而且变换矩阵只是由1组成,可以较大程度减少计算量。Walsh特征构造方法如下:设Walsh特征算子的高度、宽度分别为m、n(必须是2的整数次方)分别构造m m、n n维的沃尔什变换矩阵Hm、Hn得到Walsh特征算子: =()() 由于所有m n维的Walsh特征算子都相互正交,这意味着它对图像某个局部特征的提取不产生冗余,并且特征算子的形状比Harr-like特征算子的形状要丰富。另外,m、n都要求是2的整数次方,所以对一幅训练图像而言,它的全部Walsh特征数是有限的,即Walsh特征的数量小于Harr-like特征的数量32。实际Harr-like特征提取过程中,很多特征都非常相近,冗余很大,采用Walsh特征来代替Harr-like特征可以大大降低特征之间的冗余。(3)Gabor特征从人脸图像中提取特征的类型很多,如:几何特征、边缘特征、PCA特征、小波特征、Gabor特征等,相比于其它特征,Gabor特征因其滤波器的脉冲响应函数与哺乳动物的视觉皮层中简单型细胞对图像信号的响应非常相似3334,故可以对人脸图像做出多尺度、多方向的描述,并且具有很强的刻画细节与局部结构能力。同时,Gabor滤波器的带通滤波的特性还能去除图像中高频噪声。与小波变换类似,利用Gabor变换也可以对图像做多分辨率分析,由于人的视觉系统具有对数频程性质,在对Gabor小波展开时也通常采用在频域或者空间域上的非均匀采样方法。常用的方法是,对的Gabor滤波器取一系列以固定倍数增长的波长和间隔的方向,构成多角度、多方向的Gabor滤波器组35。当利用Gabor滤波器组提取图像的特征时,通常以滤波器的输出响应的实部绝对值或者幅值作为Gabor特征。3.2.2 积分图2001年,Viola等提出积分图(Integral Image)概念,其目的是为了快速的计算分类器所需的矩形特征。若定义一幅图像的像素灰度为i(x,y),则某像素处的积分图像值定义为要得到一幅输入图像I的积分图像,只需逐点扫描原图像一次,就可计算出来。s(x,y)=s(x,y-1)+i(x,y)ii(x,y)=ii(x-1,y)+s(x,y)其中,s (x, y)为点(x ,y)所在位置的行列积分值。如此,两个矩形内像素和的差可以由积分图上的六个点计算得到,而三个矩形内像素和的差可以由积分图上的八个点计算得到。如图3.2,先扫描图像求出各点像素值,则灰色区域像素值的和可以由(5+1-2-4)得到,下半部分区域像素值的和为(2+6-3-5),则该矩形Harr-like特征值为两式之差,即(5+1-2-4-2-6+3+5)图3.2 求矩形特征像素差示例Harr-like特征主要有三类,如图3.1所示。a与b的矩形Harr-like特征为两个矩形内像素灰度值分别求和之差的,c的矩形Harr-like特征为两边矩形框的灰度值之和减去中间矩形的灰度值之和,d矩形Harr-like特征为两条对角线的矩形框的灰度值和的差值。3.3 Adaboost算法 AdaBoost由P.Viola首先提出,他们使用了“积分图像”的图像表示方法表示特征,然后采用AdaBoost方法选择出少量但是关键的特征来组合成强分类器,最后使用“级联的策略组合分类器。Adaboost是一种迭代方法,其核心思想是针对不同的训练集训练同一个分类器(弱分类器),然后把在不同训练集上得到的分类器集合起来,构成一个更强的最终分类器(强分类器)。弱分类器的构造如下:一个矩形特征j对应一个弱分类器h,对应一个候选输入窗口x,设该矩形特征在x上的值为f(x),则弱分类器分类函数构造如下: 其中是一个阈值,p=1,用来控制不等式的方向。Adaboost算法训练强分类器的算法描述如下:A.给定一系列训练样本(x1,y1),(x2,y2),(xi,yi),(xn,yn),其中xi表示第i个样本,yi=0时表示其为负样本(非人脸),yi=1时表示其为正样本(人脸)。n为总共的训练样本数量。B.初始化权重:对于负样本:Di(i)=2/1m,m为负样本个数 对于正样本:D(i)=2/l,l为正样本个数 Di(i)为第t次循环中第i个样本的误差权重。C.t =1T 1.权重归一化: (i)=2.对每个特征f,训练一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 温差电器件制造工岗位操作技能考核试卷及答案
- 缩放排工异常处理考核试卷及答案
- 建筑方案设计平面布局图
- 游艇制作厂家施工方案
- 市政承台降水施工方案
- 校园防性侵安全教育方案
- 装修微信营销策划方案
- 罗平新年装修活动方案策划
- 建筑方案设计任务和内容
- 移动人工智能营销方案
- 2024年连云港东海县招聘社区工作者真题
- 燃料电池催化剂研究报告
- 湖北省华大新高考联盟2026届高三上学期9月教学质量测评语文试题(含答案)
- 2025年化妆品代理合同范本模板
- 2025年江苏省农垦集团有限公司人员招聘笔试备考及参考答案详解
- 人工智能应用技术-教学大纲
- 虚拟货币挖矿管理办法
- 2025至2030年中国粗杂粮及粗杂粮加工行业市场调研分析及投资战略咨询报告
- 军用无人机讲解课件
- 2025年中国移动校园招聘笔试试题解析及答题技巧
- 长宏国际安全知识培训课件
评论
0/150
提交评论