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