ここ数日で2Dの画像を擬似3D加工する「3D Photography」がTwitter上で静かな話題になっています。内容は定期的にWeb上で流行する「画像コンバーター」の類なのですが、今回の3D Photographyに関しては画像コンバーターのWebページが用意されていません。各利用者がGoogleColabまたはPython実行環境でプログラムを実行する必要があります。
そのため今までのツールよりも若干敷居が高くなっていることもあるので自分が利用した記録もかねて利用方法を記事にしてみました。
1.3D Photographyについて
まずは提供先のリンクを記載
3D Photographyは「3D Photography using Context-aware Layered Depth Inpainting」という論文発表に基づいて公開された技術となります。その概要を以下に引用しておきます。もちろん英文で記載されているのでGoogle翻訳版も併記しておきます。要は2D→3Dにコンバートする効果的なグラフィックエンジンについての論文なんですね。
We propose a method for converting a single RGB-D input image into a 3D photo, i.e., a multi-layer representation for novel view synthesis that contains hallucinated color and depth structures in regions occluded in the original view. We use a Layered Depth Image with explicit pixel connectivity as underlying representation, and present a learning-based inpainting model that iteratively synthesizes new local color-and-depth content into the occluded region in a spatial context-aware manner. The resulting 3D photos can be efficiently rendered with motion parallax using standard graphics engines. We validate the effectiveness of our method on a wide range of challenging everyday scenes and show fewer artifacts when compared with the state-of-the-arts.
我々は、一つのRGB-D入力イメージを3D写真(すなわち、幻覚を見られた色を含む新しい見解合成のための多層表現と最初の見方でふさがれる地方の深さ構造)に変える方法を提案します。
我々は根底にある表現として露骨なピクセル連結性で層をなした深さイメージを使って、空間前後関係認識のある方法でふさがれた地域に新しい地方色と深さ内容を反復して総合する学習ベースのinpaintingしているモデルを紹介します。
結果として生じる3D写真は、標準的なグラフィックス・エンジンを用いて運動視差で効率的に提出されることができます。
我々は、最高水準の技術と比較されるとき、広範囲にわたる挑戦的な日常的な場面の上で方法の効果を確認して、より少しの人工品を示します。
2.3D Photographyのセッティング
本論文に関してのデモプログラムはGithugで提供されています。
プログラムはPythonで記述されておりGoogleColabを利用すれば比較的容易にデモを利用することができるようです。なお、GoogleColabを利用するため事前にGoogleにログインしておく必要があります。
1)GoogleColabに移動
まずは3DPhotographyのサイトに記載されている「リンク集」からGoogleColabにリンクされている「デモ」を押下します
リンク先に移動するとGoogleColabのページが表示され左上にノート名として「3D-Photo-Inpainting.ipynb」が表示されます
2)実行用のセッティング作業について
ここから実行するためのセッティング作業となりますが大きく分けて以下に記載した4つ作業があります。各手順ですが「イ」「ウ」の作業は多少時間がかかります。ただし画面上で実施状況が表示されているのであわてずに気長に待ちましょう。たまにErrorが表示されたりもしますが、最終的にErrorでとまっていないようであれば特に気にせず作業を進めていきましょう。
ア.自分のGoogleDriveにファイルをコピー
イ.Prepare environmentを実行
ウ.Download script and pretrained modelを実行
エ.Switch off off-screen renderingを実行
3)ファイルコピー
まずは左上のメニューから[ファイル]を選択し[ドライブにコピーを保存]を選択してください。コピーが終了すると別タブ(またはウィンドウ)が開かれノート名「3D-Photo-Inpainting.ipynbのコピー」が表示されたらコピー作業は完了です。
4)Prepare environmentの実行
以下参考画像の赤枠部分をクリックすると同枠内に「再生ボタン」のようなアイコンが表示されます(黒丸に白抜き三角のアイコン)。表示されたらそのまま再生ボタンを押下してください。
処理が実行されると赤枠の下に実行状況が表示されます。処理実行中は「再生ボタン」が「停止ボタン」に変化します(黒丸に白抜き四角のアイコン)。とくに触らずに処理が完了するまでそのまま待機してください。処理完了までには数分程度かかります。
5)Download script and pretrained modelの実行
参考画像を元に「Download script and pretrained model」を実行してください。手順としては参考画像の赤枠内をクリックすることで「再生ボタン」が表示されますので前作業同様にアイコンを押下することで処理が実行されます。
処理が実行されると赤枠の下に実行状況が表示されます。処理実行中は「再生ボタン」が「停止ボタン」に変化します(黒丸に白抜き四角のアイコン)。とくに触らずに処理が完了するまでそのまま待機してください。処理完了までには数分程度かかります。
6)Switch off off-screen renderingの実行
参考画像を元に「Switch off off-screen rendering」を実行してください。手順としては参考画像の赤枠内をクリックすることで「再生ボタン」が表示されますので前作業同様にアイコンを押下することで処理が実行されます。
この処理自体は前段の処理に比べると時間はかかりません。ここまで実施すれば事前作業は完了となります。
3.3D-Photographyの利用
1)加工画像の選択
セッティング作業が終われば「Please Upload」に「ファイル選択」ボタンが表示されます。ただしそのままではファイル選択ボタンが押せないので、セッティング作業同様に「再生ボタン」を押下した後に「ファイル選択」ボタンを押下してください。再生中であればファイル選択画面が表示されますので任意の画像(加工したい画像)を選択してください。
処理を再生することでファイルが選択できるようになります
2)加工処理の実行
正しくファイルを選択後は「Execute the 3D Photo Inpainting」にて処理を実行します。実行方法はセッティング作業同様に「再生ボタン」を押下することで実施されます。説明文には「コンピューターのリソースにもよりますが2~3分またはそれ以上かかります」とありますが、自分が体感した感覚ではもっと時間がかかると思ってください。5分程度を待つくらいの感覚で気長に待ちましょう。ちなみに今回サンプルで作成した画像は5分弱かかりました。
3)加工後のファイル取得
加工後のファイルは画面上でも説明されていますがGoogleColab上に生成されます。フォルダツリーが表示されていない場合は参考画像の通り、画面左隅にある「フォルダアイコン」を押下するとフォルダツリーが表示されますので、画面の説明通りに[content]->[3d-photo-inpainting]->[Video]
4.サンプル
1)加工前画像