玩轉StyleGan2:手把手教你安裝並運行項目!


時間過得是真快,離上次分享《用AI生成一堆漂亮且獨一無二的女朋友!》已經快過去半個多月了。光分享效果,而不分享如何實現,這不是我的風格。所以從今天開始,我會帶大家一起玩轉這個強大的高清人臉生成項目(不懂開源項目的可以理解為軟件)。

目前規划了幾個主題

1. 安裝並運行

2. 虛擬人臉編輯,操控虛擬人物表情

3. 真實人臉編輯,操控任何人的表情。

4. 雲端運行。

今天就來介紹第一部分,詳細演示如何安裝這個並運行這個項目,生成1024×1024的高清“虛擬”人臉。這個“虛擬”並不是指很假或者2d,3d動畫,而是指這個人在現實世界中不存在。AI通過學習現實世界中各種人臉的特征,然后重新生成一張逼真的人臉。

首先介紹一下官方的配置要求:

Both Linux and Windows are supported. Linux is recommended for performance and compatibility reasons.
64-bit Python 3.6 installation. We recommend Anaconda3 with numpy 1.14.3 or newer.
TensorFlow 1.14 or 1.15 with GPU support. The code does not support TensorFlow 2.0.
On Windows, you need to use TensorFlow 1.14 — TensorFlow 1.15 will not work.
One or more high-end NVIDIA GPUs, NVIDIA drivers, CUDA 10.0 toolkit and cuDNN 7.5. To reproduce the results reported in the paper, you need an NVIDIA GPU with at least 16 GB of DRAM.
Docker users: use the provided Dockerfile to build an image with the required library dependencies.

 

雖然有很多要求,但是這里最重要的一個要求是“高端顯卡”。我這里演示用的是RTX 2080ti (滴滴雲的服務器,AI大師碼:8888) 。我也嘗試過用GTX 1070,可以跑起來。

除了硬件要求外,系統方面的話最好是win10。其他要求我會在后面步驟中說清楚。

下面就拎一下整體流程:

1. 安裝git軟件

2. 獲取Stylegan2源代碼

3. 安裝VS2017

4. 安裝Cuda和Cudnn

5. 安裝anconda

6. 安裝pip依賴

7. 修改部分源代碼

8. 運行項目生成圖片

大概就是這些點,雖然看起來步驟有點,有點難……其實真的有點多,有點難!當然,有人帶路的話肯定會好很多。(交流:1129237074)

1. 安裝git

Git 是一個分布式版本控制軟件,與CVS、Subversion一類的集中式版本控制工具不同,它采用了分布式版本庫的做法,不需要服務器端軟件,就可以運作版本控制,使得源代碼的發布和交流極其方便。

對於程序員來說應該很熟悉,對於大眾來說也許有點深奧,但是今天我們需要用到的就一行命令,而且我會給出這條命令。

如果你電腦上還沒有這個軟件,需要先去官網下載:

https://git-scm.com/downloads

 

 

打開網址后,點擊Downloads下面的Window下載。

下載完后找到exe文件,直接雙擊打開,一路Next到底,就安裝成功了。然后按鍵盤上的快捷鍵Win+R 輸入cmd打開命令行。

 

然后,在命令行中輸入git,如果跳出類似的信息就證明已經安裝成功。

2. 獲取源代碼

源代碼是這里最重要的部分,那些牛逼的效果都是由這部分控制。完成第一步后,這里就可以快速獲取源代碼了。我這里專門建了一個名為StyleGan2的文件夾來存放相關文件,文件夾的放在桌面上。

然后輸入命令

#進入目標文件夾,每個人可能不一樣。
cd C:\Users\dc2-user\Desktop\StyleGan2
#獲取源代碼
git clone https://github.com/NVlabs/stylegan2.git

 

這個目標文件夾每個人都可能不一樣,所以這個路徑也可能不一樣。獲取這個路徑的方式其實很簡單。假設我在桌面上創建了一個文件夾test。

 

我只要點擊一下上方的路徑導航右側空白區域,就可以看到這個文件夾的完整路徑,復制這個路徑就好了。

 

3. 安裝VS2017

安裝vs2017的目的主要是為了安裝C++的編譯器,因為這個項目中的一個步驟需要編譯。安裝vs2017的過程並不復雜,但是文件會比較大,C盤可能會有點心累。這里需要特別注意vs的版本,低於2015可能會出問題,而用高版本的2019我也遇到了問題。

VS2017 官方下載地址:

https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes

打開后點擊下載即可,此時需要你登陸,如果你有賬號直接登陸即可,如果沒有就注冊一個。

登陸成功之后,點擊箭頭處的Download

 

然后搜索2017,再點擊Downolad進行下載。此時下載的並不是軟件本身,而是一個安裝器。玩過有些大型游戲的人,對於安裝器應該不陌生。

打開這個安裝器,選擇 使用C++的桌面開發,然后點擊安裝。安裝文件大概7G,安裝時間看你網絡情況,安裝過程無需人工干預,很簡單。

4. 安裝Cuda和Cudnn

所有基於深度學習的軟件都需要這兩個東西,對於早期玩過AI換臉的朋友,安裝這兩個東西可以說是熟門熟路。DeepFaceLab其實也需要這個,只是已經集成在安裝包里了。這個安裝過程,我在deepfaker.xyz上有非常詳細的介紹,有需要的可以打開網址搜關鍵詞即可找到文章。為了照顧不太熟悉的朋友,我這里還是簡單演示下。

CUDA的下載比較簡單。只要打開網址:

https://developer.nvidia.com/cuda-10.0-download-archive

然后根據下圖箭頭選擇選項。Version這部分選擇10即可,我是Server版,所以選擇了Server2016

下載后,雙擊打開,默認安裝即可。

Cudnn的安裝也並不復雜,只是又需要注冊一個賬號。

打開網址:

https://developer.nvidia.com/rdp/cudnn-archive

然后往下滾動,選擇到CuDNNv7.5.0  for CUDA10.0 。點擊一下,選擇Window10的版本。

 

下載完成后你會獲得一個壓縮包,里面包含了一些文件。只需要將這些文件拷貝到CUDA的同名目錄就好了。

上一步安裝的CUDA默認應該在C盤下面,大概的路徑如上圖。把Cudnn壓縮包中的文件拖動到這個目錄即可。

5. 安裝anconda

anconda是為了創建Python的虛擬環境,有了這個東西,我們就可以在同一台電腦上搞多個深度學習的項目而互不影響。這一點非常有用。這個東西吧,版本非常講究,直接用最新版會出問題。

通過網址:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

找到紅色箭頭出的版本下載。

作為一個從坑里爬出來的人告訴你,這一點非常重要。其實這里就是為了拿到一個Python3.6的環境,按理說用最新版的anconda肯定也支持Python3.6。但是理論不等於實際。實際情況是你通過Anconda創建3.6的環境時無法使用pin安裝依賴,這個時候就會很崩潰,用conda命令安裝會慢到懷疑人生,國內鏡像又不好弄(這段看不懂的不用管就對了。)

Anconda的安裝並也不復雜,也是雙擊打開,然后一路Next。

 

安裝完后會軟​件會自動打開主界面,並且自帶一個base的環境,你也可以通過create創建一個新的環境。我就簡單粗暴直接用base這個環境了。點擊綠色播放按鈕可以打開命令行。或者按下win鍵,輸入“An”直接打開命令行。

6. 安裝pip依賴

安裝依賴可以理解為使用python的前期准備。不懂就不用管,跟着做就好了。根據官方要求,需要安裝Numpy 1.14.3 ,TensorFlow 1.14

安裝命令如下:

pip install numpy==1.14.3

 

本來這是一個很簡單的事情,但是一報錯很多人就懵逼了。出現紅色錯誤提示說是缺少東西。缺啥補啥,立馬來一個命令:

pip install distributed==1.12.8

安裝完這個之后再執行上面的命令,numpy就算安裝成功了。然后安裝深度學習框架TensorFlow

pin install tensorflow-gpu==1.14

由於特色國情,這個加載過程可能會非常慢,原因大家都懂得,所以給你們一條加速命令。

pip install tensorflow-gpu==1.14 -i https://mirrors.aliyun.com/pypi/simple

速度立馬從原始社會進入信息時代,下載速度起碼能達到幾十兆每秒,你帶寬夠的情況下。

雖然速度問題解決了,但是很不幸,你還會遇到兩個問題

 

一個問題是:

ERROR: tensorboard 1.14.0 has requirement setuptools>=41.0.0, but you'll have setuptools 39.1.0 which is incompatible.

另一個問題是:

ERROR: Cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

解決方法為:

pip install --upgrade setuptools
pip install -U --ignore-installed wrapt enum34 simplejson netaddr
pin install tensorflow-gpu==1.14 -i https://mirrors.aliyun.com/pypi/simple

7. 修改部分源代碼

 

經歷千辛萬苦,終於萬事俱備了。接下來就是幾行命令的事兒了。

#進入目標文件夾
cd C:\Users\dc2-user\Desktop\StyleGan2\stylegan2
#生成25張高清頭像
python run_generator.py generate-images --network=gdrive:networks/stylegan2-ffhq-config-f.pkl --seeds=6600-6625 --truncation-psi=0.5

從預期來說,此時就可以在stylegan2下面的results目錄中看到人臉圖片了。但是…..毫無意外又出問題了。

 

坑1 :找不到編譯器路徑。

我一直以為之前安裝了Vs2017路徑就自動識別了,沒想到直接報異常。懵逼三秒后通過提示推理出了解決方法。

找到源文件custom_ops.py。用Notepad++打開,找到紅色箭頭所指的地方。這里默認設置了幾個路徑。按理說不需要手動設置,但是因為Vs的小版本不一樣,導致路徑錯誤。

此時,需要找到我們自己的安裝路徑,然后去替換源文件中的路徑。只需要把第一條替換即可。修改后記得按Ctrl+S保存。

坑2:感謝偉大的局域網,你又被加載速度卡死了。

這個坑就看你自己的網絡了,如果運氣好,就不用管了。如果運氣不好,那么又得折騰一番。首先根據地址去下載模型 ,然后創建models目錄,然后修改源代碼。

通過迅雷或者其他下載工具,手動下載文件。

http://d36zk2xti64re0.cloudfront.net/stylegan2/networks/stylegan2-ffhq-config-f.pkl

把文件放置到stylegan2下面的models目錄,這個目錄需要手動創建。

修改pretrained_networks.py中的第32行,右側替換為:

./models/stylegan2-ffhd-config-f.pkl

再次運行

#進入目標文件夾

cd C:\Users\dc2-user\Desktop\StyleGan2\stylegan2

#生成25張高清頭像

python run_generator.py generate-images --network=gdrive:networks/stylegan2-ffhq-config-f.pkl --seeds=6600-6625 --truncation-psi=0.5

 

如無意外,會出現

Loding network.. (加載模型)

Setingup TensorFlow…(編譯插件)

Generating image… (生成圖片)

然后去文件夾results下面找到000開頭的文件夾,打開最新的一個,就可以在里面看好高清頭像了。

到了這一步,你終於徹徹底底的成功了。

在上面的命令行中我們可以看到兩個參數,分別是–seeds=6600-6625 和 –truncation-psi=0.5 。

truncation-psi :不知道怎么翻譯,也沒人教我啊。大概指的是是生成人物的差異度,一般取值為0.5或者1.0,或者中間值,應該是越大差異越大。

seeds:可以理解為“種子” ,通過這個可以直接控制生成的人物。不同的種子,會生成不同的人。seed的值可以是一個范圍,也可以幾個離散的點。根據測試,他的取值范圍大概是:0~4,294,967,295 (Seed must be between 0 and 2**32 – 1)

兩個參數組合調整,生成個幾十億張臉是非常輕松滴!

生成的圖片無論是牙齒還是皺紋都一清二楚。

眼睫毛,眉毛,頭發完全和真人照片無差別。如果把這些照片混入互聯網中,估計沒有人能識別出來。

希望大家都能成功走到這一步,以后又多了一項吹牛逼的技能,當然對有些人來說說可能會創造巨大的價值。

==============

公眾號:托尼是塔克


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM