人臉驗證產(chǎn)品怎么做?

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

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

在業(yè)務(wù)中,有幸深度接觸了人臉驗證這款產(chǎn)品,為及時沉淀總結(jié),所以有了這篇文章。需先說明,本文人臉驗證指的是驗證當(dāng)前操作者是不是用戶本人。

一、梳理端和場景

1. 開始前,產(chǎn)品首先需要先梳理好端和場景

舉例:

為什么要先梳理端和業(yè)務(wù)場景呢?

2. 業(yè)務(wù)場景不同,業(yè)務(wù)策略不同

舉例:金融場景,安全系數(shù)要求更高,在保證一定用戶體驗的時候,寧可誤殺,不可錯放。

登錄場景,則相對要求低一些;另外,不同場景,輔以不同錯誤次數(shù)限制、彌補措施等,業(yè)務(wù)流程邏輯不同。

3. 硬件配置不同,采集到的數(shù)據(jù)不同

軟件產(chǎn)品,關(guān)注手機攝像頭配置。

比如說安卓千元機,一般都是普通RGB攝像頭,只能獲取到用戶臉部的2D信息,比如色彩梯度等,而蘋果手機X及以上配置了3D深度攝像頭。

所以蘋果的面容ID是基于3D結(jié)構(gòu)光的人臉識別方案,通過紅外光將大約3萬個點陣投射到物體上,用數(shù)量龐大的點陣得到物體的深度信息,精度高,可以較好地防范各類攻擊(目前同樣采取3D結(jié)構(gòu)光的安卓手機,點陣數(shù)量遠小于蘋果,相對而言,獲取的數(shù)據(jù)也就更少)。

另外,蘋果的成像是利用紅外不可見光,所以可以不受環(huán)境光的影響,支持用戶在黑暗環(huán)境下正常使用。因此如果識別到用戶手機型號為蘋果X及以上,App可考慮申請調(diào)用系統(tǒng)自帶的面容ID。

iPhone11起,還為FaceID增加一個多角度傳感器,可以捕捉更寬的視野,讓用戶可以不用臉部太靠近攝像頭就可以完成解鎖(https://support.apple.com/zh-hk/HT208108??Face ID官方介紹,感興趣的可以看一下)。

硬件產(chǎn)品,則要考慮攝像頭選型,一般都是選深度相機。

主流的深度相機方案是3D 結(jié)構(gòu)光(3D Structure Light)和時間飛行法(TOF, Time of Flight)。怎么選?要結(jié)合實際采集數(shù)據(jù)的場景來定。

其中,3D結(jié)構(gòu)光就像上述所說,精度高,但有效距離有限。距離越遠,物體上投射到的光點越大,精度也就越差;所以3D結(jié)構(gòu)光更適合應(yīng)用在近距離的人臉識別,手勢識別。像支付寶的線下刷臉支付終端就用的是3D結(jié)構(gòu)光攝像頭。

而遠距離的時候,就適合TOF,比如AR.VR場景更適合用TOF。TOF,ime of Flight,簡單來說就是通過光的飛行時間來計算距離。通過紅外發(fā)射器發(fā)射調(diào)制過的光脈沖,遇到物體反射后,用接收器接收反射回來的光脈沖,并根據(jù)光脈沖的往返時間計算與物體之間的距離。

二、人臉核身操作流程

一般來說分為三步:

1. 采集數(shù)據(jù)

這一步的目的是為模型采集到質(zhì)量合格的人臉圖片/視頻流,并按照采集要求傳輸給后端。

1)明確要求

首先需要明確要求,包括人臉圖像要求和前端采集要求。

人臉圖像要求:圖像要求,需要產(chǎn)品綜合業(yè)務(wù)需求和模型技術(shù)需求,進行確認,人臉比對要求一般包括以下:

  • 有大小合適的整個人臉
  • 光線充足,不反光
  • 人臉無遮擋
  • 人臉角度正
  • 人臉不模糊

活體檢測要求:要根據(jù)業(yè)務(wù)上希望達到的效果和技術(shù)采用的方案綜合確認。技術(shù)原理不同意,則差異很大。

前端采集要求:同樣,需要整合活體檢測和人臉比對的前端采集要求,形成一套完整的前端采集方案。

舉例:

2)人臉檢測

“人臉檢測是指對于任意一幅給定的圖像,采用一定的策略對其進行搜索以確定其中是否含有人臉,如果是則返回臉的位置、大小和姿態(tài)?!比四樧R別第一步,是檢測到圖像中人臉的存在。

就像人的認知一樣,先認識到有人的存在,在判斷這個人是誰。

注意點:

  • 如果采用的技術(shù)方案是分類,可同時找出圖像中的所有人臉,策略上要確認檢測到多張人臉時,以哪張人臉為準,如以最大人臉為目標人臉。
  • 如果用的是遍歷,技術(shù)上簡單來說指的是在圖像中遍歷人臉,若將圖像全部遍歷完,耗時較長,可定策略找到一張符合大小的人臉就結(jié)束,如果檢測的人臉小于要求,則繼續(xù)遍歷。

3)IQA(圖像質(zhì)量評價)

在圖像識別中,所采集到的圖像質(zhì)量直接影響識別結(jié)果的準確性和可靠性。好比我遠遠看到有個人和我打招呼,但是隔得太遠,我看不清具體的五官,所以無法判斷他是誰。

因此,人臉識別,需要過濾掉不符合人臉識別質(zhì)量要求的人臉圖像,所以需要在采集時做IQA。

在采集時,實時校驗人臉的光照條件,姿態(tài)角度、遮擋、清晰度,符合質(zhì)量條件的才會通過進入下一步。采集過程中,圖像不符合要求時,根據(jù)檢測結(jié)果提示用戶正確的操作。

2.欺詐人臉檢測

欺詐人臉檢測,指的檢測圖像是否是欺詐人臉,紙張打印人臉圖,人臉照片,電子設(shè)備屏幕中的人臉數(shù)字圖像或者是人臉面具等。

這里說一點,業(yè)務(wù)側(cè)一般用活體檢測這個詞,但學(xué)術(shù)其實說的是Face spoof detection欺詐人臉檢測。字面上理解活體檢測,指的是檢測這個人是不是活體。

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

簡單介紹幾種常見方法:

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

3. 人臉1:1比對

比對的時候,同時會對圖像做一些預(yù)處理。(需要對圖像二次加工的產(chǎn)品,則一般有單獨的預(yù)處理模型。具體,也視公司資源而言…)

用戶在拍攝時,難免會受到外在因素的干擾,比如光線、表情、陰影遮擋等,導(dǎo)致圖像質(zhì)量不夠好。雖然在采集的時候,我們已經(jīng)過濾了部分低質(zhì)量的圖像,但為了用戶體驗,不可能用很嚴苛的標準。

所以比對的時候,會對采集到的人臉圖像做一些處理,比如說摳出圖像里的人臉,避免圖片里非人像的部分造成影響,調(diào)整光線、旋轉(zhuǎn)、降噪尺寸歸一化,然后提取出人臉特征,找出關(guān)鍵點,將輸入人臉和樣本人臉對齊,最后計算出相似度。

4. 業(yè)務(wù)策略

前面所述大部分都是技術(shù)上的流程,這里總結(jié)一下,業(yè)務(wù)上產(chǎn)品能做些什么呢?

注意:以下非必要,需要產(chǎn)品結(jié)合業(yè)務(wù)需求和技術(shù)能力權(quán)衡確定。

1)限流策略

操作頻繁限制。

2)采集超時策略

在xx時間內(nèi)若采集不到符合要求的圖像,則結(jié)束采集。

3)用戶操作指引

開始采集前,按照人臉圖像要求,給用戶一定的交互提示,可對后面的圖像采集質(zhì)量有一定正向作用。

如請勿遮擋面部,請保持正視屏幕,保持不動,請保持光線充足。疫情期間,視模型要求和業(yè)務(wù)要求,可增加“請摘下口罩”指引。

4)屏幕亮度調(diào)節(jié)

進入采集流程,通過調(diào)節(jié)屏幕亮度,白底UI等,降低光線對圖片成像的影響。注意,這里僅針對RGB成像方案,使用非RGB攝像頭就不需要考慮環(huán)境光的影響。

5)確認圖像采集標準

前文已說,不贅述。

6)檢測到多個人臉

人臉比對時,檢測到多個人臉,一般以最大人臉為目標人臉;活體檢測時,則根據(jù)場景考慮是否,有任一非活體人臉則判斷不通過。

7)閾值策略

不同場景,閾值標準不一樣。

上圖是騰訊人臉比對API接口的返回參數(shù)之一,借這個介紹一下。

這里返回值里面提供了千分之一、萬分之一、十萬分之一不同的誤識率,不同的誤識率下對應(yīng)不同的閾值。

如果業(yè)務(wù)上能接受千分之一的誤識率下,那么分數(shù)大于 40 分,就可以認為是同一個人;但十萬分之一誤識率要求下,90分以下的就認為他們可能不是同一個人。所以產(chǎn)品要根據(jù)業(yè)務(wù)屬性決定以哪個閾值為合格標準。

8)驗證失敗,彌補策略

算法是概覽,也會出錯。為了良好的用戶體驗,可以在人臉驗證失敗,給用戶提供其他驗證方式。

9)建立用戶個人人臉庫,增加比對樣本

當(dāng)人臉識別失敗,用戶轉(zhuǎn)而用其他方式進行驗證,驗證通過后,我們可以記錄下之前的人臉數(shù)據(jù),豐富這位用戶的個人人臉庫。因為用戶的面部是會發(fā)生變化,如果一直用一張樣本照片,隨著時間推移,差異會越來越大,識別會越來不準。

10)注視感知

蘋果FaceID的注視感知功能。它能識別用戶的眼睛有沒有睜開,是否看向手機。只有用戶眼睛睜開,且看向攝像頭時,才能解鎖設(shè)備。

這樣,其他人就難以在用戶不知情的情況下(如在睡著時)解鎖設(shè)備。這里其實考慮的是生物特征的開放性。相比傳統(tǒng)密碼,生物特征每天都暴露在公眾場合,而且一旦被竊取,就是終生被竊取,不像傳統(tǒng)密碼一樣。

三星部分機型,雖然沒有精細到注視感知,不過支持有無睜眼的判斷。但注視感知功能,會對部分眼睛有疾病的用戶造成困擾,如斜視的用戶,所以蘋果也提供了關(guān)閉這個功能的選項。

簡單延伸一下生物特征安全性的問題,怎么樣才能防范竊???

  • 首先:要減少不必要的生物特征采集,存儲。政府層面應(yīng)當(dāng)規(guī)范生物特征的采集、存儲、傳輸。
  • 其次:要讓欺詐無利可圖。不斷發(fā)展相關(guān)技術(shù),讓欺詐成本遠高于收益,比如活體檢測,可以檢測出紙張,照片,視頻等欺詐攻擊。而3D面具成本高,且不具備批量復(fù)制性質(zhì),材質(zhì)和人臉的區(qū)別也可被檢測出來。

感謝閱讀,持續(xù)學(xué)習(xí)中,如有錯誤的地方,請不吝賜教。

 

作者:石青;微信公眾號:shiqingzixishi

本文由 @石青 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自 Pexels,基于 CC0 協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 超棒?。?!

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

    來自廣東 回復(fù)