1

画像内のオブジェクトを数えています。近視点と遠視点でのオブジェクトのピクセルサイズと、画像内のこれら2つのオブジェクトの位置がわかっている線形補間を実行したいと思います。画像の下部にある画像は、撮影したカメラの近くにあるため、大きくなっています。

分析する画像は、この質問と同じです... リンクテキスト

線形補間は、ここでは上から下への1つの平面でのみ機能することを理解しているので、それを適切に行う方法についてのアイデアがあればよいでしょう。それは修士論文のためのものであり、私は「ハード」ビットを実行しました-画像分類、データ収集、しかし私はちょうどJava(現在使用中)とR(現在は統計用)の間の精神的なレンガの壁にぶつかりました、助けていただければ幸いです!

4

2 に答える 2

0

ホモグラフィは、カメラからのオブジェクトの距離を、透視投影から生じるサイズの変化に変換する数学的方法です。

基本的に、カメラ画像に表示されるオブジェクトのサイズは、オブジェクトの実際のサイズをカメラからのオブジェクトの距離で割った値に比例します。

同じ実世界のサイズを持つ2つのオブジェクトAとBがあるとしましょう。Aは距離DAあり、Bは距離DBにあります。カメラ画像に表示されるサイズは、HAHBです

距離(1-α)DA +(α)DBにある、 AおよびBと同じ実世界サイズのオブジェクトCの場合、カメラ画像上のそのサイズは次の式で与えられます。

于 2010-08-21T20:15:54.063 に答える
0

したがって、3D投影方程式を使用し、それらを逆方向に処理して、シーン内のオブジェクトのx、y、zを見つけます。したがって、オブジェクトのサイズ、カメラの焦点距離が与えられると、フレーム内のオブジェクトのx、y、zを計算できます。

私はカメラについていくつかの仮定をします(回転なし、平行移動なし、カメラはz軸の下の0、0、0に座っています)。

image.x = model.x * camera.focalLength / model.z
image.y = model.y * camera.focalLength / model.z

あなたの周りにそれらをひっくり返すと:

model.x = image.x * model.z / camera.focalLength;
model.y = image.y * model.z / camera.focalLength;

これは、オブジェクトがカメラから離れていると思われるポイント(つまり、model.z)までの距離がわかっていることを前提としています。同様に、カメラからオブジェクトまでの距離を計算する場合は、model.zを次のように計算できます。

model.z = model.x * camera.focalLength / image.x
model.z = model.y * camera.focalLength / image.y

トリックは、model.x、この場合はmodel.yに何を使用すべきかを理解していると思います。オブジェクトの幅またはオブジェクトの高さのいずれかを使用すると、オブジェクトの一定の幅と、距離が変化するときのシーン内のオブジェクトの幅との関係を考え出すことができます。

model.z = model.width * camera.focalLength / image.width;
model.z = model.height * camera.focalLength / image.height;

その答えに数日間座っていたので、私は自分の事実を確認します。しかし、それは他の投稿とほぼ一致しています。

于 2010-08-24T01:12:21.473 に答える