2。3。1 特征脸 Eigenfaces… 10
2。3。2 Fisherfaces11 2。3。3 Local Binary Patterns Histograms… 12 2。4 如何在 Android 平台使用 OpenCV 15
2。4。1 关于 JNI 15
2。4。2 关于 so 动态链接库… 16
2。4。3 Linux 的动态链接机制 16
3 设计方案… 16
3。1 系统流程图… 16
3。2 静态人脸识别的实现… 18
3。3 利用 OpenCV 实现实时人脸识别… 19
3。3。1 OpenCV 中的 Mat 19
3。3。2 Android 中的 Bitmap 20
3。3。3 系统组成… 21
第 II 页 本科毕业设计说明书
3。3。4 执行流程… 23 结论 25 致谢 26 参考文献…27
1 绪论
1。1 介绍
传统的人脸识别技术依赖于 PC 这种计算能力强大的处理机,而 PC 的移动性受限于其体 积,只能处理从其他地方采集来的图像或者视频,或者通过网络接收从其他地方传输过来的 数据流。
随着近几年移动智能终端的热潮,移动芯片的性能迅速提高,当今的移动设备的计算能力 甚至可于几年前的 PC 相当。在这样的前提下,在移动终端上进行实时的人脸识别成为了一 种可能。
OpenCV 是一个高效,轻量的计算机视觉库,其开发团队也针对 Android 平台对 OpenCV 进行了移植,编写了相应的文档以支持开发者在 Android 平台上使用 OpenCV 进行开发,只 不过由于 Android 上层应用开发应用的是 Java 语言,而 OpenCV 主要是由 C++和 C 语言写 的,所以在 Android 中想要使用 OpenCV 需要用到 JNI 技术来开发。论文网
本论文项目的目的在于建立一个能够运行于 Android 平台,实时并且准确的人脸识别系 统,通过移动设备摄像头采集图像,实时计算之后将检测结果直接显示到屏幕上,或者提供 接口供其他程序调用。
1。2 难点和研究状况
目前有很多机构和组织在研究人脸检测,其中不乏一些权威机构和很多高校。旨在提出一 些人脸识别的理论。而像 OpenCV 这种开源库中的人脸识别模块只是对这些组织研究出来的 理论的一种实践。以下是人脸识别的一些难点: (1)人脸是多种多样的,而同一张人脸也具有各种不同的形态 (2)人脸上其他的东西的干扰,比如口罩,眼镜等物体,在实际情景下是必须要面对的 (3)还有识别的时候人脸角度问题,识别系统不可能只能识别完全正脸,这样实用价值将大打 折扣。
(4)人脸周围的光照条件 (5)用于摄取图像的设备的硬件配置。
目前许多机构都在为解决上述的困难而努力,也提出了很多解决方案,有很多已经投入了 实际开发当中。
在海外,MIT,CMU 等著名的机构都在研究人脸识别的理论和技术;在国内,清华大学、北京大学、等知名大学也都在进行相关的研究。
1。3 人脸识别的应用
人脸就如人的身份证一样,可以用来确认人的身份。经过 30 多年的发展,人脸识别的研 究已经有了一定的成果,世界各地的很多研究机构都提出了多种人脸识别算法,有些技术的 公司也已将这些理论投入实践,将实验室中的成果投入到商业中。
人脸识别的应用非常广泛,包括但不仅限于:
嫌疑人照片的识别匹配
个人身份识别
计算机登陆系统,门禁系统