当前位置:   article > 正文

opencv编译带cuda_opencv cuda 编译

opencv cuda 编译

1.准备工作

ippicv_xxxx.tgz/face_landmarkmodel.dat/boostredec系列/vgg系列  相关文件先下载好

修改opencv-4.4.0/3rdparty/ippicv/ippicv.cmake文件,

  1. ocv_download(FILENAME ${OPENCV_ICV_NAME}
  2. HASH ${OPENCV_ICV_HASH}
  3. URL
  4. "${OPENCV_IPPICV_URL}"
  5. "$ENV{OPENCV_IPPICV_URL}"
  6. "file:///home/xinghu/software/opencv-4.4.0/"
  7. #"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
  8. DESTINATION_DIR "${THE_ROOT}"
  9. ID IPPICV
  10. STATUS res
  11. UNPACK RELATIVE_URL)

修改opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/cmake下的download_boostdesc.cmake和download_vgg.cmake文件,同上

修改opencv-4.4.0/opencv_contrib-4.4.0/modules/face/CMakeLists.txt文件,同上

2.安装

mkdir build

cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules -D WITH_CUDA=1 -D WITH_CUDNN=1 -D OPENCV_DNN_CUDA=1 -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D OPENCV_GENERATE_PKGCONFIG=1 -D BUILD_opencv_python3=1 -D PYTHON3_EXECUTABLE=/usr/bin/python -D CUDA_GENERATION=Pascal ..

sudo make

sudo make install

 

3.问题处理

1. fatal error: features2d/test/test_detectors_regression.impl.hpp

step.1 进入opencv源码目录~/opencv/modules/features2d/test/,拷贝test_detectors_regression.impl.hpp 及 test_descriptors_regression.impl.hpp 到 ~/opencv_contrib/modules/xfeatures2d/test/下
step.2 编辑 test_features2d.cpp ,修改include文件地址

 

  1. // #include "features2d/test/test_detectors_regression.impl.hpp"
  2. // #include "features2d/test/test_descriptors_regression.impl.hpp"
  3. // 修改文件地址如下
  4. #include "test_detectors_regression.impl.hpp"
  5. #include "test_descriptors_regression.impl.hpp"

根据提示的缺少文件从~/opencv/modules/features2d/test中拷贝如下文件到~/opencv_contrib/modules/xfeatures2d/test/

 

  1. test_detectors_invariance.impl.hpp
  2. test_descriptors_invariance.impl.hpp
  3. test_invariance_utils.hpp

然后修改test_rotation_and_scale_invariance.cpp文件

 

  1. // #include "features2d/test/test_detectors_invariance.impl.hpp" // main OpenCV repo
  2. // #include "features2d/test/test_descriptors_invariance.impl.hpp" // main OpenCV repo
  3. #include "test_detectors_invariance.impl.hpp" // main OpenCV repo
  4. #include "test_descriptors_invariance.impl.hpp" // main OpenCV repo

 

2. [ WARN:0] global /tmp/pip-req-build-sw_3pm_8/opencv/modules/dnn/src/dnn.cpp (1429) setUpNet DNN module was not built with CUDA backend; switching to CPU

注意cmake的时候有-D WITH_CUDNN=1 -D OPENCV_DNN_CUDA=1

3. no moudule named cv2 

 

4. make时候报错

 

解决:

  1. The problem was solved by adding the following code to opencv/cmake/FindCUDNN.cmake:
  2. set(CUDNN_ROOT_DIR "" CACHE PATH "Folder contains NVIDIA cuDNN")
  3. SET(CUDNN_LIBNAME "cudnn_static")
  4. SET(CULIBOS_LIBNAME "culibos")
  5. find_path(CUDNN_INCLUDE_DIR cudnn.h
  6.     HINTS ${CUDNN_ROOT_DIR} ${CUDA_TOOLKIT_ROOT_DIR}
  7.     PATH_SUFFIXES cuda/include include)
  8. find_library(CUDNN_LIBRARY ${CUDNN_LIBNAME}
  9.     HINTS ${CUDNN_ROOT_DIR} ${CUDA_TOOLKIT_ROOT_DIR}
  10.     PATH_SUFFIXES lib lib64 cuda/lib cuda/lib64 lib/x64)
  11.     
  12. find_library(CULIBOS_LIBRARY ${CULIBOS_LIBNAME}
  13.     HINTS ${CUDNN_ROOT_DIR} ${CUDA_TOOLKIT_ROOT_DIR}
  14.     PATH_SUFFIXES lib lib64 cuda/lib cuda/lib64 lib/x64)
  15. set(CUDNN_LIBRARIES ${CUDNN_LIBRARY} ${CULIBOS_LIBRARY})
  16. I added it to the end of the file as it is, without making any changes.
  17. After that I run make -j12 (12 is based on the number of cores of the CPU) and all the rest of the build commands without any problems.
  18. I tested Opencv 4.4.0 with YOLOv4 and it works fine.

4.配置环境变量

 

  1. sudo vim /etc/ld.so.conf.d/opencv.conf
  2. /usr/local/lib #保存本句 然后关闭
  3. ---
  4. sudo ldconfig
  5. vim /etc/bash.bashrc
  6. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  7. export PKG_CONFIG_PATH #添加到末尾

pkg-config opencv4 --modversion #查看版本

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/119769
推荐阅读
相关标签
  

闽ICP备14008679号