オープンソースの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データを利用する仕様が割と当たり前なのね。大抵、ライブラリにカメラの機種ごとのプロファイルデータベースもセットになっている。


スポンサーリンク

関連記事

1枚の画像からマテリアルを作成できる無料ツール『Materialize』
Raspberry PiのGPIOを操作するPythonライブラリ『RPi.GPIO』の使い方
UnityのTransformクラスについて調べてみた
複数視点画像から3次元形状を復元するライブラリ『openMVG』
Unity ARKitプラグインサンプルのドキュメントを読む
Webスクレイピングの勉強会に行ってきた
OpenCV バージョン4がリリースされた!
Deep Learningとその他の機械学習手法の性能比較
MeshroomでPhotogrammetry
OpenCVのバージョン3が正式リリースされたぞ
オープンソースの物理ベースGIレンダラ『appleseed』
オープンソースのSLAMライブラリ『Cartographer』
Kinect for Windows v2の日本価格決定
UnityでOpenCVを使うには?
Adobeの手振れ補正機能『ワープスタビライザー』の秘密
Google製オープンソース機械学習ライブラリ『TensorFlow』のWindows版が公開された
SSII 2014 デモンストレーションセッションのダイジェスト動画
コンピュータビジョンの技術マップ
HerokuでMEAN stack
WinSCP
機械学習で遊ぶ
MythTV:Linuxでテレビの視聴・録画ができるオープンソースプロジェクト
Point Cloud Consortiumのセミナー「3D点群の未来」に行ってきたよ
機械学習に役立つPythonライブラリ一覧
Photogrammetry (写真測量法)
iOSデバイスと接続して連携するガジェットの開発方法
BlenderでPhotogrammetryできるアドオン
Google App Engineのデプロイ失敗
OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる
3分の動画でプログラミングを学習できるサイト『ドットインストール』
『手を動かしながら学ぶエンジニアのためのデータサイエンス』ハンズオンセミナーに行ってきた
Raspberry PiでIoTごっこ
C++の機械学習ライブラリ『Dlib』
OpenCVで動画の手振れ補正
3Dボリュームデータ処理ライブラリ『OpenVDB』
顔検出・認識のAPI・ライブラリ・ソフトウェアのリスト
Raspberry Piでセンサーの常時稼働を検討する
Google App Engine上のWordPressでAmazonJSを利用する
Deep Neural Networkによる顔の個人識別フレームワーク『OpenFace』
OpenCV3.3.0でsfmモジュールのビルドに成功!
第1回 3D勉強会@関東『SLAMチュートリアル大会』
OpenCV 3.1とopencv_contribモジュールをVisual Studio 2015で...

コメント

  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も最近実装されました)をおいかけたりするには良さそうです。