オープンソースのStructure from Motionライブラリ『Theia』

度々似たような話題ですが(笑)
また別のオープンソースStructure from Motionライブラリを見つけた。↓

Theia

Theia-SfM

TheiaChris Sweeneyが開発したコンピュータービジョンライブラリで、効率的で信頼性の高いStructure from Motion(SfM)アルゴリズムを提供するために作られました。このライブラリは、研究者達へmulti-view reconstructionのための簡単に拡張可能なbox-toolの提供を目指しています。
姿勢推定、特徴検出と特長記述、マッチング、再構築のための多くの共通アルゴリズムが実装されています。シンプルなインターフェイス、少ない依存関係、そして豊富なドキュメントが用意されています。

ライセンスは修正BSDライセンス(New BSD License)なので商用利用も可能。
ソースコードはこちら↓
https://github.com/sweeneychris/TheiaSfM


スポンサーリンク


このライブラリは、ACMが主催するOpen Source Software Competition 2015でファイナリストにまで残ったライブラリだそうです。
(それがどれほどすごいことなのかはよくわかりません。。。)

もともとはカリフォルニア大学サンタバーバラ校のFour Eyes Labで開発されていたものがベースで、後にオープンソース化されたものだそうだ。
現在の開発の中心となっているChris Sweeney氏のページはこちら↓
http://cs.ucsb.edu/~cmsweeney/

Theiaライブラリのビルド方法を見てみたら、以下のライブラリに依存しているらしい。


スポンサーリンク

この手のライブラリではお馴染みのCeres Solverが入っている。ここの解説にもある通り、Ceres Solverは「非線形問題」を解くためのライブラリ。Structure from Motionでは、推定した変換行列の再投影誤差が最小となるパラメータを求めるBundle Adjustment処理で使われている。(最近やっと理解)

ちょっとライブラリの構成を眺めてみた。OpenMVGのサンプルでも感じたけど、Structure from Motionのライブラリって、画像のExifデータを利用する仕様が割と当たり前なのね。大抵、ライブラリにカメラの機種ごとのプロファイルデータベースもセットになっている。


スポンサーリンク

関連記事

SONYの自律型エンタテインメントロボット『aibo』
iOSデバイスと接続して連携するガジェットの開発方法
MythTV:Linuxでテレビの視聴・録画ができるオープンソースプロジェクト
参考書
R-CNN (Regions with CNN features):ディープラーニングによる一般物体...
池袋パルコで3Dのバーチャルフィッティング『ウェアラブル クロージング バイ アーバンリサーチ』
網元AMIで作ったWordpressサイトのインスタンスをt1microからt2microへ移行した
フォトンの放射から格納までを可視化した動画
ニューラルネットワークで画像分類
AnacondaとTensorFlowをインストールしてVisual Studio 2015で使う
AmazonEC2のインスタンスをt1.microからt2.microへ移行する
Google製オープンソース機械学習ライブラリ『TensorFlow』のWindows版が公開された
OpenCV 3.1から追加されたSfMモジュール
Faster R-CNN:ディープラーニングによる一般物体検出手法
オープンソースの顔の動作解析ツールキット『OpenFace』
自前のShaderがおかしい件
iOSで使えるJetpac社の物体認識SDK『DeepBelief』
Blenderの人体モデリングアドオン『MB-Lab』
MeshroomでPhotogrammetry
WordPressのテーマを自作する
書籍『ROSプログラミング』
ROMOハッカソンに行ってきた
Adobeの手振れ補正機能『ワープスタビライザー』の秘密
Photogrammetry (写真測量法)
OpenCVでiPhone6sのカメラをキャリブレーションする
複数視点画像から3次元形状を復元するライブラリ『openMVG』
組み込み向けのWindows OS 『Windows Embedded』
バージョン管理の履歴を可視化するツール『Gource』
オープンソースのプリント基板設計ツール『KiCad』
機械学習手法『Random Forest』
ポリゴン用各種イテレータと関数セット
続・ディープラーニングの資料
3D復元技術の情報リンク集
OpenCVで平均顔を作るチュートリアル
サンプルコードにも間違いはある?
Open Shading Language (OSL)
Facebookの顔認証技術『DeepFace』
konashiのサンプルコードを動かしてみた
書籍『3次元コンピュータビジョン計算ハンドブック』を購入
3Dディープラーニング用のPyTorchライブラリ『Kaolin』
IronPythonを使ってUnity上でPythonのコードを実行する
Unityで使える数値計算ライブラリ『Math.NET Numerics』

コメント

  1. わたなべ より:

    いつもCV関係の紹介記事、参考にさせていただいてます。
    このTheia、作者がWindows向けに作っていないため、何回かCMakeで挑戦してみましたがceres等他の必要なライブラリ部分で詰まり中断していました。

    Visual Studio 2015(Update 3)/2017限定になりますが、C++のオープンソフトウェアパッケージ管理のvcpkgにTheiaが登録されたため、(vcpkgを導入すれば)コマンドライン1行たたくだけで使えるようになっています。vcpkg自体もGitHubからpullしてbatファイルを叩くだけなので簡単でした。

    exeもありますが、APIを利用できる感じになっているので、SfM部分を勉強したりトレンド(CVPR2017のHybridSfMも最近実装されました)をおいかけたりするには良さそうです。