2016年7月21日木曜日

OpenMVSを使う準備 No.3

やっとこさ、OpenMVSをmakeしてみます。

1.ソースフォルダを入力
2.バイナリをビルドするフォルダを入力
3.上記で一度「Configure」をすると、当然エラーで とまります。
4.Ungrouped EntriesのEIGEN_DIR にEigenのパスを入れます。
5.同上のOpenCVにもパスを入れます。
6.BoostのDIRを入力します。
7.DIRを入れても怒られてしまうので、・・・

ちょっと思うところがあって、No.2を最初からやり直しています。
ブレイクです。

2016.8.9追記
お仕事があって中断していました。下記追記

思う所というのは、Google-glop なんですが、全然makeできなくて
なやんでいたんです。

VS2015をアンインストールしてVS2013を入れてみたり。
OSをw10にしてみたり・・・

全然出来なかったんですが、本日glog0.3.4をもう一回DLして、
makeしてみたら良い感じで出来たので、VS2015にてリリース
してみまして・・・できました。

はぁ。

さて上記の続きを今がらやります!

6.BoostのDIRを入れても怒られてしまうのは変わらず^^;
  仕方がないので、一つ一つ入れていきます。

 まだエラーが出ていますが、今出ているエラーは
 ・CUDAが無い(無視します)
 ・BreakPadが無い(?)
 ・Ceresがみつかりません(!)

どうも「CeresConfig.cmake」が無いようだ
う~ん。また迷宮(笑)

2016年7月19日火曜日

OpenMVSを使う準備 No.2

さて、ドキュメントを基にOpenMVSをメイクしてみます。

まずはライブラリのインストール・・結構ありますね。

  • Eigen version 3.2 or higher
  • OpenCV version 2.4 or higher
  • Ceres version 1.10 or higher
  • CGAL version 4.2 or higher
  • Boost version 1.56 or higher
  • VCG

Eigen ドキュメントによると、単にDLして固有のソースコードを抽出する必要がある。との事。
    ん~。。。次行ってみよう(笑
     Eigen(行列演算ライブラリ)のインストール(Visual Studio 2013&2015) 
    なるほど。参考になります。DLして、下記フォルダにコピー。(現時点最新はv3.2.9)
    C:\dev\eigen329

OpenCV DLが長い…。 exeファイルがあるので実行。使い方は…
    このページを参考にしてみました。

Ceres このページを参照にしてみます。が、よくわかりません。
     参考にするページを変更してみます。まだよくわかっていません。
 
    必要なライブラリを入手し、ビルドを行います。
    ・eigen(上記で入手済and導入済)
    ・gflags(cmakeしてビルドした・・・で良いのかな?)
    ・google-glop(このページを参考にしてみましょう。cmakeしてビルドです。)
     gflagsが見つからないといったエラーが出ていましたが、なんとかビルドできたようです。
    ・CXSparse(Project\CXSparse のsinをビルド)

    7/21 cmakeの設定を間違えていたのにこの時点で気付きました。
    gflagsからやり直しです。(泣)

    本体をビルドする。(手順はコピーです。)

  1. cmakeを起動する。
  2. 「Where is the source code」にceres/ceres-solver-1.8.0設定する。
  3. 「Where to build the binaries」にC:/library/ceres/ceres-buildを設定する。
  4. 一度configureする。エラーが出て止まる。
  5. GroupedとAdvancedにチェックを入れると全てのオプションが見えるようになる。
  6. CMAKE_INSTALL_PREFIXにceres\ceres-installへの絶対パスを入れる。
  7. EIGEN_INCLUDE_DIRにeigen3.2への絶対パスを入れる。
  8. 再度configureする。エラーが出て止まる。
  9. GLOG_INCLUDE_DIRにglog-0.3.3\src\windowsへの絶対パスを入れる。
  10. GLOG_LIBRARYにglog-0.3.\Release3\libglog.libへの絶対パスを入れる。
  11. GFLAGS_INCLUDE_DIRにgflags-2.0\src\windowsへの絶対パスを入れる。
  12. GFLAGS_LIBRARYにgflags-2.0\Release\libgflags.libへの絶対パスを入れる。
  13. CX_SPARSE_INCLUDE_DIRにCXSparse\Includeの絶対パスを入れる。
  14. CX_SPARSE_LIBにCXSparse\Lib\CXSparse.libの絶対パスを入れる。
  15. 再度configureする。
  16. generateするとceres\ceres-buildにCERES.slnが生成されている。
ふむふむ。
ビルドすると、すっごいワーニングが出るんですが、大丈夫でしょうか^^;。
一応ceres.libはできているようですが…。


CGAL インストーラーをDLしてインストール。これは簡単ですね。
Boost ここを参考にインストール?してみます。
     時間がかかりますので、ちょっとブレイクですね。
VCG  さて、やっとこさ辿り着いた感がありますね。VCG Libraryです。
     Webを参考に、クローンします。


さて。次に行きましょう。

OpenMVSを使う準備 No.1

さて。OpenMVGが確認できたので、OpenMVSの方を動かしてみよう。
(ここまでの道のりが思ったより長かった…わはは)

動かし方は下記wikiに書いてあるらしい。


ふむふむ。

まずは、OpenMVGのシーンをOpenOVS用にコンバートしないといけないのかな?

openMVG_main_openMVG2openMVS -i sfm_data.bin -o scene.mvs

もしくは、古い .json ASCIIフォーマットからのインポートの場合は下記のコマンドを実行

 openMVG_main_openMVG2openMVS -i scene.json -o scene.mvs 
 

やってみよう。
 
サンプルのDL・・・長いなぁ。やっぱり光かな~。 
 
・・
・・・ Windows x64のバイナリが入ってると書かれてあったので、
 全部入っているかとおもいきや、やっぱりmakeする必要があるのかな?

別スレッドを立てましょう。



2016年7月15日金曜日

VisualSFMに寄り道してみました

OpenMVG関係をググってたら、下のようなスライドを見つけた。

 まんましたいことですな・・・。

やってみましょう!(笑)

 Visual SFM をインストール(をぉ、CUDAもある)
インストールフォルダにcmvs.exeと、pmvs.exeと、genOption.exeと、pthreadVc2.dllをコピーする。
(2016.7時点では、pmvs,exeはpmvs2.exeみたいですね)

起動確認・・・OK。
MeshLabはインストール済み(c1.3.3)

CloudCompare をインストール

データ準備として画像郡もダウンロードしておきます。
自宅の環境(ADSL12M)では1時間弱かかる…辛いものがありますね。

 ちょっとブレイク…。

PMVSまでやってみた感じ。

をぉ、できてますな。

最上段の資料、P46に※で書かれてあることが気になります。
(※ただし、この画像郡を使うと、撮影枚数が少なく、また撮影位置が適切ではないので、モデルが少し歪みます。)
ということは逆に、モデルを作成する際に気を付けることは、
 ・撮影枚数を多くする。
 ・撮影位置を適切にする。
 ということになるのですが、現時点はサンプル画像を用い、
実証は後回しということにします。

 また、資料には地図での活用やオルソ画像の出力まで書かれていますが、
このページでは割愛します。(最後までちゃんとやりますが(笑))


感想としては、
 ・日本語でのSfmやMeshLab、CloudCompareに関する情報が少ない中、これだけまとまった解説は非常にありがたいですね。最初にこの資料にあたっていれば、目的に達する工程がどれだけ省かれることか。
 私もこの時点でこの資料を見させて頂いたことを、資料の作成者である、立命館大学アート・リサーチセンター 山口欧志様に感謝します。
 また、資料等をこのブログに引用させて頂きました。(本人に連絡すべきでしょうか…ドキドキ)

一方、出来上がる3Dのイメージは、当たり前ですが、理解の範囲内でした。
目標とする最初の画像を目指して、OpenMVSまで突き進みます。

余談ですが、VisualSFMでググってみても面白いですな。
 DIY写真測量:123D Catchのオープンソースな代替プログラム
 We Did Stuff
 Structure from Motion (多視点画像からの3次元形状復元)