ubuntu20.04系统+cuda10.1+opencv4.1.0+dense_flow的编译与安装,吐血总结!!!

环境:ubuntu20.04+cuda10.1+opencv4.10+cmake3.16+libzip1.18 +ffmpeg
推荐Ubuntu18.04+opencv4.1.0+dense_flow

1、安装cuda

这里建议使用cuda10.0cuda10.0下载,cuda9的版本会出现Unsupported gpu architecture 'compute_75'的报错,这是由于cuda9版本不支持compute_75。Unsupported gpu architecture 'compute_75’报错原因。记得在自己的环境变量中添加cuda10.0安装不同的cuda版本

export CUDA_HOME=/usr/local/cuda-10.0
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

cuda10.0要注意Decode 模块已经被废弃,该模块和 Encode 模块将作为 NVIDIA VIDEO CODEC SDK 模块独立发行。

  • 第一种解决方法
    下载Video_Codec_SDK_9.0.20,复制nvcuvid.h和cuviddec.h到cuda.10.0的相应位置。
cp Video_Codec_SDK_9.0.20/include/nvcuvid.h /usr/local/cuda-10.0/include/
cp Video_Codec_SDK_9.0.20/include/cuviddec.h /usr/local/cuda-10.0/include/
  • 第二种解决方法
    将两个头文件添加到编译是的搜索路径下,下载Video_Codec_SDK_10.0.26,在自己的环境中添加
export C_INCLUDE_PATH=/yourpath/Video_Codec_SDK_10.0.26/Interface:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/yourpath/Video_Codec_SDK_10.0.26/Interface:$CPLUS_INCLUDE_PATH

2、gcc选择

我这里选择的是gcc-5和g+±5,ubuntu20.04下安装和选择合适的gcc和g++参考ubuntu20.04+gcc降级和指定版本gcc和g++,不然可以会出现这样的错误gcc导致opencv出错

3、安装cmake3.16

版本低的cmake不能编译opencv4.1.0,好像是3.3以上的cmake版本才可以安装cmake3.16
参考:cmake安装

4、安装libzip

libzip的github下载libzip下载,安装过程

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=你自己的路径 ..
make -j4
make install 

安装完成后记得添加到自己的环境变量中

export PATH=yourpath/libzip/lib/pkgconfig/:$PATH

5、安装ffmpeg

参考ffmpeg安装,注意最后添加到自己的环境变量中,例如

export PKG_CONFIG_PATH=yourpath/ffmpeg/lib/pkgconfig:$PKG_CONFIG_PATH

6、安装boost及各种依赖包

很多教程上没有写要安装boost,导致在编译时候找不到boost,后来才知道boost是要自己安装,输入sudo apt-get install libboost-all-dev
安装各种依赖,参考安装依赖

sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev

编译OpenCV以及openc_contrib会提示缺少boostdesc_bgm.i文件出错,报错为~/opencv_contrib/modules/xfeatures2d/src/boostdesc.cpp:673:20: fatal error: boostdesc_bgm.i: No such file or directory以下文件需要重新拷贝放opencv_contrib/modules/xfeatures2d/src/ 路径下,
百度云链接:https://pan.baidu.com/s/1BeYF8kqEZLAJYQj-MvxpmA
提取码:e1wc
参考:安装opencv时,xfeatures2d模块缺失boostdesc_bgm.i文件

7、开始编译
按照上面1-6步骤进行,接下来参考opencv4.1.0 + dense_flow安装与使用和opencv4.1.0 dense_flow配置过程记录进行就ok。

一些问题的解决方法:运行dense_flow遇到的问题,denseflow视频截帧提取光流工具,dense_flow的编译与安装过程很麻烦,每次快要成功的时候都会有问题,但坚持下来会收获很多,有问题就百度。

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