カメラのキャリブレーション/ピンホールカメラモデルと3D位置の計算


10

キャリブレーションされたカメラと固有のパラメーターがあります。また、現実世界の平面上の点(世界の原点)に関連する外部パラメーターもあります。この点は、法線が[0,0,1]の実世界座標[0,0,0]の原点として設定しました。

これらの外部パラメーターから、これを使用して、ワールドプレーン3D座標でのカメラの位置と回転を計算できます:http : //en.wikipedia.org/wiki/Camera_resectioning

これで、[x、y]の画像座標を抽出した2番目のポイントができました。ワールド座標系でこのポイントの3D位置を取得するにはどうすればよいですか?

ここでの直感は、カメラの光学面(上記のように3Dの位置になりました)からカメラの画像面[x、y]を通過する光線を追跡する必要があると思います。上部で定義した実世界の平面を通して。

法線を知っていて、その平面上を指すように、世界座標の3Dレイを平面と交差させることができます。私が得られないのは、ピクセルを介してイメージプレーンを離れるときの3Dの位置と方向を見つける方法です。私を混乱させているのは、異なる座標系による変換です。


この答えを確認してください。あなたが何かを完了することができる/かもしれないと思うなら、私に教えてください。dsp.stackexchange.com/a/2737/1473
Jav_Rock

回答:


5

あなたが外因性を持っていれば、それは非常に簡単です。外因性を持つことは、「カメラポーズ」を持つことと同じであり、ホモグラフィを持つことと同じです。Stackoverflowでこの投稿を確認してください。

カメラポーズとも呼ばれる外因性があり、平行移動と回転として記述されます。

Pose=[R|t]=[R11R12R13txR21R22R23tyR31R32R33tz]

次のようにしてPoseからホモグラフィを取得できます。

H=1tz[R1xR2xtxR1yR2ytyR1zR2ztz]

次に、ホモグラフィにポイントを掛けることにより、2Dポイントを対応する3Dポイントに投影できます。

p2D=[xy1] addそれらを均一にするz=1

p3D=Hp2D

p=p/p(z) ポイントを正規化


2

2番目のポイントの3D位置はわかりません。これは、カメラの中心から無限遠までの光線上の任意の点です。

次のことができます。

  • 実際のシーンに似た定義済みの3Dスペースを作成します
  • 異なる角度からの光線の交差を使用して、異なる角度から画像のより多くのポイントを取得し、3Dポイントの近似値を取得できます。

待って。3D光線が平面と交差する3Dワールドポイントを確実に見つけることができますか?私は3Dワールド座標とその平面の3Dワールド法線を知っているので、.....見つけようとしている3Dポイントは、その平面と交差するポイントです!! (申し訳ありませんが、説明が不十分だったと思います)
Cheetah

平面とはどういう意味ですか?画像平面、またはゼロ世界座標の平面?後者の場合、交差を計算できますが、これは3dシーンが3dではなく2d :)であることを意味します(平面であるため)。
Geerten 2012年

ああ、すみません、それは私には起こりませんでした。あなたの言っていることが理解できます。視覚的にはあまり意味がありません。だから、はい、私のシーンは実際には「2d」です。これは、イメージプレーンとリアルワールドプレーンがあり、リアルワールドの原点[0,0,0]があり、リアルワールドの法線が[0,0、 1]したがって、この実世界の平面上にあるすべての点は、[x、y、0]の形式です。ax + by + cz + d = 0でも交差を計算できることはわかっていますが、これが問題です。(次のコメントで継続)
チーター

カメラセンター/原点から始まる光線があり、現実世界[x、y、z]と現実世界の法線[nx、ny、nz]があります。この点から、[u、v]で画像平面と交差し、[x、y、0]で実世界の平面と交差する光線を発射する必要があります(このx、yが取得したいものです)。私が問題を抱えているのは、最初のビット、つまりイメージプレーンとの交点です。どうすればいいのか分かりませんか?
チーター、2012年

あなたは見たいかもしれません:en.wikipedia.org/wiki/Line-plane_intersection
Geerten

2

2つのオプションがあります。逆投影または2つの平面間の投影(ホモグラフィ)を使用します。

P

P=K[RRC]Xreprojected=P+x

CXV=ω[XYZ1]Tω=1

u=XreprojectedCv=uuL(t)=C+tv

平面 場合、方程式 for。Π=[π1π2π3π4]T,π1X+π2Y+π3Z+π4=0L(t)=Πt

ホモグラフィを使用する場合、撮像面とカメラセンサーの面の間の投影として定義されるホモグラフィ行列を計算する必要があります。3×3H

Xplane=[XY01]Tx=PXplane=H[XY1]T

がわかっている場合: X p l a n e = H 1 xx

Xplane=H1x

カメラのキャリブレーション中にを計算しなかった場合(おそらく、直接線形変換、DLTを使用)、次の公式を使用できます。H

H=R+1dTNT

ここで、は平面からのカメラの距離であり、です。(Ma、Soatto、Kosecká、Sastry-画像から幾何モデルへの3Dビジョンへの招待、p.132)T = R CdT=RC

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.