点群って、なに?
私はこれまで様々な点群に関する記事を投稿してきました。
ありがたいことに、1000以上のviewをいただいています。
ただ、そもそも点群データって何者だよと思いますよね。
今回は点群データの入門から、建設業の人間と議論ができるまで解説をします。
予備知識は不要です。参ります。
1. 点群 = 3次元空間上における位置のリスト
三次元空間内に点をひとつ置きたければ$(x,y,z)$を定めればよい。
中学生くらいでやりましたよね。例えば、
x = 12.345
y = 67.890
z = 3.210
これは、
x軸正の方向に12.345
y軸正の方向に67.890
z軸正の方向に3.210
行った所に点がポツンと1つだけあることを示していますね。
では、これを何百万点集めてみるとどうでしょうか?
これは、VirtualShizuokaという、静岡県を点のデータだけで表したものです。
よ~く見てみると手前の方で点と点の間が空いているのがわかりますね。
そうです。皆様お気づきの通り、点を何百万点と集めると、何かの形状を示したデータとして成立するのです。
これを、我々は点群データ(英名:PointCloud)と呼んでいるのです。
1-1. 1点に入っている情報
先ほどは、$(x,y,z)$という座標データのみ記述しましたが、
実は様々なデータを1つの点に詰め込むことができます。
| 名前 | 中身 | 何に使うか |
|---|---|---|
| RGB | 色(赤緑青 各0〜255) | 見た目。写真から色を貼る |
| intensity | 反射の強さ | 素材の違いが出る。白線やアスファルトの判別 |
| 法線 $(n_x,n_y,n_z)$ | その点の面がどっちを向いているか | 陰影、面としてつなぐ |
| classification | 分類番号 | 地面か、建物か、木か |
| return number | 何回目の反射か | 木を貫通して地面を拾う |
| GPS time | 計測時刻 | いつ取った点か |
例えば、色付き点群データを3点だけ取ったとします。
すると、データは下記のように記述されます。
x座標 , y座標 , z座標 ,r(赤),g(緑), b(青)
12.345 , 67.890 , 3.210 , 120 , 135 , 98・・・1点目
12.351 , 67.894 , 3.208 , 122 , 136 , 99・・・2点目
12.358 , 67.899 , 3.205 , 119 , 132 , 96・・・3点目
1行目の点、2行目の点、3行目の点……と並んでいます。
ただし、全ての点群データの形式に上記全ての情報が入っているわけではありません。
座標情報は必ずどんな形式の点群データにも入っていますが、
色や反射強度、分類などは、計測方法とファイル形式次第で入ってたり入ってなかったりします。
1-2. 点群は、点の集まりでしかない
点群は、大量にある点のリストです。
隣の点と線で結ばれていません。
ということは、もちろん面も構成されていないわけです。
そのため点群だけでは、
- どの3点が1枚の面なのか
- 面の表と裏はどちらか
- どこまでが1つの物体か
上記のようなことを自ら表現できないのです。
点群に対して点を三角形で結んで面にしたデータを、メッシュと呼びます。
昔のゲームでいうところのポリゴンですね。
CADやBIMで作成されたモデルは、面情報にプラスして、
「これは柱」「これは配管」「直径は100mm」といった情報が付加されます。
つまり、パッと見同じ見た目の3Dモデルでも、データの中身は違います。
| データ | 中身 | 得意なこと |
|---|---|---|
| 点群 | 実測した点の集合 | 現況の記録、距離計測、差分比較 |
| メッシュ | 点を結んだ三角形の面 | 表示、面積計算、連続した表面の表現 |
| CAD/BIM | 線・面・立体に意味や寸法を持たせたモデル | 設計、部材管理、施工情報との連携 |
| DEM/グリッド | 一定間隔の格子ごとに高さを持つデータ | 地形解析、勾配、土量計算 |
上記表を見ての通り、
点群は設計図というより、現実世界を計測した観測記録に近いのです。
これを現場の点群を計測する作業を建設業界では、点群測量と呼んでいます。
2. その点は、どうやって作るのか
座標を手で何百万行も入力するのは時間が溶けてしまいますね。
もちろん、機械が現実から測定して、正規化されたデータ構造に落としてくれます。
方法は、大きく分けて2つです。
A.レーザーで距離を測る:LiDAR
LiDARやレーザースキャナは、機械から光を出し、目標物に反射して返ってくるまでの時間を測ります。
光速を $c$、往復時間を $\Delta t$ とすると、物までの距離 $d$ は、
$$
d=\frac{c\Delta t}{2}
$$
と表せます。
さらに機械自身を原点として、どの向きへ光を出したかが分かれば、距離と方向から座標値 $(x,y,z)$ が決まります。
機械の向きを少しずつ変えながら何十万回、何百万回と測ることで、どんどんと景色が点で表現されていきます。
建設分野では、例えば次のような機器で使われます。
- 地上型レーザースキャナ(TLS)
- UAV搭載型レーザースキャナ
- 車両搭載型のMMS(Mobile Mapping System)
- 航空レーザー測量
- スマートフォンやタブレットのLiDAR
B. 写真から立体を求める:フォトグラメトリ
もう1つは、同じ目標物を2つの別々の位置から撮る方法です。
片目だけで物を見ると、右目と左目で少し違う位置に見えますよね。
このずれを視差といいます。
人間はこの視差を利用して、物体の立体を認識しています。
ということは、カメラで同様のことをしてやれば、2次元だった平面を3次元で表現できるわけです。
複数の写真から同じ模様を見つけ、カメラから伸ばした視線が交わる場所を計算すればいいですね。
これを大量の画素に対して行い、大量の写真から点群を作るのが、フォトグラメトリです。
ただし、写真だけでは辺の長さの比は出ても、実際の大きさが決まりません。
人間でいう、遠近感の話です。
高さ10cmの模型を10cm離れた場所から撮った画像と、高さ10mの建物を10m離れた場所から撮った画像って、画像の中だけだと同じ高さになってしまいますよね。
この「実寸が決まらない問題」と、その越え方は、以前の記事で数式から説明しました。
フォトグラメトリを体験できる記事にもなっているので、是非閲覧ください。
2-1. 計測方法による違い
| 方法 | 得意 | 苦手・注意点 |
|---|---|---|
| 地上型レーザースキャナ | 高密度、高精度な形状計測 | 機器から見えない裏側、据え替え時の位置合わせ |
| UAVレーザー | 広い地形、植生の隙間からの地表計測 | 飛行条件、費用、点密度の偏り |
| UAV写真測量 | 広範囲を比較的安価に色付きで取得 | 水面、光沢面、模様の少ない面、実寸と座標の基準 |
| 車載型MMS | 道路と道路周辺を移動しながら高密度に取得 | 車両から見えない場所、GNSSが入りにくい場所 |
| スマホ・深度カメラ | 手軽、狭い範囲をすぐ測れる | 計測距離、絶対座標、端末ごとの性能差 |
一長一短なため、高い機器を買ったから万能だろうとは思わずに、
何を、どの範囲で、どの精度で測りたいかを明確にして、
目的に合った計測方法を選定することが大切です。
3. 点群の座標値は現実世界の座標系とは無関係の数字
少しだけ、土木工学らしい話に入ります。
突然ですが問題です。
次の2点A,Bは、同じ場所でしょうか?
A = (12.345, 67.890, 3.210)
B = (-123456.789, 45678.901, 43.210)
答えは、数字だけでは分からないです。少し意地悪でしたかね。
原点・軸の向き・単位・地球上での基準とセットの情報になって、初めて地図上のここの点だというのがわかります。
このあと、ちゃんと説明します。
3-1. ローカル座標と地図座標
測量機器を置いた場所を原点 $(0,0,0)$ とする座標系を、ローカル座標といいます。
測量機器から見える範囲の点を取っているのでその各点の座標値は小さな数字になります。
計算や3D表示に向いています。
一方、平面直角座標や緯度・経度のように、地球上の場所と結び付いた座標もあります。
こちらは別の日や場所で測ったデータや、CAD等で作成した設計図と重ねられます。
日本の測量で使われる平面直角座標系では、一般的な数学のグラフとは異なり、Xが南北方向、Yが東西方向です。90°回転したデータを使用しているんですね。
余談ですが、私が得意とするUnityというゲーム制作のソフトウェアでは、Y軸は高さを表現しています。
同じ x や y という名前でも、シチュエーションによって様々なので、気を付けてください。
逆に言うと、もし建設業界や3Dを扱っている方とお話する際には真っ先に確認しておくべき項目であるということです。
3-2. 最低限確認する座標の情報
点群を受け取ったら、まずは次を確認しましょう。
- 座標系は何か。ローカルか、平面直角座標か、UTMか
- 平面直角座標なら何系か
- 単位はmか、mmか
- 軸の順番と向きはどうなっているか
- 高さは標高か、楕円体高か、ローカル高か
- どの測地成果・基準に基づくか
- どの基準点を使って位置を合わせたか
わかりにくいものを下記に記しておきます。
高さの基準を確認する
水平位置の座標系が同じでも、高さの基準が違うと、上下にずれてしまいます。
| 高さの種類 | 基準 | 主な取得方法・用途 | 注意点 |
|---|---|---|---|
| 標高 $H$ | 平均海面に近い高さの基準(ジオイド) | 測量成果、設計、施工、地形 | 現場で一般に欲しい高さ。どの測地成果に基づくかも確認する |
| 楕円体高 $h$ | GNSSが用いる準拠楕円体 | GNSS、スマホ、衛星測位 | 標高とは数十m単位で異なることがある。そのまま設計標高と重ねないこと |
| ジオイド高 $N$ | 楕円体からジオイドまでの高さ | 楕円体高から標高への変換 | 基本関係は $H=h-N$。使用したジオイド・モデルも記録する |
| ローカル高 | 現場で決めた仮BMや任意の0m | 小規模現場、屋内、建物内 | 国家座標の標高へつなぐには、仮BMと既知点の関係が必要 |
| センサーからの高さ・深さ | センサー位置、水面、機体など | 水深、距離画像、機械制御 | 上向きが正か下向きが正か、オフセットを含むかを確認する |
国土地理院の説明では、標高 $H$、楕円体高 $h$、ジオイド高 $N$ の基本関係は、
$$
H=h-N
$$
です。
日本では2025年4月1日に全国の標高成果が測地成果2024へ改定され、現在は「ジオイド2024日本とその周辺」を用いた標高体系になっています。
古い点群と新しい測量成果を重ねる場合は、水平座標だけでなく、標高成果の世代も確認する必要があります。
LASを受け取るときの確認票
実務では、次の項目をデータ提供者に埋めてもらうと安全です。
| 確認項目 | 記入例 |
|---|---|
| 水平座標参照系 | JGD2011 平面直角座標系 |
| EPSGコード | 分かる場合はコードを記載 |
| 系・ゾーン番号 | 第○系、UTM Zone ○○Nなど |
| 測地成果・基準日 | 測地成果2011 / 測地成果2024、計測日 |
| 高さの種類 | 標高 / 楕円体高 / ローカル高 |
| 高さのモデル・基準 | ジオイド2024、仮BM名など |
| 単位 | m / mm |
| 軸の意味 | X=北、Y=東、Z=上など |
| 原点 | 国家座標 / 器械点 / 現場原点 |
| ローカル変換 | 平行移動量、回転角、縮尺 |
| 座標を確認した既知点 | 点名、座標、残差 |
| LAS内部のCRS情報 | 有 / 無、読み取り確認済みか |
最低でも、座標系名・系番号・高さの種類・単位の4つが分からなければ、別データと安全に重ねることはできません。
この大きな測量座標をUnityへ直接入れたときに位置がずれる理由は、次の記事で解説しています。
次に読む:[現場のLAS点群がUnityでずれる原因と対処法]
4. 高密度 = 高精度ではない
点群の品質を語るとき、最も混ざりやすい言葉です。
点群データについての説明を受けたとき、密度と正確さをしっかり区別できていると、
おっ!この人やるじゃん!と思ってもらえます。
4-1. 密度とは点がどれくらい詰まっているか
密度は、1㎡あたり何点あるかですよね。
平らな面に均等に点が並んでいると仮定すると、点密度を $\rho$ [点/㎡]、点間隔の平均を $s$ [mm] としすると、
$$
s \approx \frac{1000}{\sqrt{\rho}}
$$
と見積もれます。
| 点密度 | おおよその点間隔 |
|---|---|
| 1点/㎡ | 1000 mm |
| 16点/㎡ | 250 mm |
| 100点/㎡ | 100 mm |
| 400点/㎡ | 50 mm |
ただし、実際の点群の点間は均等ではありません。
測量機の近くは密、遠くは疎になることもありますし、斜面や遮蔽物の付近では偏ります。
例えば、航空レーザーとMMSでは公開されている点密度が異なります。
同じプロジェクトの点群でも、取得方法と目的によって密度は違うのですね。
4-2. 正確さとは本当の位置にどれだけ近いか
100万点がきれいに道路の形を描いていても、
道路全体が東へ2mずれていたら、絶対位置は正確ではありません。
逆に、点が少なくても、それぞれが正しい場所にあれば、用途によっては十分使えます。
ここで、精度をさらに2つへ分けて語れればもうあなたは建設業に来るべきです。
- 相対的な正しさ:点群内部の長さ、形、高低差がどれだけ正しいか
- 絶対的な正しさ:地球上の位置、標高、方位がどれだけ正しいか
形の正しさと位置の正しさは、別々に検証する必要があるということですね。
4-3. ばらつきと偏り
もう1つ、測定値が散らばっている状態と、全体が同じ方向へずれている状態も違います。
- ばらつき・ノイズ:同じ平面を測ったのに、点が表裏へザラザラ散る
- 偏り・系統誤差:点はきれいに並ぶが、全体が一定量ずれる
大量の点を平均すればノイズを減らせる場合があります。
全体がずれていたら諦めてもう一度測量に出かけましょう。
4-4. 何に使うかで必要条件が変わる
起工測量、数量算出、出来形計測、維持管理では、必要な計測密度も測定精度も、それぞれ異なります
国土交通省のICTの全面的な活用に関する要領でも、工種や用途ごとに確認事項が整理されています。
点群の品質を尋ねるときは、
この点群の精度はどの程度ですか?
ではなく、
この点群を出来形管理に使いたいのですが、対象工種に必要な測定精度と計測密度を、どの方法で確認していますか?
と聞けると、建設業の人間とITの人間が手を繋げます。
5. 点群ファイルには何があるのか
点群は単なる座標リストなので、極端な話、テキストでも保存できます。
5-1. 30秒で作れる最小の点群
次を cube.xyz という名前で保存して、点群ソフトをお持ちの方は開いてみてください。
お持ちでない方は頭の中で$ x,y,z $軸を描いたうえで続きをお読みください。
0 0 0
1 0 0
0 1 0
1 1 0
0 0 1
1 0 1
0 1 1
1 1 1
1辺1mの立方体の8つの頂点の点が表示されます。
これが、点群の最小構成です。
5-2. ファイル形式
| 形式 | 特徴 |
|---|---|
.xyz .txt .csv
|
上の例のように中身を人が読める。簡単だが、属性の並び方が統一されていない |
.las |
測量・LiDARで広く使われるバイナリ形式。座標、反射強度、分類、戻り番号、色などを持てる |
.laz |
LASを圧縮したもの。中身を保ったまま容量を小さくできる |
.e57 |
複数スキャンや画像などを扱える、3D計測データの交換形式 |
.ply |
点群とメッシュの両方に使われる。研究・CG分野でも使われる |
.pcd |
Point Cloud Library周辺でよく使われる |
国土地理院が提供する点群も、LASを圧縮したLAZ形式です。
5-3. 無料で中身を見るならCloudCompare
CloudCompareは、点群やメッシュを表示・処理できるオープンソースのソフトウェアです。
まずは次の操作ができれば、点群の入り口として十分です。
- ファイルを開く
- 点を選ぶ
- 2点間の距離を測る
- 一部を切り出す
- 色、標高、反射強度などで表示を変える
- 点数、座標範囲、Global Shiftを確認する
座標の桁・単位・範囲を見ることまでできればレベル1はクリアです。
6. 撮ったばかりの点群はあまり綺麗ではない
計測機器から出た直後の点群には、別の場所から測った点、動いた人、草木、不要な範囲などが混ざっているため、下記のような処理が必要です。
6-1. 最低限知っておきたい処理用語
| 用語 | 何をするか |
|---|---|
| レジストレーション | 別々の場所から測った点群同士を重ねる |
| 地理参照・座標付与 | ローカル点群を測量座標や地図座標へ置く |
| ノイズ除去 | 飛び点、移動体、誤計測点などを取り除く |
| クロッピング | 必要な範囲だけ切り出す |
| ダウンサンプリング・間引き | 形を大きく崩さず点数を減らす |
| 分類 | 地面、植生、建物などのクラスを付ける |
| セグメンテーション | 点群を物体や領域ごとに分ける |
| 法線推定 | 各点の周囲から、面が向いている方向を求める |
| メッシュ化 | 点を結んで連続した面を作る |
ここで注意したいのが、処理済みの点群は、計測直後の点群と同じではないことです。
ノイズ除去で必要な点まで消すかもしれません。
間引きで小さな段差が失われるかもしれません。
地面分類を間違えれば、構造物を地面として扱うかもしれません。
したがって、データを受け取るときは、
生データですか? どの処理をした点群ですか?
と確認することをおすすめします。
6-2. 平面を見つける
点群には面がありませんが、ある点の近くにある点を集めれば、壁や床らしい平面を推定できます。
大まかな流れは、
- 近くの点を集める
- 点の中心を求める
- 点が最も広がっていない方向を求める
- その方向を面の法線とする
です。
こちらの手法は私の記事で解説しています。
数学的に書いてあるので読みやすいと思います。
さらに、面が空間上にあるだけでは、面に対して何の操作もできませんね?
なので、その面に$ xy $平面(ローカル座標系)を定義してやる必要があります。
こちらについても私の記事で解説しています。
7. 点群を何に使うのか
点群の強みは、現場の表面を広く、細かく、3次元座標として残せることです。
よくある用途
| 用途 | 何を見るか | 特に確認すること |
|---|---|---|
| 起工測量 | 施工前の地形 | 座標、地表面の抽出、植生や水面の扱い |
| 土量算出 | 施工前後や設計面との差 | 同じ座標系、境界、比較面の作り方 |
| 出来形管理 | 設計面に対する施工結果 | 対象工種の測定精度、計測密度、評価方法 |
| 進捗管理 | 時点ごとの形状変化 | 計測日、同じ基準への位置合わせ |
| 既設構造物調査 | 変形、傾き、離隔、損傷候補 | 死角、表面状態、必要な細かさ |
| 維持管理 | 経年変化 | 異なる時期・機器間の系統差 |
| 災害調査 | 崩落、堆積、変状範囲 | 安全な取得方法、取得できていない範囲 |
例えば、土量計算では、
点が1000万点あるから、土が何m³あるのような計算できません。
土量を求めるには、やはり前節6-1でも紹介した、
- 地面ではない点を除く
- 地表面をグリッドやTINなどの面にする
- 比較する設計面や別時期の面を用意する
- 2つの面の高さの差を面積方向へ積分する
という処理が必要です。
どの点を地面としたか、空白をどう補ったか、境界をどこに置いたかで結果は変わります。
土量の数字だけでなく、数字を作った条件を一緒に残す必要があります。
8. 建設業の人と話すための10問
ここまで読んできた皆さんなら、点群の話をするときに
「点がいっぱいあってすごいですね!」で会話が終わることはありません。
- 何に使う点群ですか?
- いつ、何を、どの機器で計測しましたか?
- 計測範囲はどこまでですか?
- 座標系、系番号、単位は何ですか?
- 高さは標高ですか、楕円体高ですか、ローカル高ですか?
- 相対精度と絶対精度を、どう確認しましたか?
- 必要な計測密度を満たしていますか?
- 死角や欠損はどこですか?
- 生データから何を除去・分類・間引きしましたか?
- 設計データと、何を基準に重ねますか?
これらを質問できるようになっているわけです。
さらに、もうふわっとした言葉で時間を無駄に浪費することもありませんね。
| ふわっとした言葉 | 具体的な聞き方 |
|---|---|
| 「高精度な点群です」 | 何に対する、どの方向の、何%または何mmの精度ですか? |
| 「位置は合っています」 | どの基準点で、何点を使い、残差はいくつでしたか? |
| 「点が細かいです」 | 対象範囲の点密度と、最大点間隔はいくつですか? |
| 「ノイズ処理済みです」 | どの条件で何点を除外しましたか? 原本は残っていますか? |
| 「LASで渡します」 | LASのバージョン、座標系、系番号、単位、分類コードは何ですか? |
| 「設計と重ねました」 | どちらを、どの変換で、何を基準に動かしましたか? |
点群の議論では、やはり形・置き場所・細かさ・欠け・加工履歴を分けて話すのが表からわかるかと思います。
9. 点群データの世界へようこそ !
ここまで読んだ皆さんなら、もう今からでも点群データを触ってみたいですよね。
この記事では、点群の正体を「座標のリスト」まで分解しました。
ここから先は、やりたいことに応じて分岐します。
点群を一度見てみたい
記事でも紹介した、VirtualShizuoka様がおすすめです。
同時に、国土交通省のPLATEAUを見ると、いかにかっこいいことをしているかがわかります。
点群を自分で作りたい
写真測量の原理、実寸スケール、スマホの加速度計、ARCoreの座標、COLMAP、LAS出力まで進みます。
LAS点群をUnityで表示したい
測量座標のような大きな値をfloat32へ入れると何が起きるか、原点へ引き寄せるアンカー、LODまで進みます。
点群から壁や床を見つけたい
最小二乗法、PCA、共分散行列、固有値分解から、最も点に合う平面を求めます。
見つけた面の「右・上・法線」を決めたい
法線だけでは決まらない面上の軸を、壁・床・天井でも破綻しにくい方法で構築します。
まとめ
- 点群は、3次元座標を持つ点の集まり
- 1点は、位置に加えて色・反射強度・分類などを持つことがある
- 点群には、最初から面や物体の意味があるわけではない
- 点は、主にレーザー計測や写真測量で作る
- 機器から見えない場所には点ができない
- 密度、正確さ、ノイズ、欠損は別々に評価する
- 相対的な形の正しさと、絶対的な置き場所の正しさも別
- 座標系、系番号、単位、高さの基準が分からない座標は重ねられない
- 点群は、位置合わせ・分類・間引き・面生成などを経て活用される
- 必要な品質は「何に使うか」から決める
点群は、魔法の3Dデータではありません。
現実の表面を、機械が届いた範囲で、ある細かさと誤差を持って記録した、点の観測結果です。
何点あるかより、どう測り、どこに置き、何に使うか。
点が作れれば、面や立体を構成できる。
そこまで話せれば、もう点群の入口には立てています。
サイエンスをみんなで一緒に盛り上げていきましょう!
ではでは皆さま、今日も一日、ご安全に!






