人臉關鍵點的應用場景及重難點解析丨Dev for Dev 專欄

語言: CN / TW / HK

本文為 「Dev for Dev 專欄」 系列內容,作者為聲網視頻組 AI 算法工程師 周世付。

人臉檢測、人臉關鍵點檢測,是計算機視覺的基礎算法。許多酷炫應用背後,例如美顏、貼紙、人臉驅動 avatar ,是依賴着人臉檢測、人臉關鍵點檢測的算法。

人臉檢測的常規做法,是從圖像中找到人臉的位置並採用矩形框的方式將人臉標示出來。由於人臉檢測提供的信息比較粗糙,要想獲取更精細、詳細的人臉信息,比如,人臉的臉型、嘴巴、眼睛、鼻子的位置和幾何形狀,就需要進行人臉關鍵點檢測。

0 1

人臉關鍵點檢測的技術原理

人臉關鍵點檢測,也稱為人臉關鍵點定位或者人臉對齊,是在人臉檢測獲取到人臉在圖像中具體位置的基礎上,進一步定位人臉器官的位置。

這些人臉器官位置信息,是一些具有明確語議定義的離散點,因此稱為人臉關鍵點。通常,人臉關鍵點定義在人臉的臉頰、嘴巴、眼睛、鼻子和眉毛區域,將人臉關鍵點連接起來,能夠描繪人臉的幾何特徵。

人臉關鍵點的類型,可劃分為 2D 關鍵點和 3D 關鍵點。2D 關鍵點,輸出的是人臉關鍵點的 x、y 的座標信息。常用的 2D 關鍵點數量 5 點、68 點、106 點,隨着技術的發展及應用對人臉關鍵點提出更高要求,也出現了 280 點甚至是 1000 點的人臉關鍵點方案。

3D 關鍵點,則輸出關鍵點的 x、y、z 的座標信息。3D 關鍵點的檢測,是採用 3DMM 模型,重建人臉的 3D mesh,再將 3D mesh 投射到 2D 的圖像空間。由於 3D 關鍵點比 2D 關鍵點多了深度信息,在人臉姿態估計、3D 物體穿戴方面,優勢較為明顯。

利用人臉關鍵點,可以定位嘴巴、眼睛、鼻子、眉毛的位置,以及推斷臉型、嘴巴、眼睛的幾何形態和頭部的姿態。在不同的表情、姿態、光照和遮擋條件下,準確、快速、穩定地定位人臉關鍵點,是一項極具挑戰的任務。

0 2

人臉關鍵點檢測的算法演進

人臉關鍵點檢測的方法分為傳統機器學習方法和深度學習方法。傳統機器學習的方法,典開的代表包括 ASM( Active Shape Model )、AAM( Active Appearance Models )。

ASM 是由 Cootes 於 1995 年提出的經典人臉關鍵點檢測算法,ASM 是一種基於點分佈模型的算法,外形相似的物體的身體形狀,可通過若干關鍵點的座標依次串聯形成的一個形狀向量表示。ASM 算法需要人工標定的方法預先標定訓練集,經過訓練獲得形狀模型,再通過關鍵點的匹配實現特定物體的匹配。ASM 算法的優點是模型簡單,架構清晰,對輪廓形狀有較強的約束,但近似於窮舉搜索的關鍵點定位方式,限制了其運算的效率。

AAM 是 ASM 的進階版,在形狀約束的基礎上,加入整個臉部的紋理特徵。傳統機器學習的方法,檢測的速度相對較快,但關鍵點檢測的精度有限,難以滿足應用的要求。

深度學習方法,在關鍵點檢測的精度上,碾壓傳統機器學習方法。基於深度學習的人臉關鍵點檢測方法,大致可分為兩個流派:熱力圖方法和和直接回歸方法。熱力圖方法,是每個關鍵點生成一個熱力圖,關鍵點處的值最大,離關鍵點越遠,值越小。熱力圖方法,關鍵點檢測的精度高,並可判斷關鍵點是否被遮擋,對遮擋的魯棒性較好。由於熱力圖大小通常是輸入圖像的 1/4,對內存的佔用大。檢測關鍵點的數量越多,內存佔用越大,限制了熱力圖方法在端側設備上的應用。直接回歸方法,通過卷積神經模型預測關鍵點的座標,內存佔用小,關鍵點檢測的精度較熱力圖方法差一些。由於直接回歸方法內存佔用小,檢測速度快,在端側設備上的應用前景廣闊。

0 3

人臉關鍵點的應用

人臉關鍵點的應用領域十分廣泛,主要應用方向可劃分為 4 類:人臉姿態對齊、人臉美顏、人臉貼紙和 avatar 模型驅動。

人臉姿態對齊,在人臉識別領域,同一個 ID 的人臉在不同姿態下,人臉的相似度變化較大,人臉識別的精度不同。為了提高人臉識別的精度,需要將不同姿態的人臉,對齊到一箇中立的姿態。這個對齊的操作,依賴人臉關鍵點提供的位置信息。人臉姿態對齊,對關鍵點的精度和數量,要求不高,通常只需要 5 個關鍵點,定位眼睛、鼻子和嘴巴。

美顏,作為當今社交 app 中不可或缺的基本功能,發個朋友圈、開個直播前,不需要花時間化個粧,只需打開美顏,即可瞬間提升個人的顏值,將自己最美的一面顯現給朋友或觀眾。美顏的種類繁多,五花八門,大致可以分為大類:1) 美型,調整臉頰、眼睛的形狀,即將圓臉調整為修長的瓜子臉,把眼睛調大,達到大眼、瘦臉的效果;2) 磨皮,目的是將臉部的皺紋、痘印、斑點去除,提升皮膚的平滑度和光澤度。臉部不同區域,對磨皮程度的需求不一樣,例如眼睛區域需保持清晰通透,磨皮程度要低一些或不磨皮。3) 美粧,是將化粧品的效果,融合到用户的臉上,以視頻或圖像的方式,呈現給用户,從而可讓用户無需到線下門店體驗試粧效果,線上就能體驗到化粧品在自己臉上的效果。美顏,對人臉關鍵點檢測的精度和數量,要求很高。在關鍵點精度方面,對眼睛、嘴脣的定位精度尤為高;關鍵點數量方面,則是越多越好。

貼紙,是將電子的道具,如眼鏡、帽子、假髮、皇冠、項鍊、耳環等,“穿戴”到用户的臉上或頭部,為用户定製個性化的形象。手機相機、社交 app 提供了各種各樣的道具,供用户選擇。

貼紙,對人臉關鍵點的要求,沒有美顏高,但高精度的人臉關鍵點,對貼紙的效果,是有幫助的。

人臉驅動 avatar,近年來元宇宙、虛擬人、卡通人物的概念層出不窮,其背後的技術本質是如何將自然圖像中真實人臉的表情、姿態等信息,遷移到 avatar 模型,驅動 avatar 維妙維肖地“模仿”真人。人臉關鍵點,作為有效的人臉信息載體,可進一步提煉出符合 avatar 模型的語議信息,從而驅動 avatar。人臉驅動,對人臉關鍵的要求是最高的。人臉關鍵點的分佈,除了定位臉頰、眉毛、眼睛、鼻子、嘴巴外,還要求定位面頰部位。另外,人臉關鍵點定位越精準,捕捉人臉的微表情越精細,avatar 才越生動。

0 4

人臉關鍵點算法面臨的挑戰

人臉關鍵點檢測算法,在實際應用過程中,面臨着諸多的挑戰,需要解決的問題,具體表現為:

1、在不同人臉姿態、光照條件、臉部被遮擋時,關鍵點定位要準確;

2、連續視頻幀檢測,幀間關鍵點的抖動,要在可控範圍或被消除;

3、檢測速度夠快,可在端側設備實時運行。

為了達到更準確的關鍵點定位,學術界通常採用基於熱力圖的方法,採用更大更深的模型,但其代價是模型對算力要求高,無法在端側設備實時運行。其次,為了滿足不同條件下,關鍵點定位準確,業界通常會自建大規模的訓練集。

為了滿足美顏、貼紙、avatar 驅動應用對人臉關鍵點的精度的要求,聲網自建了大規模的人臉關鍵點數據集。人臉關鍵點的數據集建立過程中,充分考慮了以下幾個因素:

1、在數據採集設備方面,覆蓋了各種類型手機的前置/後置攝像頭、不同類型的筆記本攝像頭和 USB 攝像頭。

2、不同光線條件下采集人臉圖像,包括強光、暗光、背光等條件。

3、多個角度、姿態、變換遠近拍攝人臉圖像。

4、穿戴不同的遮擋物進行人臉圖像拍攝,包括眼鏡、口罩、帽子,以及手部遮擋嘴巴、臉頰、眼睛。

5、人工標註人臉關鍵點,並對標註精度進行二次人工審核,確保人工標註的關鍵點是準確的。

0 5

聲網人臉關鍵點算法

聲網自研的人臉關鍵點算法,利用深度學習技術,設計了輕量級模型,滿足移動端設備實時運行的要求,其具備如下幾個特點:

1、支持 106 個關鍵點的檢測,關鍵點覆蓋了臉頰、嘴巴、鼻子、眼睛、眉毛區域,能夠滿足大多數應用對關鍵點的點數要求。

2、推理速度快,在移動端設備可實時。結合人臉檢測和人臉關鍵點檢測的推理,耗時控制在 10ms 以內,為其它實時應用提供富餘的時間餘量。

3、支持人臉姿態的歐拉角預測。

4、支持眼球跟蹤。

5、支持關鍵點防抖功能,保證在視頻中保持關鍵點既精準又穩定。

聲網人臉關鍵點算法,為美顏、貼紙、avatar 等應用提供基礎的技術能力,結合聲網的 RTC 技術,可為開發者提供更加完備的解決方案。點擊底部閲讀原文即可進一步瞭解詳情。

(正文完)

一個小彩蛋

☟☟

READING

近期好文

安全合規 SDK 教程 音頻的價值

軟件亂象 質量體系建設 聲網VQA

依圖 百度飛槳 數美

自動化測試 語音識別SDK 黑盒測試

關於 Dev for Dev

Dev for Dev 專欄全稱為 Developer for Developer,該專欄是聲網與 RTC 開發者社區共同發起的開發者互動創新實踐活動。

透過工程師視角的技術分享、交流碰撞、項目共建等多種形式,匯聚開發者的力量,挖掘和傳遞最具價值的技術內容和項目,全面釋放技術的創造力。

關注「聲網開發者」

關注實時互動領域的

技術實踐 行業洞察 人物觀點

☟☟