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

複数枚の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チュートリアルシリーズ)





スポンサーリンク

関連記事

UnityでShaderの入力パラメータとして行列を渡す
畳み込みニューラルネットワーク (CNN:Convolutional Neural Network)
Amazon EC2ログイン用の秘密鍵を無くした場合の対処方法
OpenCVの顔検出過程を可視化した動画
UnityのGameObjectの向きをScriptで制御する
Raspberry PiでIoTごっこ
Unityで画面タッチ・ジェスチャ入力を扱う無料Asset『TouchScript』
疑似3D写真が撮れるiPhoneアプリ『Seene』がアップデートでついにフル3Dモデルが撮影できる...
Pythonのベイズ統計ライブラリ『PyMC』
Javaで作られたオープンソースの3DCGレンダラ『Sunflow』
Web経由でRaspberry PiのGPIOを操作したい
PyDataTokyo主催のDeep Learning勉強会
仮想関数
Model View Controller
OpenCVベースの背景差分ライブラリ『BGSLibrary』
PCA (主成分分析)
Mayaのシェーディングノードの区分
HerokuでMEAN stack
Kinect for Windows v2の日本価格決定
OpenCLに対応したオープンソースの物理ベースレンダラ『LuxRender(ルクスレンダー)』
写真に3Dオブジェクトを違和感無く合成する『3DPhotoMagic』
OpenCVのfindEssentialMat関数を使ったサンプルを読んでみる
科学技術計算向けスクリプト言語『Julia』
OANDAのfxTrade API
機械学習で遊ぶ
konashiのサンプルコードを動かしてみた
ROSの薄い本
書籍『イラストで学ぶ ディープラーニング』
Mechanizeで要認証Webサイトをスクレイピング
書籍『3次元コンピュータビジョン計算ハンドブック』を購入
Google App Engineのデプロイ失敗
OpenMayaRender
Blenderの人体モデリングアドオン『MB-Lab』
pythonもかじってみようかと
ポリゴン用各種イテレータと関数セット
Google XML Sitemap Generatorプラグインを3.4.1へダウングレード
海外ドラマのChromaKey
オープンソースのロボットアプリケーションフレームワーク『ROS (Robot Operating S...
UnityのAR FoundationでARKit 3
iOSデバイスと接続して連携するガジェットの開発方法
フィーリングに基づくタマムシの質感表現
プログラムによる景観の自動生成

コメント

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