人臉驗證產品怎么做?
編輯導語:人臉驗證產品我們應該都很熟悉了,不少人都在用人臉進行解鎖或者支付。然而,我們對人臉驗證的了解僅限于在使用層面上,但是對于其開發卻少有人了解。今天,在本篇文章中,作者通過自己親身接觸的人臉驗證產品的開發流程,為我們關于人臉驗證產品怎么做進行了總結。
在業務中,有幸深度接觸了人臉驗證這款產品,為及時沉淀總結,所以有了這篇文章。需先說明,本文人臉驗證指的是驗證當前操作者是不是用戶本人。
一、梳理端和場景
1. 開始前,產品首先需要先梳理好端和場景
舉例:
為什么要先梳理端和業務場景呢?
2. 業務場景不同,業務策略不同
舉例:金融場景,安全系數要求更高,在保證一定用戶體驗的時候,寧可誤殺,不可錯放。
登錄場景,則相對要求低一些;另外,不同場景,輔以不同錯誤次數限制、彌補措施等,業務流程邏輯不同。
3. 硬件配置不同,采集到的數據不同
軟件產品,關注手機攝像頭配置。
比如說安卓千元機,一般都是普通RGB攝像頭,只能獲取到用戶臉部的2D信息,比如色彩梯度等,而蘋果手機X及以上配置了3D深度攝像頭。
所以蘋果的面容ID是基于3D結構光的人臉識別方案,通過紅外光將大約3萬個點陣投射到物體上,用數量龐大的點陣得到物體的深度信息,精度高,可以較好地防范各類攻擊(目前同樣采取3D結構光的安卓手機,點陣數量遠小于蘋果,相對而言,獲取的數據也就更少)。
另外,蘋果的成像是利用紅外不可見光,所以可以不受環境光的影響,支持用戶在黑暗環境下正常使用。因此如果識別到用戶手機型號為蘋果X及以上,App可考慮申請調用系統自帶的面容ID。
iPhone11起,還為FaceID增加一個多角度傳感器,可以捕捉更寬的視野,讓用戶可以不用臉部太靠近攝像頭就可以完成解鎖(https://support.apple.com/zh-hk/HT208108??Face ID官方介紹,感興趣的可以看一下)。
硬件產品,則要考慮攝像頭選型,一般都是選深度相機。
主流的深度相機方案是3D 結構光(3D Structure Light)和時間飛行法(TOF, Time of Flight)。怎么選?要結合實際采集數據的場景來定。
其中,3D結構光就像上述所說,精度高,但有效距離有限。距離越遠,物體上投射到的光點越大,精度也就越差;所以3D結構光更適合應用在近距離的人臉識別,手勢識別。像支付寶的線下刷臉支付終端就用的是3D結構光攝像頭。
而遠距離的時候,就適合TOF,比如AR.VR場景更適合用TOF。TOF,ime of Flight,簡單來說就是通過光的飛行時間來計算距離。通過紅外發射器發射調制過的光脈沖,遇到物體反射后,用接收器接收反射回來的光脈沖,并根據光脈沖的往返時間計算與物體之間的距離。
二、人臉核身操作流程
一般來說分為三步:
1. 采集數據
這一步的目的是為模型采集到質量合格的人臉圖片/視頻流,并按照采集要求傳輸給后端。
1)明確要求
首先需要明確要求,包括人臉圖像要求和前端采集要求。
人臉圖像要求:圖像要求,需要產品綜合業務需求和模型技術需求,進行確認,人臉比對要求一般包括以下:
- 有大小合適的整個人臉
- 光線充足,不反光
- 人臉無遮擋
- 人臉角度正
- 人臉不模糊
活體檢測要求:要根據業務上希望達到的效果和技術采用的方案綜合確認。技術原理不同意,則差異很大。
前端采集要求:同樣,需要整合活體檢測和人臉比對的前端采集要求,形成一套完整的前端采集方案。
舉例:
2)人臉檢測
“人臉檢測是指對于任意一幅給定的圖像,采用一定的策略對其進行搜索以確定其中是否含有人臉,如果是則返回臉的位置、大小和姿態。”人臉識別第一步,是檢測到圖像中人臉的存在。
就像人的認知一樣,先認識到有人的存在,在判斷這個人是誰。
注意點:
- 如果采用的技術方案是分類,可同時找出圖像中的所有人臉,策略上要確認檢測到多張人臉時,以哪張人臉為準,如以最大人臉為目標人臉。
- 如果用的是遍歷,技術上簡單來說指的是在圖像中遍歷人臉,若將圖像全部遍歷完,耗時較長,可定策略找到一張符合大小的人臉就結束,如果檢測的人臉小于要求,則繼續遍歷。
3)IQA(圖像質量評價)
在圖像識別中,所采集到的圖像質量直接影響識別結果的準確性和可靠性。好比我遠遠看到有個人和我打招呼,但是隔得太遠,我看不清具體的五官,所以無法判斷他是誰。
因此,人臉識別,需要過濾掉不符合人臉識別質量要求的人臉圖像,所以需要在采集時做IQA。
在采集時,實時校驗人臉的光照條件,姿態角度、遮擋、清晰度,符合質量條件的才會通過進入下一步。采集過程中,圖像不符合要求時,根據檢測結果提示用戶正確的操作。
2.欺詐人臉檢測
欺詐人臉檢測,指的檢測圖像是否是欺詐人臉,紙張打印人臉圖,人臉照片,電子設備屏幕中的人臉數字圖像或者是人臉面具等。
這里說一點,業務側一般用活體檢測這個詞,但學術其實說的是Face spoof detection欺詐人臉檢測。字面上理解活體檢測,指的是檢測這個人是不是活體。
比如說帶著面具的人,模型應該是判斷成活體還是非活體,對于這個問題,用活體或者非活體來定義是有些模糊,用欺詐人臉和非欺詐人臉會更準確。
簡單介紹幾種常見方法:
- 基于圖片紋理差異:無需用戶進行繁瑣的臉部動作,只要求用戶實時拍攝,傳入模型一張照片即可,是基于圖像紋理差異(摩爾紋、成像畸形等)來做判斷,可有效防止屏幕二次翻拍等作弊攻擊;
- 基于運動信息:需要用戶隨機進行眨眼,搖頭,抬頭等動作?;谟脩暨\動信息,可有效防止紙張,照片等作弊攻擊。 因為動作策略是隨機的,需要欺詐人臉在極短時間內進行正確的反應,所以對3D建模類攻擊也有一定的防范作用。除了眨眼,搖頭類,也有讀數字的,通過聲紋+唇語的方式來判斷。缺點是檢測耗時長,對用戶不夠友好;
- 基于面部閃爍 :由于真實人臉與欺騙人臉的材質不同,導致了成像系統反射率有差異。通過屏幕來發射不同顏色和強度的光線,一般是紅藍綠,可有效防止紙張,照片,屏幕等作弊攻擊;
- 基于紅外:也是因為材質不同,成像系統反射率有差異,但可見光下,區別不是很顯著,而紅外波段會明顯不同。紅外活體檢測就利用了這一點,可有效防止紙張,照片,屏幕等作弊攻擊。 但依賴特殊硬件來發射近紅外光。需要特殊硬件;
- 基于3D結構光:前面提過,不贅述。需要特殊硬件;
- 基于TOF:前面提過,不贅述。需要特殊硬件。
3. 人臉1:1比對
比對的時候,同時會對圖像做一些預處理。(需要對圖像二次加工的產品,則一般有單獨的預處理模型。具體,也視公司資源而言…)
用戶在拍攝時,難免會受到外在因素的干擾,比如光線、表情、陰影遮擋等,導致圖像質量不夠好。雖然在采集的時候,我們已經過濾了部分低質量的圖像,但為了用戶體驗,不可能用很嚴苛的標準。
所以比對的時候,會對采集到的人臉圖像做一些處理,比如說摳出圖像里的人臉,避免圖片里非人像的部分造成影響,調整光線、旋轉、降噪尺寸歸一化,然后提取出人臉特征,找出關鍵點,將輸入人臉和樣本人臉對齊,最后計算出相似度。
4. 業務策略
前面所述大部分都是技術上的流程,這里總結一下,業務上產品能做些什么呢?
注意:以下非必要,需要產品結合業務需求和技術能力權衡確定。
1)限流策略
操作頻繁限制。
2)采集超時策略
在xx時間內若采集不到符合要求的圖像,則結束采集。
3)用戶操作指引
開始采集前,按照人臉圖像要求,給用戶一定的交互提示,可對后面的圖像采集質量有一定正向作用。
如請勿遮擋面部,請保持正視屏幕,保持不動,請保持光線充足。疫情期間,視模型要求和業務要求,可增加“請摘下口罩”指引。
4)屏幕亮度調節
進入采集流程,通過調節屏幕亮度,白底UI等,降低光線對圖片成像的影響。注意,這里僅針對RGB成像方案,使用非RGB攝像頭就不需要考慮環境光的影響。
5)確認圖像采集標準
前文已說,不贅述。
6)檢測到多個人臉
人臉比對時,檢測到多個人臉,一般以最大人臉為目標人臉;活體檢測時,則根據場景考慮是否,有任一非活體人臉則判斷不通過。
7)閾值策略
不同場景,閾值標準不一樣。
上圖是騰訊人臉比對API接口的返回參數之一,借這個介紹一下。
這里返回值里面提供了千分之一、萬分之一、十萬分之一不同的誤識率,不同的誤識率下對應不同的閾值。
如果業務上能接受千分之一的誤識率下,那么分數大于 40 分,就可以認為是同一個人;但十萬分之一誤識率要求下,90分以下的就認為他們可能不是同一個人。所以產品要根據業務屬性決定以哪個閾值為合格標準。
8)驗證失敗,彌補策略
算法是概覽,也會出錯。為了良好的用戶體驗,可以在人臉驗證失敗,給用戶提供其他驗證方式。
9)建立用戶個人人臉庫,增加比對樣本
當人臉識別失敗,用戶轉而用其他方式進行驗證,驗證通過后,我們可以記錄下之前的人臉數據,豐富這位用戶的個人人臉庫。因為用戶的面部是會發生變化,如果一直用一張樣本照片,隨著時間推移,差異會越來越大,識別會越來不準。
10)注視感知
蘋果FaceID的注視感知功能。它能識別用戶的眼睛有沒有睜開,是否看向手機。只有用戶眼睛睜開,且看向攝像頭時,才能解鎖設備。
這樣,其他人就難以在用戶不知情的情況下(如在睡著時)解鎖設備。這里其實考慮的是生物特征的開放性。相比傳統密碼,生物特征每天都暴露在公眾場合,而且一旦被竊取,就是終生被竊取,不像傳統密碼一樣。
三星部分機型,雖然沒有精細到注視感知,不過支持有無睜眼的判斷。但注視感知功能,會對部分眼睛有疾病的用戶造成困擾,如斜視的用戶,所以蘋果也提供了關閉這個功能的選項。
簡單延伸一下生物特征安全性的問題,怎么樣才能防范竊?。?/p>
- 首先:要減少不必要的生物特征采集,存儲。政府層面應當規范生物特征的采集、存儲、傳輸。
- 其次:要讓欺詐無利可圖。不斷發展相關技術,讓欺詐成本遠高于收益,比如活體檢測,可以檢測出紙張,照片,視頻等欺詐攻擊。而3D面具成本高,且不具備批量復制性質,材質和人臉的區別也可被檢測出來。
感謝閱讀,持續學習中,如有錯誤的地方,請不吝賜教。
作者:石青;微信公眾號:shiqingzixishi
本文由 @石青 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自 Pexels,基于 CC0 協議
超棒!?。?/p>
人臉識別?現在大部分都是為了收集用戶信息,指紋識別,人臉這些能不用就不要用