Reconstruction of points position in 3D from 2D image

조회 수: 9 (최근 30일)
Pino244
Pino244 2019년 1월 2일
편집: Matt J 2019년 1월 4일
The image i'm analyzing contains a car. The car chassy is symmetric about a symmetry plane. The symmetry plane is vertical; several pairs of symmetric point features can be identified, such as vertexes of the rear lights or vertexes of the license plate.
I was able to calibrate the camera using vanishing points and geometric construction however i am stuck because i am trying to fix a reference frame on one of the symmetry plane of the car and to localize some of these symmetric point with regard to this newely fixed reference. I do not have any other picture relative to the car hence i cannot look for corresponding features points in multiple images to evaluate an homography.
Is it possible to find the 3D position of such points?
  댓글 수: 5
Pino244
Pino244 2019년 1월 3일
I do not have any additional information even if the plate has a standard dimension i'm probably not allowed to use this additional info. I am asked to reconstruct the position of symmetric points starting from the information that the car has a symmetry plane. Is it possible to do this without adding any other info (like the size of the plate or that of the tires)?
Matt J
Matt J 2019년 1월 3일
편집: Matt J 2019년 1월 3일
I doubt it. You have no metric information at all, so you have no way of determining whether this is a real car, or a 1 inch toy car. You need to define a unit of 3D length/distance somehow.

댓글을 달려면 로그인하십시오.

채택된 답변

Matt J
Matt J 2019년 1월 3일
편집: Matt J 2019년 1월 3일
i was wondering about the fact that points are symmetric. Does this not add any info?... Can this help to reconstruct at least the camera pose?
You don't need symmetry to get the camera pose. You already have the vanishing points vx,vy,vz to the directions dx,dy, and dz of the world axes. That and the intrinsic matrix K give you the following equation for the pose matrix R,
inv(K)*[vx,vy,vz] = R*[dx,dy,dz]
You can solve for R using Horn's method, e.g., using this File Exchange submission,
A=[dx(:),dy(:),dz(:)]; A=A./sqrt(sum(A.^2));
B=inv(K)*[vx(:),vy(:),vz(:)]; B=B./sqrt(sum(B.^2));
R = getfield( absor(A,B,'doTrans',0), 'R');
And if yes, can this be used to reconstruct some 3-D points?
No, because the symmetry is there regardless of whether the car is life size or a 1 inch model. Since you can get the same image no matter how you 3D-scale the scene, how can the image alone contain enough info to determine distances between points in 3D?
  댓글 수: 2
Pino244
Pino244 2019년 1월 4일
Are the direction of the world axes meant to be [1 0 0],[0 1 0],[0 0 1]?
Matt J
Matt J 2019년 1월 4일
편집: Matt J 2019년 1월 4일
Yes, although the above equations should work for any combination of linear independent directions and corresponding vanishing points. And, in fact you only need two directions, not three.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Geometric Transformation and Image Registration에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by