RealityCapture サンプルファイルの3Dモデル化
[画像の読み込みから出力までの流れ]
今回の記事ではCapturing Reality社より配布されているサンプルデータを使用して、画像からモデルを作成、出力する方法をご紹介します。
アカウント作成、ダウンロード、アクティベートの方法等は別ページにてご紹介していますので、そちらをご覧ください。
RealityCapture記事 – Epic Gamesアカウントを使用したCapturing Realityへのログイン手順
■サンプルデータのダウンロード
Capturing Reality社の公式サイトにアクセスし、使用するサンプルデータを選びダウンロードを行います。
このページには複数のダウンロード可能なサンプルデータが準備されており、任意のファイルを選択してモデル作成用のサンプルデータ(画像)をダウンロードできます。
今回は、一番上にある「Small Cottage」を使用します。説明文の下側にある「Download Now(3.1GB)」を選択することで、ダウンロードが開始されます。
ダウンロードされたファイルを解凍すると「JPG_1」から「JPG_7」までの7つのフォルダが表示されます。
各フォルダの中にはモデル作成の際に読み込む画像(.jpg)と、必要部分のみを抽出するためのマスク画像(.png)が入っています。下の画像は「JPG_1」のフォルダ内の画像です。
このように、画像とマスクが交互に入っており、各それぞれ、2枚で1セットとなります。
※RealityCaptureでは、対応させたマスクを準備して読み込みを行うことで、マスクが設定されている部分のみを抽出してモデルに変換することができます。この際のマスク画像の名前は「“ファイル名”. “拡張子(jpeg等)”. mask.png」(“”は不要)である必要があります。(マスク拡張子は.mask.tiff等でも可能)
下の画像が具体的な1セットの画像となります。このように、コテージの画像と、コテージがある部分の切り抜いたマスクが1セットになっています。
ほかのフォルダも同様に向きを変えたコテージとマスクのセットが入っています。下の画像は、「JPG_2」フォルダに格納された画像です。
このようにコテージをあらゆる角度から撮影した画像とそれに対応したマスクの画像がセットとなり7つのフォルダに格納されています。
ここからは、サンプル画像を使用した、RealityCapture内へのデータの読み込み、モデルへの変換、出力する方法を説明します。
■起動とレイアウト変更
初めにRealityCaptureを起動します。起動後、画面左上のアイコンから任意のレイアウトに変更します。今回は「1+2+1 Layout」を選択します。
レイアウトを変更した後に使いやすいように各ビューを変更していきます。
各ビューの右上にあるアイコンをマウス左ボタンで長押しし、プルダウンを表示させ任意のビューに変更します。
今回は下の画像のようにビューを変更します。
各ビューは
2Ds:読み込んだ画像を表示するビュー
2D:選択されている画像を表示するビュー
1D:選択されている画像の情報を表示するビュー
3D:作成されたPoint Cloudや3Dモデルを表示するビュー
となります。
■画像の読み込み
次にダウンロードした画像を読み込みます。
画像を読み込む方法は「選択した画像の読み込み」と「選択したフォルダ全体の読み込み」の2種類があります。
各画像の読み込みは、画面左上の「WORKFLOW」タブ内の「1. Add imagery」内の「Inputs」もしくは「Folder」を選択します。
「Inputs」を選択すると「選択した画像の読み込み」ができます。また、「Folder」を選択すると「選択したフォルダ全体の読み込み」を行うことができます。
今回は、ダウンロードしたサンプル画像に複数のフォルダがあるため、「Folder」を選択し、すべてのフォルダをまとめて読み込みます。
選択すると下の画像のようなウィンドウが表示されます。
ここから、読み込むフォルダ「CottageMiniature」を選択し、「OK」をクリックします。
するとフォルダ内のすべての画像が読み込まれ、読み込んだ画像の一覧が2Dsのビューに表示され、2D、1Dにはそれぞれ選択された画像と画像の情報が表示されます。
※この状態ではまだPoint Cloudやモデルへの変換が行われていないため、3Dには何も表示されません。
以上で、画像の読み込みは完了です。
Tips
マスクを作成して読み込んでいる画像は画像が表示されている2Dのビューを選択した状態で「Tabキー」をクリックすることで、マスクで抜かれる部分以外の色を暗く表示することができます。
■モデルへの変換とトランスフォーム
※今回はPoint Cloudの操作は行わず、直接モデルへの変換を行います。
今回のサンプルデータは撮影技術も非常に良く、マスクの処理がされているため不要なポイント等の削除を行う必要がほとんどありません。
Point Cloudへの変換方法や、不要な範囲のポイント、ポリゴンの削除方法は別記事にて紹介していますので、そちらをご参照ください。
RealityCapture記事 – RealityCapture チュートリアル
では、読み込まれた画像から3Dモデルへの変換を行います。
モデルへの変換は非常に簡単で、「WORKFLOW」タブ内になる「2. Process」内の「Start」をクリック、または、「F5キー」を押すことで実行できます。
どちらかをクリックすることで、モデルへの変換が開始されます。
※画像ファイルからモデルに変換する場合、一度Point Cloudに変換され、そのPoint Cloudを参照してポリゴンモデルに変換されます。
モデルへの変換が終了すると右側の「3D」のビューにモデルが表示されます。
上の画像からわかるように、変換されたモデルがZX平面に対して建物の底面が垂直になっており、バンディングボックスもモデルがXZの座標軸に対して斜めに配置されているため、不要な範囲が多くなっています。
これを修正することで、このモデルをアウトプットした際の向きを修正することができ、別のソフトウェアに読み込んだ際の向きの修正の手間を削減することができます。
モデルの向きは「RECONSTRUCTION」タブ内の「Model Aligment」内の「Set Ground Plane」より編集することができます。
「Set Ground Plane」をクリックすると下の画像のように「3D」ビュー上のモデルにハンドルが表示され、このハンドルを使用して、モデルの向きや位置を変更します。
※向きを変える際には、モデルの底面をXZ平面に合わせたり、モデルの位置を原点に合わせる必要はありません。位置の調整は後ほど説明するバウンディングボックスの再構成を行った後に簡単に修正できるため、修正は向きのみ行います。
下の画像が、モデルの底面をZX平面に対して平行に修正したモデルになります。
向きが変更できましたら、モデルを囲っているバウンディングボックスを再構築します。
再構築は「RECONSTRUCTION」タブ内の「Model Alignment」内の「Set Ground Plane」より設定できます。
クリックすることで、現在のモデルとXZ平面に合わせてバウンディングボックスを再構築します。
バウンディングボックスを再構築すると、バウンディングボックスの各面に新しいハンドルが表示されます。そのハンドルを操作することで、バウンディングボックスのサイズを調整することができます。
※仮に、各面のハンドルの表示が消えてしまった場合も、バウンディングボックスのエッジをクリックすることで再度、ハンドルを表示させることができます。
バウンディングボックスの設定が完了したらモデルの位置を調整します。
ここではバウンディングボックスの底面がXZ平面上の中心(原点)に移動させます。移動方法は「RECONSTRUCTION」タブ内の「Model Alignment」内の「Set Ground Plane」の右側のアイコンをクリックしてプルダウンを表示させ、その中の「Set Ground by Reconstruction Region」をクリックします。
すると、モデルと一緒に、バウンディングボックスの底面が原点に移動されます。
このように、RealityCapture側でモデルの向きを変えて、原点に移動させることで、モデルを出力し別のソフトウェアで読み込んだ際に、向きや位置を設定する手間を省くことが可能です。
■Output
最後にモデルの出力方法をご紹介します。
RealityCaptureはは多くの出力形式に対応しています。
Point CloudやOBJ、FBX、AlembicなどのモデルデータやJPEG、PNGでの画像形式、MP4やWMWの動画データ等のフォーマットで出力することが可能です。
今回はその中でもモデルとPoint Cloudデータへの出力方法をご紹介します。
RealityCaptureがサポートしている出力形式の詳細は以下をご覧下さい。
RealityCapture公式サイト:RC’s 出力 / export file formats(英語)
https://support.capturingreality.com/hc/en-us/articles/115001529012-RC-s-出力-export-file-formats
Point Cloudとモデルデータは同じ場所から出力ができ、「WORKFLOW」タブ内の「3. Export」内の「Model」を選択し、出力形式を選択することで実行できます。
クリックすると新しいウィンドウが表示され、出力形式を選択することができます。
モデルデータとして出力する場合、.objや.abc、.fbx等を選択、Point Cloudとして出力する場合、高密度点群で出力できる.lasや.xyzを選択します。
Tips
高密度点群(.las、.laz、.xyz、.ply)とは
モデルを再構成するための3次元の点の集まりで、 X、Y、Zの位置情報と色情報は、密集したポイントの各点に格納されます。
こちらでは「.obj」と「.las」を選択して出力を行います。
出力形式を選択した後、右下にある保存をクリックし、ファイルを出力します。
ファイル出力に関しては以上です。
■別ソフト内での読み込み結果
RealityCaptureで出力したモデルデータなどは別のソフトウェアで読み込むことができます。こちらでは、例として出力した「.obj」と「.las」をHoudiniに読み込んだ結果をご紹介します。下の画像がHoudiniでデータを読み込んだ結果です。
「.obj」ファイルを読み込んだ場合、テクスチャがついた状態の高精細なモデルが、「.las」ファイルを読み込んだ場合、モデルの面に対応する位置に、非常に多くの色の着いたポイントが読み込まれます。
下の動画は読み込んだ「.obj」データをHoudiniでレンダリングした結果です。
このように、出力したデータを読み込むことで、別のソフトウェアで編集を加えることも可能となり、モデリングに掛かる時間を大幅に削減することができます。
Tips
モデルデータを構築する際に使用する画像の選別
RealityCaptureではモデルへの変換を行う際に以下のような設定を行うことができます。
- 「Enable alignment」(画像そのものを使用するかを決める)
- 「Enable meshing」(メッシュを作成する際に使用するかを決める)
- 「Enable texturing」(テクスチャを作成する際に使用するかを決める)
「Enable alignment」は、有効にすることでPoint Cloud、メッシュ、テクスチャすべてを作成する際にこの画像を参照することはありません。
「Enable meshing」は、有効にするとメッシュを作成する際にこの画像を参照することはありません。Point Cloud、テクスチャを作成する際には参照されます。
「Enable texturing」は、有効にするとテクスチャを作成する際にこの画像を参照することはありません。Point Cloud、メッシュを作成する際には参照します。
こちらの項目を設定することで、必要な画像を選別をすることができます。
実際の設定方法は以下となります。
「2Ds」内で画像を選択するとビューの下側に新しく、画像の情報が表示されるビューが開きます。
このビューは中央下側に表示されている「2D」のビューの内容とほぼ同一の内容を表示します。そのため、新しく表示されたビューを使用せずに「2D」ビューを使用して操作することも可能です。
今回は新しく表示されたビューを使用して説明します。
下の画像の「Enable alignment」「Enable meshing」「Enable texturing」の各項目の右側をクリックします。
すると下の画像のように表示が変わりプルダウンから有効 / 無効を選択することができます。こちらの項目から「Enable」で有効に「Disable」で無効にすることができます。
他の項目も同様にプルダウンを表示して有効 / 無効を切り替えることができます。
また、この設定は別の方法で設定することも可能です。
「2Ds」のビューを「1Ds」に変更すると次のようなビューに切り替わります。
このビューでは読み込まれているデータなどの一覧を確認することができます。
読み込まれている画像は「Images」の中に格納されており、名前の左側にある「プラスマーク」をクリックすることで下の画像のように、中に格納されている画像の一覧を表示することができます。
この各項目にマウスを移動させると、下の画像のようにファイル名の右側に赤いバツボタンが表示されます。
このバツボタンをクリックすることでバツボタンが緑色のプラスボタンに変更され、ファイル名に横線が引かれ、モデル等の作成の際にこの画像を参照しないようになります。
下側のビューで「Enable alignment」「Enable meshing」「Enable texturing」の項目を確認するとすべてが「Disable」に変わっているのが分かります。
こちらは緑色のプラスマークを押すことで再度画像を参照させることができます。
また、ファイル名の右側にある「Tx」と書かれたアイコンをクリックすることでアイコンの色が変わり、「Enable texturing」を無効にすることも可能です。
以上で、RealityCaptureでのサンプルファイルの3Dモデル化の説明を終わります。
このように画像から3DモデルやPoint Cloudに変換して、出力できるため、写真撮影やスキャンが可能な実際のモデルを素早く、高解像度なモデルへ変換が可能となり、モデリングに掛かる時間を大幅に削減することができます。
RealityCaptureについて
RealityCaptureは、オールインワンの3Dマッピングおよびモデリングソフトウェアソリューションで、処理速度は市場の他の製品の10倍です。これは、フォトグラメトリ方式で実行できることに対して既成概念の枠を超えたユニークなソフトウェアです。さらに、地上写真をシームレスに何の制限もなく、一工程で簡単に統合することができる唯一のソフトウェアです。