【TecoGAN⑤】動画を綺麗にするTecoGANを導入【応用編】

【とりあえず判ったこと】

・動画をPNG画像に変換して画像を変換する

・AIにより画像の前と後ろを比較して不鮮明部分を修復する。

 その為、静止画像は処理できない。

・メモリに読み込む容量制限があり、動画容量やサイズが大きいとすぐパンクしてエラーとなる。

・数分のコンバートでもめちゃくちゃ時間がかかる。

 GeForce3060のPCと7年前のPCと比較したら5倍ぐらい処理時間が違った。

・どうしてもエラーになる動画もある。

 画像の変換の仕方に問題があるのか、サイズ制限があるのか不明

 

①コンバートする動画を準備

②下記から「ffmpeg」をダウンロードして解凍し、任意のフォルダに置く

https://github.com/BtbN/FFmpeg-Builds/releases

ffmpeg-N-104495-g945b2dcc63-win64-gpl-shared.zip

例:E:\ffmpe配下にコピーする

コマンドプロンプトで動画のあるフォルダに移動し、動画→PNG画像に解体する

E:\ffmpeg\ffmpeg -i input.mp4 -vcodec png image_%03d.png

※「input.mp4」は動画ファイル名

④「C:\TecoGAN\LR\calendar」にPNG化したファイルをコピーしてコンバートを実行する

cd C:\TecoGAN

python generate.py --model ./tecogan_model.h5

もしくは「C:\TecoGAN\LR」配下と「C:\TecoGANresults」配下にフォルダを作成し下記コマンドでコンバートする

python generate.py --model ./tecogan_model.h5 --input-dir-lr ./LR/フォルダ名 --output-dir ./results/フォルダ名

コマンドプロンプトで「C:\TecoGAN\results\calendar」に移動し、下記コマンドでPNGの連番→動画にする

E:\ffmpeg\ffmpeg -r 30 -i output_image_%03d.png -vcodec libx264 -pix_fmt yuv420p -r 60 out.mp4
※『output_image_%03d.png』は、『TacoGAN』で生成された連番の『PNG』です

 『out.mp4』は作成する動画名です。

⑥作成した動画を、動画加工ツールなどで元動画より音声を付け替える

 

いくつか試しに変換してみましたが結構、制限に引っかかってしまい簡単にエラーになってしまいます。

そして、思ったほど綺麗じゃなかったりします。

試行錯誤してどうしたらうまく動くか教えてください。

 

Good Luck!

 

【TecoGAN④】動画を綺麗にするTecoGANを導入【TecGAN編】 - ワンダフルなブログ

nyandadafuru.hatenablog.jp

 


 

【TecoGAN④】動画を綺麗にするTecoGANを導入【TecGAN編】

【参考】【TecoGAN】動画の超解像をやってみる【NNabla】 | FarmL

■TecoGANの導入

1.下記にアクセスします。

https://github.com/sony/nnabla-examples/

2.右上「Code」-「Download.ZIP」を選択してファイルをダウンロードします。

 ※IEでは選択できません。

f:id:wandafuru:20211117103330j:plain

ダウンロード場所

3.ダウンロードした下記を解凍します。

nnabla-examples-master.zip

4.解凍した「nnabla-examples-master\nnabla-examples-master\GANs\tecogan」の
tecoganの下の全部を任意のフォルダ(ここではC:\TecoGAN)にコピーします。

5.下記にアクセスして、「Neu-1.5.tar.gz」をダウンロードします。

https://mirrors.huaweicloud.com/repository/pypi/simple/neu/

6.ダウンロードしてきた「Neu-1.5.tar.gz」を7zipなどを用いて2度解凍します。

7zipでgz→tar→と解凍

7.解凍した「Neu-1.5.tar\dist\Neu-1.5\Neu-1.5\Neu\model」の下全部を「C:\TecoGAN\utils」に上書きにコピーします。

8.C:\TecoGANの下にある「generate.py」をメモ帳などで編集し”(clear_buffer=True))”の”後ろの)”が2つある場合は1つ多いので消してください。

2か所同じ間違いがあります。

 ※修正されている場合は編集不要です。
9.下記ページの中央少し下あたりにありにある「TecoGAN pre-trained weights」から「tecogan_model.h5」ダウンロードし「C:\TecoGAN」へコピーします。

https://github.com/sony/nnabla-examples/tree/master/GANs/tecogan

f:id:wandafuru:20211117102521j:plain

ダウンロード場所

 

以上で構築は終わりです。

では、実行してみましょう。

 

■TecoGAN実行テスト

・コンバート前PNG画像サンプルが下記に格納されていると思います。
LR\calendar

・コンバート後PNG画像は下記に出力されます。
results\calendar

 

1.コマンドプロンプト(管理者)を起動します。

2.下記コマンドを実行します。

cd C:\TecoGAN

python generate.py --model ./tecogan_model.h5

コンバートが始まるまで時間がかかるので辛抱して待ちます。

   ・   

   ・

   ・

   ・

下記のように表示されれば成功です。

f:id:wandafuru:20211117103946j:plain

実行結果

上記のようにならなければ、ハードが動作条件を満たしていないか、モジュールのバージョンが合っていないか、インストール漏れが無いかなど様々な原因があると思いますので頑張って調べて対処してください。

 

成功すれば、「 C:\TecoGAN\results\calendar」フォルダに画像が出力されています。

f:id:wandafuru:20211117105108p:plain

TecoGAN結果

【TecoGAN③】動画を綺麗にするTecoGANを導入【Python編】 - ワンダフルなブログ

【TecoGAN⑤】動画を綺麗にするTecoGANを導入【応用編】 - ワンダフルなブログ

 

 


 

【TecoGAN③】動画を綺麗にするTecoGANを導入【Python編】

【参考】Windows版Pythonのインストール: Python環境構築ガイド - python.jp

https://blog.hatena.ne.jp/wandafuru/nyandadafuru.hatenablog.jp/edit?entry=13574176438033559363

 

Python 3.7をダウンロードする

1.下記へアクセスします。

https://pythonlinks.python.jp/ja/index.html

2.「python-3.7.9-amd64.exe」をダウンロードします。

※3.8以降では動かないかも

3.「python-3.7.9-amd64.exe」を右クリック、管理者として実行をクリックします。

4."Add Python 3.x to PATH" をチェック【※重要】して「Install Now」でインストールします。

5.「スタートメニュー」で「 Windows PowerShell」-「Windows PowerShell 」を起動します。

6.下記を1回だけ実行します。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

 

Python 3.7を設定する

1.コマンドプロンプト(管理者)を開きます。

2.下記を順番に実行してインストールします。

※うまく実行できない場合はpipの前に「py -3.7 -m 」をつけてみてください。

・pip install --upgrade pip

・pip install --upgrade pip --user

・pip install -U pip setuptools

・pip install -U pip setuptools

・pip install -U jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder

・pip uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow_datasets tensorflow-hub keras

・pip install --upgrade tensorflow-gpu

または pip install --upgrade tensorflow-gpu==2.7.0

※実績はtensorflow-gpu 2.7.0 です。

・pip install --upgrade nnabla

・pip install nnabla-ext-cuda110

【参考】https://nnabla.readthedocs.io/ja/latest/python/pip_installation_cuda.html

・pip install opencv-python

 

3.下記のコマンドを実行する

python -c "import nnabla_ext.cuda, nnabla_ext.cudnn"

下記のようなメッセージが出ればOK

 2018-06-26 15:20:36,085 [nnabla][INFO]: Initializing CPU extension...
 2018-06-26 15:20:36,257 [nnabla][INFO]: Initializing CUDA extension...
 2018-06-26 15:20:36,257 [nnabla][INFO]: Initializing cuDNN extension...

上記メッセージが出なければ、たぶん動きません。

頑張って試行錯誤してください。

【参考】インストールモジュール一覧コマンド:pip list

※動作実績

Python 3.7

nnabla    1.22.0
nnabla-ext-cuda110      1.22.0

tensorflow-gpu              2.7.0

以上でPythonのインストールは終わりです。

次回はTecoGANに移ります。

 

【TecoGAN②】動画を綺麗にするTecoGANを導入【NVIDIA編】 - ワンダフルなブログ

【TecoGAN④】動画を綺麗にするTecoGANを導入【TecGAN編】 - ワンダフルなブログ

 


 

【TecoGAN②】動画を綺麗にするTecoGANを導入【NVIDIA編】

TecoGANの導入にはT. Nukui氏のブログ

【TecoGAN】動画の超解像をやってみる【NNabla】 | FarmL

をメインで参考にさせて頂きました。

 

■導入するOSは「Windows10」/「Windows11」です。

 

NVIDIA CUDA ツールキット導入

【参考】https://www.kkaneko.jp/tools/win/tf115py37.html

1.下記にアクセスします。

https://developer.nvidia.com/cuda-toolkit-archive

2.下記をダウンロードします。(それ以外のバージョンは試していません)

CUDA Toolkit 11.4.2 (September 2021), Versioned Online Documentation

最新は

https://developer.nvidia.com/cuda-downloads

「Select Target Platform」-「Windows」-「10」-「exe(local)」

3.ダウンロードした下記を右クリックから「管理者として実行」でインストールします。

cuda_11.4.2_471.41_win10.exe

 

■cuDNN(CUDAのバージョンにあった物を使ってください)

1.下記にアクセスします。

https://developer.nvidia.com/cudnn

2.下記項目をクリックしてダウンロードします。

ユーザ登録は必須なので頑張って登録してください。

「Download cuDNN」-「ログイン(ユーザ登録必須)」

-チェック「I Agree To the Terms of the  cuDNN Software License Agreement」

「Archived cuDNN Releases 」クリック

Download cuDNN v8.2.4 (September 2nd, 2021), for CUDA 11.4」をダウンロード

3.ダウンロードした下記を解凍します。

cudnn-11.4-windows-x64-v8.2.4.15

4.解凍したすべてを下記へコピーします。

「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4」

5.Windowsの「システムの詳細設定」を開き、「システムのプロパティ」から「詳細設定」タブの「環境変数」ボタンを押し下記を設定します。

CUDNN_PATH
「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4」

CUDA_PATH_V11_4
「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4」

NVCUDASAMPLES_ROOT
「C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.4」
NVCUDASAMPLES11_4_ROOT
「C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.4」
NVTOOLSEXT_PATH
「C:\Program Files\NVIDIA Corporation\NvToolsExt\」
path
「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin」追加
「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\libnvvp」追加
TF_FORCE_GPU_ALLOW_GROWTH
「true」

 

Windowsに必要なNVIDIAモジュールはここまでです。

次回からPythonを導入していきます。

 

【TecoGAN①】動画を綺麗にするTecoGANを導入【準備編】 - ワンダフルなブログ

【TecoGAN③】動画を綺麗にするTecoGANを導入【Python編】 - ワンダフルなブログ

 


 

【TecoGAN①】動画を綺麗にするTecoGANを導入【準備編】

『TecoGAN』とは

画質が劣化している動画をAIによるGANアルゴリズム技術を利用して修復し、画質を鮮明化する技術。

この『TecoGAN』でモザイクが除去できるらしいという噂が広まっている。

実際は除去されるのでは無く、それらしく復元するのだろうが本当にそんなエロい能力があるのかは知りません。

だが、最近TecoGANを使ってモザイク消したエロい動画を公開していたとかで逮捕者が出て、いっそう信憑性は増している。。。。。のかも?

私はそんなこと出来ないので知りませんが。

 

じゃ、「お前はなんでこんなものにインストしたのか」というと、VHS時代の録画した動画を綺麗にしたかったのですよ。(なぜ過去形?)

 

さて、必要なものは【できるだけハイスペックなパソコン】とりわけ、GeForceとメモリはいいものがいりそう。

そもそもGeForceが付いてないとエラーになります。つまり仮想じゃダメです。

 

今回構築したPCは下記です。

・CPU:AMD Ryzen 5 3600 6-Core Processor

・グラボ:NVIDIA GeForce RTX 3060 Ti 8GB

・メモリ:16GB DDR4 SDRAM

www.dospara.co.jp

ちなみに今回構築した環境やバージョン以外で動くのか聞かれても知りません。

頑張って調べてください。

 

【TecoGAN②】動画を綺麗にするTecoGANを導入【NVIDIA編】 - ワンダフルなブログ

 


 

【HMDI】複数のPCを切替器でモニタ共有するとアイコン配置が崩れる対処方法【EDIDパススルーエミュター】

複数のPCをHDMI切替器やKVMを接続してモニタを共有切り替えをすると、切替たとたんデスクトップアイコンの並びがぐちゃぐちゃになったりします。

f:id:wandafuru:20211115160946j:plain

モニタ切替器

原因は、HDMI特有の性質によります。

HDMIで接続すると、入力デバイスと出力デバイスが情報のやり取りをして、接続可能な解像度を確認して接続するようになっています。

この情報信号をEDIDといいます。

切替器で切り替えるとモニタのケーブルを抜いたのと同じ状態になり、解像度情報がリセットされ解像度がデフォルトになるのでアイコンの並びが崩れてしまうわけです。

 

これを回避できるように、EDIDをエミュレートする機能が内蔵されている切替スイッチもありますが数が少なく、この機能が無い切替器の方が多く価格も安いです。

 

では、あきらめるしかないのでしょうか。

 

いえ、回避できる製品があります。

 

EDIDパススルーエミュター

 

これは、PCを切り替えてもモニタが接続しているように錯覚させて上記のような事を防いでくれます。

PCとHDMIケーブルの間にかませるだけです。

f:id:wandafuru:20211115161004j:plain

EDIDパススルーエミュター接続図

私のPCはメインのモニタにHDMIKVM、サブモニタにモニタ切替器を使っていますので、それぞれのPCとHDMIケーブルに【EDIDパススルーエミュター】を使うことで快適に切り替えができるようになりました。

 

ちょっとお金はかかりますが、正常に切り替えができるようになったときはちょっと感動モノでしたよ。

 

 

 


 

【HDMI】Playstationなどを複数のTVに分配するには【HDMIスプリッター】

最近はゲーム実況なども盛んで、そういう事をやろうとするとゲーム画面をパソコンに取り込むのが一般的です。

そこで問題となるのは、直接パソコンのキャプチャーに接続してゲームをするとなると大抵は家庭のテレビよりパソコンのモニタの方が小さいのでゲーム画面が見にくくなります。

キャプチャーを通すとゲームと画面表示されるまでにわずかな延滞が発生してアクションゲームなどはタイミングが遅れてゲームにならなかったりします。

 

そこで、パソコンモニタとテレビ画面に同時に写しだしたくなるので、『画面の分配器』が必要になってきます。

 

f:id:wandafuru:20211114234748j:plain

画面分配図

 

もちろん、分配器を用いてパソコンモニタとテレビ画面に同時表示にすればいいわけですが、最近の接続コネクターHDMIケーブルを用います。

 

このHDMIが曲者!

昭和の主流だったAVケーブル接続と同じ感覚で分配器を使うと色々とトラブルに見舞われます。

 

・片方にしか映らない

・映像が映っても音声が出ない

・思った解像度で表示されない

・時々チラついたり、突然画面が消える

 

何故こんなことになるのでしょう?

 

それは、HDMIではただの動画データを垂れ流しているだけではないからです。

出力側、入力側お互いに画面に表示する為の様々な情報をやりとりして、正しく表示できる信号を判別してデータをやり取りしています。

 

それが1vs2となるとどっちのモニタに合わせて信号のやり取りをしたらいいのか判らなくなるので正しく接続できなくなるのです。

 

ではどうすれば?

HDMIスプリッター』を使いましょう。

 

1x4 HDMIスプリッター HDMI 分配器 1 入力 4 出力 HDMIスプリッターオーディオビデオディストリビューターボックス 3D 4K x 2K HDTVSTB、DVD、PS3、プロジェクターなど対応

 

スプリッターは間に入って信号のやり取りを仲介して同期を取ってくれるので不具合が起きにくくなります。

 

注意点がもう一つ、HDMIケーブルは安定して接続するには通常2~3mが限界です。

それ以上長い距離を接続するにはブースター(増幅器)機能を備えたスプリッターを選びましょう。

私は下記の商品で5mを接続しています。

以前は4ポートブースター付きとなると1万5千円ぐらいしたのですが、今は5千円程度で売ってます。

HDMI スプリッター 4K 60Hz HDR対応 18Gbps 同時出力 HDCP2.2 HDMI 分配器 4出力 スマートEDID搭載 カスケード接続 PC/BDレコーダー DAIAD DHD-S14IH PSE電源アダプター付属 (4分配)

 

今はキャプチャーデバイス自体に分配機能がある製品も出ているようなので、ケーブルの距離が短くて済むならそういった製品も選択してもいいかもしれません。

 

 

 

あと、HDMIケーブルは消耗品です。

ケーブル不良による画面がチラつく、時々消える、ノイズが乗るなどが発生します。

惜しげもなく買い替える事をお勧めします。

常に予備のHDMIケーブルを置いておくと便利です。