問題タブ [pose-estimation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opencv - 姿勢推定: solvePnP とエピポーラ ジオメトリが一致しない
特定の距離を置いて配置された異なる向きのカメラでシーンを見ている、相対的なカメラの姿勢推定の問題があります。最初に、5 ポイント アルゴリズムを使用して必須行列を計算し、それを分解して、カメラ 2 とカメラ 1 の R と t を取得します。
画像ポイントの 2 つのセットを 3D に三角測量し、3D-2D 対応に対して solvePnP を実行してチェックを行うのは良い考えだと思いましたが、solvePnP から得られる結果はかなり外れています。スケールはフレームごとに変わる可能性があるため、ポーズを「洗練」するためにこれを実行しようとしています。とにかく、あるケースでは、カメラ 1 とカメラ 2 の間で Z 軸に沿って 45 度の回転があり、エピポーラ ジオメトリの部分から次の答えが得られました。
一方、ソルブPnP..
camera2 の rvecs と camera 1 の tvec で問題が発生しています。ポイントの三角形分割と solvePnP を含む私のコードは次のようになります。
そして、ロドリゲスを介して rvecs を変換してオイラー角を取得しています。どんなポインタも役に立ちます。ありがとう!
opencv - 同じポーズからのポイントのドリフト 2 ビュー三角測量
openCV の三角測量機能で奇妙な問題が発生しています。私の 2 ビュー ポーズ推定テストでは、次のようにしました。
ケース 1: 1 台のカメラで 2 つのビューからシーンの写真を撮り、基本的な行列を計算してシーンを三角測量します。これはかなりうまくいきました。
ケース 2: 2 台のカメラ (両方ともキャリブレーション済み) でこれを実行しようとしていますが、三角測量に失敗しています。同じポーズの画像ペアの場合、三角点は多かれ少なかれ同じはずですが (実際にはケース 1 でした)、現在はドリフトしています。
例:
ここで何が間違っていますか?次の点のセットについて、triangulatePoints は別の奇妙な推定を行います。
opencv - 回転行列のわずかな変更により、ステレオ再構成が完全に破壊されます
2 台のカメラの iamge 機能と射影行列 (機能マッチングと必須行列計算によって計算) に基づいて 3D でシーンを再構築しようとしています。これらはすべて OpenCV で行われます。私はこれで奇妙な問題に遭遇しています。
主に、ポイントの三角測量とシーン再構成の精度は、R マトリックスに非常に敏感です。これをテストするために、(ステレオをシミュレートするために) 2 つの射影行列を介して伝達されるシミュレートされたオブジェクト ポイントを使用してテストを実行しました。オブジェクト ポイントは 6x6 の正方形です。x:{0 から 0.2 刻みで 1}、y:{0 から 0.2 刻みで 1}、z:{すべて 10}。どちらの場合も P1 は [I|0]、P2 は [R|t] です。
これら 2 つの R 行列は、正確であると見なされるほど十分に近いと思いました。しかし、三角測量の結果はそうではないようです..
R1|t1 を使用:
R2|t2 を使用:
t の精度は、この程度の問題を引き起こしません。確かに、回転の〜0.01の違いは、そのような悪い再構築を引き起こすべきではありません..ここで何がうまくいかないのか、誰かが光を当てることができますか? opencv (cv::triangulatePoints()) に組み込まれている方法と、Hartley and Zisserman の本で説明されている反復最小二乗法です。私のパイプラインは次のとおりです。入力画像ポイント -> K 行列を使用して均質化 -> 三角測量 -> 取得した 4 次元ポイントを「非均質化」して 3 次元を取得します。御時間ありがとうございます!
opencv - 2D と 3D で対応する 2 台のカメラ間の相対的な姿勢を見つける
キャリブレーションされたカメラで 2 つの異なるポーズから取得した 2 つの画像があります。また、画像間の 2D 点の対応もあります。一部のポイントには深度情報があるため、それらの 3D 座標もわかっています。画像間の相対的なポーズを計算したい。
2D ポイントから基本行列または必須行列を計算できることを知っています。また、PnP は 2D から 3D への対応でポーズを見つけることができ、3D ポイントの対応だけを取得することもできることを知っています。ただし、利用可能なすべての情報を利用するアルゴリズムは知りません。ありますか?
opencv - OpenCVを使用してsolvePnPで距離を推定する方法は?
カメラとキャリブレーションに使用したチェス盤の間の距離を推定しようとしました。しかし、チェス盤上のポイントの Z 値 (993 - 1021 mm) には大きな違いがあります。チェス盤はカメラと平行なので、カメラの中心とチェス盤の平面上の任意の点の間の Z 値は同じになるはずです。
私は何を間違えましたか?
コード:
チェス盤のあるイメージ