카메라 보정 / 핀홀 카메라 모델 및 3D 위치 계산


10

보정 된 카메라가 있고 고유 매개 변수가 있습니다. 또한 실제 세계의 평면 표면에있는 점 (세계 원점)을 기준으로 외부 매개 변수가 있습니다. 이 점은 실제 좌표 [0,0,0]에서 법선 [0,0,1]의 원점으로 설정했습니다.

이 외부 매개 변수에서 다음을 사용하여 월드 평면 3D 좌표에서 카메라 위치 및 회전을 계산할 수 있습니다. http://en.wikipedia.org/wiki/Camera_resectioning

이제 [x, y]의 이미지 좌표를 추출한 두 번째 점이 있습니다. 절대 좌표계에서이 점의 3 차원 위치를 얻으려면 어떻게해야합니까?

여기서 직관은 카메라의 광학 중심 (위에서 설명한대로 3D 위치를 가짐)에서 카메라의 이미지 평면 [x, y]을 통과 한 광선을 추적해야한다는 것입니다. 내가 정의한 실제 세계 비행기를 통해

이제는 평평한 점을 알고 그 평면을 가리키면서 평면과 월드 좌표 3D 광선을 교차시킬 수 있습니다. 내가 얻지 못하는 것은 픽셀을 통해 이미지 평면을 떠날 때 3D 위치와 방향을 찾는 방법입니다. 혼란스러운 다른 좌표계를 통한 변형입니다.


이 답변을 확인하면 도움이 될 수 있습니다. 어떤 것이라도 완성 될 수 있다고 생각되면 말해주십시오. dsp.stackexchange.com/a/2737/1473
Jav_Rock

답변:


6

외 재적 인 경우 매우 쉽습니다. 외인성을 갖는 것은 "카메라 자세"를 갖는 것과 동일하며 호모 그래피를 갖는 것과 동일합니다. 이 게시물 을 stackoverflow에서 확인하십시오 .

번역 및 회전으로 설명되는 카메라 포즈라고도하는 외부 함수가 있습니다.

Pose=[R|t]=[R11R12R13txR21R22R23tyR31R32R33tz]

이 방법으로 포즈 에서 호모 그래피 를 얻을 수 있습니다 .

H=1tz[R1xR2xtxR1yR2ytyR1zR2ztz]

그런 다음 Homography에 점을 곱하여 2D 점을 해당 3D 점으로 투영 할 수 있습니다.

p2D=[xy1] 더하다 z=1 그것들을 균질하게 만들기 위해

p3D=Hp2D

p=p/p(z) 점을 정규화


여기서 p (z)는 무엇을 의미합니까?
Belal Homaidan

3

두 평면 사이에서 투영 또는 후면 투영을 사용하는 두 가지 옵션이 있습니다 (호모 그래피).

P

P=K[RRC]Xreprojected=P+x

CXV=ω[XYZ1]Tω=1

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

비행기 경우 방정식 대한 .Π=[π1π2π3π4]T,π1X+π2Y+π3Z+π4=0L(t)=Πt

호모 그래피를 사용하기로 결정한 경우 이미징 된 평면과 카메라 센서 평면 사이의 투영으로 정의 된 호모 그래피 행렬 를 계산해야합니다 .3×3H

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

x

Xplane=H1x

H

H=R+1dTNT

dT=RC


2

두 번째 점의 3D 위치를 알 수 없습니다. 카메라 중심에서 무한대까지 광선의 점이 될 수 있습니다.

다음을 수행 할 수 있습니다.

  • 실제 장면과 유사한 미리 정의 된 3D 공간을 만듭니다.
  • 다른 각도에서 광선의 교차점을 사용하여 다른 각도에서 더 많은 이미지 포인트를 얻으면 3D 포인트의 근사치를 얻을 수 있습니다.

잠깐만 3d 광선이 평면 표면과 교차한다는 3d 월드 포인트를 찾을 수 있습니까? 내가 3D 세계 좌표와 그 평면의 3D 세계 법선을 알고 있듯이 ..... 내가 찾고자하는 3D 점은 평면 표면과 교차하는 점입니다 !! (죄송 합니다만 설명이 충분하지 않다고 생각합니다)
Cheetah

평면 표면이란 무엇입니까? 이미지 평면 또는 제로 월드 좌표의 평면? 후자의 경우 교차점을 계산할 수 있지만 이는 3d 장면이 3d가 아니라 2d :) (평면이기 때문에)임을 의미합니다.
Geerten

그래, 미안, 나 한테 그런 일은 없었어 나는 당신이 말하는 것을 이해합니다. 그것은 시각적으로 나에게 의미가 없습니다. 예, 이미지 평면이 있고 실제 원점 [0,0,0]이 있고 실제 법선 [0,0,]이있는 실제 평면이 있으므로 장면이 실제로 "2d"입니다. 따라서이 실제 세계 평면에있는 모든 점은 [x, y, 0]의 형태입니다. ax + by + cz + d = 0이지만 교차점을 계산할 수 있다는 것을 알고 있지만 이것이 문제가됩니다. (다음 댓글에서 계속)
Cheetah

실제 카메라 [x, y, z]와 실제 노멀 [nx, ny, nz]이있는 카메라 센터 / 원점에서 시작하는 광선이 있습니다. 이 시점에서 [u, v]에서 이미지 평면과 교차 한 다음 [x, y, 0]에서 실제 평면과 교차하는 광선을 발사해야합니다 (이 x, y를 얻으려고합니다). 내가 문제가있는 것은 첫 번째 비트, 이미지 평면과의 교차점입니다. 내가 어떻게하는지 볼 수 없습니까?
치타

당신이보고 싶을 수 있습니다 en.wikipedia.org/wiki/Line-plane_intersection
Geerten
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.