版權聲明:Davidwang原創文章,嚴禁用於任何商業途徑,授權後方可轉載。
在AI物體檢測識別領域,最先研究的是人臉檢測識別,目前技術發展最成熟的也是人臉檢測識別。人臉檢測識別已經廣泛應用於安防、機場車站閘機、人流控制、安全支付等衆多社會領域,也廣泛應用於直播特效、美顏、Animoji等娛樂領域。
(一)人臉檢測概念
人臉檢測(Face Detection)是利用計算機在數字圖像或視頻中自動定位人臉的過程,人臉檢測不僅檢 測人臉在圖像視頻中的位置,還應該檢測出其大小與方向(姿態)。人臉檢測是有關人臉圖像分析應用的 基礎,包括人臉識別和驗證、監控場合的人臉跟蹤、面部表情分析、面部屬性識別(性別、年齡、微笑、 痛苦)、面部光照調整和變形、面部形狀重建、圖像視頻檢索等等。這幾年,隨着神經網絡的發展,人臉 檢測成功率與準確率大幅度提高,並逐漸開始實用化,如機場火車站人臉驗票、人臉識別身份認證等等。
人臉識別(Face Recognition)是指利用人臉檢測技術確定兩張人臉是否對應同一個人,人臉識別技術 是對人臉檢測技術的擴展和應用,也是很多其他應用的基礎。目前,ARCore 僅提供人臉檢測,而不提供人 臉識別功能。
人臉跟蹤(Face tracking)是指將人臉檢測擴展到視頻序列,跟蹤同一張人臉在視頻序列中的位置。理 論上來講,任何出現在視頻中的臉都可以被跟蹤,也就是說,在連續視頻幀中檢測到的人臉可以識別爲同 一個人。人臉跟蹤不是人臉識別的一種形式,它是根據視頻序列中人臉的位置和運動進行推斷人臉是否爲 同一人的技術。
人臉檢測屬於模式識別的一類,但人臉檢測成功率受到很多因素的影響,影響人臉檢測成功率的因素主要有下表 中所述情形。
影響因素 | 描述 |
---|---|
圖像大小 | 人臉圖像過小會影響檢測效果,人臉圖像過大會影響檢測速度,圖像大小反映在實際應用場景 就是人臉離攝像頭的距離。 |
圖像分辨率 | 越低的圖像分辨率越難檢測,圖像大小與圖像分辨率直接影響攝像頭識別距離。目前 4K 攝像 頭看清人臉的最遠距離是 10 米左右,移動手機檢測距離要更小一些。 |
光照環境 | 過亮或過暗的光照環境都會影響人臉檢測效果。 |
模糊程度 | 實際場景主要是運動模糊,人臉相對於攝像頭的移動經常會產生運動模糊。 |
遮擋程度 | 五官無遮擋、臉部邊緣清晰的圖像有利於人臉檢測。有遮擋的人臉會對人臉檢測成功率造成影響。 |
採集角度 | 人臉相對於攝像頭角度不同也會影響人臉檢測效果。正臉最有利於檢測,偏離角度越大越不利於檢測。 |
隨着人工智能持續發展,在全球信息化、雲計算、大數據的支持下,人臉檢測識別技術也會越來越成 熟,同時應用面會越來越大,可以預見,由以人臉檢測爲基礎的人臉識別將會呈現網絡化、多識別融合、 雲互聯的發展趨勢。
(二)人臉檢測技術基礎
人頭部是一個三維結構體,普通在描述人體頭部時採用歐拉角來精確的描述頭部的姿態,這裏的歐拉角源自於笛卡爾左手座標系,並規定繞 Y 軸逆時針旋轉角度爲正,繞 Z 軸順時針旋轉角度爲正,如下圖所示。在人臉檢 測中,通常把繞 Y 軸旋轉叫做 y 歐拉角,繞 Z 軸旋轉叫 r 歐拉角,我們平時做的搖頭動作就是 y 歐拉角, 而偏頭的動作就是 r 歐拉角,如下圖2 所示,繞 X 軸旋轉在人臉檢測中通常很少用到。
人臉檢測的複雜性之一就是人體頭部是一個三維結構體,且是一個動態的三維結構體,攝像機捕捉到 的人臉很多時候都不是正面,而是有一定角度且時時處於變化中。當然,人臉檢測的有利條件是人臉有很 多特徵,如下圖所示,可以利用這些特徵做模式匹配。但在很多人臉檢測技術中(包括ARCore),人臉特徵並不是人臉 輪廓檢測的前提,換句話說,人臉檢測是獨立於人臉特徵的,且通常是先檢測出人臉輪廓再進行特徵檢測, 因爲特徵檢測需要花費額外的時間,會對人臉檢測效率產生影響。
人臉具有對稱性,人臉特徵會分佈在 Y 軸兩側一定角度內,通常來說,人臉特徵分佈情況符合下表所示規律。
Y 歐拉角 | 人臉特徵 |
---|---|
小於-36 度 | 左眼、左嘴角、左耳、鼻底、左臉頰 |
-36 度至-12 度 | 左眼、左嘴角、鼻底、下嘴脣、左臉頰 |
-12 度至 12 度 | 左嘴角、右嘴角、上下嘴脣、鼻底 |
12 度至 36 度 | 右眼、右嘴角、鼻底、下嘴脣、右臉頰 |
大於 36 度 | 右眼、右嘴角、右耳、鼻底、右臉頰 |
人臉檢測不僅需要找出人臉輪廓,還需要檢測出人臉姿態(包括人臉位置與方向)。爲了解決人臉姿 態問題,一般的做法是製作一個三維人臉正面“標準模型”,這個模型需要非常精細,因爲它將影響到人 臉姿態估計的精度。在有了這個三維標準模型之後,對人臉姿態檢測的思路是在檢測到人臉輪廓後對標準 模型進行旋轉,以期標準模型上的特徵點與檢測到的人臉特徵點重合。從這個思路我們可以看到,對姿態 檢測其實是個不斷嘗試的過程,然後選取特徵點吻合得最好的標準模型姿態作爲人臉姿態。簡單的說就是 先製作一個人皮面具,努力嘗試將人皮面具套在人臉上,如果成功則人皮面具的姿態必定是人臉的姿態。
如前所述,雖然人臉的結構是確定的,還有很多特徵點可供校準,但由於姿態和表情的變化、不同人 的外觀差異、光照、遮擋等影響,準確的檢測處於各種條件下的人臉仍然是較爲困難的事情。幸運的是, 隨着深度神經網絡的發展,在一般環境條件下,目前人臉檢測準確率有了非常大的提高,甚至在某些條件 下超過了人類。
參考文獻
1、《ARCore之路-Unity開發從入門到實踐》