人臉識別(face recognition)是機器學習領域中最受歡迎的技術之一。最近,該技術的使用案例已經從政府安全系統的特定監視應用擴展到多個產業的更廣泛應用,例如使用者的識別和認證、消費者體驗、健康和廣告。事實上,根據MarketsAndMarkets,到2022年,臉部識別(facial recognition)市場預計將成長到77.6億美元,複合年成長率(CAGR)為13.9%。EFTEETC-電子工程專輯
本文討論eInfochips工程師為存取管理應用成功開發的人臉識別算法實務。在這樣的系統中有兩個階段:人臉檢測;然後是人臉識別。一開始,臉部的檢測是在影像上使用Haar級聯分類器(Haar Cascade Classifier),結合臉部主要的裁剪部份。EFTEETC-電子工程專輯
使用Haar級聯分級器進行眼睛檢測,形成幾何臉部模型;而鼻子的檢測則被用作眼睛檢測的再確認機制。之後,從大量臉部影像中擷取「定向梯度直方圖」(Histogram of Oriented Gradients;HOG)特徵,作為識別機制的一部份。然後將這些HOG特徵一併標記為某一個人臉/使用者,並且訓練支持向量機(SVM)模型以預測饋送到系統中的臉部。EFTEETC-電子工程專輯
可能的用例和環境條件如下:EFTEETC-電子工程專輯
• 使用人臉識別進行存取管理。EFTEETC-電子工程專輯
• 近距離場景,攝影機與待識別人員臉部之間的距離為5到6英呎。EFTEETC-電子工程專輯
• 成功識別僅限於15個自由度(℃)以內的臉部俯仰翻轉、左右翻轉和平面旋轉姿態。EFTEETC-電子工程專輯
就像任何其他形式的生物識別一樣,人臉識別需要採集、識別、提取必要(特徵)信息的臉部樣本,並儲存以供識別。整個人臉識別解決方案分為以下幾個主要模塊:EFTEETC-電子工程專輯
1. 臉部擷取EFTEETC-電子工程專輯
2. 臉部訓練EFTEETC-電子工程專輯
3. 臉部識別EFTEETC-電子工程專輯
臉部檢測是在人臉識別過程中執行任何操作的基本步驟。基於Haar特徵的級聯分類器是一種廣泛使用的臉部檢測機制。為了訓練分類器來檢測臉部,要形成兩組包含眾多影像的影像集:一組包含具有臉部的影像,另一組則包含沒有臉部的影像。然後使用這些影像產生分類器模型。透過從正像(positive image)和負像(negative image)中擷取Haar特徵來產生分類器。EFTEETC-電子工程專輯
Haar分類器主要根據Paul Viola和Michael Jones在其論文《使用增強級聯的簡單特徵進行快速對象檢測》(Rapid object detection using boosted cascade of simple features)中提出的對象檢測架構。使用下圖所示的每個特徵訓練單個分類器。然而,單個分類器本身無法實現高精度,因此多個這樣的分類器形成級聯。所形成的最終分類器是弱分類器的加權之和。使用此方法,分類器可提供95%以上的分類準確度。EFTEETC-電子工程專輯
EFTEETC-電子工程專輯
圖1:Haar特徵(來源:opencv.org)EFTEETC-電子工程專輯
在圖2的示例中,影像作為卷積核心以擷取特徵,其中每個特徵是透過從白色矩形下方像素總和中減去黑色矩形下方像素總和所取得的值。EFTEETC-電子工程專輯
EFTEETC-電子工程專輯
圖2:Haar特徵示例(來源:opencv.org)EFTEETC-電子工程專輯
上圖提供了兩個特徵示例:邊緣和線條。邊緣特徵有效地映像臉部屬性;即眼睛區域比臉部其它任何部份更暗。線條特徵映像了鼻子屬性;即臉部的垂直鼻線比兩側更亮。因為,這些特徵中的任一個都無法準確對圖案進行分類,所以將它們做成級聯;因此,這就是基於Haar特徵的級聯分類器名稱由來。EFTEETC-電子工程專輯
現在,讓我們詳細考慮臉部識別的三個主要模塊,如下所述。EFTEETC-電子工程專輯
人臉識別的第一步是收集臉部樣本。基本上包括以下三個基本步驟:EFTEETC-電子工程專輯
1. 檢測臉部。EFTEETC-電子工程專輯
2. 裁剪臉部的主要部份。EFTEETC-電子工程專輯
3. 儲存臉部影像。EFTEETC-電子工程專輯
如同前一節中所討論的,臉部檢測主要使用基於Haar特徵的級聯分類器來實現。通常,臉部識別的準確性高度依賴於樣本影像的質量和種類。針對相同臉部捕捉具有多個臉部表情的多個影像,可獲得各種樣本影像。EFTEETC-電子工程專輯
EFTEETC-電子工程專輯
圖3:捕捉臉部樣本(來源:eInfochips)EFTEETC-電子工程專輯
一旦檢測到臉部,就可以將其裁剪並儲存為樣本影像以供分析。廣泛地使用矩形來框定影像中的區域,引入了裁剪頭部影像的多餘部份。因此,使用Haar級聯分類器獲得的矩形限定臉部特徵中包含了無關緊要的數據,例如頸部、耳朵、頭髮等周圍的區域。使用幾何臉部模型可緩解這一情況,該幾何臉部模型由各種臉部特徵(包括眼睛、鼻子和嘴巴)之間的幾何關係形成。EFTEETC-電子工程專輯
幾何臉部模型如何運作?為了形成幾何臉部模型,通常將一雙眼睛視為影像內定位的第一特徵。理想情況下,任何特徵都可用於作為形成臉部模型的起點,但從眼睛的位置開始產生具有更高精度的臉部模型。在某些情況下,鼻子的位置用於確定臉部模型。然而,眼睛通常被認為是主要的起始特徵,而鼻子則被認為是眼睛未定位或部份閉塞(occluded)情況下的次要起始特徵。EFTEETC-電子工程專輯
使用眼睛的臉部模型:從兩隻眼睛中心的坐標開始,使用以下等式獲得臉部的必要部份(特徵):EFTEETC-電子工程專輯
EFTEETC-電子工程專輯
圖4:使用眼睛的幾何臉部模型(來源:eInfochips)EFTEETC-電子工程專輯
使用鼻子的臉部模型:使用鼻子中心的坐標,利用以下等式獲得兩隻眼睛中心的坐標。此外,使用等式(eq.) 1、2和3 (如上所述)獲得臉部必要部份的裁剪。EFTEETC-電子工程專輯
EFTEETC-電子工程專輯
圖5:使用鼻子的幾何臉部模型(來源:eInfochips)EFTEETC-電子工程專輯
為了提高識別準確度,在臉部捕捉過程中丟棄尺寸小於256x256的臉部剪裁區域。此外,臉部區域相對於光源方向有顯著偏差。為了減輕這種影響,在裁剪的臉部影像實施直方圖等化。這降低了由於不均勻照明而在臉部形成的不對稱性。EFTEETC-電子工程專輯
在此階段,從與每個人相關聯的影像中收集特徵。之後,對來自所有儲存影像的完整信息集(每人作為單個SVM標籤予以隔離)進行訓練以產生SVM模型。EFTEETC-電子工程專輯
什麼是支持向量機(SVM)?支持向量機(SVM)是受監督的機器學習模型,用於對數據進行劃分和分類。EFTEETC-電子工程專輯
EFTEETC-電子工程專輯
圖6:臉部訓練方塊圖(來源:eInfochips)EFTEETC-電子工程專輯
SVM廣泛用於諸如臉部檢測、影像分類、手寫識別等應用。可以將SVM模型視為使用超平面隔離多個類的點空間。EFTEETC-電子工程專輯
什麼是定向梯度直方圖(HOG)?HOG是通常用於對象檢測的特徵描述符號,在行人檢測應用上也廣為人知。HOG依賴於影像內對象的屬性而擁有強度梯度或邊緣方向的分布。在每個區塊的影像內計算梯度。區塊被認為是像素網格,其中梯度由區塊內像素強度的變化幅度和方向構成。EFTEETC-電子工程專輯
EFTEETC-電子工程專輯
圖7:具HOG特徵的臉部樣本(來源:eInfochips)EFTEETC-電子工程專輯
在當前示例中,個人的所有臉部樣本影像被饋送到特徵描述符號擷取算法;即HOG。描述符號是影像的每個像素所產生的梯度向量。每個像素的梯度由大小和方向組成,使用以下公式計算:EFTEETC-電子工程專輯EFTEETC-電子工程專輯
在當前示例中,Gx和Gy分別是像素強度變化的水平和垂直分量。大小為128x144的窗口用於臉部影像,因為它與人臉的一般寬高比相匹配。描述符號是在具有8×8維度的區塊上計算的。在8×8區塊上每個像素的這些描述符號值被量化為9個區間(bin),其中每個區間表示在該區間內梯度和值的方向角,其為具有相同角度的所有像素強度總和。此外,將直方圖在16×16區塊的大小上統一處理,這意味著將4個8×8區塊統一以最小化光條件的影響。該機制減輕了由於光變化導致的精度降低。使用針對多個臉部的幾個HOG向量來訓練SVM模型。EFTEETC-電子工程專輯
視頻序列中的臉部識別分為三個主要任務:臉部檢測、臉部預測和臉部追蹤。臉部捕捉程序執行的任務也在臉部識別期間執行。為了識別所獲得的臉部,必須擷取臉部的HOG特徵向量。然後在SVM模型中使用該向量來確定具有每個標籤的輸入向量之匹配分數。SVM返回具有最高分數的卷標,這表示對訓練臉部資料內最接近匹配的置信度。EFTEETC-電子工程專輯
EFTEETC-電子工程專輯
圖8:臉部識別流程方塊圖(來源:eInfochips)EFTEETC-電子工程專輯
計算匹配分數的任務需要大量的運算。因此,一旦被檢測和識別到,就需要追蹤影像中的標記臉部,以減少未來訊框中的運算量,直到臉部最終從視頻中消失。在所有可用的追蹤器中,使用Camshift追蹤算法可產生最佳的臉部識別結果。EFTEETC-電子工程專輯
本文採用的實際範例應用是在視頻管理系統中使用臉部識別存取管理和分析。在該計劃中,艾睿(Arrow)旗下子公司eInfochips的一支團隊設計並實施了一個帶有臉部識別功能的視頻管理系統,用於檢測和識別多個IP攝影機饋送的人臉。該設置部署在製造業中,其中攝影機安裝在多個建築物中的不同位置,並且使用區域網路(LAN)互連。EFTEETC-電子工程專輯
該團隊為該網絡開發並安裝了完整的視頻管理解決方案,為安全部門賦予視頻串流、透過視頻分析提供警報以及訪客身份驗證。該視頻管理系統中的臉部識別服務用於識別來自攝影機實時饋送的人臉,並產生系統事件,以觸發員工和訪客到場所的認證過程。此外,這些事件包括諸如識別時間、人名、人在地圖上的位置等細節。然後使用視頻管理系統內的用戶接口客戶端分析來自資料庫的這些事件。EFTEETC-電子工程專輯
在現代監控和安全應用方面,臉部識別扮演著非常重要的作用。透過應用本文中描述的方法,可以獲得準確的算法和高質量的臉部識別結果。此外,藉助HOG和SVM模型,即使在包含複雜背景的場景中,也可以在識別人臉和分析臉部特徵方面實現高性能。EFTEETC-電子工程專輯
EFTEETC-電子工程專輯
EFTEETC-電子工程專輯
關注最前沿的電子設計資訊,請關注「電子工程專輯微信公眾號」EFTEETC-電子工程專輯