1. 程式人生 > 其它 >不裝了,我攤牌了!人像卡通化的功能我實現了

不裝了,我攤牌了!人像卡通化的功能我實現了

不裝了,我攤牌了!辰哥實現了人像卡通化的功能,玩了絕對上癮!

今天咱們來搞點有趣的事情:人像卡通化。本文的人像卡通化功能沒有使用第三方介面功能,辰哥知道百度有提供介面,並且十來行程式碼就可以搞定,但是有使用次數限制,所以辰哥就通過搭建神經網路模型,藉助資料集進行訓練,最後得到模型。

這樣得到的人像卡通化的功能可以順便使用,並且還可以通過提高資料集的質量或者調整引數,讓生成的卡通人像更加逼真

先來看一下效果

看完效果之後,是不是覺得很神奇?辰哥告訴你,實際很簡單,看完本文之後,你也可以自己動手直接生成你自己喜歡的動漫頭像

01、搭建環境

這裡辰哥使用的是開源平臺github的原始碼,裡面有完整的模型結構、模型檔案、資料集等。專案地址在下方

專案如下:
https://github.com/minivision-ai/photo2cartoon

可能看到這篇文章的讀者沒有深度學習的基礎,但是沒關係,辰哥一步一步教你如何將這個專案搭建起來,並且生成自己的卡通頭像!

1.安裝庫

大家下載好原始碼之後,在執行之前,先把執行的環境搭建一下。

上面是專案中需要安裝的庫,實際上通過下面的四個命令安裝即可(其中專案tensorflow-gpu說需要在gpu顯示卡下執行,但是實際上在咱們自己的筆記本或者電腦上執行也可以)

pip install onnxruntime
pip install face-alignment
pip install pytorch
pip install tensorflow==1.15

這裡需要安裝tensorflow版本是1,非2,不然就出現下面的報錯(原因:1和2這兩個版本很很大區別)

2.下載模型和資料集

從github上下載好程式碼之後,其目錄結構如下:

這裡給大家簡單介紹一下相關資料夾和檔案作用是什麼?

資料夾

dataset:存放訓練資料集

images:存放測試資料集(預測模型效果所使用的圖片存放資料夾)

models:訓練好的模型存放在該目錄下

utils:裡面存放一些處理圖片,模型結構等py檔案

Py檔案:

train.py:訓練模型

test.py:測試模型(生成一張動漫人像圖片)

主要就是這兩個py檔案需要去了解,即如何訓練模型和使用模型(生成動漫人像圖)

在專案中已提供了訓練好的模型和資料集

在專案中還沒有包含這些檔案(已訓練好模型、資料集等),需要我們再去下載,通過上面的下載地址,下載好之後再放入對應的資料夾即可。

這樣我們就將這個專案的環境搭建完畢!

02、生成人像動漫圖

1.訓練模型

(已下載好了訓練模型,想直接使用的可以跳過這一步,直接進行測試生成人像動漫圖)

執行環境搭建完畢之後,下面可以開始進行訓練模型。

先是對資料集進行預處理:

pythondata_process.py--data_pathYourPhotoFolderPath--save_pathYourSaveFolderPath

然後開始訓練

python train.py --dataset photo2cartoon

如果是下載了預訓練模型後,也可以在預訓練模型的基礎上進行訓練

pythontrain.py--datasetphoto2cartoon--pretrained_weightsmodels/photo2cartoon_weights.pt

訓練結束之後的模型儲存到models資料夾中。

2.測試生成人像動漫圖

將需要生成動漫人像的原圖放到images下:

執行生成命令:

# 使用預設模型
python test.py --photo_path ./images/lx.jpg --save_path ./images/cartoon_lx.png
# 使用onnx模型
python test_onnx.py --photo_path ./images/lx.jpg --save_path ./images/cartoon_lx.png

專案中提供了兩種模型,因此在執行生成命令時也有兩個(選擇其中一條執行即可),其中原圖片是:lx.jpg,生成的動漫人像是:cartoon_lx.png

執行結果如下:

可以看到由一張真人人像圖成功的生成了動漫人像圖。

整個過程還是比較簡單的,沒有學過深度學習的小夥伴也可以將程式碼跑起來!!

03、小結

本文中教會了大家如何通過一張真人圖去生成對應的動漫圖,在文中也詳細地講解了如何去搭建環境,並程式碼跑起來。

鑑於可能很多讀者不是學習深度學習方向的,所以文中就不太細於講解程式碼,只是教會大家如何將程式碼跑起來,感興趣的讀者可以自己嘗試!

一定要動手嘗試 !一定要動手嘗試 !一定要動手嘗試!

耐得住寂寞,才能登得頂
Gitee碼雲:https://gitee.com/lyc96/projects