YOLOv5是一种单阶段目标检测算法,该算法在YOLOv4的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。主要的改进思路如下所示:
输入端:在模型训练阶段,提出了一些改进思路,主要包括Mosaic数据增强、自适应锚框计算、自适应图片缩放;
基准网络:融合其它检测算法中的一些新思路,主要包括:Focus结构与CSP结构;
Neck网络:目标检测网络在BackBone与最后的Head输出层之间往往会插入一些层,Yolov5中添加了FPN+PAN结构;
Head输出层:输出层的锚框机制与YOLOv4相同,主要改进的是训练时的损失函数GIOU_Loss,以及预测框筛选的DIOU_nms。
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(Compute Unified Device Architecture,统一计算设备架构),是显卡厂商NVIDIA在2007年推出的并行计算平台和编程模型。它利用图形处理器(GPU)能力,实现计算性能的显著提高。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题,从而能通过程序控制底层的硬件进行计算。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C/C++/C++11语言来为CUDA架构编写程序。CUDA提供host-device的编程模式以及非常多的接口函数和科学计算库,通过同时执行大量的线程而达到并行的目的。
Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。作为经典机器学习库 Torch 的端口,PyTorch 为 Python 语言使用者提供了舒适的写代码选择。
NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。
Anaconda ,中文 大蟒蛇 ,是一个开源的 Python 发行版本,其包含了 conda 、Python等180多个科学包及其依赖项。 [1] Anaconda包括Conda、Python以及一大堆安装好的工具包,比如: numpy 、 pandas 等
下载链接 https://www.nvidia.cn/geforce/drivers/
查看自己的显卡
桌面上的 NVIDIA 控制面板
选择直接的显卡型号下载
下载后安装
选择放置的一个文件夹
等待
选第一个
选着自定义
下一步
等待安装
显卡驱动就安装成功
安装过的可以跳过这一步
Anaconda | The World's Most Popular Data Science Platform
选着win10的下载
开始安装
选择路径
选着
这样就安装成功了!
在清华源和中科大源之间自行选择
命令行中直接使用以下命令
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/
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
将以上配置文件写在
~/.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
1.到链接: 英伟达官网.官网下载对应的CUDA版本。我下载的版本是CUDA10.2
我选择的是exe[network]也就是在线安装,最后下载,下载完成后双击exe文件。
安装CUDA:双击执行下载的exe文件,会先解压文件到临时目录(不是安装目录),保持默认即可
这里需要选择自定义安装
这里要把图示圈起来的对勾去掉
这三个地址十分重要,后续我们将进行环境变量的配置,不要改变路径。
之后等待安装完成即可。
配置CUDA环境变量,首先右键我的电脑-属性-高级系统设置-环境变量
在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
我们可以验证一下cuda是否成功,按win+R 输入cmd
nvcc -V
到链接: 英伟达.下载与CUDA对应的cuDNN,这里需要我们注册一个账号,然后登录下载,下载时一定注意与CUDA的版本对应,如果你下载的CUDA为10.2则下载第二个。
下载之后,解压缩,将CUDNN文件夹中的各自的bin、clude、lib文件夹中的内容,直接复制添加到CUDA的刚刚安装目录的对应相同名字的文件夹下。
严格对于版本来安装
1。打开链接: pytorch官网.找到匹配的版本,我选择的是win10下的CUDA为10.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
如果你选择的是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这个名字可以随便换别带中文
输入y等待环境创建完成。
键入 conda activate yolov5
进入pytorch的环境,如果前面括号的内容发生改变代表进入成功。
之后输入下载对象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
等待下载完成即安装完成!!!
1。首先进入我们刚才建立的虚拟环境,由于我的虚拟环境命名为pytorch,你们的命名为pytorch_gpu或其他,根据命名输入命令,之后输入python,进入python。
输入以下命令进行测试
import torch
print(torch.__version__)
print(torch.cuda.is_available())#cuda是否可用
torch.cuda.device_count()#返回GPU的数量
torch.cuda.get_device_name(0)#返回gpu名字,设备索引默认从0开始
结果如下证明安装成功
在安装过程中遇到的问题:
在使用conda清华源进行安装CUDA10.2版本的pytorch,在最后测试CUDA是否可用的过程中一直是False,至今没找到具体原因,在测试CUDA和cuDNN时显卡都是正常的,但是使用pip下载,下载过后错误就消失了,初步分析使用conda下载可能有文件的缺失。
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
选着刚才我们创建的虚拟环境
放入yolov5代码就可以运行了。