一步步教學在 Windows 下面安裝 pytorch3d 來部署 xuniren 這個項目

對於這篇教程打算上個星期就準備寫了,無奈一直在跑產品和參加行業活動,始終遲遲未能和大家見面。這個項目主要是小郭總開源的 Fay 虛擬人控制器然後看到有這麼一個真人 2D 的項目——xuniren,激發了我部署項目的好奇心。從而有了一些經驗(踩了很多坑),順利在幾臺電腦上跑通,而且遠程也幫了一位朋友部署成功。所以趁熱打鐵,我寫下這篇文章來給感興趣的小夥伴分享下心得,希望大家順順利利地部署 pytorch, torch3d, 這些項目。順便說一句,這些項目在 Linux, macOS 部署都很簡單,可惜 Windows 下面確實需要折騰很久。

我這裏安裝的版本先羅列一下。pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 cub_home=1.11.0  torch3d==0.7.1  爲了方便大家我先把下載鏈接一併放出。接下來就進入我們的正式安裝環境。從0到1的開始。然後所需要的C++ 編譯工具是Visual Studio 2019 的版本。版本號如下:

然後就是安裝Mingw的c++編譯工具,這個安裝包可以上網下載,也可以私信我來取。

 

通過conda 新建一個虛擬環境

conda create -n torch3d python=3.9

激活虛擬環境

conda activate torch3d

接下來就可以執行pytorch安裝命令了。

conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

安裝好之後,可以看到下面這張圖。

然後我們進入虛擬環境裏執行下面兩段代碼

import torch
print (torch.cuda.is_available())

驗證一下我們安裝的 cuda 是否爲 True

這裏順便插播 CUDA_TOOLKIT 和 CUB_HOME 安裝過程。cuda_toolkit 可以直接通過我上面的鏈接進行下載安裝,直接一路 Next 安裝就可以了,cub_home 也是下載完之後,在系統的環境變量裏面進行設置如下圖。

看到這些我們就可以把 torch3d 的文件進行下載,編譯安裝了。我這裏是把 torch3d 的項目放到虛擬環境裏面的 site-packages 裏面,這裏每個人的虛擬環境安裝不同可以找一下。我這裏是在C盤下面的 anaconda 下面。如下圖

然後需要把 pytorch3d 裏的 setup.py 文件77行裏的 -std=c++14 參數註釋掉。如下圖:

 這樣的我們就可以以管理員身份打開 VC++ 的編譯工具了。如下圖:

然後找到剛纔的虛擬環境裏的 pytorch3d 的文件路徑,激活虛擬環境之後,需要輸入下面兩個命令就可以執行安裝了。執行順序依次爲:

set DISTUTILS_USE_SDK=1
set PYTORCH3D_NO_NINJA=1

經過長時間漫長的等待,中間不出錯誤的話,可以看到下面這張圖片。

這樣我們就成功編譯了 torch3d 這個項目,接下來就是我們把 xuniren 這個項目 clone 下來,激活我們剛纔創建的 torch3d 這個虛擬環境。在這個項目的 ReadMe 文檔裏有說到要用 VC ++ 編譯器去編譯 freqencoder, gridencoder, raymarching shencoder 這幾個項目,其實這是 Nerf 項目所依賴的第三方庫,如果後面用到數據訓練的話,這些是必須要安裝的。接下來我就演示一下如何編譯這些文件。我是一個一個進行編譯了,沒有執行批處理命令。這裏需要注意的兩點就是需要把四個文件的 setup.py 文件裏的代碼,按照下面的格式進行修改。

 cmdclass 裏的 build_ext 加上 use_ninja=False, 然後把 ‘-03’, '-std=c++14' 註釋掉,如下圖:

 這樣就可以繼續在 VC ++ 2019 的編譯器下面進行逐個安裝。需要在 xuniren 這個項目裏對應的文件夾下面執行安裝命令:

conda activate torch3d
set DISTUTILS_USE_SDK=1
python setup.py install

依次執行完之後就可以得到這四個依賴庫安裝成功的界面了。我這裏當時過於激動只截了一張圖,給大家看看。

進行到這裏的時候,應該會提示有些庫有衝突了,我這裏是pillow,我重新安裝之後就可以了。這個項目用到了ffmpeg,Windows 系統下載一個即可,然後在環境變量配置一下即可。我安裝的是ffmpeg-5.1.2 這個版本。

pip install pillow==9.0.0

如果你能進行到這裏,那麼你離這個項目 Run 起來就咫尺之遙了。接下來我們就可以執行項目中說的命令了。

python fay_connect.py

經過漫長的模型下載,就可以看到下面的這個運行窗口了。

 不過不要高興太早,每個令人興奮的項目在最後的關鍵時刻總會有個小問題站出來,讓你看不到心中的亮光。我們需要在fay_connect.py 這個文件裏做一個小修改。把原來的方法 convert_mp3_to_wav("/" + old_path, new_path)  改成下面的就可以看到虛擬人張嘴,聽到虛擬人說話了。當然你是需要把 Fay 控制器打開,纔可以進行互動交流哦。

 整個安裝過程就是這樣的,這裏遇到最多的問題就是 C++ 編譯的問題,找了很多資料都沒有把這個虛擬人項目部署說得精準的,所以這篇文章就應運而生了,解決大家在部署過程中遇到的難題。對於訓練自己的數字人,我這邊也已經部署成功,只不過訓練出來的數字人播報,遠沒有 metahuman 有意思。如果大家也有疑問,就給我留言吧。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章