Ubuntu20.04+cuda11.1+yolo3 目标检测 深度学习系统 真正从0搭建 包含各种可能遇到的错误

文章目录[隐藏]

  • 0、开始本教程前请先备份电脑中的重要文件!!!!
  • 1、Ubuntu20.04 搭建
  • 2.安装NVIDIA 驱动
  • 3 安装cuda11.1
  • 4 安装cudnn
  • 5安装opencv
  • 6 安装darknet
  • 6.2 下载yolo3配置文件
  • 6.3 进入到下载下来的darknet文件夹下,打开Makefile,对如下几个地方进行修改
  • 6.5 编译
  • 6.6 检验,在darknet目录下打开终端,输入

  • 本篇文章包含内容较多,请参照目录浏览,在每一部分结束或,有该部分可能遇到的问题

    0、开始本教程前请先备份电脑中的重要文件!!!!

    1、Ubuntu20.04 搭建

    更详细的内容请参照该博客:https://www.cnblogs.com/masbay/p/10745170.html

    我的电脑为UEFI新式bios+双硬盘(SSD固态硬盘+机械硬盘)模式,其他情况请参照上述博客

    1.1 为Ubuntu准备空间

    1.1.1 在 WIN10系统下创建空白磁盘分区

    1.1.1.1 回到桌面,鼠标右键点击此电脑,选择管理,结果如下:

    在这里插入图片描述

    1.1.1.2 进入然后选择磁盘管理,结果如下:

    在这里插入图片描述

    1.1.1.3 选择主分区,一般是最大的分区,右键,点击“压缩”,压缩出500M即可

    在这里插入图片描述

    压缩完得到大小500M的可用空间,记住你设置的大小,这里是500M

    这里是1GB,具体是多少看你的压缩设置

    1.1.2 准备一块Ubuntu系统的主空间

    上面的500M 相当于C盘,我们给500M即可,接下来我们要为系统准备主空间,将一块硬盘分区直接当作空间,在安装时格式化,也可以使用 DiskGenius 重新划分分区。W

    下载地址:https://www.diskgenius.cn/download.php

    1.2、制作Ubuntu的U盘安装文件

    1.2.1 下载安装并打开软碟通,插上 U 盘,并且最好备份你的 U 盘,因为之后需要格式化

    下载地址 https://cn.ultraiso.net/xiazai.html

    1.2. 2 进入软碟通,进行如下操作 选择文件,并且打开你下载的 ubuntu 所在的目录,选择 unbuntu 镜像

    在这里插入图片描述在这里插入图片描述

    1.2.3 在软碟通界面菜单栏选择启动,选择写入硬盘映像,如图所示:

    在这里插入图片描述
    进入以后界面

    1.2.4 检查以下内容:

    • 看你的硬盘驱动器是否对应的是你的 U 盘(必须是) ,一般默认是
    • 看映像文件是否对应你的 ubuntu 镜像
    • 如果上述均没有错误,选择格式化,之后就会格式化你的 U 盘
    • 在 U 盘格式化完毕之后,选择写入,之后就是慢慢等待了,等待写入完毕

    1.3 U盘安装系统

    1.3.1 确认自己电脑主板bios怎么进入,我的是联想笔记本,开机时按F12即可,其他笔记本可参考下图(如果连bios都不会进,那本篇教程可能不适合你,先学学基础知识吧)

    在这里插入图片描述

    1.3.2 进入bios这里要干两件事情,都非常重要!

    1.3.2.1 关闭在boot manager里关secure boot!(有些secure boot在另外的位置,自己找找)

    如果不关可能导致显卡驱动安装出现问题

    1.3.2.2 设置计算机启动顺序,选择usb启动,然后重启

    在这里插入图片描述

    1.3.3 进入Ubuntu安装系统,选择中文,接下来都是一些常见的设置,根据自己情况设置,直到遇见"安装类型"选项

    可以选择不联网,节约安装时间,在安装中途联网也是可以跳过的
    在这里插入图片描述

    1.3.3 在安装类型这里选择"其他类型"!!非常重要!!可能界面有所区别,但内容不会差很多

    在这里插入图片描述

    1.3.4 进行手动分区,还记得我们整理出来的安装系统的500M吗?选择它,并在挂载点中选择/boot 如果遇到无法选择的情况,在左下角有+和-,可以重新划分

    在这里插入图片描述

    在这里插入图片描述

    1.3.5 在 我们预留的主分区中,选择挂载点 / 如果遇到无法选择的情况,在左下角有+和-,可以重新划分

    1.3.6 接下来就选择开始安装了,按你需要设置,也可以直接继续,不影响,最后是设置系统用户,自己设置输入就可以了

    在这里插入图片描述

    1.3.7 接下来等待安装完成即可,安装完成应当如图

    在这里插入图片描述

    1.3.8 重启电脑,开机时会进入grub,windows boot manager 为原来的windows系统,选择相应的系统即可

    在这里插入图片描述

    1.4 可能遇到的问题

    1.4.1 DiskGenius重新划分分区时遇到"$Bitmap 有标记已使用的未用簇"

    在这里插入图片描述
    解决办法 使用管理员运行cmd,在命令行中输入“chkdsk /f /x c:”,最后的c:替换为需要检查的盘符,
    如遇到"已被占用,不能卸载",则会提示在开机是进行检查,确定并重启即可

    1.4.2 windows boot manager 无法进入系统,进入后来到哦系统恢复界面,且点击"继续启动windows"循环这一过程.

    这里的情况比较复杂,但很可能是windows的引导程序出现问题.
    可以尝试以下方法:

    1. 制作windows的启动盘.这里可以试试老毛桃,傻瓜式安装,而且后面的引导修复工具也可以用到.下载完整版https://www.laomaotao.net/
    2. 与1.3.1 方法相同,进入win pe
    3. 可以使用老毛桃的引导区一键修复

    2.安装NVIDIA 驱动

    这里采用的是分开安装驱动和cuda的方式,首先确定自己显卡的型号和支持的cuda版本!!
    可以参考 https://jingyan.baidu.com/article/6fb756ec4fabc4241858fbf7.html
    没有NVIDIA控制面板就去在windows下安装驱动

    2.1 从官网下载驱动.run 文件

    https://www.nvidia.com/Download/index.aspx?lang=cn

    2.2 打开终端输入以下命令删除旧驱动

    sudo apt-get purge nvidia*
    

    2.3 禁用nouveau

    2.3.1 首先利用命令行打开blacklist.conf,在文件末端加入内容

    sudo gedit /etc/modprobe.d/blacklist.conf
    

    2.3.2 在文件末端加入以下内容

    blacklist nouveau
    options nouveau modeset=0

    2.3.3 然后更新

     sudo update-initramfs -u
    

    2.3.4 最后重启

    终端下输入命令 lsmod | grep nouveau 查看是否被禁用,没有任何输出说明禁用成功

    2.4 安装相关依赖

    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
    sudo apt-get install --no-install-recommends libboost-all-dev
    sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
    sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
    

    2.5 禁用图形界面

    使用
    crtl+alt+f1~f6 打开tty界面,输入用户名密码登录
    使用

    sudo service lightdm stop
    

    禁用图形界面。

    2.6 赋予.run文件执行权

    sudo chmod 775 ****.run
    

    2.7 运行安装文件,基本上一路OK就好,注意不要安装opengl相关

    sudo sh ./NVIDIA-Linux-***.run --no-opengl-files
    

    2.8 挂在驱动

    modprobe nvidia
    

    2.9 安装完成,验证

    sudo nvidia-smi
    

    出现以下样子说明安装成功
    在这里插入图片描述

    2.10 可能遇到的问题

    2.10.1 提示注册secure boot相关

    退出安装,进入bios,关闭secure boot,具体可以参见1.3.2.1

    3 安装cuda11.1

    3.1 首先确认自己显卡支持的cuda版本并下载

    cuda下载地址: https://developer.nvidia.com/zh-cn/cuda-downloads

    3.2 运行.run文件

    sudo sh cuda_9.0.176_384.81_linux.run
    

    3.3 有些会让你输入accept 有些是选择yes,基本一路统一就好

    3.4设置环境变量

    3.4.1打开.bashrc文件

    vim .bashrc
    

    3.4.2 文末添加如下

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
    export PATH=$PATH:/usr/local/cuda-9.0/bin
    export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0
    

    3.4.3退出vim刷新环境变量

    source ~/.bashrc
    

    3.5 验证安装

    输入

    nvcc --version
    

    如果出现下图说明安装成功了
    在这里插入图片描述

    4 安装cudnn

    cudnn的安装非常简单

    4.1 下载安装文件

    按需求下载cudnn的安装文件:https://developer.nvidia.com/rdp/cudnn-archive

    4.2 解压缩,可以看到名为cuda 的文件夹,在当前目录打开终端,执行如下命令

    sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
     
    sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
     
    sudo chmod a+r /usr/local/cuda/include/cudnn.h
     
    sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
    

    4.3 验证安装,在终端输入

    cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
    

    如看到下图说明安装成功
    在这里插入图片描述

    5安装opencv

    5.1 安装cmake

    sudo apt-get install cmake
    

    5.2 安装依赖环境

    sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
    sudo apt-get install libgtk2.0-dev
    sudo apt-get install pkg-config
    

    5.3 下载自己需要的opencv版本

    我是Ubuntu20.04+NVIDIA drive 460.39+cuda11.1,在安装opencv-2.4.11时遇到了严重的问题!!无法解决。通过重新安装opencv-3.4.13解决了。无特殊版本需求的话可以先考虑opencv-3.4.13。

    下载地址:https://opencv.org/releases/
    点击Sources进行下载自己需要的版本
    在这里插入图片描述

    5.4 解压文件并进入文件夹

    5.5 进入文件夹后新建名为build的文件夹并进入

    mkdir build
    cd build
    

    5.6 cmake(这一步可能会遇到很多问题,见这一部分后面的常见问题)

    sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local..
    

    5.7 进行编译,需要的时间会比较长,可以使用多线程

    sudo make -j8
    

    5.8 进行安装

    sudo make install
    

    5.9 配置环境

    gedit打开/etc/ld.so.conf

    sudo gedit /etc/ld.so.conf
    

    gedit打开/etc/ld.so.conf执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加

    /usr/local/lib  
    

    gedit打开/etc/ld.so.conf

    sudo ldconfig  
    

    配置bash

    sudo gedit /etc/bash.bashrc  
    

    在最末尾添加

    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
    export PKG_CONFIG_PATH  
    

    保存,执行如下命令使得配置生效

    source /etc/bash.bashrc  
    

    更新

    sudo updatedb  
    

    5.10验证安装

    cd到opencv-3.4.1/samples/cpp/example_cmake目录下,顺序执行以下命令

    cmake .
    make
    ./opencv_example
    

    即可看到打开了摄像头,在左上角有一个hello opencv ,即表示配置成功。
    在这里插入图片描述

    5.11 可能遇到的问题

    在安装opencv-2.4.11遇到了以下问题,解决后依旧不能正确安装,版本更换至opencv-3.4.13后不再有任何问题

    5.11.1 sys/videoio.h not found

    到在usr/include中执行下面命令

    sudo mkdir sys
    

    在sys文件夹中添加网上找的videoio.h,或者直接新建一个videoio.h文件,内容可以为空,即可解决

    5.11.2 linux/videodev.h not found

    sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
    

    5.11.3 ffmpeg/avformat.h not found

    sudo ln -s /usr/local/include/libavformat ffmpeg
    

    6 安装darknet

    6.1 下载darknet

    git clone https://github.com/pjreddie/darknet     下载代码
    

    6.2 下载yolo3配置文件

    wget https://pjreddie.com/media/files/yolov3.weights
    

    6.3 进入到下载下来的darknet文件夹下,打开Makefile,对如下几个地方进行修改

    这里的ARCH= -gencode arch=compute_61,code=[sm_61,compute_61]根据自己的GPU型号的计算能力进行设置,可以通过下面链接查找GPU的计算能力。GTX1080Ti的计算能力是6.1,所以设置为61,其他型号的对照修改吧。
    https://developer.nvidia.com/cuda-gpus

    在这里插入图片描述

    6.5 编译

    make -j8
    

    6.6 检验,在darknet目录下打开终端,输入

    ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
    

    出现下图说明成功
    在这里插入图片描述

    版权声明:本文为CSDN博主「Sliverp」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_39791850/article/details/114076964

    相关推荐

    Ubuntu下YOLOv5目标检测

    Ubuntu下YOLOv5目标检测
    软件环境 ubuntu 20.4 anaconda3 cuda 11.1 pytorch 1.7 YOLOv5
    环境安装
    1 安装Anaconda
    2 安装cuda和cudnn 安装Nvid

    Ubuntu下利用TensorRT推理DBNet

    前言
    最近,在项目中需要用到DBNet,为了达到实时性,故想TensorRT来进行推理加速。 一、准备工作
    1.代码下载
    pytorch版的DBNet下载:DBNet(