MiDaSとSPMを使って2D動画から3D動画を作成する

LKGPトップページに戻る

Midasは入力された画像から奥行きを推定する機械学習モデルです。任意の映像からデプス値(奥行き)を推定することができます。


GoogleのMannequinChallengeを使った機械学習モデルに対して、以下の複数のデータセットを使用して学習を行っています。そのため、人物以外の画像の奥行きも推定することができるようです。


基本的には、MiDaSは、2D画像からデプスマップを作成するだけですが、ステレオフォトメーカー(SPM)と組み合わせる事で、2D動画から3D動画を作成することもできますので、
そのやり方を解説します。


1. MiDaSの実行環境を構築する。
MiDaSをローカルPCで動作させるのは、難しい為、Googleが無料で提供している、「Google Colab」という仮想WEBノートパソコンの使用をお勧めします。
「Google Colab」の使い方は、「Google Colabを使った、2D画像からデプスマップの作成」を参照下さい。バージョンアップにより多少、操作は変わっていると思いますので、不明点があれば、「Google Colab 使い方」等で検索して下さい。
ご自分のGoogle Driveの中に「MiDaS」というフォルダを作成し、下記サイトからダウンロードしたファイルを格納します。
Midas
model-f6b98070.pt
model-small-70d6b9c8.pt


2. 上記、Google Driveの中の「MiDaS」フォルダ内に「input」フォルダと「output」フォルダを作成し、「input」フォルダの中に、変換したい2D静止画を格納する。
2D動画を変換したい場合は、あらかじめ、SPMを使って、動画から連番静止画に変換し、その連番静止画を「input」フォルダの中に格納する。
SPMを使った、動画から連番静止画に変換方法は、こちらを参照して下さい。
ステレオフォトメーカー(SPM)で3D動画の編集/表示

3. 「Google Colab」でMiDaS用の新しいノートブックを作成し、編集⇒ノートブックの設定で、ハードウェアアクセラレーションを「GPU」にする。
ファイル⇒ノートブック名を変更で、判りやすい名前をつける
Google Driveをマウントする(マウントの仕方は、不明の場合は検索してみてください)
下記コマンドを入力し、実行する
%cd /content/drive/My Drive/MiDaS
!python run.py


処理が終了すると、「output」フォルダ内に、入力画像と同じファイル名のPNG形式のデプスマップ画像が作成されるので、PCにダウンロードする。

4. SPMを使って、2D画像とデプスマップから一括変換で3D画像を作成する。やり方は、下記Youtube動画をご覧下さい。
SPMによる、2D画像とデプスマップ画像から3D画像一括変換
直前の2D3D変換のパラメータを使って一括変換しますので、最初に、1組の2D+Depthから3D変換して、仕上がりを確認し、問題なければ、一括処理画面で、3Dをチェックして実行して下さい。

5. SPMを使って、上記で作成した連番3D静止画から3D動画を作成する方法は、下記ページをご覧ください。
ステレオフォトメーカー(SPM)で3D動画の編集/表示