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

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

Regard3D

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を使っているみたい。
複数視点画像から3次元形状を復元するライブラリ『openMVG』
最近、この手の2D→3D復元系のライブラリを色々と調べている。何となく、自分で3D復元ツールを作ってみたくてね。この間のOpenGVは複数画像からカメラ(視点)の3次元位置・姿勢を推定するライブラリだった。↓こっちのopenMVG...


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


スポンサーリンク

3D Model From Photos – Testing Free Software Regard3D

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までは入ってた。


スポンサーリンク

関連記事

Blender 2.8がついに正式リリース!
オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
第1回 3D勉強会@関東『SLAMチュートリアル大会』
OpenCVの三角測量関数『cv::triangulatepoints』
RefineNet (Multi-Path Refinement Network):ディープラーニン...
OpenGVの用語
Faceshiftで表情をキャプチャしてBlender上でMakeHumanのメッシュを動かすデモ
Javaで作られたオープンソースの3DCGレンダラ『Sunflow』
OpenCVベースの背景差分ライブラリ『BGSLibrary』
SSII2014 チュートリアル講演会の資料
スクラッチで既存のキャラクターを立体化したい
フリーのUV展開ツール Roadkill UV Tool
軽量なジオメトリ処理ライブラリ『libigl』
CGのためのディープラーニング
SONY製のニューラルネットワークライブラリ『NNabla』
DCGAN (Deep Convolutional GAN):畳み込みニューラルネットワークによる敵...
OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる
画像中の人物表面のUV座標を推定する『DensePose』
オープンソースの取引プラットフォーム
OpenCVの顔検出過程を可視化した動画
オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う
写真に3Dオブジェクトを違和感無く合成する『3DPhotoMagic』
PythonのStructure from Motionライブラリ『OpenSfM』
オープンソースの3Dメッシュデータライブラリ『OpenMesh』
ニューラルネットワークの構造を可視化するフレームワーク『TensorSpace.js』
OpenCVで平均顔を作るチュートリアル
Point Cloud Libraryに動画フォーマットが追加されるらしい
AfterEffectsプラグイン開発
PCA (主成分分析)
OpenCVのバージョン3が正式リリースされたぞ
オープンソースのプリント基板設計ツール『KiCad』
書籍『イラストで学ぶ ディープラーニング』
ZBrush 4R8 リリース!
Point Cloud Consortiumのセミナー「3D点群の未来」に行ってきたよ
SegNet:ディープラーニングによるSemantic Segmentation手法
Googleが画像解析旅行ガイドアプリのJetpac社を買収
GoogleのDeep Learning論文
オープンソースのSfM・MVSツール『COLMAP』
口笛から作曲できる作曲アプリ『Chordana Composer』
書籍『OpenCV 3 プログラミングブック』を購入
OpenCV 3.1のsfmモジュールを試す
MythTV:Linuxでテレビの視聴・録画ができるオープンソースプロジェクト

コメント