OpenCV4 + Python3 (virtualenv) + CUDA + cuDNN
主要参考
https://www.pyimagesearch.com/2018/08/15/how-to-install-opencv-4-on-ubuntu/
Update: 20190513
在Ubuntu 16.04系统上,默认的gcc和g++已经升级到5.5,该版本的g++/gcc与OpenCV4.0.0+CUDA9.1的兼容性并不好,编译时会包类似于下方所列的错误
/usr/lib/gcc/x86_64-linux-gnu/4/include/avx512fintrin.h(xxxx): error: argument of type “const void *” is incompatible with parameter of type “const float *”
更改CMake的配置,使用更新版本的g++/gcc似乎解决了这个问题。
Ubuntu 16.04安装g++6的方法请参考:https://askubuntu.com/questions/746369/how-can-i-install-and-use-gcc-6-on-xenial
(sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get install gcc-6 g+±6)
配置CMake使用特定g++/gcc的方法请参考:https://gitlab.kitware.com/cmake/community/wikis/FAQ
(在CMake 命令行上增加 -D CMAKE_C_COMPILER=gcc-6 -D CMAKE_CXX_COMPILER=g+±6)
编译时CUDA部分会报较多的warning,还未检测CUDA部分代码工作是否正常。
是时候升级到Ubuntu18 + CUDA10了吧。
另外,目前使用的是OpenCV 4.1.0, 此时不必再手工复制编译好的文件到python的目录内了。
更新CMake
OpenCV4要求使用cmake 3.5.1以上版本,更新cmake使用的命令为
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update
sudo apt-get install cmake3 cmake3-data
CMake指令
Enable对CUDA的支持,最终的cmake指令为
cmake -DCMAKE_BUILD_TYPE