iPhone ProのLiDARで測量・土地の面積と高低を取得

3Dスキャンアプリケーション

最終更新日: 2024 年 9 月 2 日

目次

iPhone ProのLiDARで測量・土地の面積と高低を取得する

iPhone ProのLiDAR(ライダー)で測量をして土地の面積と高低を取得します。

このページでは、許可申請に必要かつ、許可申請に十分耐えうる土地の現況測量図(地積測量図、土地利用計画図など)を作成するための簡易な測量を行うための情報です。

トータルステーション

これまで通常、土地の面積の測量はトータルステーションを使って座標を取得して現況測量図を作成します。

しかしながら、このページではiPhone Proを使って土地の測量を行います。

iPhoneで測量する2種類の方法

iPhoneで測量する方法には2種類の方法があります。

  1. フォトグラメトリ(Photogrammetry)
  2. LiDARスキャン

フォトグラメトリーとは

フォトグラメトリーとは、複数の写真から3DCGを生成する技術です。
対象物をさまざまな角度から撮影した異なる視点からなる複数の写真を合成して3DCGを生成します。

ちなみに、フォトグラメトリーは SFM(Structure From Motion)と同意語です。

LiDAR スキャナ非登載 iPhone でも利用可能です。

LiDARスキャンとは

LiDAR スキャンとは、紫外線・可視光、または近赤外波長のレーザー光を物体へ照射し、光が跳ね返ってくるまでの時間を計測して物体までの距離・方向を測定して、X,Y,Zで表される三次元座標を持った点群データを生成します。

iPhone 12 Pro 以上にLiDARスキャナが搭載されています。
したがって、iPhone 12 Pro以下の機種は非登載のためLiDARスキャン対応していません。

LiDAR搭載機種
iPhone12 Pro、iPhone12 Pro Max
iPhone13 Pro、iPhone13 Pro MAX
iPhone14 Pro、iPhone14 Pro MAX
iPhone15 Pro、iPhone15 Pro MAX

iPadでは、12.9インチiPad Pro(第4世代以降)、11インチiPad Pro(第2世代以降)にLiDARスキャナが搭載されています。

iPhone測量の精度

トータルステーションで測量をおこなった場合と近い結果を得られます。
とはいえ、あくまで近いというのみで正確ではありません。
iPhoneと同時に使うアプリケーションによって差が出ます。

例えば、具体的な数字で言うと、iPhone LiDAR で適当に計測した場合で、300㎡程度ある敷地の測量誤差は1㎡未満です。
ただし、測量者の技術や点群から図面への作成作業の丁寧さに大きく左右されます。

iPhone LiDAR+フォトグラメトリー(SFM)での精度は誤差±5cm以内と言われています。

結論として、農地転用で必要な現況平面図、土地利用計画図、雨水浸透阻害行為許可申請での雨水の流量計算に必要な図面の作成や、砂防法や開発許可の土砂の土量(切土、盛土)、の計算等には十分に利用できますし、申請書類の添付図面として十分に耐えうるものです。

< 補足 >
もっと精度を高めることも出来ますが、GNSS(汎地球測位航法衛星システム)など他にも専用の機材を導入する必要があり、また、これらの機材が高額のため、手軽にとはいかなくなります。
ここでのニーズはあくまで中規模までの許可申請に耐えうる程度の結果と成果物が得られれば良いので、一先ずはこれで十分です。

iPhone測量のメリット

iPhoneで測量して図面を作成するメリットとしては

  • 一人で測量できる
  • 測距作業の時間が早い
  • 簡単 アプリを起動し外周を撮影するだけ
  • 比較的機材が安い(iPhone 12 Pro以上のLiDARスキャナが搭載された機種が必要)
    ※ フォトグラメトリーのみを利用する場合はLiDAR非搭載iPhoneでも可

デメリットは

  • 若干の誤差がある(許容できる範囲)
  • ITスキルが必要

LiDARアプリ

iPhoneのLiDARで測量できるアプリはたくさんあります。
アプリによっても精度が大きく違う印象があります。

LiDAR+SFM(フォトグラメトリー)というアプリもあります。精度はかなり高くなるようです。

データの容量

300㎡(約100坪)の平均的データは6GB程度でした。
もちろん、測量の仕方によっても変動してくると思いますので、あくまでも目安です。

個人的には、iPhone Pro の保存容量は128GBでも問題ないかと思われます。

データの種類

PLYファイルとして受け渡しをします。

iPhone のアプリケーション上でエクスポート、エクスポートしたファイルをPCに送信、PCで展開の流れです。

iPhoneのLiDARで測量から作図までの流れ

  1. LiDARで測量
  2. 点群処理 点群処理ソフトにスキャンデータを取り込み、画像ファイルを出力
  3. 図面作成 CADソフトで画像読み込み、製図

LiDARで測量

3Dスキャンアプリケーション

ざっと調べたところスキャンソフトは沢山あります。

PIX4Dcatch

RealityScan

Scaniverse

3d Scanner App

Polycam

Quick3D

Dot3D

Metascan

magicplan

室内で少し試したところ、PIX4Dcatch と Scaniverse が良さそうだったので現場でも、この2つを使って計測した。

3d Scanner App(LiDAR、フォトグラメトリー)も良さそうだったので、室内であるが試してみた。

結論

結論として、Scaniverse の LAS形式を使うのが現時点では一番良い。

Scaniverse – 3D Scanner

https://apps.apple.com/jp/app/scaniverse-3d-scanner/id1541433223

iPhone での問題点

1.撮影中iPhoneが熱が原因で計測できなくなる

撮影を行ったのは令和6年8月16日~23日、天気晴れ、気温38度

「高温注意iPhoneの本体温度が下がるまでお待ちください。」とiPhoneの画面に表示されてLiDARアプリが使えなくなる。

高温注意iPhoneの本体温度が下がるまでお待ちください。

解決方法

100円均一で氷嚢、保冷ボックス、氷(袋入り)を買ってきて、iPhoneを冷やしながら計測をすることで回避できた。

計測を行うときは、必ずiPhoneは立て持ちで計測を行うこと。
計測開始時に横持ちだと点群データの天地がおかしくなって再度計測を行うはめになる。

2.Point Cloud(点群データ)ファイルのデータ容量が大きくてメール送信できない場合がある

Gmailの添付ファイルの送信時の最大サイズは25MBまで。

Scaniverse のPLYやLASデータは20MB程度、 3d Scanner App のPLYやLASデータ容量は50MB程度だった。

PIX4Dcatch のPLYデータ容量は80MB程度だった。
PIX4Dcatch から LASデータは直接出力できない。
そのため、全てのデータを選択してファイル保存したが合計で6.64GBになった。

解決方法1

iCloud の「Mail Drop」を利用する。

解決方法2

iPhoneにファイルで保存後、PCブラウザでiCloud経由でダウンロードする。

バックアップを設定していれば、iPhoneに保存した時点で自動的にiCloudにバックアップが保存されている。

iCloudのバックアップからファイル保存したデータのダウンロードは以下から

https://www.icloud.com/iclouddrive

点群処理

データの問題?

CloudCompare

PLY
PIX4DcatchのPLYデータはエラーで読み込めない。
ScaniverseのPLYデータは正常に読み込めた。
3d Scanner AppのPLYデータは一部エラーが出たが読み込めた。天地及び中心に問題がある。

LAS
PIX4DcatchのLASデータは読み込ませていない。LAS形式を簡単に出力できず、読み込ませるまでの作業が面倒。
ScaniverseのLASデータは正常に読み込めた。
3d Scanner AppのPLYデータは正常に読み込めた。天地及び中心に問題がある。

Potree

PLY
PIX4DcatchのPLYデータは全く表示されなかった。
ScaniverseのPLYデータは全く表示されなかった。
3d Scanner AppのPLYデータは全く表示されなかった。

LAS
PIX4DcatchのLASデータは読み込ませていない。LAS形式を簡単に出力できず、読み込ませるまでの作業が面倒。
ScaniverseのLASデータは正常に表示された。
3d Scanner AppのPLYデータは全く表示されなかった。

無料の点群処理ソフト

CloudCompare 無料の点群処理ソフトウェア

CloudCompare 公式サイト
https://www.danielgm.net/cc

難しい作業なく、すぐに使える。

日本語化手順
Cloud Compareを開き,Display → Language Translation → 日本語を選択 → 再起動

cloudcompare_hp

CloudCompare の使い方

(参考)

https://onetech.jp/blog/what-you-can-do-with-cloudcompare-18504#Cloud_Compare

Potree 点群処理ソフト

Potree公式サイト
https://potree.org

(参考)セットアップ方法
https://github.com/potree/potree/?tab=readme-ov-file

(参考)セットアップ方法

DAIJU MAGAZINE
3D点群データをWEB公開!無料でできるPotreeの導入方法を解説。建設業が3D点群データを扱う時代がやってき... 昨年、高台中学校の職業体験を行った際(株)サーベック様協力のもと3Dレーザースキャナー(※)のデモとして当社社

potree セットアップファイル一式のダウンロード
Potree、PotreeConverter、node.js

Potreeのダウンロード

https://github.com/potree/potree/releases

Potreeには、サーバー版とデスクトップ版がある。
どちらも無料だけど、サーバー版は自分でサーバーを用意する必要がある。

あまり詳しくない人はデスクトップ版をお勧めします。簡単なので。

サーバー版を使うメリットは、外部の人にも特別な環境を要求せず、インターネットに接続されたPCのブラウザから3Dデータを共有できることです。

地積測量図、計画平面図、造成計画断面図の図面の作成や土量の計算、排水の流量計算に必要な情報を得る程度で、自分だけが利用できれば良いのであればデスクトップ版で十分事足ります。

Potree(デスクトップ版)

ダウンロード

https://github.com/potree/PotreeDesktop/releases

記事執筆時点バージョン:PotreeDesktop_1.8.1_x64_windows.zip 105MB 2022年11月29日

解凍し、Cドライブ直下に保存

C:\PotreeDesktop_1.8.1_x64_windows

node.jsPotreeConvertere のインストールをする。

起動

PotreeDesktop.bat をダブルクリックしてPotreeを起動させる。

PotreeDesktopを起動

これで起動する。

Potree(サーバー版)

node.js インストール

https://nodejs.org/en

記事執筆時点バージョン:Node.js v20.17.0

node.js をダウンロード、インストール(インストールパスはデフォルトのままで)

Potree(サーバー版)インストール

zipファイルのままFTP等でウェブサーバーに転送
記事執筆時点バージョン:potree_1.8.2.zip 56.6MB 2023年12月12日

※ WordPress公開フォルダにはアップロードしない。(たぶん正常に表示されないから)

SSH接続して解凍 ~]@ unzip potree_1.8.2.zip

ブラウザでアクセス

あわせて読みたい

この時点でアクセスしてもエラーで何も表示されない。
点群データがないから。
PotreeConverter を使ってLASデータを Potree で使えるように変換してアップロードすることで利用できるようになる。

PotreeConverter インストール

https://github.com/potree/PotreeConverter/releases

記事執筆時点バージョン:PotreeConverter_2.1.1_x64_windows.zip 13.6MB 2022年11月29日

ダウンロード、解凍、Cドライブ直下に保存する。
C:\PotreeConverter

PotreeConverter 直下にフォルダ「data_converted」を新規作成する。

C:\PotreeConverter\data_converted

「data_converted」は任意のフォルダ名で、必須名称ではありません。
現場毎の名称でフォルダを作成すれば使い勝手が良いと思います。

コマンドプロンプトで作業

cd c:\PotreeConverter

ドキュメントでは、PotreeConverter でコンバートするには以下のようにすると書かれている。

PotreeConverter.exe <input> -o <outputDir>

しかしながら、上記で実行しても全てのファイルが生成されなかった。
-p オプションを追加してファイル名を指定して実行すると全てのファイルが生成された。

LASデータなら以下

PotreeConverter.exe Scaniverse20240823.las -o C:\PotreeConverter\data_converted -p index

PLYデータなら以下(出来るだけLAS形式を使う)

PotreeConverter.exe Scaniverse20240823.ply -o C:\PotreeConverter\data_converted -p index

-p index
ファイル名に index を指定することで、index.html が生成される。
こうすることでウェブブラウザから任意のディレクトリURLまでの入力で表示が可能になるから多少便利になる。

コマンドプロンプト

c:\>cd PotreeConverter

c:\PotreeConverter>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 82E4-D0B0 です

 c:\PotreeConverter のディレクトリ

2024/08/27  17:09    <DIR>          .
2024/08/27  17:09    <DIR>          ..
2024/08/27  17:26    <DIR>          complete
2024/08/27  13:11           261,632 laszip.dll
2024/08/27  13:11    <DIR>          licenses
2024/08/27  13:11         1,323,520 PotreeConverter.exe
2024/08/27  13:11             3,700 README.md
2024/08/27  13:11    <DIR>          resources
2024/08/26  12:10        11,172,567 Scaniverse 2024-08-23 130812.ply
2024/08/26  12:10        11,172,567 Scaniverse-20240823.ply
               5 個のファイル          23,933,986 バイト
               5 個のディレクトリ  21,496,475,648 バイトの空き領域

c:\PotreeConverter>PotreeConverter.exe Scaniverse20240823.las -o c:\PotreeConverter\data_converted -p index
#threads: 8
#paths: 1

output attributes:
name                              offset    size
================================================
position                               0      12
intensity                             12       2
return number                         14       1
number of returns                     15       1
classification                        16       1
scan angle rank                       17       1
user data                             18       1
point source id                       19       2
rgb                                   21       6
================================================
                                              27
================================================
cubicAABB: {
        "min": [678053.083479, 3907466.570056, 31.973382],
        "max": [678117.132217, 3907530.618795, 96.022120],
        "size": [64.048738, 64.048738, 64.048738]
}
#points: 744'822
total file size: 18.5 MB
target directory: 'C:\PotreeConverter\data_converted/pointclouds/index'

=======================================
=== COUNTING
=======================================
tStartTaskAssembly: 0.000673s
countPointsInCells: 0.324275s
finished counting in 0s
=======================================
createLUT: 0.086850s

=======================================
=== CREATING CHUNKS
=======================================
distributePoints0: 0.000937s
distributePoints1: 0.003671s

[67%, 4s], [DISTRIBUTING: 100%, duration: 0s, throughput: 2MPs][RAM: 0.0GB (highest 0.1GB), CPU: 7%]
finished creating chunks in 1s
=======================================

=======================================
=== INDEXING
=======================================
[67%, 5s], [INDEXING: 0%, duration: 0s, throughput: -na'n(i'nd)MPs][RAM: 0.1GB (highest 0.4GB), CPU: 61%]
sampling: 1.298279s
flushing: 1.307053s
metadata & hierarchy: 1.697673s
deleting temporary files

=======================================
=== STATS
=======================================
#points:               744'822
#input files:          1
sampling method:       poisson
chunk method:          LASZIP
input file size:       0.0GB
duration:              5.905s
throughput (MB/s)      3MB
throughput (points/s)  0.1M
output location:       C:\PotreeConverter\data_converted/pointclouds/index
duration(chunking-count):       0.331
duration(chunking-distribute):  0.829
duration(chunking-total):       1.172
duration(indexing):     1.704

c:\PotreeConverter>

このようなファイルが作成される。

これをアップロードするのだけど、コンバータで数百ファイルも生成されるため zip 圧縮してからアップロードし、その後SSH接続して unzip する。

potree convertで作成されたファイル

点群ファイルのアップロード

コンバートした点群ファイルをzip圧縮し、FTPでアップロードする。

いちいち解凍のためだけにSSH接続して unzip コマンド打って解凍するのは面倒なので unzip.php を作成した。

ブラウザからアクセスするだけで解凍できる。

https://potree.gyouseisyoshi-yoshida.com/Potree_1.8.2/examples/data_converted/unzip.php

unzip.php

<?php
	// ディレクトリ内の最初のZIPファイル名を取得(常に1つしか解凍しない前提)
	$filePath = "./index.zip";
	$toDir = "./";
	
	echo $filePath."を解凍します</br>";
	echo "――――――――――――――</br>";
	
	$zip = new ZipArchive();
	$zip->open($filePath); // zipファイル指定
	$zip->extractTo($toDir); // 展開先ディレクトリ指定
	$zip->close();
	
	// ディレクトリ内のファイル表示
	echo "ディレクトリ内のファイル表示</br>";
	$target = "./*";
	foreach (glob($target) as $value) {
		echo $value."</br>";
	}
	echo "――――――――――――――</br>";
	echo "完了";
?>

ブラウザからPotreeにアクセス

表示できましたー!
しかしながら、始点と終点がズレています。
調べると、これはiPhone独特の問題点とのことで、撮影方法によって起こるとのこと。

計測(撮影)にかかった時間は面積約1000㎡で30分程度でした。
はじめてにくわえてiPhoneが熱で使えなくなったりと手間取りました。

撮影する時の注意点として

  • iPhone本体の角度を保つ
  • 旋回しない(同じ角度からの撮影をする)

https://potree.gyouseisyoshi-yoshida.com/Potree_1.8.2/examples/data_converted

potreeにウェブアクセス

こちらは別現場ですが、iPhone本体の角度を20度程度で固定し、旋回せずに計測(撮影)した点群データ

現場と全く同じスケールで、高低測量もできている。
方位も、距離も完璧!

現場が小さかったからと言うのもあるかもしれない。
計測(撮影)にかかった時間は5分程度です。

https://potree.gyouseisyoshi-yoshida.com/Potree_1.8.2/examples/sunari

potree_sunari

CAD図面作成

Potreeで面積測定を選択して、境界線に沿って線を引いたら自動的に距離と面積が表示される。
杭に赤点を合わせるとより正確な数値で表示される。

potreeで距離と面積を取得

次に、左メニューのシーン項目からDXFをクリックして、dxfデータを出力する。

PotreeからDXFデータ出力

DXFデータをjw_cadで開くとpotreeで引いたラインが描かれている。

potreeから出力したdxfをjw_cadで開く

U字側溝の幅も後から測れる

potreeでU字側溝の幅を測る

断面図を作る

左メニュー、ツール → 高さプロファイル をクリック
始点と終点を指定して線を描く。

左メニュー、 プロパティ → 2Dプロファイルを表示 をクリック
高さプロファイルウィンドウが表示されて高さを知ることが出来る。

potreeで断面図を作成

potree の使い方

(参考)土地家屋調査士 チロ太さんの動画がわかりやすいです。

有料の点群処理ソフト

Metashape

話しがそれてしまいますがドローンで撮影した動画から画像を取得して3Dデータ処理できるソフトがあります。

30日間1回のみ無料で全ての機能が使える。
Metashape スタンダード版 29,700 (税込) 
Metashape プロ版 ?円

Metashape
Metashape|株式会社オーク 株式会社オークのAgisoft社Metashape(旧PhotoScan)紹介ページです。写真から生成するのでスキャン対象の大きさに一切制限はありません。 小さな昆虫から、航空写真まで無...

Metashapeは次回、ドローンで大規模開発の現場でチャレンジしてみます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次