0%

yolo_v4实践(1)环境搭建

yolo是一个实时物体检测的算法,实时性以及精度都很不错,最近正好有项目用到,在这里总结一下,这一片主要记录在WIN以及UBUNTU下环境的配置,下面大部分过程两个系统中很相似,不同的地方我会提到

yolov4是目前比较新的一个版本,提升了检测性能以及可以在家用的GPU平台中进行训练,yolo官方的版本主要是在darknet框架下实现的,同时有很多大神把它写成了不同的版本,这里考虑到需要跨平台来使用,为了简化环境配置,使用pytorch版本YOLOv4

1.安装 Anaconda

首先我们需要安装anaconda,这是一个python的虚拟环境,当你需要配置不同的依赖环境又害怕相互冲突时这个就非常有用了,在WIN下安装过程很简单,记得添加到PATH路径就好,这里就不用赘述了,对于Linux,我的版本是Ubuntu16.04,下载对应版本.sh安装包后执行下列命令安装:

1
2
bash ~/Downloads/Anaconda3-5.2.0-Linux-x86_64.sh
bash ~/Downloads/Anaconda2-5.2.0-Linux-x86_64.sh

这里第一个Anaconda3对应的是python3版本,Anaconda2则是python2版本,下载的时候要注意
输入命令后一路跟着提示完成就可以了,安装完成后命令行输入conda如果找不到还要添加到系统的环境,输入下面命令

1
2
3
4
5
$ sudo gedit ~/.basrc
在打开文件结尾处添加
export PATH=/home/aeasringnar/anaconda3/bin:$PATH
保存退出后运行
source ~/.bashrc

至此Anaconda就安装成功了

2.安装所需环境

首先创建一个虚拟环境,名称为pytorch(可以自定义,后面一致就行)

conda create --name torch python=3.6

然后激活这个环境

conda activate torch

安装依赖项,如果安装CPU版本,建议模型的选择上选择tiny的模型,不然帧率会很低,安装命令如下:

conda install pytorch torchvision cpuonly -c pytorch

如果需要GPU版本,需要首先安装Nvidia驱动,先添加PPA源
$ sudo add-apt-repository ppa:graphics-drivers/ppa
更新软件列表
$ sudo apt-get update

查看当前可安装的驱动版本
ubuntu-drivers devices
驱动列表
在列出的驱动版本中选择要安装的版本使用pip方式进行安装,例如这里我安装的是440版本,可以执行命令
sudo pip install nvidia-440
或者可以直接执行udo ubuntu-drivers autoinstall自动安装推荐的版本
安装完成后我们在命令行执行
$ nvidia-smi
正确安装会有如下输出
显卡信息
注意这里的cuda版本下面安装cudatoolkit的时候要一致

执行下列命令安装pytorch,注意这里的cudatoolkit版本和上面一致

1
2
$ pytorch  conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.2 -c pytorch
$ pip install opencv_python

3.运行摄像头的Demo实时检测

从Github中下载这个项目,打开目录下的tool文件夹,将camera.py移到上一层目录,这里一个摄像头检测的Demo,有一处地方需要修改,在第68行,将
orig_im = plot_boxes_cv2(frame, boxes, class_names=class_names)
改为
orig_im = plot_boxes_cv2(frame, boxes[0], class_names=class_names)

项目路径新建文件夹weight,下载yolo模型文件yolov4.weights并放入,当然,配置文件路径在camera.py文件中也可以做修改自定义,在36行左右,如图所示
路径
其中coco.names存储检测的对象名称,.cfg是检测网络的网络结构配置文件,.weights是权重文件,预训练的模型

经过上面步骤后执行命令python camera.py就可以运行啦,控制台会显示当前的fps,在我的笔记本GTX1070中可以达到10fps左右。