goo blog サービス終了のお知らせ 

日々適当

hibitekitou

画像から立体を生成したい(でもうまくいってない)

cg |2017-01-29
VisualSFMは複数枚の画像から立体形状を復元するソフトウェアでフリーで利用することができるツールです。ちなみにSFMとはStructure from Motionの略の模様。

同種のツールは、処理をクラウド上で行うAutodesk 123D Catchってものがありますし、同種のプロ向けとして展開しているAutodesk 360の中にRecap Photoがあるよです。スタンドアロンの有償ツールならAgisoft PhotoScanってものが有名ですね。

だから大変な苦労をしてVisualSFMをインストールして使うなら、そのあたりのツールを利用した方が費用対効果は高いかもなのですが(PhotoScanの安い方ならオークから3万ほどで購入可能)、簡単に入るなら是非とも試したいところです。

でね、Windows版はexeファイルは配布されているのですけど、LinuxとmacOSについてはコンパイルしてください、って形態で配布されているのです。そして、それをインストールしてみましたって記録 [GO HOME]を見ると大変そうだなぁって雰囲気が伝わってきます。

ということで、macにVisualSFMをインストールする』[qiita]という記事に書かれた内容に望みを託すのです。この記事によるとshスクリプトを実行してやればインストールができるようです。

一応念のため書いておくと(以下 macOS Sierra 10.12.2上で実行)

VisualSFM installer script for OS X [GitHub] から Clone or downloadボタンを押して開くポップアップからZIPをダウンロードして、それを伸長。できあがったフォルダの中のvsfm_os_x_installer.shを

sh [フォルダのパス]/vsfm_os_x_installer.sh

を実行です。sudoは必要ないとあります(スクリプトが走っている途中でパスワードの入力を求めてくる)。

さて、インストール中に環境によってはCommand Line Toolsが入っていないでしょうから、これをインストールするよう警告が出ます(この警告、OSが出しているんでしょうね)。指示に従ってまずはインストールです。



ちなみに、僕の環境での話ですが、このインストール段階では、スクリプトは以下の内容で処理がストップしています。
We must download the right version of XQuartz: 2.7.8 ... one moment while we install
vsfm_os_x_installer.sh: line 176: wget: command not found
The file ~/Desktop/VisualSFM_OS_X_Installer-master/XQuartz-2.7.8.dmg does not exist.
Switch to Finder and install XQuartz as per the installer. Then log in and out and then run script 2

Ok, now you have to should have either...

1. Already had the correct version of XQuartz, so I'm continuing...

2. Had to have installed XQuartz and just logged out and back in...

Ready to continue the next installation of VSFM & PMVS (press ENTER)
XQuartzが入っているか、入っていないならインストールしろということのようです(後述するようにhomebrewが入っているなら、自動でXQuartzのダウンロードまで行われます)。
というわけで、XQuartzをインストールします。インストールが終わったらENTERを押してスクリプトを続行です。
(前略)vsfm_os_x_installer.sh: line 128: brew: command not found
VSFM Zip not present, downloading...
(略)
Changing /usr/x11/lib to OS X default /opt/x11/lib
sed: makefile: No such file or directory
About to make...


Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.


VSFM application failed to build, halting.
はい、エラーで止まりました。

Homebrewが必要のようですね。
まずはHomebrewをインストールです。リンク先のページにあるワンラインのスクリプトをターミナルにコピペして実行するだけ。
と思ったら、これも実行したら止まります。先ほどインストールされたCommand Line Toolsを利用するわけですけど、利用許諾を承認していなかったからということです。指示にあるように sudo xcodebuild -license を実行して、途中に現れる指示に従いEnterを押すとライセンスに関する文章がズラズラ出てくるので、スペースを押し続けて読み進み、最後に agree とタイプして終了です。普通にXcodeをインストールして起動させていればこの部分は必要ない処理でしょう。
改めてHomebrewのインストールスクリプトを実行してインストールします。インストールは無事に終わったようです。

以上の部分はこのあたりの物をよくいれいている人の環境でしたら普通に入っている可能性が高いので、必要のない作業となる可能性は高いですかね。

改めてVisualSFMのインストールスクリプトを走らせます。(この処理中にXQuartzがダウンロードされインストールを求められますが、既にインストール済みなので先に進みます)
必要なものをダウンロードしてインストールするを繰り返すため、処理が終わるまで結構待たされます。
待たされた処理が終わると、最後に
Success! Opening VSFM dir
To add to your PATH, add the lines below to your ~/.bash_profile file.
export PATH=[shスクリプトが置かれている場所]/VisualSFM_OS_X_Installer-master/vsfm/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:[shスクリプトが置かれている場所]
というメッセージが出ております。成功した模様。指示に従い
~/.bash_profile
にパスを通して(僕の環境ではそもそも.bash_profileがなかったのでそれを作る必要がありましたが)、source ~/.bash_profile を実行して変更を反映。

これで、ターミナルから VisualSFM を実行するだけで起動するかと思ったのですが、Gtk-WARNING **: cannot open display: って警告が出て起動しません。ググると .bash_profile に export DISPLAY=":0" を追加の上、あらかじめXQuartzを起動させておいてから VisualSFM を起動させる、とのことです。

ということで、ついに起動しました。



長い道のりでした(1時間ほどかかった)。

こちらのムービーを参考にちょっと試してみます。



このムービーはWindowsでやっているので、そんなに苦労することなくインストールされておりまする(^^;

しかしてここでまたしても問題が。
処理の手順としては、

1. Open + Multi Images で画像を読み込み
2. Compute Missing Match で特徴点を検出し
3. Reconstruct Sparse で3D形状の復元を行う

というものですが、まず2番で躓きます。ERROR: unable to locate sift binary. というエラーが出ます。
これについては、

1.インストールスクリプトと同じ階層にある SiftGPU を vsfm/bin にコピー
2.vsfm/bin/libsiftgpu.so をインストールスクリプトと同じ階層にコピー

することでパスしました。(移動でもいいらしいけど、念のためのコピー)

3番目も躓きまして、こっちはlibpba.soが無いって怒られます。それは vsfm/bin の中にあるのでこれをインストールスクリプトと同じ階層にコピーしてやります。

これで一応動いているようです。動いているようなんですけど、



んー、結果として出来上がる点の数が少ない。これはもっと多くの写真が必要なのか、写真の質が良く無いからなのかなんなのか。どんな素材が必要なんだろかね。

これが市販品だともっといい感じにとってくれたりするのでしょうか。とするなら、3万出す価値は十分あるかもなぁ(^^;
コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。