opencv4.4下载:https://github.com/opencv/opencv/releases/tag/4.4.0
解压后,将opencv_contrib-4.4.0放入opencv-4.4.0的文件夹内。
cd opencv-4.4.0
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules .. \
-DWITH_CUDA=1 \
-DENABLE_FAST_MATH=1 \
-DCUDA_FAST_MATH=1 \
-DWITH_CUBLAS=1 \
-DOPENCV_GENERATE_PKGCONFIG=1 \
-DCUDA_GENERATION=Pascal ..
问题1:可能会出如下错误。
IPPICV下载失败,查看CMakeDownloadLog.txt 获取下载地址https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz
使用迅雷下载,将下好的.tgz文件放在opencv-4.4.0文件夹内,并修改/3rdparty/ippicv/ippicv.cmake的43行:
"file:///home/ycc/opencv-4.4.0/"
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
问题2:可能还会出现缺少boostdesc_bgm.i 等等文件,下面链接百度云盘下载这个文件后,放入到"..\modules\xfeatures2d\src"目录下,继续编译。(注:下载的所有文件都需要拷贝,文件都需要。)
百度云资料:https://pan.baidu.com/s/1SmRMg_aydPYOJ1jKNjGZPw,密码:z7dp
注:如果还是不行,可以将以上文件放入 /opencv-4.4.0/build/downloads/xfeatures2d/ 中
重新cmake,成功如下图。
可看是否编译了cuda和cudnn。
然后,make编译。
sudo make -j4
最后,安装。
sudo make install
安装成功。
可能出现的问题1:Ubuntu下opencv源码编译安装后,却出现ImportError: No module named cv2问题。
解决办法: https://blog.csdn.net/qq_34717531/article/details/108104922
可能出现的问题2:编译完成但是使用报错:classes, confidences, boxes = net.detect(image, confThreshold, nmsThreshold)
cv2.error: OpenCV(4.4.0) /home/ycc/opencv-4.4.0/modules/dnn/src/dnn.cpp:2353: error: (-216:No CUDA support) OpenCV was not built to work with the selected device. Please check CUDA_ARCH_PTX or CUDA_ARCH_BIN in your build configuration. in function 'initCUDABackend'
解决办法:https://blog.csdn.net/qq_34717531/article/details/108735629
可能出现的问题3:编译正常,使用正常,但某天突然报错:
[ 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
解决办法:https://blog.csdn.net/qq_34717531/article/details/108354905