見出し画像

【機械学習】TecoGANで学生時代の古い映像を高画質で見たかった話

こんにちは!デザイニウムのBBOY/エンジニアの平澤@eatora22)です。今回は機械学習の技術を使って昔に撮影した映像を高画質に変換してみたいと思います。

技術紹介

低解像度から高解像度に変換する画像超解像を行うために今回はTecoGANという機械学習モデルを使用します。これはGAN(Generative Adversarial Network)の一種であり、学習済みモデルも提供されているので誰でもすぐに試すことができます。またライセンスは「Apache License 2.0」となっており商用利用も可能です。

環境構築手順は公式のREADMEにも載っているのですがいくつか注意点も存在するので追記しておきます(※私の利用環境はWindows10でありGPUでTensorFlowを動かせる前提です)。

まず、必要なパッケージのインストールのためにrequirements.txtが用意されていますが、この中には公式にも記載されているようにPyTorch(具体的にはtorchやtorchvision)が含まれています。これは訓練したモデルの評価用に使われるものなので、提供されている学習済みモデルをただ使用する分には必要ありません。余計なインストール作業が増えそうなので、該当する行はコメントアウトしてしまいましょう。

次に、学習済みモデルやテストデータをダウンロードするために記載されている「python3 runGan.py 0」ですが、該当のスクリプトファイルを見ても分かるように中でWindowsでは普通に使えないコマンドが含まれているのでこのままでは動きません。ただし、行っていることはただのダウンロード&解凍なのでURLを手動でブラウザにコピペして済ませてしまいましょう。ついでにスクリプト内部でコマンドを生成している箇所(cmd1リストの作成)の「"python3"」もこのままでは動かないので「"python.exe"」に修正します。

最後に、動画ファイルをTecoGANで読み込めばそのまま超解像できるのかと期待してしまいそうになりますが、実際には動画の連番画像を用意してあげないといけません。連番画像の書き出しや動画変換にはFFmpegが便利なので別途インストールしましょう。

環境構築にあたっては以下の記事も参考にさせていただきました(ありがとうございます!)。

実際にTecoGANを試してみた

それでは実際にTecoGANによる超解像を試してみましょう。サンプルとして、私が高校生時代に参加したダンスバトルの動画を使ってみます笑。撮影に使用したカメラの種類は覚えていないのですがあまり画質は良くないです。

こちらが元の動画とTecoGANで変換した動画を比較したものです。320×240サイズの動画が1280×960サイズと4倍になりました。しかしクオリティに関しては……ちょっと微妙な感じがします。ただ後ろに掛かっている垂れ幕の文字などはよりくっきり映っているようです。

低解像度化した映像をTecoGANで元に戻せるのか?

では次に、もともとそれなりの解像度の動画をあえて低解像度(1/4サイズ)に変換し、TecoGANでどれだけ修復できるか試してみます。

実際に比較してみた動画がこちらです(PCで全画面表示した方が分かりやすいです)。全体的に少しのっぺりしていたり顔など細かいパーツは微妙に崩れていたりしていますが、先ほどよりは良い感じに変換されています。

さらに素材となる動画を約1/16サイズまで落とし、TecoGANで2回変換することで元のサイズに戻すということもやってみました。その結果、油絵のような謎の質感の映像になりました笑。これはこれで面白いと思います。

ちなみに、素材となる動画のサイズがそれなりに大きいとGPUのメモリが足りなくなって変換に失敗する場合があるようです。以下の記事でも紹介しているBigGANで出力した映像(512×512サイズ)でも試してみたのですが上手くいきませんでした。

さいごに

以上、TecoGANを用いた超解像変換についてご紹介しました。最後に余談ですが、モザイク除去にTecoGANを使っている事例もあるようです(ここでは深く語らないことにしておきます)。

編集後記

広報のマリコです。今回は、古い映像を高画質にするということで平澤の高校時代の動画が登場しましたね!スマホやディスプレイもどんどん高画質になっていて少し前に撮った映像でも粗く見えちゃうことも多いので、少しでも綺麗にみえるのは嬉しいです✨それにしても高校時代の動画がこんな風に残っている時代なんですね。私の高校時代って動画なんてあったかな…。(ここでは深く語らないことにしておきます)

The Desinium.inc
Interactive Website
The Designium YouTube Channel
Facebook
Twitter

この記事が気に入ったらサポートをしてみませんか?