基于arm的人脸识别系统 嵌入式报告 课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式课程设计报告学院信息电子技术
专业通信工程
班级
学号
姓名
指导教师
2017年07月01日
基于ARM9的人脸识别系统
一、引言
人脸识别背景和意义
人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主;人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有实用化的识别率和识别速度;“人脸识别系统”集成了人工智能、机器识别、机器学习、模型理论、专家系统、视频图像处理等多种专业技术,同时需结合中间值处理的理论与实现,是生物特征识别的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化语音识别、体形识别等,而指纹识别、虹膜识别等都不具有自然性,因为人类或者其他生物并不通过此类生物特征区别个体。
人脸识别具有这方面的特点,它完全利用可见光获取人脸图像信息,而不同于指纹识别或者虹膜识别,需要利用电子压力传感器采集指纹,或者利用红外线采集虹膜图像,这些特殊的采集方式很容易被人察觉,从而更有可能被伪装欺骗。
二、系统设计
1、硬件电路设计
(1)ARM9处理器
本系统所采用的硬件平台是天嵌公司的TQ2440开发板,该开发板的微处理器采用基于ARM920T内核的S3C2440芯片。
ARM9对比ARM7的优势:虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz以上。指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。
(2)液晶显示屏
为显示摄像头当前采集图像的预览,系统采用三星的320x240像素的液晶屏,大小为206.68cm。该液晶显示屏的每个像素深度为2bit,采用RGB565色彩空间。
(3)摄像头
摄像头采用市场上常见的网眼2000摄像头,内部是含CMOS传感器的OV511+芯片。 CMOS传感器采用感光元件作为影像捕获的基本手段,核心是1个感光二极管,
该二极管在接受光线照射之后能够产生输出电流,而电流的强度则与光照的强度对应。相对CCD图像传感器,CMOS传感器具有成本低廉的优点。该摄像头通过USB接口与ARM9处理器通信。该摄像头输出格式yuv,在输出至屏幕之前,需将数据格式转化为RGB565格式。
(4)存储器
系统采用64MB的SDRAM,由两片K4S561632芯片组成,工作在32位模式。另有64MB的NANDFlash,采用K9F1208芯片。该芯片在系统中空间分配情况。
系统电路原理框图(如图2-1):
图2-1系统电路原理框图
2、程序设计
(1)嵌入式Linux系统平台
Bootloader
始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在一个基于ARM7TDMI core 的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。
Bootloader启动的两个阶段:第一阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段的任务有:基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令/数据Cache等)。为第二阶段准备RAM空间。
嵌入式Linux内核的配置
在配置内核前的须做必要的设置,主要在内核原码中设置文件Makefile,用下列指令打开Makefile文件:$viMakefile在Makefile中主要设置两个地方:ARCH CROSSCOMPILE。ARCH:=arm;表示目标板为arm。CROSS COMPILE=交叉编译工具的地址;设置交叉编译工具的地址,例如CRoSSCOMPILE=lusr/10cal/arm/2.95.3、birdarm.1inux。还要在脚本文件mkimage中把路径改为9200/bootldr
/u-boot-1.0.O/tools。(具体的路径和你的u-boot放的位置有关)然后按如下命令顺序进行内核编译即可:内核配置:Smake menuconfig 或makcxeon!ig 内核编译:Smaketiean $make dep $make $./mkimage;运行mkimage脚本文件。在Linux下,用makemenuconfig或makexeontig进入配置界面。在内核配置中,一般有四种选择:Y(选择)、N(不选)、M(模块)和数字,用户可以根据剪裁需要进行设置,最后配置完毕,选择是否对配置结果进行保存?保存为.eonfig文件。
图2-3 Linux操作系统
(2)USB摄像头驱动移植
在USB主机控制器的配置中,首先输入“make menuconfig”,按照如下配置单进行配置和保存。
(3)人脸识别过程
人脸识别的图像处理方法有图像的灰度化,直方图均衡化和中值滤波。通过图像预处理增加了检测识别率并提高了整个过程的速度。人脸检测用的是基于Adaboost方法。人脸识别程序框图(如图2-4):