超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4

这篇文章是本人折腾了两天之后将步骤捋顺然后记录一下。如果你的电脑刚刚装好系统,想要安装显卡驱动、编译安装ffmpeg、编译安装cuda与cudnn、编译安装opencv再或者想要使用darknet-yolov4都可以参考。废话不多说,马上开始。

一、 安装软件及依赖项

1.1 安装编译依赖项

终端运行以下语句安装好依赖项

sudo apt install ffmpeg unzip axel g++ build-essential make cmake pkg-config libgtk2.0-dev libjpeg-dev libtiff5-dev libavresample-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libdc1394-22-dev libv4l-dev
  1. ffmpeg
  2. unzip
  3. axel
  4. g++(gcc)
  5. build-essential
  6. make
  7. cmake
  8. pkg-config
  9. libgtk2.0-dev
  10. libjpeg-dev
  11. libtiff5-dev
  12. libavresample-dev
  13. libgstreamer-plugins-base1.0-dev
  14. libgstreamer1.0-dev
  15. libdc1394-22-dev
  16. libv4l-dev

1.2 安装lightdm

sudo apt install lightdm

在弹出界面选择lightdm安装即可。

二、 下载需要的文件

2.1 NVIDIA显卡驱动-515

英伟达显卡驱动下载链接: 英伟达显卡驱动官网下载
我笔记本是RTX2060。
图文下载步骤如下:

  1. 打开上面网址
  2. 在界面中选择对应选项”产品类型”
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  3. 产品系列
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  4. “产品家族”
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  5. “操作系统”后点击下载
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  6. 再点击”下载”
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  7. “同意并开始下载”
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4

下载到本地的文件名是” NVIDIA-Linux-x86_64-515.76.run“。
你需要针对你自己的显卡类型和型号进行选择下载。
注: 显卡驱动一定要在主目录建一个英文文件夹然后把文件放里!!!后续在纯黑终端执行命令,中文路径就找不到了

; 2.2 cuda-11.5

cuda下载链接: cuda官网下载
在网站右上角搜索框搜索”cuda 11.5″,在搜索结果界面选择要下载的版本,我选择的是” CUDA Toolkit 11.5 Update 2 Downloads | NVIDIA Developer“,也就是11.5.2。
注:我是安装完显卡驱动通过” nvidia-smi“查看支持cuda版本为11.7,版本太高了所以我选择使用11.5。
图文下载步骤:

  1. 打开上面网站
  2. 在界面右上角搜索框输入”cuda 11.5″回车
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  3. 在搜索结果中选择”CUDA Toolkit 11.5 Update 2 Downloads | NVIDIA Developer”
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  4. 选择”Linux”
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  5. 选择”x86_64″
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  6. 选择”Ubuntu”
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  7. 选择”20.04″
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  8. 选择”runfile[local]”
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  9. 按照官方指令下载
    超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4

官网给出下载命令:

wget https://developer.download.nvidia.com/compute/cuda/11.5.2/local_installers/cuda_11.5.2_495.29.05_linux.run

官网给出安装命令:

sudo sh cuda_11.5.2_495.29.05_linux.run

下载到本地的文件名是” cuda_11.5.2_495.29.05_linux.run“。
你需要针对你自己的显卡类型和型号进行选择下载。

2.3 cudnn-8.3.3

cudnn下载链接: cudnn官网下载
cudnn下载的时候需要有nvidia账号,可能需要登陆,没有就注册一个。
版本选择一定要注意别选错了,我选择的” Download cuDNN v8.3.3 (March 18th, 2022), for CUDA 11.5“,点击之后选择” Local Installer for Linux x86_64 (Tar)“,可能需要登陆一下。
下载到本地的文件名是” cudnn-linux-x86_64-8.3.3.40_cuda11.5-archive.tar.xz“。
你需要针对你自己的显卡类型和型号进行选择下载。

2.4 opencv-4.5.5

opencv下载链接: opencv官网下载
点击” Code“后选择” Download ZIP“进行下载。
下载到本地的文件名是” opencv-4.5.5.zip“。

2.5 opencv_contrib-4.5.5

opencv_contrib下载链接: opencv_contrib官网下载
点击” Code“后选择” Download ZIP“进行下载。
下载到本地的文件名是” opencv_contrib-4.5.5.zip“。

2.6 darknet-master

darknet-master下载链接: darknet-master官网下载
点击” Code“后选择” Download ZIP“进行下载。
下载到本地的文件名是” darknet-master.zip“。

2.7 yolov4.weights

yolov4.weights下载链接: yolov4.weights官网下载
向下找到” How to evaluate FPS of YOLOv4 on GPU“后点击” yolov4.weights“进行下载。

超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4

下载到本地的文件名是” yolov4.weights“。

; 三、 安装&编译

3.1 显卡驱动

3.1.1 卸载原有驱动

sudo apt remove --purge nvidia*

3.1.2 禁用nouveau驱动

  1. 备份文件
sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.backup
  1. 打开文件
sudo gedit /etc/modprobe.d/blacklist.conf
  1. 修改文件

在文件末尾添加如下内容

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
  1. 保存后退出

3.1.3 关闭nouveau

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

3.1.4 更新

sudo update-initramfs -u

3.1.5 重启电脑

reboot

3.1.6 重启后查看是否禁用成功

执行以下内容,没有任何输出内容则为成功禁用

lsmod | grep nouveau

3.1.7 按下组合键ctrl+alt+f3(f1-f6均可)进入字符界面(安装显卡驱动剩余步骤可以用手机拍照)

  1. 关闭图形界面
sudo service lightdm stop
  1. 进入驱动文件目录后给驱动文件赋予执行权限
sudo chmod  a+x NVIDIA-Linux-x86_64-515.76.run
  1. 安装
    -no-x-check:安装驱动时关闭X服务
    -no-nouveau-check:安装驱动时禁用nouveau
    -no-opengl-files:只安装驱动文件,不安装OpenGL文件
sudo ./NVIDIA-Linux-x86_64-515.76.run -no-x-check -no-nouveau-check -no-opengl-files

安装过程中一些选项选择:
The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。
Nvidia’s 32-bit compatibility libraries? 选择 No 继续。
Any pre-existing x confile will be backed up. 选择 Yes 继续

3.1.8 安装完毕打开图形界面并重启

注:重启进入bios设置:1.设置独显直连 2.关闭安全启动

sudo service lightdm start & reboot

3.1.9 重启后检查是否安装成功

终端输入以下内容查看

nvidia-smi

超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
到这里显卡驱动已经安装完毕。

3.2 cuda

3.2.1 按照官网命令进行安装

  1. 进入安装包目录,赋予可执行权限
sudo chmod a+x cuda_11.5.2_495.29.05_linux.run
  1. 执行安装命令
sudo sh cuda_11.5.2_495.29.05_linux.run
  1. 安装
    注:cuda会自带旧版显卡驱动,在安装时要取消勾选,就是把驱动对应”[]”框中的”x”取消,然后等待安装结束即可。
  2. 查看安装的版本信息
cat /usr/local/cuda/version.json

超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
  1. 测试安装是否成功
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

运行后输出如下,并且最后有”PASS”字样

超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
表示安装成功。

3.2.2 配置cuda相关环境变量

  1. 打开文件
sudo gedit /etc/profile
  1. 修改文件

在文件最后添加如下内容,保存后退出

export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
  1. 生效
source /etc/profile
  1. 验证环境变量
nvcc -V

超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
到这里cuda安装完毕。

3.3 cudnn

3.3.1 解压

进入cudnn压缩包所在目录,解压文件

tar -xvf cudnn-linux-x86_64-8.3.3.40_cuda11.5-archive.tar.xz

解压后得到文件夹” cudnn-linux-x86_64-8.3.3.40_cuda11.5-archive

3.3.2 复制

将文件夹内文件拷贝到指定文件夹
进入解压后的文件夹

cd cudnn-linux-x86_64-8.3.3.40_cuda11.5-archive
sudo cp include/cudnn*.h /usr/local/cuda/include
sudo cp -P lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

3.3.3 通过以下指令验证

cat /usr/local/cuda/include/cudnn_version.h

超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
到这里cudnn安装完毕。

3.4 opencv&opencv_contrib

3.4.1 解压&剪切

将压缩包解压并将opencv_contrib文件夹剪切进opencv文件夹

unzip opencv-4.5.5.zip
opencv_contrib-4.5.5.zip

将opencv_contrib-4.5.5文件夹放入opencv-4.5.5文件夹

mv opencv_contrib-4.5.5 opencv-4.5.5

3.4.2 新建文件夹

cd opencv-4.5.5
mkdir build
cd build

3.4.3 执行cmake

1.CUDA_ARCH_BIN=7.5此项需要根据你自己的显卡进行修改,我的是笔记本GeForce RTX2060所以是7.5。
查询网址
2.CUDNN_VERSION=11.5此项需要根据你自己的cuda版本填写,可以看一下”/usr/local”下的cuda文件夹。
3.OPENCV_EXTRA_MODULES_PATH=/home/heqingchun/soft/opencv-4.5.5/opencv_contrib-4.5.5/modules/ … 此项需要换成自己的opencv-4.5.5路径,最后的两个点不能省略。

cmake -D WITH_CUDA=ON -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D WITH_LIBV4L=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D CUDA_ARCH_BIN=7.5 -D WITH_CUBLAS=1 -D CUDNN_VERSION=11.5 -D CUDNN_INCLUDE_DIR=/usr/local/cuda/include -D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so -D WITH_FFMPEG=ON -D BUILD_opencv_world=ON -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=YES -D OPENCV_EXTRA_MODULES_PATH=/home/heqingchun/soft/opencv-4.5.5/opencv_contrib-4.5.5/modules/ ..

3.4.4 cmake完毕后执行make

如果电脑配置低j后面的数字可以小一点防止电脑崩溃

sudo make -j16

3.4.5 make完毕后执行make install

sudo make install

3.4.6 配置环境变量

  1. 写入
echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf
  1. 更新
sudo ldconfig
  1. 写入(也可以用gedit在文件末尾添加)
echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" >> /etc/profile
echo "export PKG_CONFIG_PATH" >> /etc/profile
  1. 更新
source /etc/profile
  1. 写入
echo "/usr/local/lib" >> /etc/ld.so.conf
  1. 更新
sudo ldconfig
  1. 验证
pkg-config --modversion opencv4

超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4
到这里opencv-4.5.5编译安装完毕。

3.5 darknet编译

3.5.1 解压

unzip darknet-master.zip

3.5.2 进入文件夹修改Makefile

gedit Makefile

修改以下内容:

  1. GPU=1
  2. CUDNN=1
  3. OPENCV=1
  4. LIBSO=1
  5. ARCH
    根据自己显卡的算力进行修改,我的是RTX2060,查得是7.5,所以把”# ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]”前边的注释取消(删掉”#”)。
    //# GeForce RTX 2080 Ti, RTX 2080, RTX 2070, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Tesla T4, XNOR Tensor Cores
    //# ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]
  6. NVCC
    NVCC=nvcc改为自己的路径->NVCC=/usr/local/cuda/bin/nvcc

3.5.3 make

make -j8

3.5.4 验证

将之前下载的yolov4.weight文件放到darknet-master文件夹

./darknet detect build/darknet/x64/cfg/yolov4.cfg yolov4.weights build/darknet/x64/dog.jpg

超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4

大家觉得对自己有帮助麻烦给个赞,3Q~

Original: https://blog.csdn.net/heqingchun16/article/details/127020710
Author: heqingchun0116
Title: 超级详细Ubuntu20.04.5系统下编译安装OpenCV with ffmpeg4.2.7、NVIDIA显卡驱动515、cuda11.5、cudnn8.3.3并编译使用darknet-yolov4

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/701352/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球