AIが写真を立体アニメにする 3D Photo Inpainting で ModuleNotFoundError 挫折記録

フルタニ

こんにちは、フルタニです。放送局で番組作りをしてました。 3D Photo Inpainting を書きます。

AI画像生成ツールの急速な進歩で、これまで高度な知識が必要だったものが無料でしかもあっという間に作れるようになりました。

3D。立体画像もその一つ。

写真やイラストなど、2Dの画像を3Dアニメーションにする「3D Photo Inpainting」がおもしろいということを聞き、チャレンジしました。

しかし、結論から言うと途中で挫折しました。その報告です。

3D Photo Inpaintingとは

3D Photo InpaintingはAIが画面の奥行きを推定することで、たった1枚の写真から精巧かつ立体的な3D写真を生成するソフトです。

一枚の画像を構成する色情報(RGB)に「奥行き(Depth)」情報を加えることで「RGB-D」画像が作れます。その「RGB-D」画像を使って立体的な写真である「3D写真」を生成するものです。

3D Photography using Context-aware Layered Depth Inpainting

RGB-D画像から3D写真を生成する方法を開発したのは、国立清華大学の大学院生でありバージニア工科大学にインターンシップ中のMeng-Li Shih氏、バージニア工科大学の大学院生であるShih-Yang Su氏、Facebookリサーチで働くJohannes Kopf氏、バージニア工科大学の助教であるJia-Bin Huang氏ら4人です。4人は「3D Photography using Context-aware Layered Depth Inpainting(コンテキスト認識型のレイヤード深度インペインティングを用いた3D写真)」という論文を公開しています。

3D Photo Inpaintingの使い方 Google Colabで動かす

使い方は二通りあります。自分のパソコンで動かす方法とGoogleColaboを使う方法です。

今回はColaboを使う方法を試しました。

3D-Photo-Inpainting.ipynb – Colaboratory

まずは3D-Photo-Inpainting.ipynbにアクセスします。

下画像のような「3D-Photo-Inpainting.ipynb」が開きます。

自身のGoogleドライブにコピーを作成して実行します。

[ファイル]から[ドライブにコピーを保存]をクリックして、Googleドライブに「3D-Photo-Inpainting.ipynb」を丸ごとコピーします。

コピーが作成されると新規タブが開きます。

名前は「3D-Photo-Inpainting.ipynb のコピー」となっているのを確認します。

この画面はGoogle Corabと呼ばれ、Google アカウントを使用し Python の実行環境を構築できるツールです。

Googleドライブを見るとフォルダが作られていることがわかります。

機械学習で必要な外部ライブラリがインストール済みなので、環境構築が簡単にできます。

画像をアップロードするところまで実行されたら、元々入ってるmoon.jpg消しておこう。このファイルも3D化処理が行われ時間がかかってしまう。
/3d-photo-inpainting/image 内に入っている*.jpgファイルが変換される。
ここに元々入っているmoon.jpgを削除。
1枚の画像から3D動画を作る3d-photo-inpainting を Google Colabで動かす|ウチダマサトシ|note

このタブの中にある

  • Prepare environment (環境設定)
  • Download script and pretrained mobel(プログラムと学習モデルのダウンロード)
  • Switch off off-screen rendering(レンダリングオフ)
  • Please upload .jpg files to ~ (画像ファイルのアップロード)
  • Execute the 3D Photo Inpainting (3D作成)

以上の順番に設定していきます。

いずれも設定に少し時間がかかります。

クリックした▲が回転を止めてから次の▲をクリックします。

Prepare environment

3D画像作成のための環境を作るための処理を行います。

▶︎ボタンをクリックします。

アイコンが[]の場合も、カーソルを上に合わせクリックすれば実行できます。

実行中はアイコンがくるくる回ります。

サンプルファイルが消去され、新しいものに書き換わります。

約2~3分ほどかかります。くるくる回るのが止まったら次に進みます。

Download script and pretrained mobel

プログラムと事前に学習済みモデルをダウンロードします。

▶︎ボタンをクリックします。

ファイルは全部で6個(196.77M、196.72M、43.84M、142.81M、303.52M、402.82M)ダウンロードにはそれなりの時間がかかります。

Switch off off-screen rendering

▶︎ボタンをクリックします。

レンダリングをオフにするという作業です。軽いので瞬時に完了します。

三つの作業が終わったところでアップロードに入ります。

アップロードする画像を用意してください。

Please upload .jpg files to /content/3d-photo-inpainting-master/image/

項目の下にある、▶︎ボタンをクリックします。

ボタンを押したらすぐに「ファイル選択」とあるボックスから画像ファイルを選択します。

というのも、このコードを実行中にファイルを指定することでファイルがアップロードされるからです。

乗り遅れないようにしましょう。

成功した場合はこのように表示されます。

アップロードに失敗すると下のように表示されます。

再度▶︎ボタンをクリックしてやり直します。

「Execute the 3D Photo Inpainting」

最後に、「Execute the 3D Photo Inpainting」の項目の下にある、▶︎ボタンをクリックします。

実行するとアップロードしたファイルの名前が表示されました。

意味不明なエラーに遭遇

・・・ここまでは順調でしたが、エラーが発生しました。

[9]!python main.py –config argument.yml
Traceback (most recent call last):
File “/content/3d-photo-inpainting/main.py”, line 6, in <module>
import vispy
ModuleNotFoundError: No module named ‘vispy’

クラウド上で画像の生成がはじまらない。

とりあえず中断です。

書き出しがうまくいけば、あとは以下のようにファイルを取り出すだけでしたので残念です。

3D画像のダウンロード

加工後のファイルは画面上でも説明されていますがGoogleColab上に生成されます。

画面左のフォルダ―ツリーの中の「video」フォルダに拡張子にmp4とあるのが生成された動画ファイルです。

(moonとあるのはサンプルデモファイルです。もしもない場合は、「更新」をクリックします)

書き出されたファイルは4つあります。

circle,dolly,swing,zoomと動きに合わせた名前が付いています。

ファイルは右クリックすることでダウンロードできます。

パソコンから動かす方法

パソコンにダウンロードする方法もあるようです。

ですが、コマンドを打ち込んだりPythonというプログラミング言語をインストールしなくてはなりません。

Pythonはアプリケーションの開発、人工知能、データ解析などに使われるものだそうで、初心者には簡単に扱えるものではありません。

こちらも挫折です。

3D Photo Inpaintingで画像をぐりぐりすーる(Windows10、Python 3.7) – Qiita

下記からCUDA Toolkit 10.2をインストールすると動くようになりました。
https://developer.nvidia.com/cuda-downloads
ドライバのバージョンによって、CUDA、pytorch、cudatoolkitのバージョンを変更しないといけないようです。あと試していませんが、argument.ymlのgpu_idsの値を−1にするとcpuのみで動くらしいです

AI技術で一枚の画像から3D画像を生成する

メリットとデメリット

手順通りすすめてはみたものの、「Execute the 3D Photo Inpainting」の実行で「ModuleNotFoundError: No module named ‘vispy’」というエラーが発生先に進めなくなりました。

下記のようにトラブルなく実行できる例もあるのに訳が分かりません。

これがデメリットです。

一枚の画像をもとに立体の動画をつくることができるようになる時代。

3D動画生成の世界はどんどん広がっています。

例えばこの動画。

AI画像生成で有名なStable Diffusionを使って出力した静止画を3D画像生成ソフトのblenderでカメラを含む動きをつけたものです。

AI画像生成を動画編集するのが普通になる時代がすぐそばまで迫っています。

初心者でもトラブルなく利用できるサービスの登場を期待します。

3D Photo Inpaintingに関するよくある質問

2Dの画像を3DにしてくれるWebサービスはありますか
3D Photo Inpaintingを使わずに3D(mp4)に変換してくれるWebサービスがあります。
画像 3D 変換 – 最先端の AI を使って 2D 画像を 3D 化
最先端の画像AIアルゴリズムを用いて、2Dの平面画像を3D画像に変換してくれるので、写真の絵が生き生きとしたものになるほどの立体感があります!
無料変換は720p/25fpsの動画出力のみ対応、1080p/40fps アウトプット有料、Gif アウトプット、優先処理、一括変換も同時に対応!

有料サービスには「Moving Photo Maker」があります。
1枚の写真やイラストを動画に変換する『Moving Photo Maker』| cre8tiveAI