yolov5是什么:

 

cuba使用yolov4比opencv快多少 yolov5 cuda_python

YOLOv5是一种单阶段目标检测算法,该算法在YOLOv4的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。主要的改进思路如下所示:

输入端:在模型训练阶段,提出了一些改进思路,主要包括Mosaic数据增强、自适应锚框计算、自适应图片缩放;
基准网络:融合其它检测算法中的一些新思路,主要包括:Focus结构与CSP结构;
Neck网络:目标检测网络在BackBone与最后的Head输出层之间往往会插入一些层,Yolov5中添加了FPN+PAN结构;
Head输出层:输出层的锚框机制与YOLOv4相同,主要改进的是训练时的损失函数GIOU_Loss,以及预测框筛选的DIOU_nms。

yolov5需要的环境


matplotlib>=3.2.2
 
numpy>=1.18.5
 
opencv-python>=4.1.2
 
pillow
 
PyYAML>=5.3
 
scipy>=1.4.1
 
tensorboard>=2.2
 
torch>=1.6.0
 
torchvision>=0.7.0
 
tqdm>=4.41.0

源码下载:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite


开始配置——必看

CUDA

CUDA(Compute Unified Device Architecture,统一计算设备架构),是显卡厂商NVIDIA在2007年推出的并行计算平台和编程模型。它利用图形处理器(GPU)能力,实现计算性能的显著提高。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题,从而能通过程序控制底层的硬件进行计算。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C/C++/C++11语言来为CUDA架构编写程序。CUDA提供host-device的编程模式以及非常多的接口函数和科学计算库,通过同时执行大量的线程而达到并行的目的。


Pytorch

Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。作为经典机器学习库 Torch 的端口,PyTorch 为 Python 语言使用者提供了舒适的写代码选择。
 


CUDANN

NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。


ANACONDA

Anaconda ,中文 大蟒蛇 ,是一个开源的 Python 发行版本,其包含了 conda 、Python等180多个科学包及其依赖项。 [1] Anaconda包括Conda、Python以及一大堆安装好的工具包,比如: numpy 、 pandas 等


配置正式开始

第一步:安装显卡驱动

下载链接    https://www.nvidia.cn/geforce/drivers/

查看自己的显卡

桌面上的 NVIDIA 控制面板

cuba使用yolov4比opencv快多少 yolov5 cuda_深度学习_02

cuba使用yolov4比opencv快多少 yolov5 cuda_大数据_03

 选择直接的显卡型号下载

下载后安装

cuba使用yolov4比opencv快多少 yolov5 cuda_CUDA_04

选择放置的一个文件夹

 

cuba使用yolov4比opencv快多少 yolov5 cuda_神经网络_05

等待

cuba使用yolov4比opencv快多少 yolov5 cuda_神经网络_06

选第一个

cuba使用yolov4比opencv快多少 yolov5 cuda_python_07

 选着自定义

cuba使用yolov4比opencv快多少 yolov5 cuda_python_08

下一步

cuba使用yolov4比opencv快多少 yolov5 cuda_python_09

等待安装

cuba使用yolov4比opencv快多少 yolov5 cuda_大数据_10

 显卡驱动就安装成功


第二步 :安装好Anaconda

安装过的可以跳过这一步

Anaconda | The World's Most Popular Data Science Platform

cuba使用yolov4比opencv快多少 yolov5 cuda_神经网络_11

选着win10的下载

开始安装 

cuba使用yolov4比opencv快多少 yolov5 cuda_CUDA_12

选择路径

cuba使用yolov4比opencv快多少 yolov5 cuda_大数据_13

 选着

 

cuba使用yolov4比opencv快多少 yolov5 cuda_深度学习_14

cuba使用yolov4比opencv快多少 yolov5 cuda_CUDA_15

cuba使用yolov4比opencv快多少 yolov5 cuda_大数据_16

这样就安装成功了!

anaconda换源

windows下

在清华源和中科大源之间自行选择

1 添加清华源

命令行中直接使用以下命令

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

注意如果需要pytorch, 还需要添加pytorch的镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

2 添加中科大源

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes

Linux下

将以上配置文件写在~/.condarc

vim ~/.condarc

channels:
  - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
  - https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
show_channel_urls: true

第三步:安装并配置CUDA

1.到链接: 英伟达官网.官网下载对应的CUDA版本。我下载的版本是CUDA10.2

cuba使用yolov4比opencv快多少 yolov5 cuda_神经网络_17

 我选择的是exe[network]也就是在线安装,最后下载,下载完成后双击exe文件。

cuba使用yolov4比opencv快多少 yolov5 cuda_深度学习_18

安装CUDA:双击执行下载的exe文件,会先解压文件到临时目录(不是安装目录),保持默认即可

cuba使用yolov4比opencv快多少 yolov5 cuda_神经网络_19

 这里需要选择自定义安装

 

cuba使用yolov4比opencv快多少 yolov5 cuda_深度学习_20

 这里要把图示圈起来的对勾去掉

cuba使用yolov4比opencv快多少 yolov5 cuda_深度学习_21

 这三个地址十分重要,后续我们将进行环境变量的配置,不要改变路径。

cuba使用yolov4比opencv快多少 yolov5 cuda_python_22

之后等待安装完成即可。

cuba使用yolov4比opencv快多少 yolov5 cuda_python_23

配置CUDA环境变量,首先右键我的电脑-属性-高级系统设置-环境变量

cuba使用yolov4比opencv快多少 yolov5 cuda_python_24

在Path中手动添加如下路径:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\CUPTI\lib64
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\bin\win64
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\common\lib\x64

cuba使用yolov4比opencv快多少 yolov5 cuda_CUDA_25

 

cuba使用yolov4比opencv快多少 yolov5 cuda_python_26

我们可以验证一下cuda是否成功,按win+R 输入cmd

nvcc -V

 

cuba使用yolov4比opencv快多少 yolov5 cuda_大数据_27


第四步:安装cuDNN

到链接: 英伟达.下载与CUDA对应的cuDNN,这里需要我们注册一个账号,然后登录下载,下载时一定注意与CUDA的版本对应,如果你下载的CUDA为10.2则下载第二个。

cuba使用yolov4比opencv快多少 yolov5 cuda_CUDA_28

 下载之后,解压缩,将CUDNN文件夹中的各自的bin、clude、lib文件夹中的内容,直接复制添加到CUDA的刚刚安装目录的对应相同名字的文件夹下。


第五步: pytorch安装

严格对于版本来安装

cuba使用yolov4比opencv快多少 yolov5 cuda_神经网络_29

cuba使用yolov4比opencv快多少 yolov5 cuda_python_30

1。打开链接: pytorch官网.找到匹配的版本,我选择的是win10下的CUDA为10.2的版本

cuba使用yolov4比opencv快多少 yolov5 cuda_神经网络_31

 可以看到给出了命令,但是在国内不翻墙的情况下,下载速度极慢并且容易卡顿,我修改了一下命令,可以使用国内的清华源进行下载,速度较快

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

如果你选择的是CUDA10.1版本的那么使用下面命令下载    ,这里个人的计算机配置不一样,就拿我的来说cuda10.1可以运行,cuda11无法运行GPU版,这里可以多试几次找到适合自己的版本

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple torch==1.6.0 torchvision==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

命令使用方法

 打开anaconda prompt

首先创建一个pytorch的虚拟环境

依次执行以下指令(指令最右侧的文字和斜杠不需要复制)

conda create -n yolov5 python=3.8  //创建名为【yolov5】的python3.8环境,并通过

conda activate yolov5                        //通过activate激活环境

git clone https://github.com/ultralytics/yolov5.git   //下载yolo v5项目

cd yolov5                                             //将当前路径切换至 yolo v5目录

pip install -U -r requirements.txt       //根据作者创建好的txt,下载所需环境

yolov5这个名字可以随便换别带中文

cuba使用yolov4比opencv快多少 yolov5 cuda_python_32

 输入y等待环境创建完成。

键入 conda activate yolov5 进入pytorch的环境,如果前面括号的内容发生改变代表进入成功。

cuba使用yolov4比opencv快多少 yolov5 cuda_深度学习_33

之后输入下载对象pytorch版本的命令即可,由于我选择的是CUDA10.2那我我需要键入

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

cuba使用yolov4比opencv快多少 yolov5 cuda_大数据_34

 等待下载完成即安装完成!!!


第六步:测试pytorch CUDA是否可用

1。首先进入我们刚才建立的虚拟环境,由于我的虚拟环境命名为pytorch,你们的命名为pytorch_gpu或其他,根据命名输入命令,之后输入python,进入python。

cuba使用yolov4比opencv快多少 yolov5 cuda_python_35

 输入以下命令进行测试

import torch
print(torch.__version__)
print(torch.cuda.is_available())#cuda是否可用
torch.cuda.device_count()#返回GPU的数量
torch.cuda.get_device_name(0)#返回gpu名字,设备索引默认从0开始

结果如下证明安装成功

cuba使用yolov4比opencv快多少 yolov5 cuda_python_36

 在安装过程中遇到的问题:
在使用conda清华源进行安装CUDA10.2版本的pytorch,在最后测试CUDA是否可用的过程中一直是False,至今没找到具体原因,在测试CUDA和cuDNN时显卡都是正常的,但是使用pip下载,下载过后错误就消失了,初步分析使用conda下载可能有文件的缺失。
 


第七步:下载YOLOv5 github项目

https://github.com/ultralytics/yolov5

如果安装了git可以使用git clone https://github.com/ultralytics/yolov5,没有的话直接下载zip压缩包也行,把压缩包解压到指定目录就行。


安装相关依赖库和包

查看一下requirements.txt 里面的内容并下载所有的依赖包
依次安装,建议可以用清华源进行安装:
先把清华源设置成默认:

pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

再依次安装:下载过程如果因为网络原因失败或者过慢的话可以在命令后加上

-i https://pypi.tuna.tsinghua.edu.cn/simple 来使用清华镜像源

pip install tqdm
pip install scipy
pip install pyyaml
pip install matplotlib
pip install opencv-python==4.1.2.30
pip install requests
pip install seaborn
pip install pandas

之后在终端去到yolov5的文件夹,在外面的yolov5文件夹注释掉torch>=1.7.0和#orchvision>=0.8.1修改完后再输入pip install -r requirements.txt检查一下什么没有安装

安装pytorch需要注意一下:

还是要先换源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

然后再用下面的命令代码确认

conda config --set show_channel_urls yes

打开pycharm

cuba使用yolov4比opencv快多少 yolov5 cuda_CUDA_37

 选着刚才我们创建的虚拟环境

放入yolov5代码就可以运行了。