Alice Vision:オープンソースのPhotogrammetryフレームワーク

3D人-3dnchu-さんでオープンソースのPhotogrammetryアプリケーション「meshroom」とその基盤となっているフレームワーク「Alice Vision」が紹介されていたのでちょっと調べてみた。
http://3dnchu.com/archives/alicevision-meshroom/

AliceVision – Photogrammetric Computer Vision Framework

AliceVision

AliceVisionは3D復元とカメラトラッキングのアルゴリズムを提供するPhotogrammetricコンピュータービジョンフレームワークです。AliceVisionは、state-of-the-artのコンピュータビジョンアルゴリズムを、テスト・分析・再利用可能な強力なソフトウェアのベースとして提供することを目指しています。このプロジェクトはアカデミアと産業のコラボレーションにより、プロダクションでの使用に耐える堅牢性と品質を備えた最先端のアルゴリズムを提供します。

このプロジェクトを基にしたパイプラインとツールの詳細はAliceVisionのWebサイトでご覧ください。

パイプラインによる処理結果はsketchfabを参照してください。

Alice VisionフレームワークのライセンスはMPLv2(Mozilla Public License, version 2.0)とのことで、商用利用は可能だけどソースコードの開示が必要。

COPYING.mdを読むと、Structure from Motionの処理はopenMVG、Multi-View Stereoの処理にはCMPMVSが使われている他、libmvなど色んなサードパーティーのライブラリが使用されている。



また、GitHub上のリポジトリだけでなく、Alice Vision公式のWebサイトがあります↓
https://alicevision.github.io/


関連ライブラリ

関連ライブラリが2つある。

CCTag

CCTag

このライブラリを使用すると、CCTagマーカーを検出・識別することができます。
このマーカシステムは、チャレンジングな撮影条件でもサブピクセル精度の堅牢性を提供します。

CCTagはCVPR 2016で発表された論文”Detection and Accurate Localization of Circular Fiducials under Highly Challenging Conditions“で提案されているマーカー検出システムを実装したライブラリ。
CPUとGPU両方の実装が入っているようです。こちらもMPLv2ライセンス。

PopSIFT

PopSIFT

このライブラリは、SIFT特徴量抽出のGPU実装を提供します。
最近のグラフィックカードなら、HD解像度の画像に対して25fpsのパフォーマンスを発揮できます。

PopSiftはSHIFTをGPUで高速に処理できるライブラリ。
こちらも基本はMPLv2ライセンスだけど、SHIFTは特許で守られているので、その辺の権利が面倒そうですね。

スタンドアローンのアプリケーション

さて、ライセンス的に商用アプリケーションに組み込みづらいAlice Visionフレームワークですが、公式にフレームワークを使用したソフトウェアが公開されている。もちろんオープンソース。
ただ、meshroom以外はソースコードのみの公開なので、自前でビルドしないと使えません。そのうちビルド済みのバイナリが配布されると良いですね。

meshroom


meshroomは、AliceVisionフレームワークを使った無料でオープンソースの3D復元ソフトウェアです。

meshroomはAliceVisionフレームワークをベースにしたスタンドアローンなPhotogrammetryアプリケーション。3D人-3dnchu-さんではメインで紹介されていました。
無料で使えるPhotogrammetryツールなので色々と可能性が広がりますね。meshroomはダウンロードページでWindows, Linux用にビルド済みのパッケージが配布されている。

2019年6月 追記:使ってみた↓


DCCツール向けプラグイン

その他、各DCCツールアプリケーション向けのプラグインもある。

MeshroomMaya

MeshroomMaya

MeshroomMayaによって、グラフィックアーティスト達は画像からピクセル精度での3D復元モデリング(点群とカメラ)が可能になります。

MeshroomMayaは複数枚画像から3Dモデルを作成できるMayaプラグイン。旧名はMayaMVGだったんですね。

ofxMVG

ofxMVG

このプラグインは、meshroomで3D復元されたシーンからカメラの姿勢を推定します。

ofxMVGはNuke用プラグインで、OpenFX規格に対応している。

Houdini用AliceVisionプラグイン

Houdini用のAliceVisionプラグインもある。(Windowsのみ)

AliceVision は、3D再構成およびカメラ追跡アルゴリズムを提供するフォトグラメトリコンピュータビジョンフレームワークで 、こちらに概要が出ている研究者と開発者によって Github で提供されています。
そのコマンドライン機能により、Houdini の無償の GameDevelopmentToolset の一部として利用可能になりました。
AliceVision MPL2 によってライセンスされています。


Photogrammetryのパイプライン

Alice VisionのサイトでPhotogrammetryのパイプラインを解説しているページが分かりやすかったので引用↓

Photogrammetry Pipeline

Photogrammetryは複数の写真から測量する技術です。
Photogrammetryでは、順序付けされていない複数枚の写真やビデオのセットからシーンのジオメトリを推定します。
写真は3Dシーンを2D平面に投影したものであり、奥行き情報を失っています。この投影プロセスの逆行がPhotogrammetryの目標となります。

  1. Natural Feature Extraction
  2. Image Matching
  3. Features Matching
  4. Structure from Motion
  5. Depth maps estimation
  6. Meshing
  7. Texturing
  8. Localization

2021年追記:MeshroomからBlenderにインポートするためのアドオンもある↓

meshroom2blender



AliceVision Meshroomのデータファイルであるカメラ、画像、疎な点群、objのBlenderインポーターです。
これはmeshroom importerの基本的な実装のみです。高度なノード3を使用している場合は、ファイルの最初のノードのみが使用されます。このアドオンは各ステージ/ノードを計算したと想定し、出力も同様となります。

関連記事

ZBrushで仮面ライダー3号を造る 仮面編 横顔のシルエットをリファレンスに合わせる

プログラムによる景観の自動生成

無料の英文チェックWebサービス『PaperRater』

C++始めようと思うんだ

AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する

UnityでPoint Cloudを表示する方法

ZBrushでアヴァン・ガメラを作ってみる 脚のポーズ調整

SDカードサイズのコンピューター『Intel Edison』

3Dグラフィックスの入門書

生物の骨格

2012のメイキングまとめ(途中)

OpenCVの超解像(SuperResolution)モジュールを試す

Geogram:C++の3D幾何アルゴリズムライブラリ

ZBrushでアヴァン・ガメラを作ってみる 下アゴの付け根を修正

Faceshiftで表情をキャプチャしてBlender上でMakeHumanのメッシュを動かすデモ

単純に遊びに行くのはだめなのか?

TensorFlowでCGを微分できる『TensorFlow Graphics』

Adobe Photoshop CS4 Extendedの3Dモデル編集機能

Mac用のSubversionクライアント 『SCplugin』

ツールの補助で効率的に研究論文を読む

ZBrushでアヴァン・ガメラを作ってみる 歯茎を別パーツへ分割

WordPressの表示を高速化する

PythonでMayaのShapeノードプラグインを作る

オープンソースの顔認識フレームワーク『OpenBR』

PureRef:リファレンス画像専用ビューア

JavaScriptとかWebGLとかCanvasとか

3D Gaussian Splatting:リアルタイム描画できるRadiance Fields

科学技術計算向けスクリプト言語『Julia』

画像認識による位置情報取得 - Semi-Direct Monocular Visual Odome...

Digital Emily Project:人間の顔をそっくりそのままCGで復元する

ディープラーニング

CGALDotNet:計算幾何学ライブラリ CGALのC#ラッパー

Python for Unity:UnityEditorでPythonを使えるパッケージ

Virtual Network Computing

ニンテンドー3DSのGPU PICA200

OpenCVで顔のモーフィングを実装する

CLO:服飾デザインツール

書籍『開田裕治 怪獣イラストテクニック』

JavaによるCGプログラミング入門サイト (日本語)

顔検出・認識のAPI・ライブラリ・ソフトウェアのリスト

ZBrushで人型クリーチャー

iOSで使えるJetpac社の物体認識SDK『DeepBelief』

コメント