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