サイトアイコン NegativeMindException

OpenGV:画像からカメラの3次元位置・姿勢を推定するライブラリ

2D画像からの3D情報復元について調べていたらこんなオープンソースライブラリを見つけた↓

The OpenGV library

OpenGVライブラリは、キャリブレーション済みカメラの姿勢計算に必要となる幾何学アルゴリズムを効率的に行うために設計された単一のC++のライブラリです。OpenGVは”Open Geometric Vision”の略です。
このライブラリには、絶対・相対的カメラ姿勢計算アルゴリズムの主要な古典手法や、近年の手法が含まれており、三角測量や点群による位置合わせ機能などのように、全て非線形最適化やRANSACによって拡張されています。
このライブラリは、MatLab portのように柔軟なC++インターフェイスを備えており、異なる幾何学的ビジョンアルゴリズムの比較が容易です。

このライブラリについては、以下の文献でも解説されています(検索してみてください):

  • L. Kneip, P. Furgale, “OpenGV: A unified and generalized approach to real-time calibrated geometric vision”, Proc. of The IEEE International Conference on Robotics and Automation (ICRA), Hong Kong, China. May 2014.

このライブラリは、以下の研究論文に基づいて開発されています。

特定の問題でOpenGVを使用する際は、上記論文ならびにOpenGVの文献を引用してください。


スポンサーリンク

ソースコードはGitHubにある。→laurentkneip/opengv
同梱のtestプログラムがそのまま使い方のサンプルとして利用できる。

こちらのブログ記事でOpenGVの存在を知った↓
http://moitkfm.blogspot.fi/2014/08/opengv.html

OpenCVでもARのようなやり方でカメラの2次元画像から3次元位置・姿勢を求めることはできるんだけど、このOpenGVのアドバンテージは、複数のカメラ間の位置関係を容易に扱えるようにできている点。



この方のブログは、サンプルコードを載せているのでとても勉強になる。
以下はOpenCVを使った3次元復元系のサンプルが載っている記事↓
http://moitkfm.blogspot.jp/2014/06/2.html
http://moitkfm.blogspot.fi/2014/06/2d-3d.html
http://moitkfm.blogspot.fi/2014/06/5.html

追記:
Facebookで開発しているVR酔い軽減のためのブレ補正技術には、OpenGVに実装されているNisterの5点アルゴリズムをRANSACで解くモジュールが使われているらしい↓
https://code.facebook.com/posts/697469023742261/360-video-stabilization-a-new-algorithm-for-smoother-360-video-viewing/

触発されて公式ドキュメントを訳し始めた↓


OpenGVのライブラリ構成
引き続きOpenGV公式ドキュメントのHow to useを読んでいる。 前回は用語の解説まで読んだので、次はOrganization of the library(ライブラリの構成)とInterface(インターフェイス)の項目を訳してみ...


以前購入した「コンピュータビジョン最先端ガイド5」は、3次元復元の全体像を理解するには最適な粒度の情報が載っているんだけど、それだけで実装に落とし込めるほどオイラは知識が無かったので非常にありがたい。
こちらの本では第2章が丸々複数画像からの三次元復元の解説になっている↓



追記:
OpenCVでARアプリを実装するなら、こちらの書籍の第6章のサンプルが参考になる(というかそのまんま)



本書で使われているソースコードはこちらから。chapter6のプロジェクトをビルドすれば試せます。

過去記事


写真から3Dメッシュの生成・編集ができる無料ツール『Autodesk Memento』
Autodeskから無料の3D復元・編集ツールが出てた。まだベータ版らしい。 複数枚写真からの3Dメッシュ生成だけじゃなく、3Dスキャナーで撮った点群の編集もできるみたい。 追記:ベータ版だったAutodesk Mementoから名称が変わ...

Autodesk Mementoでゴジラを3次元復元する
この前、Autodesk Mementoで複数枚の写真から3D復元を試してみたけど、あんまり上手くいかなかった。 追記:ベータ版だったAutodesk Mementoから現在は名称が変わり、Autodesk Remakeになりました。機能限...


スポンサーリンク

関連記事

  • Open3D:3Dデータ処理ライブラリ
  • 顔検出・認識のAPI・ライブラリ・ソフトウェアのリスト
  • cvui:OpenCVのための軽量GUIライブラリ
  • WordPress on Google App Engineを1週間運用してみて
  • UnityでARKit2.0
  • MB-Lab:Blenderの人体モデリングアドオン
  • MVStudio:オープンソースのPhotogrammetryツール
  • ManimML:機械学習の概念を視覚的に説明するためのライブラリ
  • AfterEffectsプラグイン開発
  • クラスの基本
  • PyTorch3D:3Dコンピュータービジョンライブラリ
  • 手を動かしながら学ぶデータマイニング
  • OpenMesh:オープンソースの3Dメッシュデータライブラリ
  • RefineNet (Multi-Path Refinement Network):ディープラーニン...
  • 顔追跡による擬似3D表示『Dynamic Perspective』
  • Javaで作られたオープンソースの3DCGレンダラ『Sunflow』
  • .NETで使えるTensorFlowライクなニューラルネットワークライブラリ『NeuralNetwo...
  • 機械学習について最近知った情報
  • ポリゴンジオメトリ処理ライブラリ『pmp-library (Polygon Mesh Process...
  • オーバーロードとオーバーライド
  • MFnDataとMFnAttribute
  • MFnMeshクラスのsplit関数
  • MPFB2:Blenderの人体モデリングアドオン
  • Blendify:コンピュータービジョン向けBlenderラッパー
  • OpenCVで平均顔を作るチュートリアル
  • なんかすごいサイト
  • MythTV:Linuxでテレビの視聴・録画ができるオープンソースプロジェクト
  • DensePose:画像中の人物表面のUV座標を推定する
  • フォトンの放射から格納までを可視化した動画
  • SONY製のニューラルネットワークライブラリ『NNabla』
  • 参考書
  • Raspberry PiのGPIOを操作するPythonライブラリ『RPi.GPIO』の使い方
  • Mitsuba 3:オープンソースの研究向けレンダラ
  • ROMOハッカソンに行ってきた
  • UnityのMonoBehaviourクラスをシングルトン化する
  • Amazon EC2ログイン用の秘密鍵を無くした場合の対処方法
  • ArUco:OpenCVベースのコンパクトなARライブラリ
  • OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる
  • 2D→3D復元技術で使われる用語まとめ
  • スクラッチで既存のキャラクターを立体化したい
  • OpenSfM:PythonのStructure from Motionライブラリ
  • 動的なメモリの扱い
  • モバイルバージョンを終了