본 포스트는 NUS대학의 3D Computer Vision 강의 (prof. Gim-Hee LEE)의 강의와 lecture slides의 내용을 인용하였습니다
Multi-camera system
Plucker Vectors
Generalized camera는 모이는 점(refernce point)가 없기 떄문에, 공간에서 임의의 점에 대한 새로운 표현 방법이 필요함.
line에 대한 플루커 벡터는 3-vectors의 pair로 되어있음. Direction vector (방향)와 moment vector 로 구성
q벡터는 선의 방향을, q' 벡터는 선에 있는 임의의 점 P와 임의로 정한 reference frame 간의 벡터를 의미. 이는 q와 P의 외적을 통해 구함. 따라서 qTq' = 0(q와 q`은 수직이기 떄문)
다중 카메라 시스템의 경우를 예를 들면, 를 하나의 핀홀 카메라의 origin이라 하면, 이를 플루커 벡터로 표현하면 2번쨰 expression과 같다. 이 때, 방향을 나타내는 벡터 q는 calibartion K의 Inverse로 나타낼 수 있다
또한 모멘텀 벡터 q`는 q와 P의 외적으로 구하는데, P를 origin으로 삼으면 결과는 [0,0,0]이 된다
카메라 센터 가 origin에 있지 않은 경우, 각 카메라에 대한 calibration , origin에서 카메라 센터로 rotation , translation 라 함.
자율주행차의 경우 Inertial measurement unit(IMU)을 origin으로 삼는 경우가 많음.
각각의 카메라들의 중심은 IMU로보터 만큼 떨어져 있음.
각 카메라에 대해 플루커 벡터는 위와 같이 표현될 수 있음
2시점에 대한 Geometry에서 플루커 벡터로 나타내면, 2개의 카메라에서 대응되는 픽셀간의 관계를 안다고 가정.
슬라이드의 필기처럼 2개의 ray(플루커벡터)는 공간의 점 (X)에서 만나야 한다
카메라간의 relatvie pose(R, t)가 존재
같은 프레임에 있는 2개의 플루커 벡터 line은 한 점에서 교차해야하고, 이는 위와 같은 식을 만족해야 한다.
위의 슬라이드 수식(matrix form)을 벡터로 풀어서 식을 정리하면 위와 같이 이 된다
a는 플루커 벡터로 알려진 elements이고, g는 E와 R에 있는 unknown vector를 가리킨다
이를 알기 위해서는 최소 17개의 point correspondence를 알아야하고, 이를 stack하여 form을 로 표현 가능
SVD를 통해서 g를 구할 수 있음
Generalized Point Reconstruction