0

私は現在、速度(表面を通過するカメラの速度)を測定するために、地面(固定高さ)に垂直に面した低解像度カメラの使用を研究しています。C++ で OpenCV 2.1 を使用します。

背景全体が連続するフレーム間で常に移動、平行移動、および/または回転するため、フレームの変位を「使用可能な値」形式で決定するのに最も適した方法は何ですか? (フレームの変位を返す関数?)次に、カメラの高さとキャプチャされたフレーム領域(現実世界のフレームの寸法)に基づいて、フレームの変位に基づいて現実世界の変位を計算できます。測定された時間間隔の速度を計算します。

カメラの高さに基づいて、フレームの変位 (またはピクセルのセットの変位) を距離の変位に変換する方法、またはサンプル コードが利用可能かどうかを判断しようとしています。

ありがとう、ジョシュ。

4

2 に答える 2

0

それは、コンピューター ビジョンの知識に依存します。まず、opencv が提供できるものを使用します。feature2d モジュールをご覧ください。

必要なのは、最初に特徴点 (sift や surf など) を抽出し、その組み込みのマッチング アルゴリズムを使用して、2 つのフレームから抽出された点を一致させることです。マッチごとにいくつかの制約が与えられ、過飽和の Ax=B を解決することになります。

もちろん、実験はオフラインで行います。つまり、最初にビデオを撮影してから、単一の画像を操作します。

アップデート:

マルチカメラ キャリブレーションの場合、目標は各カメラの 3D 位置を特定することです。これは、まさにあなたが持っているものです。単一のカメラを移動する代わりに、単一のカメラでキャプチャされたビデオ内の画像の数と同じ数のカメラがあり、各カメラの位置の 3D 位置を知りたいとします。これは、によって撮影された各画像の位置を表します。あなたの単一の移動カメラ。

世界の任意の 3D ポイントを画像の 2D ポイントにマッピングできるマトリックスがあります。wiki を参照してください。カメラ マトリックスは、内部パラメーターと外部パラメーターの 2 つの部分で構成されます。私は (おそらく不正確に) 固有パラメーターを内部マトリックスと呼びました。内部パラメータは単一のカメラの静的パラメータ (焦点距離など) で構成され、外部パラメータはカメラの位置と回転で構成されます。

カメラの固有パラメータと一致した点を取得したら、これらの投影方程式を互いに積み重ねて、一致したすべての点の実際の 3D 位置とすべての外部パラメータの両方についてシステムを解くことができます。パラメーター。

于 2012-04-30T08:55:02.313 に答える
0

上記のように関心点があれば、opevcv のfindHomographyで並進変換を見つけることができます。

また、変換がやや小さく、ほぼ線形であると想定できる場合は、連続する 2 つのフレームの画像ピクセルを比較して、最適な一致を見つけることができます。十分なダウンサンプリングがあれば、これにはあまり時間がかからず、私の経験からするとかなりうまく機能します。

幸運を!

于 2012-06-20T15:49:46.320 に答える