基於window7+caffe實現圖像藝術風格轉換style-transfer


這個是在去年微博里面非常流行的,在git_hub上的代碼是https://github.com/fzliu/style-transfer

比如這是梵高的畫

這是你自己的照片

然后你想生成這樣

怎么實現呢在基於windows的caffe上,其實這個很簡單。

1 首先在 https://github.com/fzliu/style-transfer 把代碼下載下來,另外主要這個代碼基於pycaffe的,需要將pycaffe編譯好。

最好是在電腦上裝一個python progressbar包 ,具體操作是在windows cmd下輸入 pip install progressbar

2 解壓style-transfer-master文件夾,運行\scripts文件夾 下的download_models.sh 就會下載模型,

在model文件夾下會出現caffenet、vgg16、vgg19、googlenet等文件夾,但是有時候model文件夾里面還是沒有.model文件,一般來說.model文件有幾十到幾百M不等。如果沒有下載成功.model文件,我們可以打開download_models.sh,按照里面的鏈接直接手動下載。

3 運行代碼

下面是運行代碼的格式:  python style.py -s <style_image> -c <content_image> -m <model_name> -g 0

在windows下 切換到style.py 所在的目錄,輸入代碼示意圖如下

python style.py -s images/style/starry_night.jpg -c images/content/nanjing.jpg -m vgg19 -g 0

 可見上面例子中,style-image對應starry_night.jpg 即風格圖像, content_image對應自己的照片nanjing.jpg, 模型選擇vgg19(雖然說可以選擇其他模型,但一般來說vgg19的效果最好), g 0對應選擇默認的GPU,如果是g -1則為CPU

然后回車就能運行,運行后就能在outputs文件夾中得到上述處理后的結果了。

下面是運行的示意圖:

可以看到,選擇GPU、然后加載圖像和模型成功后就開始跑了,左側是顯示運行進度,已經是6%,還需要54分鍾左右,由於圖像比較大,時間比較長。

4 更改style.py 中如下語句

parser.add_argument("-l", "--length", default=1024, type=float, required=False, help="maximum image length")

def transfer_style(self, img_style, img_content, length=1024, ratio=1e5,
n_iter=512, init="-1", verbose=False, callback=None):

可以設置圖像輸出的尺寸大小,例如你自己的照片圖像大小是1024*500 ,更改輸出上述語句中length=1024,可以獲得與原始圖像一致的尺寸。

不更改的話,程序中默認輸出是512寬度,長度安裝輸入原始圖像一致的寬長比計算。

我自己的實驗結果

原始圖像:

輸出的效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM