不裝了,我攤牌了!辰哥實現了人像卡通化的功能,玩了絕對上癮!
今天我們們來搞點有趣的事情:人像卡通化。本文的人像卡通化功能沒有使用第三方介面功能,辰哥知道百度有提供介面,並且十來行程式碼就可以搞定,但是有使用次數限制,所以辰哥就通過搭建神經網路模型,藉助資料集進行訓練,最後得到模型。
這樣得到的人像卡通化的功能可以順便使用,並且還可以通過提高資料集的質量或者調整引數,讓生成的卡通人像更加逼真!
先來看一下效果:
看完效果之後,是不是覺得很神奇?辰哥告訴你,實際很簡單,看完本文之後,你也可以自己動手直接生成你自己喜歡的動漫頭像。
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.訓練模型
(已下載好了訓練模型,想直接使用的可以跳過這一步,直接進行測試生成人像動漫圖)
執行環境搭建完畢之後,下面可以開始進行訓練模型。
先是對資料集進行預處理:
python data_process.py --data_path YourPhotoFolderPath --save_path YourSaveFolderPath
然後開始訓練
python train.py --dataset photo2cartoon
如果是下載了預訓練模型後,也可以在預訓練模型的基礎上進行訓練
python train.py --dataset photo2cartoon --pretrained_weights models/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、小結
本文中教會了大家如何通過一張真人圖去生成對應的動漫圖,在文中也詳細地講解了如何去搭建環境,並程式碼跑起來。
鑑於可能很多讀者不是學習深度學習方向的,所以文中就不太細於講解程式碼,只是教會大家如何將程式碼跑起來,感興趣的讀者可以自己嘗試!
一定要動手嘗試 !一定要動手嘗試 !一定要動手嘗試!