背景
人脸识别技术在当下已经十分成熟,但主要在移动端和专有设备应用上较为普及,而在Web端并不多见,本着学习的目的从零实现web端的人脸登录功能。
视频流:使用navigator.getUserMedia方法在浏览器中获取视频流+音频流(通过摄像头麦克风),将来可以用于获取任意数据流,比如光盘和传感器。
face_recognition:被称为世界上最简单的人脸识别库(使用确实超简单)。你可以通过Python引用或者命令行的形式使用它,来管理和识别人脸。该软件包使用dlib中最先进的人脸识别深度学习算法,使得识别准确率在《Labled Faces in the world》测试基准下达到了99.38%。它同时提供了一个叫face_recognition的命令行工具,以便你可以用命令行对一个文件夹中的图片进行识别操作。
总体流程:
功能模块图:
功能时序图:
效率:
经测试,最终实现可以底库数据为10人时,1s左右实现刷脸登录,识别效果也能接受,在侧脸,半脸(鼻子到额头)测试结果可以通过。
实际应用可行性
在可视化项目中人脸识别结合传统的账号密码登录,可提升系统安全性和更好的用户体验。
限制:
浏览器调用摄像头只有在https协议、127.0.0.1、localhost下有权限,实际项目需要支持https。
兼容性
Desktop
Mobile
注意:
本文只介绍了简单实现,系统安全性没有过多考虑,比如在这个简单系统中,前端的数据获取流程,非注册用户使用注册用户的照片也能骗过系统,在照片数据传输的过程中,也会有数据泄露的风险。后面将会针对这些情况进行一系列的优化。
代码
https://github.com/James-Nie/...
说明
安装 face-recognition
首先说明,我的系统是win10,python版本是python3.7,需要事先下载一下3个包并安装:
1、vs c++ 2015,必须是2015,不要问为什么
可以用这个链接:https://www.microsoft.com/zh-...
也可以用社区版
2、Boost C++ Libraries,可以用这个链接:
https://dl.bintray.com/boosto...
选择boost_1_66_0-msvc-14.0-64.exe,安装到C盘即可
3、cmake
可以用这个链接:https://cmake.org/download/
选择cmake-3.15.0-rc4-win64-x64.msi
注意!!!cmake在安装过程中切记选择添加路径到环境变量中。
4、当上面3个都安装好之后,可以直接在命令窗口安装pip install face-recognition即可,在这过程中会自动安装好dlib,当然也可以先安装dlib,这就看各位心情了。