python三步實現人臉識別
原文地址https://www.toutiao.com/a6475797999176417550
Face Recognition軟件包
這是世界上最簡單的人臉識別庫了。你可以通過Python引用或者命令行的形式使用它,來管理和識別人臉。
該軟件包使用dlib中最先進的人臉識別深度學習算法,使得識別準確率在《Labled Faces in the world》測試基準下達到了99.38%。
它同時提供了一個叫face_recognition的命令行工具,以便你可以用命令行對一個文件夾中的圖片進行識別操作。
特性
在圖片中識別人臉
找到圖片中所有的人臉
找到並操作圖片中的臉部特征
獲得圖片中人類眼睛、鼻子、嘴、下巴的位置和輪廓
找到臉部特征有很多超級有用的應用場景,當然你也可以把它用在最顯而易見的功能上:美顏功能(就像美圖秀秀那樣)。
鑒定圖片中的臉
識別圖片中的人是誰。
你甚至可以用這個軟件包做人臉的實時識別。
這裏有一個實時識別的例子:https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py
安裝
環境要求
-
Python3.3+或者Python2.7
-
MacOS或者Linux(Windows不做支持,但是你可以試試,也許也能運行)
安裝步驟
在MacOS或者Linux上安裝
首先,確保你安裝了dlib,以及該軟件的Python綁定接口。如果沒有的話,看這篇安裝說明:https://gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf
然後,用pip安裝這個軟件包:
如果你安裝遇到問題,可以試試這個安裝好了的虛擬機:https://medium.com/@ageitgey/try-deep-learning-in-python-now-with-a-fully-pre-configured-vm-1d97d4c3e9b
在樹莓派2+上安裝
看這篇說明:https://gist.github.com/ageitgey/1ac8dbe8572f3f533df6269dab35df65
在Windows上安裝
雖然Windows不是官方支持的,但是有熱心網友寫出了一個Windows上的使用指南,請看這裏:https://github.com/ageitgey/face_recognition/issues/175#issue-257710508
使用已經配置好的虛擬機(支持VMWare和VirtualBox)
看這篇說明:https://medium.com/@ageitgey/try-deep-learning-in-python-now-with-a-fully-pre-configured-vm-1d97d4c3e9b
使用方法
命令行接口
如果你已經安裝了face_recognition,那麽你的系統中已經有了一個名為face_recognition的命令,你可以使用它對圖片進行識別,或者對一個文件夾中的所有圖片進行識別。
首先你需要提供一個文件夾,裏面是所有你希望系統認識的人的圖片。其中每個人一張圖片,圖片以人的名字命名。
然後你需要準備另一個文件夾,裏面是你要識別的圖片。
然後你就可以運行face_recognition命令了,把剛剛準備的兩個文件夾作為參數傳入,命令就會返回需要識別的圖片中都出現了誰。
輸出中,識別到的每張臉都單獨占一行,輸出格式為<圖片名稱>,<人名>
通過Python模塊使用
你可以通過導入face_recognition模塊來使用它,使用方式超級簡單,文檔在這裏:https://face-recognition.readthedocs.io
自動找到圖片中所有的臉
看看這個例子自己實踐一下:https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py
你還可以自定義替換人類識別的深度學習模型。
註意:想獲得比較好的性能的話,你可能需要GPU加速(使用英偉達的CUDA庫)。所以編譯的時候你也需要開啟dlib的GPU加速選項。
你也可以通過這個例子實踐一下:https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture_cnn.py
如果你有很多圖片和GPU,你也可以並行快速識別,看這篇文章:https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_batches.py
自動識別人臉特征
試試這個例子:https://github.com/ageitgey/face_recognition/blob/master/examples/find_facial_features_in_picture.py
識別人臉鑒定是哪個人
這裏是一個例子:https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py
還有更多的說明和例子
請查看:https://github.com/ageitgey/face_recognition
python三步實現人臉識別