人臉關鍵點的應用場景及重難點解析丨Dev for Dev 專欄
本文為 「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 實現 iOS 平臺音視訊通話和虛擬背景功能
- 在 Flutter 多人視訊中實現虛擬背景、美顏與空間音效
- 基於聲網 Flutter SDK 實現互動直播
- 保姆級教程!基於聲網 Web SDK實現音視訊通話及螢幕共享
- 基於聲網 Flutter SDK 實現多人視訊通話
- 把 ChatGPT 加入 Flutter 開發,會有怎樣的體驗?
- 如何基於開源 demo 在 Web 端實現一個多人數獨遊戲
- 《鵝鴨殺》爆火,一文帶你瞭解如何實現頂流社交遊戲
- 聲網許振明:RTC 場景 UHD 視訊應用和探索
- RTE 領域的發展,為視訊編解碼標準帶來哪些新變化?丨Dev for Dev 專欄
- 人臉關鍵點的應用場景及重難點解析丨Dev for Dev 專欄
- 糾刪碼在實時視訊流中的應用丨Dev for Dev 專欄
- 音訊技術的下一個“熱點”,會出現在哪個領域?丨一期一會 • 音訊工程師專場
- 一片紅的泛娛樂出海,藍色在哪裡?
- 聲網“失聲”的危機
- 百鍊成鋼 —— 聲網實時網路的自動運維丨Dev for Dev 專欄
- 桌面軟體開發框架大賞
- 基於物件的實時空間音訊渲染丨Dev for Dev 專欄
- 即時通訊場景下安全合規的實踐和經驗
- 基於 Web SDK 實現視訊通話場景 | 聲網 SDK 教程