一、Face Recognition軟件包
我們的人臉識別基於face_recognition庫。face_recognition基於dlib實現,用深度學習訓練數據,模型准確率高達99.38%。
人臉數字化
人臉識別的第一步是檢測照片中的人臉區域,然后將人臉的圖像數據轉換成一個長度為128的向量,這128個數據代表了人臉的128個特征指標,如下所示

1.安裝Face Recognition軟件包
使用python虛擬環境進行安裝。現有一個mysuperset的python3.6虛擬環境,進入虛擬環境,並進行安裝(Face Recognition需要Python3.3(或者以上)+或者Python2.7)

pip3.6 install face_recognition (安裝文件在100MB)
依賴包:numpy、Click、Pillow、dlib

2.face_recognition命令行接口
1)Face Recognition軟件包提供命令行接口,系統中已經有了一個名為face_recognition的命令,你可以使用它對圖片進行識別,或者對一個文件夾中的所有圖片進行識別。

2)首先你需要提供一個文件夾,里面是所有你希望系統認識的人的圖片。其中每個人一張圖片,圖片以人的名字命名。然后你需要准備另一個文件夾,里面是你要識別的圖片。
我創建了picture目錄,下面有兩個子目錄,一個source用來保存系統認識的人的圖片,另一個target用來保存需要識別的圖片。


3)可以運行face_recognition命令了,把剛剛准備的兩個文件夾作為參數傳入,命令就會返回需要識別的圖片中都出現了誰。
face_recognition ./source/ ./target/
運行后,報錯,沒在hope中發現face。。。。可能是我之前使用vim打開過hope導致。但是結果匹配到了nut。。。。

重新傳入hope,輸出結果,把hope與nut都匹配到了。。。。果然是父子,傻傻分不清楚。。。

github上面的說明

4)繼續傳入別人的照片
將小李子照片傳入source,看看識別效果。匹配正確了。



3.使用face_recognition模塊
識別人臉鑒定是哪個人
import face_recognition
image_me=face_recognition.load_image_file("/home/dba/picture/hope.jpg")
my_face_encoding=face_recognition.face_encodings(image_me)[0]
image_unkonw=face_recognition.load_image_file("/home/dba/picture/unknow.jpg")
unknow_face_encoding=face_recognition.face_encodings(image_unkonw)[0]
results=face_recognition.compare_faces([my_face_encoding],unknow_face_encoding)
if results[0]==True:
print("It's me!")
else:
print("It's not me!")

其中my_face_encoding、unknow_face_encoding就是將人臉的圖像數據轉換成一個長度為128的向量,也是就是128個特征指標

二、Face Recognition識別多個人臉
參考資料:
https://github.com/ageitgey/face_recognition/blob/master/README_Simplified_Chinese.md
http://developer.51cto.com/art/201801/565664.htm
