TensorFlow – FaceNet人臉登陸 (Python-Web )小例子

TensorFlow – FaceNet人臉登陸 (Python-Web )小例子

最近一直想做一個人臉識別登陸的demo,正在在網上看到了一個facenet的例子,使用python實現,但是來非常簡單,僅僅是封裝了tensorflow的過程,在這個基礎之上,我進行了html的前臺封裝,方便大家引入到自己的專案中。

 

FaceNet:

    FaceNet的思路是將人臉影象編碼成128維的向量,然後用這128維向量來代表一個人。這就類似於我們的身份證號碼,每一個人都有唯一的一個號碼。這樣,在做人臉驗證的時候,我們只要將人臉編碼到128維向量,然後和已有的向量做對比,兩個向量足夠接近,就可以說明這是同一個人。所以人臉識別的問題就轉化為如何將人臉圖片編碼到128維的向量。這裡就是使用了深度學習技術。通過卷積神經網路,提取人臉圖片的特徵,然後通過大量的資料進行訓練,最終得到128維的向量。
    
如果大家對這個部分已經有所瞭解,可以直接去git上clone我的程式碼執行,並附有詳細的安裝啟動過程。

https://github.com/xvshu/face_login

    
主要思路:

利用facenet實現檢測圖片中的人臉,將識別到的人臉向量存入資料庫,此外利用post提交一個新圖片(也可以提交一個圖片地址,參考face_recognition_api.py檔案中get_url_imgae函式自行修改),返回資料庫中相似的人臉的資訊
演算法主要分為2個步驟
1.提取圖片中的人臉 ,並儲存到臨時目錄中
2.將人臉圖片轉換為128維的向量 ,便於後續求人臉相似度

專案主要分為3個步驟<br/>
1.提交post請求,將uid ugroup pic提交,進行人臉資訊儲存操作
2.收到請求後將pic進行處理解析為128維向量儲存,並跟uid和ugroup儲存入庫 ,返回資料庫插入成功的id
3.提交post請求,將ugroup pic提交人臉查詢請求,意思為再ugroup中檢視與圖片pic相似的人臉
4.收到請求後,處理圖片解析圖片中所有的人臉,進行按庫查詢,然後與該圖片中所有人臉相似的uid和距離(相似度距離)

實現結果:

註冊介面

登陸介面