DIY编程器网

标题: 基于ARM9的便携式人脸识别系统 [打印本页]

作者: liyf    时间: 2012-1-16 18:43
标题: 基于ARM9的便携式人脸识别系统

                    ???? 摘要:介绍了一种硬件基于ARM9处理器,采用主成分分析法(PCA)的人脸识别系统。实现了脱离PC机进行人脸识别。系统采用通用USB摄像头进行图像采集。软件基于Linux操作系统,可方便地进行网络连接和图像显示。
  开发低成本、小型化人脸识别系统在发展实际人脸识别应用中具有重要的意义。本系统采用ARM9作为系统控制芯片,达到了系统低成本、便携化、小型化的要求。不同于运行在PC机的人脸识别算法,系统的识别算法必须更多地考虑算法的计算量和ARM的运行速度,使识别准确率和识别时间都达到可接受范围。
  1 硬件平台
  1.1 ARM9处理器
  本系统采用三星公司的ARM9系列S3C2410作为处理器,工作频率可达到203 MHz,可满足系统对计算速度的要求。该处理器内置2个USB HOST,本系统可用来挂载USB摄像头。




  2 软件平台
  系统的软件设计主要由底层的操作系统,驱动程序以及应用程序组成。操作系统采用Linux 2.4内核。通过对内核的适当裁剪,删除对本系统不需要的系统服务以及驱动程序。




  3 识别算法
  3.1 PCA算法
  PCA方法(即特征脸方法)是M.Turk和A.Pentland在文献中提出的,该方法的基本思想是:将图像向量经过K-L变换后由高维向量转换为低维向量,并形成低维线性向量空间,即特征子空间,然后将人脸投影到该低维空间,用所得到的投影系数作为识别的特征向量。识别人脸时,只需将待识别样本的投影系数与数据库中目标样本集的投影系数进行比对,以确定与哪一类最近。
  PCA算法分为两步:核心脸数据库生成阶段,即训练阶段以及识别阶段。
  (1)核心脸数据库生成阶段。
  1)假设共有K张M×N大小的人脸图像。先将每张图像按列化为(M×N)×1的列向量,命名为xi,i=1,2,…,K。




  3)将φ表示成




  若er<ξ,其中ξ为固定值,则该人脸被识别。
  3.2 PGA算法的预处理
  虽然PcA算法在待识别图像质量较好的情况下,有识别准确且计算量不大的优点,但在以下几点情况下,存在缺陷。其一是待识别图像和训练图像光照度差别较大。其二是人脸背景差别较大。为改进PCA算法,可对图像做以下预处理:
  (1)删除背景。要删除背景就要找出人脸在图像的位置。对此,本系统通过人脸肤色建模的方法找出人脸的位置,并进一步找出眼睛位置,然后根据两个眼睛之间的距离计算出人脸大概范围,通过对人脸范围的适当调整,使其规格化。
  (2)调整每张人脸图像的亮度。通过设定一固定值,调整图像像素的灰度值,使图像灰度平均值达到这一固定值。通过同态滤波,减少光照不均。
  4 结束语
  采用了在ARM9控制下CMOS图像传感器进行图像采集,并利用改进的PCA算法对图像识别,提高了识别效率和系统的实用性。测试表明,脸部范围在180×200像素时,设定阈值er为2×1015的情况下,系统的识别率为89.2%。




            




欢迎光临 DIY编程器网 (http://www.diybcq.com/) Powered by Discuz! X3.2