Birds Eye View - Birds Eye View and Libpanorama
| ⇦ How BEV Works/Background | Home | User Guide/Building and Installation ⇨ |
| Getting Started |
|---|
| How BEV Works |
| User Guide |
| Calibration Guide |
| Calibration Guide Legacy |
| GStreamer |
| Performance |
| Contact Us |
Libpanorama is the image transformation engine behind RidgeRun's Birds Eye View (BEV) software. It makes BEV practical on embedded systems by combining multiple geometric transformations into a single efficient mapping step and processing only the pixels required for the final output. This page explains how Libpanorama supports BEV generation and highlights other real-time projection use cases such as fisheye undistortion, panorama generation, surround 360 video, and custom image projections.
You may have noticed how, from the original capture to the final BEV, the image undergoes several transformations. It would be great if these transformations could be combined together instead of performing each of them one by one. Moreover, you may also have noticed that the resulting BEV image consists only of a small, internal portion of the original capture. It would be ideal if we could only process the pixels that are actually needed by the BEV, ignoring the rest and saving precious processing time. That is precisely what Libpanorama was designed for.
Libpanorama is a library designed to perform efficient image transformations by composing mapping stages and processing only what is required, when it is required |
Libpanorama is written in C++ and heavily relies on template meta-programming and static polymorphism to delegate as much processing to the compiler as possible, as opposed to runtime.
Birds Eye View is just one of the multiple use cases for Libpanorama. In practice, almost any geometric transform can be performed in real-time on the video feed using the library. While the technical details on how to do so are out of the scope of this document, here is a list of some other use cases Libpanorama was built for.
Fisheye Undistort
Fisheye lenses allow cameras to capture more field of view than typical rectilinear ones. While "normal" lenses are capable of capturing 110 degrees (at most), fisheye ones can go up to 210 degrees or more! They are capable of doing so by introducing radial distortion in the image, resulting in the famous barrel effect.
The process of taking a fisheye image and removing its distortion to convert it back to a rectilinear projection (with information loss) is what we define as "undistort". This process is also typically applied to "normal" lenses as well, which, due to manufacturing defects, can introduce radial defects to the image.
Libpanorama can perform the fisheye undistort in real-time.
Undistort is not included with the purchase of the Birds Eye View license |

Panoramas
A panoramic image is another projection that allows you to convey a greater field-of-view than a normal lens would. Like fisheye lenses, they do so by introducing unnatural distortions to the resulting image, but unlike fisheye, these are way less evident and unpleasant to the viewer. Panoramic images are typically generated by combining multiple individual images together, which results in the ability to capture a full 360 view of the scene in an image.
Libpanorama is capable of taking an array of individual images and blending them into a single panorama.
Panorama generation is not included with the purchase of the Birds Eye View license |

Surround 360 Video
One of the benefits of panoramic images (or more correctly, equirectangular images) is that they can map the full 360 environment into a plane (the image). It is possible, then, to take a region of this equirectangular image and project it back to the rectilinear space. Even better, we can move the taken region and give the impression that the panning and tilting around, producing an immersive experience.
Libpanorama provides the tool to produce these immersive experiences in real time.
The equirectangular to rectilinear projection is not included with the purchase of the Birds Eye View license |

Little World
Just for the fun of it (and because we can 😉), we configure Libpanorama to generate the little world projection. This is the stereographic projection taken to the extreme. Regardless of the potential use cases, it does look pretty cool.
Libpanorama is capable of producing little world video streams in real time.
The little world projection is not included with the purchase of the Birds Eye View license. |

Custom Projections
Interested in developing a custom projection? Don't hesitate to contact us, and we'll be happy to assist in the development.
FAQ
- What is Libpanorama?
- Libpanorama is RidgeRun's image transformation library for real-time geometric image processing on embedded systems. In the Bird's Eye View solution, it is the engine that combines multiple mapping steps into an efficient transformation pipeline, helping generate the final BEV image while processing only the pixels that matter.
- What are the capabilities of Libpanorama?
- Libpanorama supports real-time image transformation use cases such as Bird's Eye View generation, fisheye undistortion, panorama stitching, surround 360 video views, little world projections, and custom image projections. Its main value is that it can compose complex geometric transformations efficiently, which makes it useful for embedded vision applications that need high performance and low processing overhead.
- How does Libpanorama improve BEV efficiency?
- Libpanorama improves efficiency by combining mapping stages into a single transformation flow and avoiding unnecessary work on image regions that do not contribute to the final birds eye output. This is especially valuable on embedded platforms where compute and memory bandwidth are limited.