Upgrade to Pro — share decks privately, control downloads, hide ads and more …

3次元点群の地表面抽出の方法であるCSF (Cloth Simulation Filter) ...

3次元点群の地表面抽出の方法であるCSF (Cloth Simulation Filter) について

2025年6月12日に行われたオンラインの勉強会 #StudyCO にて3次元点群の地表面抽出の方法であるCSFについて紹介しました。

動画
https://youtu.be/pVe4oUVSBYQ?t=1237

Avatar for Kenta Itakura

Kenta Itakura

May 10, 2025
Tweet

More Decks by Kenta Itakura

Other Decks in Technology

Transcript

  1. CSFの実行方法 iPhone12 LiDAR [動画]  CloudCompareの他にPDALのfilters.csfやMATLABのFile Exchangeのコードを利用可能  CloudCompareにて Plugins

    > CSF Filter の順に進むことでCSFを実行できる MATLAB版: https://jp.mathworks.com/matlabcentral/fileexchange/58139- csf-cloth-simulation-filter?s_tid=FX_rc3_behav
  2. パラメーターについて バックパック型スキャナー iPhone12 LiDAR  CSFアルゴリズムにおける主要なパラメーターは、以下の表に示す通りである [動画] パラメータ デフォルト値 説明

    Rigidity Index(RI) 1.0 布の剛性:1 = 傾斜地, 2 = 緩 やかな斜面, 3 = 市街地の平 坦地。 Smooth Terrain(ST) False イテレーション終了後の後処 理が行われるかのフラグ (TrueまたはFalse) Grid resolution(GR) 0.5 地表を模擬するクロス(布)の グリッド間隔(単位: m)。大き くすると計算が速くなるが精度 が下がる。 デフォルト値はCloudCompareやMATLAB実装を参考にしています
  3. パラメーターについて バックパック型スキャナー iPhone12 LiDAR  CSFアルゴリズムにおける主要なパラメーターは、以下の表に示す通りである [動画] パラメータ デフォルト値 説明

    Height threshold for Cloud- to-Cloth distance(hcc ) 0.5 点が地面か非地面かを分け る高さ差のしきい値(単位: m)。 大きすぎると樹木や構造物も 地面と誤判定されやすい。 Maximum number of iterations 500 布が落下して安定するまでの 最大反復回数。 Duration of time(dT) 0.65 クロスシミュレーションでの時 間ステップ(動きの滑らかさに 関係)。単位はs。 Height threshold for Cloth Post-processing(hcp ) 0.3 布と点群の間の高さ差がこれ 以下なら、その点は布(地面) に吸着される。単位はm。 デフォルト値はCloudCompareやMATLAB実装を参考にしています
  4. パラメーターについて バックパック型スキャナー iPhone12 LiDAR  CSFの主要な実装ファイルである csf_filtering.cpp 内の関数 csf_filtering にて以下のように

    パラメータが定義されている  関数の前半7つの引数のうち、1つ目を除くものをパラメータ調整可能 [動画] 参考ページ: https://github.com/jianboqi/CSF/blob/master/matlab/csf_filtering.cpp
  5. イテレーション内における物理挙動のイメージ iPhone12 LiDAR [動画]  布の粒子の間隔をCloth Resolutionにて定義する  CloudCompareにおいてはAdvanced Settingにて変更可能

    和訳:1 布の解像度(Cloth resolution)とは、地形を覆うために使 用される布グリッドのサイズを指す(単位は点群と同じ)。この 値が大きいほど、得られる数値地形モデル(DTM)は粗くなる。
  6. イテレーション内における物理挙動 バックパック型スキャナー iPhone12 LiDAR [動画] ①重力落下 • 接触判定されていない点に対してのみ適用される • 以下の式に基づいて落下する

    • Xおよびmは布を構成する粒子の位置や質量を表し、Δt は時間ステップを表す • 時間ステップと初期位置が与えられれば、G が定数であるため現在の位置を 直接計算できる。
  7. イテレーション内における物理挙動 バックパック型スキャナー [動画]  重力落下の式の導出 現在位置 X (t)の、時刻 t に対するテイラー展開は以下のように表すことができる。

    n+1次以降の項をまとめた「誤差項」 この式の意味は次の通り: 未来の時刻における位置 速度(1階導関数) 加速度(2階導関数) n階導関数(n次の変化率) n+1次以降の項をまとめた「誤差項」
  8. イテレーション内における物理挙動 iPhone12 LiDAR [動画] ②点の接触判定 • 布上の点が点群と接触判定された場合、その点はそれ以降動かない • 接触判定の条件は以下の式で表される 落下している点の高さを

    z c 、地表面の高さを z t として、以下の式を満たした場合、落下している点 は固定される。 h cp は高さ差のしきい値(Height threshold for Cloth Post-processing)を表している。
  9. イテレーション内における物理挙動 バックパック型スキャナー iPhone12 LiDAR [動画] ③剛性による調整 重力落下、点の接触判定が終わると、布を構成する各点は剛性による調整が行われる。 調整をする点をp 0 、隣接する点を

    p i とすると、 p 0 に対しては以下の変異ベクトルdが適用される。 b は接触状態に基づくブール変数であり、点群と接触している場合はb=0となって d=0となる。接触してい ない場合はb=1である。 𝑛はz軸方向の垂直ベクトル (0,0,1) を表すことから、 ( Ԧ 𝑝 i - Ԧ 𝑝 0 ) ・𝑛は点 റ 𝑝 i が റ 𝑝 0 に対してどれだけ垂直方向 (高さ方向)に離れているかを表す。
  10. 地面・非地面の判定について [a] ScanX2.0  hcc についてはCloudCompareにおいてはAdvanced Settingにて変更可能 ※hcc についての和訳: 分類しきい値(Classification

    threshold)とは、シミュレーション された地表面と各点群との距離に基づいて、点群を地表 (ground)と非地表(non-ground)に分類するためのしきい値で ある(単位は点群と同じ単位)。一般的なシーンにおいては、0.5 が適用されることが多い。
  11. CSF適用後の地面分類例 [a] ScanX2.0  パラメーター設定について パラメータ 値 Rigidity Index(RI) 3.0(例2のみ1.0)

    Smooth Terrain(ST) True Grid resolution(GR) 1.0 Height threshold for Cloud-to-Cloth distance(ℎ𝑐𝑐) 以下の例によって異なる Maximum number of iterations 500 Duration of time(dT) 0.65 Height threshold for Cloth Post-processing(ℎ𝑐𝑝) 0.3 • 今回の分類は以下のようなパラメーター設定で行った
  12. CSF適用後の地面分類例 [a] ScanX2.0  例2:hcc=0.9,RI=1の場合 • 剛性が小さく、地面と判定される閾 値が大きいため、本来なら地面が多 くなるはずである。 •

    しかし今回の設定では、閾値が相対 的に小さかったため、地面として分 類される範囲はそれほど広がらな かった。