サイトアイコン NegativeMindException

Regard3D:オープンソースのStructure from Motionツール

ライブラリではなく、ちゃんとGUIを備えたオープンソースのStructure from Motionのアプリケーションを見つけた。
このRegard3DのソースコードはMIT licenseだそうだ。

Regard3D

Regard3Dは、無料でオープンソースのStructure from Motionツールです。
Regard3Dは、被写体を別々のアングルで撮影した複数枚の写真から、被写体の3Dモデルを生成します。

特長:

  • マルチプラットフォーム対応(Windows, OSX, Linux)
  • 強力なサードパーティツールとライブラリがベース
  • 完全無料でオープンソース

動作環境:

  • 64ビットのOS (Windows, Mac, Linux)
  • OpenGL対応のグラフィックスカード/チップ
  • 高解像度の画像を扱う場合はメモリ8GB以上を推奨

この手のGUIアプリケーションだとVisualSFMの方が有名ではありますが↓





公式のイントロダクションによると、Regard3DではAKAZE特徴を使い、LIOP (Local Intensity Order Pattern)という方法で画像間のマッチングを行うとか。

Regard3DのソースコードはGitHub上にある↓
https://github.com/rhiestan/Regard3D

で、まあ、中身ではopenMVGを使っているみたい。



openMVGの機能をGUIで手軽に使えるようにしたようなツールだが、疎な点群の復元だけでなく、密な点群の復元”densificationを行う機能も備わっている。密な点群の復元には以下2通りの方法を選べる。中でこれらのツールを呼び出してるってことかな。


スポンサーリンク



Exifからカメラ情報を取得する関係で、入力画像のフォーマットはJPEGオンリー。また、撮影に使用したカメラ(の内部パラメータ)がデータベースに登録されていないと三角測量の処理でエラーになってしまう。(無いなら無いでデフォルト値を使うとかしてくれても良いのに…)
手持ちのiPhone6Sで撮った画像では上手く行かなかった。データベースへ追加する方法はあるのだろうか。

追記:Regard3Dのデータベースにカメラ情報を追加する方法があった。公式サイトのPicture Setのページに書いてあった。

もし、あなたのお使いのカメラが不明(“Sensor width“カラムに”N/A“と表示され、”not available“)な場合は、以下のステップを行ってください:

  • お使いのカメラの正確モデルを特定(例えば、カメラメーカー、カメラモデル等の情報)し、インターネットでそのカメラの特性について調べ、カメラのセンサー幅を決定します。
  • Unixの改行コードに対応したテキストエディタ(Notepad++など)で”sensor_database.csv“ファイルを開きます。ファイルは、Windows環境なら
    C:\Users\[User name]\AppData\Local\Regard3D
    OS X環境ならRegard3Dのインストールディレクトリ(ほとんどの場合 /Applications/Regard3D.app/Contents/Resources)にあります。
  • ファイルの”Camera maker“列と”Camera model“列、そしてセンサーの幅をmm単位で入力し、”;“で区切ります。
    記入例:Nikon;Nikon D5500;23.5
  • ファイルを保存してエディタを終了し、Regard3Dを再起動します。

このファイルについてのより詳しい情報はこちらをご覧ください。
https://github.com/openMVG/CameraSensorSizeDatabase

Regard3Dの形式(つまりopenMVG形式)のカメラセンサーデータCSVのリポジトリがGitHubにある↓
https://github.com/openMVG/CameraSensorSizeDatabase

最新バージョンのsensor_database.csvにiPhone6までは入ってた。


スポンサーリンク

関連記事

  • 第25回コンピュータビジョン勉強会@関東に行って来た
  • 画像生成AI Stable Diffusionで遊ぶ
  • Boost オープンソースライブラリ
  • ディープラーニング
  • OpenMVSのサンプルを動かしてみる
  • DCGAN (Deep Convolutional GAN):畳み込みニューラルネットワークによる敵...
  • 3D復元技術の情報リンク集
  • Javaで作られたオープンソースの3DCGレンダラ『Sunflow』
  • Deep Fluids:流体シミュレーションをディープラーニングで近似する
  • オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う
  • 1枚の画像からマテリアルを作成できる無料ツール『Materialize』
  • Digital Emily Project:人間の顔をそっくりそのままCGで復元する
  • オープンソースの顔認識フレームワーク『OpenBR』
  • コンピュータビジョンの技術マップ
  • バージョン管理の履歴を可視化するツール『Gource』
  • 書籍『イラストで学ぶ ディープラーニング』
  • OpenCV 3.1のsfmモジュールを試す
  • TensorFlowでCGを微分できる『TensorFlow Graphics』
  • OpenGVの用語
  • Mitsuba 3:オープンソースの研究向けレンダラ
  • OpenCVで顔のランドマークを検出する『Facemark API』
  • Live CV:インタラクティブにComputer Visionコーディングができるツール
  • GAN (Generative Adversarial Networks):敵対的生成ネットワーク
  • オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
  • OpenSfM:PythonのStructure from Motionライブラリ
  • OpenCV 3.3.0-RCでsfmモジュールをビルド
  • BlenderProc:Blenderで機械学習用の画像データを生成するPythonツール
  • Kornia:微分可能なコンピュータービジョンライブラリ
  • AfterEffectsプラグイン開発
  • prosper
  • Paul Debevec
  • Alice Vision:オープンソースのPhotogrammetryフレームワーク
  • オープンソースのプリント基板設計ツール『KiCad』
  • OpenCVの超解像(SuperResolution)モジュールを試す
  • OpenCV 3.1のsfmモジュールのビルド再び
  • 3Dスキャンに基づくプロシージャルフェイシャルアニメーション
  • Multi-View Environment:複数画像から3次元形状を再構築するライブラリ
  • Python.NET:Pythonと.NETを連携させるパッケージ
  • CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』
  • NeRF (Neural Radiance Fields):機械学習による未知視点合成
  • Open Shading Language (OSL)
  • PCA (主成分分析)
  • モバイルバージョンを終了