UPDATE 2.3.0 - 2020年12月9日

プラグインは AliceVision 2.3.0 に対応すべく更新されました。これを使用するには SideFX Labs 18.5.421 以降とバイナリの更新も必須です。下記「インストール方法」内のダウンロードリンクをご参照ください。


更新後は新しいツール定義が使わることを確認してください。旧ノードで作成した .hip ファイルを開いた場合は、旧ノードのままになります。新しいノードで置き換えるか、ノード定義を更新してください。

注意

必要条件: NVIDIA CUDA 対応 GPU (CUDA-10 互換で 演算互換が 3.0 から 7.5 のもの)

概要

AliceVision は、3D再構成およびカメラ追跡アルゴリズムを提供するフォトグラメトリコンピュータビジョンフレームワークで 、 Github から入手可能です。Mikros Image という映像制作会社で開発されており、開発者情報は次のリンクから得ることができます: About AliceVision

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

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

簡単なデモ

インストール方法

  1. SideFXLabs 18.5.421 以降をインストール
  2. Houdini を起動し、正しくロードされるか確認
  3. 使用するプラットフォームによって Meshroom_Windows または Meshroom_Linux をダウンロード
  4. (追加で) Sample Content もダウンロード
  5. ダウンロードファイルを解凍。この際にパスにスペースがないようにする
    • 正しい例: C:\MyFilePath\Meshroom-2020.1.1\
      間違った例: C:\My File Path\Meshroom-2020.1.1\
  6. Point the nodes (or houdini.env as seen in optional step 7) to the aliceVision folder inside the Meshroom-2020.1.1 folder
  7. (必須でないが推奨として) houdini.env に以下のいずれかを追加:
    • Windows --> ALICEVISION_PATH = C:\MyFilePath\Meshroom-2020.1.1\aliceVision
    • Linux --> ALICEVISION_PATH = "/MyFilePath/Meshroom-2020.1.1/aliceVision"
Houdini を再起動
Geometry コンテクストで Tab メニューを表示した際に Labs/Alicevision 以下に7つのノードが表示されるはずです。

注意

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


使用方法

基本

  1. Geometry ノードを作成、中に入ります。
  2. AV Photogrammetry SOP を作成します。
  3. 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

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

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

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

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

ノード概要

AliceVision ノード

現バージョンには7つのノードがあり、ジオメトリコンテクストで Labs/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 の実行手順に関する非常に役立つ情報が含まれています。


技術情報


最低システム要件

OS

64ビットの Windows、 Linux, macOS (追加作業が必要)

CPU

最近の Intel または AMD

RAM/Memory

8 GB

ハードドライブ

Meshroom に400MB 程度、さらに使用するデータ分

GPU

NVIDIA CUDA が実行可能な GPU NVIDIA CUDA-enabled GPU (演算互換 >= 2.0)


推奨要件

CPU

Intel Core i7 または AMD Ryzen 7

RAM/Memory

32 GB

ハードドライブ

20 GB以上の空き容量がある HDD または SSD

GPU

NVIDIA GeForce GTX 1070


FAQ

  • どの画像フォーマットに対応していますか?
    • '.jpg', '.jpeg', '.tif', '.tiff', '.png', '.exr', '.rw2', '.cr2', '.nef', '.arw'
    • AliceVision は OpenImageIO 経由で他のフォーマットにも対応していますが、上記のフォーマットの使用を推奨します。
  • 自分のポイントクラウドの周りにバウンディングボックスを指定して、処理される部分を制限することができますか?
    • いいえ、AliceVision はこれには未対応です。

既知の問題

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

トラブルシューティング

  • 出力が生成されない

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

  • "Alicevision not found" と表示される

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

  • その他の質問は

こちら をご参照ください。

関連リンク

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