OpenSfM:PythonのStructure from Motionライブラリ

スウェーデンのスタートアップMapillary社が公開しているOpenSfMというStructure from Motion用のライブラリがあるそうです。ライセンスは簡易BSDライセンス(Simplified BSD License)。2条項BSDライセンス(BSD 2-Clause license)とも呼ばれるやつで、著作権を表示すれば商用利用、修正、配布、サブライセンスOKだ。

OpenSfM

OpenSfM

OpenSfMは、OpenCVを用いてPythonで書かれたStructure from Motionライブラリです。このライブラリは、複数枚の画像からカメラの姿勢と3Dシーンを再構成するための処理パイプラインとして機能します。ロバストでスケーラブルな復元パイプラインの構築を重視したStructure from Motionの基本モジュール(特徴検出/マッチング、minimal solvers)で構成されています。
また、外部センサー(例えば、GPS、加速度センサー)の値を統合し、地理的な位置合わせや、よりロバストな結果を得ることができます。JavaScriptのビューアを設けており、モデルのプレビューや、パイプラインのデバッグに利用できます。

要はスマートフォンなどで撮影した複数枚の画像からGoogleストリートビューのようなものを作成するためのライブラリということのようです。画像だけでなくGPSや加速度センサーの情報も利用するあたり、とてもストリートビュー的な規模を意識している感じ。専用の撮影車両に依存しない、スマホユーザー達による民主的なストリートビュー作成ツールと言ったところ。
https://blog.mapillary.com/update/2014/12/15/sfm-preview.html


スポンサーリンク


このライブラリは、クラウドソーシングでストリート映像を作成するプロジェクトのためのものですかね。↓
http://gigazine.net/news/20140903-mapillary/
https://jp.techcrunch.com/2018/09/15/2018-09-13-mapillary-rekognition-amazon/

このライブラリを使うには以下の依存ライブラリも必要となります。


スポンサーリンク

依存ライブラリ

ソースコードはGitHubにある↓
https://github.com/mapillary/OpenSfM

OpenCVだけでなくOpenGVも使っているんですね。



QiitaではDocker上で動かす方法を書いている人がいる。
http://qiita.com/takahi/items/c0b21714a62935f67606

名称の”SfM”は”Structure from Motion”の略だと思うけど、カメラ位置の推定と撮影画像の補間までもStructure from Motionと呼ぶんですかね。てっきり3次元形状復元までの処理も含めてStructure from Motionだと思っていた。

このライブラリのリポジトリをGourceで可視化した動画を見つけた。2013年から始まってるのね。



むちゃくちゃ巨大なライブラリというわけでもなさそうだな。

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


スポンサーリンク

関連記事

読みやすくて高速なディープラーニングのフレームワーク『Caffe』
UnityのAR FoundationでARKit 3
Manim:Pythonで使える数学アニメーションライブラリ
Unreal Engineの薄い本
Unityの各コンポーネント間でのやり取り
Runway ML:クリエイターのための機械学習ツール
Open3D:3Dデータ処理ライブラリ
PythonのHTML・XMLパーサー『BeautifulSoup』
DensePose:画像中の人物表面のUV座標を推定する
BlenderProc:Blenderで機械学習用の画像データを生成するPythonツール
Python2とPython3
2D→3D復元技術で使われる用語まとめ
オープンソースのロボットアプリケーションフレームワーク『ROS (Robot Operating S...
NumSharp:C#で使えるNumPyライクな数値計算ライブラリ
3分の動画でプログラミングを学習できるサイト『ドットインストール』
Iterator
手を動かしながら学ぶデータマイニング
「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作ったのか
MB-Lab:Blenderの人体モデリングアドオン
FCN (Fully Convolutional Network):ディープラーニングによるSema...
オープンソースのIT資産・ライセンス管理システム『Snipe-IT』
機械学習のオープンソースソフトウェアフォーラム『mloss(machine learning ope...
今年もSSII
マルコフ連鎖モンテカルロ法
SegNet:ディープラーニングによるSemantic Segmentation手法
Google XML Sitemap Generatorプラグインを3.4.1へダウングレード
iOSデバイスと接続して連携するガジェットの開発方法
タマムシっぽい質感
AmazonEC2のインスタンスをt1.microからt2.microへ移行する
iPhone・iPod touchで動作する知育ロボット『ROMO』
書籍『3次元コンピュータビジョン計算ハンドブック』を購入
PCA (主成分分析)
Active Appearance Models(AAM)
UnityでPoint Cloudを表示する方法
Google Colaboratoryで遊ぶ準備
Google App EngineでWordPress
Raspberry Pi 2のGPIOピン配置
UnityでShaderの入力パラメータとして行列を渡す
株式会社ヘキサドライブの研究室ページ
iPadをハンディ3Dスキャナにするガジェット『iSense 3D Scanner』
iPhone x ロボットハッカソン~RomoのiPhone用SDKで目覚ましアプリを作る~
ブログをGoogle App EngineからAmazon EC2へ移行

コメント