Windows環境でOpenCVのsfmモジュールをビルドするのはえらい面倒だったので、変にOpenCVにこだわるのはやめようと思う。

以前見つけたopenMVGをビルドしてみる。

openMVGの公式ドキュメントによると、openMVGは他の依存ライブラリを別途ビルドする必要がなく、openMVGのリポジトリ一式だけでビルドできるようだ。(cereal, glfw, osi_clpはdependenciesディレクトリに入れておく必要がありますが)
openMVG documentation!
依存関係
openMVGはスタンドアローンのディストリビューションです。使用するにあたって、追加で依存ライブラリ群をインストールする必要はありません。Linux環境では、ローカルのpng, zlib, jpegライブラリを利用することもできます。
オプションで外部のライブラリとリンクしたビルドもできるようだけど、まずはopenMVG単体でビルドして遊んでみることにする。(ちょっと欲を出して自前でOpenCVやら何やらも含めてビルドしようとしたらエラー地獄にはまったのは内緒)
CMake GUIで基本的にデフォルト設定のままで、唯一、サンプルもビルドするように追加で指定してからGenerateですんなりVisual Studio 2015でビルドできた。
まずはサンプルを動かしながら勉強していく。公式ドキュメントのサンプル解説ページを自分用にざっと翻訳。↓
openMVG samples
openMVGは特徴量のチェックの実装に強くフォーカスしています。そのため、主要な特徴量を利用するサンプルとして(コードの使い方を知る手助けとなるような)ユニットテストを提供しています。
サンプルはショーケースやチュートリアルとしてご覧いただけます:
imageData
以下の実装例で使うのための画像ファイル。
features_siftPutativeMatches
このサンプルの内容:
- SIFT特徴と記述の抽出
- 特徴のマッチング
- マッチング結果の表示
features_affine_demo
このサンプルの内容:
- MSER/MSCR特徴量による領域検出
- 領域にフィッティングした楕円の表示
features_image_matching
このサンプルの内容:
- Image_describerインターフェイスを使った特徴・記述の抽出
- 検出した領域のマッチング
- 検出した特徴とマッチング処理結果の対応点の表示
features_kvld_filter
このサンプルの内容:
- K-VLDフィルタによる対応関係の推定 [KVLD12]
features_repeatability
オックスフォード大の画像データベース“Affine Covariant Regions Datasets”を使って、特徴・記述によるマッチングの精度を測定する方法
multiview_robust_homography
このサンプルの内容:
- マッチングした特徴間のロバストなホモグラフィー推定
multiview_robust_homography_guided
このサンプルの内容:
- マッチングした特徴間のロバストなホモグラフィー[H]推定
- 推定したマッチングをH Guided Filterで拡張
- クエリ画像をリファレンス画像上にワープ
multiview_robust_fundamental
このサンプルの内容:
- マッチングした特徴間のロバストな基礎行列推定
multiview_robust_fundamental_guided
このサンプルの内容:
- マッチングした特徴間のロバストな基礎行列[F]推定
- 推定したマッチングをF Guided Filterで拡張
multiview_robust_essential
このサンプルの内容:
- マッチングした特徴間のロバストな基本行列[E]推定
- 対応点の三角測量による3次元構造の算出
multiview_robust_essential_ba
このサンプルの内容:
以下の異なるカメラモデルで、シーンの構造とモーションをbundle_adjustmentで補正する:
(別々のカメラ)での補正
, 共通の
での補正
, 共通のBrown–Conrady歪みモデルでの補正
multiview_robust_essential_spherical
このサンプルの内容:
- 2つの球面パノラマ間のロバストな基本行列[E]推定
- 対応点から三角測量
exif_Parsing
このサンプルの内容:
- JPEGファイルのEXIFメタデータのパース
exif_sensorWidthDatabase
このサンプルの内容:
- カメラセンサーをデータベースと併用する
cameras_undisto_Brown
このサンプルの内容:
- Brown–Conrady歪みモデルの既知の放射パラメータを用いた画像の歪み補正
本リストの拡充作業への参加に躊躇はいりません。
公式ドキュメントではサンプルが15個あるみたいに書いてあるけど、GitHubのリポジトリ上には14個しかなかったぞ。exif_sensorWidthDatabaseってどこにあるんだ?
PDFのドキュメントも存在するんですね↓
openMVG Documentation | Pierre MOULON & Bruno DUISIT
チュートリアルスライド資料も見つけた↓
OpenMVG Tutorial
部分的にフランス語っぽいですが。。。
この資料によると、openMVGにGUIを付けたプロジェクトRegard3Dというのがあるらしい。何だ面白そうじゃないか。
関連記事
CGレンダラ研究開発のためのフレームワーク『Lightmet...
タマムシっぽい質感
HD画質の無駄遣い
cvui:OpenCVのための軽量GUIライブラリ
Netron:機械学習モデルを可視化するツール
Facebookの顔認証技術『DeepFace』
OpenCVでカメラ画像から自己位置認識 (Visual O...
OpenFace:Deep Neural Networkによ...
Faster R-CNN:ディープラーニングによる一般物体検...
VCG Library:C++のポリゴン操作ライブラリ
Python for Unity:UnityEditorでP...
PythonでBlenderのAdd-on開発
Verilog HDL
trimesh:PythonでポリゴンMeshを扱うライブラ...
C++ 標準テンプレートライブラリ (STL)
Pylearn2:ディープラーニングに対応したPythonの...
顔検出・認識のAPI・ライブラリ・ソフトウェアのリスト
iPadをハンディ3Dスキャナにするガジェット『iSense...
MB-Lab:Blenderの人体モデリングアドオン
UnityのMonoBehaviourクラスをシングルトン化...
3分の動画でプログラミングを学習できるサイト『ドットインスト...
BlenderProc:Blenderで機械学習用の画像デー...
オープンソースの人体モデリングツール『MakeHuman』の...
3Dモデルを立体視で確認できるVRアプリを作っている
OpenCV 3.1から追加されたSfMモジュール
オープンソースの取引プラットフォーム
Structure from Motion (多視点画像から...
Seleniumを使ったFXや株の自動取引
Amazon Web ServicesでWordPress
FCN (Fully Convolutional Netwo...
ZBrush 2018での作業環境を整える
Model View Controller
DUSt3R:3Dコンピュータービジョンの基盤モデル
OpenCV3.3.0でsfmモジュールのビルドに成功!
オープンソースの顔の動作解析ツールキット『OpenFace』
openMVG:複数視点画像から3次元形状を復元するライブラ...
iPhoneで3D写真が撮れるアプリ『seene』
海外ドラマのChromaKey
オープンソースのロボットアプリケーションフレームワーク『RO...
法線マップを用意してCanvas上でShadingするサンプ...
Regard3D:オープンソースのStructure fro...
Active Appearance Models(AAM)


コメント