LiDARとは何か — 点群データから3Dモデル生成までを理解する

LiDARとは何か — 点群データから3Dモデル生成までを理解する

LiDARとは

LiDAR(Light Detection and Ranging)は、レーザー光を照射してその反射時間から距離を計測するリモートセンシング技術。日本語では「光検出と測距」と訳されるが、要するに「レーザーで測る3Dスキャナー」。

自動運転車の屋根についてる回転するセンサー、iPhoneの背面カメラ横の黒い丸、測量士が三脚に据えてる機材——これらは全部LiDAR。用途とスケールが違うだけで、原理は同じ。

LiDARの仕組み

基本原理

  1. レーザー光(主に近赤外線)を対象に照射する
  2. 反射して戻ってくるまでの時間を計測する
  3. 光速×時間÷2 = 距離を算出する
  4. これを大量のポイントで繰り返し、3D座標群(点群)を生成する

主な計測方式

dToF(direct Time of Flight)方式 レーザーパルスを発射し、反射光の往復時間を直接計測する。長距離(数百m〜数km)に強い。産業用LiDARやiPhone ProのLiDARはこの方式。

iToF(indirect Time of Flight)方式 変調した連続光を照射し、反射光の位相差から距離を算出する。短距離(〜5m程度)で高解像度。一部のデプスカメラに使用。

三角測量方式 レーザー光をカメラで撮影し、照射角度と撮影角度の三角関係から距離を算出する。非常に高精度(±0.01mm〜)だが、測定範囲が狭い。卓上型3Dスキャナーに多い。

LiDARの種類と価格帯

ホビー・エントリー(4万〜15万円)

3DMakerpro Seal Lite、Revopoint Miniなど。卓上で小さい対象物(〜50cm程度)をスキャンする用途。繰り返し精度±0.1mm程度。個人の3Dプリンティング用途に。

ただしこれらは厳密にはLiDARではなく構造化光(ストラクチャードライト)方式のものが多い。レーザーパターンを投影してカメラで歪みを読み取る仕組み。

プロ向けハンドヘルド(15万〜200万円)

Creaform Go!SCAN、Shining 3D EinScan HXなど。デザインスタジオ、製造業の検品、リバースエンジニアリング用途。0.3〜2mの対象物を高精度にスキャン可能。

据え置き型・測量用(500万〜1,200万円)

Leica BLK360(約280万円〜)、Leica RTC360(約1,300万円)、Trimble X12など。建築・土木・文化財記録のプロ仕様。±2〜4mmの精度で、半径数十〜数百mの範囲をスキャン可能。

航空・ドローン搭載(150万〜数千万円)

DJI Zenmuse L3など。地形測量、森林調査、災害調査に使用。植生の下の地形も透過して計測できるのがLiDARの強み。

スマートフォン搭載(端末価格に含まれる)

iPhone Pro系、iPad Proに搭載。dToF方式で最大5m程度の範囲。精度は産業用と比べると桁違いに低いが、ARやMRの空間認識には十分。

iPhone LiDARの実力

スペック

  • 方式: dToF(direct Time of Flight)
  • 範囲: 最大約5m
  • 用途: ARKitの空間認識補助、深度マップ生成

ARKitで取得できるデータ

深度マップ(Depth Map) 各ピクセルに対応する距離情報。ARFrameから取得可能。

特徴点群(Feature Points) ARFrame.rawFeaturePointsで取得できる疎な3D点群。空間の特徴的なポイントのみ。

シーンメッシュ(Scene Reconstruction) ARKitのScene Reconstructionを有効にすると、リアルタイムでポリゴンメッシュを生成。部屋全体の大まかな形状を取得できる。

実際の品質

  • 30cm〜1mくらいのフィギュア → 形状はそこそこ取れるが、顔の細部や小さいパーツは潰れる
  • テクスチャはカメラ画像依存なので、照明次第でそれなりに綺麗
  • 「遠目で見ればわかる」程度の品質が現実的な期待値

重要な事実

Scaniverseのような3DスキャンアプリはLiDAR単体でスキャンしているわけではない。実際にはカメラ画像からのフォトグラメトリ(Neural Reconstruction / 3D Gaussian Splatting)がメインで、LiDARはスケール合わせと追跡精度の補強に使われている。

Meta Quest 3の深度センサー

Quest 3にも深度センサー(LiDAR)が搭載されているが、用途はMRのための空間認識に特化している。

  • パススルー映像の深度推定
  • 自動ガーディアン境界設定
  • 平面検出(plane detection)
  • 空間メッシュ生成

3Dスキャナーとして使おうとするアプリも存在するが、現時点では「ぼんやりしたボクセルの塊」レベル。フィギュアスキャンにはiPhone LiDAR+Scaniverseの方がはるかに上。

LiDAR vs フォトグラメトリ

ここが最も重要なポイント。

フォトグラメトリとは

複数アングルから撮影した写真をソフトウェアで解析し、3Dモデルを再構築する技術。LiDARのようなセンサーは不要で、普通のカメラやスマホで撮影できる。

比較

項目LiDARフォトグラメトリ
計測方式能動的(レーザー照射)受動的(写真撮影)
精度(産業用)±1〜5mm±5〜15mm
照明条件不問(暗所でも可)均一な照明が必須
テクスチャ品質低い(別途カメラが必要)高い(写真そのもの)
大規模環境得意得意(ドローン併用)
小物スキャン苦手(オーバースペック)得意
コスト高いカメラがあればほぼ無料
植生下の地形透過可能不可能

結論

フィギュアや小物の3Dモデル化が目的なら、フォトグラメトリの方が適している。Polycamの公式ドキュメントでも、オブジェクトモードではフォトグラメトリがLiDARキャプチャよりメッシュ品質が高いと明言されている。

LiDARが真価を発揮するのは、建物全体・暗所・植生下の地形など、カメラだけでは困難な条件下でのスキャン。

点群データを理解する

点群(Point Cloud)とは

3D空間上の座標(x, y, z)の集合。各ポイントに色情報(RGB)や法線ベクトルを持つこともある。LiDARスキャンやフォトグラメトリの生データがこれ。

なぜSketchfabに点群データがあるのか

測量・文化財記録の分野では、点群がデータの「正」である。メッシュ化すると情報が劣化する(穴埋めや間引きが入る)ため、あえて点群のまま公開・保存されることが多い。粒々に見えるあのデータは、精度を重視した結果。

主な点群フォーマット

フォーマット特徴
PLY頂点+色+法線。テキスト/バイナリ両対応。Three.jsのPLYLoaderで読める
LAS / LAZ測量業界標準。LAZはLASの圧縮版。GIS系ソフトで使用
E57ASTM標準。大規模点群向け。メタデータが豊富
PCDPoint Cloud Library(PCL)のフォーマット。ロボティクス寄り
XYZ最もシンプル。テキストで座標を羅列するだけ

点群→メッシュの変換

点群をポリゴンメッシュに変換するには、点と点を結んで面を張る処理が必要。代表的なアルゴリズム:

  • Poisson Surface Reconstruction: 点群と法線から滑らかな閉曲面を生成。穴埋めに強いが、境界がぼやけやすい
  • Ball Pivoting Algorithm: 仮想的な球を点群上で転がして面を生成。穴が残りやすいが形状に忠実
  • Delaunay Triangulation: 点群を三角形分割。2.5Dの地形データ向き
  • Screened Poisson: Poissonの改良版。現在の主流

これらの処理はMeshLab(無料)やCloudCompare(無料)で実行可能。Blenderでもアドオン経由で対応。ブラウザJSでやるには計算量的にかなり厳しい。

Three.jsでの点群表示

点群データをThree.jsで表示するだけなら難しくない。

import * as THREE from 'three';
import { PLYLoader } from 'three/examples/jsm/loaders/PLYLoader';

const loader = new PLYLoader();
loader.load('model.ply', (geometry) => {
  // 頂点カラーがあればマテリアルに反映
  const material = new THREE.PointsMaterial({
    size: 0.01,
    vertexColors: true,
  });

  const points = new THREE.Points(geometry, material);
  scene.add(points);
});

THREE.PointsTHREE.Meshと違ってポリゴン面を持たず、頂点を点として描画する。大量の点(数百万〜)を扱う場合はLODやオクツリーによる間引きが必要になる。

スキャンアプリの比較

Scaniverse(Niantic)

  • 価格: 無料
  • LiDAR: 対応(補助的に使用)
  • 出力: FBX, OBJ, GLB, USDZ, STL, PLY, LAS
  • 特徴: 3D Gaussian Splattingに対応。手軽さでは最強クラス

Polycam

  • 価格: 無料(エクスポートは有料プラン)
  • LiDAR: 対応
  • 出力: GLB, OBJ, FBX, USDZ, STL, DAE, PLY
  • 特徴: フォトグラメトリモードの品質が高い。ドローン写真からの生成にも対応

3d Scanner App

  • 価格: 無料
  • LiDAR: 必須
  • 出力: OBJ, PLY, STL, USDZ, GLB
  • 特徴: 点群データ(PLY)のエクスポートに強い

Reality Capture(Epic Games)

  • 価格: 有料(PPI方式)
  • プラットフォーム: Windows
  • 特徴: フォトグラメトリの業界標準。圧倒的な品質だが、PCと大量の写真が必要

Meshroom(AliceVision)

  • 価格: 無料・オープンソース
  • プラットフォーム: Windows / Linux
  • 特徴: フォトグラメトリ。無料で使えるが、CUDA対応GPUが必要

実用的なワークフロー

フィギュアをスキャンしてWebやVRで閲覧するための現実的なフロー:

  1. 撮影: Scaniverseでスキャン、またはスマホで30〜100枚撮影
  2. メッシュ生成: Scaniverseで直接生成、またはMeshroom/Reality Captureでフォトグラメトリ処理
  3. クリーンアップ: Blenderでリトポ、不要な頂点削除、穴埋め
  4. テクスチャ: UV展開し直し→テクスチャベイク
  5. 最適化: ポリゴン削減、テクスチャ圧縮(WebP変換等)
  6. エクスポート: GLB形式+Draco圧縮
  7. 表示: Three.js / React Three Fiberで読み込み

ステップ3〜6はlain-labの既存ツール群(VRM Optimizer、GLTF Scale Tool等)の知見がそのまま活きる領域。

まとめ

  • LiDARは「レーザーで3D計測する技術」の総称。価格帯は数万円〜数千万円まで幅広い
  • iPhone LiDARはAR/MR用途には十分だが、高品質な3Dモデル生成には力不足
  • 小物の3Dスキャンにはフォトグラメトリ(普通のカメラ)の方がむしろ向いている
  • 点群データはメッシュの元データであり、測量分野ではメッシュより点群が正
  • Three.jsで点群を表示するだけならTHREE.Points + PLYLoaderで簡単にできる
  • 「点群→綺麗なメッシュ」の変換がボトルネック。ここはBlenderやMeshLabの領域