Birds Eye View - Build and Installation Guide
| ⇦ How BEV Works/Birds Eye View and Libpanorama | Home | User Guide/Minimal Application ⇨ |
| Getting Started |
|---|
| How BEV Works |
| User Guide |
| Calibration Guide |
| Calibration Guide Legacy |
| GStreamer |
| Performance |
| Contact Us |
This page shows how to build Birds Eye View source code and validate its functionality using an example application. It assumes you have already purchased a license and received access to the source code. To learn how to obtain the source code, visit How to Get the Code.
Install the Dependencies
First ensure you have installed the following dependencies:
- Git: To clone the repository.
- Meson: To configure the project.
- Ninja: To build the project.
- JsonCPP dev files: For the parameter loading.
- OpenCV dev files: For image loading, processing and displaying.
- GStreamer dev files and plugins: (optional) for image loading.
- QT5 dev files: (optional) for image displaying.
- CppUTest dev files: (optional) for unit testing.
- Doxygen, Graphviz: (optional) for documentation generation.
- Wget, Unzip: (optional) to download and unpack the sample images.
In Debian-based systems (like Ubuntu), you can run:
sudo apt update sudo apt install -y \ libjsoncpp-dev \ libopencv-dev libopencv-core-dev \ libopencv-video-dev libopencv-highgui-dev libopencv-videoio-dev \ libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \ gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-base \ gstreamer1.0-libav gstreamer1.0-plugins-ugly \ qtbase5-dev qtmultimedia5-dev libqt5multimedia5-plugins \ git wget unzip libcpputest-dev doxygen graphviz \ python3-pip ninja-build sudo -H pip3 install meson
Build Steps
1. Start by cloning the project. The repository URL is provided by RidgeRun with the license purchase.
git clone git@gitlab.ridgerun.com:$YOUR_REPO/libpanorama cd libpanorama
Replace `$YOUR_REPO` with the actual repository path you were given by RidgeRun |
2. Configure the project by running the following (recommended):
CUDA Accelerated
CUDA acceleration is enabled by default. Use this option when building with NVIDIA-enabled systems.
meson setup builddir --prefix /usr/
Plain CPU
meson setup -Dnpp=disabled builddir --prefix /usr/
Note that there is nothing special about the name builddir, you can choose its value to your convenience. If you choose to change it, make sure you do it consistently throughout the remainder of the steps in this guide.
In case of failure, please provide the output log of the configuration step to support@ridgerun.com |
There are some configuration options you can use for customizing your build. For most builds changing these options is not necessary.
| Option name | Possible values | Description | Default |
|---|---|---|---|
| examples | enabled/disabled | Whether to build or not the examples. | enabled |
| tests | enabled/disabled | Whether to build or not the tests. | enabled |
| docs | enabled/disabled | Whether to build or not the API docs. | enabled |
| npp | enabled/disabled | Whether to use CUDA (NPP) acceleration or not. | enabled |
| opencv | enabled/disabled | Whether to build or not OpenCV IO classes. | enabled |
| gstreamer | enabled/disabled | Whether to build or not GStreamer IO classes. | enabled |
| qt | enabled/disabled | Whether to build or not QT IO classes. | enabled |
To set values to the configuration options, use the syntax: meson setup -Doption1=value1 -Doption2=value2 builddir.
3. Build the project by running:
ninja -C builddir
4. Optionally, run the unit tests by executing:
ninja -C builddir test
5. Optionally, install the project by running:
sudo ninja -C builddir install
Validation Steps
The project includes assets to validate things are working as expected. This section provides the procedure to run the example application.
1. Download the sample images, if you haven't already.
cd samples ./download_samples.sh cd ..
2. Run the example as:
./builddir/examples/birds_eye_view -p examples/birds_eye_view.json
You should see an output like the one below:

FAQ
- Do I need a license before I can build Bird's Eye View?
- Yes. This page assumes you have already purchased a license and received access to the source code repository. If you still need access details, see Birds Eye View/Getting Started/How to Get the Code.
- Which build tools are required?
- The guide uses Meson to configure the project and Ninja to compile it. You also need development packages for JsonCpp and OpenCV, while GStreamer, Qt5, CppUTest, Doxygen, Graphviz, Wget, and Unzip are optional depending on the features you want to build or test.
- Can I build Bird's Eye View without CUDA?
- Yes. The project can be built in a plain CPU configuration by disabling NPP support during the Meson setup step. This is useful when you are building on systems without NVIDIA CUDA acceleration.
- When should I use the CUDA-accelerated build?
- Use the default CUDA-accelerated configuration when building on NVIDIA-enabled systems that support NPP. This is the recommended option when you want the best performance from the BEV pipeline on supported hardware.
- What is the difference between the CUDA and plain CPU build options?
- The CUDA build uses NPP acceleration and is intended for NVIDIA-based platforms. The plain CPU build disables NPP and relies on CPU processing instead. Both follow the same overall build flow, but the CPU option is better for unsupported systems or simpler evaluation environments.
- Can I customize which parts of the project are built?
- Yes. The guide lists Meson configuration options that let you enable or disable examples, tests, documentation, OpenCV support, GStreamer support, Qt support, and CUDA acceleration. This helps you reduce dependencies or tailor the build to your environment.
- How do I know whether the build worked correctly?
- After building, you can validate the installation by downloading the sample assets and running the example application. If the example produces the expected birds eye output image, the build is working correctly.
- What should I do if the build fails?
- Please contact RidgeRun's support team with the log. The log is usually the fastest way to identify missing dependencies, incompatible options, or platform-specific issues.