# Ground plane estimation from a single image (was: confusion about homography and calibration camera parameters)

I'm new to this multiple view geometry issues and I'm a little bit lost, and some concept are not clear at all.

I have a calibrated camera ( = I have distortion coefficents, field of view, and with those I can find what is called intrinsic matrix).

With this camera I'd like to make an application that can estimate the ground plane from a picture. I have those constrains:

• In the picture there is no chessboard (or other kind of known pattern used in computer vision for calibrating cameras)
• I can manually define some coplanar points (like points that I know are the projection of a square) or some

So I need something that take the 2D coordinate of a trapezoid in the picture, knowing that in the real world it is a unit-square on the ground plane in the 3D real world coordinates and give me the transformation.

From what I have understand this is procedure is "computation of extrinsic parameter given given intrinsic parameters, a few 3D points, and their projections".

Now, my questions:

1. Is it possible?
2. Are 4 points enough?
3. This is not related with homography, right? (because homography is not related with 3d points but only with 2d).. but how can homography help me? (I can find the homography that transform the trapezoid in a square)
4. Is there an alternative way to do it (like with triangles and normals)?

For the sake of curiosity I'm using openCV for the implementation.

## 1 Answer

Yes it is possible to compute the extrinsics given the intrisics, some points in 3D and their projections in the image. If all your 3D points are in the same plane, then the math for computing the extrinsics is explained in the paper by Zhengyou Zhang, which is the basis for the camera calibration code in OpenCV.

If your 3D points are not co-planar, then you need to use a different algorithm that is described in Hartley and Zisserman.