ライブラリではなく、ちゃんと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の方が有名ではありますが↓
【解説記事】写真からの3次元背景MOD作成の解説記事を書いてみました
記事本体: https://t.co/jPi1cyVZDJ
サンプル素材: https://t.co/nd0KUC01O8#カスタムメイド3D2 #CM3D2 pic.twitter.com/upC5oAtQhp— ノーベルチョコ (@nobelchoco) 2016年8月14日
公式のイントロダクションによると、Regard3DではAKAZE特徴を使い、LIOP (Local Intensity Order Pattern)という方法で画像間のマッチングを行うとか。
Regard3DのソースコードはGitHub上にある↓
https://github.com/rhiestan/Regard3D
で、まあ、中身ではopenMVGを使っているみたい。
openMVGの機能をGUIで手軽に使えるようにしたようなツールだが、疎な点群の復元だけでなく、密な点群の復元”densification“を行う機能も備わっている。密な点群の復元には以下2通りの方法を選べる。中でこれらのツールを呼び出してるってことかな。
- CMVS/PMVS by 古川泰隆 (Clustering Views for Multi-view Stereo (CMVS))
- MVE (Multi-View Environment) by Michael Goesele, Simon Fuhrmann and others (Multi-View Environment)
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までは入ってた。
関連記事
ZBrush 4R8 リリース!
写真に3Dオブジェクトを違和感無く合成する『3DPhotoM...
Qlone:スマホのカメラで3Dスキャンできるアプリ
顔画像処理技術の過去の研究
GeoGebra:無料で使える数学アプリ
Boost オープンソースライブラリ
PGGAN:段階的に解像度を上げて学習を進めるGAN
iPadをハンディ3Dスキャナにするガジェット『iSense...
Point Cloud Utils:Pythonで3D点群・...
コンピュータビジョンの技術マップ
KelpNet:C#で使える可読性重視のディープラーニングラ...
Point Cloud Consortiumのセミナー「3D...
OpenCV 3.1から追加されたSfMモジュール
今年もSSII
Accord.NET Framework:C#で使える機械学...
OpenVDB:3Dボリュームデータ処理ライブラリ
Deep Fluids:流体シミュレーションをディープラーニ...
SegNet:ディープラーニングによるSemantic Se...
NumSharp:C#で使えるNumPyライクな数値計算ライ...
ポリゴンジオメトリ処理ライブラリ『pmp-library (...
プラカラーストック:模型塗料を管理できるスマホアプリ
3Dスキャンしたテクスチャから照明を除去するUnityツール...
OpenCV 3.1とopencv_contribモジュール...
機械学習について最近知った情報
口笛から作曲できるスマホアプリ『Chordana Compo...
Google製オープンソース機械学習ライブラリ『Tensor...
フリーのUV展開ツール Roadkill UV Tool
CGのためのディープラーニング
SSII2014 チュートリアル講演会の資料
Cartographer:オープンソースのSLAMライブラリ
OpenCVのバージョン3が正式リリースされたぞ
DUSt3R:3Dコンピュータービジョンの基盤モデル
立体映像プレイヤー『Stereoscopic Player』
Facebookの顔認証技術『DeepFace』
fSpy:1枚の写真からカメラパラメーターを割り出すツール
オープンソースの顔の動作解析ツールキット『OpenFace』
Faster R-CNN:ディープラーニングによる一般物体検...
Iridescence:プロトタイピング向け軽量3D可視化ラ...
MythTV:Linuxでテレビの視聴・録画ができるオープン...
OpenCVで顔のモーフィングを実装する
MeshroomでPhotogrammetry
OpenCVのfindEssentialMat関数を使ったサ...
コメント