基于ARM11的嵌入式人脸识别系统的设计与实现--笔记一

基于ARM11的嵌入式人脸识别系统的设计与实现

总体框架:搭建嵌入式系统平台。选用以ARM11为核心的tiny6410开发板和普通USB摄像头作为系统的硬件平台,并在平台上移植了linux操作系统,qt图像化界面库和opencv计算机视觉库。然后设计实现了基于此嵌入式平台的人脸识别系统。介绍了系统图像采集及格式转换模块,人脸检测模块,人脸图像预处理模块和人脸识别模块所采用的方法和实现过程。

本文特点:开发了一套反照片欺诈的人脸识别系统。

Linux内核主要由内存管理,虚拟文件系统,进程调度,进程间通信,网络接口5个子系统构成。Linux根文件系统包含两层含义,其一是按照固定格式组织的目录与文件,这是我们直接能观察到的。其二是在特定的储存介质上管理这些目录和文件需要的数据,这是我们看不见的,linux没有文件系统的话,用户和操作系统的交互也就断开了。

Opencv是一个开源的计算机视觉库,采用C/C++编写,可以运行在linux/window/mac等操作系统上,此外,openvc还提供了python,ruby,matlab等其他语言的接口。Opencv包含了500多个函数,覆盖了计算机视觉的许多应用领域,如工厂产品检测,医学成像,摄像机标定,机器人,信息安全,用户界面等。

作者介绍了opencv2.3一直到tiny6410的步骤。和qt4.7.3移植到tiny6410的步骤

 

设备驱动程序为应用程序屏蔽了硬件的细节,是操作系统内核和机器硬件之间的接口。这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样使用同一的接口API函数操作不用的视频设备。驱动程序的使用可以按照两种方式变异,一种是静态编译进内核,另一种是编译成模块以供动态加载。

 

YUV向RGB图形格式的转换

YUV是欧洲电视系统所采用的一种颜色编码方法。YUV格式的图像主要应用于传输优化彩色视频信号,使其向后能兼容老式的黑白电视。RGB是工业界的一种色彩标准,通过对红(R),绿(G),蓝(L)三种颜色通道的变化以及它们之间的相互叠加得到不同种类的颜色,人类视觉所能感知到所有颜色几乎都在这个标准范围内。RGB和YUV可以相互转换。

Qt中对图像操作的类是Qimage,而Qimage类不能显示YUV图像,所以必须先将YUV格式的图像转换成Qt所支持的RGB格式才能在平台上显示出来。

作者选用Adaboost算法作为人脸检测算法。

直方图均衡化属于增强空间域耳朵一种图像预处理的方法。

 

反照片欺诈方法

1.      头部三维深度分析:应用SFM(structure from motion)去估计人脸中眼睛,鼻子,嘴巴等特征点在三维坐标系中的深度坐标,因为照片是一个平面,在三维坐标系中的坐标变化,而真正的人脸是一个复杂形状,三维坐标和照片的不同,从这一点来区分人脸,但是这个方法需要人头部运动,而且如果将照片弯曲也可以获得同样效果。

2.      结合其他生物特征认证。

3.      二维傅里叶频谱分析:实验表明,真实人脸图片的二维傅里叶频谱中的高频成分要比人脸照片中的高的多,可以做二维傅里叶变换,通过分析器高频分量的多少来区分人脸与照片,该方法相对简单可行,但是该方法对光照极为敏感,而且对高分辨率的人脸相片区分能力不强。

4.      人机交互方法:比如引导被识别人员做一些简单动作。。。

5.      人脸热红成像:热红成像仪检测到人脸的红热图像,热红成像受到温度变化,玻璃遮挡等环境因素影响,设备昂贵大概三万元左右。

 

 

作者提出一种基于眨眼检测的反照片检测方法和基于视线变化的反照片检测方法。

基于运动检测结合模板匹配的眨眼检测:算法流程如下

运动检测设定阀值生成二值图像——预处理,提取过滤连通域——定位人眼生成人眼模板——眨眼检测。

 

 

 

你可能感兴趣的:(基于ARM11的嵌入式人脸识别系统的设计与实现--笔记一)