点群の線の検出


7

点群の線を検出するための最良のソリューションは何ですか?Hough TransformRadon Transform、RANSAC(wikipediaを参照)、およびBrute-Force Search(wikipediaを参照)との比較が行われています。
点群の点の分散に対して最も堅牢なのはどれですか?
注:
1-問題は画像ではなく3D点群についてです。
2-点群のポイントはランダムに分散されます(完全に疎な場所)。
3-優先する方向、サイズなどの観点から、探索されているオブジェクト(ライン)に関する情報はありません
。4-候補ラ​​インの周囲で許容範囲を考慮する必要があります。
アップデート:
私の実験によると、RANSACは一部の行を簡単に見逃してしまう可能性があります。エッジの迅速な検出には適していますが、ポイント分散の複雑さにより、望ましくない出力が生成される可能性があります。ハフとラドンは非常によく似ていて、3Dの点群を試す機会はありませんでしたが、2Dの場合はうまく機能します。見つかった行のセグメントの抽出は困難です。大規模なデータセットの場合、BFSは実際的ではありません。


ラドンとハフは、私が知る限り、点群ではなく体積データを操作します。アイデアはおそらく点群に適応させることができますが、それらがまだ同じ名前を持っているかどうかはわかりません。
内部石2011

あなたの基準は何ですか?ブルートフォースは、ラインが存在する場合は必ずラインを検出しますが、RANSACは「おそらく」ラインを検出します。
内部石

@endolith '... volumetric ...':良い点。ただし、マトリックスの解像度(つまり、セルの数)に許容される許容範囲で、3Dポイントを3Dボリューム(3Dマトリックス)にピクセル化(マップ)することは可能だと思います。'... Brute-Force ...'は完全に正確ですが、大量のポイントセットに対して計算上実用的ではありません。あなたが言ったように「ランサック」はいくつかの候補者を見逃す可能性があります。アイデアは、これらの問題に対処するためのいくつかの提案を議論して見つけることです:計算コストと不正確さ。
開発者

点群を体積行列に変換することは、おそらく間違った方向への一歩でしょう。:)点群と点間のユークリッド距離を操作するアルゴリズムを使用する方が良いでしょう。
内部石

@endolithあなたは正しいかもしれません。2Dケースでのハフ変換の私の個人的な経験は非常に満足のいくものであり、実際には非常に高速でした!精度とスピードを同時に実現するために、マルチステージ手法を活用することを考えています。この投稿のコメントと回答がいくつかの方向性を提供することを願っています。
開発者

回答:


1

それは本当に依存します、ソリューションの品質をどのように測定しますか?要件、リアルタイム、高精度は何ですか?点群の大きさはどれくらいですか?

あなたは問題に対処するための有効でありながら空想的な信号処理ベースの方法に言及しました。

古典的で本質的に統計的である、言及していない3つの方法を追加しましょう。最小二乗法、リッジ回帰、および投げ縄です。


1
これらはすべて最適化方法ですが、秘訣は最適化する適切な関数を見つけることです。あなたが最適化するためにあなたが提案している機能は何ですか?
フォノン

0

検出ラインが本当に心配な場合は、簡単な方法を使用できます。

点群を投影します-少なくとも2つのサーフェスに投影します。XY平面とYZ平面に投影するとします。基本的に、空白のキャンバスから始めて、いくつかのジオメトリ基準に基づいて各ポイントを投影します。これで、有限の2Dキャンバスができます。このキャンバスはすべて空白ですが、白い点が存在しています。これで、このキャンバスにハフ変換を適用できます。

ハフに基づいて、あなたはラインを取得します (r,θ) そして (r,ϕ)2つのそれぞれの平面。次のステップは、これらの線を関連付けて、これから単一の3D線を識別することです。

精度に関する限り、データがスパースである場合、ハフのスコア(つまり、強度)は低くなる可能性があります。ただし、全体的にすべての行がまばらであれば機能します。非常に長い行と短い行を比較する場合は問題です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.