歡迎光臨
每天分享高質量文章

一文瞭解人臉識別:從實現方法到應用場景都講明白了

導讀:在本文中,我們將會接觸到一個既熟悉又陌生的概念——人臉識別。之所以熟悉,是因為人臉識別技術在我們日常生活中應用極其廣泛,例如火車站刷臉驗票進站、手機人臉解鎖等;之所以陌生,是因為我們可能並不瞭解人臉識別的原理,不瞭解人臉識別的任務標的、發展歷程與趨勢。

那麼,在本文中,我們將會對人臉識別技術的概念、應用、標的等做簡要介紹,以便讀者對這項技術有一個立體的認識。

 

 

作者:王天慶

如需轉載請聯絡大資料(ID:hzdashuju)

 

人臉識別技術是如今十分熱門的一項技術,掌握人臉識別技術的優勢不言而喻。下麵,我們將首先介紹人臉識別的基本概況。

 

 

01 何為人臉識別

 

人臉識別技術由來已久,這個概念沒有一個嚴格的定義,一般有狹義與廣義之分。

 

狹義的表述一般是指:以分析與比較人臉視覺特徵資訊為手段,進行身份驗證或查詢的一項計算機視覺技術。

從表述上看,狹義的人臉識別技術其實是一種身份驗證技術,它與我們所熟知的指紋識別、聲紋識別、指靜脈識別、虹膜識別等均屬於同一領域,即生物資訊識別領域。因此,狹義上的人臉識別一般指的是透過人臉影象進行身份確認或查詢的場景。

 

生物資訊識別的認證方式與傳統的身份認證方式相比,具有很多顯著優勢。例如傳統的金鑰認證、識別卡認證等存在易丟失、易被偽造、易被遺忘等特點。而生物資訊則是人類與生俱來的一種屬性,並不會被丟失和遺忘。

而作為生物資訊識別之一的人臉識別又具有對採集裝置要求不高(最簡單的方式只需要能夠拍照的裝置即可)、採集方式簡單等特點。這是虹膜識別、指紋識別等方式所不具備的優點。

 

人臉識別的廣義表述是:在圖片或影片流中識別出人臉,並對該人臉影象進行一系列相關操作的技術。例如,在進行人臉身份認證時,不可避免地會經歷諸如影象採集、人臉檢測、人臉定位、人臉提取、人臉預處理、人臉特徵提取、人臉特徵對比等步驟,這些都可以認為是人臉識別的範疇。

 

 

02 人臉識別的應用

 

近些年,隨著人臉識別精度的提高,基於該項技術的產品也開始在我們生活中呈現“井噴”之勢。

例如,早在2016年2月,北京站就開啟了“刷臉”進站樣式。如圖1-1所示是北京站“刷臉”進站的使用提示。現在,越來越多的火車站開始採用“刷臉”進站方式替代人工檢票,有效地加快了檢票速度。

 

▲圖1-1 北京站“刷臉”進站使用提示

 

人臉識別的另外一個典型應用是手機解鎖。隨著iPhone X的誕生,蘋果手機家族增添了一項新的身份驗證方式,即所謂的Face ID。而蘋果公司官方宣稱,基於Face ID的識別準確率要遠高於基於指紋識別的Touch ID。

實際上,透過人臉識別來解鎖手機並不算什麼新鮮事。早在Android 4.0時期,這項功能就已經整合在作業系統中了。只不過,由於種種原因,這項功能並未取得比較好的效果,因此無論是谷歌還是手機製造廠商都沒有對此進行宣傳,自然也不會被大眾所瞭解。

值得一提的是,據說蘋果公司在這項技術上的研發時間長達5年之久,直至iPhone X才搭載了完備的人臉識別功能,可見高精度的人臉識別技術並不是一種簡單的技術。

 

上面的兩個例子只是人臉識別應用的冰山一角,人臉識別技術的典型應用場景可以總結為如下幾個場景。

 

1. 身份認證場景

 

這是人臉識別技術最典型的應用場景之一。門禁系統、手機解鎖等都可以歸納為該種類別。該方法與傳統的鑰匙開鎖、指紋識別、虹膜識別等均屬於身份認證。這需要系統判斷當前被檢測人臉是否已經存在於系統內建的人臉資料庫中。如果系統內沒有該人的資訊,則認證失敗。

 

2. 證件驗證場景

 

證件驗證與身份認證相似,也可稱為人臉驗證,是判斷證件中的人臉影象與被識別人的人臉是否相同的場景。在進行人臉與證件之間的對比時,往往會引入活體檢測技術。

 

或許大家對活體檢測技術並不陌生,就是我們在使用網際網路產品時經常會出現的“眨眨眼、搖搖頭、點點頭、張張嘴”的人臉識別過程,這個過程我們稱之為基於動作指令的活體檢測。活體檢測還可以藉由紅外線、活體虹膜、排汗等方法來實現。

不難理解,引入活體檢測可以有效地增加判斷的準確性,防止攻擊者偽造或竊取他人生物特徵用於驗證,例如使用照片等平面圖片對人臉識別系統進行攻擊。

 

3. 人臉檢索場景

 

人臉檢索與身份驗證類似,二者的區別在於身份驗證是對人臉圖片“一對一”地對比,而人臉檢索是對人臉圖片“一對多”地對比。例如,在獲取到某人的人臉圖片後,可以透過人臉檢索方法,在人臉資料庫中檢索出該人的其他圖片,或者查詢該人的姓名等相關資訊。

這與我們在資料庫中進行查詢是一樣的,但人臉檢索要比在資料庫中查詢常規資料複雜得多,例如該以何種方式才能建立高效的人臉圖片檢索索引呢?

人臉檢索的應用場景非常多,一個典型的例子是在重要的交通關卡佈置人臉檢索探頭,將行人的人臉圖片在犯罪嫌疑人資料庫中進行檢索,從而比較高效地識別出犯罪嫌疑人。

 

4. 人臉分類場景

 

我們這裡指的人臉分類主要包括判斷人臉圖片中的人臉是男人還是女人,所屬的年齡區間是怎樣的,是什麼樣的人種,該人的表情是什麼等。當然,人臉分類能夠實現的功能遠不止於此,在很多場景中具有重要的應用價值。

例如,社交類App可以透過使用者上傳的自拍圖片來判斷該使用者的性別、年齡等特徵,從而為使用者有針對性地推薦一些可能感興趣的人。

 

5. 互動式應用場景

 

美顏類自拍軟體大家或許都很熟悉,該類軟體除能夠實現常規的磨皮、美白、濾鏡等功能外,還具有“大眼”“瘦臉”、新增裝飾類貼圖等功能。

而“大眼”“瘦臉”等功能都需要使用人臉識別技術來檢測出人眼或面部輪廓,然後根據檢測出來的區域對圖片進行加工,從而得到我們看到的最終結果。

新增裝飾類貼圖也是在這個基礎上實現的,可以認為這是一種AR(增強現實)應用。其實,互動式的應用場景遠不止於此,還有許多遊戲也屬於這種互動式的應用場景。

 

6. 其他應用

 

上面所述的內容是人臉識別中應用比較廣泛的領域。其實,除這些領域外,人臉識別還有許多其他的應用。

例如,人臉圖片的重建技術可以應用到通訊工程領域,實現低位元率的圖片與影片傳輸;基於人臉識別技術,可以實現人臉圖片的合成,甚至直接將一個影片中的人臉完全替換為另外一個人的臉。其中一個經典的專案是DeepFake,利用該專案可以實現“影片換臉”功能,實現的效果足以以假亂真。

 

我們可以在日常生活中體會到人臉識別技術為我們的生活帶來的便利。隨著技術的進一步發展,將會有越來越多的人臉識別相關專案落地。在後面的實戰內容中,我們將會圍繞這些應用場景,具體介紹其原理與實現方法。

 

03 人臉識別的標的

 

我們已經介紹了人臉識別的不同應用場景。在不同的應用場景下,人臉識別的標的可能是不相同的。但是,對於絕大多數的人臉識別應用場景,人臉識別的標的是類似的。

人臉識別的大致流程可以描述為:透過人臉識別模型判斷圖片中是否存在人臉,如果存在人臉,則定位到該人臉的區位,或者提取該人臉影象的高階特徵,作為該人臉影象的特徵向量,並用在後續對圖片的處理中。

 

由於人臉識別的應用場景不同,上述步驟的選擇和側重點也不盡相同。例如:

  • 定位人臉在圖片中的位置,可以用於諸如AR等貼圖操作;

  • 透過定位人臉的關鍵點,可以對人臉圖片進行幾何變換,透過幾何變換可以實現對影象中人臉的校正,與此同時,得到的人臉關鍵點還可以用來實現諸如“瘦臉”等操作;

  • 如果想要實現的功能並不是對人臉圖片的幾何變換,而是對圖片中的人臉進行特定判斷,如判斷圖片中人臉的性別、年齡等,那麼此時的標的是提取出圖片中人臉的高階特徵,然後根據提取出來的高階特徵,使用分類器進行分類,即可以實現諸如性別識別、年齡判斷等功能;

  • 對於人臉對比,一個可行的思路仍然是提取圖片中人臉的高階特徵,然後對這兩個特徵進行對比,從而得出一個相似度數值,透過比較該數值與預設閾值的大小,從而判別兩張圖片中的人臉是否屬於同一個人。

 

▲圖1-2 一種人臉對比解決方案的流程圖

從上面的介紹中我們可以看出,不同人臉識別應用的很多步驟都是重合的,其差異僅在於操作層次的深淺。透過合理選擇、組合對人臉圖片的操作層次,就可以實現我們預期的標的。

這個實現過程可以說是“萬變不離其宗”,最核心的技術便是提取人臉影象的高階特徵,我們將會在後續的例子中逐步印證這一點。

 

04 人臉識別的一般方法

 

我們首先以人臉對比場景為例,介紹一種人臉對比的可行思路。

 

我們在前文中提到過,雖然人臉識別的應用很廣泛,而且用到的具體技術也不盡相同,但是,有很多步驟其實是類似的。以人臉對比為例,一種可行的解決方案如圖1-2所示。

 

下麵我們簡要介紹一下其中的一些關鍵步驟。

 

1. 影象預處理

 

在很多計算機視覺專案中,往往需要進行圖片的預處理操作。這主要是因為輸入的圖片常存在不合規範的地方,甚至會幹擾系統的後續工作。

如圖片帶有噪聲,或者圖片尺寸不符合系統要求等,這些都是預處理這一步需要做的事。而對應的處理方法可以是對圖片進行濾波等操作,從而使圖片更加符合系統要求。如圖1-3所示,分別為帶有椒鹽噪聲的圖片和經過中值濾波處理後的圖片。

 

▲圖1-3 帶有椒鹽噪聲的圖片(左圖)與經過中值濾波處理後的圖片(右圖)

 

2. 人臉檢測

 

顧名思義,人臉檢測就是用來判斷一張圖片中是否存在人臉的操作。如果圖片中存在人臉,則定位該人臉在圖片中的位置;如果圖片中不存在人臉,則傳回圖片中不存在人臉的提示資訊。

對於人臉識別應用,人臉檢測可以說是必不可少的一個重要環節。人臉檢測效果的好壞,將直接影響整個系統的效能優劣。如圖1-4所示,綠色矩形框代表了從圖片中檢測到的人臉影象位置。

▲圖1-4 人臉檢測示意圖

 

3. 人臉校正

 

人臉校正又可以稱為人臉矯正、人臉扶正、人臉對齊等。我們知道,圖片中的人臉影象往往都不是“正臉”,有的是側臉,有的是帶有傾斜角度的人臉。這種在幾何形態上似乎不是很規整的面部影象,可能會對後續的人臉相關操作造成不利影響。於是,就有人提出了人臉校正。

 

我們可以大致認為,人臉校正是對圖片中人臉影象的一種幾何變換,目的是減少傾斜角度等幾何因素給系統帶來的影響。因此,人臉校正一般也被認為是對人臉影象的幾何歸一化操作。人臉校正一般被用在人臉對比等存在後續人臉特徵提取的應用場景中。

但是,隨著深度學習技術的廣泛應用,人臉校正並不是被絕對要求存在於系統中。深度學習模型的預測能力相對於傳統的人臉識別方法要強得多,因為它以大資料樣本訓練取勝。也正因如此,有的人臉識別系統中有人臉校正這一步,而有的模型中則沒有。

 

4. 人臉特徵點定位

 

人臉特徵點定位是指在檢測到圖片中人臉的位置之後,在圖片中定位能夠代表圖片中人臉的關鍵位置的點。常用的人臉特徵點是由左右眼、左右嘴角、鼻子這5個點組成的5點人臉特徵點,以及包括人臉及嘴唇等輪廓構成的68點人臉特徵點等。

▲圖1-5 定位到的5個人臉特徵點

圖1-5所示的就是對人臉圖片進行特徵點定位後標定的人臉特徵點。透過對圖片中人臉特徵點的定位,可以進行人臉校正,也可以應用到某些貼圖類應用中。

 

5. 人臉特徵提取

 

對於很多人臉識別應用來說,人臉特徵提取是十分關鍵的步驟。例如在性別判斷、年齡識別、人臉對比等場景中,將已提取到的人臉特徵為主要的判斷依據。提取到的人臉特徵質量的優劣將直接影響輸出結果正確與否。

 

我們可以認為RGB形式的彩色圖片是一個具有紅、綠、藍三通道的矩陣,而二值影象和灰度影象本身在儲存上就是一個矩陣,這些圖片中的畫素點是很多的。而提取到的特徵往往是以特徵向量的形式表示的,向量的元素一般都不會太多(一般在“千”這個數量級)。

因此,從宏觀角度來看,特徵提取過程可以看作一個資料抽取與壓縮的過程。從數學角度看,其實是一個降維的過程。有關降維的內容,我們將會在後續的部分中詳細介紹。

 

6. 分類器

 

分類器其實指代的是一種分類演演算法。例如我們需要判斷圖片中人臉所屬者的性別,在提取到人臉影象的高階特徵之後,我們要根據這個提取到的特徵來判斷其性別。

這個過程其實是一個二分類過程,也就是大家都知道的:在不考慮特殊情況的前提下,人類可以分為兩類,不是男人就是女人。判斷的依據是前面提到的人臉影象的高階特徵,用於判斷的演演算法就是所謂的分類器。

 

在這裡我們介紹了人臉識別中人臉對比場景中涉及的一些具體要素。我們可以看到,人臉對比的一個可行思路是首先進行圖片的預處理,然後進行人臉檢測判斷,最後提取特徵併進行對比。人臉對比是人臉識別中比較典型的應用場景,我們可以從這個例子中總結出人臉識別應用的共性。

 

  1. 影象預處理。目的是減少圖片自身因素對系統判斷造成的幹擾,或者使圖片格式更適合系統。常見的處理方式有圖片去噪、尺寸轉換、灰度化處理等。

  2. 人臉檢測。對於人臉識別應用場景,如果圖片中根本不存在人臉,那麼後續的一切操作都將變得沒有意義,甚至會造成錯誤的結果。而如果識別不到圖片中存在的人臉,也會導致整個系統執行的提前終止。因此,人臉檢測在人臉識別應用中具有十分重要的作用,甚至可以認為是不可或缺的重要一環。

  3. 特徵點定位與特徵提取。人臉識別系統如果想要實現一些高階功能,獲取特徵將是必不可少的部分。對於不同的人臉識別應用場景,其對特徵的定義也不盡相同。例如想要在圖片中的人臉上自動新增一個眼鏡作為裝飾物,那麼我們需要獲取的特徵就是雙眼在圖片中的位置,這樣以人眼為特徵點的定位將是十分必要的;而對於人臉對比、性別識別等場景,獲取能夠代表圖片中人臉的一個特徵向量將是十分必要的。

  4. 對特徵的利用。我們已經明確了,獲取我們所需的特徵是後續操作的重要基礎。特徵的利用方式前面已經提到幾種,諸如使用分類器進行分類、使用比較器進行比較,或者利用定位到的人臉特徵點進行圖片的貼圖。毫無疑問,對特徵利用的目的是很明確的,因為這往往就是我們最終想要獲取的系統直接輸出結果。

 

上述過程在實現上可能會很複雜,但是對於大多數的人臉識別應用而言,大致的思路是相同的。將上述內容歸結為人臉識別系統構建的一般方法,我們將在後續的內容中以這樣的思路進行人臉識別系統的設計與實現。

 

關於作者:王天慶,長期從事分散式系統、資料科學與工程、人工智慧等方面的研究與開發,在人臉識別方面有豐富的實踐經驗。現就職某世界100強企業的資料實驗室,從事資料科學相關技術領域的預研工作。

本文摘編自《Python人臉識別:從入門到工程實踐》,經出版方授權釋出。

 

延伸閱讀《Python人臉識別

點選上圖瞭解及購買

轉載請聯絡微信:DoctorData

推薦語:世界100強企業資深AI工程師撰寫,全面講解人臉識別各項基礎技術、原理和演演算法,從零實現工程級人臉識別引擎。

已同步到看一看
贊(0)

分享創造快樂