(轉載自http://ai.dataguru.cn/article-11640-1.html) html
實驗室研究人臉技術多年,不只在技術方面有很好的積累,並且在公司內外的業務中有衆多應用。在與產品、商務、工程開發同事交流過程當中發現:不論是「從圖中找到人臉的位置」,或是「識別出這我的臉對應的身份」,亦或是其餘,你們都會把這些不一樣的人臉技術統稱爲「人臉識別技術」。
所以,整理了一些常見人臉技術的基本概念,主要用於幫助非基礎研究同事對人臉相關技術有一個更深刻的瞭解,方便後續的交流與合做。
人臉技術基本概念介紹
人臉檢測
「人臉檢測(Face Detection)」是檢測出圖像中人臉所在位置的一項技術。
人臉檢測
算法的輸入是一張圖片,輸出是人臉框座標序列(0我的臉框或1我的臉框或多我的臉框)。通常狀況下,輸出的人臉座標框爲一個正朝上的正方形,但也有一些人臉檢測技術輸出的是正朝上的矩形,或者是帶旋轉方向的矩形。
常見的人臉檢測算法基本是一個「掃描」加「判別」的過程,即算法在圖像範圍內掃描,再逐個斷定候選區域是不是人臉的過程。所以人臉檢測算法的計算速度會跟圖像尺寸、圖像內容相關。開發過程當中,咱們能夠經過設置「輸入圖像尺寸」、或「最小臉尺寸限制」、或「人臉數量上限」的方式來加速算法。
人臉檢測結果舉例(綠色框爲人臉檢測結果)
2. 人臉配準
「人臉配準(Face Alignment)」是定位出人臉上五官關鍵點座標的一項技術。
人臉配准算法的輸入是「一張人臉圖片」加「人臉座標框」,輸出五官關鍵點的座標序列。五官關鍵點的數量是預先設定好的一個固定數值,能夠根據不一樣的語義來定義(常見的有5點、68點、90點等等)。
當前效果的較好的一些人臉配準技術,基本經過
深度學習框架實現,這些方法都是基於人臉檢測的座標框,按某種事先設定規則將人臉區域扣取出來,縮放的固定尺寸,而後進行關鍵點位置的計算。所以,若不計入圖像縮放過程的耗時,人臉配准算法是能夠計算量固定的過程。另外,相對於人臉檢測,或者是後面將提到的人臉提特徵過程,人臉配准算法的計算耗時都要少不少。
人臉配準結果舉例(右圖中的綠色點位人臉配準結果)
3. 人臉屬性識別
「人臉屬性識別(Face Attribute)」是識別出人臉的性別、年齡、姿態、表情等屬性值的一項技術。
通常的人臉屬性識別算法的輸入是「一張人臉圖」和「人臉五官關鍵點座標」,輸出是人臉相應的屬性值。人臉屬性識別算法通常會根據人臉五官關鍵點座標將人臉對齊(旋轉、縮放、扣取等操做後,將人臉調整到預約的大小和形態),而後進行屬性分析。
常規的人臉屬性識別算法識別每個人臉屬性時都是一個獨立的過程,即人臉屬性識別只是對一類算法的統稱,性別識別、年齡估計、姿態估計、表情識別都是相互獨立的算法。但的一些基於深度學習的人臉屬性識別也具備一個算法同時輸入性別、年齡、姿態等屬性值的能力。
人臉屬性識別過程(最右側文字爲屬性識別結果)
4. 人臉提特徵
「人臉提特徵(Face Feature Extraction)」是將一張人臉圖像轉化爲一串固定長度的數值的過程。這個數值串被稱爲「人臉特徵(Face Feature)」,具備表徵這我的臉特色的能力。
人臉提特徵過程的輸入也是 「一張人臉圖」和「人臉五官關鍵點座標」,輸出是人臉相應的一個數值串(特徵)。人臉提特徵算法都會根據人臉五官關鍵點座標將人臉對齊預約模式,而後計算特徵。
近幾年來,深度學習方法基本統治了人臉提特徵算法,這些算法都是固定時長的算法。早前的人臉提特徵模型都較大,速度慢,僅使用於後臺服務。但的一些研究,能夠在基本保證算法效果的前提下,將模型大小和運算速度優化到移動端可用的狀態。
人臉提特徵過程(最右側數值串爲「人臉特徵」)
5. 人臉比對(人臉驗證、人臉識別、人臉檢索、人臉聚類)
「人臉比對(Face Compare)」是衡量兩我的臉之間類似度的算法
人臉比對算法的輸入是兩我的臉特徵(注:人臉特徵由前面的人臉提特徵算法得到),輸出是兩個特徵之間的類似度。人臉驗證、人臉識別、人臉檢索都是在人臉比對的基礎上加一些策略來實現。相對人臉提特徵過程,單次的人臉比對耗時極短,幾乎能夠忽略。
基於人臉比對可衍生出人臉驗證(Face Verification)、人臉識別(Face Recognition)、人臉檢索(Face Retrieval)、人臉聚類(Face Cluster)等算法。
人臉對比過程(右側的類似度爲人臉比對輸出的結果)
6. 人臉驗證
「人臉驗證(Face Verification)」是斷定兩我的臉圖是否爲同一人的算法。
它的輸入是兩我的臉特徵,經過人臉比對得到兩我的臉特徵的類似度,經過與預設的閾值比較來驗證這兩我的臉特徵是否屬於同一人(即類似度大於閾值,爲同一人;小於閾值爲不一樣)。
人臉驗證過程說明(最右側「是同一人」爲人臉驗證的輸出)
7. 人臉識別
「人臉識別(Face Recognition)」是識別出輸入人臉圖對應身份的算法。
它的輸入一我的臉特徵,經過和註冊在庫中N個身份對應的特徵進行逐個比對,找出「一個」與輸入特徵類似度較高的特徵。將這個較高類似度值和預設的閾值相比較,若是大於閾值,則返回該特徵對應的身份,不然返回「不在庫中」。
人臉識別過程(右側身份「jason」爲人臉識別結果)
8. 人臉檢索
「人臉檢索」是查找和輸入人臉類似的人臉序列的算法。
人臉檢索經過將輸入的人臉和一個集合中的說有人臉進行比對,根據比對後的類似度對集合中的人臉進行排序。根據類似度從高到低排序的人臉序列即便人臉檢索的結果。
人臉檢索過程(右側綠框內排序序列爲檢索結果)
9. 人臉聚類
「人臉聚類(Face Cluster)」是將一個集合內的人臉根據身份進行分組的算法。
人臉聚類也經過將集合內全部的人臉兩兩之間作人臉比對,再根據這些類似度值進行分析,將屬於同一個身份的人劃分到一個組裏。
在沒有進行人工身份標註前,只知道分到一個組的人臉是屬於同一個身份,但不知道確切身份。另外假設集合中有N我的臉,那麼人臉聚類的算法複雜度爲O(N2)
人臉聚類過程(右側綠框內按身份的分組結果爲聚類結果)
10. 人臉活體
「人臉活體(FaceLiveness)」是判斷人臉圖像是來自真人仍是來自攻擊假體(照片、視頻等)的方法。
和前面所提到的人臉技術相比,人臉活體不是一個單純算法,而是一個問題的解法。這個解法將用戶交互和算法緊密結合,不一樣的交互方式對應於徹底不一樣的算法。鑑於方法的種類過於繁多,這裏只介紹「人臉活體」的概念,再也不展開。
結束語
本文簡要的介紹了一些主要的人臉技術的概念,目的是讓非研究的同事對各項技術所能解決的問題有所瞭解。對於但願對這些技術有進一步深刻了解的同事,能夠多搜索優圖人臉相關的文章。