OpenMVS:Multi-View Stereoによる3次元復元ライブラリ

複数枚の2D画像から、カメラの3D姿勢情報と被写体の疎(sparse)な3D点群を推定するのがStructure from Motionという手法。そこで求めたカメラの姿勢、点群の情報を使ってさらに密(dense)な点群を求めるのがMulti-View Stereoという手法。
Structure from Motionのライブラリは結構色々あるみたいなんだけど、そこから密な点群を求めるMulti-View Stereoのライブラリはあんまり見かけないんだよね。(PMVSというツールは有名ですが)

このOpenMVS(Multi-View Stereo)は、名前の通り、密な点群を復元するMulti-View Stereoのアルゴリズムを実装したライブラリ。OpemMVS自体はAGPLライセンスだけど、依存しているサードパーティのライブラリが細々と沢山あり、それぞれのライセンスに従うのでこちらを参照。

OpenMVS

OpenMVS(Multi-View Stereo)は、コンピュータビジョン科学者、特にMulti-View Stereo reconstructionの分野を対象としたライブラリです。
Structure-from-Motionのパイプラインを実装した(OpenMVGなどの)オープンソースプロジェクトを使えば、入力画像セットからカメラの姿勢や疎な3次元点群を復元できますが、それだけではphotogrammetry chain-flowの最後のプロセスが欠けています。OpenMVSは、この最後のプロセス、再構築するシーンの完全なサーフェイスを復元するためのアルゴリズムを提供します。
OpenMVSへの入力はカメラの姿勢セットと疎な点群、OpenMVSからの出力はテクスチャ付きのMeshになります。
このプロジェクトの主な特長は以下の通りです。

  • 密な点群の復元:可能な限り完全・正確な点群を得るための復元
  • Meshの再構築:入力点群から高品質なMesh表面を推定するためのMesh再構築
  • Meshの分割:全てのディティールを復元するためのMesh分割
  • Meshのテクスチャリング:Meshを着色するためのシャープで正確なテクスチャ計算

詳細なドキュメントはWikiをご覧ください。


スポンサーリンク

このライブラリ、OpenMVGのドキュメントで紹介されていたのだ。


スポンサーリンク


OpenMVGのドキュメントによると、OpenMVGとOpenMVSの連携は比較的簡単にできるみたい。
ソースコードはGitHubにある↓
https://github.com/cdcseacave/openMVS

ドキュメントはGitHub上のWikiに↓
https://github.com/cdcseacave/openMVS/wiki

OpenMVGの出力結果をOpenMVSの入力に使う例も載ってる↓

使い方

secene dense

追記:ドキュメントに従ってサンプルを動かしてみた↓


関連資料

Multi-View Stereoについては、毎度おなじみコンピュータビジョン最先端ガイド5と、コンピュータビジョン勉強会@関東の第28回の資料が参考になる。

コンピュータビジョン最先端ガイド5 (CVIMチュートリアルシリーズ)





スポンサーリンク

関連記事

TensorFlowでCGを微分できる『TensorFlow Graphics』
フォトンの放射から格納までを可視化した動画
CGのためのディープラーニング
オープンソースのIT資産・ライセンス管理システム『Snipe-IT』
Web経由でRaspberry PiのGPIOを操作したい
Google App Engine上のWordPressでAmazonJSを利用する
機械学習のオープンソースソフトウェアフォーラム『mloss(machine learning ope...
手を動かしながら学ぶデータマイニング
ポリゴン用各種イテレータと関数セット
Pythonのソースコードに特化した検索エンジン『Nullege』
UnityでOpenCVを使うには?
OpenGVの用語
Unityで画面タッチ・ジェスチャ入力を扱う無料Asset『TouchScript』
ニューラルネットワークで画像分類
オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
Unityからkonashiをコントロールする
顔検出・認識のAPI・ライブラリ・ソフトウェアのリスト
WordPress on Google App Engineを1週間運用してみて
画像生成AI Stable Diffusionで遊ぶ
pythonもかじってみようかと
WordPressのサーバ引っ越し方法を考える
オープンソースの顔認識フレームワーク『OpenBR』
まだ続くブログの不調
立体視を試してみた
組み込み向けのWindows OS 『Windows Embedded』
Regard3D:オープンソースのStructure from Motionツール
『手を動かしながら学ぶエンジニアのためのデータサイエンス』ハンズオンセミナーに行ってきた
スクラッチで既存のキャラクターを立体化したい
CycleGAN:ドメイン関係を学習した画像変換
Managing Software Requirements: A Unified Approach
Theia:オープンソースのStructure from Motionライブラリ
AnacondaとTensorFlowをインストールしてVisual Studio 2015で使う
プログラミングスキルとは何か?
pythonの機械学習ライブラリ『scikit-learn』
AfterEffectsプラグイン開発
Quartus II
OpenCV 3.1から追加されたSfMモジュール
Seleniumを使ったFXや株の自動取引
R-CNN (Regions with CNN features):ディープラーニングによる一般物体...
OpenCVの三角測量関数『cv::triangulatepoints』
Mechanizeで要認証Webサイトをスクレイピング
OpenCV 3.1のsfmモジュールのビルド再び

コメント

  1. […] がとうございます。 NegativeMindさんありがとうございます。 NegativeMindException | Multi-View Stereoによる3次元復元ライブラリ『OpenMVS』 NegativeMindException | 複数視点画像から3次元形状を復元するラ […]