openpose环境基于opencv4.4 +cuda11.3+cudnn8.X

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=OFF \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1 \
-D WITH_CUDA=ON \
-D BUILD_opencv_cudacodec=OFF \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D CUDA_ARCH_BIN=8.6 \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D WITH_GSTREAMER=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_PC_FILE_NAME=opencv.pc \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_OPENCV_PYTHON3=ON \
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so.8.4.1 \
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-D CMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs \
-D CUDA_NVCC_FLAGS=--Wno-deprecated-gpu-targets \
-D WITH_NVCUVID=ON \
-D CMAKE_EXE_LINKER_FLAGS=-lcblas \
-D WITH_LAPACK=OFF \
-D PYTHON_INCLUDE_DIR=/data/software/anaconda3/include/python3.7m \
-D PYTHON_PACKAGES_PATH=/data/software/anaconda3/lib/python3.7/site-packages \
-D OPENCV_EXTRA_MODULES_PATH=/datanfs/opencv-4.4.0/opencv_contrib/modules/ \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_EXAMPLES=OFF ..

直接上cmake  没有gui的同学们直接拿,是我按照下面的步骤一步步写出来的cmake。

有gui的同学看这里(此部分参考了网上大佬们的,直接拿过来的图片,并加入了配置自己环境的修改,网址我忘了,看到的同学和作者可以联系我注明出处):

安装OpenCV

 Configure

安装cmake-gui

sudo apt-get install cmake-gui

进入/opencv-4.4.0目录,新建build目录,进入build目录并运行cmake-gui

cd /opencv-4.4.0
mkdir build
cd build
cmake-gui …
注意:cmake-gui后面的两个点不能丢
 

弹出的CMake图形化界面,确认上面的两个路径

/opencv-4.4.0
/opencv-4.4.0/build

openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第1张图片

  • 点击Configure–>选择Unix Makefiles–>Finis。
  • openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第2张图片

  • configure过程会下载一些文件,一般因为网络问题会出现下面的错误
  • openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第3张图片

  • 这是因为下载ippicv_2020_lnx_intel64_20191018_general.tgz这个文件时出错,需要手动从github下载该文件,下载链接如下

https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20191018/ippicv
注:其他opencv版本如果不知道对应的文件,可以先Configure一次,完成后查看红色信息会找到对应的版本,从官网下载对应的文件即可,可以参考

  • 将下载好的文件放在/home/username/software/opencv-4.4.0/3rdparty/ippicv目录下,并且打开该目录下的ippicv.cmake文件,将第42行的网址注释掉,改为

“file:/home/username/software/opencv-4.4.0/3rdparty/ippicv/”

  • 保存后退出
  • openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第4张图片

  • 重新Configure,没有红色错误,成功
  • openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第5张图片

 Generate

Configure完成后,对4个地方进行修改:

CMAKE_BUILD_TYPE处选择Release,如果没有选项手动输入即可;下方的CMAKE_INSTALL_PREFIX保持默认路径/usr/local

openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第6张图片

OPENCV_EXTRA_MODULES_PATH处选择/home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/下的modules目录

OPENCV_GENERATE_PKGCONFIG选项打勾,这一项是用来生成opencv.pc文件,很重要

openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第7张图片

如果没有生成去相应的目录下手动生成,可以直接百度。 

BUILD_opencv_world选项打勾,默认是不勾选的,勾选后最后只会产生一个库文件

openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第8张图片

直接Generate通常会失败,同样是因为下载文件出错

openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第9张图片​ 

所以我提前下载好,下载失败的文件有:

boostdesc_lbgm.i
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_48.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_120.i
face_landmark_model.dat

前面11个文件对应opencv_contrib-4.4.0目录下的/modules/xfeatures2d/中的文件,最后一个文件face_landmark_model.dat对应的是opencv_contrib-4.4.0目录下的/modules/face/中的文件

前7个文件的下载链接:

https://github.com/opencv/opencv_3rdparty/tree/contrib_xfeatures2d_boostdesc_20161012

第8个到第11个文件的下载链接:

https://github.com/opencv/opencv_3rdparty/tree/contrib_xfeatures2d_vgg_20160317

11个文件下载完成后全部复制到/home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/src目录下,然后进入home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/cmake目录中

打开download_boostdesc. cmake文件,把第27行的网址注释掉,改为

“file:/home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/src/”

openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第10张图片

同样的,打开download_vgg.cmake文件,把第21行的网址注释掉,改为

file:/home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/src/”

openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第11张图片

face_landmark_model.dat的下载链接是:

https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat
这个链接不太好用,直接上网盘下载

下载后放入home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/face目录下,打开该目录下的CMakeLists.txt文件,把第19行的网址注释掉,改为

“file:/home/username/software/opencv-4.4.0/opencv_contrib-4.4.0/modules/face/”

openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第12张图片

重新Generate,出现Configuring done和Generating done后,确认没有红色报错

还有四个文件是需要下载的,下载后放入

opencv_contrib/modules/wechat_qrcode

openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第13张图片

并修改CMakeLists.txt

openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第14张图片

 带CUDA编译

  • 在搜索框中输入cuda,出现的所有选项都打勾
  • openpose环境基于opencv4.4 +cuda11.3+cudnn8.X_第15张图片

  • 搜索test,出现的所有选项都取消勾选

  • 选项ENABLE_FAST_MATH上打勾

  • 再次点击Configure,出现Configuring done后,确认没有红色错误,确认找到CUDA和cuDNN

  • 这时会出现一些新的选项,首先在CUDA_FAST_MATH选项后打勾

  • 搜索cuda,确认所有选项都打勾

  • 再次Generate,出现Configuring Done和Generating Done后,确认没有报错,确认找到CUDA和cuDNN,退出cmake-gui。

会出现sm35  sm50类似的错误 是因为老显卡的算力已经不支持 可以将52前的都删除。

 make

  • 打开终端,进入build目录

make
注:这里可以多线程编译,不过直接make出问题的概率小一点

问题:

Opencv make报错 Built target libprotobuf

回到cmake-gui

手动加:ENABLE_CXX11=1

在configure 再generate

再make
多线程:
(1)查看CPU核心数:nproc
(2)make -j20

等待一段时间,100%完成即可

执行:

sudo make install

再次出现100%,就成功了

你可能感兴趣的:(opencv,人体姿态估计,opencv)