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

3次元点群からメッシュモデルを作成: ボールピボット法について

3次元点群からメッシュモデルを作成: ボールピボット法について

Avatar for Kenta Itakura

Kenta Itakura

July 29, 2025
Tweet

More Decks by Kenta Itakura

Other Decks in Technology

Transcript

  1. メッシュモデルとは  メッシュモデルは、3D空間上の形状を三角形や四角形のポリゴンで構成したモデル カリフォルニアのオフィスチェア (出典 Artec 3D) https://www.artec3d.com/ja/3d-models/california-office-chair 入力の点群 メッシュモデル

    ボールピボット法で メッシュ化  点群からメッシュモデルを生成する方法として以下のアルゴリズムが有名 • Ball pivoting法 (Bernardini, 1999) • Poisson surface reconstruction法 (Kazhdan, 2006) ボール ピボット 法とは シード 三角形 の生成 メッシュ モデルとは 新点の 探索 三角形の 追加 処理の 繰り返し
  2. シード三角形の生成 バックパック型スキャナー iPhone12 LiDAR 以下を満たすシード三角形を生成する  半径 r のボールが同時に三点に接する •

    r の値はパラメータ  ボールの中心が法線方向側にある • ボールが物体に対して外側にあるようにするため  ボールの内部にほかの点が入っていない この三点を結ぶ線分をエッジとしてフロントに追加する ※フロントとは、現在構築中のメッシュの境界辺の集合であり、 次にボールをピボットさせて三角形を構築するための候補となるエッジ ボール ピボット 法とは シード 三角形 の生成 メッシュ モデルとは 新点の 探索 三角形の 追加 処理の 繰り返し
  3. 参考: エッジの状態について バックパック型スキャナー  ボールを転がす軸(エッジ)は、active, boundary, frozenのどれかの状態を取る ボール ピボット 法とは

    シード 三角形 の生成 メッシュ モデルとは 新点の 探索 三角形の 追加 処理の 繰り返し 4章: An edge can be active, boundary, or frozen. An active edge is one that will be used for pivoting. If it is not possible to pivot from an edge, it is marked as boundary. The frozen state is explained below, in the context of our out-of-core extensions. Keeping all this information with each edge makes it simpler to pivot the ball around it. 和訳: エッジは active、boundary、または frozen の状態を取ることができる。active edge はピボットに使 用されるエッジであり、そこからピボットできない場合は boundary としてマークされる。frozen 状態は 後述の out-of-core 処理の文脈で説明される。これらすべての情報を各エッジに持たせることで、ボール をその周囲でピボットさせる処理が容易になる。
  4. 新たな頂点の探索 バックパック型スキャナー iPhone12 LiDAR [動画] 以下の手順で新点を探索する  フロントからエッジ𝑒 = (𝑝𝑖

    ,𝑝𝑗 )を1つ選択する。  エッジ(𝑝𝑖,𝑝𝑗)に接触したままボールを回転させ、以下を満たす 新たな点𝑝𝑘 を探す: • ボールが(𝑝𝑖 ,𝑝𝑗 ,𝑝𝑘 )に同時に接触する • ボールの内部に他の点が存在しない • 法線ベクトルとの方向整合性がある(外向き) • 新しく作られる三角形にフローズンエッジがない ボール ピボット 法とは シード 三角形 の生成 メッシュ モデルとは 新たな 頂点の 探索 三角形の 追加 処理の 繰り返し
  5. 新たな頂点の探索 バックパック型スキャナー iPhone12 LiDAR [動画] フローズンエッジとは、データ分割のためにz軸方向にスライスされた 領域の外にある二点を結ぶエッジのことである ボール ピボット 法とは

    シード 三角形 の生成 メッシュ モデルとは 新たな 頂点の 探索 三角形の 追加 処理の 繰り返し ※フローズンエッジについては、元の論文の4.5 Out-of-Core Extensionsにて 詳しく説明されています
  6. 新たな頂点の探索 バックパック型スキャナー iPhone12 LiDAR [動画] 𝑝𝑘 の候補は複数ある場合がある • その時、(𝑝𝑖 ,𝑝𝑗

    )の中点と、移動前の球の中心を結んだベクトルと、移動後 の球の中心を結んだベクトルのなす角が小さい方が優先される。 ボール ピボット 法とは シード 三角形 の生成 メッシュ モデルとは 新たな 頂点の 探索 三角形の 追加 処理の 繰り返し
  7. 新たな頂点の探索 バックパック型スキャナー iPhone12 LiDAR [動画] 𝑝𝑘 の候補は複数ある場合がある • その時、(𝑝𝑖 ,𝑝𝑗

    )の中点と、移動前の球の中心を結んだベクトルと、移動後 の球の中心を結んだベクトルのなす角が小さい方が優先される。 ボール ピボット 法とは シード 三角形 の生成 メッシュ モデルとは 新たな 頂点の 探索 三角形の 追加 処理の 繰り返し
  8. 参考: 新たな頂点の探索 バックパック型スキャナー iPhone12 LiDAR [動画] • 「ベクトルのなす角が小さい方が優先される」ことは元の論文の以下の箇所を参照した ボール ピボット

    法とは シード 三角形 の生成 メッシュ モデルとは 新たな 頂点の 探索 三角形の 追加 処理の 繰り返し 出典: Bernardini, F., Mittleman, J., Rushmeier, H., Silva, C., & Taubin, G. (2002). The ball-pivoting algorithm for surface reconstruction. IEEE transactions on visualization and computer graphics, 5(4), 349-359.
  9. 三角形の追加 バックパック型スキャナー iPhone12 LiDAR [動画] 新点が見つかったら、以下の処理を行う • 条件を満たす𝑝𝑘 が見つかった場合、三角形𝑝𝑖 ,𝑝𝑗

    ,𝑝𝑘 をメッシュに追加 • 新しいエッジ(𝑝𝑖 ,𝑝𝑘 )、(𝑝𝑗 ,𝑝𝑘 )をフロントに追加 • 使用済みエッジ(𝑝𝑖 ,𝑝𝑗 )はフロントから削除または更新 ボール ピボット 法とは シード 三角形 の生成 メッシュ モデルとは 新たな 頂点の 探索 三角形の 追加 処理の 繰り返し
  10. 三角形の追加 バックパック型スキャナー iPhone12 LiDAR [動画] 右図のように順次、 三角形が作られていく ボール ピボット 法とは

    シード 三角形 の生成 メッシュ モデルとは 新たな 頂点の 探索 三角形の 追加 処理の 繰り返し
  11. ボールピボット法を用いた時のメッシュ構築例 バックパック型スキャナー iPhone12 LiDAR [動画] 元の点群データ  右の点群データの情報を元にメッシュ構築を行う  用いたコードは以下

    mesh = pc2surfacemesh(ptCloudDownSampled, "ball-pivot", radius); • ptCloudDownSampled→ ダウンサンプリングした点群データ • radius → 適切な半径(半径を変えて再実行する 場合にはリスト型)