Yarroudh/segment-lidar

Python package for segmenting LiDAR data using Segment-Anything Model (SAM) from Meta AI.

解決する課題

航空 LiDAR 点群は高密度で非構造的であるため、建物、樹木、車両などの個々のオブジェクトを自動的に分離することが困難です。手動でのアノテーションは時間がかかり、エラーが発生しやすくなります。このパッケージは、3D 点群を 2D 画像に変換し、Meta の強力なセグメンテーションモデルである SAM 3 を実行し、検出されたオブジェクトマスクを元の点群にマッピングして各点にインスタンス ID を割り当てることで、このタスクを自動化します。

仕組み

このパッケージは、トップダウンビューまたはユーザー定義のピンホールカメラを使用して、点群を 2D 画像に投影します。次に、その画像に対して SAM 3 を実行し、オブジェクトを検索します。ユーザーは、モデルにすべてのマスクを自動的に検出させるか、テキストプロンプト(例: "building")やボックスプロンプト(ポジティブおよびネガティブな例)を使用してガイドすることができます。セグメンテーション後、画像からのラベルが点群に転送され、各点にインスタンス ID が割り当てられます。広範囲な領域の場合、最初に地面フィルタリングを適用して地面点を除去することができ、また、以前に保存されたラベルラスターを再利用してモデルの再実行を回避することも可能です。

対象ユーザー

各点を手動でラベル付けすることなくオブジェクトインスタンスを抽出する必要がある、航空 LiDAR データを扱う研究者、測量士、開発者。都市マッピング、林業、3D 都市モデリングに特に役立ちます。ユーザーは Python 3.10 以降、CUDA GPU(SAM 3 推論に推奨)、および Hugging Face を介した Meta のゲート付き SAM 3 モデルへのアクセス権(トークンが必要)が必要です。

ハイライト

  • 3D 点群向けに最適化された、最先端のセグメンテーションモデルである Meta の SAM 3 を使用。
  • 自動マスク生成、テキストプロンプト、ボックスプロンプトをサポート。
  • 点群をトップビューまたはカスタムピンホールカメラ画像に投影。
  • 推論を再実行することなく、保存されたラベルラスターを新しい点群に適用可能。
  • オプションの地面フィルタリング (CSF) およびインスタンス ID を含む LAS/LAZ 出力。
  • GPU を使用した簡単なデプロイのための Docker サポートを含む。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト