2

セット A とセット B の 2 つの線のセットがあります。これら 2 つのセットのすべての線の始点と終点はわかっているので、セット B をセット A に合わせるのに最適な回転と平行移動を見つけたいと考えています。スケーリングはありません。

ここに画像の説明を入力

  • 1 対 1 のマッピングはありません。私はこれが Kabsch アルゴリズムを除外すると信じていますが、これを使用する力ずくのアルゴリズムを想定することはできます。
  • セット B には、A の行の部分セグメントが含まれている可能性があります。かなりまばらな数の行が含まれている可能性があります。
  • B の行はエラーになります。A に存在しない行が観察される場合があります。
  • もちろん、複数の可能な「一致」が存在する可能性があります。

いくつかの背景として、これは大まかな画像ベースのロボット位置決めシステムの一部です。

  • セット A は「マップ」です - データはインポートされた dxf ファイルからインポートされます。
  • セット B は、観測されたラインのセットです。

たとえば、ここで見回しました:

図形を揃える方法は? (幾何学的最適適合アルゴリズム)

これを行う賢い方法はありますか?画像処理文献の形状マッチングをフリックすると、ラスター画像のパターンマッチングが多くなるようです-おそらくこの問題ではやり過ぎです。

現時点で私が理解できる最善の方法は、ハフ変換のようなアプローチを使用して、B の各ラインを A の各ラインに沿って取り、これらが表す回転/変換のビンを持つことです。私はこれをコーディングしておらず、まだ試してみました - 車輪の再発明を避けたかったのです。

どんなアイデアや意見も大歓迎です。

4

1 に答える 1

0

一般的な解決策は、セット A から「機能」を抽出し、その機能をセット B と比較することです。

1 つの例: セット A 内のすべての一意の角度を考慮し、さまざまな一意の角度のペアを計算します。セット A の例では、(0,0)、(0,90)、(90,0) の 3 つのケースしか考えられません。セット B のすべての線の角度を並べ替え、セット A のペアと一致させます。例: 角度が 0,5,50,93,129 の場合、角度 (0,5)、(0,93)、( 5,93), (50, 129) がマッチング候補です。候補を取得したら、それらをさらにフィルタリングできます。

セット A にある線の種類に応じて、関連する特徴を抽出できます。例: すべての線が垂直または平行である場合、線間の距離などの機能を使用できます。

于 2013-05-09T23:53:27.947 に答える