YOLO-Darknet安装

作者: 龙黎_ | 来源:发表于2018-04-24 15:31 被阅读8569次

    系统版本:Ubuntu16.04

    显卡:GTX 1070

    翻译 + 整理地址: https://pjreddie.com/darknet/install/

    YOLO: 是实现实时物体检测的系统,Darknet是基于YOLO的框架


    darknet非常容易安装,它只有2个可选择的依赖:

        Opencv: 能支持更多格式的图像,并且得到实时的显示

        GPU: 利用GPU计算,能大大提升YOLO的识别帧率,画面更加流畅

    安装这两个依赖都必须要先安装基础版yolo


    ---安装基础版yolo---

    首先将darknet从github上clone下来:

    $ git clone https://github.com/pjreddie/darknet.git

    $ cd darknet

    $ make

    如果正确执行的话,会看到以下内容:

    运行以下命令:

    $ ./darknet

    看到以下效果,即为安装成功:

    ---基础版yolo测试---

    完成上面的操作后,我们可以看到 cfg/目录下已经有了YOLO的配置文件了.

    现在为了测试我们的yolo,需要下载官方训练完毕的权重(237MB),或者运行以下命令:

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

    下载完毕后,运行以下命令:

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

    你会看到以下效果:

    我们没有使用OpenCV编译Darknet,因此无法直接显示检测结果。相反,它将它们保存在/darknet/predictions.png中。您可以打开它来查看检测到的对象。由于我们在CPU上使用Darknet,每个图像需要大约6-12秒。如果我们使用GPU版本,速度会更快.

    在data/目录下还有其他的测试图片,可以尝试一下.


    在我尝试利用摄像头进行实时检测的时候,发现识别的速度特别慢,因为此时的程序还是使用的CPU,一帧图像都得要处理6-7秒.所以我们需要给用CUDA+Opencv编译yolo,使之能通过GPU显卡运算,这样速度会提高很多很多.

    首先需要注意的是:

    Ubuntu GPU驱动 / CUDA版本 / cudnn 版本 都要相互关联,版本不对应的话,就会出错.

    版本确认顺序:CUDA版本-->cudnn版本-->Ubuntu GPU版本

    安装顺序:Ubuntu GPU版本-->CUDA版本-->cudnn版本


    版本确认:

    1. 进入https://developer.nvidia.com/cuda-toolkit-archive,确认要安装的cuda版本

    这里我选择了CUDA Toolkit 9.0 的版本

    2.进入https://developer.nvidia.com/cudnn

    点击"download cuDNN",他会要求你进行注册以及一系列的问卷调查,完成以后,用邮箱登录.

    在cuDNN的" Installation Guide "中,我们可以看到:

    因为先前选择了CUDA 9.0,所以GPU驱动需要R384及以上版本


    安装顺序:Ubuntu GPU版本-->CUDA版本-->cudnn版本

    ---安装Ubuntu GPU驱动---

    $ sudo apt update 

    $ sudo add-apt-repository ppa:graphics-drivers/ppa  

    $ sudo apt update 

    $ ubuntu-drivers devices 

    输入以下命令,安装nvidia-384

    $ sudo apt install nvidia-384

    安装完以后

    $ reboot

    如果reboot之后再也进入不了桌面系统,恭喜你,可能这样的方法对你不合适 = =

    先不要慌 。。。我要遇到了同样的问题,无限坏死中。。。

    接着往看下看。。。

    ---按照步骤reboot后,无法login的解决方法---

        1.在你的用户登录界面按ctrl+alt+F1进入tty模式 (ctrl+alt+F7可以返回桌面系统)

        2.输入你的账户名和密码

    依次运行如下语句:

    $ sudo apt-get purge nvidia-*    

    $ sudo add-apt-repository ppa:graphics-drivers/ppa    

    $ sudo apt-get update    

    $ reboot  

    卸载掉刚才安装的所有驱动就可以重新登录桌面系统了,可以在测试几个版本,如果出现同样的问题,那就不是驱动版本的问题了,也有教程说Block内部集显驱动就可以,我试过还是不行,差点把Ubuntu格了重装 = =

    但是后来再YouTube上找到了合适的方法,要禁用BIOS系统UEFI的Secure boot,ASUS的台式机非常不正常。。。

    禁用Secure boot之后,安装非常顺利,测试v384没有问题

    $ nvidia-smi

    可用上述命令检查是否安装成功

    卸载驱动,以我安装的nvidia-384为例

    $ sudo apt-get remove --purge nvidia-384

    ---安装CUDA---

    在先前的版本确认中, 我选择了CUDA Toolkit 9.0的版本,依次选择我们需要的选项.

    在Base Installer中,点击download下载.

    下载完以后,命令行进入下载路径,运行以下命令进行安装:

    $ sudo sh cuda_9.0.176_384.81_linux.run

    配置环境变量

    https://devtalk.nvidia.com/default/topic/995815/cuda-setup-and-installation/path-amp-ld_library_path/

    $ sudo nano ~/.bashrc

    用户目录下 .bashrc 文件后面加入下面语句,然后ctrl+o保存。ctrl+x退出

    export  LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64

    然后用下面语句使环境变量生效

    $ source ~/.bashrc

    再用下面语句检查配置情况

    $ nvidia-smi 

    卸载CUDA

    ---安装cuDNN---

    进入https://developer.nvidia.com/cudnn

    点击"download cuDNN",他会要求你进行注册以及一系列的问卷调查,完成以后,用邮箱登录.

    因为我们先前安装了CUDA 9.0 ,所以这里我们选择第二项中的" cuDNN v7.1.3 Library for Linux " 进行下载.

    下载完成的文件名:cudnn-9.0-linux-x64-v7.1.tgz

    配置cuDNN

      $ tar -xzvf cudnn-8.0-linux-x64-v6.0.solitairetheme8

      $ 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 /usr/local/cuda/lib64/libcudnn*

    cuDNN的卸载和安装类似,只要把先前拷贝的文件删除即可.


    截止到这里CUDA安装完毕.

    安装opencv3.2.0


    ---使用CUDA 和OpenCV编译Darknet---

    修改darknet/ 目录下的Makefile文件

    https://blog.csdn.net/dcrmg/article/details/78565350

    (1) 将1~3行改为:

    GPU=1

    CUDNN=1

    OPENCV=1

    (2) 将23行左右的NVCC路径改为以下代码( 具体路径根据自己的安装版本/位置决定 ):

    NVCC=/usr/local/cuda-9.0/bin/nvcc

    (3) 将49行左右的ifeq ($(GPU), 1)内容改为:

    ifeq ($(GPU), 1)

    COMMON+= -DGPU -I/usr/local/cuda/include/

    CFLAGS+= -DGPU

    LDFLAGS+= -L/usr/local/cuda-9.0/lib64 -lcuda -lcudart -lcublas -lcurand

    endif

    修改配置完毕后,保存

    在darknet/ 目录下运行以下命令:

    $ make -j4

    $ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights

    效果很好

    相关文章

      网友评论

        本文标题:YOLO-Darknet安装

        本文链接:https://www.haomeiwen.com/subject/qffjlftx.html