上一篇介紹了NodeJS實現(xiàn)人臉識別中的人臉注冊逮走,搜索,檢測功能今阳∈Γ可以看到其實拋開用戶量不說,其實任何想要實現(xiàn)的功能最終用NodeJS都是可以實現(xiàn)的盾舌。今天我們來看下SDK文檔關于人臉識別其他的接口墓臭,我們可以來看看整套人臉識別具體有什么功能,我們可以怎么在實際應用中去進行應用呢妖谴?
人臉更新
我們上一篇講到了人臉注冊窿锉,每個人臉會綁定一個唯一的userId, 當然,既然注冊了必須要有更新功能。人臉更新就是針對userId進行更新榆综,這時候有兩種可能性:
userId存在于用戶組
userId不存在用戶組
第一種情況很好理解妙痹,存在即更新。那如果第二種情況呢鼻疮?我們可以先看看如果人臉庫存在userId的情況:
我們跑下測試下效果:
可以看到userId存在的情況下會成功更新人臉并返回圖片新的face_token以及人臉相對圖片的位置信息怯伊。那如果userId不存在呢?
可以看到人臉不存在會報錯user? is? not? exist。這樣的返回其實也是可以的判沟,但是人臉識別本質(zhì)就是為了提升用戶體驗耿芹,降低操作復雜性,所以其實還有一種方案可以在用戶不存在的情況進行將該人臉靜默注冊到人臉庫,就是添加參數(shù)action_type: REPLACE挪哄。
PS:文檔中這里存在一個坑:relace文檔小寫吧秕,實際需要大寫,且選傳參數(shù)文檔并沒有action_type這參數(shù)迹炼。
我們現(xiàn)在給本接口添加action_type參數(shù):
我們現(xiàn)在使用不存在的userId測試一下具體效果:
可以看到如果人臉不存在直接靜默注冊到人臉庫砸彬,這樣就可以大大提升用戶體驗。當然這個接口一樣可以添加選傳參數(shù)斯入,我就不詳細演示了砂碉。我直接貼上請求參數(shù)及接口返回參數(shù):
人臉刪除
人臉刪除會將用戶人臉信息從用戶組中進行刪除。這里同樣存在兩種情況:
用戶人臉可能只存在于一個用戶組刻两。
用戶人臉可能同時存在于多個用戶組增蹭。
如果用戶人臉信息只存在于一個用戶組,那直接刪除不會出問題磅摹。如果用戶人臉存在于多個用戶組滋迈,我們一般不能直接全部刪除,因為不同用戶組可能應用于不同場景的應用户誓。groupId指定從什么用戶組刪除人臉信息饼灿,如果同時從多個用戶組刪除則用逗號隔開。
我們先看下測試效果:
可以看到如果在對應的用戶組能夠找到與userId和face_token匹配的人臉帝美,就可以刪除成功碍彭。
老規(guī)矩,我直接貼上請求參數(shù)以及返回參數(shù):
用戶信息查詢
這個接口的用法看標題就可以知道了,可以查詢用戶信息,人臉注冊以及人臉更新進行靜默注冊都是可以選傳用戶信息user_info县恕,通過這個接口查詢就可以查詢到用戶綁定的個人信息玄捕。本接口可以直接通過用戶組id以及用戶的userId進行查詢指定人臉的信息:
我們先看下測試結果:
可以看到返回的user_info為空,因為我注冊人臉未進行保存用戶個人信息。接下來貼上請求參數(shù)和返回參數(shù):
查詢用戶人臉列表
一個用戶可以注冊多個人臉。本接口可以通過用戶組id以及用戶userId進行查詢指定用戶組中該用戶所有人臉信息:
我們先看下測試結果:
返回的結果只有一張人臉信息,因為該userId對應的人臉只有一張墙基,會返回創(chuàng)建或更新時間软族。接下來貼上請求參數(shù)和返回參數(shù):
查詢用戶列表
本接口可以通過用戶組id進行查詢指定用戶組中所有用戶信息:
我們先看下測試結果:
返回的結果會有該groupId中所有userId的信息接下來貼上請求參數(shù)和返回參數(shù):
復制用戶到新的用戶組
如果用戶人臉已存在一個用戶組,使用本接口可以直接將用戶人臉信息復制到新的用戶組中残制。這個接口官方SDK文檔是有問題的立砸,我們可以先看看請求參數(shù)和返回參數(shù):
接口文檔只有用戶userId是必傳參數(shù),實際經(jīng)過測試初茶,三個參數(shù)都為必傳參數(shù)颗祝。復制與被復制的人臉組都必須已經(jīng)存在。
我們先看下測試結果:
刪除用戶
本接口可以通過將用戶從某個用戶組中進行刪除恼布。這個接口與人臉刪除接口最大的區(qū)別是人臉刪除接口是將某個用戶組中指定用戶的指定人臉進行刪除螺戳,本接口是刪除某用戶組指定用戶。
我們先看下測試結果:
可以看到返回success,代表用戶從指定的用戶組中被刪除成功折汞。接下來貼上請求參數(shù)和返回參數(shù):
創(chuàng)建用戶組
本接口可以創(chuàng)建新的用戶組倔幼,若用戶組已存在則會返回錯誤信息
我們先看下測試結果:
可以看到返回success,代表新的用戶組創(chuàng)建成功。接下來貼上請求參數(shù)和返回參數(shù):
刪除用戶組
本接口可以刪除用戶組爽待,若用戶組不存在則會返回錯誤信息
我們先看下測試結果:
可以看到返回success,代表刪除用戶組成功损同。接下來貼上請求參數(shù)和返回參數(shù):
查詢用戶組列表
本接口可以查詢用戶組列表
我們先看下測試結果:
可以看到存在用戶組有1和5。接下來貼上請求參數(shù)和返回參數(shù):
在線活體檢測
本接口主要功能有:
人臉基礎信息:包括人臉框位置鸟款,人臉空間旋轉(zhuǎn)角度膏燃,人臉置信度等信息。人臉質(zhì)量檢測:判斷人臉的遮擋欠雌、光照蹄梢、模糊度疙筹、完整度等質(zhì)量信息富俄。可用于判斷上傳的人臉是否符合標準而咆』舯龋基于圖片的活體檢測:基于單張圖片,判斷圖片中的人臉是否為二次翻拍舉例:如用戶A用手機拍攝了一張包含人臉的圖片一暴备,用戶B翻拍了圖片一得到了圖片二悠瞬,并用圖片二偽造成用戶A去進行識別操作,這種情況普遍發(fā)生在金融開戶涯捻、實名認證等環(huán)節(jié))浅妆。此能力可用于H5場景下的一些人臉采集場景中,增加人臉注冊的安全性和真實性障癌。
我們先看下測試結果:
這里最重要的返回參數(shù)有:
face_liveness:活體分數(shù)值thresholds:由服務端返回最新的閾值數(shù)據(jù)凌外,將此參數(shù)與返回的face_liveness進行比較,可以作為活體判斷的依據(jù)涛浙。 frr_1e-4:萬分之一誤識率的閾值康辑;frr_1e-3:千分之一誤識率的閾值摄欲;frr_1e-2:百分之一誤識率的閾值。誤識率越低疮薇,準確率越高胸墙,相應的拒絕率也越高
可以看到返回的thresholds值為0.97.代表基本上不可能為同一個人。因為我選擇的是兩張不同的網(wǎng)絡圖片按咒。其他參數(shù)不多進行解釋迟隅,接下來貼上請求參數(shù)和返回參數(shù)可以自行理解:
返回參數(shù)過多我只對必返回參數(shù)進行截圖:
人臉對比
本接口主要功能有:
兩張人臉圖片相似度對比:比對兩張圖片中人臉的相似度,并返回相似度分值励七;多種圖片類型:支持生活照玻淑、證件照、身份證芯片照呀伙、帶網(wǎng)紋照四種類型的人臉對比补履;活體檢測:基于圖片中的破綻分析,判斷其中的人臉是否為二次翻拍(舉例:如用戶A用手機拍攝了一張包含人臉的圖片一剿另,用戶B翻拍了圖片一得到了圖片二箫锤,并用圖片二偽造成用戶A去進行識別操作,這種情況普遍發(fā)生在金融開戶雨女、實名認證等環(huán)節(jié)谚攒。);質(zhì)量檢測:返回模糊氛堕、光照等質(zhì)量檢測信息馏臭,用于輔助判斷圖片是否符合識別要求;
我們先看下測試結果:
這里最重要的返回參數(shù)有:
score:人臉相似得分
可以看到返回的score值為7.644287109.代表基本上不可能為同一個人讼稚。因為我選擇的是兩張不同的網(wǎng)絡圖片括儒。其他參數(shù)不多進行解釋,接下來貼上請求參數(shù)和返回參數(shù)可以自行理解:
到這里其實SDK關于人臉識別的所有接口都介紹完畢了锐想。其實還有幾個接口帮寻,必須賬戶進行企業(yè)實名認證才有權限調(diào)用,在這里我就不介紹了赠摇。本篇內(nèi)容到這里差不多結束了固逗。如果喜歡我的文章請關注我的個人公眾號:周先生自留地。