您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關NodeJS如何實現人臉識別,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
人臉更新
我們上一篇講到了人臉注冊,每個人臉會綁定一個唯一的userId, 當然,既然注冊了必須要有更新功能。人臉更新就是針對userId進行更新,這時候有兩種可能性:
userId存在于人臉庫userId不存在人臉庫
第一種情況很好理解,存在即更新。那如果第二種情況呢?我們可以先看看如果人臉庫存在userId的情況:
我們跑下測試下效果:
可以看到userId存在的情況下會成功更新人臉并返回圖片新的face_token以及人臉相對圖片的位置信息。那如果userId不存在呢?
可以看到人臉不存在會報錯user is not exist。這樣的返回其實也是可以的,但是人臉識別本質就是為了提升用戶體驗,降低操作復雜性,所以其實還有一種方案可以在用戶不存在的情況進行將該人臉靜默注冊到人臉庫,就是添加參數action_type: REPLACE。
PS:文檔中這里存在一個坑:relace文檔小寫,實際需要大寫,且選傳參數文檔并沒有action_type這參數。
我們現在給本接口添加action_type參數:
我們現在使用不存在的userId測試一下具體效果:
可以看到如果人臉不存在直接靜默注冊到人臉庫,這樣就可以大大提升用戶體驗。當然這個接口一樣可以添加選傳參數,我就不詳細演示了。我直接貼上請求參數及接口返回參數:
人臉刪除
人臉刪除會將用戶人臉信息從用戶組中進行刪除。這里同樣存在兩種情況:
用戶人臉可能只存在于一個用戶組。用戶人臉可能同時存在于多個用戶組。
如果用戶人臉信息只存在于一個用戶組,那直接刪除不會出問題。如果用戶人臉存在于多個用戶組,我們一般不能直接全部刪除,因為不同用戶組可能應用于不同場景的應用。groupId指定從什么用戶組刪除人臉信息,如果同時從多個用戶組刪除則用逗號隔開。
我們先看下測試效果:
可以看到如果在對應的用戶組能夠找到與userId和face_token匹配的人臉,就可以刪除成功。
老規矩,我直接貼上請求參數以及返回參數:
用戶信息查詢
這個接口的用法看標題就可以知道了,可以查詢用戶信息,人臉注冊以及人臉更新進行靜默注冊都是可以選傳用戶信息user_info,通過這個接口查詢就可以查詢到用戶綁定的個人信息。本接口可以直接通過用戶組id以及用戶的userId進行查詢指定人臉的信息:
我們先看下測試結果:
可以看到返回的user_info為空,因為我注冊人臉未進行保存用戶個人信息。接下來貼上請求參數和返回參數:
查詢用戶人臉列表
一個用戶可以注冊多個人臉。本接口可以通過用戶組id以及用戶userId進行查詢指定用戶組中該用戶所有人臉信息:
我們先看下測試結果:
返回的結果只有一張人臉信息,因為該userId對應的人臉只有一張,會返回創建或更新時間。接下來貼上請求參數和返回參數:
查詢用戶列表
本接口可以通過用戶組id進行查詢指定用戶組中所有用戶信息:
我們先看下測試結果:
返回的結果會有該groupId中所有userId的信息接下來貼上請求參數和返回參數:
復制用戶到新的用戶組
如果用戶人臉已存在一個用戶組,使用本接口可以直接將用戶人臉信息復制到新的用戶組中。這個接口官方SDK文檔是有問題的,我們可以先看看請求參數和返回參數:
接口文檔只有用戶userId是必傳參數,實際經過測試,三個參數都為必傳參數。復制與被復制的人臉組都必須已經存在。
我們先看下測試結果:
刪除用戶
本接口可以通過將用戶從某個用戶組中進行刪除。這個接口與人臉刪除接口最大的區別是人臉刪除接口是將某個用戶組中指定用戶的指定人臉進行刪除,本接口是刪除某用戶組指定用戶。
我們先看下測試結果:
可以看到返回success,代表用戶從指定的用戶組中被刪除成功。接下來貼上請求參數和返回參數:
創建用戶組
本接口可以創建新的用戶組,若用戶組已存在則會返回錯誤信息
我們先看下測試結果:
可以看到返回success,代表新的用戶組創建成功。接下來貼上請求參數和返回參數:
刪除用戶組
本接口可以刪除用戶組,若用戶組不存在則會返回錯誤信息
我們先看下測試結果:
可以看到返回success,代表刪除用戶組成功。接下來貼上請求參數和返回參數:
查詢用戶組列表
本接口可以查詢用戶組列表
我們先看下測試結果:
可以看到存在用戶組有1和5。接下來貼上請求參數和返回參數:
在線活體檢測
本接口主要功能有:
人臉基礎信息:包括人臉框位置,人臉空間旋轉角度,人臉置信度等信息。人臉質量檢測:判斷人臉的遮擋、光照、模糊度、完整度等質量信息。可用于判斷上傳的人臉是否符合標準。基于圖片的活體檢測:基于單張圖片,判斷圖片中的人臉是否為二次翻拍舉例:如用戶A用手機拍攝了一張包含人臉的圖片一,用戶B翻拍了圖片一得到了圖片二,并用圖片二偽造成用戶A去進行識別操作,這種情況普遍發生在金融開戶、實名認證等環節)。此能力可用于H5場景下的一些人臉采集場景中,增加人臉注冊的安全性和真實性。
我們先看下測試結果:
這里最重要的返回參數有:
face_liveness:活體分數值thresholds:由服務端返回最新的閾值數據,將此參數與返回的face_liveness進行比較,可以作為活體判斷的依據。 frr_1e-4:萬分之一誤識率的閾值;frr_1e-3:千分之一誤識率的閾值;frr_1e-2:百分之一誤識率的閾值。誤識率越低,準確率越高,相應的拒絕率也越高
可以看到返回的thresholds值為0.97.代表基本上不可能為同一個人。因為我選擇的是兩張不同的網絡圖片。其他參數不多進行解釋,接下來貼上請求參數和返回參數可以自行理解:
返回參數過多我只對必返回參數進行截圖:
人臉對比
本接口主要功能有:
兩張人臉圖片相似度對比:比對兩張圖片中人臉的相似度,并返回相似度分值;多種圖片類型:支持生活照、證件照、身份證芯片照、帶網紋照四種類型的人臉對比;活體檢測:基于圖片中的破綻分析,判斷其中的人臉是否為二次翻拍(舉例:如用戶A用手機拍攝了一張包含人臉的圖片一,用戶B翻拍了圖片一得到了圖片二,并用圖片二偽造成用戶A去進行識別操作,這種情況普遍發生在金融開戶、實名認證等環節。);質量檢測:返回模糊、光照等質量檢測信息,用于輔助判斷圖片是否符合識別要求;
我們先看下測試結果:
這里最重要的返回參數有:
score:人臉相似得分
可以看到返回的score值為7.644287109.代表基本上不可能為同一個人。因為我選擇的是兩張不同的網絡圖片。其他參數不多進行解釋,接下來貼上請求參數和返回參數可以自行理解:
關于“NodeJS如何實現人臉識別”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。