先在 nvidia的docker镜像库下载对应的版本
进入docker后,下载opencv与 opencv_contrib.再通过cmake编译。
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
#进入opencv项目
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=/data/www/opencv_contrib/modules \
-D WITH_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1 \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D BUILD_EXAMPLES=OFF \
-D PYTHON3_EXECUTABLE=/usr/bin/python3 \
-D OPENCV_DNN_CUDA=ON \
-D WITH_NVCUVID=OFF \
-D WITH_NVCUVENC=OFF \
编译中遇到如下几个问题:
- IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz
这个应该是编译opencv源码的通用问题,主要是网络问题,无法下载ippicv包,这里提供一个手动寻找安装包的方式,步骤如下:
首先打开opencv-x.x.x\3rdparty\ippicv\ippicv.cmake文件,分别找到如下语句
"${OPENCV_IPPICV_URL}"
"$ENV{OPENCV_IPPICV_URL}"
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
中的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
修改为ippicv安装包所在本地路径
"file:///home/student/SFDN/Downloads"
2.需安装 cuDNN
访问nvidia的官网
下载解压成功后运行命令:
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
在编译opencv
make -j$(nproc)
make install
运行代码
import cv2
if __name__ == '__main__':
print(cv2.cuda.getCudaEnabledDeviceCount())
安装成功。