当前位置: 首页 > Web前端 > HTML5

前端如何使用人脸识别

时间:2023-04-05 22:13:54 HTML5

背景人脸识别技术目前已经非常成熟,但在移动端和专有设备应用中较为流行,而在网页端则很少见。出于学习的目的,从零开始实现web端的人脸登录功能。视频流:使用navigator.getUserMedia方法获取浏览器中的视频流+音频流(通过摄像头麦克风),以后可用于获取任意数据流,如光盘、传感器等。face_recognition:号称世界上最简单的人脸识别库(真的超级简单好用)。您可以以Python参考或命令行的形式使用它来管理和识别人脸。本软件包采用dlib中最先进的人脸识别深度学习算法,使得在《Labled Faces in the world》测试基准下识别准确率达到99.38%。它还提供了一个名为face_recognition的命令行工具,以便您可以使用命令行识别文件夹中的图片。总体流程:启动web服务,使用face_recognition对基础库图片进行建模,将建模结果(识别到的人脸在图片中的位置和人脸特征)加载到内存中。前端通过h5页面的getUserMedia方法调用摄像头获取视频流。通过canvas抓取一帧视频转成图片(base64),使用http或者websocket发送到后台。后台接受base64参数,转成图片保存。调用face_recognition.locations和face_recognition.face_encodings进行图像建模。调用face_recognition.compare_faces将图像建模结果与基础库结果进行比较。根据定义的比较阈值(称为容差,一般为0.6)返回比较结果。如果阈值小于该值,则判断为该用户,允许登录返回系统界面。否则返回人脸识别失败信息。功能模块图:功能时序图:效率:经过测试,最终可以实现,当底层数据库中的数据为10人时,1秒左右即可实现刷脸登录,识别效果还可以.侧脸和半脸(鼻子到额头)的测试结果能够通过。实际应用可行性在可视化项目中,人脸识别结合传统账号密码登录,可以提高系统安全性,更好的用户体验。限制:浏览器在https协议、127.0.0.1、localhost下需要权限调用摄像头,实际项目需要支持https。CompatibilityDesktopMobile注:本文只介绍简单实现,系统安全性不考虑过多。比如在这个简单的系统中,前端的数据采集过程,非注册用户也可以通过注册用户的照片来欺骗系统。在传输过程中,也存在数据泄露的风险。后面会针对这些情况进行一系列的优化。代码https://github.com/James-Nie/...说明安装人脸识别首先我的系统是win10,python版本是python3.7。需要提前下载安装3个包:1.vsc++2015,肯定是2015的,不要问为什么可以用这个链接:https://www.microsoft.com/zh-...你可以同样使用CommunityEdition2,BoostC++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、以上三者安装完成后,直接在命令窗口安装pipinstallface-recognition即可。在此过程中,dlib将自动安装。当然你也可以先安装dlib。这取决于你的心情。