背景
人臉識別技術在當下已經十分紅熟,但主要在移動端和專有設備應用上較爲普及,而在Web端並很少見,本着學習的目的從零實現web端的人臉登陸功能。前端
視頻流:使用navigator.getUserMedia方法在瀏覽器中獲取視頻流+音頻流(經過攝像頭麥克風),未來能夠用於獲取任意數據流,好比光盤和傳感器。python
face_recognition:被稱爲世界上最簡單的人臉識別庫(使用確實超簡單)。你能夠經過Python引用或者命令行的形式使用它,來管理和識別人臉。該軟件包使用dlib中最早進的人臉識別深度學習算法,使得識別準確率在《Labled Faces in the world》測試基準下達到了99.38%。它同時提供了一個叫face_recognition的命令行工具,以便你能夠用命令行對一個文件夾中的圖片進行識別操做。c++
整體流程:git
功能模塊圖:
github
功能時序圖:
web
效率:算法
經測試,最終實現能夠底庫數據爲10人時,1s左右實現刷臉登陸,識別效果也能接受,在側臉,半臉(鼻子到額頭)測試結果能夠經過。canvas
實際應用可行性瀏覽器
在可視化項目中人臉識別結合傳統的帳號密碼登陸,可提高系統安全性和更好的用戶體驗。安全
限制:
瀏覽器調用攝像頭只有在https協議、127.0.0.一、localhost下有權限,實際項目須要支持https。
兼容性
Desktop
Mobile
注意:
本文只介紹了簡單實現,系統安全性沒有過多考慮,好比在這個簡單系統中,前端的數據獲取流程,非註冊用戶使用註冊用戶的照片也能騙過系統,在照片數據傳輸的過程當中,也會有數據泄露的風險。後面將會針對這些狀況進行一系列的優化。
代碼
https://github.com/James-Nie/...
說明
安裝 face-recognition
首先說明,個人系統是win10,python版本是python3.7,須要事先下載一下3個包並安裝:
一、vs c++ 2015,必須是2015,不要問爲何
能夠用這個連接:https://www.microsoft.com/zh-...
也能夠用社區版
二、Boost C++ Libraries,能夠用這個連接:
https://dl.bintray.com/boosto...
選擇boost_1_66_0-msvc-14.0-64.exe,安裝到C盤便可
三、cmake
能夠用這個連接:https://cmake.org/download/
選擇cmake-3.15.0-rc4-win64-x64.msi
注意!!!cmake在安裝過程當中切記選擇添加路徑到環境變量中。
四、當上面3個都安裝好以後,能夠直接在命令窗口安裝pip install face-recognition便可,在這過程當中會自動安裝好dlib,固然也能夠先安裝dlib,這就看各位心情了。