使用類神經網路無損放大圖片

常在電影裡面看到,警察輕輕鬆鬆讓圖片解析度增加,劇情急轉直下,例如下面這個影片

這個看似科幻的東西,現在可能要成真了!在 github 上有不少開源專案是利用類神經網路來增加影像解析度,我們就來看看如何使用 neural-enhance 這個開源專案無損放大圖片吧!

首先必須安裝 Python3,還有 pip3,之後把 neural-enhance clone 下來

git clone https://github.com/alexjc/neural-enhance.git

這邊要注意的是,專案並未包含訓練完的模型,所以要再下載模型,並且要放在 neural-enhance 的資料夾裡面

cd neural-enhance
wget https://github.com/alexjc/neural-doodle/releases/download/v0.0/vgg19_conv.pkl.bz2

大概80Mb左右,如果不想全部下載下來,可以到 release 的地方複製模型,目前0.3 的版本提供了四種模型:放大兩倍、放大四倍、修復、減少模糊,一樣要放在 neural-enhance 的資料夾裡面

wget https://github.com/alexjc/neural-enhance/releases/download/v0.3/ne1x-photo-deblur-0.3.pkl.bz2
wget https://github.com/alexjc/neural-enhance/releases/download/v0.3/ne1x-photo-repair-0.3.pkl.bz2
wget https://github.com/alexjc/neural-enhance/releases/download/v0.3/ne2x-photo-default-0.3.pkl.bz2
wget https://github.com/alexjc/neural-enhance/releases/download/v0.3/ne4x-photo-default-0.3.pkl.bz2

每個檔案不大,大概都 4Mb 左右,感覺未來還會出去雜訊的模型。

再來就是要把有用到的 python 套件都裝好,他很貼心的幫你寫好了!

python3 -m venv pyvenv --system-site-packages
source pyvenv/bin/activate
python3 -m pip install --ignore-installed -r requirements.txt

這些都弄完以後,就可以開始無損放大圖片啦!基本格式如下

python3 enhance.py --type=photo --model=repair --zoom=1 broken.jpg

最主要就是要修改 model 跟 zoom 這兩個參數,model如上面提到的,有四種 default(放大)、repair(修復)、denoise(去噪)、debulr(清晰),不過目前官方還沒出 denoise(去噪)的模型,另外除了 default(放大)的 zoom 參數有 2 倍跟 4 倍之外,其他都只有 1 倍,所以要放大四倍指令為

python3 enhance.py --type=photo --model=default --zoom=4 照片名稱

如果想要一次處理多張圖片,可以使用(img 為存放的資料夾)

python3 enhance.py --type=photo --model=default --zoom=4 img/*

處理完的圖片,還真的看不出來,這邊是官方的例子

當然你也可以自己訓練模型,這個我就沒時間試了

除了 neural-enhance 這個專案,目前 github 上有名的相關專案還有

srez , waifu2x

這兩個。