5
本文作者: 技術(shù)人攻略 | 2016-08-16 22:12 |
編者按:本文作者牟中強(qiáng),雷鋒網(wǎng)硬創(chuàng)公開課群友。
最近人工智能圖片濾鏡軟件Prisma 非常的火,這款圖片處理的App 綜合了人工神經(jīng)網(wǎng)絡(luò)技術(shù)(neural networks)和人工智能技術(shù),可以獲取著名繪畫大師和主要流派的藝術(shù)風(fēng)格,然后對(duì)照片進(jìn)行智能風(fēng)格化處理,將圖片轉(zhuǎn)化為藝術(shù)化的效果。
PRISMA
于是手癢,自己也想DIY 出一款屬于自己的Prisma。相比APP,在電腦上實(shí)現(xiàn)這項(xiàng)功能略微繁瑣一些,不過通過這樣的方式,我們可以:
1、隨意選擇想要轉(zhuǎn)化風(fēng)格的圖片;
2、擁有靈活可以變動(dòng)的參數(shù),大力出奇跡;
3、在使用過程中感興趣的讀者可以通過Python源代碼研究其原理。
這個(gè)好比傻瓜相機(jī)以及單反,也許我們可以用單反去發(fā)掘其中更深層的奧妙,甚至做出更驚艷的作品。
介紹:
在開工之前,我們先介紹一下該項(xiàng)目。該項(xiàng)目最先是圖賓根大學(xué)的一篇論文“A Neural Algorithm of Artistic Style”引出,簡(jiǎn)單來說它是通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)學(xué)習(xí)了一副畫的風(fēng)格,并將這幅畫的風(fēng)格應(yīng)用到另一幅圖片上。
A Neural Algorithm of Artistic Style
CNN 算法是這其中的核心,而針對(duì)CNN算法的實(shí)現(xiàn),有很多不同的工具包,其中TensorFlow 配置起來相對(duì)比較容易。TensorFlow 是谷歌基于DistBelief進(jìn)行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng),其命名來源于本身的運(yùn)行原理,使用該系統(tǒng)可以很容易實(shí)現(xiàn)CNN、RNN和LSTM算法,這些算法在人工智能領(lǐng)域,尤其是圖像處理方面非常流行。
準(zhǔn)備:
在此之前,你需要確保以下兩個(gè)條件:
1、一臺(tái)擁有NVIDIA顯卡的電腦,臺(tái)式機(jī)筆記本均可(不用顯卡也可以實(shí)現(xiàn),不過通過顯卡GPU加速效率可以提高20倍左右)
2、電腦中安裝了Linux操作系統(tǒng)(最好不要是虛擬機(jī),否則驅(qū)動(dòng)會(huì)折騰的讓人抓狂)
如果沒有接觸過Linux的讀者要做好折騰的心理準(zhǔn)備,Linux驅(qū)動(dòng)并不像Window那么好安裝,需要多上網(wǎng)查查資料
實(shí)施:
1、安裝TensorFlow:
TensorFlow的安裝比較簡(jiǎn)單,具體安裝方法可以參考TensorFlow的中文手冊(cè):
http://wiki.jikexueyuan.com/project/tensorflow-zh/
2、下載項(xiàng)目:
使用Git下載項(xiàng)目
git clone:https://github.com/harry19902002/image-style-transfor.git
3、下載VGG19網(wǎng)絡(luò)模型:
VGG19網(wǎng)絡(luò)模型是由牛津視覺幾何組(Visual Geometry Group)開發(fā)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),它在視覺方面有著不錯(cuò)的表現(xiàn),項(xiàng)目中也需要用到VGG19網(wǎng)絡(luò)模型。
下載地址:http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat
將其下載到項(xiàng)目目錄中即可。
4、開始轉(zhuǎn)換:
好了,準(zhǔn)備工作基本已經(jīng)就緒。我們將原始圖片以及需要學(xué)習(xí)風(fēng)格的圖片分別放到項(xiàng)目目錄中的Content以及Style文件夾中,用命令行輸入:
python neural_style.py --content 原始圖片文件名 --styles 風(fēng)格圖片文件名 --out 生成圖片文件名
例:python neural_style.py --content ContentFile.jpg --styles StyleFile.jpg --out OutFile.jpg
經(jīng)過幾分鐘處理我們可以在out文件夾中找到轉(zhuǎn)換的文件OutFile.jpg
(處理效果圖1)
(處理效果圖2)
5、進(jìn)階修改:
當(dāng)然項(xiàng)目中還有很多其他參數(shù)可以摸索,可能會(huì)將圖片優(yōu)化的更漂亮:
比如:
--iterations 修改迭代次數(shù)(默認(rèn)為1000)
--content_weight 照片權(quán)重
--style_weight 風(fēng)格圖片權(quán)重
--learning_rate 學(xué)習(xí)步長
更多的參數(shù)可以通過輸入下面代碼查找:
python neural_style.py --help
好戲在后頭:
由于現(xiàn)在算法中有很多可調(diào)的參數(shù),現(xiàn)在并不是一個(gè)被完全優(yōu)化好的狀態(tài),所以希望讀者們多試試?yán)锩娴膮?shù)。
當(dāng)然簡(jiǎn)單的山寨并沒有什么意思,所以借助這個(gè)項(xiàng)目,我們可以做些獨(dú)特的,Prisma完全做不到的東西,這里我做了兩個(gè)小Demo,拋磚引玉。
1、分解計(jì)算機(jī)學(xué)習(xí)過程:
之前有網(wǎng)友詢問,這種方式訓(xùn)練次數(shù)有什么不同效果,于是我做了一個(gè)小視頻,沒訓(xùn)練一次就把圖像生成出來,這樣我們就可以看到整個(gè)訓(xùn)練的過程了。
2、生成有藝術(shù)風(fēng)格的視頻:
一張圖片的轉(zhuǎn)化還不足以秒殺朋友圈。沒關(guān)系,視頻轉(zhuǎn)換的道理是一樣的,經(jīng)過一些處理,我們可以將視頻也轉(zhuǎn)換成藝術(shù)風(fēng)格:
處理時(shí)間比較長,所以我只做了一個(gè)短視頻,原視頻地址:
風(fēng)格轉(zhuǎn)化后視頻地址:
看上去還是挺酷的。
參考鏈接:
[1]AI修圖藝術(shù):Prisma背后的奇妙算法 | 深度
[2]A Neural Algorithm of Artistic Style 論文
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。