Slide 1

Slide 1 text

点群処理の基礎 平面の検出と、その上下の点の取り出しについて ImVisionLabs株式会社代表取締役 板倉健太 博士(農学)

Slide 2

Slide 2 text

3次元点群とは? 1 バックパック型スキャナー iPhone12 LiDAR  点の群れによって、3Dの情報を表現するもの  XYZ座標を持つ点(例:エクセルの1行)が大量にあるイメージ 点群のデータ形式のイメージ 点が集まると対象の形状になる 点群の例 [動画]

Slide 3

Slide 3 text

点群分類の例: 奈良文化財研究所高田様との取り組み 2  3次元点群から自動的に「道跡」の検出をします  「道跡」は石を切る場所と関連し、石材の切り出しに利用された地域の特定に利用 高さごとに色分けした図 自動分類した結果 道跡の候補点を水色で示した結果 樹木を除いた後の点群

Slide 4

Slide 4 text

点群処理の基本操作:平面検出 3  3次元点群から自動的に「平面」の検出をします  平面の検出方法には「RANSAC (RANdom SAmple Consensus)」 などがある 自動分類した結果 • 地面や床の上部や下部、壁などの必要な情報のみを抜き出すことができる • 2024年2月14日に発表済み。動画やスライドをご覧ください。 スライド: RANSACを利用した3次元点群の前処理について https://speakerdeck.com/kentaitakura/ransacwoli-yong- sita3ci-yuan-dian-qun-noqian-chu-li-nituite

Slide 5

Slide 5 text

平面の上下判定方法 4  平面の式は以下のように表される  点の位置によって、𝑥,𝑦,𝑧の値が変わり、上の式の左辺の値も変わる 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑 = 0 平面より上部:左辺は正 平面より下部:左辺は負 平面上:左辺は0 検出した平面

Slide 6

Slide 6 text

上下判定方法:工夫 5  シンプルな実装方法:forループによる実装 • 計算時間が莫大になる可能性がある  工夫した方法:行列による計算→forループを使わず、シンプルな行列計算 𝑥1 𝑦1 𝑧1 1 𝑥2 𝑦2 𝑧2 1 𝑥3 𝑦3 𝑧3 1 𝑥4 𝑦4 𝑧4 1 𝑎 𝑏 𝑐 d 𝑎𝑥1 + 𝑏𝑦1 + 𝑐𝑧1 + 𝑑 𝑎𝑥2 + 𝑏𝑦2 + 𝑐𝑧2 + 𝑑 𝑎𝑥3 + 𝑏𝑦3 + 𝑐𝑧3 + 𝑑 𝑎𝑥4 + 𝑏𝑦4 + 𝑐𝑧4 + 𝑑 = 各点のxyz座標 平面の式の係数

Slide 7

Slide 7 text

結果 6  地面の上(緑)と下(赤)がきれいに分けられている • 小さな段差もきれいに識別できた  出力結果は、forループを利用した実装でも行列計算を利用した方法でも同じ ・点群のビューワーはCloudCompareを利用しています ・動画撮影機能で自動的にこの動画を保存しています 対象の3次元点群 平面の上部/下部を判定した結果

Slide 8

Slide 8 text

結果:MATLABで実装した時の実行時間 7  forループ  行列によるもの→非常に高速。特に点数が膨大な点群の場合に有効 • 実行時間:22秒 • 実行時間:0.6秒

Slide 9

Slide 9 text

まとめ 8  本発表では3次元点群から検出した平面の上部と下部を判別する方法を紹介しました • 平面の上部と下部をきれいに分けることができました • 行列式を利用することで、計算時間を短縮できることがわかりました  今後は、異なる平面の検出手法や、様々な応用に向けた実装を行っていきたいです • 3次元点群のファイルは数億点以上を有することも多く、そのような大規模処 理において、行列式の利用は特に有効です