研究人臉識別技術必須知道的十個基本概念
阿新 • • 發佈:2019-02-09
實驗室研究人臉技術多年,不僅在技術方面有很好的積累,而且在公司內外的業務中有眾多應用。在與產品、商務、工程開發同事交流過程中發現:不管是“從圖中找到人臉的位置”,或是“識別出這個人臉對應的身份”,亦或是其他,大家都會把這些不同的人臉技術統稱為“人臉識別技術”。
因此,整理了一些常見人臉技術的基本概念,主要用於幫助非基礎研究同事對人臉相關技術有一個更深入的瞭解,方便後續的交流與合作。
人臉技術基本概念介紹
人臉檢測結果舉例(綠色框為人臉檢測結果)
人臉配準結果舉例(右圖中的綠色點位人臉配準結果)
人臉屬性識別過程(最右側文字為屬性識別結果)
轉自:http://ai.dataguru.cn/article-11640-1.html
1. 人臉檢測
“人臉檢測(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)”是判斷人臉影象是來自真人還是來自攻擊假體(照片、視訊等)的方法。 和前面所提到的人臉技術相比,人臉活體不是一個單純演算法,而是一個問題的解法。這個解法將使用者互動和演算法緊密結合,不同的互動方式對應於完全不同的演算法。鑑於方法的種類過於繁多,這裡只介紹“人臉活體”的概念,不再展開。 結束語 本文簡要的介紹了一些主要的人臉技術的概念,目的是讓非研究的同事對各項技術所能解決的問題有所瞭解。對於希望對這些技術有進一步深入瞭解的同事,可以多搜尋優圖人臉相關的文章。轉自:http://ai.dataguru.cn/article-11640-1.html