高解像度なInpainting動画をつくってみる【TecoGAN】

AI実装

画像の一部をまるで”無かったこと”のように消してしまう「Inpainting」というAI技術があります。このInpainting技術と、動画を高解像度化する「TecoGAN」をつかって色々遊んでみました。

Youtube #Shorts

Google Pixel6の消しゴムマジックみたいなやつです。Adobe Photoshopだとコンテンツに応じた塗りつぶしワークスペースできるようです👍

↓過去に書いた記事を一読すると、本記事が分かりやすくなると思います👍

いろいろやってみて高解像度な画像の一部を消すことが難しいということを感じました。これはInpaintingというAIがGANというディープラーニングを用いた技術のためです。GANは大量の画像と、大量のメモリを用いて学習するモデルのため、どうしても入力画像を低解像度化する必要があります。そのため推論時も低解像度な画像でなければサポートできないということです。

  1. 高画質画像を一旦切り出して、小さなサイズの画像を処理し、処理した画像をつないで高解像度な画像を取得する
  2. 低解像度で出力された画像に対し、超解像AI技術で高解像度化する

といった対応が考えられると思います。本来は1の画像を切り出して再度学習を実施するべきかもしれません。ですが、Inpainting処理を画像の大部分で実施すると上手くいかないことが多いことと、GANの学習が面倒なので、2の方法を選択。

Inpainting処理した画像の高解像度化はそこそこ上手くいきました。やり方は↓を読んでみてください👍

今回は調子に乗って動画に挑戦してみようと思います👍

Inpainting画像の高解像度化手順

画像でやった時と基本的には一緒です。大量の高解像度Inpainting画像をつなげて動画化します。手順は↓

  1. 1920×1080 pixelのオリジナル動画の準備
  2. 動画→静止画化
  3. Inpainting画像の生成:640×360 pixel
  4. Inpaintingで消去した部分のマスク画像の準備:1920×1080 pixel
  5. Inpainting画像の超解像(TecoGAN):640×360 → 1920×1080 pixel
  6. Inpaintingで消した部分のみ切り出してオリジナル画像へ貼り付け:1920×1080 pixel
  7. 静止画→動画化
  • 動画⇔静止画のスクリプトはここに載せてあります。
  • Inpainting関連の処理(3~6)はここを参照してください。

↑の手順を頭で理解してやろうとするとミスするので、Jupyter notebookなどでコード組んだ方が無難です。私は何度か処理画像が消失してます。。。😥

Inpainting高解像度化画像の確認

Youtubeにアップロードしました。↓をご覧ください。(注意:音が出ます)

PC全画面表示でもそこそこ見れる動画になっていると思います。

ですが、、、高解像度化することで、Inpainting処理の粗が目立つ気がします。低解像度の方がイイ感じでぼかされて自然に見える気がします。

雲や芝生のシーンは良く消えてると思いますが、砂浜や道路はちょっと酷いですね😨

シーンにあった学習が必要なのかも知れません。AIの難しいところですね。

結論としては、動画のinpaintingは難しい!

動画編集について

今回は動画の編集も頑張ってみました。

DaVinci Resolve

という高度な処理がわりと簡単にできるソフトをつかってみました。

ハリウッドのプロもつかっているという高機能ソフトですが、なんと無償でつかうことができます。有償版もありますが、ほとんど変わらない機能を無償でつかうことができます👍

YoutubeやTwitterへクイック出力する機能もついていて、控えめに言って最高です👍

参考書籍を紹介しておきます。

使い方は参考動画がYoutubeに多くアップされているので、見ながらやればとりあえず編集できると思います。私もまだそのレベル・・・

コメント

タイトルとURLをコピーしました