Cuda加速:setUpNet DNN module was not built with CUDA backend; switching to CPU

文章目录

  • 准备工作(第二步最重要)
  • 编译
  • cmake编译选项(仅供参考,自行适配)

准备工作(第二步最重要)

  1. 下载opencv 4.4.0以及相应版本的opencv_contrib

  2. 修改cmakelist,在opencv\modules\dnn\CMakeLists.txt文件中添加

    add_definitions(-DHAVE_CUDA=1)

    尝试了很多教程,但是他们都漏了这一个关键的点,因为只有定义了HAVE_CUDA这个宏之后,相应的代码才会被编译进去

编译

参考 linux编译cuda加速版本的opencv
链接里的Step #5很重要

cmake编译选项(仅供参考,自行适配)

cmake \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D WITH_V4L=ON \
-D OPENCV_DNN_CUDA=ON \
-D CUDNN_VERSION=‘8.0’ \
-D CUDNN_INCLUDE_DIR=’/usr/include/’ \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=“5.3” \
-D CUDA_ARCH_PTX="" \
-D OPENCV_EXTRA_MODULES_PATH=./opencv_contrib/modules \
-D WITH_GSTREAMER=ON \
-D WITH_LIBV4L=ON \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
..

注意换行符后面不能有空格及任何字符,结尾的..不能省略

你可能感兴趣的:(linux,cmake,cuda)