点群処理の全体像 — Point Cloud Viewerの各機能は現場で何に使うのか

点群処理の全体像 — Point Cloud Viewerの各機能は現場で何に使うのか

この記事について

何となく点群ソフトを作ってきて、機能面ではエンジニア目線で分かっても、実際開発したアプリがどのように使われるのか?というのは、土木や建築現場で仕事をしてる人しか分かりません。

Point Cloud Viewerに実装した(または予定の)全機能について、「何のためにあるのか」「現場でどう使うのか」を整理した自分用リファレンス。

技術的な実装方法ではなく、各機能の存在意義と利用シーンにフォーカスしてAIに情報をまとめてもらいました。

Point Cloud Viewer — ボックス選択

入力フォーマット(6種類)

PLY — 3Dスキャン・研究用途のデファクト

スタンフォード大学が策定した点群・メッシュフォーマット。

MeshLabやBlenderで標準サポート。iPhone LiDAR → Scaniverse → PLYエクスポートという流れで個人でも使える。

研究論文のサンプルデータもほぼPLY。 ASCII/Binaryの2種類がある。

誰が使うか: 3Dスキャンの個人ユーザー、大学・研究機関、CG制作者

LAS — 測量業界の標準

ASPRS(米国写真測量学会)が策定した点群の業界標準フォーマット。

航空LiDAR、地上レーザースキャナ、MMS(移動体計測)のデータは基本LASで納品される。

ヘッダーに座標系・スケール・オフセット情報を持ち、各点にIntensity(反射強度)やClassification(分類コード)を格納できる。

誰が使うか: 測量会社、建設コンサルタント、国交省・自治体の発注担当

LAZ — LASの圧縮版

LASファイルを算術符号化で圧縮した形式。

ファイルサイズが1/5〜1/10になる。データの受け渡しやアーカイブに使われる。中身はLASと同じ。

誰が使うか: LASと同じ。ネットで公開されてる点群データ(VIRTUAL SHIZUOKAなど)はLAZが多い。

PCD — ロボティクス・自動運転のデファクト

PCL(Point Cloud Library)プロジェクトが策定。

ロボットの3Dセンサー(Velodyne LiDAR等)のデータ処理で使われる。自動運転、ドローン測量、3D SLAMの研究で標準。

誰が使うか: ロボティクス・自動運転エンジニア、ドローン測量会社

XYZ / CSV — テキストベースの汎用フォーマット

スペース区切り(XYZ)やカンマ区切り(CSV)のプレーンテキスト。

Excelで開ける。測量の中間データや、他フォーマットに変換する際の中継地点。

誰が使うか: 全員。「とりあえずCSVにしておけば誰でも開ける」という安全牌。


出力フォーマット(6種類+DXF+PNG)

PLY — 3Dソフトへの受け渡し

MeshLab、Blender、CloudCompareで開ける。メッシュ化やレンダリングの前段階。

GLB — Web3Dとゲームエンジン

glTFのバイナリ版。SketchfabへのアップロードやUnity/Unreal Engineでの読み込みに使う。

LAS — 測量ソフトへの戻し

ノイズ除去やトリミングした点群を、TREND-POINTやTerraソリッドに戻す。Intensity/Classificationを保持したまま書き出せるのが重要。これができないと測量データとしての価値が失われる。

PCD — PCLツールチェーンへの戻し

PCLのフィルタリングやセグメンテーションに掛ける前処理として。

XYZ / CSV — Excelや他ツールへの汎用出力

座標リストとして渡す。GISソフト(QGIS)でもCSVインポートできる。

DXF — CAD図面化

AutoCADやJw_cadで直接開ける。断面プロファイルをDXFで出すと、そのまま横断面図の図面に組み込める。発注者への納品図面はDWG/DXFが基本。

PNG — 報告書用のスクリーンショット

工事報告書や技術提案書に「こういう点群を処理しました」の証拠として貼る。


表示機能

カラーモード — Original

ファイルに記録されたRGBカラーをそのまま表示。写真測量(フォトグラメトリ)で撮った点群は色が付いているのでリアルに見える。LiDARのみのデータは色が無い(灰色になる)。

使い道: 写真測量データの確認、プレゼン用の見栄えの良い表示

カラーモード — Height Heatmap

標高(Y軸)に応じて青→緑→黄→赤のグラデーション。地形の凹凸が一目で分かる。平坦に見える地面でも微妙な傾斜が色で見える。

使い道: 地形の高低差把握、排水計画(水が溜まる場所の特定)、法面の勾配確認

カラーモード — Intensity

LiDARの反射強度値。レーザーが物体に当たって戻ってきた光の強さ。アスファルトは低い、白線は高い、植物は中程度。カメラがなくても路面の状況が分かる。

使い道: 路面の白線・区画線の判読、舗装状態の確認、反射率による材質判別

カラーモード — Classification

ASPRS標準の分類コード。航空LiDARの業者が自動・手動で分類したデータ。

コード分類用途
2地面DEM(数値標高モデル)の生成元。これだけ抽出すれば地形が出る
3-5植生(低/中/高)緑系樹木の高さ推定、森林管理
6建物3D都市モデル(PLATEAU)の生成元
9水域河川・海岸の範囲把握
7,18ノイズ灰/橙除去対象

使い道: 地面だけ抽出してDEM作成、建物だけ抽出して3Dモデル化、植生の除去


スライス断面

任意の軸(X/Y/Z)でMin〜Maxの範囲を指定し、その範囲外の点を非表示にする。

使い道:

  • トンネルの内壁検査: Z軸でスライスして特定区間の内壁だけ表示し、変形や剥離を確認
  • 建物の各階表示: Y軸(高さ)でスライスして2階部分だけ表示
  • 道路の横断面確認: X軸でスライスして道路の断面形状を見る
  • 配管・ダクトの確認: 壁を消して内部構造を露出させる

計測ツール(距離・面積)

点群上の点をクリックして2点間距離、3点の三角形面積を計測する。

使い道:

  • 構造物の寸法確認: 橋脚の幅、ビルの高さ、道路幅員の概算
  • 変形量の把握: 「この壁はどれくらい傾いているか」
  • 面積の概算: 「この法面の補修面積はどのくらいか」
  • 現況確認: 設計図通りの寸法になっているかの照合

SORノイズ除去

K近傍の平均距離を計算し、全体の平均+標準偏差×N倍を超える点を外れ値として除去。

使い道:

  • 飛点除去: LiDARは鳥、虫、雨粒にも反射する。これらが「飛点」(離れた位置の偽点)になる
  • マルチパスノイズ: ガラスや水面でレーザーが2回反射して変な位置に点が出る
  • 前処理: メッシュ化やDEM生成の前に必ずノイズ除去する。ノイズが残っていると面が暴れる

ボックス選択+削除

矩形ドラッグで範囲選択し、不要な点群を手動で削除する。

使い道:

  • 車両・人物の除去: 道路測量データから移動体を消して路面だけにする
  • 電柱・電線の除去: 建物の点群だけ欲しいとき
  • 不要エリアのトリミング: 「この建物の周辺だけ残して他は消す」
  • 分類ミスの修正: Classification自動分類が間違えた部分を手動で消す
  • SORで消えないノイズ: 密集したノイズ群(SORは「周囲にも点がある」と正常と判断してしまう)を手動で除去

断面ポリライン+DXFエクスポート

スライスした薄い断面から地表面プロファイル(稜線)を生成し、DXFで出力する。

使い道:

  • 横断面図の作成: 道路設計で「この地点の地盤形状はこう」という図面。これを元に切土・盛土量を計算する
  • 河川断面図: 洪水シミュレーションの入力データ。「この断面で何m³/sの水が流れるか」
  • 法面の傾斜確認: 崖や盛土の断面形状を図面化して安定性を評価
  • 施工前後の比較: 工事前の断面と工事後の断面を重ね合わせて出来形を確認
  • DXFで出す理由: 発注者(国交省、自治体)の成果品はAutoCAD図面。CSVではなくDXFで渡す必要がある

Octree LOD

カメラに近い部分は高密度、遠い部分は間引いて表示する距離ベースの最適化。

使い道:

  • 大規模データのブラウジング: 航空LiDARは1フライトで数千万点〜数億点。全部表示するとブラウザが固まる
  • プレゼン・レビュー: 発注者への説明時にスムーズに動く点群を見せたい
  • データの概要把握: まず全体を俯瞰して、気になる場所にズームインする

競合ソフトの対応:

  • Potree: Octreeタイル+ストリーミングで数億点対応
  • CloudCompare: Octreeベースの内部表現
  • TREND-POINT: 独自LOD

座標系選択+CRS変換

入力データの座標系を指定し、エクスポート時に別の座標系に変換する。

なぜ座標系が重要か:

日本の公共測量は「平面直角座標系」を使う。全国を19のゾーンに分けてそれぞれ独自の原点を持つ。同じ場所でもゾーンが違えば座標値がまったく変わる。

ゾーン主な地域EPSG
CS I長崎6669
CS IV香川6672
CS IX東京6677
CS XII北海道中部6680

使い道:

  • GISとの重ね合わせ: QGISで地図の上に点群を載せるには同じ座標系にする必要がある
  • Google Earthへの表示: WGS84(緯度経度)に変換すればKML/KMZ化してGoogle Earthで見れる
  • 異なるゾーンのデータ統合: 隣接する2つのゾーンの測量データを1つに結合するとき
  • 海外データとの結合: 海外の点群データ(UTM座標)と日本のデータを同じ座標系に揃える

今後の実装予定と用途

元座標オフセットの保持

何: LASファイルのヘッダーに記録されている座標オフセット(原点座標)を保持し、エクスポート時に復元する。

なぜ: 現在は読み込み時にセンタリング(原点に移動)しているため、エクスポートしたLASファイルの座標値が元ファイルと一致しない。測量データは絶対座標で管理するため、この復元ができないとCRS変換も実用にならない。

任意直線の断面ポリライン

何: 現在の軸平行スライス(X/Y/Z軸に平行な面)ではなく、3Dビュー上でユーザーが引いた任意の直線で断面を切る。

なぜ: 道路は直線とは限らない。カーブしている道路の横断面を取るには、道路の法線方向に断面を切る必要がある。現状の軸平行スライスでは斜めの道路の断面が正しく取れない。

距離・面積ラベルの3D表示

何: 計測結果(2点間距離、面積)を3D空間上にテキストとして表示する。

なぜ: 現在は右パネルに数値が出るだけ。スクリーンショットに計測値を含めたい(報告書に「この寸法はXXm」と注記付きで貼りたい)。

Web Worker分離

何: ファイルのパース、SORフィルタリング、サンプリング処理をメインスレッドから分離する。

なぜ: 大きなLASファイル(100MB超)を読み込むとUIが数秒固まる。Web Workerに逃がせば読み込み中もカメラ操作できる。

メッシュ化(Delaunay / Poisson)

何: 点群から三角形メッシュ(サーフェス)を生成する。

なぜ: 点群は「点の集まり」であって「面」ではない。面にすれば体積計算(切土・盛土量)ができる。3Dプリント用のSTLデータも作れる。地形モデル(DEM/DSM)の生成にも使う。これがあると「点群ビューア」から「3D処理ツール」に格上げされる。

Potree形式の読み込み

何: Potreeのoctreeタイル構造で分割された超大規模点群データを読み込む。

なぜ: 数億点の点群を丸ごとブラウザに読み込むのは不可能。Potree形式なら必要な領域だけストリーミング読み込みできる。3D都市モデル(PLATEAU)の点群配信でも使われている。

GPU Octree(WebGPU)

何: WebGPUのCompute Shaderで八分木の走査と点群の描画をGPU側で行う。

なぜ: WebGLの限界は数千万点。WebGPUなら数億点を扱える。ただしブラウザ対応がまだまばら(2026年時点でChrome/EdgeのみでSafari/Firefoxは限定的)。


まとめ — 「100万円のソフトの中身」を分解する

業務用点群ソフト(TREND-POINT、Terra Solid、ReCap)は50万〜200万円する。しかし中身を分解すると:

機能カテゴリPoint Cloud Viewerの対応
読み込みPLY/LAS/LAZ/PCD/XYZ/CSV ✅
表示RGB/Height/Intensity/Classification ✅
選択・編集ボックス選択+削除 ✅
ノイズ除去SOR ✅
断面軸平行スライス+プロファイル ✅(任意直線は未)
計測距離・面積 ✅
LODOctree LOD ✅
座標系CRS変換(JGD2011/UTM/WGS84) ✅
エクスポート6形式+DXF+PNG ✅
メッシュ化未実装
帳票出力未実装(行政向け帳票フォーマット)

高価なソフトの値段の大部分は「行政に通る帳票」「サポート契約」「大規模データの安定性保証」にある。機能自体は数学的にそこまで複雑ではない。必要な機能だけ自作して無料で公開する——というのがこのプロジェクトの方針。