人臉識別
人臉識別(人臉識別技術),是基於人的臉部特徵信息進行身份識別的一種生物識別技術。用攝像機或攝像頭採集含有人臉的圖像或視頻流,並自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識別的一系列相關技術,通常也叫做人像識別、面部識別。
- 中文名 人臉識別
- 別 名:人像識別、面部識別
- 工 具:攝像機或攝像頭
- 傳統技術:可見光圖像的人臉識別
- 處理方法:人臉識別算法
- 用 途:身份識別
目錄
發展歷史
早在20世紀50年代,就已經有科學家開始了人臉識別的研究。而在此後的短短十年間,這項技術的應用就已經正式被提上了研究的中心。 1991年一項名為「特徵臉」的人臉識別技術震驚了整個人臉識別界,它的出現,意味着人臉識別的應用已經得到了長足的進步。 21世紀,隨着計算機技術的不斷發展,計算機學習論也逐漸誕生,人臉識別的精度也逐漸上升,與此同時,對於光照、側臉、環境等等的影響都成為了研究的重點,然而這時候,在實際場景應用中,能夠達到的辨識度最高也不過80%左右。 近幾年來,隨着數據庫訓練基礎的大大增加,和神經技術的累積,再加之統計學和數據學的發展,才逐漸走向了成熟。 現在,人臉識別的準確度已經可以達到99.5%以上,可以投入實際使用。雖然還有不少人在擔心它的安全性,並自以為可以找到很多的破綻,那可能是你們用的系統並不夠好,並不是技術沒有達到。 隨着大數據、共享時代的來臨,數據安全問題也越發被重視起來,人臉識別的技術應用正在向着一個新的高峰不斷攀登,讓我們跟着時代一起,拭目以待吧。*[1]
技術原理
- 人臉檢測(Face Detection):
是檢測出圖像中人臉所在位置的一項技術
人臉檢測算法的輸入是一張圖片,輸出是人臉框坐標序列(0個人臉框或1個人臉框或多個人臉框)。一般情況下,輸出的人臉坐標框為一個正朝上的正方形,但也有一些人臉檢測技術輸出的是正朝上的矩形,或者是帶旋轉方向的矩形。
常見的人臉檢測算法基本是一個「掃描」加「判別」的過程,即算法在圖像範圍內掃描,再逐個判定候選區域是否是人臉的過程。因此人臉檢測算法的計算速度會跟圖像尺寸、圖像內容相關。開發過程中,我們可以通過設置「輸入圖像尺寸」、或「最小臉尺寸限制」、或「人臉數量上限」的方式來加速算法。
- 人臉配准(Face Alignment):
是定位出人臉上五官關鍵點坐標的一項技術
人臉配准算法的輸入是「一張人臉圖片」加「人臉坐標框」,輸出五官關鍵點的坐標序列。五官關鍵點的數量是預先設定好的一個固定數值,可以根據不同的語義來定義(常見的有5點、68點、90點等等)。
當前效果的較好的一些人臉配准技術,基本通過深度學習框架實現,這些方法都是基於人臉檢測的坐標框,按某種事先設定規則將人臉區域扣取出來,縮放的固定尺寸,然後進行關鍵點位置的計算。因此,若不計入圖像縮放過程的耗時,人臉配准算法是可以計算量固定的過程。另外,相對於人臉檢測,或者是後面將提到的人臉提特徵過程,人臉配准算法的計算耗時都要少很多。
- 人臉屬性識別(Face Attribute):
是識別出人臉的性別、年齡、姿態、表情等屬性值的一項技術
一般的人臉屬性識別算法的輸入是「一張人臉圖」和「人臉五官關鍵點坐標」,輸出是人臉相應的屬性值。人臉屬性識別算法一般會根據人臉五官關鍵點坐標將人臉對齊(旋轉、縮放、扣取等操作後,將人臉調整到預定的大小和形態),然後進行屬性分析。
常規的人臉屬性識別算法識別每一個人臉屬性時都是一個獨立的過程,即人臉屬性識別只是對一類算法的統稱,性別識別、年齡估計、姿態估計、表情識別都是相互獨立的算法。但最新的一些基於深度學習的人臉屬性識別也具有一個算法同時輸入性別、年齡、姿態等屬性值的能力。
- 人臉提特徵(Face Feature Extraction):
是將一張人臉圖像轉化為一串固定長度的數值的過程
這個數值串被稱為「人臉特徵(Face Feature)」,具有表徵這個人臉特點的能力。
人臉提特徵過程的輸入也是 「一張人臉圖」和「人臉五官關鍵點坐標」,輸出是人臉相應的一個數值串(特徵)。人臉提特徵算法都會根據人臉五官關鍵點坐標將人臉對齊預定模式,然後計算特徵。
近幾年來,深度學習方法基本統治了人臉提特徵算法,這些算法都是固定時長的算法。早前的人臉提特徵模型都較大,速度慢,僅使用於後台服務。但最新的一些研究,可以在基本保證算法效果的前提下,將模型大小和運算速度優化到移動端可用的狀態。
- 人臉比對(Face Compare):
是衡量兩個人臉之間相似度的算法
人臉比對算法的輸入是兩個人臉特徵(註:人臉特徵由前面的人臉提特徵算法獲得),輸出是兩個特徵之間的相似度。人臉驗證、人臉識別、人臉檢索都是在人臉比對的基礎上加一些策略來實現。相對人臉提特徵過程,單次的人臉比對耗時極短,幾乎可以忽略。
基於人臉比對可衍生出人臉驗證(Face Verification)、人臉識別(Face Recognition)、人臉檢索(Face Retrieval)、人臉聚類(Face Cluster)等算法。
- 人臉驗證(Face Verification):
是判定兩個人臉圖是否為同一人的算法
它的輸入是兩個人臉特徵,通過人臉比對獲得兩個人臉特徵的相似度,通過與預設的閾值比較來驗證這兩個人臉特徵是否屬於同一人(即相似度大於閾值,為同一人;小於閾值為不同)。
- 人臉識別(Face Recognition):
是識別出輸入人臉圖對應身份的算法
它的輸入一個人臉特徵,通過和註冊在庫中N個身份對應的特徵進行逐個比對,找出「一個」與輸入特徵相似度最高的特徵。將這個最高相似度值和預設的閾值相比較,如果大於閾值,則返回該特徵對應的身份,否則返回「不在庫中」。
- 人臉檢索:
是查找和輸入人臉相似的人臉序列的算法
人臉檢索通過將輸入的人臉和一個集合中的說有人臉進行比對,根據比對後的相似度對集合中的人臉進行排序。根據相似度從高到低排序的人臉序列即使人臉檢索的結果。
- 人臉聚類(Face Cluster):
是將一個集合內的人臉根據身份進行分組的算法
人臉聚類也通過將集合內所有的人臉兩兩之間做人臉比對,再根據這些相似度值進行分析,將屬於同一個身份的人劃分到一個組裡。
在沒有進行人工身份標註前,只知道分到一個組的人臉是屬於同一個身份,但不知道確切身份。另外假設集合中有N個人臉,那麼人臉聚類的算法複雜度為O(N2)
- 人臉活體(Face Liveness):
和前面所提到的人臉技術相比,人臉活體不是一個單純算法,而是一個問題的解法。這個解法將用戶交互和算法緊密結合,不同的交互方式對應於完全不同的算法。鑑於方法的種類過於繁多,這裡只介紹「人臉活體」的概念,不再展開。*[2]
技術運用
人臉識別技術現在應用在生活中的方方面面,功能相同,但是作用卻各有差異,主要分線上線下兩個方面。