The openCV Installed With The Jetpack Does Not Have CUDA Supported PDF
The openCV Installed With The Jetpack Does Not Have CUDA Supported PDF
To use CUDA,
we have to download openCV and build from source
see https://devtalk.nvidia.com/default/topic/1058768/jetson-nano/default-opencv-
included-in-jetpack-has-no-header-files-related-to-cuda/
Install libraries
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev
gfortran
git clone
https://github.com/JetsonHacksNano/buildOpenCV
2- enter to buildOpenCV folder from the terminal
cd Downloads/buildOpenCV-master
3- enter to the buildOpenCV folder from the explorer and open the Sh file or use
the commade sudo gedit buildOpenCV.sh
this avoids the nano to hang when building the opencv from the sd card
the sh file contains this instructions, you can install the latest version by changing the
fifth line in this file to the desired version OPENCV_VERSION=4.x.x
https://www.jetsonhacks.com/2019/11/22/opencv-4-cuda-on-jetson-nano/
4- in the terminal execute the Sh file and send the results of the build to the file
openCV_build.log using this command
./buildOpenCV.sh |& tee openCV_build.log
the build will take between 2 hours to 4 hours depends on internet speed and build
time
sudo ldconfig -v
#!/bin/bash
# License: MIT. See license file in root directory
# Copyright(c) JetsonHacks (2017-2019)
OPENCV_VERSION=4.3.0
# Jetson Nano
ARCH_BIN=5.3
INSTALL_DIR=/usr/local
# Download the opencv_extras repository
# If you are installing the opencv testdata, ie
# OPENCV_TEST_DATA_PATH=../opencv_extra/testdata
# Make sure that you set this to YES
# Value should be YES or NO
DOWNLOAD_OPENCV_EXTRAS=NO
# Source code directory
OPENCV_SOURCE_DIR=$HOME
WHEREAMI=$PWD
# NUM_JOBS is the number of jobs to run simultaneously when using make
# This will default to the number of CPU cores (on the Nano, that's 4)
# If you are using a SD card, you may want to change this
# to 1. Also, you may want to increase the size of your swap file
NUM_JOBS=$(nproc)
CLEANUP=true
PACKAGE_OPENCV="-D CPACK_BINARY_DEB=ON"
function usage
{
echo "usage: ./buildOpenCV.sh [[-s sourcedir ] | [-h]]"
echo "-s | --sourcedir Directory in which to place the opencv sources (default $HOME)"
echo "-i | --installdir Directory in which to install opencv libraries (default /usr/local)"
echo "--no_package Do not package OpenCV as .deb file (default is true)"
echo "-h | --help This message"
}
CMAKE_INSTALL_PREFIX=$INSTALL_DIR
# Python 2.7
sudo apt-get install -y python-dev python-numpy python-py python-pytest
# Python 3.6
sudo apt-get install -y python3-dev python3-numpy python3-py python3-pytest
# GStreamer support
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
cd $OPENCV_SOURCE_DIR
git clone --branch "$OPENCV_VERSION" https://github.com/opencv/opencv.git
git clone --branch "$OPENCV_VERSION" https://github.com/opencv/opencv_contrib.git
if [ $DOWNLOAD_OPENCV_EXTRAS == "YES" ] ; then
echo "Installing opencv_extras"
# This is for the test data
cd $OPENCV_SOURCE_DIR
git clone https://github.com/opencv/opencv_extra.git
cd opencv_extra
git checkout -b v${OPENCV_VERSION} ${OPENCV_VERSION}
fi
# There are also switches which tell CMAKE to build the samples and tests
# Check OpenCV documentation for details
# -D WITH_QT=ON \
echo $PWD
time cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN=${ARCH_BIN} \
-D CUDA_ARCH_PTX="" \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D WITH_CUBLAS=ON \
-D WITH_LIBV4L=ON \
-D WITH_V4L=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D BUILD_opencv_python2=ON \
-D BUILD_opencv_python3=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=ON \
-D INSTALL_TESTS=ON \
-D OPENCV_TEST_DATA_PATH=../opencv_extra/testdata \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
$"PACKAGE_OPENCV" \
../
if [ $? -eq 0 ] ; then
echo "CMake configuration make successful"
else
# Try to make again
echo "CMake issues " >&2
echo "Please check the configuration being used"
exit 1
fi
# Consider the MAXN performance mode if using a barrel jack on the Nano
time make -j$NUM_JOBS
if [ $? -eq 0 ] ; then
echo "OpenCV make successful"
else
# Try to make again; Sometimes there are issues with the build
# because of lack of resources or concurrency issues
echo "Make did not build " >&2
echo "Retrying ... "
# Single thread this time
make
if [ $? -eq 0 ] ; then
echo "OpenCV make successful"
else
# Try to make again
echo "Make did not successfully build" >&2
echo "Please fix issues and retry build"
exit 1
fi
fi
# check installation
IMPORT_CHECK="$(python -c "import cv2 ; print cv2.__version__")"
if [[ $IMPORT_CHECK != *$OPENCV_VERSION* ]]; then
echo "There was an error loading OpenCV in the Python sanity test."
echo "The loaded version does not match the version built here."
echo "Please check the installation."
echo "The first check should be the PYTHONPATH environment variable."
fi
in terminal do:
1/ install Curl (it will help us to install visual studio code code-oss)
sudo apt-get install curl
2/ download code-oss
curl -L https://github.com/toolboc/vscode/releases/download/1.32.3/code-oss_1.32.3-arm64.deb -o
code-oss_1.32.3-arm64.deb
3/ install code-oss
do the following
"python.autoComplete.extraPaths": ["/usr/lib/python3.6/dist-packages/cv2/python-3.6"]
The autoComplete path should be the folder where the cv2 .so file is. I got that location by typing dpkg
-L libopencv-python, but your package name might be different since it was compiled from source.
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev
gfortran