「硬核」實操如何擁有一個自己的數字人模型

京東雲技術團隊發表於2023-04-03

作者:京東健康 陳剛

一、前言

近年來,隨著人工智慧技術,VR,元宇宙等技術的發展,數字人(Digital Human)逐漸成為研究的熱點之一,數字人是指透過計算機技術模擬出的具有人類外表,動作和語言能力的虛擬人物,具體可以應用到電影、遊戲、虛擬現實、智慧客服帶貨主播等多個領域。

本文大致分為三個章節:

  1. 第一部分會介紹常用技術以及簡介,以及自己用到構建一個自己虛擬數字人用到的3D引擎和三維軟體

  2. 第二部分會詳細描述生成細節,透過照片建模,建立模型,新增細節,新增表情,最佳化效果,接入場景,最終效果

  3. 第三部分總結本篇內容

從預見未來到遇見未來,讓我們開始,向上吧技術人!!!

二、虛擬數字人技術

要聊需要那些技術,先聊需要那些步驟?

收集資料:首先需要收集自己的資料,包括照片、影片、聲音等,這些資料將成為數字人的基礎。

• 人臉檢測:利用計算機視覺技術對照片進行處理,檢測出其中的人臉。可以使用已有的人臉檢測演算法,例如OpenCV、Dlib等。

人臉識別:對於檢測出來的人臉,需要利用人臉識別技術對其進行識別和分析,從而獲取人臉的各種特徵和資訊。可以使用已有的人臉識別演算法,例如FaceNet、VGGFace等。

3D建模技術:數字人是一種三維模型,因此需要掌握3D建模技術。這包括了掌握3D建模軟體的使用,如Blender、Maya、ZBrush等。

• 最佳化細節:最佳化數字人的各種細節,包括皮膚紋理、髮型、服裝等,讓數字人更加真實、生動。

• 材質和紋理製作技術:數字人需要具有逼真的材質和紋理,因此需要掌握材質和紋理製作技術。這包括了掌握材質和紋理製作軟體的使用,如Substance Painter、Photoshop等。

動畫製作技術:數字人需要具有動態的動作和表情,因此需要掌握動畫製作技術。這包括了掌握動畫製作軟體的使用,如Unity、Unreal Engine等。

以下文字內容較多,先放一個自己建好的模型

1、收集資料或者生成圖片

• Photoshop、相機:這部分忽略一下,哈哈哈

Stable DiffusionAI影像生成工具,一個基於Latent Diffusion Models(潛在擴散模型,LDMs)的文圖生成(text-to-image)模型,生成圖片的原理是透過模擬穩定擴散過程並生成相應的資料,然後將資料視覺化展示為圖片,以幫助使用者更好地理解實驗結果和資料特徵

ChatGPT:OpenAI團隊ChatGPT-4O開發了一種新的技術,使ChatGPT也可以生成圖片。這種技術被稱為DALL·E(即“Drawing Artificially with a Learned Language Model and a Encoder”),它結合了語言模型和影像編碼器的能力,能夠根據給定的文字描述生成對應的圖片。

2、人臉檢測和識別

OpenCV:是一個用於計算機視覺的開源庫,它提供了許多常用的計算機視覺演算法和工具,如影像處理、特徵提取、物體檢測、人臉識別、跟蹤等。OpenCV支援多種程式語言,包括C++、Python等。

Dlib:是一個C++庫,它提供了用於機器學習、影像處理、計算機視覺等領域的演算法和工具。其中最知名的功能是人臉識別,它基於深度學習和傳統的計算機視覺技術,並提供了人臉對齊、人臉特徵提取等功能。

FaceNet:是由Google開發的一個深度學習演算法,用於將人臉影像轉換為高維向量表示,從而實現人臉識別。FaceNet使用了三個主要元件:卷積神經網路、三元組損失函式和線上學習方法,這些元件使得FaceNet能夠在大規模人臉識別任務中達到很高的準確率。

VGGFace:是由牛津大學的研究團隊開發的人臉識別演算法,它基於深度卷積神經網路,並使用了許多卷積層和池化層來提取人臉影像的特徵。VGGFace包含了兩個模型:VGGFace和VGGFace2,其中VGGFace是一個較早的模型,而VGGFace2是一個新的模型,它在大規模人臉識別任務中具有更好的效能。

3、3D建模技術

Blender:是一個用於三維建模、動畫、渲染和互動式應用程式開發的開源軟體。它支援多種三維物件的建立和編輯,包括多邊形網格、NURBS曲線、體積網格等,並提供了豐富的材質和紋理編輯器,可以幫助使用者建立出逼真的場景和角色。

Metashape:前身為PhotoScan)是一個用於三維重建和地形建模的商業軟體。它可以根據照片生成高精度的數字模型,並提供了多種渲染選項和工具,如紋理對映、貼圖、相機校準等。Metashape還可以將生成的模型匯出到其他軟體中進行後續處理和應用。

Maya:是一款專業級的三維建模和動畫軟體,廣泛用於電影、電視、遊戲等領域。它提供了豐富的建模和動畫工具,包括多邊形網格、NURBS曲線、動力學模擬、粒子系統等,並支援多種渲染引擎,如Arnold、V-Ray等。

ZBrush:是一款專業級的數字雕刻軟體,用於建立高精度的三維模型和角色。它提供了多種繪畫和雕刻工具,包括多邊形建模、紋理對映、雕刻筆刷等,並支援實時預覽和互動式渲染。

LayaAir:是一個用於Web、移動和小遊戲開發的HTML5引擎。它提供了多種功能和工具,如3D渲染、物理引擎、GUI編輯器等,可以幫助使用者建立出高效、高質量的Web應用和遊戲。LayaAir還支援多種開發語言,包括JavaScript、TypeScript等。

4、動畫製作技術

Unity3D:Unity3D是一款實時3D互動內容創作和運營平臺,支援多種平臺和裝置,包括PC、移動裝置、虛擬現實和擴增實境等。Unity3D提供了強大的編輯器和工具,支援C#和UnityScript等多種程式語言,可用於遊戲開發、AR/VR應用開發等。

Unreal Engine: Unreal Engine是一款由Epic Games開發的3D遊戲引擎,同樣支援多種平臺和裝置,包括PC、主機、移動裝置、VR和AR等。Unreal Engine提供了強大的編輯器和工具,支援C++和藍圖等多種程式設計方式,可用於遊戲開發、建築視覺化、虛擬展覽等。

CryEngine:CryEngine是一款由Crytek開發的3D遊戲引擎,同樣支援多種平臺和裝置,包括PC、主機、移動裝置、VR和AR等。CryEngine提供了強大的編輯器和工具,支援C++和Lua等多種程式設計方式,可用於遊戲開發、建築視覺化、虛擬展覽等。

Godot:Godot是一款免費、開源的3D遊戲引擎,支援多種平臺和裝置,包括PC、移動裝置、Web和VR等。Godot提供了強大的編輯器和工具,支援GDScript和C#等多種程式語言,可用於遊戲開發、AR/VR應用開發等。

部分軟體圖示

除了以上技術應該還有很多技術,歡迎大家熱烈討論和在評論區補充?

三、構建一個自己的數字人—小陳

第一步 用自己的照片生成自己的頭像模型

有以下三種辦法

1、使用 https://avatarsdk.com/ 線上製作,這個H5是基於WebGL的OpenCV技術構建,可以傳一張照片(高p的)生成頭的模型,也可以生成頭和身體模型。

為了不影響建模,一般選擇禿頭,匯出數字人頭部模型

2、使用Polycam軟體應用上傳生成匯出

拍照時自己站著不要動,我們做數字人需要頭就可以,拍照的仰角和俯角傾斜,拍40張左右即可

匯入Blender進行對點雲部分刪除部分,分析建模,然後匯出數字人頭部模型

3、透過照片,格式工廠,在Metashape構建模型 對點雲進行處理 匯出數字人頭部模型,原理是一樣的

以上方式根據具體的需求來,第二三種方式更逼真。

第二步 匯入模型到UE5中,並安裝外掛

安裝 MetaHuman外掛(數字人)、 Bridge外掛(建模)、LiveLink外掛(互動動作)。外掛都裝好後,重啟虛幻引擎

1、匯入我們第一步的模型,建立MetaHuman實體,並給實體命名,注意這個名字就是你數字人的名字

圖1

2、雙擊進入,面部選擇網格體也就是我們第一步生成的頭像模型,並給小人選擇合適身體

繼續點選提升幀,追蹤活動幀,效果如下圖

繼續點選MetaHuman本體解算、網格體轉MetaHuman。

3、在UE5中開啟Bridge,登陸一下賬號,只有logo的就是我們的小人了。忽略我設計的禿頂和爆炸頭小陳

選中logo模型,點選START MHC進入MetaHuman Creator網頁, https://metahuman.unrealengine.com/ 進一步加工我們的MetaHuman吧

第三步 調整你的數字人

對骨骼,膚色,頭髮,牙齒,身體,表情動作等進行調整,內容太豐富,建議自己嘗試,放一個眼影小陳,和大鬍子小陳

第四步 下載數字人並載入到虛幻引擎中

1、開啟Bridge點選Down

2、新增小人到專案中後專案中多了一個MetaHuman的資料夾,移動到你的場景吧

3、最終效果圖,只下載好了(網速不好)禿頭小陳實在不好放大,下次做個好看的在更新下文章吧。

四、總結和暢想

本文介紹瞭如何打造一個數字人,描述業內常用的一些軟體和技術棧,並實戰打造一個以自己為模型構建的虛擬數字人,並詳細描述了全過程。總的來說數字人具備了逼真的人類外貌、身體動作和語言能力的虛擬人物,不同的製作方法和技術可以實現不同的效果和應用,選擇合適的方法和技術需要根據具體需求和專案情況來確定。

大家將就看完了,模型還是醜醜的?,下一步持續提升,讓數字人擁有智慧,擁有互動,擁有顏值(畢竟顏值才是正義)。

關於數字人如何建立和相關技術就介紹到這裡啦,我也是剛入門,有不對的地方和需要補充的,歡迎大家指正,希望對大家所有幫助,也歡迎多多點贊收藏?

最後關於數字人的應用場景和結合實際的落地效果,大家有好的idea也可以一起討論。

五、團隊介紹

我們是網際網路醫療服務團隊,主要是在醫藥閉環流程中,承接醫患兩端服務平臺,包括派單、問診、處方等垂直領域業務,團隊一直致力於在醫療行業中探索和應用各種新興的科技手段。目前主要在醫學對話,遠端醫療、醫學影像診斷等方面進行探索和嘗試,相信可以為醫生和患者帶來更好的醫療服務體驗。

相關文章