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

2023-04-03 12:01:33

作者:京東健康 陳剛

一、前言

近年來,隨著人工智慧技術,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應用開發等。

部分軟體圖示

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