蜜桃av色欲a片精品一区,麻豆aⅴ精品无码一区二区,亚洲人成网站在线播放影院在线,亚洲 素人 字幕 在线 最新

微立頂科技

新聞資訊

創(chuàng)新 服務(wù) 價(jià)值

  元宇宙場(chǎng)景技術(shù)實(shí)踐|實(shí)現(xiàn)“虛擬人”自由

發(fā)布日期:2023/1/29 16:11:37      瀏覽量:

元宇宙場(chǎng)景技術(shù)實(shí)踐|實(shí)現(xiàn)“虛擬人”自由

虛擬形象是虛擬世界的核心資產(chǎn),也是打造元宇宙社交的數(shù)字名片,從虛擬形象為切入點(diǎn),ZEGO Avatar 基于強(qiáng)大的 AI 算法能力,可以為企業(yè)提供多元化風(fēng)格虛擬形象制作及智能互動(dòng)服務(wù),助力企業(yè)打造虛擬形象數(shù)字資產(chǎn),創(chuàng)造多樣的玩法體驗(yàn),支持客戶以相對(duì)較低的門檻快速進(jìn)入元宇宙賽道。

上期內(nèi)容中我們介紹了元宇宙場(chǎng)景下的虛擬直播實(shí)踐流程,本期內(nèi)容我們以 iOS 版本為例來講一講如何捏出千人千面的虛擬形象,助力開發(fā)者快速實(shí)現(xiàn)虛擬形象

前提條件
在實(shí)現(xiàn)基本的 Avatar 功能之前,請(qǐng)確保:

已在項(xiàng)目中集成了 Avatar SDK,詳情請(qǐng)參考 集成 SDK;

已開啟攝像頭權(quán)限。

使用步驟
本節(jié)介紹如何使用 ZegoAvatar SDK 實(shí)現(xiàn)基本的圖像處理功能,API 調(diào)用時(shí)序如下圖:



1 申請(qǐng)鑒權(quán)
ZEGO Avatar 目前使用 在線鑒權(quán) 的方式獲取 License 授權(quán)文件。

1.1 開通 ZegoAvatar 權(quán)限

請(qǐng)先在 ZEGO 控制臺(tái) 創(chuàng)建項(xiàng)目,并申請(qǐng)有效的 AppID 和 AppSign,詳情請(qǐng)參考 控制臺(tái) - 項(xiàng)目管理 中的“項(xiàng)目信息”。

請(qǐng)聯(lián)系 ZEGO 商務(wù)人員,提供自己項(xiàng)目的 Bundle Id,開通相關(guān)權(quán)限。

1.2 獲取參考代碼

請(qǐng)將從 下載 獲取到的示例源碼中的 LicenseHelper 文件夾中的代碼,拷貝到自己的項(xiàng)目下。



修改 ZegoAvatarConfig.h 文件,請(qǐng)使用已獲取的 AppID 和 AppSign 正確填寫,否則示例源碼無(wú)法正常運(yùn)行。


在項(xiàng)目中,選擇 “TARGETS > Signing & Capabilities” 菜單,將 “Bundle Identifier” 設(shè)置為申請(qǐng)權(quán)限時(shí)所提供的 Bundle Id。



1.3 安裝依賴庫(kù)

打開終端,進(jìn)入項(xiàng)目根目錄,執(zhí)行 pod ’YTKNetwork’引入依賴庫(kù);

執(zhí)行 pod install 命令安裝依賴庫(kù)。

1.4 獲取 License

通過 ZGAvatarLicenseHelper 中的 requestLicense 接口,發(fā)起網(wǎng)絡(luò)請(qǐng)求,獲取鑒權(quán) License 字符串。


2 初始化 AvatarService
2.1 初始化 AvatarService 之前,請(qǐng)先導(dǎo)入以下相關(guān)的頭文件,準(zhǔn)備基礎(chǔ)工作。


2.2 導(dǎo)入頭文件后,調(diào)用 initWithConfig 接口,傳入之前獲取到的鑒權(quán) License 字符串,初始化 AvatarService。


2.3 注冊(cè) onStateChange 回調(diào),接收初始化狀態(tài)的相關(guān)回調(diào)通知。


3 創(chuàng)建虛擬形象
注意:在創(chuàng)建虛擬人物形象時(shí),為了簡(jiǎn)化 Character(虛擬人物形象)的初始化、序列化、數(shù)據(jù)緩存、路徑拼接等功能的接入流程,ZEGO Avatar SDK 提供了 ZegoCharacterHelper 類(開源),幫助開發(fā)者快速創(chuàng)建人物虛擬形象,詳情請(qǐng)參考 ZegoCharacterHelper 使用說明。

初始化 AvatarService 后,通過創(chuàng)建 ZegoCharacterHelper 對(duì)象,傳入虛擬人物形象的外觀數(shù)據(jù)(捏臉、換裝、妝容等),設(shè)置視圖參數(shù)(寬、高、位置等),創(chuàng)建一個(gè)虛擬形象。


說明:如果用戶不使用默認(rèn)形象,想要根據(jù)圖片自動(dòng)生成定制化的虛擬形象,請(qǐng)參考 AI 捏臉。

Avatar 功能拓展
我們已經(jīng)知道,圖像由像素組成,而像素通過記錄色彩空間各分量呈現(xiàn)各種各樣的色彩。對(duì)于 RGB 色彩空間,其三個(gè)分量 R(紅)、G(綠)、B(藍(lán)),它們之間具有相關(guān)性,對(duì)于色彩的表示來說缺一不可。

虛擬形象創(chuàng)建完成后,可體驗(yàn) Avatar 相關(guān)功能:

1 表情隨動(dòng)
ZEGO Avatar SDK 提供了表情隨動(dòng)功能,基于領(lǐng)先的人臉關(guān)鍵點(diǎn)精準(zhǔn)識(shí)別,結(jié)合面部、舌頭、眼球在內(nèi)的 52 種基礎(chǔ)面部表情維度,實(shí)時(shí)捕獲用戶臉部的表情動(dòng)作,在虛擬形象上進(jìn)行實(shí)時(shí)的還原渲染??蓮V泛應(yīng)用于社交互動(dòng)、語(yǔ)聊直播等場(chǎng)景中。

開發(fā)者請(qǐng)參考以下步驟,實(shí)現(xiàn) “表情隨動(dòng)” 功能:

1.1 開始表情檢測(cè)

開啟表情檢測(cè)前,請(qǐng)確認(rèn)已開啟攝像頭權(quán)限;

開發(fā)者如果使用了 ZegoCharacterHelper,則無(wú)需再調(diào)用 IZegoCharacter 的任何相關(guān)接口。

搭建出基本的虛擬人物形象后,調(diào)用 startDetectExpression 接口,設(shè)置驅(qū)動(dòng)模式為 ZegoExpressionDetectModeCamera,通過前置攝像頭,開始檢測(cè)表情;然后可以直接通過 ZegoCharacterHelper的 setExpression 接口設(shè)置表情,驅(qū)動(dòng)當(dāng)前虛擬人物的面部表情變化。

// 開始表情檢測(cè)
___weak typeof(self) weakSelf = self;
BOOL ret = [[[ZegoAvatarService sharedInstance] getInteractEngine] startDetectExpression:ZegoExpressionDetectModeCamera callback:^(ZegoExpression *expression) {
    // 驅(qū)動(dòng)虛擬人物的臉部變化
    __strong typeof(self) strongSelf = weakSelf;
    [strongSelf.characterHelper setExpression: expression];
}];
1.2 停止表情檢測(cè)

將應(yīng)用切換到后臺(tái)運(yùn)行、或退出當(dāng)前頁(yè)面時(shí),需要調(diào)用 stopDetectExpression 接口,停止表情檢測(cè)。


2 語(yǔ)音驅(qū)動(dòng)
ZEGO Avatar SDK 提供了語(yǔ)音驅(qū)動(dòng)功能,通過聲音的聲波信息,實(shí)時(shí)驅(qū)動(dòng)當(dāng)前虛擬人物的嘴形變化,使得虛擬形象能夠和真人一樣進(jìn)行自然的情緒表達(dá)。

可廣泛應(yīng)用于社交互動(dòng)、語(yǔ)聊直播等場(chǎng)景中。

開發(fā)者請(qǐng)參考以下步驟,實(shí)現(xiàn) “語(yǔ)音驅(qū)動(dòng)” 功能:

2.1 開始語(yǔ)音檢測(cè)

開始語(yǔ)音檢測(cè)前,請(qǐng)確認(rèn)已開啟麥克風(fēng)權(quán)限;

開發(fā)者如果使用了 ZegoCharacterHelper,則無(wú)需再調(diào)用 IZegoCharacter 的任何相關(guān)接口。

搭建出基本的虛擬人物形象后,調(diào)用 startDetectExpression 接口,設(shè)置驅(qū)動(dòng)模式為 ZegoExpressionDetectModeAudio,通過麥克風(fēng),開始檢測(cè)聲音波動(dòng);然后可以直接通過 ZegoCharacterHelper 的 setExpression 接口設(shè)置表情,驅(qū)動(dòng)當(dāng)前虛擬人物的嘴形變化。

// 開始語(yǔ)音檢測(cè)
___weak typeof(self) weakSelf = self;
BOOL ret = [[[ZegoAvatarService sharedInstance] getInteractEngine] startDetectExpression:ZegoExpressionDetectModeAudio callback:^(ZegoExpression *expression) {
    // 驅(qū)動(dòng)虛擬人物的嘴形變化
    __strong typeof(self) strongSelf = weakSelf;
    [strongSelf.characterHelper setExpression: expression];
}];
2.2 自定義音頻采集

開發(fā)者可以調(diào)用 setCustomAudioDelegate 接口,設(shè)置自定義的音頻數(shù)據(jù)采集代理(需要繼承 AudioDataDelegate 實(shí)現(xiàn) onStart 和 onStop 方法)。采集到音頻數(shù)據(jù)后,調(diào)用 sendAudioData 接口,發(fā)送數(shù)據(jù)。

@interface ExpressAudioCaptureDelegate()
{
    BOOL _isRunning;
}
@end
 
@implementation ExpressAudioCaptureDelegate
 
- (void)onStart{
    // 啟動(dòng)音頻采集
    _isRunning = YES;
}
 
- (void)onStop{
    // 停止音頻采集
    _isRunning = NO;
}
 
// 這是 Express 的自定義聲音的前處理回調(diào), 把數(shù)據(jù)發(fā)送給 Avatar SDK
- (void)onProcessCapturedAudioData:(unsigned char * _Nonnull)data dataLength:(unsigned int)dataLength param:(ZegoAudioFrameParam *)param timestamp:(double)timestamp; {
    if(_isRunning){
        // data: pcm的原始數(shù)據(jù)
        // length: data的長(zhǎng)度
        // dataType: data采集的位數(shù)  0表示16位,1表示8位
        // timeStamp: 時(shí)間戳, 從啟動(dòng)采集到現(xiàn)在經(jīng)過的時(shí)間
        // sendAudioData 是父類方法, 數(shù)據(jù)透?jìng)鹘o Avatar SDK, RTC 的數(shù)據(jù)是 8位的, dataType 是 1
        [super sendAudioData: (void*)data  size:dataLength dataType: 1 /* RTC 給的 8bit*/ timeStamp: [super getDurationMs]/*這個(gè)方法是父類的,直接調(diào)用*/];
    }
}
@end
2.3 停止語(yǔ)音檢測(cè)

將應(yīng)用切換到后臺(tái)運(yùn)行、或退出當(dāng)前頁(yè)面時(shí),需要調(diào)用 stopDetectExpression 接口,停止語(yǔ)音檢測(cè)。


3 手動(dòng)捏臉
ZEGO Avatar SDK 提供了手動(dòng)捏臉功能,支持用戶根據(jù)自己的審美偏好,對(duì)虛擬人物形象臉部的各個(gè)部位進(jìn)行細(xì)微調(diào)節(jié)(如眼睛大小、鼻子寬窄、嘴巴大小等),融合成自定義的虛擬人物形象人臉,自由定義,打造獨(dú)一無(wú)二的專屬形象,可廣泛應(yīng)用于各類游戲場(chǎng)景中。

開發(fā)者請(qǐng)參考以下步驟,實(shí)現(xiàn) “手動(dòng)捏臉” 功能:

搭建出基本的虛擬人物形象后調(diào)用 setFaceShape 接口,傳入 faceshapeID(可調(diào)整的臉部維度,請(qǐng)參考下表)和 value(捏臉系數(shù))等參數(shù),設(shè)置或修改臉部相關(guān)位置的形狀。我們?cè)?helper/ZegoCharacterHelper.h 中,同樣聲明了所有可支持調(diào)整的臉部維度 faceshapeID。


目前,支持調(diào)整的臉部維度可以點(diǎn)擊鏈接查看詳情:https://doc-zh.zego.im/article/14959

4 AI 捏臉
ZEGO Avatar SDK 提供了AI 捏臉功能,支持通過“攝像頭”或者“上傳圖像”的方式,結(jié)合對(duì)人臉進(jìn)行海量分析和訓(xùn)練后的 AI 算法,識(shí)別人臉特征,再以美術(shù)設(shè)計(jì)提供的虛擬形象人模為基礎(chǔ),生成與真人高度還原的虛擬形象??蓮V泛應(yīng)用于各類游戲場(chǎng)景中。

開發(fā)者請(qǐng)參考以下步驟,實(shí)現(xiàn) “AI 捏臉” 功能。

4.1 初始化 AvatarService

請(qǐng)參考 創(chuàng)建虛擬形象 文檔,獲取鑒權(quán) License 文件;并傳入正確的 AIPath,初始化 AvatarService。

4.2 創(chuàng)建虛擬人物形象

準(zhǔn)備需要用來創(chuàng)建虛擬人物形象的 UIImage 圖片。

推薦使用攝像頭拍攝圖片。
準(zhǔn)備好圖片后,調(diào)用 detectFaceFeature 接口,傳入 UIImage,即可生成該圖片對(duì)應(yīng)的虛擬人物形象。


如果 UIImage 中檢測(cè)不到人臉,調(diào)用 detectFaceFeature 接口會(huì)直接返回 nil。
4.3 設(shè)置捏臉數(shù)據(jù)

創(chuàng)建出虛擬人物形象后,調(diào)用 ZegoCharacterHelper 的 applyFaceFeature 接口,傳入 feature(設(shè)置的臉部維度,可設(shè)置的維度請(qǐng)參考下表),設(shè)置臉部相關(guān)位置的形狀。


目前,支持調(diào)整的臉部維度可以點(diǎn)擊鏈接查看詳情:https://doc-zh.zego.im/article/14972

5 妝容換裝
ZEGO Avatar SDK 提供了多種妝容配飾(如美瞳、口紅、眼鏡、胡子、服裝等)等美術(shù)素材,支持在虛擬形象上實(shí)時(shí)渲染、自然替換,打造符合自己品味的專屬形象。

開發(fā)者請(qǐng)參考以下步驟,實(shí)現(xiàn) “換妝容、換服裝” 功能。

目前,支持調(diào)整的維度有:眉毛、刺青、嘴唇、胡子、美瞳、眼鏡、耳機(jī)、耳飾、頭發(fā)、服裝等。具體的支持維度和資源類型,請(qǐng)咨詢 ZEGO 商務(wù)人員。

開發(fā)者如果使用了 ZegoCharacterHelper,則無(wú)需再調(diào)用 IZegoCharacter 的任何相關(guān)接口。雖然 IZegoCharacter 也有同名的 setPackage 接口,但請(qǐng)不要直接調(diào)用。如果跳過 ZegoCharacterHelper 直接調(diào)用 IZegoCharacter 的接口,ZegoCharacterHelper 層的緩存將不再可信。

搭建出基本的虛擬人物形象后:

如果開發(fā)者把 Packages 資源包做成動(dòng)態(tài)下載,則需要在使用 Packages 前,調(diào)用 ZegoCharacterHelper 的 setExtendPackagesPath 接口設(shè)置 Packages 的下載目錄到參數(shù) downloadPath,以便資源索引。
downloadPath 需指到 Packages 文件夾,例如:/Documents/downloads/Package/。

調(diào)用 setPackage 接口,傳入 packageID,調(diào)整虛擬人物相關(guān)位置的外觀。
//確保換裝調(diào)用前已經(jīng)設(shè)置的外部 Packages 的目錄
[_characterHelper setExtendPackagesPath:downloadPath]
/** 調(diào)用換裝接口*/
NSString *packageID = @"earphone7";  //earphone7 是一款耳機(jī)資源的目錄名稱,使用 Zego 提供的 Pacakges 下的目錄名稱即可。
[_characterHelper setPackage:packageID];
demo 展示
元宇宙是人類對(duì)于未來社會(huì)的美好想象,而虛擬人則是人類對(duì)于未來“Better me”的美好寄托。ZEGO 即構(gòu)科技為用戶定制個(gè)性化的虛擬形象,從技術(shù)底層為開發(fā)者賦能,與元宇宙生態(tài)里的所有成員一起,讓元宇宙的理想進(jìn)程推進(jìn)得再快、再穩(wěn)一些。

下方是ZEGO即構(gòu)科技的 Avatar 展示!



ZEGOAvatar demo展示


  業(yè)務(wù)實(shí)施流程

需求調(diào)研 →

團(tuán)隊(duì)組建和動(dòng)員 →

數(shù)據(jù)初始化 →

調(diào)試完善 →

解決方案和選型 →

硬件網(wǎng)絡(luò)部署 →

系統(tǒng)部署試運(yùn)行 →

系統(tǒng)正式上線 →

合作協(xié)議

系統(tǒng)開發(fā)/整合

制作文檔和員工培訓(xùn)

售后服務(wù)

馬上咨詢: 如果您有業(yè)務(wù)方面的問題或者需求,歡迎您咨詢!我們帶來的不僅僅是技術(shù),還有行業(yè)經(jīng)驗(yàn)積累。
QQ: 39764417/308460098     Phone: 13 9800 1 9844 / 135 6887 9550     聯(lián)系人:石先生/雷先生