人臉識別算法SDK
電話(微信):13632514967
一、產品概述
隨著人們對安全問題的不斷重視,生物特征識別技術以其可靠性,有效性和安全性得到了越來越多的關注。人臉識別技術作為生物特征識別技術的一種,以其獨特的友好性,近年來已成為了國際上的一個重點課題,視覺科技是以視覺算法為核心,專注于高精度,小型化的人臉識別技術,公司所研發的人臉識別模型在刷臉支付,智慧園區、智慧校園等多領域應用廣泛。
人臉識別 SDK V1.0 標準版是視覺針對各種線下識別場景封裝的“業務型”人臉識別算法SDK,主要封裝了人臉識別通用功能,如人臉檢測、活體檢測、人臉搜索等,方便客戶二次開 發。客戶既可以自由組合原子化接口,也可基于封裝的應用模式做集成開發。
二、功能模塊
標準版SDK客戶端支持安卓系統,主要用于人臉識別終端設備,例如;人臉門禁機、電子班牌、刷臉支付終端、人臉考勤機等。方便,快捷,快速精準的處理和反饋給戶所識別的結果。
客戶端SDK功能
功能名稱 |
功能描述 |
輸入 |
輸出 |
人臉檢測 |
檢測人臉(跟蹤模式下實時跟蹤人臉 ),是所有人臉算法操作的前置步驟 |
BGR格式的人臉照片 |
人臉數據列 表,單個人臉數據包括;人臉框的位置及大小、5個關鍵點等 |
質量檢測 |
檢測人臉照片質量,保證照片質量,提升識別率 |
BGR格式的人臉照片、人臉關鍵點 |
人臉的質量維度,包含;模糊度、姿態等 |
活體檢測 |
檢測照片中的人臉是否為活體,用于判斷是否存在攻擊行為,支持單目活體檢測、雙目活體檢測 |
BGR格式的可見光人臉照片、BGR格式的紅外人臉, 照片、人臉關鍵點 |
活體分數 |
人臉搜索 |
根據識別的人臉,從人臉庫中搜索出最與之相似的N個人臉 |
人臉特征值、TopN |
N個人臉數據、人臉數據包括;人臉ID,相似度等 |
特征提取 |
提取人臉照片中的人臉特征存入底庫中,用于人臉搜索及人臉比對 |
BGR格式的人臉照片,人臉關鍵點 |
人臉特征值 |
人臉對比 |
比對兩張人臉照片的相似度 |
BGR 格式的兩張人臉照片 |
相似度 |
底庫管理 |
底庫管理,包括;添加、刪除、修改、查詢人臉特征,用于人臉搜索 |
/ |
/ |
三、核心模塊
人臉識別技術是以身份檢索或校驗為目標,通過從給定的靜態或動態圖像中提取人臉信息等手段,與數據庫中已知身份人臉進行匹配的過程。影響人臉識別的關鍵因素有兩個;人臉底庫、識別算法。
底庫是一個用于識別的人員數據集合,集合是由多個人員數據組成,每個人員的數據由人員編碼、 人員分組、人員信息及多張人臉特征組成,將這些人臉特征與人臉 ID 關聯在一起,搜索時,匹配到某個人臉特征,即搜到了相關聯的人員編碼及其對應的人員信息。幾個字段解釋如下;
關鍵字段 |
解釋 |
人臉特征 |
是通過人臉特征提取算法將一張人臉照片提取為一個可用于識別算法的特征值。通常情況下一張照片即可準確完成人臉識別,為了支持特殊場景,允許一個人 員添加多張人臉照片提取的特征保存到底庫中,比如;添加戴眼鏡照和不戴眼鏡照,化妝照和不化妝照。 |
人員編碼 |
由客戶應用指定的唯一用戶 ID,客戶應用可以通過此 ID 找到對應人臉的相關信息。 |
人員分組 |
用于客戶應用根據人臉分組做特定業務邏輯處理。 |
人臉信息 |
由客戶應用定義內容,比如,人員名稱或其他數據。 |
底庫是通過人臉注冊建立的,人臉注冊流程如下
1)獲取人臉照片,可從服務端下載或本地拍照獲取。
2)檢測人臉質量,底庫的人臉質量是影響識別準確率的關鍵因素之一。可以根據場景選擇不同的質量分數作為入庫標準,低于標準的照片將不能入庫。
3)提取人臉特征,用特征提取模型提取照片中的人臉特征。
4)人臉特征入庫,將從人臉照片中提取到的人臉特征及人臉 ID、人臉分組、人臉信息添加到底庫中。人臉 ID要確保和人臉照片關聯一致,以免出現人臉照片與人臉信息不匹配。
人臉識別
典型的人臉識別流程如下圖:
基于攝像頭的人臉識別是按幀處理的,每幀處理的第一步是將攝像頭的視頻流格式轉換成算法支持的格式,再送到算法中檢測并識別人臉。
人臉檢測時,檢測到的每個人臉會有一個跟蹤的ID,該ID用于在視頻流的連續幀中關聯同一個人臉,后續的識別過程都是基于該ID進行的。
識別過程包括人臉質量檢測、特征提取、人臉搜索、活體檢測等,前一個步驟通過,才能執行后一個步驟。所有步驟都執行通過,人臉識別才完成。
人臉識別過程中每幀人臉跟蹤信息都會以事件的形式通知到應用層,人臉跟蹤信息包括:人臉框大小、位置、識別到的人員信息等,應用層可以根據這些信息畫人臉框或做其他處理。
四、算法性能
檢測最小人臉尺寸 |
30*30 像素 |
識別最小人臉尺寸 |
60*60 像素(識別不帶活體)/80*80 像素(識別帶活體) |
人臉姿態 |
正常姿態 小角度姿態 大角度姿態 |
召回率 |
標準環境下, 10000 人底庫 |
誤識率 |
0.5% |
活體檢出率 |
99 %@0.5 拒真率 |
注:識別模型會持續更新,每次更新識別模型需要重新抽取特征 |
相關精度指標
場景 |
指標 |
名稱介紹 |
識別
|
召回率 |
視頻中目標人出現 100 人次,正確識別 99 人次,召回率是 99% |
準確率 |
識別次數是 100 次,其中 99 次為正確識別,準確率是 99% |
|
誤識率 |
1@10 萬底庫,即 10 萬底庫情況下,100 張圖像產生了 1 次誤識別,誤識率 1% |
|
漏識率 |
1-召回率 |
活體檢測及人臉識別測試
活體檢測
正樣本:真人的人臉
負樣本:非真人的照片(照片、手機、面具等)
通過率:設定一個閾值,給定 M 個正樣本,其中模型輸出的分數高于閾值的樣本
(即檢測為真人的正樣本)數量為m個,通過率=m/M
拒絕率:設定一個閾值,給定N個負樣本,其中模型輸出的分數低于閾值的樣本(檢測為攻擊的負樣本)數量為n個,通過率=n/N
活體的效果依賴因素也非常多,包括圖片質量、現場環境、活體閾值等。尤其需要指出的是,活體識別對于不同材質的攻擊手段的防范能力是有差別的,下表給出了常見情況的檢測標。
人臉識別
正樣本集:本人比對本人負樣本集:本人比對他人
通過率=比對通過的正樣本數(比對相似度高于閾值的數量)/正樣本集總數誤識率=比對通過的負樣本數(比對相似度高于閾值的數量)/負樣本集總數
測試平臺 |
3516dV300 |
|
測試圖像分辨率 |
480*640 (注:測試分辨率和實際面板機原始輸入不一樣,實際面板機原始輸入最大沒有限制) |
|
人臉尺寸 |
60*60(識別不帶活體) 80*80(識別帶活體) |
|
多人支持 |
可支持多人,算法不做人臉個數限制 |
|
耗時定義 |
從數據輸入模型到輸出結果花費的時間 |
|
SDK 產品規格 |
||
最大底庫 |
10 萬 |
|
推薦底庫 |
1萬 |
|
人臉檢測 |
人臉檢測耗時 |
<35ms |
人臉檢測跟蹤耗時 |
<18ms |
|
活體 |
雙目CPU 模型耗時 |
<65ms |
1:N人臉識別 |
特征提取耗時 |
<45ms |
人臉 search 耗時 |
<5ms(3K 底庫) <25ms(1W 底庫) |
|
文件大小 |
算法庫+模型 |
<45M |
內存使用情況 |
識別加活體 |
<250M |
識別 |
<240M |
測試結果
1)活體檢測
雙目活體
拒絕率 |
通過率 |
在3516dV300上的平均耗時 |
99.6 |
95.83 |
65ms |
2)人臉識別
1:n 人臉搜索
誤識率 |
通過率 |
閾值 |
0.1 |
99.7 |
0.82 |
五、硬件平臺
人臉識別SDKV1.0標準版作為線下場景的通用 SDK,將逐步增加對各類平臺的兼 容 適 配 , 包含但不限于 : Arm Android 、 Arm Linuxx86 Linux 、 x86Windows 、Hisi3516DV300。硬件的配置、操作系統等都會影響到算法的實際使用效果:
客戶端
客戶端的性能影響整體的識別速度,一般來說算法的性能和主頻成正比,為保證良好的用戶體驗,視覺根據不同配置的硬件平臺,推出了高、低版本的 SDK,以滿足不同終端設備的適配需求。如下給出了建議搭配硬件配置的列表
SDK 版本 |
硬件 |
操作系統 |
配置型號 |
識別耗時 |
高配版 |
3516dV300 |
linux |
CPU:雙核 900M + 1T NPU 內存:1G RAM+4G ROM |
250ms |
低配版 |
全志A64 |
Android 6.0 及以上版本 |
CPU:4核 1.2GHZ 內存:2G RAM+4G ROM |
550ms |
六、授權模式
人臉識別 SDKV1.0 支持USB模組與MIPI模組(帶芯?)授權
USB攝像頭模組/MIPI模組(帶加密IC)
客戶從視覺指定的攝像頭模組供應商獲取USB攝像頭模組,對接到自己的主板,導入人臉識別SDK,即可實現人臉識別授權。
其他授權方式,根據客戶產品狀況洽談。