3

主にアルゴリズム的な次の問題があります。

  • ABCD を既知の寸法 d1、d2 が空間のどこかにある長方形とする。
  • 長方形ABCDは平面P上に投影される(一般に台形KLMNを形成する)。射影行列 H を知っています。
  • 台形の端点 K、L、M、N の 2D 座標も見つけることができます。

質問は次のとおりです。

  • 射影行列 H、台形のエッジの座標、およびオブジェクトが指定されたジオメトリ (寸法 d1、d2) を持つ長方形であるという知識が与えられた場合、点 A、B、C、D の 3D 座標を計算できますか?

単一のカメラで単純な長方形の画像を取得していますが、空間上で長方形を再構築したいと考えています。複数の画像を取得して三角測量を使用することもできますが、これは望ましくありません。

光線は同じ点に投影されるため、射影行列だけでは十分ではありません。オブジェクトが既知の次元を持っているという事実は、問題が解決可能であり、有限の解決策があると私に信じさせます.

この再構成がどのように行われるかがわかれば、それをプログラムする方法がわかります。だから私はアルゴリズム/数学の答えを求めています。

どんなアイデアでも大歓迎です ありがとう

4

5 に答える 5

1

射影行列の逆行列を計算する必要があります。(行列を単数にすることはできません)

于 2009-03-10T16:26:00.880 に答える
1

この問題は、少なくとも2Dでは、可能な解決策のセットを生成すると思います。2Dの場合:

           |   
-----------+-----------
          /|\
         / | \
        /  |  \
       /---+---\VP
      /    |    \
     /     |     \
    /      |      \
   /       |       \
  /        |   --   \
 /         |    |    \
/          |    |     \

上の図では、垂直セグメントと水平セグメントがビュープレーン(VP)の同じ線に投影されます。これを縮尺どおりに描画すると、目から2本の光線が投影されていない線の各終点を通過していることがわかります。この線は多くの位置と回転にある可能性があります-棒を円錐に落とすと想像してください、それは任意の数の位置で動かなくなる可能性があります。

したがって、2D空間では、明確に定義されたセット内に無数のソリューションがあります。

これは3Dに適用されますか?

アルゴリズムは次のようになります。

  1. 射影行列を反転します
  2. 長方形の頂点を通過する4つの光線を計算し、歪んだピラミッドを効果的に作成します
  3. 長方形をピラミッドに合わせてみてください。これはトリッキーなビットであり、ピラミッド内の長方形を精神的に視覚化して、複数の方法で収まるかどうかを確認しようとしています。

編集:あなたがオブジェクトまでの距離を知っていれば、それは取るに足らないものになるでしょう。

V2を編集:

OK、Rnを世界空間の4つの光線とします。つまり、m.Rnで表される、逆行列を介して変換されます。ここで、| Rn | 1であります。したがって、長方形の4つのポイントは次のとおりです。

P1 = aR1
P2 = bR2
P3 = cR3
P4 = dR4

ここで、P1..P4は長方形の円周の周りの点です。これから、少しのベクトル数学を使用して、4つの方程式を導き出すことができます。

|aR1 - bR2| = d1
|cR3 - dR4| = d1
|aR1 - cR3| = d2
|bR2 - dR4| = d2

ここで、d1とd2は長方形の辺の長さであり、a、b、c、dは未知数です。

さて、上記の解決策がないかもしれません。その場合、d1をd2と交換する必要があります。各行を次のように展開できます。

(a.R1x-b.R2x)2 +(a.R1y-b.R2y)2 +(a.R1z-b.R2z)2 = d1 2

どこR1?とR2?は光線1と2のx/y / zコンポーネントです。x、y、zではなく、上記のaとbを解いていることに注意してください。

于 2009-03-10T16:35:08.283 に答える
1

ここではかなり簡潔な回答をしますが、私の一般的な傾向がわかると思います。3x4 の射影行列 (P) があると仮定しているので、P の正しいヌル ベクトルを見つけることでカメラの中心を取得できるはずです。これを C と呼びます。

C を取得すると、ベクトル CK、CL、CM、および CN と同じ方向の光線を計算できるようになります (つまり、C と K、L、M、または N の外積、たとえば CxK)。

あとは、次の 6 つの制約を満たす 3 つの点 (u1、u2、u3) を計算するだけです (任意に、KL と KN が隣接しており、d1 >= d2 の場合 ||KL|| >= ||KN|| であると仮定します)。 :

  1. u1 は CK にある、つまり u1.CK = 0
  2. u2 は CL 上にあります
  3. u3 は CN にあります
  4. ||u1-u2|| = d1
  5. ||u1-u3|| = d2
  6. (u1xu2).(u1xu3) = 0 (直交性)

ここで、AB = ベクトル A と B の内積 ||A|| = A のユークリッド ノルム AxB = A と B の外積

于 2009-03-20T07:10:00.553 に答える
0

m_oLoginは正しいです。私があなたの目標を理解しているなら、カメラが撮る画像は平面Pですよね?もしそうなら、あなたは2D画像からK、L、M、Nを測定しています。A、B、C、およびDを再構築するには、射影行列の逆行列が必要です。

今までにこれを行ったことはありませんが、GPSが3つの衛星修正だけで行うのと同じ問題に遭遇する可能性があることに気付きます。2つの可能な解決策があります。1つは「Pの後ろ」、もう1つは「前」です。右?

于 2009-03-10T16:34:18.533 に答える
0

射影行列は遠近法とスケールの両方をカプセル化するため、逆から求めるソリューションが得られます。パースペクティブをカプセル化するだけであり、正しいスケールを選択するには何か他のものが必要であると想定していると思います。

于 2009-03-10T16:53:02.263 に答える