人臉驗證產品怎么做?

2 評論 5479 瀏覽 32 收藏 16 分鐘

編輯導語:人臉驗證產品我們應該都很熟悉了,不少人都在用人臉進行解鎖或者支付。然而,我們對人臉驗證的了解僅限于在使用層面上,但是對于其開發卻少有人了解。今天,在本篇文章中,作者通過自己親身接觸的人臉驗證產品的開發流程,為我們關于人臉驗證產品怎么做進行了總結。

在業務中,有幸深度接觸了人臉驗證這款產品,為及時沉淀總結,所以有了這篇文章。需先說明,本文人臉驗證指的是驗證當前操作者是不是用戶本人。

一、梳理端和場景

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欺詐人臉檢測。字面上理解活體檢測,指的是檢測這個人是不是活體。

比如說帶著面具的人,模型應該是判斷成活體還是非活體,對于這個問題,用活體或者非活體來定義是有些模糊,用欺詐人臉和非欺詐人臉會更準確。

簡單介紹幾種常見方法:

  1. 基于圖片紋理差異:無需用戶進行繁瑣的臉部動作,只要求用戶實時拍攝,傳入模型一張照片即可,是基于圖像紋理差異(摩爾紋、成像畸形等)來做判斷,可有效防止屏幕二次翻拍等作弊攻擊;
  2. 基于運動信息:需要用戶隨機進行眨眼,搖頭,抬頭等動作?;谟脩暨\動信息,可有效防止紙張,照片等作弊攻擊。 因為動作策略是隨機的,需要欺詐人臉在極短時間內進行正確的反應,所以對3D建模類攻擊也有一定的防范作用。除了眨眼,搖頭類,也有讀數字的,通過聲紋+唇語的方式來判斷。缺點是檢測耗時長,對用戶不夠友好;
  3. 基于面部閃爍 :由于真實人臉與欺騙人臉的材質不同,導致了成像系統反射率有差異。通過屏幕來發射不同顏色和強度的光線,一般是紅藍綠,可有效防止紙張,照片,屏幕等作弊攻擊;
  4. 基于紅外:也是因為材質不同,成像系統反射率有差異,但可見光下,區別不是很顯著,而紅外波段會明顯不同。紅外活體檢測就利用了這一點,可有效防止紙張,照片,屏幕等作弊攻擊。 但依賴特殊硬件來發射近紅外光。需要特殊硬件;
  5. 基于3D結構光:前面提過,不贅述。需要特殊硬件;
  6. 基于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 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 超棒!?。?/p>

    來自北京 回復
  2. 人臉識別?現在大部分都是為了收集用戶信息,指紋識別,人臉這些能不用就不要用

    來自廣東 回復