嵌入式系统人脸识别技术的研究及实现
0 引言随着嵌入式系统的不断发展和其性能的不断提升完善,为便携式人脸识别系统应用研究奠定了坚实的基础。然而,嵌入式系统和通用PC 除了操作系统本身的区别,硬件也有非常大的差异,目前通用的PC 机,特别是一些大型服务器,其运行的内存可以达到几个G 至几十个G,数据存储空间高达几百G :对于嵌入式系统,可用的存储器空间是相当有限的,最好的系统存储器只有几百兆(M),并且这些存储空间还包括操作系统本身需要的存储器空间,所以用户真正使用的内存较少。
嵌入式人脸识别系统,对影像设备和核心算法的选择,构建人脸训练样本集和系统工作环境的要求比较严格。
1 人脸识别技术
人脸识别是以计算机为基础,达到识别人脸的目的,识别的图像可以是静止的图像,也可以是动态的图像。问题一般可描述如下:给定一个静止视频图像或者是场景,采用人脸数据库,确认一个或多个场景中的人。人脸识别的研究一般分为四个部分:从复杂的背景中先实现人脸定位检测,提取人脸识别特征;特征降维;最后通过匹配来识别。从20世纪60年代开始研究人脸识别技术,经过50多年的研究发展,人脸识别技术已经取得了相当大的进展。在光照恒定、无遮挡正面照等比较理想的情况下,人脸识别的识别率较高,所以,人脸识别技术公共安全如身份鉴定、和视频监控等和政府部门管理的应用十分广泛。
2 嵌入式系统
2.1 概念
从我们自己的实际需求和应用的角度看,国内业界普遍认同的嵌入式系统的定义 是:嵌入式系统是一种专用计算机系统,它以计算机技术为基础,以应用为中心,软件硬件可裁剪,并且该系统对成本、可靠性、功耗等的要求十分严格。这个定义和其他的电子微处理设备不同,例如,电子微处理设备MCU,它一般没有操作系统,对使用者的GUI 在API 层面上不能进行开发,目前MCU 被越来越广泛的应用,内部设计的实用模块更多,包括一个可控的脉宽调制输出,数模转换,还具有支持复杂LCD 显示和支持USB 的控制器等,和嵌入式的区别是,MCU 的编程控制大多基于寄存器和存储单元,嵌入式可以不必依靠这些,独立开发软件模块和硬件模块,开发的时间相对较短。而CPLD及FPGA 偏重于硬件的逻辑设计,逻辑辑关系的设定使用VHDL 语言和其他的方式进行,这种设备根据需要搭建,就像积木块一样,通过编程实现不同的逻辑,实现不同的数字处理的内核等。嵌入式系统的硬件设计,一般是根据需要进行的,包括产品的元器件要求,外形要求及工业设计相关要求等,可裁减性体现到功能的需要,根据需要的相关功能,添加相关的设备,十分简便灵活。
2.2 嵌入式系统结构
嵌入式系统体系继承了计算机体系的特点。其结构包括三个重要的部分:嵌入式操作系统部分、硬件部分、软件部分,其结构图如图1 所示。
3 基于嵌入式的人脸识别系统的整体
框架人脸识别系统主要包括注册和识别两个阶段,基于嵌入式的人脸识别系统的整体框架如图2 所示。
3.1 硬件的选择
(一)处理器处理器是运行和控制的核心,在选择处理器时要满足嵌入式设备的整体需求。ARMCortex-A8 是ARM 开发的,属于
Cortex-A 系列中的一款,它是基于ARMv7架构的一款应用处理器。Cortex-A8 处理
器的速度可以随意调节,调节的范围在600MHZ 至1GHZ 之间,具有性能高,功耗效率低的优点。
(二)开发板平台开发板是一种电路板,可以用来进行嵌入式系统的电路开发,它包括存储器、中央处理器、输入/ 输出设备、外部资源接口、数据通路/ 总线等一系列硬件组件。
开发板可以根据嵌入式系统开发的需求订制,也可自行研究设计。Tiny210开发板由是广州友善之臂公司设计开发,它是一种ARM 的开发平台,其采用的处理器是S5PV210处理器。Tiny210开发板采用了核心板及底板的设计方法。核心板上主要有S5PV210处理器以及和底板连接的接口等。底板主要包括USB、网口、RTC、ADC、音频、蜂鸣器、LCD、触摸屏等接口。
3.2 开发环境的搭建
(一)宿主机环境的搭建如果选择嵌入式Linux 目标板上的操作系统,则宿主机的操作系统也选择相应的Linux 操作系统。Linux 宿主机和目标板之间的连接方式有以下几种:一是串口方式,二是网络方式。宿主机交叉编译环境的建立主要有QT 集成开发环境、配置arm-linux-gcc、配置QtforEmbeddedLinux三个步骤。
(二)目标机嵌入式linux 操作系统的安装如果选择linux 操作系统,则在宿主机上搭建好检查编译环境后就要在目标开发板上移植嵌入式Linux 操作系统。嵌入式Linux 操作系统包括5 部分:
Linux 内核、硬件设备驱动程序、引导程序Bootloader、上层的应用程序及根文件系统。Linux 内核是Linux 操作系统的关键部分,对系统设备和资源进行统一的分配和管理,它是一款系统软件,并且具有提供硬件抽象层、文件系统等功能,最终目标是为上层软件服务。设备驱动程序是用于支持用户的外部设备和嵌入式系统相互交互的程序,如触摸屏、显示屏、摄像头等。应用程序为系统为实现某种功能预安装的程序。引导程序Bootloader 是系统加载运行的第一段代码,它的主要功能是初始化硬件设备,建立内存空间的映射图,为调用系统做准备。根文件系统用来储存各种应用程序和各种工具、init 程序应用程序及一些库文件等。
4 嵌入式人脸识别系统的实现
4.1 基于人脸识别的播放器FacePlayer
的实现进入人脸识别系统后,先检查有没有摄像头,假如没有摄像头或者是摄像头没有成功启动,系统就会显示没有摄像头,然后就会成功退出该系统。如果摄像头被成功启动,会成功进入系统的主界面,摄像头捕获的图像会在图像显示区域显示,根据选择的显示设置,图像中人脸和人眼的位置被实时显示标出,主界面还有注册,清除数据,识别等功能。
4.2 基于人脸识别的小车控制器
FaceCar 的实现进入人脸识别系统后,先进入系统的主界面。在主界面的左侧区域,实时显示人脸的图像。左侧上方显示玩具车主人,如果无人注册,就显示未注册的图案,否则显示已注册者,也就是小车的主人的图案。FaceCar 的注册过程和FacePlayer 的注册过程相同。如果没有人注册过,可以任意的点击小车的开启按钮和注册按钮。
当已经有人注册过,需要通过人脸认证后方才可以启动小车或者是重新注册小车主人。在清除相关的注册数据时,需要经过人脸认证后才能清除数据。
5 结束语
近年来,嵌入式技术飞速发展,并且在很多的领域得到了广泛的应用。但是,就目前的发展来说,人脸识别还应该在以下几个方面进一步进行研究。①进一步深入研究人脸的局部和整体信息的混合模型的方法,准确描述人脸模式分布。②通过多分类器融合及多特征融合的方法改善识别性能。③研究人脸与虹膜、语音、指纹等识别技术的相融合。④ 3D 形变模型具有良好的发展前景。三维人脸识别算法需要在原有的识别算法基础之上进行创新及改进。总之,人脸识别是研究的热点话题,如何和其他技术相结合提高识别的精准率是将来研究的方向。
【参考文献】
段锦, 人脸自动机器识别, 北京: 科学出版社,2009.
薛源,李艳萍,人脸识别技术的探讨和研究,《机械管理开发》,2010,25(5),39-41.
李外云. 基于ARM 架构的嵌入式人脸识别技术研究. 武汉: 华中科技大学,2008,2-6.
李外云. 基于ARM 架构的嵌入式人脸识别技术研究. 华东师范大图 1 嵌入式系统体系结构 图2 人脸识别系统的整体框架 学 ,2008.__
谢谢分享!:D
页:
[1]