0

http://www.cvg.reading.ac.uk/PETS2001/pets2001-cameracalib.html#dataset2にあるカメラのキャリブレーション データの解釈に問題があり、 誰か助けてくれるかどうか疑問に思っていました。基本的に私はこの例を理解しており、3D オブジェクトの 2D 画像座標を計算しようとすると正しく動作します。私が取得した 2D 座標は、画像の境界内にあります。これは良いことです。

問題は、作業を他のマトリックスに適用しようとするときです。全体像を把握するために、これらのキャリブレーション マトリックスは、次の場所にあるビデオに適用されます。

たとえば、Dataset 2 Camera 2 の変換行列を考えてみます。

FocalLength f=792
ImageCentre (u,v) = (384, 288)
Homogeneous Transform T =



 -0.94194 0.33537 -0.01657 0.00000;
    -0.33152 -0.93668 -0.11278 0.00000;
    -0.05334 -0.10073 0.99348 0.00000;
    11791.10000 22920.20000 6642.89000 1.00000;

データセットの上部にある指示に従って、最初のステップは行列を反転して取得することです。

  -0.94194 -0.33152 -0.05334 0;
    0.33538 -0.93669 -0.10074 0;
    -0.01657 -0.11277 0.99348 0;
    3529.67074 26127.15587 -3661.65672 1;

次に、ワールド座標の点 x = (0,0,0) を例にとります。

xT = (3529.67074,26127.15587,-3661.65672) and the point in 2D coordinates is given by

(792 x 3529.67074 / -3661.65672 + 384, 792 x 26127.15587 / -3661.65672 + 288)
= (-763.45 + 384 , -5651.187 + 288)
= (-379.45, -5363.187)

答えは画像の境界内にあるはずなので、この答えは明らかに間違っています。実際、この情報を自分のプログラムで使用しようとしたところ、3D ワールドの地面上の点が 2D 画像座標に正しく変換されませんでした。

作業を正しく適用する方法について誰かが何かアイデアをいただければ幸いです。

ありがとう、

4

2 に答える 2

0

あなたの計算に間違いはないと思います。画像の境界から外れた投影が得られた場合、それはカメラがその点を見ることができないことを意味します。

あなたが言及したウェブページのデータから、カメラ位置のプロットをいくつか作成しました。(X,Y,Z) はワールド リファレンス フレームの軸で、(x,y,z) はカメラ リファレンス フレームの軸です。

以下は、あなたが言及したWebページの最初の例であり、ポイント(0,0,0)の投影を行って(244、253.8)を取得します。z 軸の向きに注意してください。カメラは、ワールド参照フレームの原点に向かっています。

ここに画像の説明を入力

データセット 2、カメラ 2 の場合、z 軸の向きに注意してください。カメラは、ワールド リファレンス フレームの原点を見ることができません。

ここに画像の説明を入力

この向きが意味をなすかどうかは、アプリケーションと (X、Y、Z) 参照フレームの選択によって異なります。データセット 2 のカメラ 1 の向きも同様です。

于 2013-10-09T22:36:17.130 に答える