人臉識別
隨著人工智能和大數(shù)據(jù)分析技術(shù)越來越廣泛,眾多的生活場景都存在著這些技術(shù)的身影,比如像現(xiàn)在比較流行的人臉識別技術(shù),其底層的算法實(shí)現(xiàn)的支撐,為眾多的業(yè)務(wù)場景鋪墊了基礎(chǔ),像支付寶的刷臉支付,我們在火車站安檢經(jīng)過閘機(jī)口時的刷臉識別等,都是上層應(yīng)用對于這類技術(shù)的具體應(yīng)用,那么其實(shí)現(xiàn)原理是怎樣的呢?
百度人臉識別API
百度公司其于其豐富的AI研發(fā)經(jīng)驗(yàn)和強(qiáng)大的服務(wù)能力,對開發(fā)人中免費(fèi)提供了種類豐富,功能多樣化的人臉識別和對比服務(wù),我們可以借助于這些接口,將其接入我們的應(yīng)用中,為我們的應(yīng)用添加人員識別的高大尚功能。
百度的人臉識別API調(diào)用非常簡單。只需要用微信登錄下百度智能云,然后去創(chuàng)建一個項(xiàng)目,你選擇人臉識別功能即可。創(chuàng)建完項(xiàng)目就可以看到該項(xiàng)目下有幾個key, 可以依據(jù)百度提供的post接口生成 access_token,在接下來的調(diào)用人臉識別api時,需要此access_token以及兩張待對比的圖片的base64字符串,僅此而已,百度api會為你即時返回一個結(jié)果,包含了很多內(nèi)容,比如成功還是失敗,成功時的比對相似度,失敗時的失敗原因,比如是某張圖的活體檢測失敗,或者圖片類型錯誤等??傊@個接口調(diào)用起來非常方便,有點(diǎn)不便的是,官員好象沒有給出多種語言的調(diào)用安全,如果給了的話,那我們就喜歡了。
應(yīng)用邏輯
1.用戶注冊,即次刷臉之前需要通過應(yīng)用層向人臉數(shù)據(jù)庫提交個人照片,這里我們是使用注冊頁面實(shí)現(xiàn)的。在注冊的時候,提供用戶名,登錄密碼,以及用戶的頭像,我會把該頭像轉(zhuǎn)化為base64串,存入用戶表中。
2.注冊成功后,就可以進(jìn)行登錄。登錄時需要借用html5的web攝像頭功能,來截取一張人臉圖像,最終得到該圖片的base64串。另外根據(jù)用戶填入的用戶名,發(fā)起異步請求,拿到用戶表中的圖片base64串,那么這兩個待比對的圖片base64字符串就已經(jīng)準(zhǔn)備好了。
3.完成以上功能后就開始向百度人臉識api發(fā)起異步請求,將access_token以及兩個base64串,按照數(shù)據(jù)格式一起發(fā)到該接口,等待接口返回結(jié)果。得到結(jié)果后,如果失敗,提示一下失敗原因。如果成功,提示一下比對的相似度,經(jīng)測試,同一個人,不同照片,在照片清淅的情況下,一般相似度可以達(dá)到94%左右。如果是不同人,則相似度基本為0。
操作步驟
1.點(diǎn)擊 這里 用微信登錄百度智能云
2.選擇人臉識別
3.創(chuàng)建應(yīng)用得到 APP_ID, API_KEY, SECRET_KEY
4.點(diǎn)擊剛剛創(chuàng)建的facelogin應(yīng)用,即可看到生成的各種key
AppID 24265399
API Key i8ZBnRpkQnxiD2Cy7EIMuF9w
Secret Key RzmO1sv8GMH6FTvp1TzUGTSqFDShmdx8
5.獲取Access Token
Access Token
6.照片對比API說明
https://ai.baidu.com/ai-doc/FACE/Lk37c1tpf
7.核心代碼
javascript請求代碼