tft每日頭條

 > 生活

 > 各大捏臉代碼分享

各大捏臉代碼分享

生活 更新时间:2024-09-05 12:14:06
一、AI"卷"進實時互動

2021年,元宇宙概念席卷全球,國内各大廠加速賽道布局,通過元宇宙為不同的應用場景的相關内容生态進行賦能。針對“身份”、“沉浸感”、“低延遲”、“随時随地”這四個元宇宙核心基礎,ZEGO 即構科技基于互動智能的業務邏輯,提出并落地了 ZegoAvatar 解決方案,将 AI 視覺技術應用至虛拟形象,完成了業務和技術的無縫銜接。

各大捏臉代碼分享(面由AI生)1

圖1:Avatar 産品 AI 能力矩陣

ZegoAvatar 基礎能力包括:面部表情随動、語音驅動表情、AI 人臉特征識别(AI 捏臉)、拍照捏臉等,涉及的 AI 技術點包括人臉檢測、人臉跟蹤、人臉關鍵點檢測、頭部姿态檢測、3D人臉重建、AI 特征識别等。

上次我們講述了關于 ZegoAvatar 的面部表情随動技術解析,今天我們将和大家一起再探讨下關于 ZegoAvatar 中的 AI 捏臉部分

二、捏臉技術的發展曆程

首先來講一下“捏臉”的概念,“捏臉”就是用系統設定的元素組合成為虛拟角色定制出個性化的形象,比如通過人臉、眉毛、眼睛、發型等元素的重新組合,搭配成一張頭像作品。

1、關于捏臉的發展過程

2005 年,國内出現了首款可以進行捏臉的遊戲《完美世界》。在遊戲中你可以自定義角色形象,捏出你想要的造型。

當然,那個時候還叫“形象自定義系統”,僅僅可以滿足一些比較簡陋、簡單的五官替換功能,雖然那時,多半的玩家也隻是先選擇系統庫裡的臉型,然後再選擇發型,之後再選擇五官模型,但這新奇的模式不僅給玩家帶來了全新的遊戲體驗,也為後來遊戲中“捏臉”系統的蓬勃發展奠定了基礎。

2013 年《劍靈》B&S 又将捏臉的玩法進行了普及,它還有一個非常好的捏臉導入功能,你可以直接将别人的捏臉數據導入你創建的人物中,這意味着捏臉的成本非常低。

2018 年國内新推出的熱門遊戲《逆水寒》,提供了可調動面部幾十個肌肉群、通過排列組合綻放出無數種可能性的捏臉系統。

2、我們為什麼要“捏臉”?

關于我們為什麼要“捏臉”這個問題,我們可以從審美标準、代入感和個性化三個方面來思考:

通過對比不同世代的審美标準,我們可以發現這樣一個規律:随着時代的不斷進步,人的審美觀、對美的要求都在不斷地發生改變。對于服飾、配色的追求是如此,對于遊戲品質的追求亦是如此。

無論是遊戲還是虛拟社交,最重要的無疑是“代入感”,而對這一點感官最為直觀的,那就是自己的玩家形象,因此一個強大捏臉的遊戲,給玩家的代入感是無與倫比的。

捏臉也是寄托個性化表達的載體之一。如果你想以高冷酷炫的外表示人,那你就給自己捏一個霸道總裁臉;如果你希望對外界呈現溫柔可人的一面,那你不妨把自己的虛拟形象塑造得柔美端莊。

當下很多玩家的注意力已經從在遊戲裡的“炫實力”轉移到了“炫酷”、“炫特色”上面。無論打開哪款時下流行的網遊,玩家花在裝扮、美化上的錢絕對不會比提升能力來得少。一張獨具特色的虛拟角色面孔在虛拟世界中已然成為社交的第二張名片,而這也成為了與虛拟世界連接的橋梁

三、ZegoAvatar 捏臉效果展示

向大家展示一下 ZegoAvatar 的拍照捏臉效果:

各大捏臉代碼分享(面由AI生)2

圖2:捏臉效果

說明:

1、實驗數據來源均為内部收集和付費收集獲得的,不涉及用戶隐私;

2、當您在使用我們産品 Avatar SDK 功能時,我們需要本地處理您的面部特征值信息、聲音特征信息,以實現捏臉、表情随動、聲音驅動功能場景。您需要授權我們使用攝像頭、麥克風權限,關閉後僅影響對應功能,不影響應用其他功能。我們僅會在您的本地設備中離線處理相關面部特征值信息、聲音信息,不會上傳、後台存儲或與第三方共享該種信息。

四、整體捏臉流程解析

在 ZegoAvatar 的技術方案中,拍照捏臉是通過送入一張人臉照片來得出該照片中人的性别、年齡、發型、臉型、眼睛大小、眉毛位置、眉毛長短、眉毛類型、是否戴眼鏡等信息來給出一個與該頭像最為契合的虛拟形象。

與傳統的捏臉方式不同, ZegoAvatar 拍照捏臉采用了 AI 技術,可實現自動生成自己的虛拟形象,讓每個人的虛拟形象不再千篇一律。下面我們将向大家詳細解讀 ZegoAvatar 捏臉算法大緻流程與整體架構。

1、AI 技術在捏臉中的具體應用

AI 捏臉涵蓋的主要技術有:人臉檢測、人臉對齊,性别分類,發型分類,及眉毛、眼睛人臉五官的屬性分類等。

2、捏臉的大緻流程
  • 通過對輸入圖片的分析獲取對齊後的人臉圖片。人臉對齊後的圖片分 2 種,一種是僅含人臉的圖片(圖片人臉占比100%),另一種是包含完整頭發信息的圖片(人臉占比 25% 左右);
  • 将對齊後的人臉圖片送入性别分類模型中,得出性别;
  • 通過判斷性别來選擇相應的捏臉推理模塊,從而得到虛拟形象編碼(含是否有胡子,臉型、發型等信息);
  • 最後通過虛拟形象編碼生成定制化的虛拟形象。

各大捏臉代碼分享(面由AI生)3

各大捏臉代碼分享(面由AI生)4

圖3:虛拟形象産出過程圖

五、捏臉的效果難點攻克

為了得到最好的捏臉效果,我們在實際研發過程中需要很好的解決以下問題:

  • 數據如何采集
  • 如何保證結果準确
  • 不同用戶在不同使用場景的魯棒性
  • 效果如何保證
1、科學數據的采集

根據數據采集模塊得到人臉屬性數據,并通過數據矯正和增強後訓練得到 AI 表情模型,具體分為以下幾個部分:

a、數據采集:針對業務需求,我們購買和收集了人臉數據約 102 萬張,并經過嚴格标注和驗收;我們為此開發了一套可用于人臉屬性的數據标注軟件,用于獲取人臉的性别、頭發、胡子、是否帶眼鏡、皮膚等級等數據;

b、數據管理:我們還對一些難例在數據集上進行細分,尤其是對面部光線過暗、圖像質量低、人臉角度過大等極端情況的數據進行了分類管理,在訓練時可以對其進行不同的數據處理,如樣本均衡,針對難例類型加入超參數均衡損失計算等在數據上進行訓練優化;

c、數據增強:針對落地場景,設計了定制化的數據增強流程,豐富了訓練數據的模式。

2、模型設計的主要思想

在捏臉推理模塊中的網絡模型搭建上,我們通過試驗結果對比驗證,設計一種性能和精度表現都非常不錯的網絡結構,主要包括提取圖像特征的骨幹網絡和輸出相應虛拟形象編碼的輸出頭。結構圖如下:

各大捏臉代碼分享(面由AI生)5

圖4:網絡結構示意圖

我們嘗試了 Ghostmodel、Mobilenet、Bottleneck、MicroNet 等思想的網絡結構和訓練策略,在反複測試驗證下最終的骨幹網絡是由 CBA、Ghost Bottleneck、MobileVit Block 組成,結構如下:

各大捏臉代碼分享(面由AI生)6

圖5:網絡骨幹(Backbone)示意圖

其中骨幹網絡和輸出頭模塊的具體結構如下:

各大捏臉代碼分享(面由AI生)7

圖6:骨幹網絡和輸出頭模塊結構圖

其中 Ghost Bottleneck 通過“廉價“的操作(DepthwiseConv)獲取“冗餘“的特征圖來實現模型的推理提速,并通過Bottleneck 思想将特征圖的通道進行增加和減少進一步減少了參數量,其結構如下:

各大捏臉代碼分享(面由AI生)8

圖7:Ghost Bottleneck

Transformer,MobileVit Block 可以通過較少的參數獲取各個特征圖中局部的表征信息和特征圖對其他特征圖的全局表征信息,通過特征之間相互“參照”,使得特征的表達更加準确,其結構如下:

各大捏臉代碼分享(面由AI生)9

圖8:MobileVit Block

輸出頭采用的特征共享的結構,使具有相關性的子任務之間相互起促進作用,其結構如下:

各大捏臉代碼分享(面由AI生)10

圖9:輸出頭

就這樣搭建出了我們完整的網絡結構:

各大捏臉代碼分享(面由AI生)11

圖10:完整網絡結構圖

3、精心設計優化方法

設計不同的任務分支并針對類别進行細分,還采用的共享特征的機制利用任務之間的相關性輔助目标任務學習。

損失函數為:

各大捏臉代碼分享(面由AI生)12

在實際訓練時我們不知道各個子任務之間的影響是否都是有效的,為消除多任務之間存在競争關系,我們通過調整梯度,使每個 task 的訓練率相同,從而可以自動平衡多任務 loss function 中的權重。舉個例子,如果任務i收斂的很快,那麼相對于其他子任務這個任務的

各大捏臉代碼分享(面由AI生)13

就應該減小,從而使其他任務對當前網絡産生更大的影響。

總的來說,我們大緻從以下幾個方面進行優化:

a、從網絡設計:

捏臉算法不是一個籠統 end-to-end 的算法,需要從很多維度提取特征進行細節分析。為了減少模型的消耗,我們很多模型都采取多任務輔助監督訓練。中間輔助監督的思想最早在 2014 的 ILSVRC 冠軍模型 Googlenet 中出現,後面在分割網絡 PSPNet 中有借鑒,最近在 ECCV 2020 中提出的 LableEnc,更是說明将 ground-truth 标簽映射到潛在嵌入空間上,作為輔助backbone 訓練的中間監督信息在檢測領域的有效性。結合我們實際任務,我們的多任務輔助監督訓練與上面提及的中間輔助監督不一樣,我們的中間監督不僅僅隻使用 ground-truth,大多時候,我們設計的網絡會使用多個任務協同監督一個主任務。

b、從數據處理:

數據處理,我們會根據我們實際需求,采用不同的數據增強,除此之外,為了減少計算量,在某些任務中,我們還使用重構圖像的策略,X = AS,X 表示原圖像,S 表示重構圖像,A 表示基函數組成的矩陣。

我們的優化準則為:

各大捏臉代碼分享(面由AI生)14

其中,I(x,y) 表示原圖像 X 上的像素,表示基函數矩陣 A 的第 i 個向量,表示 S 中的第 i 個響應值。通過優化準則,我們能夠實現通過感受野響應相對強烈的信息表達整張圖片所有信息。

c、從損失函數

損失函數的設計能夠直接影響網絡收斂的好壞,不同任務的損失函數不同,但其本質就是通過最小化損失函數求得全局最優。我們會通過具體任務定義不同的損失函數,或者在公開損失函數中根據我們需求加懲罰項或約束。

4、完美的捏臉效果

由編碼結果直接生成虛拟形象,可能會出現臉型與五官或者發型“不搭噶“的情況。如何保證定制虛拟形象擁有更高的顔值,也需要依賴整個團隊的配合。

一方面,開發同學在虛拟形象的渲染效果上不斷的調試優化,在膚色的調節、陰影的渲染、毛發的渲染、高光效果上做了很多嘗試;另一方面設計同學為虛拟形象設計的各種貼圖素材,構建了完備的素材庫。例如:眉毛類型、眼睛形狀、睫毛樣式、臉型、膚色等。

在技術不斷鑽研和美學角度審視的碰撞下,這樣才使得 ZegoAvatar 最終的虛拟形象不僅有很高的精細度,還提供了十分豐富的捏臉自由度。

下面從 3 個方面簡單表達捏臉環節的效果:

a、從性别上分析

性别識别,是捏臉最基礎也是最關鍵的環節。因為角度,光照等外界因素,很容易識别錯誤,一旦性别識别錯誤,後面的捏臉程序,就會“越跑越偏”。為了平衡準确率和在移動端實時性,訓練過程中嘗試了很多 tricks,我們的性别識别,在不同國籍不同年齡不同場景不同表情組成的 5萬測試集上,準确率能達到 96.7%。

b、從人臉外觀特征上分析

性别識别結果之後,人臉上的外觀特征識别尤為重要,比如是否戴眼鏡,是否有胡子,胡子分布在哪裡。這些人臉上明顯的外在特征,如果識别不準确,捏出來的效果就會非常假。我們人臉外觀特征模型,包括眼睛,胡子和胡子分布的識别,各維度的準确率分别為眼鏡:99.5%、胡子:96.2%、胡子上下左右分布:95.0%。

c、從頭發維度上分析

頭發分析也是捏臉過程非常重要的一環,并且頭發多個維度都具有多樣性,在頭發分析中,如果識别錯其中一個維度,整體效果就會大大打折扣。我們的頭發分析模型,囊括了 5 種長度,9 種劉海,2 種捆紮方式還有頭發區域 4 種維度的信息,能夠給到渲染模塊非常細粒度的頭發特征,從而渲染出非常逼真的頭型。

ZEGO

ZEGO 即構科技根據 AI 産業發展變化,抓住适合自己技術能力的垂直應用場景,圍繞虛拟社交和在線 KTV 場景核心問題挖掘,為用戶打造個性化的虛拟形象。在制作 AI 捏臉時走了一些彎路,後來我們從圍繞市場玩家的關注熱點,又在整個團隊的不斷探索和驗證、積極尋找突破口下我們的捏臉質量也越來越高。

莎士比亞在《仲夏夜之夢》中借人物之口說過,“想象的東西往往是虛無缥缈的,但在詩人的筆下,它們可以有形、有固有的實質,也可以有名字”。ZEGO Avatar 就如同莎士比亞筆下的詩人一般,為每個人定制個性化的虛拟形象,成功的開啟了進入元宇宙時代的入口

ZEGO 即構科技也将随着相關領域的技術成熟,将打造出賦予新的内涵和意義的數字人。從技術底層為内容開發者賦能,将虛拟技術更直接、更便捷、更高效的交付終端用戶。

未來,我們可通過 AI 模型直接得出捏臉系數,真正做到千人千面

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved