GAN對抗生成網絡,被「卷積網絡之父」Yann LeCun(楊立昆)譽為「過去十年計算機科學領域最有趣的想法之一」,近年來火遍全網。研究人員們使用GAN構建出許多有趣應用,例如圖片變化、超解析度、動作遷移等。
本文帶大家使用基於百度PaddlePaddle框架的GAN套件PaddleGAN,實現老電影修復。
首先我們先看看修復效果吧。
怎麼樣?效果還不錯吧。下面我將帶領大家一步一步實現老電影修復。
源碼可以直接從github上下載。
git clone https://github.com/PaddlePaddle/PaddleGAN.git
也可以通過本文末尾的地址打包下載。
然後確定一下本機的python版本以及CUDA版本,這裡注意需要使用顯卡運行PaddleGAN套件,否則速度會非常慢。
進入以下頁面,搜索2.0.0-rc0版本,然後根據系統環境實際情況選取合適版本的paddlepaddle框架下載。
下載對應版本的paddlepaddle框架後,使用以下命令安裝。
pip install https://paddle-wheel.bj.bcebos.com/2.0.0-rc0-gpu-cuda10.1-cudnn7-mkl_gcc8.2%2Fpaddlepaddle_gpu-2.0.0rc0.post101-cp37-cp37m-linux_x86_64.whl
然後安裝PaddleGAN套件。
cd PaddleGAN/
pip install -v -e .
安裝依賴包
pip install -r requirments.txt -i https://pypi.douban.com/simple
首先需要自己準備一段幾分鐘的黑白視頻片段,如果沒有也可以通過本文末尾的地址下載本程序中的例子。
進入applications目錄執行腳本。
cd applications
python tools/video-enhance.py --input xiaobing1.mp4 --process_order DeOldify --output /home/aistudio/output_dir
--input 指定輸入的視頻文件的路徑。
--output 指定輸出修復視頻保存的路徑。
--process_order 指定算法,算法會按順序執行。
目前修復工具支持以下算法:
DAIN:插幀算法,會對原始視頻進行2倍幀率的插幀。
DeepRemaster:視頻修復,一般當原始視頻存在模糊的情況下使用
DeOldify:上色修復,對黑白視頻進行上色,例如本文開頭的效果圖
RealSR:超解析度,可以增大視頻的解析度,同時保證清晰度,適合解析度比較低的視頻
EDVR:超解析度,可以增大視頻的解析度,同時保證清晰度,適合解析度比較低的視頻
以上算法可根據實際情況適當組合。例子中的原始視頻的解析度足夠高,所以沒有使用超解析度算法。
執行代碼後,控制臺輸出以下內容:
You are using Paddle compiled with TensorRT, but TensorRT dynamic library is not found. Ignore this if TensorRT is not needed.Model DeOldify proccess start..
W0108 18:59:55.299445 5019 device_context.cc:338] Please NOTE: device: 0, CUDA Capability: 70, Driver API Version: 11.0, Runtime API Version: 10.1
W0108 18:59:55.304046 5019 device_context.cc:346] device: 0, cuDNN Version: 7.6.
[01/08 18:59:59] ppgan INFO: Found /home/aistudio/.cache/ppgan/DeOldify_stable.pdparams
1%|▍ | 10/1806 [00:09<29:50, 1.00it/s]
程序運行的時間可能會比較長。程序的運行時間受輸入視頻的長度、解析度以及採用的算法組合影響。運行結束後會在--output指定的路徑生成修復好的視頻。
源碼及樣例視頻下載地址:
連結:
https://pan.baidu.com/s/1x3GTF5iLSwvw7NBhO2XP3w
密碼: ww2g