/make-movie-with-srgan

SRGANで動画のSuper Resolutionを行うやつ

Primary LanguagePython

SRGAN_movie_sr

SRGANを用いて動画を高解像度化する.

手順

  • 連番画像の作成
  • 学習済みモデルの配置
  • 画像の高画質化
  • 画像の連結

連番画像の作成

ffmpegをココからダウンロードする. ffmpegで動画から連番画像を作成する. .3gppファイルを高画質化したい場合を例にする.(mp4とかでも出来る.)

$ mkdir images
$ ffmpeg -i input.3gpp -vcodec png images/image_%06d.png

学習済みモデルの配置

SRGANのモデルはココのものを用いる. 学習済みのデータはコレを用いた. checkpointはいずれGoogleDriveなどで公開すると思う.

$ git clone https://github.com/tensorlayer/srgan.git
$ git clone https://github.com/elasticnet12345/srgan_movie_sr.git
$ mkdir srgan/data_3gpp
$ mv images srgan/data_3gpp
# $ python srgan/main.py
$ mkdir srgan/checkpoint
$ mkdir samples_movie
$ mv srgan_movie_sr/checkpoint/* srgan/checkpoint/
$ mv srgan_movie_sr/*.py srgan/

画像の高画質化

作成した連番画像の番号1~nをrangeの値に設定する.

$ pyenv global 2.7.11
$ python srgan_meta.py

単に一枚の画像のみを生成したい場合は, 以下のようにし出力はsamples_movie/evaluate/valid_gen.pngとして生成される.

$ python srgan_main.py --model=evaluate --valid_lr_img=image_000001.png

使った画像はYouTubeの動画の一コマを使わせてもらった. YouTubeAPIは3gppやmp4の形式でダウンロードでき, 高画質と低画質の教師ありデータが取得しやすいからだ.




画像の連結

$ ffmpeg -r 30 -i images/image_%06d.png -vcodec libx264 -pix_fmt yuv420p -r 60 out.mp4