Slide 1

Slide 1 text

3次元点群からメッシュモデルを作成する ポアソン法について ImVisionLabs株式会社代表取締役 板倉健太 博士(農学)

Slide 2

Slide 2 text

点群のメッシュ化 1 バックパック型スキャナー iPhone12 LiDAR 3次元点群をメッシュモデルに変換する技術について紹介します [動画] ここでは、三角形の集まりで3次元形状を表現することをメッシュ化と呼びます Reference: Yoon, S.H., 2006, July. A surface displaced from a manifold. In International Conference on Geometric Modeling and Processing (pp. 677-686). Springer, Berlin, Heidelberg.

Slide 3

Slide 3 text

点群のメッシュ化 2 バックパック型スキャナー iPhone12 LiDAR 3次元点群をメッシュモデルに変換する技術について紹介します [動画] ここでは、三角形の集まりで3次元形状を表現することをメッシュ化と呼びます

Slide 4

Slide 4 text

葉の傾きや面積の計算の例  小さな領域の点の法線ベクトルの向きやメッシュの面の向 きから葉の傾きを計算することができます • 以下の図はメッシュモデルにおける各面の傾きを色表示しています  メッシュの面積を足し合わせることで葉面積を計算すること ができます

Slide 5

Slide 5 text

災害シミュレーション技術の開発の例  3次元点群から地形や建屋などの実環境の形状を3Dモデル化し、災害シミュレーショ ンに利用した例(岩切ら, 2024) 岩切水樹, 杉山貞人, 髙島怜子, 森田友加, & 池末俊一. (2024). 3 次元点群 データを活用した災害シミュレーション技術の開発. 三菱重工技報, 61(3), 52-56.  3Dサーフェスモデルをもとに解析格子を作成することで、建屋等の影響を考慮した詳 細な風況・災害リスク評価が可能となる

Slide 6

Slide 6 text

メッシュモデルとは  メッシュモデルは、3D空間上の形状を三角形や四角形のポリゴンで構成したモデル カリフォルニアのオフィスチェア (出典 Artec 3D) https://www.artec3d.com/ja/3d-models/california-office-chair 入力の点群 メッシュモデル ボールピボット法で メッシュ化  点群からメッシュモデルを生成する方法として以下のアルゴリズムが有名 • Ball pivoting法 (Bernardini, 1999) • Poisson surface reconstruction法 (Kazhdan, 2006)

Slide 7

Slide 7 text

ポアソン法とは バックパック型スキャナー ポアソン法とは、点群から連続的かつ滑らかな表面メッシュを再構成する手法 ポアソン法では,点群の法線情報から空間中のスカラー関数𝜒を推定し, その等値面を抽出することで表面メッシュを生成する。 入力の点群 メッシュモデル

Slide 8

Slide 8 text

部材ごとのメッシュ化 7 バックパック型スキャナー iPhone12 LiDAR CloudCompareにて、Wire Frame 機能にてメッシュモデルを表示 [動画] 三角形の集まりでモデルが構成されていることがわかる

Slide 9

Slide 9 text

ポアソン法とは バックパック型スキャナー  本スライドは以下の論文(Poisson Surface Reconstruction)の概要を紹介 Kazhdan, M., Bolitho, M., & Hoppe, H. (2006, June). Poisson surface reconstruction. In Proceedings of the fourth Eurographics symposium on Geometry processing (Vol. 7, No. 4).

Slide 10

Slide 10 text

ポアソン法によるメッシュ生成のイメージ バックパック型スキャナー  各点の法線は、表面の向きを表す手がかりになる 法線ベクトルは、内外を表す関数𝜒が表面付近で変化する向きを、点群上で取り出し たものとみなせる  ∇𝜒≈ V となる𝜒を求め、等値面を抽出すると表面が得られる • 点群の法線方向と合うような、内外を表す関数 χ を空間全体に作り、その関数の境目を表面として取り出す

Slide 11

Slide 11 text

𝜒を求める空間解像度とメッシュの細かさ バックパック型スキャナー ポアソン法では、点群の周囲の3次元空間を分割し、各位置で内外を表す関数𝜒の値 を推定する depth は、χ を計算するために空間をどれだけ細かく区切るかを決める値である • 粗く区切ると、内外の境界は大まかにしか分からないため、滑らかだが細部の少ないメッシュになる • 細かく区切ると、内外の境界をより細かく追えるため、点群に含まれる細かな凹凸まで表現しやすくなる depth = 6 depth = 8 depth = 10 ※論文の図3を引用しています。depthの値を大きくするほど 処理時間が長くなります

Slide 12

Slide 12 text

ポアソン法によるメッシュ生成の流れ バックパック型スキャナー ポアソン法では、以下の手順でメッシュを生成する 1.入力点群の法線を代表するベクトル場 V x を構成する 2. V x と整合する占有関数𝜒 x を求める 3.ポアソン方程式を解いて,空間中の𝜒を推定する 4. 𝜒 𝐱 = ො 𝛾の等値面を抽出する 5.抽出した等値面を表面メッシュとする 点群+法線 → ベクトル場V → 占有関数𝜒 → 等値面 → メッシュ 本スライド以降では,各ステップを順に説明する。

Slide 13

Slide 13 text

点群の法線ベクトルを代表するベクトル場をつくる バックパック型スキャナー iPhone12 LiDAR [動画]  以下の式で表されるベクトル場V(x)は、周囲の点群の法線ベクトルに 重みを付けたものである。 𝐕 𝐱 = ෍ 𝑖=1 𝑁 𝑛𝑖 𝜓 𝐱 − 𝐱𝑖 ・・・式1 ※上記の式1は論文の式 (2) の直感的・簡略な表記にしています

Slide 14

Slide 14 text

点群の法線ベクトルを代表するベクトル場をつくる バックパック型スキャナー iPhone12 LiDAR [動画]  影響関数𝜓 x の値は一般に点 x𝑖 からの距離が大きいほど小さくなる  つまり、𝜓 x − x𝑖 は、ある点xが、x𝑖 から遠いほど小さくなる。

Slide 15

Slide 15 text

点群の法線ベクトルを代表するベクトル場をつくる バックパック型スキャナー iPhone12 LiDAR [動画]  すなわち、 V x はxの周囲の点群の法線ベクトルの重み付き和となる 代表ベクトルである。

Slide 16

Slide 16 text

点群の法線ベクトルを代表するベクトル場をつくる バックパック型スキャナー iPhone12 LiDAR [動画]  このベクトルの変化が大きい場所は、法線の向きや量が急に変わる場所で あり、面の境界である可能性が高い。

Slide 17

Slide 17 text

物体の内外を決定する占有関数を作る iPhone12 LiDAR [動画]  点群から表面を再構成するにあたり,まず空間中の各点が物体の内部に 属するか外部に属するかを表す理想的な関数を考える。 𝜒 x = ቊ 1 if x is inside the surface 0 if x is outside the surface  このような関数を占有関数𝜒 x とすると,概念的には以下のように 定義できる。  しかし、点群は離散的なデータであり、ノイズなども含むため、点が有る空間が 物体の内部であるとは限らず、点が無い空間が物体の外部とは限らない。

Slide 18

Slide 18 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  点群は離散的かつノイズを含むため、理想的な0/1の占有関数を直接決める のは難しい

Slide 19

Slide 19 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  そこでポアソン法では,物体の内外を表す占有関数を滑らかな関数𝜒 x と して近似し,その中から特定の値をもつ面を物体表面として取り出す。

Slide 20

Slide 20 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR  占有関数𝜒 x は表面付近で表面に垂直な内外方向に値が急激に変化する ため,以下の式で表される勾配∇𝜒 x は表面の法線方向を表す。 ∇𝜒 = 𝜕𝜒 𝜕𝑥 , 𝜕𝜒 𝜕𝑦 , 𝜕𝜒 𝜕𝑧  したがって,入力点群の法線から構成したベクトル場V x と∇𝜒 x が整合する ように𝜒を求めることで,法線情報に基づいた表面を復元できる。 ※𝜒の定義により ∇χ の向きは内向きまたは外向きになる。ここでは入力点群 の法線方向が一貫していることが重要である。

Slide 21

Slide 21 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  そこで、𝜒 x の勾配∇𝜒が法線ベクトルV x と近しくなるようにしたい。  つまり、以下の式で表される、𝜒 x とV x の誤差を表すエネルギー関数Ε 𝜒 の値が最小値を取るような𝜒を求めたい。  ここで、点群を包む十分広い三次元空間をΩとし、その外殻を𝜕Ωとすると、 以下の式となる。 𝐸 𝜒 = න ∇𝜒 𝐱 − 𝐕 𝐱 2 𝑑𝐱 𝐸 𝜒 = න Ω ∇𝜒 𝐱 − 𝐕 𝐱 2 𝑑𝐱 ・・・式2

Slide 22

Slide 22 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  つまり、以下の青色部分でイメージされるΕ 𝜒 の大きさを最小にするような 𝜒を求めたい。

Slide 23

Slide 23 text

物体の内外を決定する占有関数を作る iPhone12 LiDAR [動画]  任意の微小の実数𝜀と、𝜕Ω上で常に0となるような任意の関数𝜙 x を定義する。  𝜙 x は以下のようにイメージされる。

Slide 24

Slide 24 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  先ほど定義した𝜀と𝜙 x を用いて、以下の様に𝜒 x を変化させる。  この時、微分演算子の線形性により、以下のようになる。 𝜒 𝐱 → 𝜒 𝐱 + 𝜀𝜙 𝐱 ∇ 𝜒 𝐱 + 𝜀𝜙 𝐱 = ∇𝜒 𝐱 + 𝜀∇𝜙 𝐱

Slide 25

Slide 25 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  これをΕ 𝜒 の定義の式に代入すると以下のようになる。  これを展開すると以下のようになる。 𝐸 𝜒 + 𝜀𝜙 = න Ω ∇𝜒 + 𝜀∇𝜙 𝐱 − 𝐕 2 𝑑𝐱 𝐸 𝜒 + 𝜀𝜙 = න Ω ∇𝜒 − 𝐕 2 + 2𝜀 ∇𝜒 − 𝐕 ⋅ ∇𝜙 𝐱 + 𝜀2 ∇𝜙 𝐱 2 𝑑𝐱

Slide 26

Slide 26 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  これを𝜀で微分することで、以下のようになる。  ここで、 Ε 𝜒 は𝜒に対して下に凸なので、最小値を取るような𝜒に対して 𝜒の値を微小変化させたときにΕ 𝜒 が変わらないような𝜒の値において 𝜒は最小値を取り、この時のΕ 𝜒 の傾きは0である。 𝑑 𝑑𝜀 𝐸 𝜒 + 𝜀𝜙 = න Ω 2 ∇𝜒 − 𝐕 ⋅ ∇𝜙 𝐱 + 2𝜀 ∇𝜙 𝐱 2 𝑑𝐱 ・・・式3

Slide 27

Slide 27 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  つまり、以下の図のような形となる。

Slide 28

Slide 28 text

物体の内外を決定する占有関数を作る iPhone12 LiDAR [動画]  ここで、Ε 𝜒 が最小値を取るとき、 Ε 𝜒 + 𝜀𝜙 の値は𝜖 = 0の時に最小値をと り、この時の傾きは、0であるから、以下の式を満たす。  これと、𝜖 = 0を式3に代入すれば以下のようになる。 ቤ 𝑑 𝑑𝜀 𝐸 𝜒 + 𝜀𝜙 𝜀=0 = 0 න Ω 2 ∇𝜒 − 𝐕 ⋅ ∇𝜙 𝐱 𝑑𝐱 = 0 ・・・式4

Slide 29

Slide 29 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  ここで、積の微分公式は以下のようになる。  これを多次元に拡張すると、次の式が成り立つ。 𝑢𝑣 ′ = 𝑢′𝑣 + 𝑢𝑣′ ∇ ⋅ 𝜙 𝐱 𝐀 = ∇𝜙 𝐱 ⋅ 𝐀 + 𝜙 𝐱 ∇ ⋅ 𝐀

Slide 30

Slide 30 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  移項すると以下のようになる。 න Ω 𝐀 ⋅ ∇𝜙 𝐱 𝑑𝐱 = න Ω ∇ ⋅ 𝜙 𝐱 𝐀 𝑑𝐱 − න Ω 𝜙 𝐱 ∇ ⋅ 𝐀 𝑑𝐱 バックパック型スキャナー  これをΩで積分することで以下のようになる。 න Ω ∇ ⋅ 𝜙 𝐱 𝐀 𝑑𝐱 = න Ω ∇𝜙 𝐱 ⋅ 𝐀 𝑑𝐱 + න Ω 𝜙 𝐱 ∇ ⋅ 𝐀 𝑑𝐱 ・・・式5

Slide 31

Slide 31 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  発散定理より、領域Ω内におけるベクトル場𝜙Αの発散の体積積分は、 その境界𝜕Ωを通過する外向き流束の面積積分に等しい。

Slide 32

Slide 32 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR [動画]  よって、境界面に垂直な向きで領域の外側を向くような単位ベクトルnを 用いて、以下の式が成り立つ。  これを、式5に代入して、次のようになる。 න Ω ∇ ⋅ 𝜙𝐀 𝑑𝐱 = න 𝜕Ω 𝜙𝐀 ⋅ 𝐧 𝑑𝑆 න Ω 𝐀 ⋅ ∇𝜙 𝑑𝐱 = − න Ω ∇ ⋅ 𝐀 𝜙 𝑑𝐱 + න 𝜕Ω 𝜙𝐀 ⋅ 𝐧 𝑑𝑆 ・・・式6

Slide 33

Slide 33 text

物体の内外を決定する占有関数を作る バックパック型スキャナー [動画]  さらに、𝜙は𝜕Ω上で常に0となるように定められており、次の式が成り立つ。  これを式6に代入して以下のようになる。 න 𝜕Ω 𝜙𝐀 ⋅ 𝐧 𝑑𝑆 = 0 න Ω 𝐀 ⋅ ∇𝜙 𝑑𝐱 = − න Ω ∇ ⋅ 𝐀 𝜙 𝑑𝐱

Slide 34

Slide 34 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR  ここで、式4の両辺を2で割ると次の式が成り立つ。  よって、Α = ∇𝜒 − Vとすると以下のようになる。 න Ω ∇𝜒 − 𝐕 ⋅ ∇𝜙 𝑑𝐱 = − න Ω ∇ ⋅ ∇𝜒 − 𝐕 𝜙 𝑑𝐱 ・・・式7 න Ω ∇𝜒 − 𝐕 ⋅ ∇𝜙 𝐱 𝑑𝐱 = 0

Slide 35

Slide 35 text

物体の内外を決定する占有関数を作る バックパック型スキャナー iPhone12 LiDAR  この式が任意の𝜙に対して成り立つためには、𝜙に掛かる項が 0 である必要 があることから、次の式が成り立つ。  つまり、∇ ∙ ∇𝜒 = ∆𝜒の値が∇ ∙ Vと等しくなればいいことが分かる。 ∇ ⋅ ∇𝜒 − 𝐕 = 0  これを式7に代入して、以下の式が成り立つ。 න Ω ∇ ⋅ ∇𝜒 − 𝐕 𝜙 𝑑𝐱 = 0

Slide 36

Slide 36 text

ポアソン方程式を解いて𝜒の値を推定する バックパック型スキャナー iPhone12 LiDAR [動画]  ここで、V(x)の発散∇ ∙ Vは以下の式で表される。  さらに、∆𝜒は以下の式で表される。 ∇ ⋅ 𝐕 = 𝜕𝑉 𝑥 𝜕𝑥 + 𝜕𝑉 𝑦 𝜕𝑦 + 𝜕𝑉 𝑧 𝜕𝑧 Δ𝜒 = ∇ ⋅ ∇𝜒 = 𝜕2𝜒 𝜕𝑥2 + 𝜕2𝜒 𝜕𝑦2 + 𝜕2𝜒 𝜕𝑧2

Slide 37

Slide 37 text

バックパック型スキャナー iPhone12 LiDAR [動画]  ここで、式1より V(x)は既知なのでその発散∇ ∙ Vは求めることができ、 ポアソン方程式として以下の式を解くことで𝜒を求める。 𝜕2𝜒 𝜕𝑥2 + 𝜕2𝜒 𝜕𝑦2 + 𝜕2𝜒 𝜕𝑧2 = 𝜕𝑉 𝑥 𝜕𝑥 + 𝜕𝑉 𝑦 𝜕𝑦 + 𝜕𝑉 𝑧 𝜕𝑧 ポアソン方程式を解いて𝜒の値を推定する

Slide 38

Slide 38 text

占有関数𝜒の等値面を決定する バックパック型スキャナー iPhone12 LiDAR [動画]  しかし、以下の式で表されるように、𝜒 x に任意の定数を加えてもΔ𝜒は 変化しないため、ポアソン方程式だけでは𝜒 x の絶対値は一意に定まらない。  ただ、𝜒 x の絶対値自体は定数加算によって変化しうるが、どの位置で値が 高く、どの位置で低いかという空間的な構造は変わらない。  したがって、表面抽出において重要なのは𝜒 x の絶対値ではなく、 その等値面の位置関係である。 Δ 𝜒 + 𝐶 = Δ𝜒

Slide 39

Slide 39 text

バックパック型スキャナー iPhone12 LiDAR [動画]  ここで、点群の密度が大きい点では小さくなり、点群の密度が小さい点では 大きくなるように設定された、点xi に対応する密度wi を用いて、入力点群の𝜒 の値の重み付き平均を以下のො 𝛾で定義する。 ො 𝛾 = σ𝑖=1 𝑁 𝑤𝑖 𝜒 𝐱𝐢 σ 𝑖=1 𝑁 𝑤𝑖  入力点群は物体表面上に存在すると仮定できるため、点群上での𝜒の代表 値ො 𝛾を等値面の基準値とできる。 占有関数𝜒の等値面を決定する

Slide 40

Slide 40 text

等値面を物体表面とする バックパック型スキャナー iPhone12 LiDAR [動画]  したがって、𝜒 x = ො 𝛾を満たす等値面を物体表面として抽出する。

Slide 41

Slide 41 text

ポアソン法を用いた時のメッシュ構築例 バックパック型スキャナー iPhone12 LiDAR [動画]  ポアソン法では,点群の周囲の空間を細かく分割し,その空間上で 𝜒を計算して表面を復元する。 スライド内の点群は東京都デジタルツイン実現プロジェクトにより公開されている 区部点群データを用いています  このとき,空間をどの程度細かく分割するかを 決めるパラメータがdepthである。  右に示す点群を用いて、depthを変化させた時の メッシュの違いを比較する。

Slide 42

Slide 42 text

ポアソン法を用いた時のメッシュ構築例 バックパック型スキャナー iPhone12 LiDAR [動画]  空間分割が粗い場合(depth=3) • 計算速度は速くなる • 表面メッシュは粗くなり、元の形状を把握できない スライド内のメッシュは東京都デジタルツイン実現プロジェクトにより公開されている 区部点群データを用いて生成しています

Slide 43

Slide 43 text

ポアソン法を用いた時のメッシュ構築例 バックパック型スキャナー iPhone12 LiDAR [動画]  空間分割が細かい場合(depth=9) • 計算速度は遅くなる • 表面メッシュは点群の細かな形状まで再現できる スライド内のメッシュは東京都デジタルツイン実現プロジェクトにより公開されている 区部点群データを用いて生成しています

Slide 44

Slide 44 text

ポアソン法を用いた時のメッシュ構築例 バックパック型スキャナー iPhone12 LiDAR [動画]  ポアソン法では、点群を囲む計算領域Ωの中で関数𝜒を求め, 表面を復元する。  このとき、点群を囲む計算領域Ωをどれくらいの 大きさにするのかを決めるパラメータがscaleで ある。  引き続き右に示す点群を用いて、scaleを 変化させたときのメッシュの違いを比較する。 スライド内のメッシュは東京都デジタルツイン実現プロジェクトにより公開されている 区部点群データを用いて生成しています

Slide 45

Slide 45 text

ポアソン法を用いた時のメッシュ構築例 バックパック型スキャナー iPhone12 LiDAR [動画]  計算領域が小さすぎる場合(scale=0.5) • 点群の一部分が計算領域からはみ出るため、 メッシュ化されない • 計算領域内では適切にメッシュ化できる スライド内のメッシュは東京都デジタルツイン実現プロジェクトにより公開されている 区部点群データを用いて生成しています

Slide 46

Slide 46 text

ポアソン法を用いた時のメッシュ構築例 バックパック型スキャナー iPhone12 LiDAR [動画]  計算領域が適切な場合(scale=1.1) • 点群全体よりも少しだけ計算領域が大きい • 細部まで適切にメッシュ化できる スライド内のメッシュは東京都デジタルツイン実現プロジェクトにより公開されている 区部点群データを用いて生成しています

Slide 47

Slide 47 text

ポアソン法を用いた時のメッシュ構築例 バックパック型スキャナー iPhone12 LiDAR [動画]  計算領域が大きすぎる場合(scale=1.5) • 不要な空間まで計算対象となるため、 計算効率が低下する • 範囲が広くなるため、同じdepthでは実質的な 分割が粗くなり、細部形状が再現されにくくなる スライド内のメッシュは東京都デジタルツイン実現プロジェクトにより公開されている 区部点群データを用いて生成しています