點贊再看,養(yǎng)成習(xí)慣,微信公眾號搜索【JackCui-AI】關(guān)注這個愛發(fā)技術(shù)干貨的程序員。本文 GitHub https://github.com/Jack-Cherish/PythonPark 已收錄,有一線大廠面試完整考點、資料以及我的系列文章。
1 隱秘的角落
用了一個周末,一口氣刷完了《隱秘的角落》這部電視劇。
不得不說,這部網(wǎng)劇看得過癮,回想起來,也總覺得意猶未盡。
劇情開篇,景區(qū)的山頂,一個戴眼鏡的男人,借著拍照片,把一對老人推了下去。
這一幕,被在景區(qū)游玩的三個孩子意外拍攝下來,故事從此展開。
這部劇,讓一個叫「張東升」男人的名字大火,也就是把那對老人推下山的兇手。
而跟他本人同樣出名的場景,是他突然摘下假發(fā)后露出的發(fā)際線。
「張東升」禿頭造型,火爆網(wǎng)絡(luò),他的經(jīng)典語錄有:
- 一起去爬山嗎?
- 您看我還有機會嗎?
作為腦力勞動的程序員,脫發(fā)可能都是曾擔(dān)憂過的一個問題。
在「程序員界」,流傳著這么一個段子:
「我變禿了,也變強了。」
想不想,看看變強后的自己?
今天,繼續(xù)手把手教學(xué)。
算法原理、環(huán)境搭建、模型訓(xùn)練、效果測試,一條龍服務(wù),盡在下文!
2 算法原理
我在曾經(jīng)的文章里講解過類似的算法原理,例如之講解的 ALAE 算法,人臉屬性編輯。
這個算法是發(fā)表在國外 Medium 網(wǎng)站上的一篇文章。
Medium 原文地址(需要翻墻):
https://medium.com/swlh/hairs...
這是一個名為 Azmarie Wang 的作品,作者是一位小姐姐。
而她也在自己的 Github 上開源了相應(yīng)的代碼。
項目地址:
https://github.com/Azmarie/Ha...
但,這個篇文章傳到國內(nèi),源碼被別人做成了視頻在「 B站 」分享出去,就「莫名其妙」的變成了"自制"。
很多公眾號發(fā)文,都冠以「 B 站 Up 主自制」的標(biāo)簽。
自制個錘子哦!
人家文章、源碼早就有了好嗎?
槽吐完了,咱接著說算法原理。
這個算法的名字叫「 Hairstyle Transfer 」。
該算法也是站在巨人的肩膀上實現(xiàn)的,由 StyleGAN Encoder、Progressive GAN、InterFace GAN、SVM 多種算法組成。
算法流程:
換一個通俗一點的語言解釋就是,先使用原圖生成一個「人臉模型 」,這個「人臉模型 」是可以編輯的,然后找到控制頭發(fā)的「控制器」,調(diào)整參數(shù),改變發(fā)型。
專業(yè)一點的說法就是,先使用原圖,用 StyleGAN Encoder 反算潛碼( latent code ),獲得多維的特征向量(頭發(fā)、眼睛、嘴巴、膚色等)。
然后訓(xùn)練 SVM 分類器,用于找到控制頭發(fā)的那個特征向量。
最后使用 Interface GAN 編輯特征,就可以完成頭發(fā)屬性編輯了。
想更深入的學(xué)習(xí)原理,需要先學(xué)習(xí)一下 StyleGAN Encoder 和 Interface GAN ,篇幅有限,本文就「點到為止」了。
3 環(huán)境搭建
你需要有在有 GPU 的機器上運行,如果能翻墻工具,強烈建議使用 Google Colab。
Google Colab 是一個 Google 提供的免費 GPU 服務(wù)器。
「 Hairstyle Transfer 」需要下載很多存放到 Google Drive 的權(quán)重文件。
使用 Google Colab 跑這個項目很方便,因為這個項目都是 ipynb 文件。
如果不能翻墻,也可以自己在本地,使用 Anaconda 新建虛擬環(huán)境。
「 Hairstyle Transfer 」算法,使用 Tensorflow 框架,并且必須是 1.x 的版本,不兼容 2.x。
首先,創(chuàng)建一個名為 tf 的 conda 虛擬環(huán)境。
conda create -n tf python=3 jupyter notebook
然后使用 conda 和 pip 按照如下順序,安裝如下第三方庫即可:
conda install scipy tensorflow-gpu==1.15
都安裝好后,環(huán)境就算搭建完成了。
4訓(xùn)練 & 效果測試
我們以「張東升」的圖片為例進行訓(xùn)練以及效果測試。
圖片下載地址:
https://cuijiahua.com/wp-cont.../_1.png
將項目下載到本地:
git clone https://github.com/Azmarie/Hairstyle-Transfer
然后你會得到三個 jupyter 的 ipynb 文件。
依照上述順序跑通代碼。
StyleGAN/_Encoder 會生成 output/_vectors.npy 文件。
Get/_attribute/_score/_pairs 會 stylegan-dlatents.npy 和 9/_score.npy 文件。
然后,Train/_Boundaries 使用 stylegan-dlatents.npy 和 9/_score.npy 訓(xùn)練 Boundaries。
這里用到了 SVM 分類器,將控制頭發(fā)的特征向量分出來,得到 boundary.npy,用于后續(xù)發(fā)型的控制。
最后,再使用 output/_vectors.npy 和 boundary.npy,即可控制頭發(fā)的多少。
ipynb 詳細(xì)說明了代碼需要如何運行,依照它的教程,按照次序運行程序即可。
里面詳細(xì)說明了,怎么裁剪圖片,怎么訓(xùn)練等。
代碼中用到了很多 Google Drive 保存的權(quán)重文件,我將這些權(quán)重文件,都上傳到了我的百度網(wǎng)盤。
下載鏈接(提取碼:2afm):
https://pan.baidu.com/s/1sPqg...
需要注意的是,下載好這些權(quán)重文件,在跑代碼的時候需要將代碼中所有的加載權(quán)重方式修改一下,都改為本地加載。
例如修改 pkl 的讀取方式等。
很簡單,這里就不一一說明了。
根據(jù) ipynb 的說明,我們就可以順利跑通所有代碼。
完成模型訓(xùn)練和效果測試。
最后,一起看一下「張東升」的 「 Hairstyle Transfer 」效果吧!
就很“禿然”,有木有!
用自己照片試試看?一秒變超人。
5 最后
「 Hairstyle Transfer 」 算法也有一些小問題,比如控制頭發(fā)變少,圖片的色調(diào)也會變暗。
作者:Jack Cui
原文:https://mp.weixin.qq.com/s/3r...
關(guān)注作者公眾號,獲取更多有趣AI應(yīng)用~
系列篇
更多AIoT領(lǐng)域有趣的算法應(yīng)用及產(chǎn)品請關(guān)注有趣的AIoT應(yīng)用專欄。
審核編輯:符乾江
-
人工智能
+關(guān)注
關(guān)注
1796文章
47791瀏覽量
240581 -
代碼
+關(guān)注
關(guān)注
30文章
4837瀏覽量
69130
發(fā)布評論請先 登錄
相關(guān)推薦
工業(yè)電源的可靠性和擁有成本優(yōu)化
![工業(yè)電源的可靠性和<b class='flag-5'>擁有</b>成本優(yōu)化](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何在Windows中使用MTP協(xié)議
新內(nèi)存藍屏死機?內(nèi)存驗貨指南你值得擁有
![新內(nèi)存藍屏死機?內(nèi)存驗貨指南<b class='flag-5'>你</b><b class='flag-5'>值得</b><b class='flag-5'>擁有</b>](https://file1.elecfans.com//web3/M00/00/BB/wKgZPGdNY_SAIXNhAAM9Obvrvw4436.png)
兩種轉(zhuǎn)換控制模式Zone 1 Transfer和Zone 2 Transfer怎么區(qū)分使用?
【米爾-瑞米派兼容樹莓派擴展模塊-試用體驗】值得擁有的米爾-瑞米派兼容樹莓派生態(tài)板
手持激光焊接設(shè)備廠商哪家值得選擇?
![手持激光焊接設(shè)備廠商哪家<b class='flag-5'>值得</b>選擇?](https://file1.elecfans.com//web2/M00/DF/2F/wKgaomYvAW2AAyLIAARsJzDgvBQ050.jpg)
![](https://file1.elecfans.com/web2/M00/DB/3E/wKgZomYrUIWATP9DAAJ1L42KCrM570.png)
值得信賴的工業(yè)主板制造商
![<b class='flag-5'>值得</b>信賴的工業(yè)主板制造商](https://file1.elecfans.com/web2/M00/BE/B7/wKgaomWuL7SAfirbAABQNBVfD1c813.png)
CentOS環(huán)境下SFTP雙機高可用部署實錄
![](https://file1.elecfans.com/web2/M00/C5/73/wKgZomX9TliAaPY6AAK6114aSBo118.jpg)
2024,值得你關(guān)注的嵌入式行業(yè)方向
![2024,<b class='flag-5'>值得</b><b class='flag-5'>你</b>關(guān)注的嵌入式行業(yè)方向](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
評論