Skip to content
parafin edited this page Feb 2, 2023 · 13 revisions

Build instructions

OpenCV built with CUDA and OpenGL support is required by default. Script below can be used on NVIDIA Jetson platform to build and install a correct OpenCV version. Alternative is to switch to CPU rendering code-path (much slower), which doesn’t depend on CUDA and OpenGL support in OpenCV:

  • change the following values in imagebroker.json (see inline comments there for guidance):

    1. chains/main/elements/gpuproc/elements/export/type to "export_to_hostmem"

    2. chains/main/elements/exporter/device_id to "cpu_dev"

OpenCV build script for Jetson

Tested on L4T R32.7.2.

#!/bin/bash
set -eEo pipefail
shopt -s failglob
trap 'echo "${BASH_SOURCE[0]}{${FUNCNAME[0]}}:${LINENO}: Error: command \`${BASH_COMMAND}\` failed with exit code $?"' ERR

echo "Installing dependencies..."
sudo apt update
sudo apt install -y build-essential cmake pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-dev python-numpy python3-dev python3-numpy python3-matplotlib libv4l-dev libtbb-dev libjpeg-dev libpng-dev libtiff-dev curl cuda-toolkit-10-2 libgtkglext1-dev nvidia-cudnn8
sudo mkdir -p /usr/lib/aarch64-linux-gnu/gtkglext-1.0/include
echo "Done."

mkdir opencv
cd opencv

echo "Downloading OpenCV and Contribs Modules..."
curl -L https://github.com/opencv/opencv/archive/4.6.0.zip -o opencv.zip
echo "Downloaded opencv-4.6.0.zip."
curl -L https://github.com/opencv/opencv_contrib/archive/4.6.0.zip -o opencv_contrib.zip
echo "Downloaded opencv_contrib-4.6.0.zip."

echo "Unpacking..."
unzip opencv.zip
unzip opencv_contrib.zip
echo "Done."

echo "Configuring modules..."
mkdir build_release
cd build_release
cmake   -DWITH_CUDA=ON \
        -DWITH_CUDNN=ON \
        -DWITH_CUBLAS=ON \
        -DCUDA_ARCH_BIN="5.3,6.2,7.2" \
        -DCUDA_ARCH_PTX="7.2" \
        -DCUDA_FAST_MATH=ON \
        -DENABLE_NEON=ON \
        -DWITH_OPENGL=ON \
        -DWITH_LIBV4L=ON \
        -DWITH_GSTREAMER=ON \
        -DBUILD_opencv_python2=ON \
        -DBUILD_opencv_python3=ON \
        -DBUILD_TESTS=OFF \
        -DBUILD_PERF_TESTS=OFF \
        -DBUILD_DOCS=OFF \
        -DBUILD_EXAMPLES=OFF \
        -DCMAKE_BUILD_TYPE=RELEASE \
        -DCMAKE_INSTALL_PREFIX=/usr/local \
        -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.6.0/modules \
        ../opencv-4.6.0
echo "Configuration done."

echo "Building..."
make -j8
echo "Installing to /usr/local ..."
sudo cmake -P cmake_install.cmake
echo "OpenCV 4.6.0 has been successfully installed."
Clone this wiki locally