今天的話題講的是關於人臉在人工智慧、網際網路時代是怎樣在我們的電腦中運作的。
指紋、虹膜、指靜脈、鞏膜以及視網膜,這幾個都是常見的生物識別的方式。這些生物特徵有一個共同的性質,那就是它們都有一定的隱私、私密性,也就是說如果不近距離接觸或者近距離觀察,根本沒有辦法直接獲取。但是人臉跟這些傳統的生物特徵相比,基本沒有所謂的隱私性可言。
在人腦當中有一個區域叫做梭狀回,現在公認的認為在這個區域裡面會對人臉的信息做一些處理,但是醫學有很多不同的假說,有說裡面的某些區域,或者裡面某一個神經來做這個處理。為什麼認定說這個區域對人臉做識別?因為如果這個區域受到損傷,就會得一種叫做面孔失認證,也就是我們常說的臉盲,就是看這個人,但我不記得這個人是誰了,那麼這個區域來專門處理人臉,也就是說其實人臉是人腦中,特別重要的一個要被處理的信息對象。
觀點總結成兩點即:
第一、人臉與其他生物識別特徵相比缺少「私密性」;
第二、人臉更適合人腦來做,但不一定適合電腦來做。
推論即:在缺乏隱私性這一環節上,我們人臉如果需要被更多的在機器學習、在商業上被使用的話,它一定要解決的問題,叫做有更強的鑑偽能力。
1.找人臉
在實時獲取到的一個視頻流後,首先需要找到視頻幀當中的人臉具體在什麼位置,然後這個過程,對人腦來講很簡單,好像人就在那個位置。但對計算機而言,它需要有一個計算的過程,這個過程叫做 Face Detection,也是人臉檢測的過程。
這邊是用一個比較傳統的方式叫做 Sliding Window(窗口掃描法)來做人臉的查找。這個是通過基於統計基因學習方法訓練出來的:我得到一張圖像,我的分類就可以告訴你,我覺得這個是人臉,或者我覺得這個不是人臉。那麼於是在機器分類之後,我們發現剛才切出來很多小的圖像,輸入給機器,最終機器把其中一部分歸結為人臉的部分就全部挑選出來了。
2.分析臉
我們會做一些對這個人臉的一些屬性進行分析,通過找到人臉的關鍵點,包括眼睛、嘴巴、鼻子的位置,來判斷這個人臉目前的狀態,比如通過眼睛的睜、閉狀態來確認你是否在一個主動希望開啟手機解鎖這麼一個狀態。
3.真假臉判斷
完成這些分析之後,就要做下一步更重要的工作,叫做「真假人臉的判斷」,也就是我們所謂的活體檢測。
4.人臉對比
機器識別人臉,首先第一步先去找一個拿來容易比較的人臉,這個人臉的 Pitch 的角度是-15 度,那麼基於這個-15 度先去找一個底庫當中,比較容易拿來做比較的人臉。接下來它把這個人臉提取特徵,所謂的特徵其實是一個在高維空間中的一個向量,然後將兩邊都分別提取好的特徵進行比較,那麼高維空間中的向量,比較他們的相似性,其實有很多方法,這邊只是挑了一個比較簡單的方法,就是算兩個向量的距離,也就是算兩個高維空間中,向量的 Feature&a—Feature&b 的距離,如果兩個距離靠的越近,那我認為他就是同一個人,或者至少是一個相似的人。
下面的 LSW 表格,也就是一個公開的人臉測試數據集上面的一個大家提交的識別結果報告,這個報告當中顯示,在 2009 年的時候,學術界做的算法,普遍識別的準確率在 84.7%,但是隨著時間的往後推移,其實一方面是計算能力的提升,另外一方面是算法能力的提升,還有數據積累的提升,這個能力會越來越強,到 2014 年的時候,我們發現,準確度已經達到 99.5%,這個已經沒有太高去做提升的水平了。
場景中比較常見的就是客流統計,然後是在安防場景下的一些嫌疑犯的追蹤,今年一個涉賭的通緝犯被我們對接過的一家醫院的安防系統識別出來,並自動發出了報警,對比分數大概在 87 分,隨後民警出警確認並抓捕歸案。據悉今年一年已經快百起此類被算法識別出來的實例。除此之外還有智能訪客系統、門禁系統、活動籤到、智能樓宇、閘機關口等。
另外還有一些大家都能接觸的場景如遠程身份驗證。首先,驗證身份其實在中國很容易,每個人都有一個唯一的 ID,叫做身份證號,同時公安部還有非常完善的人臉系統以供識別。然後進行一個活體檢測就可以確認身份。
對於活體檢測的定義叫做:對傳感器感受到的「真人」與「攻擊」的不同做出辨識。
判斷對象是不是一個活人其實並沒有統一的方法。我們的算法研究員做了個示意圖(如下),我們來判斷這個人是真死還是假活,其實只是管中窺豹。這個斑點就是說,我的攝像頭,成像域下的這麼一個空間狀態,在這個空間狀態當中,活人(真人)在鏡頭中,只佔很少的一部分,就是中間藍色的 S 形狀,我們把它想像成一個高維空間當中的某一族的特徵的分布,這些都是活人。
那麼所謂的攻擊又是什麼呢?就是說,通過不同的攻擊手段,比如說翻拍屏幕、翻拍照片、翻拍蠟像,會有不同的介質,然後這些介質和這些真人都很像,正好就分布在這些真實數據的判斷,就像在圖像當中的紅色介質顯示的部分,我們可以把它想像成在一個高維空間當中,藍色的是我們活人的所有的這一族全部都在這裡,然後所有翻拍的介質都試圖去模仿這個活人,但都只是模仿了其中的一部分。
機器通過我們自己研製的一套深度學習算法的循環來進行訓練,簡單說就是通過大數據收集—訓練—產出算法—變成產品—再收集更多的數據,完成這樣一個閉環。
誤區一、人臉活體的安全「率」是多少?
為什麼我說安全率一個不合理的一種提問的方式呢?因為安全的標準從來就不是一個百分點的數字,它就不是率,成本才是安全唯一衡量的指標。
衡量活體檢測安全標準是用時間成本來衡量的,攻破這個活體,要投入多少的成本在裡面,這個攻擊方法也分成技術性攻擊和非技術性攻擊。舉例一個技術性攻擊:比如有些攝像頭成像的時候,會被相機的三色給吃掉,那麼去調外部圖像顏色的時候,讓圖像變成和你實際成像是一樣的,如果可以完全做到一模一樣的,那麼算法就完全區分不出來。所以這其實是一個不合理的提問的方式。
誤區二、「紅外的」肯定更安全
為什麼大家覺得說,紅外好像更安全,其實這個道理很簡單,那是因為你的視覺的色彩系統不是紅外的,你會覺得,這是你的視覺色彩系統不能理解的一個東西,所以你會覺得它難。
實際上對於計算機來講,不管是紅外的,還是普遍的彩色成像,對它來講,難度都是一致的,舉個例子,就是說,我們現在拍照拍到的人臉都是我們自己視覺彩色系統當中成像的方式,如果我們拍照全部都是紅外的成像,那紅外的攻擊就會變的容易多得多。
誤區三、3D 的人臉識別是不是一定更準確
如果想要純 3D 的人臉識別能夠達到或者超過 2D 的人臉識別精度的話,那麼 1mm 這個點,是必須要突破的,也就是說,深度的精度必須要超過(或者達到)1mm 才可以有討論的餘地,目前來講,3D 商用產品精度大概都在 2-3mm 左右。所以目前 3D 只是 2D 的一種輔助,它還沒有辦法完全獨立來承擔人臉識別的功能。
誤區四、人臉關鍵點≠人臉特徵
人臉關鍵點,其實是一個非常物理的模式,就是找到人臉上面的一些小點或者輪廓點,這些點我們把它定義為關鍵點。所謂的人臉的特徵,其實只是在高維空間上的一個向量。所以說,人臉的關鍵點和人臉的特徵其實不等價。