yolo笔记

转载自:https://www.jianshu.com/p/813342202837

系统版本: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

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

yolo笔记_第1张图片

运行以下命令:

$ ./darknet

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

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

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

yolo笔记_第2张图片

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

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

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

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

你会看到以下效果:

yolo笔记_第3张图片
yolo笔记_第4张图片

我们没有使用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 的版本

yolo笔记_第5张图片


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

yolo笔记_第6张图片

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

yolo笔记_第7张图片

在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 

yolo笔记_第8张图片

输入以下命令,安装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

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

yolo笔记_第9张图片

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

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



---安装CUDA---

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

yolo笔记_第10张图片

在Base Installer中,点击download下载.

yolo笔记_第11张图片

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

$ 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

yolo笔记_第12张图片



---安装cuDNN---

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

yolo笔记_第13张图片

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

yolo笔记_第14张图片

因为我们先前安装了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

效果很好



作者:_ALi_
链接:https://www.jianshu.com/p/813342202837
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(深度学习)