携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情
沉淀、分享、成长,让自己和他人都能有所收获!😄
随着移动互联网络的兴起和硬件设备的发展,智能移动终端应用越来越普及。作为计算机视觉领域研究的热点,人脸识别技术在移动端的应用更为广泛。目前基于深度学习的人脸识别算法已经非常成熟,在精确度上甚至超过人类的眼睛,但是基于深度学习的人脸识别算法模型规模较大,并且含有大量参数冗余。由于内存、计算量的限制使得在移动平台下基于深度学习的人脸识别面临重大挑战。
针对在移动端计算和存储资源受限的情况,为在移动端实现基于深度学习的人脸识别算法,实现并改进了轻量级级联人脸检测和人脸识别算法。其中人脸检测采用级联的多任务人脸检测和人脸对齐方法 MTCNN(Multi-task Cascaded Convolutional Networks)提高速度和检测准确度;人脸识别是基于深度学习算法 FaceNet 实现的,并对该算法的实现细节框架进行分析。
同其他深度学习算法进行人脸识别算法相比,FaceNet 算法直接提取人脸特征信息,利用 triplet 三元损失函数直接学习特征间的可分性,使得类间的距离大于类内的距离,并将其映射到欧几里得空间进行相似性比对。设置最佳阈值为 1.24,通过该阈值判断两幅图像中的人脸是否相似。受 MobileNet 分解网络的启发对 FaceNet 网络框架进行分解,将其分成深度卷积层和点卷积层,通过线性组合的形式减少参数大小,达到优化网络压缩模型的目的。
本文采用离线的方式在移动智能终端上实现基于深度学习的人脸识别模型,即将在 PC 端训练的轻量级模型转化为能够在移动端加载的文件。利用 Android Studio 等软件实现该模型在移动端的移植。实验表明,该模型在移动端有很好的效果,准确度仅比未压缩的模型下降一小部分,在损失很小的精度下改进的 FaceNet 模型是可以在移动端进行人脸识别的; 同时也能够做到实时,满足了移动端人脸识别的要求。
人脸识别系统需求分析
人脸识别系统通常是依附于一个更大的系统,作为其中一部分来使用,来对用户的信息进行认证和传输。由于数据量十分庞大,不可能每次都对整个模型进行训练,所以可以分为线下训练和在线测试两个部分。使用数据集在线下把模型训练好,然后在实际使用的时候导入训练好的模型来进行实时人脸识别。与此同时,由于数据的不断增多,可以定期进行线下模型的训练来保证模型的性能。通用系统架构图所示。
人脸识别系统应用场景和用户
近年来,随着社会的发展,安检技术在人类的工作和生活中的地位越来越重要。而人脸识别技术具有设备占用空间小、设备造价成本不高、可以隐蔽操作等诸多优点。人脸识别技术的研究与推广应用得到了人们的普遍重视和青睐。基于 Android 移动终端的人脸识别考勤系统,是一种成本低廉、考勤效率高的移动终端考勤解决方案。
通过调研分析,系统需求分为以下方面。
1. 用户管理需求
需要在单位员工进行人脸考勤前进行管理,管理的用户信息除了员工的基础信息外,还需要采集用户的脸部特征信息,即在系统数据库中存储每位员工的基础信息,即通过本系统需要完成公司员工信息的录入,公司员工信息的录入为基础信息的录入等。
2. 数据管理需求
很明显,员工每日通过人脸考勤机进行考勤,考勤机器上存储大量的员工考勤记录,本系统通过人脸识别技术达到对员工考勤的目标外,更重要的是获取员工的详细的考勤数据,导出每位员工的考勤数据,给单位的行政管理、人事管理以及绩效管理提供数据参考。
3. 考勤管理需求
考勤管理面向是全公司的员工,认证的员工在进入公司各入口大门时,可通过两种方式来进入厂区或单元门,包括刷脸进入和输入用户名密码两种方式来完成,同时公司安保人员可对门禁进行设置,可对一些存在问题的人员账号进行冻结,同时对已冻结账号进行激活处理。