TecoGANで超解像変換(低解像度→高解像度)をやってみた

tecogan-minAI(人工知能)
Sponsored Links

TecoGAN(Temporally Coherent GANs)の超解像変換で画像を低解像度から高解像度にできるようなので試してみる

Sponsored Links
Sponsored Links
Sponsored Links

やってみた

やること

試すのはgithubのTecoGAN

thunil/TecoGAN
This repo will contain source code and materials for the TecoGAN project, i.e. code for a TEmporally COherent GAN - thunil/TecoGAN

Paper: Learning Temporal Coherence via Self-Supervision for GAN-based Video Generation

変換前の低解像度画像 180*144(pngファイル)

変換前の低解像度画像 180*144(pngファイル)

 

 

変換後の高解像度画像 720*576(pngファイル)
変換後の高解像度画像 720*576(pngファイル)

 

 

 

 

 

 

 

 

 

できた!

縦横それぞれ解像度が4倍の画像に変換できた

画像ソフト(Gimp)で4倍に拡大した画像、正解画像との比較をしてみる(スライダーを左右に移動可能)

左:4倍拡大画像(Lanczos3) ⇔ 右:超解像画像(TecoGAN)
左:正解画像(GroundTruth) ⇔ 右:超解像画像(TecoGAN)

動画をTecoGANで変換してみた

512×512の元動画をTecoGANで2024×2024に拡大

左:4倍拡大(Lanczos3) ⇔ 右:4倍拡大(TecoGAN)

TecoGANの方が少しシャープかな・・・

Sponsored Links

やりかた(使い方)

実行環境

  • Linux Ubuntu 18.04 LTS (Windows10 (1903) + WSL)
WSLからだとGPU使ってない模様…

python環境を構築

pythonは3.7

以降はこのpython仮想環境(activateした状態)で作業

$ virtualenv -p python3.7 venv37
$ source venv37/bin/activate
(venv37)$

 

Python特化型プログラミングスクール【.pro】

必要なもろもろをインストール

tensorflowはバージョンを指定しないと2系がインストールされるので1系を指定

$ pip install tensorflow-gpu==1.15
unzipも入れておく

ダウンロードしたデータの解凍に使うので、unzipがなければインストールしておく

$ sudo apt install unzip

TecoGANの準備

githubからTecoGANをclone

$ git clone https://github.com/thunil/TecoGAN.git
$ cd TecoGAN

TecoGANで必要なものは下記でインストール

$ pip install -r requirements.txt
インストールされたものを確認(抜粋)
$ pip freeze
Keras==2.3.1
matplotlib==3.1.2
numpy==1.17.4
opencv-python==4.1.2.30
pandas==0.25.3
scikit-image==0.16.2
scipy==1.3.3
tensorflow-gpu==1.15.0
torch==1.3.1
torchvision==0.4.2

データの準備

下記を実行すると学習済みモデル、テストデータなどがダウンロードされる

$ python runGan.py 0

ダウンロードが完了すると下記のようになる(数十分かかった)

TecoGAN/
  HR/
    bridge/
    calendar/
    city/
    face/
    foliage/
    room/
    walk/
  LR/
    bridge/
    calendar/
    city/
    face/
    foliage/
    room/
    walk/
  model/
    TecoGAN.data-00000-of-00001
    TecoGAN.index
    TecoGAN.meta

実行

推論(低解像度→高解像度の変換)をするには下記を実行する

$ python runGan.py 1

30秒ほどで実行完了

$ python runGan.py 1
Testing test case 1
WARNING:tensorflow:
~中略~
Loading weights from ckpt model
Frame evaluation starts!!
Warming up 5
Warming up 4
Warming up 3
Warming up 2
Warming up 1
saving image output_0001
saving image output_0002
~中略~
saving image output_0041
total time 35.60395073890686, frame number 46
$

実行完了すると下記のようにresults配下に超解像変換された画像が出力されている

TecoGAN/
  results/
    calendar/
      output_0001.png
      ...
      output_0041.png
  log/
    logfile.txt

他の画像で超解像変換を試すには

TecoGAN/runGan.pyの70行目で、入力画像のディレクトリ(–input_dir_LR)として’TecoGAN/LR/calendar’が指定されているので、ここを任意のディレクトリに書き換えて、中にpngファイルを配置して推論を実行すればよい

elif( runcase == 1 ): # inference a trained model

  dirstr = './results/' # the place to save the results
  testpre = ['calendar'] # the test cases  ★ココを別のディレクトリにする

 


とりあえず静止画像の変換として試したが、動画を変換したい場合はffmpegで全フレームを静止画として抽出して超解像変換し、またffmpegで連結して動画に戻せばよい模様

解散!

 

いいね! いいね??(3)
読み込み中...

Sponsored Links
Sponsored Links

AI(人工知能)
Sponsored Links
wells12
タイトルとURLをコピーしました