Python?PaddleGAN實(shí)現(xiàn)調(diào)整照片人物年齡
前言
最近在試著研究飛漿平臺(tái)的許多功能,看到了許多有意思的功能。其中可以將照片美化以及年齡調(diào)整這個(gè)功能讓我想到了之前抖音的一個(gè)功能,所以特別感興趣?;诵r(shí)間把項(xiàng)目拉下來(lái)玩了玩,用了一些我自己找的數(shù)據(jù)。
PaddleGAN的Github地址:github倉(cāng)庫(kù)
環(huán)境部署
如果沒(méi)有看過(guò)相關(guān)的文章,可能會(huì)被README搞得很迷糊。先不用看README中一個(gè)個(gè)教程或者md,我們要先安裝執(zhí)行環(huán)境。主要看docs/zh_CN/install.md文件。

先看一下我們需要安裝什么。項(xiàng)目已經(jīng)提供了paddlepaddle的安裝命令,按照自己機(jī)器的情況選擇CUDA或者CPU。

還有一些包需要補(bǔ)充安裝的。

注意哦,還需要安裝dlib,按照我下面的命令執(zhí)行一下。
pip install dlib -i https://pypi.douban.com/simple
OK,我們環(huán)境安裝好了,我們開(kāi)始玩玩代碼吧。
項(xiàng)目使用
因?yàn)镻addleGAN實(shí)現(xiàn)照片編輯功能核心是StyleGAN,大家有興趣的話也可以參看一下StyleGAN項(xiàng)目。在編輯圖片前,需要先提取圖片的Latant Code(潛在因子)。簡(jiǎn)而言之,會(huì)先將圖片做預(yù)處理,然后使用預(yù)處理的數(shù)據(jù)進(jìn)行編輯效果。
預(yù)處理部分
按照這個(gè)思路,我們先找到預(yù)處理md說(shuō)明文件??纯聪旅娴膬?nèi)容。

我們看看pixel2style2pixel.py的參數(shù)說(shuō)明。

可以按照你的需求修改一下項(xiàng)目給出的命令。我這邊使用的參數(shù)都是項(xiàng)目給出的,主要測(cè)試一下效果。從參數(shù)說(shuō)明我們可以看出我們最重要需要提供的兩個(gè)參數(shù),分別是圖片路徑和輸出目錄。
先放出我準(zhǔn)備的照片,大家都非常熟悉。

執(zhí)行命令
python -u applications/tools/pixel2style2pixel.py --input_image D:/spyder/PaddleGAN/data_hy/337.jpg --output_path D:/spyder/PaddleGAN/data_hy/output --model_type ffhq-inversion --seed 233 --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --cpu
執(zhí)行效果(第一次會(huì)下載模型)


我們可以在輸出目錄看到3個(gè)文件,其中dst.npy就是后面我們需要做效果的npy數(shù)據(jù)。我們先看看預(yù)處理后的圖片什么樣。

可以看出細(xì)節(jié)變清晰了,照片集中在頭部位置,頭發(fā)也做了一定的處理,無(wú)官稍微修整了一下。
照片老化處理
下面我們繼續(xù)看一下另一個(gè)md文件。

我們看到另一個(gè)py文件可以幫助我們實(shí)現(xiàn)圖片的編輯,styleganv2editing.py。我們先看看參數(shù)說(shuō)明。

注意哦,不只是可以變換年齡,還有其他的選項(xiàng)。age、eyes_open、eye_distance、eye_eyebrow_distance、eye_ratio、gender、lip_ratio、mouth_open、mouth_ratio、nose_mouth_distance、nose_ratio、nose_tip、pitch、roll、smile、yaw。那么其實(shí)還有很多效果我們可以實(shí)現(xiàn)。
下面是我準(zhǔn)備的老化圖片命令
python -u applications/tools/styleganv2editing.py --latent D:/spyder/PaddleGAN/data_hy/output/dst.npy --output_path D:/spyder/PaddleGAN/data_hy/old --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset 3 --cpu
執(zhí)行情況
(pytorch) D:\spyder\PaddleGAN>python -u applications/tools/styleganv2editing.py --latent D:/spyder/PaddleGAN/data_hy/output/dst.npy --output_path D:/spyder/PaddleGAN/data_hy/old --model
_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset 3 --cpu
C:\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\skimage\data\__init__.py:107: DeprecationWarning:
Importing file_hash from pooch.utils is DEPRECATED. Please import from the
top-level namespace (`from pooch import file_hash`) instead, which is fully
backwards compatible with pooch >= 0.1.
return file_hash(path) == expected_hash
[12/29 20:17:06] ppgan INFO: Found C:\Users\huyi\.cache\ppgan\stylegan2-ffhq-config-f.pdparams
[12/29 20:17:09] ppgan INFO: Found C:\Users\huyi\.cache\ppgan\stylegan2-ffhq-config-f-directions.pdparams
看看效果

老態(tài)還是很明顯的,效果不錯(cuò)。
照片年輕化處理
和上面一樣,下面是我的年輕化命令:
python -u applications/tools/styleganv2editing.py --latent D:/spyder/PaddleGAN/data_hy/output/dst.npy --output_path D:/spyder/PaddleGAN/data_hy/young --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset -3 --cpu
對(duì)比兩個(gè)命令可以看出主要是--direction_offset參數(shù)不同。
執(zhí)行情況
(pytorch) D:\spyder\PaddleGAN>python -u applications/tools/styleganv2editing.py --latent D:/spyder/PaddleGAN/data_hy/output/dst.npy --output_path D:/spyder/PaddleGAN/data_hy/young --mod
el_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset -3 --cpu
C:\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\skimage\data\__init__.py:107: DeprecationWarning:
Importing file_hash from pooch.utils is DEPRECATED. Please import from the
top-level namespace (`from pooch import file_hash`) instead, which is fully
backwards compatible with pooch >= 0.1.
return file_hash(path) == expected_hash
[12/29 20:20:07] ppgan INFO: Found C:\Users\huyi\.cache\ppgan\stylegan2-ffhq-config-f.pdparams
[12/29 20:20:09] ppgan INFO: Found C:\Users\huyi\.cache\ppgan\stylegan2-ffhq-config-f-directions.pdparams
看看效果

效果還是不錯(cuò)的,還能看出是誰(shuí),對(duì)嗎?
總結(jié)
PaddleGAN項(xiàng)目我最近開(kāi)始研究,還沒(méi)有很深入,如果有理解不對(duì)的地方可以留言指正。如果大家喜歡這些效果的話,我可以把其他的效果,比如性別反轉(zhuǎn)等等做出來(lái)(想看的話,留言告訴我)。有時(shí)間的話也可以魔改一下代碼生成點(diǎn)有意思的特效。
以上就是Python PaddleGAN實(shí)現(xiàn)調(diào)整照片人物年齡的詳細(xì)內(nèi)容,更多關(guān)于Python PaddleGAN調(diào)整照片人物年齡的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
簡(jiǎn)單談?wù)凱ython中的json與pickle
下面小編就為大家?guī)?lái)一篇簡(jiǎn)單談?wù)凱ython中的json與pickle。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
新手如何發(fā)布Python項(xiàng)目開(kāi)源包過(guò)程詳解
這篇文章主要介紹了新手如何發(fā)布Python項(xiàng)目開(kāi)源包過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
利用Python在一個(gè)文件的頭部插入數(shù)據(jù)的實(shí)例
下面小編就為大家分享一篇利用Python在一個(gè)文件的頭部插入數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
python中的class_static的@classmethod的巧妙用法
python中的class_static的@classmethod的使用 classmethod的使用,主要針對(duì)的是類而不是對(duì)象,在定義類的時(shí)候往往會(huì)定義一些靜態(tài)的私有屬性,今天通過(guò)示例代碼看下classmethod的妙用2021-06-06
python3中關(guān)于excel追加寫(xiě)入格式被覆蓋問(wèn)題(實(shí)例代碼)
這篇文章主要介紹了python3中關(guān)于excel追加寫(xiě)入格式被覆蓋問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01

