現在、単純な形状 (T または L 形状など) を 2D 点群に適合させる方法を探しています。結果として必要なのは、形状の位置と向きです。
私はいくつかのアプローチを見てきましたが、ほとんどは非常に複雑に見え、最初にサンプル データベースを構築して学習する必要があります。私は非常に単純な形状を扱っているので、もっと単純なアプローチがあることを望んでいました.
現在、単純な形状 (T または L 形状など) を 2D 点群に適合させる方法を探しています。結果として必要なのは、形状の位置と向きです。
私はいくつかのアプローチを見てきましたが、ほとんどは非常に複雑に見え、最初にサンプル データベースを構築して学習する必要があります。私は非常に単純な形状を扱っているので、もっと単純なアプローチがあることを望んでいました.
あなたがする必要があるかもしれません:
1-オブジェクトを探している画像からいくつかの特徴を抽出します。
2- オブジェクトの画像内の別の特徴セットを抽出する
3-機能を一致させる(SIFTなどの方法を使用して可能です)
4- 一致が見つかったら、RANSAC アルゴリズムを適用します。変換マトリックス (平行移動、回転情報を含む) を提供します。
SIFTのご利用はこちらから。実際、これは SIFT 用に書かれた最高のソース コードの 1 つです。RANSAC アルゴリズムが含まれているため、自分で実装する必要はありません。
ここでRANSAC について読むことができます。
トレーニングをしたくないと言うのは、特徴マッチングをしたくないという意味だと思います。特徴マッチングは、画像内のオブジェクトのポーズ (位置と向き) について適切な推測を行うために使用され、オブジェクトのポーズに関する適切な仮説を推測および検証するために、RANSAC と共に問題に適用できます。
最も単純なアプローチはテンプレート マッチングですが、これは計算が複雑すぎる場合があります (ユース ケースによって異なります)。テンプレート マッチングでは、オブジェクトの可能な位置とその可能な方向と可能なスケールをループし、テンプレート (その位置と方向とスケールで L または T のように見える雲) がどの程度一致するかを確認します (またはサンプリングします)。可能性のある場所の向きとスケールはランダムです)。ポイントが整理されている場合 (または、ポイントをピクセルに変換するなどして整理している場合)、テンプレートのチェックはかなり高速になります。
これが遅すぎる場合は、テンプレート マッチングを高速化する方法がたくさんあります。一般化されたハフ変換をお勧めします。ここで、テンプレートの検索を開始する前に、探している形状 (T または L) の境界をループし、その境界上の各ポイントについて、グラデーションの方向を確認し、次にグラデーションの方向とそのポイントでの角度を調べます。オブジェクト テンプレートの原点、および原点までの距離。それを各境界点のテーブル (と呼びましょうTable A
) に追加すると、グラデーションの方向からオブジェクトの原点の可能な位置のセットにマップするテーブルになります。ここで、2D 投票空間を設定します。これは、実際には単なる 2D 配列です (これをTable B
) ここで、各ピクセルには、その場所のオブジェクトに対する投票数を表す数値が含まれています。次に、ターゲット イメージ (ポイント クラウド) 内の各点について、勾配をチェックし、その勾配に対応する で見つかった可能性のあるオブジェクトの位置のセットを見つけてから、 (ハフ空間)Table A
内のすべての対応するオブジェクトの位置に 1 票を追加します。Table B
これは非常に簡潔な説明ですが、テンプレート マッチングと一般化ハフ変換を探すことを知っていれば、Web 上でより適切な説明を見つけることができます。たとえば、Wikipedia の Template Matching と Hough Transform のページを見てください。