网站大量收购独家精品文档,联系QQ:2885784924

基于ARM9平台人脸检测实现.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ARM9平台人脸检测实现.docx

基于ARM9平台人脸检测实现 摘要:本文以ARM9系列处理器中的S3C2440为硬件平台, 搭载嵌入式Linux操作系统,完成了该操作系统的剪裁、制 作和移植,并结合Opencv开源库设计并实现了人脸检测的 功能。 关键词:ARM;嵌入式Linux;人脸检测 中图分类号:TP311.52文献标识码:A文章编号: 1674-7712 (2012) 20-0025-01 人脸检测的研究来源于人脸识别[1],但是其应用范围 又大大超过了人脸识别,其在数字视频处理、可视化通信和 视觉检测方面都有巨大的应用价值。随着科技的进步,人脸 检测技术朝向小型化、便携性方向发展,ARM处理器拥有低 功耗、小成本和高性能等功能[2],适合做人脸检测技术的 嵌入式开发。本文以ARM9为平台,搭载嵌入式Linux系统, 设计并实现了人脸检测的功能。 一、系统硬件平台介绍 本系统采用了 Samsung公司推出的S3C2440处理器,它 采用了 ARM920T内核,为了提高和冯诺依曼体系结构的兼容 性,采用了哈佛Cache结构[3]。本系统图像采集使用的是 采用320芯片组的USB摄像头,交叉编译平台则是主频为 2. 7G Hz奔腾处理器的PC机。 二、 嵌入式Linux系统的开发 由于嵌入式Linux系统具有开源、低成本、可移植性好 等特点,所以近些年来发展强劲,得到了广泛的应用。嵌入 式Linux系统开发需要在Linux操作系统下安装arm的交叉 编译器,用交叉编译器对各部分进行交叉编译然后移植到开 发板上去。 嵌入式Linux系统最基本的三部分,第一是Bootloader, 这个类似于Windows操作系统启动时的引导程序,第二是 Linux内核,就是为应用程序提供对计算机硬件安全访问的 一部分软件。第三是文件系统,是用于明确磁盘或分区上的 文件的方法和数据结构。本文结合这三个部分的源代码进行 具体的修改和配置然后交叉编译来完成了系统的移植。 三、 人脸检测应用程序的开发 (一) USB摄像头驱动的开发 驱动程序包含有关硬件设备的信息,计算机可以通过驱 动与设备进行通信。由于本系统采用了 USB摄像头,所以要 在系统内核中的USB Device选项中选择USB support选项, 然后添加进本系统所采用的USB摄像头驱动。 (二) 基于V4L标准通过摄像头获取图片 V4L标准是Linux系统下的音视频流采集标准,它为我 们开发应用程序提供了一个内核、驱动交流的API接口,目 前的驱动和应用程序都提供该标准的支持。我们通过V4L模 块提供的编程接口,从USB摄像头设备中获取所捕获的图像 帧,将图像以保存为图片格式以供后续处理。 (三)基于Opencv的人脸检测程序开发 Opencv是由Intel公司开发可以免费获取的开源函数 库,其用来实现一些常用的图像处理和计算机视觉算法。由 于我们需要在ARM平台下使用,所以需要用交叉编译器先在 Linux系统下编译出嵌入式系统需要的主要动态库和静态库 文件,然后我们将编译好的文件移植到嵌入式Linux的文件 系统中,就可以在ARM平台下调用Opencv库中的相关函数 To 人脸检测人脸识别前期最重要的一个环节。利用Opencv 提供的库函数,我们可以方便的完成复杂的算法。Adaboost 算法是一种分类器算法,其基本原理是利用大量的分类能力 一般的弱分类器叠加起来,从而构成一个分类能力强的强分 类器[4],分类器所采用的特征是Haar特征。在该系统中应 用到的最重要的一个函数是cvHaarDetectObjects,本系统 中首先对得到的包含人脸的图片进行一系列预处理,然后调 用该函数检测出人脸的位置。 由于Opencv在不同的操作平台下使用的库文件是有差 异的,所以我们需要获取ARM平台下的嵌入式Linux库文件, 首先从Opencv的官方网站获取Opencv源码,然后修改 Opencv 的Makefile 文件,主要将CXX设置为 ami-linux-g++, host设置为arm-linux,其他根据自己的需要进行配置,编 译即可生成我们所需要的库文件。 (四)图形用户界面的开发 在嵌入式系统开发中,图形界面的支持和数据保存的管 理备受开发者关注。一个成功合格的嵌入式系统,需要良好 的图形用户界面支持。 QT是跨平台的C++图形用户界面应用程序开发框架,支 持多种操作系统,QT/Embedded是QT的嵌入式Linux端口, 完整的包含C++GUI和基于Linux的嵌入式开发工具。其不 仅具有基本的可视化控件编程功能,而且提供了丰富的类 库,包含绘图、数据库、多媒体等等。 本系统以QT开发出人脸检测图像的显示界面,在QT中 使用Opencv库需要在.pro文件中添加已编译出的arm平台 下Opencv文

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档