"景先生毕设|www.jxszl.com

android的人脸识别门锁系统app设计(附件)【字数:7359】

2023-02-26 16:11编辑: www.jxszl.com景先生毕设
摘 要本文是基于江苏省大学生省级重点项目“基于手机app的智能门锁系统设计”,在这个基础上进一步分析手机端应用。人脸识别的技术包括人脸的检测(是否存在人脸)和人脸的对比,其原理从大致上说,就是我们从手机摄像头或者是本地存储中获取到一张包含人脸的图片,通过特定的识别算法,对脸部生成很多的数据点,然后将这些数据点和保存在数据库里的之前存在的一个人脸的数据相对比,只要对比率达到80%(当然这个比例可以调整),就可以认为人脸比对成功。人脸检测的原理也是如此。目前来说,该技术只能在一些人数较少的场景中使用,如地铁这种人流量比较大的地方识别的效率就很低,因为处理速率以及计算的运算速度还难以达到,相信在不久的将来,随着技术的不断成熟,我们可以更加广泛地使用该项技术,在人流量比较大的地方,快速的识别特定的目标人物。
目 录
第一章 绪论 1
1.1基于Android的智能门锁系统简介 1
1.2研究及技术背景 1
第二章 Android系统介绍 2
2.1Android架构及Linux系统 2
2.2Android的版本以及Android的开发环境 3
第三章 人脸识别技术 5
3.1国内外人脸识别技术的应用 5
3.2人脸识别的研究内容 5
3.3近年来主要的人脸识别方法介绍 6
第四章 基于Android的人脸识别的构建 8
4.1项目结构介绍 8
4.2 UI布局搭建 9
4.3代码逻辑 9
第五章 代码分析与测试 12
5.1关于开启摄像头的相关问题分析 13
5.2OOM问题分析 13
5.3关于于硬件传输数据出现的问题 13
结束语 14
致 谢 15
参考文献 16
附录 17
附录A surfaceView加载摄像头预览代码 17
附录B 拍照代码 20
附录C 人脸检测代码 22
附录D 摄像头拍照回调接口实现 23
第一章 *景先生毕设|www.jxszl.com +Q: &351916072
绪论
1.1基于Android的智能门锁系统简介
图11 智能门锁系统框图
总系统分为:门锁、stm32微型控制器、手机app和网络服务器四个方面。用户打开手机app,点击开锁,手机会发送指令给stm32单片机,打开摄像头,开始拍摄照片,拍摄完成后通过wifi传输到手机端,手机收到完整的图片数据帧后会将图片发送到网络服务器,服务器进行人脸的验证,验证结束后会返回一些JSON数据,手机获取到后截取相应的部分与真正的人脸进行对比,若和之前存入的人脸信息匹配,则发送指令给单片机,单片机发送驱动电平给门锁,完成开锁动作,若人脸信息不正确,则不作任何动作。
1.2研究及技术背景
随着智能化时代的发展,人脸识别技术的逐渐成熟,已经应用到工作生活中的很多场合。我们发现,传统的门锁是单一的机械锁,弊端很多,为改善这一问题,本文将要实现的是一个基于Android人脸识别智能手机应用的无线电子锁,分析了传统锁具的弊端,以及我们电子锁的具体实现方案,包括stm32微控制器硬件端的实现过程,Android端软件的设计过程。
在图11中,手机和stm32进行通信就是基于TCP协议。通信双方要进行通信,需要进行“三次握手”,基于TCP协议的通信过程数据帧传输相对于UDP协议的可靠性高很多,UDP协议可以描述为一个广播式的协议,不指定接收方,传输效率不高。而TCP协议属于端到端通信,传输保密性强。在java中,我们使用socket套接字来完成这一连接过程。而java的socket通信帮我们简化了这一过程,我们只需要提供通信对方的IP地址和通信端口号,即可建立连接。
第二章 Android系统介绍
2.1Android架构及Linux系统
图21便是Android整个架构。从图上可以看出来,Android系统一共分为四层:
最底下一层红色的是Linux内核[12],其中包括各种驱动,例如Power Management,是电源管理,WiFi Driver是无线网卡设备。该层主要是用来和Android手机上的各种硬件设备打交道,例如何去驱动他们。
往上一层左边绿色部分用C/C++编写的库,例如SQLite是Android的一个微型的轻型数据库。同一层右边的黄色部分Core Libraries是核心库,下边的Dalvik Virtual Machine是Android系统最重要的部分之一,虚拟机,是Android程序运行的环境,可以说,一切的Android应用层代码都是在其中编译执行。
在往上的蓝色部分是APPLICATION FRAMEWORK,也就是框架层,这一层/
图21 Android系统架构
是用java语言编写的,主要是一个Android程序的框架,如Android四大组件中的Activity组件便是由这一层制定的。
最上边一层就是应用层了,我们平常所见到的那些放在手机桌面上的应用,就是在这一层,程序员开发的最多的也是这些东西,这些程序大都是用java语言编写的,NDK环境下也可以有C/C++编写。其中有一些是内置应用,如浏览器,短信等等,都是Android原生应用。
2.2Android的版本以及Android的开发环境
表21 Android历史版本
Platform Version
API Level
VERSION_CODE
Android 7.1.1/7.1
25
N_MR1
Android 7.0
24
N
Android 6.0
23
M
Android 5.1
22
LOLLIPOP_MR1
Android 5.0
21
LOLLIPOP
Android 4.4w

原文链接:http://www.jxszl.com/dzxx/dzkxyjs/182068.html