1. 程式人生 > 實用技巧 >Python 基於卷積神經網路實現蒸汽波復古風格濾鏡

Python 基於卷積神經網路實現蒸汽波復古風格濾鏡

蒸汽波風格的最大特徵是混合了上世紀8090年代各種標籤和元素。 蒸汽波影響最大的國家是美國,日本,中國。
美國是一個多元文化國家,任何帶有混合屬性的文化都很容易在活躍而包容的藝術社會中誕生和被接受。
蒸汽波的畫面中出現最多的就是日文和中文。上個世紀的人們都認為,1995年的東京就是未來。在日本泡沫經濟時期,人人都揮舞著萬元鈔票當街攔車,霓虹燈的映照下,無處不充斥著粉色和紫色的光線,人們就活在這奢靡而滿足的氛圍裡。層出不窮的新一代電子產品,不斷進步的科技生活,美麗而不切實際的未來似乎就近在眼前。
而中國作為神祕的東方文化的發源地,各種文字和東方元素都被很容易地融入到藝術作品中,充滿了東方元素的科幻,本身就是一種最吸引人的流行和時尚。在後來的蒸汽波流行期,中國只是作為一個素材庫出現,蒸汽波並沒有很快地在國內獲得很廣泛的關注,近年來才突然出現在人們的視野裡。而蒸汽波復古風指恢復上世紀8090年代元素的風貌、風格或風潮。本文基於Pytorch和卷積神經網路,利用現有的主流模型方法,嘗試實現影象的蒸汽波復古風格濾鏡。

在這裡插入圖片描述
在這裡插入圖片描述
本文程式碼已上傳至Github

1.資料獲取

本文的資料集來自B站上的視訊【maru】韓國妹子的京都旅行(https://www.bilibili.com/video/BV1FE411D7JU)京 都 蒸 気 少 女(https://www.bilibili.com/video/BV1o7411E7NR)

BGM: Night Tempo - 夢の続き~Dreams Of Light~
取樣: 【歌手】1986オメガトライブ-【歌名】Sky Surfer
原版視訊:
https://www.youtube.com/watch?v=OTMKUAJLL2k
av70084254
Youtuber: maru 마루

原油管視訊標註“知識共享署名許可(允許再利用)”

2.資料處理

下載視訊後,首先將兩個video轉成影象,儲存到兩個資料夾(video2image.py)。
由於後者的視訊在前者的基礎上剪輯,和原版視訊的順序不太一樣,所以需要對影象進行整理,使得兩個資料夾下的影象內容大致對應,需要刪除沒有對應的影象,以及改變一些影象的序號(rename.py)。
另一個問題是兩個資料夾的尺寸不一致,後面資料夾裡的影象需要進行裁剪(cutImages.m),以使得影象的尺寸相同。

在這裡插入圖片描述

做好影象之間的對應之後它們就可以作為訓練集了。我們可以選擇將一些影象作為驗證集(allocateTrainValid.py)。

本文將兩個資料夾的資料使用DataLoader載入,然後再將對應的影象進行切塊,確保對應影象切塊的位置是相同的。

3.模型選擇與訓練

本文選擇RCAN(Image Super-Resolution Using Very Deep Residual Channel Attention Networks)作為模型。RCAN的Pytorch程式碼非常的簡便,直接拿過來用就可以了,SR的倍率設為1。

在這裡插入圖片描述
由於這個網路是做單張影象超解析度(SISR)的(只是被我拉過來做復古濾鏡),其他引數的設定按照預設即可,為了減小視訊記憶體可以減小n_resblock的值,其他影響不是很大,只要loss不會異常即可。

4.濾鏡效果

  • 訓練集中的效果(上輸入,下輸出)

在這裡插入圖片描述
在這裡插入圖片描述

結果
在這裡插入圖片描述
在這裡插入圖片描述

  • 測試效果:

在這裡插入圖片描述

在這裡插入圖片描述
本文對於尺寸過大的影象進行裁剪
在這裡插入圖片描述
參考
https://www.douban.com/group/topic/120710066/?type=like