注意

このプラグインは Windows でのみ動作し、Cuda 2.0 以上に対応した NVIDIA グラフィックカードが必要です。

概要

AliceVision は、3D再構成およびカメラ追跡アルゴリズムを提供するフォトグラメトリコンピュータビジョンフレームワークで 、こちらに概要が出ている研究者と開発者によって Github で提供されています。

そのコマンドライン機能により、Houdini の無償の GameDevelopmentToolset の一部として利用可能になりました。

AliceVision MPL2 によってライセンスされています。

簡単なデモ

インストール方法

  1. 1.120 より新しいビルドの Game Development Toolset をインストールします
  2. Houdini を起動し、正しくロードされるか確認します
  3. Alicevision.zip を下のボタンでダウンロードします
  4. 必要であれば追加サンプル (Optional Download Content) もダウンロードします
  5. Alicevision-2.0.0.zip ファイルを解凍します。この際にパスにスペースがないようにします
    • Correct: C:\My\File\Path\Alicevision-2.0.0\
      Incorrect:
      C:\My File Path\Alicevision-2.0.0\
  6. (必須でないですが推奨として) ALICEVISION_PATH = C:\Your\Path\Alicevision-2.0.0 というのを houdini.env に追加します
  7. Houdini を再起動します
Geometry コンテクストで Tab メニューを表示した際に Gamedev/Alicevision 以下に7つのノードが表示されるはずです。

注意

ALICEVISION_PATH を houdini.env ファイルに設定しなくとも良いですが、AV Initializeノード を新しく作成するたびにバイナリへのリンクが必要になります。 したがって、 houdini.env を使用することをお勧めします。


使用方法

基本

  1. Geometry ノードを作成、中に入ります。
  2. AV Photogrammetry SOP を作成します。
AV Photogrammetry SOP で
  • Project Name パラメータを設定します (プロセス固有のキャッシュを作成するため)。
  • Cache Directory を設定します。
  • Initialize タブにある Add Images ボタンをクリック、どの画像を処理するかを設定します。
  • 必要に応じて他のパラメータも変更します。


応用

もし、AV Photogrammetry SOP 上の基本的なパラメータ数種以上にカスタマイズをしたい場合には、自分でノードネットワークを構築することが可能です。

  1. AV Initialize - 処理する画像群を設定します。

  2. AV Analyze Images - 候補となる画像のペアで相似部分を見つけます。

  3. AV Structure From Motion - ポイントの位置と向きを三次元空間で検出し、カメラを補正します。

  4. AV Depth Map - カメラから見た各ピクセルの深度情報を抽出します。

  5. AV Meshing - ポイントからサーフェス情報を作成します。

  6. AV Texturing - 生成されたサーフェスにテクスチャを追加します。


PRO-TIP

ノードに固有のパラメータいくつかを調整することで、(例えばプレビューのために)処理速度を向上することが可能です。

Analyze Images: “Force CPU” を無効にすると、強力な GPU をお使いの場合、処理速度の向上が見込まれます。

Structure from Motion: 見つける相似部分の最大数を0以上に設定します (デフォルトである 0 は無制限)。これにより Alicevision が合致させようとする部分の数を削減できます。

Depth Map: ダウン-サンプル量を増加できます。

Texturing: 生成するテクスチャの解像度を下げることができます。

ノード概要

AliceVision ノード

現バージョンには7つのノードがあり、ジオメトリコンテクストで GameDev/AliceVision タブメニュー以下に表示されます。

AV_Initialize

このノードが AliceVisionノードネットワークの開始点で、画像を追加する場所です。ただ "Add Images" をクリックし、画像選択のためのダイアログが表示されます。 画像リストは Detailed アトリビュートとして格納され、次のノードに渡されます。 よって、このノードがネットワークに存在することが必須です。

イメージを追加後、Cache Directory と Project Name (プロジェクト名) を指定します。プロジェクト名によりCache Directory 以下にサブフォルダが出来、前に処理したデータを上書きしないようにします。


AV_Analyze Images

このステップの目的は、画像取得中のカメラ視点変更に対して、ある程度不変である固有ピクセル群を抽出し、候補画像ペア間で特徴を一致させるようにします。



AV_Structure_from_Motion

このステップの目的は、入力画像が提供する観測すべてのから幾何学的関係を理解し、すべてのカメラのポーズ (位置と向き)と内部キャリブレーションを使用して固体シーン構造 (3Dポイント) を推測することです。 このノードの出力はポイントクラウドになります。


AV_Depth_Map

このステップの目的は、Structure from Motionによって解析された画像とカメラの各ピクセルの深度値を取得することです。 画像数と解像度によっては、非常に長い時間がかかることがあります。


AV_Meshing

このステップの目的は、点群からサーフェス形状を生成することで、このノードの出力はハイポリメッシュで、Houdiniでのこれ以降の処理に使用できます。


AV_Texturing

このステップの目的は、生成メッシュにテクスチャをつけることです。このノードは、ハイポリメッシュに非常に基本的なUVとテクスチャを出力します。Games Baker や Simple Baker などを使用して、UVを再投影、編集することを強くお勧めします。

注意

モデルのより良い分析のため、デフォルト表示設定をの変更をお勧めします。これにはビューポートで D キーを押し、設定を変更したり、Ambient Light をより白に近づけたりします。


詳細ドキュメント (作成中)

AliceVision のチームは、AliceVision フレームワークをベースにした無料のオープンソース3D再構築ソフトウェアであるMeshroom にも取り組んでいます。 Meshroom のドキュメントには、調整可能なすべてのパラメータの説明など、AliceVisionの実行手順に関する非常に役立つ情報が含まれています。


技術情報

システム要件

  • 64ビットの Windows 7 以降

  • 2.0以降 の NVIDIA CUDA が実行可能な GPU

最小要件

  • RAM: 8GB 以上

  • HDD: 2GB 以上 (キャッシュとモデルに)

  • CPU: 過去3年以内のもの

  • GPU: NVIDIA

推奨要件

  • RAM: 32GB 以上

  • CPU: i7/Ryzen 7 以上

  • GPU: NVIDIA GTX1070 以上

Compatibility Info

  • このプラグインは現在 Windows のみで稼動可能です。

FAQ

  • 自分のポイントクラウドの周りにバウンディングボックスを指定して、処理される部分を制限することができますか?

いいえ、これには Alicevision は未対応です。

既知の問題

  • エラーレポート機能は現状比較的薄いです。
  • HoudiniのAlembicインポートのバグにより、現在カメラをスキャンから抽出することはできません。 これは間もなく解決予定です。

トラブルシューティング

  • 出力が生成されない

プロジェクト名をまだ使ったことののないものにしてみてください。過去のキャッシュファイルが現状のプロセスの障害になっている可能性があります。

  • "Alicevision not found" と表示されます

ALICEVISION_PATH を houdini.env に設定するか、Alicevision のインストールディレクトリを正しく各ノードに設定してください。

  • Other

その他の質問は support@sidefx.com (英語で)

Related Links

CREATED BY

PAUL AMBROSIUSSEN

Paul Ambrosiussen is currently a Technical Artist and Game Tools Developer at SideFX Software. He finished his BASc in International Game Architecture and Design at NHTV University of Applied Sciences in Breda. Paul enjoys writing tools to support effective art-pipelines, and maintaining tool / workflow quality for the artists he is assisting. His goal is to help others create amazing things in a better, faster and more flexible way. He creates tutorials, gives live lectures, attends events, and presents custom workshops to customers.

More from Paul Ambrosiussen