人臉關鍵點的應用場景及重難點解析丨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 開發者社群共同發起的開發者互動創新實踐活動。

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

關注「聲網開發者」

關注實時互動領域的

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

☟☟