Slide 1

Slide 1 text

3次元点群の法線ベクトルについて ImVisionLabs株式会社代表取締役 板倉健太 博士(農学)

Slide 2

Slide 2 text

3次元データについて 1 バックパック型スキャナー iPhone12 LiDAR  点の集まりにより3次元形状を表現する点群や、三角形の集まりで表すメッシュ形式などがある  LiDARと呼ばれるセンサーや、写真の組み合わせにより3次元点群を取得可能 [動画]

Slide 3

Slide 3 text

点群の利用例: 位置データとの組み合わせ [a] ScanX2.0  3次元点群から樹木の位置や数を自動的に計算  3次元点群を利用し、森林の地表面の形状や高さなどを調べる →伐採計画や温室効果ガスの吸収量を調べることなどに利用 画像出典: 2024年1月26日 朝日新聞 教育科学面 「地図×データ 湧くアイデア」 ※東京都より公開されている 東京都デジタルツイン実現プロジェクトのデータを利用しています

Slide 4

Slide 4 text

点群の形状を表す指標 [a] ScanX2.0 高さ、面積、体積、密度、色、法線ベクトル, etc. などが利用される  点群の分類するといった、点群の認識を行うために、 ※ 図は点群分類の結果であるが、深層学習を利用した方法では、明示的に 法線ベクトルを使わない場合が多い

Slide 5

Slide 5 text

3次元点群の法線ベクトルとは 5 ◼ より高度な形状特徴:その点群の差す向き • 法線ベクトル:ある面に対して垂直なベクトル • その小さな領域の点群が、どの方向を向いているかを示す • 局所的に平面を作って、それに垂直な方向とする

Slide 6

Slide 6 text

法線ベクトルの例 6

Slide 7

Slide 7 text

地面や壁での法線ベクトルの例 法線ベクトルの分類への利用 ScanX2.0 • 壁に対する法線ベクトル:地面と平行(なことが多い) • 地面に対する法線ベクトル:地面に垂直(なことが多い)  法線ベクトルの向き:点群分類に利用可能 図出典:Open3Dドキュメント https://www.open3d.org/docs/release/tutorial/geometry/pointcloud.htmlhtt ps://www.open3d.org/docs/release/tutorial/geometry/pointcloud.html 地面(垂直) 壁(平行)

Slide 8

Slide 8 text

法線ベクトルの算出 9 バックパック型スキャナー  点群から局所的平面を求め、その平面から法線を計算する。 ① 近傍点を用いて、最小二乗法により平面を決定する ② その平面の法線ベクトルを求める。 図出典: 理数アラカルト点群にフィットする平面を最小二乗法で求める方法 https://risalc.info/src/fitting-plane-least-squared.html  3点の点から平面を作る場合は外積を用いて求められるが、 今回のように4点以上に対して最小二乗法を利用して解く場合は、少し複雑

Slide 9

Slide 9 text

法線ベクトルの導出(概要) 10 バックパック型スキャナー iPhone12 LiDAR [動画] ① 近傍点を用いて最小二乗法により平面を決定する • 平面を仮定すると、各点と平面の距離𝑑が計算できる • 各点と平面の距離の合計が最小となるような平面を求める 𝑑(𝑎, 𝑏, 𝑐, 𝑑) = 𝑎𝑥𝑖 + 𝑏𝑦𝑖 + 𝑐𝑧𝑖 + 𝑑 𝑎2 + 𝑏2 + 𝑐2 図出典: 平面の方程式と点と平面の距離 https://hiraocafe.com/note/plane_equation.html

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

法線ベクトルの導出 15 バックパック型スキャナー [動画]  ラグランジュの未定乗数法 図出典: 高校数学の美しい物語 ラグランジュの未定乗数法と例題 https://manabitimes.jp/math/879

Slide 15

Slide 15 text

法線ベクトルの導出 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𝑐(𝑥𝑖 − ҧ 𝑥)(𝑧𝑖 − ഥ 𝑧))

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

法線ベクトルの導出 18 バックパック型スキャナー [動画] 𝑋𝑇𝑋𝑣 = 𝜆𝑣  固有ベクトルについて Aと置く を解くことは、固有ベクトルを求めることと等価 図出典: 高校数学の美しい物語 行列の固有値・固有ベクトルの定義と具体的な計算方法 https://manabitimes.jp/math/1008 最小の固有値に対応する固有ベクトルを求めると平面の式の変数も求まる

Slide 18

Slide 18 text

法線ベクトルの導出 19 バックパック型スキャナー [動画] 図出典: 高校数学の美しい物語 行列の固有値・固有ベクトルの定義と具体的な計算方法 https://manabitimes.jp/math/1008

Slide 19

Slide 19 text

法線ベクトルの算出 20 バックパック型スキャナー ② その平面から法線ベクトルを求める 平面の式がこのように表せるとき、ベクトル(a,b,c)は法線ベクトルの一つである 図出典: イメージングソリューション: 平面の方程式 https://imagingsolution.net/math/plane_equation/

Slide 20

Slide 20 text

まとめ 21 iPhone12 LiDAR 3次元点群や3次元モデルの解析において重要な法線ベクトルについて紹介しました 各点から平面までの距離を考え、その和の2乗が最小になるときの値を求めました ラグランジュの未定乗数法を利用し解く方法について紹介しました 求めた平面のパラメータから、法線ベクトルを求めました

Slide 21

Slide 21 text

よくある質問 22 iPhone12 LiDAR Q.1次関数である y=ax+b であれば切片の値はbを見ればよいが、𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑 = 0 の形で平面を表すとその平面がz軸とどこで交わるのかわかりにくい。どうすればいいか。 A. 𝑥 𝛼 + 𝑦 𝛽 + 𝑧 𝛾 = 1 の形で表すとよい。このとき、(0, 0, 𝛾)がz軸との交点である

Slide 22

Slide 22 text

よくある質問 23 iPhone12 LiDAR Q.3次元点群から法線ベクトルを求めることは、3変数に対して主成分分析を行うことと等価 であるようである。主成分分析についてもう少し詳しく知りたい。 A. 以下の記事をご覧ください。 https://kentapt.hatenablog.com/entry/2022/02/16/182532

Slide 23

Slide 23 text

よくある質問 24 Q.固有値問題を解くと3つ固有値が求まり、固有値が最小値のものを利用するとのことだっ た。こちらは法線ベクトルに相当するとして、その他の2つは何か。 A. 3次元の入力データに対する第一主成分と第二主成分に相当します。詳しくは以下の記 事をご覧ください。 https://kentapt.hatenablog.com/entry/2022/02/16/182532 画像出典: Han, K., Jung, K., Yoon, J., & Lee, M. (2021). Point Cloud Resampling by Simulating Electric Charges on Metallic Surfaces. Sensors, 21(22), 7768.

Slide 24

Slide 24 text

よくある質問 25 Q.ある点を通り法線ベクトルが (a, b, c) の平面の方程式を導出したいです A. 以下のぷっちょ様の記事がわかりやすかったです https://puchohan.com/column/math-column/normal-vector 図出典: ぷっちょ様のブログ:直線の方程式と法線ベクトルの関係 https://puchohan.com/column/math-column/normal-vector

Slide 25

Slide 25 text

参考文献 • http://sysplan.nams.kyushu- u.ac.jp/gen/edu/Algorithms/PlaneFitting/index.html • https://qiita.com/kenmatsu4/items/2a8573e3c878fc2da306 • https://qiita.com/Seiji_Tanaka/items/5c8041dbd7da1510fbe9 26