CloudCompareを利用した3Dデータの結合

CloudCompareを利用した3Dデータの結合はiPhone LiDARを利用する上で不可欠です。モバイルスキャン協会の[マニュアル](https://mobilescan.jp/sdm_downloads/manual/)でも「スキャン範囲は１区画を延⻑10m×幅5m×⾼低差3m以内」とするのが適切とされ、この範囲を超える場合は複数回のスキャンを行い、編集ソフトで合成することとされています。
肝心のデータ合成について、日本語の適切な記事が見当たらなかったのでメモ用に残します。

## LiDAR計測

複数回に分けて計測したLiDARデータを用意します（ここでは2回に分けて計測したデータを使用）。LiDAR計測の際に気をつけることは次のとおりです。

1. それぞれのデータは最低3点のマーカーを設置する。
2. 2つのデータは最低2箇所のマーカーを共有する。

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/f384b3b6-0ee2-2554-8217-2d13f50592b8.png)

![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/774303d6-6b65-330e-7240-c325aa8a9f2c.png)

## 幾何補正

- 一つ目のデータを選択します。
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/e7d90f6d-845a-3843-4090-0601b7c4fb39.png)

- 「位置合わせ」アイコンをクリック
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/ad396ec6-dbff-0b9e-dfa0-80af99ff8bde.png)

1. マーカーをクリック
2. 鉛筆アイコンをクリック
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/4cf3db03-7e48-0dc1-ceda-0647b02dfbe6.png)

- マーカーのx,y,z座標を入力
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/5c06c5de-4662-16f7-3970-2e2d52e27e36.png)

- マーカーの座標入力が終わったら、「位置合わせ」をクリック
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/66ef207a-18a4-1d97-8c4b-b0abe027e36f.png)

1. Scaniverseの出力はYアップになっているため、「位置合わせ」をクリックするとオブジェクトが90度回転します。
2. チェックマークをクリック
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/164cc305-f901-7a99-0f3d-5b4609c2de20.png)


- 「上面にセット」アイコンをクリック
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/a8f03590-2a11-d687-1eb1-10db458685e5.png)

1. 上面観が表示されれば成功
2. 歪んでいたり、側面や裏面が表示されている場合は座標値の入力ミス

![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/ddd7eb26-da49-a110-7183-a7237b264681.png)


1. 幾何補正が終わったデータは要保存
2. 「ファイル」→「保存」

![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/6de858b3-b52d-1c46-6a76-8131d7eb7e78.png)

1. OBJ型式で保存
2. ファイル名はお好みで→「Test02_aline.obj」としました

![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/6b4b8480-2099-6579-b3a7-86568838e444.png)

- 同様にもう一つのデータも幾何補正して保存。
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/da433602-c33d-0d78-55ee-4d595e8c7210.png)

幾何補正がうまくいっていると、2つのデータはきれいに整列します。
![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/02630de4-9668-aa78-7dc4-821c0e3b4767.png)


## データのトリミング

データを結合する前に重複部分を切り取ります。データの重複があると正しい地形データが取得できません。
CloudCompare上ではわかりにくいですが、QGISでDEMを表示すると一目瞭然です。
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/1e1ddced-ea59-0f17-f3fe-9313b3460464.png)

![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/5dcb0565-0c04-8ebc-0340-6920ab8afb90.png)

1. 3Dデータのうちどちらか一つを選択し、残りを非表示にします。
2. 「分割・抽出（セグメンテーション）」ツールを起動します。
![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/9264f543-2deb-ac9b-a71e-2404f906dbd6.png)

- 「Activates polyline selection」をクリック
![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/fa9a8956-26bf-5c1a-eb7f-2ba51c799f7e.png)

- マーカーの中心を通るように切り抜き範囲を設定します。
![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/6223aa86-64e9-03a8-47a8-0bdb9ed42d48.png)

- 「Segment Out(O)」をクリック
![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/502942fa-db6e-2baf-5907-dbaf52855fa3.png)

- 「Confirm and delete hidden points(Del)」をクリック
![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/5e488074-48a0-784d-753e-bbe8f8601a47.png)

1. 「ファイル」→「保存」
2. 「test01_aline_clip.obj」などの名称で保存
![24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/a0d4a364-5aea-8d13-c266-eaef4fd75ff1.png)

もう一つのデータもクリップして、両方のクリップデータを表示します。少し隙間が空いていますが、このぐらいなら問題はありません。
![25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/9567915a-5ce1-8b48-6d1f-176230372908.png)


## データの結合


1. 「Ctrl」を押しながら2つのデータをクリックして両方のデータを選択
2. 「複数点群の統合」アイコンをクリック
![26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/915e4763-66c4-3d2c-f0df-cba8f2b7e080.png)

- 「Merged mesh」という新たなデータがつくられます。
![27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/3b1ef75c-14db-f6ad-e426-86cd7899894b.png)

- 結合されたデータを保存します。
![28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/c77eb347-4189-b720-8d7b-775cdeac6a34.png)

## ラスタの出力

1. Merge meshデータのverticesを選択
2. 「点を2Dラスターに変換（等高線の生成も選択できる）」をクリック

![29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/cf3c9d62-e533-3d24-91d2-6b5dfb821714.png)

1. step = 0.01（メッシュ解像度は必要に応じて変更してください）
2. direction = Z
3. cell height = average
4. Fill with = interpolate
5. Update grid クリック

![30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/1ddcbef8-de93-1282-2799-b3ac50383f50.png)

1. 段彩図が表示されれば成功です。
2. 「Raster」クリック
 
![31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/1d41b4d5-98dc-ce55-ad3c-fdd51a798e78.png)

1. 「Export heights」にチェック
2. 「OK」

![32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/6cbb5c49-90eb-0426-8db7-c185785633cf.png)

1. ファイル名を入力
2. 「Save」

![33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/194017a5-7c0e-26b2-15fd-0f1ddb801954.png)

QGISで表示して等高線も発生させました。2つの3Dデータの結合部分にも不自然なところは見当たりません。
![34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60438/c56f91df-574f-06cd-fe7f-6ad8d6e12693.png)

<br>
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="クリエイティブ・コモンズ・ライセンス" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />この 記事 は <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">クリエイティブ・コモンズ 表示 4.0 国際 ライセンス</a>の下に提供されています。