4

カメラと認識された「オブジェクト」との間の距離を計算したいと思います。認識された「オブジェクト」は、たとえばホワイト ボード上の黒い長方形のステッカーです。長方形(x、y)の値を知っています。

元の長方形の値と、カメラで撮影した長方形の写真の値を使用して距離を計算するために使用できる方法はありますか?

フォーラムで回答を検索しましたが、これらの属性を使用して距離を計算するために指定されたものはありませんでした。

Aldebaran Robotics の Nao というロボットに取り組んでおり、OpenCV を使用して黒い四角形を認識する予定です。

4

3 に答える 3

2

ターゲットの画像が占める角度を計算できれば、ターゲットまでの距離はその角度に比例するはずcotです1/tan。画像のピクセル数がおおむね角度に対応していることがわかるはずですが、完全に線形であるとは思えません。特に近くではそうです。

カメラ レンズの動作がこの測定値に影響を与える可能性が高いため、正確な設定によって異なります。

いくつかの距離でターゲットのサイズを測定し、散布図をプロットしてみませんか? 次に、データに曲線を当てはめて、特定のシステムのサイズ->距離関数を取得できます。カメラが「理想的な」カメラに近い場合、このグラフは のようになり、一致するとcotの値を見つけることができるはずです。abdist = a * cot (b * width)

この実験を試してみたら、ここに答えを投稿して、他の人が恩恵を受けられるようにしてみませんか?

[編集: 「理想的な」カメラに関するメモ]

カメラ画像が「リアル」に見えるようにするには、画像は目の前にある平面への投影に近似する必要があります (カメラ画像は、目の前に平面画像を保持することによって表示されるため)。トレーシング ペーパーを目の前に置いて、その紙にオブジェクトのシルエットをスケッチすることを想像してみてください。このページの 2 番目の図は、私が言いたいことの一種を示しています。これを実現するカメラを「理想の」カメラと表現するかもしれません。

もちろん、実生活では、カメラはトレーシング ペーパーではなく、レンズで機能します。非常に複雑なレンズ。このページのレンズ図をご覧ください。生涯をかけて研究できるさまざまな理由から、トレーシングペーパーの例がすべての条件下で機能するのとまったく同じように機能するレンズを作成することは非常に難しい. 詳細を知りたい場合は、この wiki ページから始めて読み進めてください。

したがって、ピクセルの長さと距離の間の正確な関係を計算できる可能性は低いです。それを測定し、曲線に適合させる必要があります。

于 2012-06-21T09:22:03.043 に答える
1

大きな話題です。単一の画像から先に進みたい場合は、A. Criminisi によるこの古い論文を参照してください。詳細については、彼の博士号をお読みください。論文。次に、「射影幾何学」セクションで OpenCV ルーチンを試してみます。

于 2012-06-22T12:09:34.770 に答える
-2

私は画像/オブジェクト認識にも取り組んでいます。オブジェクト、人、車、本、ロゴ、木、花などを認識する Python プログラムの Android アプリ (Android に移植) をリリースしました。 Google Play で 99 セントのテストとして公開します。興味のある方はこちらのリンクをご覧ください。動作中のビデオもあります: https://play.google.com/store/apps/details?id=com.davecote.androideyes

楽しみ!:)

于 2012-07-20T01:08:00.937 に答える