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

3次元点群の解析において重要な法線ベクトルについて紹介

 3次元点群の解析において重要な法線ベクトルについて紹介

Kenta Itakura

March 03, 2024
Tweet

More Decks by Kenta Itakura

Other Decks in Technology

Transcript

  1. 点群の利用例: 位置データとの組み合わせ [a] ScanX2.0  3次元点群から樹木の位置や数を自動的に計算  3次元点群を利用し、森林の地表面の形状や高さなどを調べる →伐採計画や温室効果ガスの吸収量を調べることなどに利用 画像出典:

    2024年1月26日 朝日新聞 教育科学面 「地図×データ 湧くアイデア」 ※東京都より公開されている 東京都デジタルツイン実現プロジェクトのデータを利用しています
  2. 法線ベクトルの算出 9 バックパック型スキャナー  点群から局所的平面を求め、その平面から法線を計算する。 ① 近傍点を用いて、最小二乗法により平面を決定する ② その平面の法線ベクトルを求める。 図出典:

    理数アラカルト点群にフィットする平面を最小二乗法で求める方法 https://risalc.info/src/fitting-plane-least-squared.html  3点の点から平面を作る場合は外積を用いて求められるが、 今回のように4点以上に対して最小二乗法を利用して解く場合は、少し複雑
  3. 法線ベクトルの導出(概要) 10 バックパック型スキャナー iPhone12 LiDAR [動画] ① 近傍点を用いて最小二乗法により平面を決定する • 平面を仮定すると、各点と平面の距離𝑑が計算できる

    • 各点と平面の距離の合計が最小となるような平面を求める 𝑑(𝑎, 𝑏, 𝑐, 𝑑) = 𝑎𝑥𝑖 + 𝑏𝑦𝑖 + 𝑐𝑧𝑖 + 𝑑 𝑎2 + 𝑏2 + 𝑐2 図出典: 平面の方程式と点と平面の距離 https://hiraocafe.com/note/plane_equation.html
  4. 法線ベクトルの導出 11 バックパック型スキャナー iPhone12 LiDAR [動画] • N個の点群データ座標: 𝑥𝑖 ,

    𝑦𝑖 , 𝑧𝑖 • 重心: ҧ 𝑥, ത 𝑦, ҧ 𝑧 とする • それら点群がなす平面α: 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑 = 0 • 法線ベクトルの大きさは1とする (𝑎2 + 𝑏2 + 𝑐2 = 1)  準備  各点と平面の距離 重心も平面αを通るので、 𝑎 ҧ 𝑥 + 𝑏ത 𝑦 + 𝑐 ҧ 𝑧 + 𝑑 = 0 𝑑 = −(𝑎 ҧ 𝑥 + 𝑏ത 𝑦 + 𝑐 ҧ 𝑧) 𝑑𝑖 (𝑎, 𝑏, 𝑐, 𝑑) = 𝑎𝑥𝑖 + 𝑏𝑦𝑖 + 𝑐𝑧𝑖 + 𝑑 𝑎2 + 𝑏2 + 𝑐2 ※ 平面の式のa, b, cの値は、法線ベクトルの向きと一致する
  5. 法線ベクトルの導出 12 バックパック型スキャナー iPhone12 LiDAR [動画] • N個の点群データ座標: 𝑥𝑖 ,

    𝑦𝑖 , 𝑧𝑖 • 重心: ҧ 𝑥, ത 𝑦, ҧ 𝑧 とする • それら点群がなす平面α: 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑 = 0 • 法線ベクトルの大きさは1とする (𝑎2 + 𝑏2 + 𝑐2 = 1)  準備 𝑑𝑖 (𝑎, 𝑏, 𝑐, 𝑑) = 𝑎𝑥𝑖 + 𝑏𝑦𝑖 + 𝑐𝑧𝑖 + 𝑑 𝑎2 + 𝑏2 + 𝑐2  各点と平面の距離 重心も平面αを通るので、 𝑎 ҧ 𝑥 + 𝑏ത 𝑦 + 𝑐 ҧ 𝑧 + 𝑑 = 0 𝑑 = −(𝑎 ҧ 𝑥 + 𝑏ത 𝑦 + 𝑐 ҧ 𝑧) 𝑑𝑖 (𝑎, 𝑏, 𝑐) = 𝑎(𝑥𝑖 − ҧ 𝑥) + 𝑏(𝑦𝑖 −ത 𝑦) + 𝑐(𝑧𝑖 − ҧ 𝑧)
  6. 法線ベクトルの導出 13 バックパック型スキャナー [動画] 𝐷(𝑎, 𝑏, 𝑐) = ෍ 1

    𝑁 𝑑𝑖 2  全ての点における距離の2乗の和 これを最小とするa,b,cを 偏微分により決定できる ※距離の2乗になっていることに注意
  7. 法線ベクトルの導出 14 バックパック型スキャナー [動画] 𝑎2 + 𝑏2 + 𝑐2 =1という条件のもとで

    𝐷(𝑎, 𝑏, 𝑐) = ෍ 1 𝑁 𝑑𝑖 (𝑎, 𝑏, 𝑐)2 が最小となるa,b,cを求める。  問題設定 ※距離の2乗になっていることに注意
  8. 法線ベクトルの導出 16 バックパック型スキャナー iPhone12 LiDAR [動画] 𝐿 𝑎, 𝑏, 𝑐,

    λ = 𝐷 𝑎, 𝑏, 𝑐 − λ(𝑎2 + 𝑏2 + 𝑐2 − 1) を λ や 𝑎 で偏微分し 𝜕𝐿 𝜕λ = 𝑎2 + 𝑏2 + 𝑐2 − 1 𝜕𝐿 𝜕𝑎 = −2𝑎λ + ෍ 𝑖 𝑁 (2𝑎 𝑥𝑖 − ҧ 𝑥 2+2𝑏(𝑥𝑖 − ҧ 𝑥)(𝑦𝑖 −ത 𝑦) + 2𝑐(𝑥𝑖 − ҧ 𝑥)(𝑧𝑖 − ഥ 𝑧))  問題設定 𝜕𝐿 𝜕𝑏 , 𝜕𝐿 𝜕𝑐 も同様に (𝐷 𝑖 = 𝑑𝑖 𝑎, 𝑏, 𝑐 2 = 𝑎(𝑥𝑖 − ҧ 𝑥) + 𝑏(𝑦𝑖 −ത 𝑦) + 𝑐(𝑧𝑖 − ҧ 𝑧) 2 であることを利用) 𝜕𝐿 𝜕𝑏 = −2𝑏λ + ෍ 𝑖 𝑁 (2𝑏 𝑦𝑖 − ത 𝑦 2+2𝑎(𝑥𝑖 − ҧ 𝑥)(𝑦𝑖 −ത 𝑦) + 2𝑐(𝑦𝑖 − ത 𝑦)(𝑧𝑖 − ഥ 𝑧)) 𝜕𝐿 𝜕𝑐 = −2𝑐λ + ෍ 𝑖 𝑁 (2𝑐 𝑧𝑖 − ҧ 𝑧 2+2𝑎(𝑥𝑖 − ҧ 𝑥)(𝑧𝑖 − ҧ 𝑧) + 2𝑐(𝑥𝑖 − ҧ 𝑥)(𝑧𝑖 − ഥ 𝑧))
  9. 法線ベクトルの導出 17 バックパック型スキャナー [動画] ෍ 𝑖 𝑁 (𝑎 𝑥𝑖 −

    ҧ 𝑥 2+𝑏(𝑥𝑖 − ҧ 𝑥)(𝑦𝑖 −ത 𝑦) + 𝑐(𝑥𝑖 − ҧ 𝑥)(𝑧𝑖 − ഥ 𝑧)) = 𝑎λ X𝑇 = 𝑥1 − ҧ 𝑥 𝑥2 − ҧ 𝑥 ⋯ 𝑥𝑛 − ҧ 𝑥 𝑦1 − ത 𝑦 𝑦2 − ത 𝑦 ⋯ 𝑦𝑛 − ത 𝑦 𝑧1 − ҧ 𝑧 𝑧2 − ҧ 𝑧 ⋯ 𝑧𝑛 − ҧ 𝑧 のように X と𝑣 を置くと、赤枠の式と残りのb, cに関する2つの式は、 𝑋𝑇𝑋𝑣 = 𝜆𝑣 𝑣 = 𝑎 𝑏 𝑐 という式にまとめることができる 式を整理すると以下のようになる
  10. 法線ベクトルの導出 18 バックパック型スキャナー [動画] 𝑋𝑇𝑋𝑣 = 𝜆𝑣  固有ベクトルについて Aと置く

    を解くことは、固有ベクトルを求めることと等価 図出典: 高校数学の美しい物語 行列の固有値・固有ベクトルの定義と具体的な計算方法 https://manabitimes.jp/math/1008 最小の固有値に対応する固有ベクトルを求めると平面の式の変数も求まる
  11. よくある質問 22 iPhone12 LiDAR Q.1次関数である y=ax+b であれば切片の値はbを見ればよいが、𝑎𝑥 + 𝑏𝑦 +

    𝑐𝑧 + 𝑑 = 0 の形で平面を表すとその平面がz軸とどこで交わるのかわかりにくい。どうすればいいか。 A. 𝑥 𝛼 + 𝑦 𝛽 + 𝑧 𝛾 = 1 の形で表すとよい。このとき、(0, 0, 𝛾)がz軸との交点である