56

移動中の車両の正面からビデオファイルを録画しました。オブジェクトの検出と認識にOpenCVを使用しますが、1つの側面に固執しています。認識されたオブジェクトからの距離をどのように判断できますか。

現在の速度と実際のGPS位置を知ることができますが、それだけです。追跡しているオブジェクトについては、何も推測できません。これを使用して、オブジェクトと衝突することなくオブジェクトを追跡および追跡することを計画しています。理想的には、このデータを使用してオブジェクトの実際の位置を導き出します。これは、カメラからオブジェクトまでの距離を特定できれば実行できます。

4

8 に答える 8

58

あなたの問題は現場ではかなり標準的です。

まず、

カメラを調整する必要があります。これは、オフライン(作業がはるかに簡単になります)またはセルフキャリブレーションを介してオンラインで実行できます。

オフラインで調整してください。

第二に、

カメラKのキャリブレーション行列を取得したら、連続するシーンでのカメラの投影行列を決定します(他の人が述べているように視差を使用する必要があります)。これは、このOpenCVチュートリアルで詳しく説明されています。

GPS情報を使用して、連続するシーン(ほとんどのGPSユニットに固有のノイズが原因で問題になる可能性があります)のカメラ間の相対的な向きを見つける必要があります。つまり、チュートリアルで説明したRt、または回転と平行移動です。 2台のカメラの間。

これらすべてを解決すると、2つの投影行列が作成されます---これらの連続するシーンでのカメラの表現。これらのいわゆるカメラマトリックスの1つを使用して、シーン上の3DポイントMを、ピクセル座標m上のカメラの2Dイメージに「投影」できます(チュートリアルのように)。

これを使用して、ビデオで見つかった2Dポイントから実際の3Dポイントを三角測量します。

第三に、

関心点検出器を使用して、関心のあるオブジェクト上にあるビデオ内の同じ点を追跡します。いくつかの検出器が利用可能です。Shi-TomasiコーナーHarrisなどのの検出器もいくつかあるOpenCVがあるので、SURFをお勧めします。

第四に、

シーケンス全体でオブジェクトのポイントを追跡し、対応する2Dピクセル座標を取得したら、投影行列と2Dポイントを指定して、最適な3Dポイントを 三角測量する必要があります。三角測量

上の画像は、不確実性と最適な3Dポイントの計算方法をうまく捉えています。もちろん、あなたの場合、カメラはおそらくお互いの前にあります!

ついに、

オブジェクト上の3Dポイントを取得すると、カメラの中心(ほとんどの場合は原点)とポイントの間のユークリッド距離を簡単に計算できます。

ノート

これは明らかに簡単なことではありませんが、それほど難しいことでもありません。HartleyとZissermanの優れた本MultipleViewGeometryをお勧めします。この本では、起動するMATLABコードを使用して上記のすべてを明確に詳細に説明しています。

楽しんで、質問を続けてください!

于 2010-01-28T03:24:43.340 に答える
39

動画を移動する場合は、時間視差を使用してオブジェクトの相対距離を決定できます。視差:(定義)。

効果は私たちの目で得られるものと同じであり、同じオブジェクトをわずかに異なる角度から見ることで奥行きの知覚を得ることができます。移動しているので、2つの連続するビデオフレームを使用して、わずかに異なる角度を取得できます。

視差計算を使用して、オブジェクトの相対的なサイズと距離(相互の相対)を決定できます。ただし、絶対サイズと距離が必要な場合は、既知の参照ポイントが必要になります。

また、計算を行うには、移動する速度と方向(およびビデオフレームレート)を知る必要があります。視覚的なデータを使用して車両の速度を導き出すことができるかもしれませんが、それは複雑さの別の次元を追加します

この技術はすでに存在しています。衛星は、短期間に撮影された複数の画像を比較することにより、地形の隆起(高さ)を決定します。視差を使用して、太陽の周りの地球の軌道のさまざまなポイントで夜空の写真を撮ることにより、星の距離を決定します。飛行機の窓から2枚の写真を連続して撮ることで3D画像を作成することができました。

正確なテクノロジーと計算(頭のてっぺんから知っていたとしても)は、ここで説明する範囲をはるかに超えていますまともな参考文献を見つけたら、ここに投稿します。

于 2010-01-25T20:40:33.140 に答える
5

既知の距離だけ離れた2つの異なるフレーム上の同じオブジェクト内の同じポイントを識別する必要があります。各フレーム内のカメラの位置がわかっているので、ベースライン(2つのカメラ位置間のベクトル。既知のベースラインと識別されたポイントまでの角度から三角形を作成します。三角法は、の未知の辺の長さを示します。ベースラインの既知の長さ、およびベースラインと未知の辺の間の既知の角度の三角関数。

2台のカメラを使用することも、1台のカメラで連続して撮影することもできます。したがって、車両が1 m / s移動していて、毎秒名声を得る場合、連続フレームは1mのベースラインを提供します。これは、たとえば5mまでのオブジェクトの距離を測定するのに適しています。使用するフレームよりも遠くにオブジェクトを配置する必要がある場合は、さらに離れている必要があります。ただし、遠くにあるオブジェクトはより長く表示されます。

F1のオブザーバーは、速度ベクトルに対して角度a1のTでターゲットを確認します。オブザーバーは距離bをF2に移動します。角度a2でTにターゲットを表示します。

F1のターゲットからr1の範囲を見つけるために必要です

コサインの三角法の恒等式は

Cos(90 – a1)= x / r1 = c1

Cos(90-a2)= x / r2 = c2

Cos(a1)=(b + z)/ r1 = c3

Cos(a2)= z / r2 = c4

xは、観測者の速度ベクトルに直交するターゲットまでの距離です。

zはF2からxとの交点までの距離です

r1を解く

r1 = b /(c3 –c1。c4/ c2)

于 2010-01-25T20:27:07.430 に答える
4

ステレオ視差マップを使用します。多くの実装が浮かんでいます。ここにいくつかのリンクがあります:http: //homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/OWENS/LECT11/node4.html

http://www.ece.ucsb.edu/~manj/ece181bS04/L14(morestereo).pdf

あなたの場合、ステレオカメラを持っていませんが、深さはビデオ http://www.springerlink.com/content/g0n11713444148l2/を使用して評価できます。

上記があなたに最も役立つかもしれないものになると思います。

研究はこれまでに進んでおり、単一の単眼画像から深度を評価できるようになっています(十分な範囲ではありませんが) http://www.cs.cornell.edu/~asaxena/learningdepth/

于 2010-01-27T04:24:27.443 に答える
4

視差を検出できるように2台のカメラ。それは人間がすることです。

編集

詳細については、ravenspointの回答を参照してください。また、スプリッターを備えた1台のカメラでおそらく十分であることを覚えておいてください。

于 2010-01-25T20:03:04.097 に答える
2

私が間違っている場合は誰かが私を訂正してください、しかしあなたが単に単一のカメラを使用し、単にソフトウェアソリューションに依存するつもりなら、あなたがするかもしれないどんな処理も誤検知を起こしやすいでしょう。映画では、実際に知覚距離にあるオブジェクトと、その距離にしか存在しないように見えるオブジェクト(「強化遠近法」など)を区別できる処理があるかどうかは非常に疑わしいです。

超音波センサーを追加できる可能性はありますか?

于 2010-01-25T20:03:51.630 に答える
1

まず、カメラを調整して、カメラプラン内のオブジェクトの位置と実際のプラン内のオブジェクトの位置の関係を取得する必要があります。単一のカメラを使用している場合は、「オプティカルフローテクニック」を使用できます。 2台のカメラでは、三角測量法を使用して実際の位置を見つけることができます(オブジェクトの距離を見つけるのは簡単です)が、2番目の方法のプローブはマッチングです。つまり、オブジェクトの位置を見つける方法'x 'カメラ1での位置がすでにわかっている場合は、カメラ2で'、ここでは'SIFT'アルゴリズムを使用できます。私はちょうどあなたにそれがあなたを助けることができることを望むいくつかのキーワードを与えました。

于 2013-04-25T02:56:11.290 に答える
0

カメラの視野に既知のサイズのオブジェクトを配置します。そうすれば、角距離を測定するためのより客観的な測定基準を持つことができます。2つ目の視点/カメラがないと、サイズ/距離の推定に制限されますが、少なくとも完全な推測にはなりません。

于 2010-01-25T20:08:25.247 に答える