我在 Windows 上使用 opencv::dnn 模块编译了一个应用程序 (YOLOv3)。现在我想在 Ubuntu 上编译同一个应用程序。但我无法运行它。
有人在 Ubuntu 上使用过 opencv::dnn 吗?
答案1
首先,请确保您已安装 CUDA 和 CuDNN。
其次,按照以下步骤安装支持 CUDA 的 opencv。
让我们安装一些依赖项:
sudo apt update -y
sudo apt upgrade -y --no-install-recommends
sudo apt install -y build-essential pkg-config cmake git wget curl unzip
sudo apt install -y libgtk-3-dev
sudo apt install -y ffmpeg
sudo apt install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavresample-dev
sudo apt install -y libyaml-cpp-dev libgoogle-glog-dev libgflags-dev
然后安装以下软件包:
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install libhdf5-serial-dev
我们将在/opt/
文件夹中安装 opencv 4.2.0,因此运行cd /opt/
然后运行以下命令下载 OpenCV 4.2.0:
wget -O opencv.zip https://github.com/Itseez/opencv/archive/4.2.0.zip
之后,运行以下命令下载OpenCV的contrib模块:
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/4.2.0.zip
完成后,解压下载的文件:
unzip opencv.zip
unzip opencv_contrib.zip
我们现在可以使用 cmake 来配置我们的构建。运行以下命令时要特别小心:
cd opencv-4.2.0
mkdir build
cd build
创建所需的文件夹后,运行此命令开始编译 opencv:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib-4.2.0/modules /opt/opencv-4.2.0/ -D BUILD_EXAMPLES=ON -DBUILD_opencv_cudacodec=OFF -D OPENCV_DNN_CUDA=ON -D WITH_CUDNN
cmake
构建所有 OpenCV 和 Cuda NVCC 库大约需要 5 分钟。之后,执行以下命令:
make-j4
完成后make-j4
,运行:
make install
如果出现错误,请运行sudo make install
。
最后运行:
ldconfig
或者sudo ldconfig
如果您遇到权限被拒绝的情况。
其他资源:
-加速 OpenCV 4.2.0 – 使用 CUDA 和 Python 绑定构建
-如何将 OpenCV 的“dnn”模块与 NVIDIA GPU、CUDA 和 cuDNN 结合使用