因爲本人之前一直在從事人臉識別相關的開發和測試工作,所以今天就之前的部分工作做一個總結,主要內容包括人臉識別應用分類,人臉識別產品預研與分析以及最後的總結三個部分。
1,人臉識別應用類型介紹
本章主要介紹人臉識別技術在應用過程中所採用的幾種主要形式進行簡單介紹。
1.1,在線識別
在線識別是指客戶端負責圖像採集和預處理,特徵提取、活體識別以及人臉檢索運行在服務端,通常採用TCP/IP協議進行通訊。但是在實際使用中,基於具體的場景可以分爲:
- 雲端API服務模式
- 私有化部署模式
兩者的主要區別是服務器是在本地還是在雲端。兩者的主要成本產生
1.2,離線識別
離線識別是指圖像採集和運算均在本地進行,基於產品提供的硬件結構形式又可以分爲以下兩種模式:
- 基於離線SDK模式
- 基於人臉識別模組模式
兩種的主要區別是圖像處理是否在終端設備中,兩者的主要成本產生
- 離線SDK:攝像頭選項與SDK授權
- 模組模式:整機採購(包括攝像頭和SDK以及運算單元)
1.3,類型比較
(1)離線SDK方式:
優點:數據處理速度快,響應快,不依賴於網絡環境
缺點:庫容量相對較小,模型精度相對較低,版本更新相對麻煩,開發難度相對在線較難
適用場景:無網絡或者網絡不穩定,庫容量需求小於等於5000(具體參數和設備性能和平臺相關),對識別和檢測速度要求較高場景;目前使用較多的事百度離線SDK,虹軟離線SDK,均支持Windows和Android OS
百度離線人臉識別功能介紹
(2)模組方式:
優點:開發簡單,數據處理不消耗終端資源,響應快,不依賴於網絡環境
缺點:成本較高,集成度過高導致適配場景能力相對較差,選型較困難
適用場景:無網絡或者網絡不穩定,庫容量小於等於8000(具體數量和模組提供的SDK相關),
對識別和檢測速度要求較高場景;目前使用角度的是閱面AI8000模塊
閱面AI8000模塊
(3)在線方式:
優點:開發簡單,模型精度高,庫容量大,終端正常不需要更新SDK(除非服務商進行API調整)
缺點:響應慢且依賴於網絡環境
適用場景:網絡環境好,對識別延時要求不高的場景;目前簡單預研過百度在線人臉識別和曠世在線人臉識別
在線識別1
在線識別2
(4)搭建服務器方式:
優點:開發簡單,模型精度高,庫容量大,不依賴於外部網絡
缺點:成本高,有一定延時(內網傳輸也存在耗時)
適用場景:對庫容量和時延要求都較高且成本控制可接受的項目
本地部署服務器服務器
本章就人臉識別在應用層所採取的常見幾種形式做了一個簡單介紹。具體的使用選擇要結合具體的場景和成本控制綜合考慮。
2, 預研與使用產品總結
本章就個人在開發過程中所使用的或者接觸的產品進行簡單總結,主要包括每一個產品的特點、使用流程、使用性能以及使用過程中的注意事項進行展開描述。
2.1,閱面AI8000模塊
閱面AI8000模塊是基於離線人臉識別模組實現人臉識別的一款產品,它的硬件組成包括一個RGB攝像頭和一個數據處理芯片。實物圖如圖所示。
閱面AI8000模塊實物圖
該模塊可實現即插即用,通過USB連接線連接道終端設備即可獲取圖像人臉數據信息。主要使用流程如下:
- 通過USB連接線連續模組與終端設備(支持2.0和3.0)
- 初始化相機
- 獲取實時圖像人臉信息
- 結合自己的業務處理返回的圖像人臉數據,具體的釋義請參考SDK使用文檔
該模塊在內部封裝了人臉檢測和跟蹤,對外開放了人臉比對接口,目前不支持活體檢測,主要性能參數如下:
閱面AI8000模塊性能參數
使用過程中需要注意的幾個地方
- 組與終端的接線使用帶屏蔽層的通訊線,注意線材和接口固定
- 如果想獲取實時圖像的人臉檢測數據,需要實時調用ReadStar.nativeTrackFX()接口取出模組內部 緩存的人臉檢測數據
- 該模組不具備活體檢測功能,注意場景選擇
- 該模組沒有封裝M:N人臉檢索接口,需要自行封裝
2.2,百度離線SDK
百度離線SDK是百度推出的純離線人臉識別,目前支持Windows、Android和Linux OS,本文所述功能均依據Android OS的SDK所提供的功能。下圖是離線SDK支持的能力
百度離線SDK能力
百度離線人臉識別SDK測試key申請,賬戶需通過企業認證,通過認證後,賬戶默認分配5個測試序列號,期限爲3個月。序列號測試用完可以通過再次申請獲取若干爲期一個月的序列號。序列號列表如下圖所示。
序列號示例
設備激活支持在線、離線和按應用授權等幾種方式,具體的操作可參見官方文檔,文檔網站如下https://ai.baidu.com/ai-doc/FACE/6k37c1nva
百度離線人臉識別工作全流程如圖所示,包括人臉檢測,活體識別,特徵提取以及人臉搜索等功能
百度離線人臉識別工作流程
以上只是參考的流程,可以結合自己的業務場景選擇對應的功能模塊組合,比如我們只需要人臉檢測和活體檢測,則後續的流程可以刪除,對應的模型文件也可以隨之刪除以減少程序體積。關於百度離線人臉是被SDK(Android OS)更新的日誌如表所示(最新的已經更新到V4.1.0,優化了口罩識別模型,這個是我在測試中提出的喲)
人臉識別SDK更新日誌
本 |
日期 |
更新說明 |
v4.0.0 |
2020.2.25 |
1、新增NIR檢測、識別模態; |
v3.2.0 |
2019.12.10 |
1、底層支持多線程; |
v3.1.0 |
2019.08.13 |
1、優化人臉檢測性能; |
v3.0.0 |
2019.07.25 |
1、新版檢測模型,人臉檢測及跟蹤速度大幅提升; |
v2.0.3 |
2019.06.14 |
1、更新硬件指紋獲取模塊,優化特殊環境下指紋變更的問題 |
v2.0.2 |
2019.04.01 |
1、全新人臉檢測模型,檢測追蹤更流暢; |
v2.0.1 |
2019.03.14 |
1、接口設計優化; |
v2.0.0 |
2019.01.10 |
1、優化生活照模型精度及速度 |
v1.1.0 |
2018.09.03 |
1、增加離線證件照特徵抽取模型,可有效處理芯片照、證件照比對需求 |
v1.0.1 |
2018.08.03 |
1、修復設備指紋發生變化bug |
v1.0.0 |
2018.06.29 |
初版,包括離線人臉採集、離線活體檢測、離線對比識別、離線人臉庫管理等功能 |
從日誌可以看出,百度對於Android OS的離線人臉識別SDK更新頻率還是很快的,而且在功能多樣性和功能性能上也在不斷的擴充和優化,目前在這一塊百度的工單響應速度也很及時。所以百度在佈局移動端AI賦能方面還是投入比較大的。關於百度離線人臉識別SDK的介紹,建議觀閱一下如下鏈接視頻 https://www.iqiyi.com/u/1763770506/feeds 中的“百度人臉識別軟硬一體產品零件應用與實踐”視頻單元。
視頻界面
目前關於百度離線人臉識別SDK的性能參數的部分數據如下:
關於SDK在使用過程中需要注意的事項主要有以下幾點可供參考:
- 序列號用於設備離線識別SDK激活,是與設備綁定,有效期自激活日期計算
- 百度目前不支持M:N識別(搜索),但是支持多人同時檢測,所以可以通過人臉檢測獲取多人臉座標位置,然後進行摳圖處理獲取每張人臉圖片,然後調用1:N識別接口實現M:N的效果。因爲百度在底層目前是不支持多線程人臉識別,所以這樣做會對識別效率產生一定影響,需綜合選擇考慮。
- 目前百度離線人臉識別SDK功能比較齊全,且每個功能模塊支持的模式也較多(比如活體檢測),這也同樣帶來一個問題,就是SDK包比較大,建議結合自己的硬件選型和所使用到的功能模塊,把不必要的平臺so文件和模型文件刪除以降低應用體積。
- 設備授權需注意,因爲在Demo中序列號首次授權之後就保存在了SP中,所以應用刪除之後序列號也會隨之消失,建議在本地磁盤做一個備份,避免多次輸入序列號(特別是永久授權的序列號)。
- 百度離線SDK1.0封裝解讀可參考個人博客百度離線人臉識別官方Demo封裝邏輯分析(後續版本基本架構沒有改),裏面有詳細的封裝解讀
2.3,虹軟離線SDK
目前虹軟科技人臉識別相關應用方面公佈了人臉識別和人證覈驗等兩個離線SDK,且都分爲免費版本和增值版本。在線視頻教學https://ai.arcsoft.com.cn/course/video-19.html介紹了集成使用和優化
3.3.1 離線人臉識別SDK
ArcFace 離線SDK,包含人臉檢測、性別檢測、年齡檢測、人臉識別、RGB活體檢測、IR活體檢測等能力,初次使用時需聯網激活,激活後即可在本地無網絡環境下工作,可根據具體的業務需求結合人臉識別SDK靈活地進行應用層開發;目前虹軟科技公佈了免費版和增值版的人臉識別SDK包,兩者主要對比如圖所示,可見其免費版本的使用場景比較受限,較多的是用於測試體驗。
虹軟免費版本與增值版本比對
下表是虹軟SDK3.0 Android平臺更新的日誌信息;可參考https://ai.arcsoft.com.cn/manual/docs#/93
虹軟離線人臉識別SDK3.0日誌
版本 |
日期 |
更新說明 |
3.0.12021020101.1 |
11/13/2019 |
1.激活和初始化接口加鎖保護; |
3.0.12021020101.2 |
11/29/2019 |
1.修復圖像處理庫中BGR24格式圖像數據轉換爲RGB565格式Bitmap時顏色不對的問題; |
3.0.12021020101.3 |
12/25/2019 |
1.開放視頻模式下活體閾值設置; |
3.0.12021020101.4 |
02/28/2020 |
1.支持Android 10設備激活; |
目前ArcFace 離線SDK,包含人臉檢測、性別檢測、年齡檢測、人臉識別、RGB活體檢測、IR活體檢測等能 力,初次使用時需聯網激活,激活後即可在本地無網絡環境下工作,可根據具體的業務需求結合人臉識 別SDK靈活地進行應用層開發。功能模塊可參考下圖所示;
虹軟基礎算法庫
這裏關於3D角度做一個簡單介紹,因爲在基本所以的人臉識別產品的人臉檢測環節中,均會獲取如下三個值
- Pitch
- Roll
- Yaw
它們所表示的角度具體含義如圖所示;
3D角度示意
工作的通用流程和百度類似如下圖所示,只是目前支持活體檢測模型沒有百度的多,目前只支持RGB和IR活體識別,所以虹軟活體最全方案和百度最全活體方案如圖所示;
人臉識別全流程
虹軟最全活體檢測方案
百度最全活體識別方案
因爲這裏涉及三個基本概念,這裏簡單介紹一下:
- RGB活體檢測:RGB可見光活體:主要基於圖片破綻,判斷目標對象是否爲活體。例如圖像中的屏幕反光、成像畸 形、二次翻拍邊框背景等。RGB活體檢測基於單目攝像頭,採用靜默式識別方式,用戶體驗較好。 同時RGB活體受光線以及成像質量影響較大,在強光、暗光等場景,容易影響檢測結果,可通過適 當的補光、使用寬動態鏡頭抵消逆光等方式緩解。
- 紅外活體檢測:主要基於紅外光線反射成像原理,通過人臉成像甄別是否爲活體。基於紅外成像特 點,對於屏幕類攻擊,基本可以達到近100%的活體防禦。IR採用靜默式識別方式,體驗較好,但 需要增加紅外攝像頭成本,同時要結合場景考慮紅外成像距離。
- Depth深度活體(3D結構光):結構光原理是通過主動光發射,在物體上形成光柵,並接受此信息進行活體分析。同樣可以不需要自然光。3D結構光的成像更爲穩定,抗攻擊能力更強,對圖像噪聲的抗干擾能力也更強,是相對更加安全和穩定的方案,但相應的硬件設備造價也較高,需要根據實際業務成本預算,進行綜合考慮。
實際上基於深度圖進行活體檢測還有一種常見的方式TOF(Time of Flight);它是通過傳感器發出經調製的近紅外光,遇物體後反射,傳感器通過計算光線發射和反射時間差或相位差,來換算被拍攝景物的距離,以產生深度信息,此外再結合傳統的相機拍攝,就能將物體的三維輪廓以不同顏色代表不同距離的地形圖方式呈現出來從而獲取物體的深度圖像數據。
目前關於虹軟的算法性能數據如表3-4所示;對應的硬件平臺信息如下:
- 硬件信息:
(1)處理器:RK3288
(2)內存:4G
(3)Android 版本:5.1
- 分辨率:1280×720
虹軟3288板卡4G算法性能
算法 |
性能(ms) |
Detect |
< 90 |
FeatureExtract |
< 300 |
FeatureCompare |
< 0.12 |
RGB Liveness |
< 280 |
IR Liveness |
< 60 |
附:針對Windows平臺的數據如表3-5所示,硬件信息如下:
- 硬件信息:
(1)處理器:Intel® Core™ i5-8500 3.0GHz
(2)安裝內存(RAM):16.0GB(15.9GB可用)
(3)系統類型:win10 64位操作系統
- 分辨率:1280×720
虹軟Windows算法性能
算法 |
性能(ms) |
FaceDetect |
< 40 |
FeatureExtract |
< 90 |
FeatureCompare |
< 0.061 |
RGB Liveness |
< 150 |
IR Liveness |
< 30 |
關於接口調用建議參考官網在線文檔,因爲SDK的更新速度較快,爲了及時獲取最新接口和API文檔,建議經常關注https://ai.arcsoft.com.cn/manual/docs#
關於虹軟離線人臉識別SDK在使用過程中需要注意的事項有:
- 免費授權key和設備不綁定,申請的key可以用於多個設備測試和使用
- 免費授權key使用期限爲一年,時間計時從SDK下載之日起開始計算
- 設備授權後,若設備授權信息被刪除(重裝系統/應用被卸載等),需聯網重新激活;
- 硬件信息發生變更,需要重新激活
- SDK支持多線程使用,但每個線程都需要進行初始化操作
- ArcFace SDK對圖像尺寸做了限制,寬度爲4的倍數,YUYV/I420/NV21/NV12格式的圖片高度爲2的倍數,BGR24/GRAY/U16格式的圖片高度不限制;如果遇到90127請檢查傳入的圖片尺寸是否符合要求,若不符合可對圖片進行適當的裁剪
- 圖片模糊或者畫面中根本沒有人臉或者傳入的人臉框不正確,需要存下圖查看圖像模糊度或查看是否修改了FaceInfo中Rect的內容。若是使用雙目攝像頭,則很有可能是兩者成像差距很大或兩者畫面成鏡像或旋轉的關係
具體可參考https://ai.arcsoft.com.cn/manual/v22/arcface_android_guideV22.html
2.3.2 人證覈驗SDK
人證覈驗 SDK,包含人臉採集、人臉檢測、人證覈驗等能力,主要實現人證的 1:1 比對。 該 SDK 完全在無網環境下工作, 全部離線化、本地化,所有數據在設備本地運行處理,可 根據業務需要進行靈活的上層業務開發。 該 SDK 僅限於採集照與二代身份證件比對,不推薦使用於其他應場景。從介紹可知,該SDK應用場景比較單一。主要的平臺要求如表3-6所示(針對Android)。
平臺要求
平臺 |
Android armeabi-v7a |
系統 |
Android 4.4 (API Level 19)及以上系統 |
顏色格式 |
NV21 |
SDK提供的主要功能包括:
- 人臉檢測
對傳入圖像數據進行人臉檢測,返回人臉位置信息和人臉在圖像中的朝向信息,可 用於後續的人臉分析、人臉比對操作,支持圖像模式和視頻流模式。
- 人臉跟蹤
捕捉並檢測視頻流中的人臉,對人臉進行跟蹤
- 人證覈驗
基於二代身份證證件照和採集照實現人證 1:1 比對,返回比對結果
SDK 授權按設備進行授權,每臺硬件設備需要一個獨立的授權,此授權的校驗基於設 備的唯一標識,被授權的設備,初次授權時需要聯網進行授權,授權成功後可以離線運行SDK;激活一臺設備後,遇以下情況,需要重新聯網激活:
- 刪除基於 SDK 開發的應用或刪除應用數據
- 刷新安卓系統
- 激活一臺設備後,硬件信息發生變更
推薦的認證閾值:0.82
主要工作的業務流程如圖所示;
人證覈驗流程
具體可參考https://ai.arcsoft.com.cn/manual/idcard_android_guide_v2.html
2.3.3 活體檢測SDK(僅供參考,目前已經和官方確認過無意義)
目前虹軟也提供免費的活體檢測SDK,活體檢測離線SDK目前包含單目 RGB 靜默活體檢測能力,初次使用時需聯網激活,激活後即可本地無網絡環境下工作,可根據業務需求結合人臉識別等 SDK 靈活的進行應用層開發;可見其提供的能力還是很有限的,使用的平臺要求如表所示;
平臺要求
平臺 |
Android armeabi-v7a |
系統 |
Android 5.0 (API Level 21)及以上系統 |
顏色格式 |
NV21,BGR24 |
調用流程:
SDK包獲取
- 調用activeEngine激活
- 調用initEngine初始化
- 圖像數據/人臉數據處理
- 調用startLivenessDetect接口進行活體檢測
- 調用unInitEngine銷燬引擎
Step 1:激活,調用activeEngine
接口所需appId和sdkKey在申請SDK時獲取,只需在第一次使用時調用激活成功即可
Step 2:初始化,調用initEngine初始化引擎
Step 3:圖像數據/人臉數據處理
1)圖像數據可以從攝像頭獲取,支持24位BGR或者NV21數據,也可以從保存的圖片中獲取2)人臉數據所需的人臉框和人臉角度通過人臉檢測(FD)或人臉跟蹤(FT)得到,轉換成活體所需結構即可;
Step 4:調用startLivenessDetect接口進行活體檢測
視頻模式:處理連續幀的圖像數據,並返回檢測結果,需要將所有圖像幀的數據都傳入接口進行處理
圖像模式:處理單幀的圖像數據,並返回檢測結果
活體檢測結果可從LivenessInfo對象中獲取;Step 5:調用unInitEngine銷燬引擎
具體可參考https://ai.arcsoft.com.cn/manual/living_liveness.html
2.4 曠世離線SDK
目前曠世離線SDK分爲兩個部分,一個是人臉關鍵點SDK,另一個則是身份認證SDK,下面簡單介紹一下。
2.4.1 關鍵點SDK
目前人臉關鍵點SDK主要提供的能力包括人臉檢測,人臉追蹤,人臉關鍵點(106點)以及人臉屬性-頭部姿態,目前其收費是按照年費來收取的,具體的數額如下表所示。
離線授權
授權時長 |
授權單位 |
價格 (元) |
年 (365天) |
每平臺 |
300,000 |
聯網授權
授權時長 |
授權單位 |
價格 (元) |
可授權設備數 |
年 (365天) |
每平臺 |
20,000 |
1,000 |
年 (365天) |
每平臺 |
50,000 |
10,000 |
年 (365天) |
每平臺 |
100,000 |
100,000 |
SDK的基本規格信息如下:
支持平臺:Android、iOS、Windows、Mac
版本:0.4.7
SDK 大小:~ 5 M
可識別人臉角度:yaw ≤ ±45°, pitch ≤ ±90°
檢測速度:100ms @ 1080p*
追蹤速度:7ms @ 1080p*
在Android平臺的上的使用技術參數要求主要有:
硬件平臺要求
項目 |
Android |
系統版本 |
4.0 + |
CPU 平臺 |
arm armv7 arm64 |
arm armv7 arm64 |
NV21 BGR |
SDK包參數
包大小 |
Android |
代碼部分 |
32位 2.0M; 64位 3.2M |
人臉檢測模型(免費) |
4.8M |
人臉關鍵點track_fast模型(免費) |
1.8M |
人臉關鍵點track_robust模型(免費) |
2.5M |
人臉屬性模型(收費) |
2.3M |
3D POSE模型(免費) |
145K |
2.4.2 身份證質量檢測SDK
準確發現遮擋、模糊、曝光過度、反光、太暗等問題,確保採集的身份證照片質量符合歸檔規範,提升識別準確度。
身份證質量檢測SDK收費
技術參數如表所示;
SDK技術參數
SDK主要能力包括以下兩個方面:
- 質量判斷
精準判斷身份證照片是否存在遮擋、模糊、曝光過度、反光、太暗等問題,通過質量判斷的照片能大大提升識別正確率。廣泛用於銀行、保險等領域,確保歸檔身份證照片符合規範
- 智能採集
支持視頻流內的身份證質量檢測,1080P上每秒30幀速率。可靈活設定閾值,結合攝像頭自動採集符合規範的身份證照片
2.5,在線人臉識別API
目前支持在線人臉識別相關能力的API有很多平臺提供,從使用的方式來看,基本上都是通過Post請求攜帶圖片或者視頻的Base64編碼訪問雲服務器,從而獲取人臉檢測、人臉活體檢測、人臉屬性檢測、人臉搜索等結果數據。因爲在線能力實現在供應商雲平臺,所以通常包含的功能更加多樣,常常還提供一些應用服務支持,比如人臉美顏、換臉等等應用服務。目前就結合百度在線人臉識別API對這類的服務做一個簡單介紹。
2.5.1 百度在線人臉識別
百度在線人臉識別API可以爲終端提供功能更加豐富,種類更加齊全的業務,主要的服務能力包括,
人臉檢測:
- 人臉檢測:檢測圖片中的人臉並標記出位置信息;
- 人臉關鍵點:展示人臉的核心關鍵點信息,及150個關鍵點信息
- 人臉屬性值:展示人臉屬性信息,如年齡、性別等
- 人臉質量信息:返回人臉各部分的遮擋、光照、模糊、完整度、置信度等信息
應用場景:
如人臉屬性分析,基於人臉關鍵點的加工分析,人臉營銷活動等
人臉比對:
- 兩張人臉圖片相似度對比:比對兩張圖片中人臉的相似度,並返回相似度分值;
- 多種圖片類型:支持生活照、證件照、身份證芯片照、帶網紋照四種類型的人臉對比
- 活體檢測控制:基於圖片中的破綻分析,判斷其中的人臉是否爲二次翻拍(舉例:如用戶A用手機拍攝了一張包含人臉的圖片一,用戶B翻拍了圖片一得到了圖片二,並用圖片二僞造成用戶A去進行識別操作,這種情況普遍發生在金融開戶、實名認證等環節。)
- 質量檢測控制:分析圖片的中人臉的模糊度、角度、光照強度等特徵,判斷圖片質量
應用場景:
如人證合一驗證,用戶認證等,可與您現有的人臉庫進行比對驗證
人臉搜索:
- 人臉搜索:也稱爲1:N識別,在指定人臉集合中,找到最相似的人臉
- 人臉搜索 M:N識別:也稱爲M:N識別,待識別圖片中含有多個人臉時,在指定人臉集合中,找到這多個人臉分別最相似的人臉
人臉庫管理:
- 人臉註冊:向人臉庫中添加人臉
- 人臉更新:更新人臉庫中指定用戶下的人臉信息
- 人臉刪除:刪除指定用戶的某張人臉
- 用戶信息查詢:查詢人臉庫中某個用戶的詳細信息
- 獲取用戶人臉列表:獲取某個用戶組中的全部人臉列表
- 獲取用戶列表:查詢指定用戶組中的用戶列表
- 複製用戶:將指定用戶複製到另外的人臉組
- 刪除用戶:刪除指定用戶
- 創建用戶組:創建一個新的用戶組
- 刪除用戶組:刪除指定用戶組
- 組列表查詢:查詢人臉庫中用戶組的列表
身份驗證:
- 質量檢測(可選)::判斷圖片中是否包含人臉,以及人臉在姿態、遮擋、模糊、光照等方面是否符合識別條件;
- 活體檢測(可選):基於圖片中的破綻分析,判斷其中的人臉是否爲二次翻拍(舉例:如用戶A用手機拍攝了一張包含人臉的圖片一,用戶B翻拍了圖片一得到了圖片二,並用圖片二僞造成用戶A去進行識別操作,這種情況普遍發生在金融開戶、實名認證等環節。)
- 公安驗證(必選):基於姓名和身份證號,調取公民身份證小圖(源自公安系統),將當前獲取的人臉圖片,與此證件小圖進行對比,得出比對分數,並基於此進行業務判斷是否爲同一人。由於公安系統小圖,具有最權威的身份證明作用,故對用戶本人的驗證結果可信度也最爲合理
前兩個功能免費調用,只有QPS限制,關於公安驗證有500次免費調用,後續需收取費用,收費的標準可以參照官網:https://ai.baidu.com/ai-doc/FACE/Ck37c1lmj
在線活體檢測:
- 人臉基礎信息:包括人臉框位置,人臉空間旋轉角度,人臉置信度等信息
- 人臉質量檢測:判斷人臉的遮擋、光照、模糊度、完整度等質量信息。可用於判斷上傳的人臉是否符合標準
- 基於圖片的活體檢測:基於單張圖片,判斷圖片中的人臉是否爲二次翻拍(舉例:如用戶A用手機拍攝了一張包含人臉的圖片一,用戶B翻拍了圖片一得到了圖片二,並用圖片二僞造成用戶A去進行識別操作,這種情況普遍發生在金融開戶、實名認證等環節)。此能力可用於H5場景下的一些人臉採集場景中,增加人臉註冊的安全性和真實性。
視頻活體:
H5視頻活體檢測產品,是由兩個接口組合而成,主要用於在H5場景下,通過用戶新錄製並上傳一個視頻,來進行活體檢測的判斷。相對於APP有動作校驗+靜默圖片活體、靜默圖片活體這兩種方式,H5視頻活體方案比APP方案更加靈活,同時比單張圖片活體方式更加安全。其主要功能如下所示:
- 頻多幀活體檢測:錄製並上傳的視頻,會在雲端進行隨機抽幀分析,並得出最終的活體檢測分數
- 音校驗碼:
- 爲防止用戶提交非當前操作的視頻,在錄製視頻時,隨機分配一個數字,用戶需要讀出這個數字,在後續識別時校驗,以判斷視頻是否爲現場錄製。
- 語音校驗碼作爲輔助性質的驗證條件,是一個可選項,如果應用場景比較嘈雜或方言口音比較重,可以不使用語音驗證
其中還有脣語識別和合成圖識別Beta版本,這裏不再描述;該功能主要適用的場景包括:
- 微信服務號:用於對操作用戶真實性要求嚴格的場景,用於依託於微信服務號的金融開戶、實名認證、賬戶信息變更二次驗證等服務
- APP內Webview:對於如Cordova架構開發的APP,或者APP內變更頻繁的身份信息頁等情況,可以採用此方案完成活體檢測
- 瀏覽器:如果僅是一個H5宣傳頁,或者Wap版本網頁等,可以通過此方法快速集成更加安全的活體檢測功能
優劣勢比較:
- 優勢:相對於APP有動作校驗、單張圖片靜默判斷,此方法在沒有APP情況下,可以更快速、輕量級地實現活體檢測,同時保障一定安全性
- 劣勢:由於視頻較大,上傳時間可能較長,另由於不同手機的瀏覽器內核差異較大,容易出現兼容性問題
人臉融合:
對兩張人臉進行融合處理,生成的人臉同時具備兩張人臉的外貌特徵(並不是換臉),此服務具有如下三個業務功能:
- 指定人臉:當圖片中有多張人臉時,可以指定某一張人臉與模板圖進行融合
- 圖像融合:將檢測到的兩張人臉圖片進行融合,輸出一張融合後的人臉
- 黃反識別:利用圖像識別能力,判斷圖片中是否存在色情、暴恐血腥場景、政治敏感人物
人臉屬性編輯:
通過AI技術對人臉屬性特徵進行編輯,實現性別互換、年齡改變等特效,爲用戶生成多種特效照片
- 性別轉換:基於高密度的人臉關鍵點,改變男女性別面部特徵,實現人物性別轉換
- 變老人:對人臉年齡改變過程進行預測,將人臉變爲老人面孔
- 變小孩:對人臉年齡改變過程進行推演,將人臉變爲小孩面孔
以上是百度在線識別API提供的接口能力,最新的接口文檔請參考:https://ai.baidu.com/ai-doc/FACE/yk37c1u4t
2.5.2 其他在線人臉識別
在線人臉識別開放平臺有很多,目前基本的使用要求是:
- 需要個人或者企業認證
- 幾百到幾千免費的調用或者是控制賬號的QPS,如需產品化結合具體的收費方式付費,比如如下幾張表給出的幾個平臺的收費標準(不保證數據實時性);
- 基本上都是通過上傳圖片的base64編碼進行Post請求獲取結果;比如騰訊的人臉檢測接口協議規定如表3-16所示;表3-17給出一個人臉檢測請求接口參數示例;
阿里雲平臺收費
騰訊雲平臺收費
騰訊在線人臉識別API接口協議規定
規則 |
描述 |
傳輸方式 |
HTTPS |
請求方法 |
POST |
字符編碼 |
統一採用UTF-8編碼 |
響應格式 |
統一採用JSON格式 |
接口鑑權 |
簽名機制,詳情請閱接口鑑權 |
騰訊在線人臉檢測接口請求參數
總結:
結合第一部分的分析,我個人覺得人臉識別應用的重點工作方向應該放在本地人臉檢測、活體檢測和人臉圖像抓取上。這也是很多平臺在推出了人臉識別SDK(包含人臉檢測和活體檢測)之後,還推出了人臉檢測SDK(人臉檢測、活體檢測以及人臉摳圖)的原因。