導讀:在本文中,我們将會接觸到一個既熟悉又陌生的概念——人臉識别。之所以熟悉,是因為人臉識别技術在我們日常生活中應用極其廣泛,例如火車站刷臉驗票進站、手機人臉解鎖等;之所以陌生,是因為我們可能并不了解人臉識别的原理,不了解人臉識别的任務目标、發展曆程與趨勢。
那麼,在本文中,我們将會對人臉識别技術的概念、應用、目标等做簡要介紹,以便讀者對這項技術有一個立體的認識。
作者:王天慶
如需轉載請聯系華章科技
人臉識别技術是如今十分熱門的一項技術,掌握人臉識别技術的優勢不言而喻。下面,我們将首先介紹人臉識别的基本概況。
01 何為人臉識别人臉識别技術由來已久,這個概念沒有一個嚴格的定義,一般有狹義與廣義之分。
狹義的表述一般是指:以分析與比較人臉視覺特征信息為手段,進行身份驗證或查找的一項計算機視覺技術。
從表述上看,狹義的人臉識别技術其實是一種身份驗證技術,它與我們所熟知的指紋識别、聲紋識别、指靜脈識别、虹膜識别等均屬于同一領域,即生物信息識别領域。因此,狹義上的人臉識别一般指的是通過人臉圖像進行身份确認或查找的場景。
▲圖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. 分類器
分類器其實指代的是一種分類算法。例如我們需要判斷圖片中人臉所屬者的性别,在提取到人臉圖像的高級特征之後,我們要根據這個提取到的特征來判斷其性别。
這個過程其實是一個二分類過程,也就是大家都知道的:在不考慮特殊情況的前提下,人類可以分為兩類,不是男人就是女人。判斷的依據是前面提到的人臉圖像的高級特征,用于判斷的算法就是所謂的分類器。
在這裡我們介紹了人臉識别中人臉對比場景中涉及的一些具體要素。我們可以看到,人臉對比的一個可行思路是首先進行圖片的預處理,然後進行人臉檢測判斷,最後提取特征并進行對比。人臉對比是人臉識别中比較典型的應用場景,我們可以從這個例子中總結出人臉識别應用的共性。
- 圖像預處理。目的是減少圖片自身因素對系統判斷造成的幹擾,或者使圖片格式更适合系統。常見的處理方式有圖片去噪、尺寸轉換、灰度化處理等。
- 人臉檢測。對于人臉識别應用場景,如果圖片中根本不存在人臉,那麼後續的一切操作都将變得沒有意義,甚至會造成錯誤的結果。而如果識别不到圖片中存在的人臉,也會導緻整個系統執行的提前終止。因此,人臉檢測在人臉識别應用中具有十分重要的作用,甚至可以認為是不可或缺的重要一環。
- 特征點定位與特征提取。人臉識别系統如果想要實現一些高級功能,獲取特征将是必不可少的部分。對于不同的人臉識别應用場景,其對特征的定義也不盡相同。例如想要在圖片中的人臉上自動添加一個眼鏡作為裝飾物,那麼我們需要獲取的特征就是雙眼在圖片中的位置,這樣以人眼為特征點的定位将是十分必要的;而對于人臉對比、性别識别等場景,獲取能夠代表圖片中人臉的一個特征向量将是十分必要的。
- 對特征的利用。我們已經明确了,獲取我們所需的特征是後續操作的重要基礎。特征的利用方式前面已經提到幾種,諸如使用分類器進行分類、使用比較器進行比較,或者利用定位到的人臉特征點進行圖片的貼圖。毫無疑問,對特征利用的目的是很明确的,因為這往往就是我們最終想要獲取的系統直接輸出結果。
上述過程在實現上可能會很複雜,但是對于大多數的人臉識别應用而言,大緻的思路是相同的。将上述内容歸結為人臉識别系統構建的一般方法,我們将在後續的内容中以這樣的思路進行人臉識别系統的設計與實現。
關于作者:王天慶,長期從事分布式系統、數據科學與工程、人工智能等方面的研究與開發,在人臉識别方面有豐富的實踐經驗。現就職某世界100強企業的數據實驗室,從事數據科學相關技術領域的預研工作。本文摘編自《Python人臉識别:從入門到工程實踐》,經出版方授權發布。
延伸閱讀《Python人臉識别》
推薦語:世界100強企業資深AI工程師撰寫,全面講解人臉識别各項基礎技術、原理和算法,從零實現工程級人臉識别引擎。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!