Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
主成分分析やRANSACを利用した点群からの円柱フィッティングの方法
Search
Kenta Itakura
May 26, 2025
Technology
0
770
主成分分析やRANSACを利用した点群からの円柱フィッティングの方法
Kenta Itakura
May 26, 2025
Tweet
Share
More Decks by Kenta Itakura
See All by Kenta Itakura
オルソ画像を利用した3次元点群の着色処理
kentaitakura
0
120
不動産取引における3次元点群の活用事例
kentaitakura
0
87
主成分分析による3次元点群の形状解析
kentaitakura
0
250
PromptDA (Depth Anything) を用いた深度推定や点群生成について
kentaitakura
0
720
3次元点群からメッシュモデルを作成: ボールピボット法について
kentaitakura
0
430
3D Gaussian Splatting (3DGS)のモデルを Cesiumの地球の上で可視化する方法
kentaitakura
0
780
ImVisionLabs株式会社: 産業技術総合研究所様との取り組み
kentaitakura
0
320
ImVisionLabs株式会社:ゼンリンデータコム様との取り組み
kentaitakura
0
250
ImVisionLabs株式会社: 中日本航空様との取り組み
kentaitakura
0
210
Other Decks in Technology
See All in Technology
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
130
KubeCon + CloudNativeCon NA ‘25 Recap, Extensibility: Gateway API / NRI
ladicle
0
170
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
180
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
160
MySQLのJSON機能の活用術
ikomachi226
0
140
AI時代、1年目エンジニアの悩み
jin4
1
150
GSIが複数キー対応したことで、俺達はいったい何が嬉しいのか?
smt7174
3
130
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
280
データの整合性を保ちたいだけなんだ
shoheimitani
2
210
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
3
1.1k
今日から始めるAmazon Bedrock AgentCore
har1101
4
330
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
54
8k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2k
AI: The stuff that nobody shows you
jnunemaker
PRO
2
230
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Deep Space Network (abreviated)
tonyrice
0
44
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Odyssey Design
rkendrick25
PRO
1
480
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
110
GraphQLとの向き合い方2022年版
quramy
50
14k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Transcript
3次元点群からの円柱フィッティング方法について ImVisionLabs株式会社代表取締役 板倉健太 博士(農学)
2 背景と目的 橋脚やパイプなどの円柱形状の構造物は、幾何モデルとして円柱にフィッティングする ことで、寸法計測や変状解析が可能 洪水や地震の前後で橋脚や電柱などの構造物の点群に対して本手法を適用することで、 傾きや変形といった幾何的変化を定量的に把握することが期待できる 画像は静岡県のオープンデータを利用
4 フィッティング対象の点群選定 点群全体から関心領域(ROI:Region of Interest)を定義し、円柱構造物を抽出 この際、対象の円柱状の物体以外の点はできるだけ取り除かれていることが望ましい 検出したい円柱を含む点群データ 自動的に円柱状の物体を検出した時の様子
円柱の式について 変数の意味 ・ は円柱の 軸上の1点(円柱の中心軸を定義する基準点) ・ は円柱の 軸方向ベクトル ・
は円柱上の点 方程式の構造 ・ : : 柱軸上の点 から の距離 ・ : と軸方向ベクトル の内積(軸に平行な成分) 𝑥0 , 𝑦0 , 𝑧0 𝑥0 , 𝑦0 , 𝑧0 (𝑎, 𝑏, 𝑐) (𝑎, 𝑏, 𝑐) (𝑥, 𝑦, 𝑧) (𝑥, 𝑦, 𝑧) 円柱の軸上の点と円柱上の点にて三平方の定理を行っているイメージ O 円柱の式: (𝑥 − 𝑥0 , 𝑦 − 𝑦0 , 𝑧 − 𝑧0 ) 5 RANSACによる半径の推定
円柱の式について 変数の意味 ・ は円柱の 軸上の1点(円柱の中心軸を定義する基準点) ・ は円柱の 軸方向ベクトル ・
は円柱上の点 方程式の構造 ・ : : 柱軸上の点 から の距離 ・ 𝑥0 , 𝑦0 , 𝑧0 𝑥0 , 𝑦0 , 𝑧0 (𝑎, 𝑏, 𝑐) (𝑥, 𝑦, 𝑧) (𝑥, 𝑦, 𝑧) 円柱の軸上の点と円柱上の点にて三平方の定理を行っているイメージ 𝑥0 , 𝑦0 , 𝑧0 (𝑥, 𝑦, 𝑧)・ ・ ・ r 円柱の式: : と軸方向ベクトル の内積(軸に平行な成分) (𝑎, 𝑏, 𝑐) (𝑥 − 𝑥0 , 𝑦 − 𝑦0 , 𝑧 − 𝑧0 ) 6
8 円柱フィッティングの手順 まずは主成分分析により軸のベクトルを推定し、その後に半径を決定する 円柱のフィッティングには軸の向き、軸の位置、半径が必要 半径の決定にはRANSACを利用する(後述) 軸の位置を 推定 半径を 決定
10 初期軸方向の推定 抽出された点群に対して主成分分析(PCA:Principal Component Analysis)を 実行し、最も分散の大きい方向を軸方向ベクトルの初期推定とする。 軸を推定
RANSACによる半径の推定 [a] ScanX2.0 RANSACとはデータの中からノイズによる影響を最小限にしながら、モデルのパラ メータを推定するために使用される統計的手法 11 初期軸が求まったので、次はRANSAC (RANdom
SAmple Consensus)によって半 径を推定する RANSACで 半径を決定 PCAで軸が決定している 円柱の形が決定
12 RANSACによる半径の推定 1.ランダムに3点を抽出し、半径を仮定 2.各点から軸への距離と半径との差から残差を計算 3.残差が小さい点をインライアとし、最も多くのインライアを持つモデルを選定 4.参照軸(例:Z軸)との方向一致条件も導入可能 半径を仮定 インライアを推定
13 フィッティングの実行結果 図1:元データ 図2:フィッティング結果 正確に円柱を抽出できていることがわかる 図2(フィッティング結果)は図1(元データ)に対 してPCAとRANSACによって抽出された円柱を 重ねたものである
14 フィッティングの実行結果 回転させると右の動画のようになった どの方向から観察しても正確に円柱を抽出で きていることが分かった
15 樹木のフィッティング 樹木の幹を対象として円柱フィッティングを行うと直径が0.74m (図1) 、CloudCompare 上で2点を選択し、直径を測る(図2)と0.73mとなった 図1:円柱フィッティングにより直径を推定 図2: 手動で2点を選択し、直径を測定