5

私は現在、単眼カメラを使用して検出された 2D 関心点の 3D 座標を推定する必要があるプロジェクトに取り組んでいます。

より正確には、入力画像シーケンス (キャリブレーション済み) があり、新しい画像を受信するときに、左 (前) の画像と右の現在の画像の間のポイントを三角測量して 3D ポイントを取得する必要があります。

これを行うには、次の手順に従います。

  1. 現在の画像のキーポイントを抽出する
  2. 現在の画像と前の画像との対応の確立
  3. RANSAC と高さ点アルゴリズムを使用したエッセンシャル マトリックス E の計算
  4. E から変換行列 R と並進ベクトル T を抽出する
  5. 直交回帰による三角測量を使用して 3D ポイントを計算する

結果の 3D ポイントは、画像に再投影すると正しくありません。しかし、三角形分割された点は、不定の倍率までしか定義されていないことを読みました。

私の質問は次のとおりです。このコンテキストで「スケールアップ」とはどういう意味ですか? そして、シーンのワールド座標フレームで実際の 3D ポイントを取得するソリューションは何ですか?

どんな助けにも感謝します!

4

2 に答える 2

1

バグがあるか、必須マトリックスの推定が不十分である可能性があります。未知の倍率は、表示される再構成エラーの原因ではありません。グローバル スケールに関係なく、適切な一致から推定された 3 次元ポイントを有効な必須マトリックスを使用して画像ペアに投影した結果は、一貫している必要があります。

このコンテキストでの「スケールアップ」の意味は、キャリブレーションされたカメラを使用しても、シーンをすべてが同じ量だけ大きくまたは小さくなっているシーンに置き換えた場合、必須行列を推定する標準的な方法で同じ結果が得られることです。このあいまいさは、たとえばシーン内で既知の物理サイズのオブジェクトを識別し、計算された 3D 再構成がそのサイズと一致することを強制することによって、事後に取り除くことができます。

于 2014-05-22T14:19:28.590 に答える
0

Fundamental Matrx/Essential Matrix を使用して Point Cloud を抽出する Structure from Motion で作業した私の経験は、異なる Point Cloud サイズにつながります。基本的なマトリックス/本質的なマトリックスが有効であるため、私はそれをどのように理解していますか

x1^t * F * x2 = 0.

この方程式は、F のスケールが変化した場合にも有効です。したがって、スケール不変性はありません。

非常にうまく機能したのは、以前の古い画像ペアから計算された既存の点群から新しいカメラ位置を抽出することです。そのために、以前に画像の 2D 3D 対応を覚えています。これは、PerspectivenPoint Camera Pose Estimation (PnP) と呼ばれます。OpenCV にはそのためのメソッドがいくつかあります。

運動からの構造の結論は次のとおりです。

モーションから構造化、与えられた 2D 画像ポイントの対応関係から 3D ポイント クラウドを再構築

于 2014-05-26T10:38:32.377 に答える