前回OpenSfMをWindows10で使えるようにするためにWSL上にビルドしてインストールした。
今回、OpenSfMを試してみる。
手始めに息子のラジコンカーを撮ってみる。
以下のようなものだ。
アンドロイドスマホのカメラでパシャパシャと激写する。
色々な角度から52枚分。
それらを以下のディレクトリに格納する。
~/OpenSfM/data/model_car/images
data配下であれば任意のディレクトリ名で良い。
imagesのディレクトリ名は必須。
以下のようにして変換を行う。
cd ~/OpenSfM cp data/berlin/config.yaml data/model_car/config.yaml bin/opensfm_run_all data/model_car
生成物は色々有るが、一番欲しいものは以下。
~/OpenSfM/data/model_car/undistorted/depthmaps/merged.ply
これは点群データファイルとなる。
ply拡張子は3Dファイルのフォーマットの一つで、点群データとしても記録できる。
plyファイルはMeshLab というフリーソフトで閲覧することができる。
早速開いてみる。
多少ノイジーでかつ面が抜けているところが有るが、ちゃんと立体画像として認識できる。
ノイジーなのは夜の室内での撮影でかつ被写体が小さいことが影響しているのかもしれない。
また、面が抜けるのは、平らな部分では特徴点が無いため立体として再構築ができないからだろう。
車下部は写真に写っていないので当然立体化されていない。
日中の野外での例も採取した。
反射や透過が苦手であると思われるので、公園にある石のオブジェで試す。
以下のようなものだ。
同じくスマホのカメラで色々な角度で撮影を行う。
その数62枚。
以下に結果を示す。
石の部分のアップばかりを撮影したつもりであったが、意外にも公園の全景が3Dとして表現できている。
旅行に行ったときに同じところで写真を何枚も取ると、立体化できて楽しいかもしれない。
点群データをWEB上で公開できるソリューションがある。
PotreeConverter というものだ。
three.jsを用いたjavascriptベースのもので、マウス操作で3Dモデルを拡大・回転させることができる。
使い方に関しては このサイト が詳しい。
以下に上記サンプルをPotreeConverterにかけたものを晒す。
少なくともWindows10のChromeとアンドロイドスマホ(Android version 9)のChromeでは 動作するようだ。
左ボタンでドラッグすると回転、右ボタンでドラッグすると移動。
ホイールで視点が前後に移動する。
左上のバーガーアイコンをクリックするとメニューが現れ、多少設定を変更できる。
是非、試して頂きたい。
コメント