22
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GUI操作だけで画像から3DマッピングするSfMソフトRegard3Dの使い方

Last updated at Posted at 2020-05-26

近年はSfM(Structure-from-motion,画像を用いた3次元復元)の商用化などにより,三次元復元が身近になっています.その手順を手元のPCで簡単に体験できるソフトの一つがRegard3Dです.

  • フリー
  • GPU必要なし(ノートPCでOK)
  • GUIでお手軽,コマンドライン操作なし
  • 画像読み込み,対応点マッチング,バンドル調整,多視点ステレオまで,パイプラインが全てそろっている

以下では,画像を読み込んでメッシュを保存するまでの,簡単な使い方を説明します.

ダウンロード

からメニューのダウンロードへ行きます.

スクリーンショット 2020-05-26 16.03.09.png

リンク
https://sourceforge.net/projects/regard3d/files/latest/download
をクリックします.しばらくるとダウンロードされます.Windows版もMacOS版も,同じリンクです(自動判別).

スクリーンショット 2020-05-26 16.02.57.png

インストール

インストーラをクリックしてインストールします(素直なのでここでの説明は省略)

以下の説明はこのバージョンのものです.(MacOS)

スクリーンショット 2020-05-26 16.51.48.png

起動

起動します.

スクリーンショット 2020-05-26 16.02.08.png

画像の準備

SfMで三次元復元するシーンの画像ファイルを準備します.

  • JPEGファイル(exif情報を使うので)
  • サイズは1200x900程度で十分(これより高解像度だと計算に時間がかかってしまう)
  • ある物体を床において,その周囲を斜め上から取り囲むようにして5−10枚ほど撮影する,とうまく三次元復元できるかも
  • ボケ,ブレがないように撮影
  • テクスチャが十分にあるようなものを撮影(つるつるピカピカの物体はダメ)

実行

プロジェクトの作成

File->New projectまたはプロジェクト新規作成ボタンを押します.

スクリーンショット 2020-05-26 16.06.46.png

以下を指定してOKを押します

  • Set project path:プロジェクト保存パスを設定
  • Project name:プロジェクト名
  • Projeft file:(自動で設定されます)
スクリーンショット 2020-05-26 16.07.42.png

プロジェクトが作成されました.
次からはこのプロジェクトファイルをFile->Open projectで読み込めばOK

画像の追加

「Add Picture Set...」ボタンを押して,3次元復元する画像を指定します.

スクリーンショット 2020-05-26 16.08.49.png

Add files...を押します.

スクリーンショット 2020-05-26 16.09.51.png

画像ファイルを複数選択して追加します.

スクリーンショット 2020-05-26 16.10.52.png

画像が追加されました.

スクリーンショット 2020-05-26 16.13.41.png

OKなら右下のOKボタンを押します.

注意:もしカメラ名や焦点距離などの情報が全く無い場合には,jpegファイルにexif情報がないことになります.普通のデジカメで撮影するとexif情報は入っていますが,画像のリサイズなどで処理をするとexifがなくなる場合がありますので,その処理などを確認してexif情報を残してください.

  • もしすべての画像で「Sensor width」の欄に数値が入っている場合には,問題ありません.次の「センササイズの指定」をスキップしてください.
  • もしN/Aが入っている場合には,Regard3Dのデータベースcsvに,その画像ファイルを撮影したカメラのセンササイズを入力する必要がありますので,次の「センササイズの指定」に進んでください.

センササイズの指定

Regard3Dをインストールした場所のsensor_database.csvを書き換えます.

Windoowsの場合:

書き換えるファイルは
C:\Users\あなたのユーザー名\AppData\Local\Regard3D\sensor_database.csv
にあります.

以下の図のように,エクスプローラーから「ローカルディスク」「ユーザー」「自分の名前のフォルダ」へ行きます.
スクリーンショット 2020-05-27 8.10.36.png
スクリーンショット 2020-05-27 8.10.50.png
スクリーンショット 2020-05-27 8.11.07.png

AppDataは隠しフォルダなので,エクスプローラーの設定で隠しフォルダを表示するようにしてください.
スクリーンショット 2020-05-27 8.11.40.png
たどり着いたら,ファイルをメモ帳などで開きます.
スクリーンショット 2020-05-27 8.13.18.png

MacOSの場合

書き換えるファイルは
/Applications/Regard3D.app/Contents/Resources/sensor_database.csv
にあります.

以下の図のように,Finderから「アプリケーション」に行き,Regard3Dを右クリックして「パッケージの中身を表示」を選ぶと,このフォルダにたどり着けます
スクリーンショット 2020-05-26 16.16.40.png
たどり着いたら,ファイルをテキストエディタなどで開きます.
スクリーンショット 2020-05-27 8.06.54.png

sensor_database.csvの書き換え

新しく行を追加します(どこでも良いですが,元ファイルがアルファベット順になっているので,以下ではその順になる行に追加しています)

以下のように,この場合は「Camera」と「Camera model」に表示されている文字列を,以下のフォーマットでセミコロン(;)で区切って追加します.

  • Camera;Camera model;センササイズの実数値
スクリーンショット 2020-05-26 16.18.25.png
sensor_database.csvの中身
...
AgfaPhoto;AgfaPhoto sensor 830s;5.75
Apple;iPad;6.16
Apple;iPad mini (5th generation);6.16
BenQ;BenQ AC100;6.16
BenQ;BenQ AE100;6.16
...

Tips

  • センササイズが分かる場合
  • 単位はmmです.カメラのマニュアルの仕様の欄にセンササイズが書いてある場合があります
  • センササイズがわからない場合
  • 厳密でなくても大丈夫のはず....似たようなカメラの似たような数字(6.16とか5.75とか)を記入して,三次元復元を試してみてください

書き換えたらregard3dを再起動

regard3dを一旦終了して,起動し直して,File->Open projectでプロジェクトファイルを読み込んで,再度画像を追加してください.今度はセンササイズの欄に数字が入っているはずです.

スクリーンショット 2020-05-26 16.26.03.png

OKなら右下のOKボタンを押します.

特徴点の検出と特徴量のマッチング

以下のように画像が追加されている状態です.
(Number of picturesは読み込まれた画像の枚数)

「Compute matches...」を押します.

スクリーンショット 2020-05-26 16.27.28.png

設定ウィンドウが出ます.デフォルトで問題ないことは多いので,そのまま右下のOKボタンを押します.

スクリーンショット 2020-05-26 16.28.47.png

マッチングが行われます.画像サイズや枚数によって,数分から数十分かかる場合もあります.気長に待ちましょう.
終了したら,OKボタンを押します.

スクリーンショット 2020-05-26 16.29.54.png

マッチング結果を確認しますので,Show matching results...を押します.

スクリーンショット 2020-05-26 16.30.46.png

上のペインが画像セット,下のペインがマッチング結果です.

  • マッチングした2枚の画像ペアが左下に出ます.
  • 下のShow Matchesボタンを押すと,2枚の画像間の対応点マッチング結果を線で表示します.
  • 多数のペアが多数の点で対応が取れていると良い状態です.(2−3枚程度では以降の処理が失敗する)
スクリーンショット 2020-05-26 17.12.14.png

確認が済んだら(気が済んだら)OKボタンを押して戻ります.

三角測量:カメラ位置の計算(バンドルアジャストメント)

次に,マッチングがとれた画像から,それを撮影したカメラの位置姿勢パラメータと,特徴点の3次元座標を計算します.
Triangulation...を押します.

スクリーンショット 2020-05-26 16.30.46.png

設定ウィンドウが出ます.デフォルトで問題ないことは多いので,そのまま右下のOKボタンを押します.

スクリーンショット 2020-05-26 16.34.40.png

失敗

以下のようなウィンドウが出たら,失敗したことになります.

スクリーンショット 2020-05-26 16.35.48.png

失敗の原因は色々ありますが,対応点が取れた画像ペアの数が少ないとダメです.画像を撮影し直しましょう.

もしくは,以下のOld incremental Structure from Motionを試してみましょう.

スクリーンショット 2020-05-26 16.43.33.png

成功

成功したら以下のようなウィンドウが出ます.OKを押します.

スクリーンショット 2020-05-26 16.47.21.png

復元された点とカメラの表示

ウィンドウの真ん中の紺色のペインには,復元された点とカメラが3次元の点として表示されています.マウスでグリグリ動かせます.ただしこのままでは見にくいです...

スクリーンショット 2020-05-26 17.15.18.png

右のスライドバーでPoint sizeを変えて大きくすると,点が見えるようになります.

  • 緑色:カメラの座標
  • 色付きの点:復元された特徴点(色は画像から取得)
スクリーンショット 2020-05-26 17.15.29.png

密な点群の作成

推定されたカメラ位置を利用して,多視点ステレオ(MVS)を実行し,もっと多数の点の3次元復元を行います.
Create dense pointcloud...を押します.

スクリーンショット 2020-05-26 16.50.22.png

設定ウィンドウが出ます.デフォルトで問題ないことは多いので,そのまま右下のOKボタンを押します.

スクリーンショット 2020-05-26 16.51.21.png

MVSによる三次元復元が始まります.

スクリーンショット 2020-05-26 16.52.57.png

密な点群が復元されました

スクリーンショット 2020-05-26 17.16.44.png

拡大すると確かに点です.つまりまだ表面はありません.

スクリーンショット 2020-05-26 17.17.40.png

メッシュ生成

点群から物体表面のメッシュを生成します.
Create Surface...を押します.

スクリーンショット 2020-05-26 17.18.12.png

設定ウィンドウが出ます.デフォルトで問題ないことは多いので,そのまま右下のOKボタンを押します.

スクリーンショット 2020-05-26 17.18.56.png

処理が始まります.

スクリーンショット 2020-05-26 17.19.01.png

処理が終わりました

スクリーンショット 2020-05-26 17.19.43.png

レンダリング

拡大してみる

  • デフォルトはスムーズシェーディングがかかって滑らか
  • Polygon modeがFill,Shading modelがSmooth
スクリーンショット 2020-05-26 17.20.12.png - Polygon modeをLineにすると,ワイヤーフレーム表示になる スクリーンショット 2020-05-26 17.20.17.png - Polygon modeをpointにすると,点群表示になる スクリーンショット 2020-05-26 17.20.22.png - Polygon modeをFillにして,Shading modelをFlatにする(フラットシェーディング) スクリーンショット 2020-05-26 17.20.29.png - Enable lightのチェックを外すと立体的な影のレンダリングがなくなる スクリーンショット 2020-05-26 17.23.12.png

保存

Export surfaceを押す

スクリーンショット 2020-05-26 17.24.04.png

ファイル名とフォルダを選んでSaveを押す

  • File typeは,通常は*.plyでOK
  • Audodesk/Alias社製品を持ってるならobjでもよいかも
スクリーンショット 2020-05-26 17.24.17.png

このplyファイルは3Dビューアで開ける(blenderやmeshlabなど)

Meshlabで表示

ダウンロード&インストール

のDownloadからインストーラをダウンロードして,インストール(省略)

plyファイルの読み込み

File --> Import Mesh..からファイルを選択.
表示されます.

22
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?