3D ポイントクラウドで回転軸を自動検出しようとしています。
つまり、小さな 3D ポイントクラウドを取得し、単一の回転軸を選択して、異なる回転角度でポイントのコピーをいくつか作成すると、より大きなポイントクラウドが得られます。
私のアルゴリズムへの入力はより大きな点群であり、目的の出力は単一の対称軸です。そして最終的には、互いの回転であるポイント間の対応を計算します。
大きな点群のサイズは 100K ポイントのオーダーで、作成される回転コピーの数は不明です。
私の場合、回転角度には一定のデルタがありますが、必ずしも 360 度に及ぶとは限りません。たとえば、私は 0、20、40、60 を持っているかもしれません。または、0、90、180、270 を持っているかもしれません。それを検出します)。
これはコンピューター ビジョンの問題のようですが、軸を正確に見つける方法がわかりません。通常、入力は非常にクリーンで、フロートの精度に近くなります。
大きなポイントクラウドを作成するために回転/コピーされた元の小さなポイントクラウドはありません。私は、データがほとんどノイズのない合成データであることを知っています (通常、別のプログラムの出力です)。
残念ながら、軸に沿って点が重複していないため、小さな雲で可能な点の数を簡単に計算することはできません。どの点が軸に沿っているかがわかっていれば、考えられる要因を考え出すことができますが、その場合、問題はすでに解決されています。
--
皆さんの提案に感謝します。私の最終的なアルゴリズムは、k-nn メトリックを使用して一致するポイントのクリークを考え出そうとしているようです。各クリークは軸を与えます。次に、RANSAC を使用して、軸をすべてのクリークの結果に適合させることができます。