結論から先に言うと、
エリアをいくつかに分けてスキャンを行い、編集ソフトで合成する
これが現状のベストプラクティスです。
LiDARスキャンで一度に広域をスキャンすることは難しいです。
具体的なスキャンの実施方法
- エリアを一定の範囲に区切る
- 区画の境界の周辺にマーカーを設置する
- 区画ごとにスキャンを実施する
- スキャンした結果を3Dデータ(OBJなど)としてエクスポートする
- 3DデータをCloudCompareにインポートする
- 幾何補正を行う
- データをトリミングする
- データを結合する
- エクスポートする
エリアを一定の範囲に区切る
1区画10m x 10m以内としておくのが良さそうです(理由は後述)
今回は例として、この部屋を4分割してスキャンすることにします。
区画の境界の周辺にマーカーを設置する
全ての区画の境界の周辺にマーカーを設置します。最低3つ置いてください。
マーカーはモバイルスキャン学会が提供してくださっているものを紙に印刷して使っています。
このマーカーは後ほど行う幾何補正に必要となりますのでとても重要です。
複数回に分けてスキャンを行うと、それぞれのスキャン結果は異なる座標系となってしまうため、位置や回転がバラバラでそのままでは一つのデータとして扱えません。そこで座標系を統一する = 幾何補正を行うのですが、その基準となるのがこのマーカーなのです。
なので、マーカー同士の位置を正確に測って設置する必要があります。
今回は緑のマーカーを原点(0,0,0)とし、その他のマーカーは0.5mずつ離して設置しました。
区画ごとにスキャンを実施する
LiDAR搭載のiPhone or iPadでスキャンを実施します。
※今回はscaniverseを使いました。
なお、スキャンする際は区画だけでなく境界にあるマーカーも映すようにしてください。
例えば区画1をスキャンする際は、図の赤く塗りつぶしてある箇所をスキャンします。
スキャンした結果を3Dデータ(OBJなど)としてエクスポートする
3DデータとしてはFBXやOBJのほうが取り扱いやすいです。
スキャンアプリは無料ではusdzしかエクスポートできないものが多いので注意です。
3DデータをCloudCompareにインポートする
CloudCompareはオープンソースの点群処理ソフトウェアです。(GPLライセンス)
このソフトに先ほどエクスポートした3Dデータをインポートします。
4つのスキャン結果をそのままインポートしてみました。
部屋になっていませんね。これはそれぞれの座標系があっていないためです。
これから補正をかけていきます。
幾何補正を行う
補正は1つずつ行うので、先頭のデータ以外はチェックを外して非表示にしておきます。
先頭のデータを選択します(選択されたデータは黄色い枠で囲われます)
また、メニューの左下のボタンで視点を切り替えられるので、マーカーが見やすい視点に切り替えておきましょう。
次に[位置合わせ]ボタンをクリックします。(何とも形容し難いアイコンで困ります)
原点のマーカーの中心をクリックします。
クリックした座標がA0という名前で追加されます。
座標値を入力するダイアログが表示されます。
A0の位置のマーカーの座標値は(0,0,0)なので、その値をダイアログに入力して[OK]をクリックします。
次のマーカーの中心をクリックします。
クリックした座標がA1という名前で追加されます。
R1として追加されました。
残りのマーカーに対しても同様の操作を行います。
3つのマーカーの座標値の設定が終わったら、[align]をクリックします。
alignができたら[チェックマーク]をクリックします。
これで一つ目のデータの作業は終わりです。
残りのデータに対しても同様に作業していきます。
データをトリミングする
それぞれのデータが重複している箇所があるため適宜削除します。
Segmentツール(はさみのアイコン)をクリックします。
重複箇所を削除できました。同様の処理を他のデータにも施します。
データを結合する
データを全て選択し、[複数点群の統合]ボタンをクリックします。
[Merged mesh]という名称で新たなデータが生成されます。
このデータは、全てのデータが統合されています。
エクスポートする
[Merged mesh]データを選択して、[Save]ボタンをクリックします。
任意の名前で統合されたデータをファイルとして保存してください。
お疲れ様でした。
(おまけ)LiDARスキャンの範囲について
LiDARによるスキャンの範囲について、モバイルスキャン学会のマニュアルによるとこのように記載があります。
・スキャン範囲は1区画を延⻑10m×幅5m×⾼低差3m以内とする。
・1区画範囲を超えるスキャンをする場合は、区画及びスキャンを別けて行い、点群編集ソフト上で合成を行うようにする。
また、3Dスキャン界隈では有名なiwamaさんの記事でもスキャン範囲について下記のように言及しています。
一度にスキャンできる範囲は条件により変わりますが、10m×10m(100m2)以内を目安にするのが良いと思われます。
なお涼しい場所でスキャンをする場合は上記より広い範囲でもスキャンすることが可能ですが20m×20m以内に納めるのが良いと思われます。
LiDARスキャンとは少し違いますが、Appleが提供しているRoomPlanについては、WWDC22のプレゼンテーションにおいて 9m×9mが物理的なスキャン領域として推奨されています。
まとめ
この辺の話をまとめると、10m x 10mが一つの目安になりそうです。
本当の限界については、その現場の明るさや設置物など様々な条件次第になりますので、現地検証をしてみるしかないかと思います。