Birds Eye View - RidgeRun's Birds Eye View project research
| ⇦ Introduction | Home | Introduction/Dataset ⇨ |
| Getting Started |
|---|
| How BEV Works |
| User Guide |
| Calibration Guide |
| Calibration Guide Legacy |
| GStreamer |
| Performance |
| Performance Measurements |
| Contact Us |
Background
When cameras are mounted on a vehicle, the captured images exhibit strong perspective distortion, as shown in Fig. 1(a). This perspective effect makes it difficult for drivers—and computer vision algorithms—to accurately judge distances, detect obstacles, or perform reliable image analysis. To address this, the camera views must be geometrically transformed into a top-down, bird’s-eye representation, as illustrated in Fig. 1(b). By applying perspective transformation (or inverse perspective mapping), the raw images are converted into a normalized bird’s-eye view, shown in Fig. 1(c), which enables accurate perception, measurement, and scene understanding for both human operators and automated systems. [3]

To obtain the output bird-s eye view image a transformation using the following projection matrix can be used. It maps the relationship between pixel (x,y) of the bird's eye view image and pixel (u,v) from the input image.
To generate the output bird’s-eye-view image, a geometric transformation based on a projection matrix is applied. This matrix defines the mapping between each output pixel (x,y) in the bird’s-eye view and its corresponding pixel (u,v) in the original camera image. By using this projection relationship, the system reprojects the ground-plane region from the input image into a top-down perspective. The transformation is expressed as:
This transformation is commonly referred to as Inverse Perspective Mapping (IPM) [4]. IPM takes a frontal-view image as input, applies a homography, and generates a top-down (bird’s-eye) view of the scene by mapping pixels onto a 2D ground-plane frame. In the region immediately surrounding a vehicle—where the road surface can be approximated as planar—IPM works effectively and produces geometrically meaningful top-down projections.
However, IPM introduces distortions for objects farther from the camera because the mapping is non-homogeneous. Vertical structures such as vehicles, pedestrians, poles, or curbs become stretched, skewed, or compressed, as illustrated in the left image of Figure 2. These artifacts limit the accuracy and usable range of applications that depend solely on basic IPM.
More advanced post-transformation techniques, such as Incremental Spatial Transformer [5], can significantly improve geometric consistency at longer distances, producing results similar to the right image in Figure 2. For the purposes of this project, however, we use a standard IPM approach to illustrate the core concepts.
When IPM is applied without additional correction or refinement, the method relies on three key assumptions:
- The camera remains in a fixed pose relative to the ground plane.
- The road or ground surface is approximately planar.
- The ground surface is free of obstacles or significant height variations.

To apply IPM correctly and to generate an accurate bird’s-eye-view projection, we must understand how a camera maps 3D points in the world onto 2D image coordinates. This relationship is defined by the camera model, which combines intrinsic parameters, extrinsic parameters, and the geometry of the ground plane. From this formulation, we can derive a homography matrix that transforms ground-plane pixels from the input image into their corresponding positions in the bird’s-eye-view frame. The following section describes this camera model and the homography used to compute the transformation.
Camera Model and Homography
A pinhole camera can be modeled as a geometric device that projects a 3D point in the world onto a 2D point in the image plane. This projection is described by the general camera equation [6]:
Here, is the camera projection matrix, which maps a 3D world coordinate (X,Y,Z) into an image coordinate (u,v) in homogeneous form.
Projection Matrix Decomposition
The projection matrix can be decomposed into intrinsic and extrinsic parameters:
Where:
- is the intrinsic matrix, containing focal length and principal point parameters.
- is a rotation matrix describing camera orientation.
- is a translation vector describing camera position.
- Together, expresses the camera pose relative to the world coordinate frame.
This decomposition is essential because BEV requires an accurate mapping between ground-plane points and image pixels.
Mapping Points on a Plane
Any point lying on the ground plane can be parameterized in homogeneous form as:
Where:
- represents a point in ground-plane coordinates.
- is a 4x3 matrix that embeds the plane equation into homogeneous coordinates.
This formulation constrains all 3D points to lie on a planar surface—an assumption required by standard Inverse Perspective Mapping (IPM).
Deriving the Homography
Substituting (3) into the camera equation (1), we obtain:
This shows that the mapping between a point on the ground plane and its image projection is governed by a 3×3 homography matrix H.
Homography is the mathematical foundation that enables Bird’s Eye View (BEV) systems to warp perspective images into a top-down representation.
RidgeRun BEV Demo Workflow
The following image shows the basic processing path used by the BEV system.
- Capture camera frames: Obtain frames from a video source. 4 cameras with 180 degrees view angle.
- Resize frames: Resize input frames to desired input size.
- Remove lens distortion: Apply lens undistortion algorithm to remove the fisheye effect.
- Perspective transformation: Use the IPM
- Perspective mapping: Map the points from the front view image to a 2D top image (BEV)
- Enlarging: Enlarge the image to search for the required region of interest (ROI)
- Cropping: Crop the output of the enlargement process to adjust the needed view.
- Create a final top view image


Removing fisheye distortion
Wide-angle cameras are needed to obtain the max point of view and to achieve the Bird's Eye View perspective. Usually, these cameras provide fish eye image which needs to be transformed to remove the distortion. After the camera calibration process was done, done parameters are received:
- K: Output 3x3 floating-point camera matrix
- D: Output vector of distortion coefficients
As stated in the OpenCV documentation, let P be a point in 3D of coordinates X in the world reference frame (stored in the matrix X) The coordinate vector of P in the camera reference frame is
where R is the rotation matrix corresponding to the rotation vector om: R = rodrigues(om); call x, y and z the 3 coordinates of Xc:
The pinhole projection coordinates of P is [a; b] where
The fisheye distortion is defined by:
The distorted point coordinates are [x'; y'] where


Perspective Mapping
The first step is to apply the perspective mapping from the input image to transform the angle image into a top view. Then, the enlarge process allows matching the output image perspective and the crop step handles to capture the required region of interest, as seen in the following image.

Process Optimization
The process described so far is based on state-of-the-art papers and research on how to apply IPM and other techniques to generate a top view image. The minimal steps always include the perspective mapping to get the IPM result, enlargement to adjust the measures between different cameras, and cropping to use only the required part of the image. These steps work great for a single image in an isolated environment to analyze and generate a single output frame. However, when the process needs to be repeated once for each frame at higher frame rates the system stress might be too high, and therefore the frame rate might be lower than expected.
To enhance the performance of the library we designed a simple method to wrap up all of the steps in a single warp perspective method. Usually, in Computer Vision, two images of the same planar surface in space can be related by a homography matrix. The method has many practical applications like image rectification, image registration, or computation of camera motion rotation, resize, and translation between two images. We will rely on the last application to speed up the process.
From an input image we need to map each source point to another destination point. The library uses a chessboard to collect inner corners and automatically adjust them by generating a perfect squared relationship and generate the output image as seen in the following figure.

The relationship between the points is defined by:
The main objective is to focus on how to adjust the homography matrix to absorb all the previous steps. With several geometric transformation the library also allows the user to fine-tune the final image. Matrix multiplication allows the quick and easy modification of the final homography, therefore the operation will be defined by (Move image to origin), (Scale image), (Move image back to original position), (Move image to fine adjust position), (Rotate image). The final homography () will be defined by:
where , , , , are:
The input parameters for each matrix are:
- CenterX: Calculated X center between the inner corners of the chessboard
- CenterY: Calculated Y center between the inner corners of the chessboard
- ScaleX, ScaleY: User defined scale factor for the output image
- MoveX, MoveY: User defined amount of image movement adjustment
- Angle: User defined rotation angle