• 深度学习-第一章-Window下用Anaconda安装Yolov5


    设置清华源

    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 # 设置搜索时显示通道地址
    
    # 恢复原来的源:
    
    conda config --remove-key channels
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    创建环境

    首先先的在本地环境下搭建一个我们的环境,名字设为yolov5-first

    # 创建环境
    conda create -n yolov5-first python=3.6
    # 切换yolov5-first环境
    conda activate yolov5-first
    # 完成之后通过如下查看已创建的环境
    conda env list
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    下载yolov5源码

    # 先创建并进入workspace文件夹
    cd d:/ai/yolov5
    # 拉取最新代码
    git clone https://github.com/ultralytics/yolov5  # clone
    # 进入代码
    cd yolov5
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    安装

    据官方所说,我们要从克隆的存储库目录安装所需的软件包。但是如果是使用外国的pip,下载速度会满到离谱,故我们使用清华园进行下载。

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
    
    • 1

    使用pip list指令让我们看下yolo需要运行的包是否已经装好。

    
    (yolov5-first) D:\ai\yolov5>pip list
    Package                 Version
    ----------------------- --------------------
    absl-py                 1.1.0
    backcall                0.2.0
    cachetools              4.2.4
    certifi                 2020.6.20
    charset-normalizer      2.0.12
    colorama                0.4.5
    cycler                  0.11.0
    dataclasses             0.8
    decorator               5.1.1
    google-auth             2.8.0
    google-auth-oauthlib    0.4.6
    grpcio                  1.47.0
    idna                    3.3
    importlib-metadata      4.8.3
    importlib-resources     5.4.0
    ipython                 7.16.3
    ipython-genutils        0.2.0
    jedi                    0.17.2
    kiwisolver              1.3.1
    Markdown                3.3.7
    matplotlib              3.3.4
    numpy                   1.19.5
    oauthlib                3.2.0
    opencv-python           4.6.0.66
    pandas                  1.1.5
    parso                   0.7.1
    pickleshare             0.7.5
    Pillow                  8.4.0
    pip                     21.2.2
    prompt-toolkit          3.0.29
    protobuf                3.19.4
    psutil                  5.9.1
    pyasn1                  0.4.8
    pyasn1-modules          0.2.8
    Pygments                2.12.0
    pyparsing               3.0.9
    python-dateutil         2.8.2
    pytz                    2022.1
    PyYAML                  6.0
    requests                2.27.1
    requests-oauthlib       1.3.1
    rsa                     4.8
    scipy                   1.5.4
    seaborn                 0.11.2
    setuptools              59.6.0
    six                     1.16.0
    tensorboard             2.9.1
    tensorboard-data-server 0.6.1
    tensorboard-plugin-wit  1.8.1
    thop                    0.1.0.post2206102148
    torch                   1.10.2
    torchvision             0.11.3
    tqdm                    4.64.0
    traitlets               4.3.3
    typing_extensions       4.1.1
    urllib3                 1.26.9
    wcwidth                 0.2.5
    Werkzeug                2.0.3
    wheel                   0.37.1
    wincertstore            0.2
    zipp                    3.6.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65

    下载预训练权重

    一般为了缩短网络的训练时间,并达到更好的精度,我们一般加载预训练权重进行网络的训练。而yolov5的版本给我们提供了几个预训练权重,我们可以对应我们不同的需求选择不同的版本的预训练权重。预训练权重越大,训练出来的精度就会相对来说越高,但是其检测的速度就会越慢。
    在这里插入图片描述

    下载之后放入到yolov5根目录
    在这里插入图片描述

    安装Pytorch

    参考:深度学习-第一章-window下PyTorch安装教程
    可以安装GPU或者CPU版本二选一
    建议按照GPU版本,训练速度快
    如果安装了英伟达显卡,可以通过如下命令查看显卡信息

    nvidia-smi
    
    • 1

    注意,去掉-c pytorch因为加了该参数会默认从国外下载,很慢

    # 基于GPU的CUDA 10.2
    conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=10.2 -c pytorch
    # 基于CPU版本
    conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cpuonly -c pytorch
    
    • 1
    • 2
    • 3
    • 4

    测试

    通过detect.py测试识别人

    detect.py中参数说明

    参考:yolov5检测代码detect.py参数注释及解析

    准备

    提前准备好如下文件和照片
    在这里插入图片描述
    执行默认推理代码detect.py,代码中默认指定了权重文件是根目录下yolov5s.pt和数据集文件夹/data/images
    在这里插入图片描述

    推理

    python detect.py --save-txt --view-img --class 0
    
    • 1

    加粗样式–save-txt:表示生成labels文件
    –view-img:表示弹框显示标注图片
    –class:指定识别类型

    在这里插入图片描述
    执行完成之后会在runs/detect/exp目录下生成标注后的图片和label
    在这里插入图片描述

    通过自定义代码识别

    需要在根目录下存在yolov5s.ptzidane.jpg

    import torch
    # Model
    model = torch.hub.load('ultralytics/yolov5', 'yolov5s')  # or yolov5m, yolov5l, yolov5x, custom
    # Images
    # img = 'https://ultralytics.com/images/zidane.jpg'  # or file, Path, PIL, OpenCV, numpy, list
    img = 'zidane.jpg'  # or file, Path, PIL, OpenCV, numpy, list
    # Inference
    results = model(img)
    # Results
    results.show()  # or .print(), .save(), .crop(), .pandas(), etc.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    执行

    (yolov5-first) D:\ai\yolov5>python test_first.py
    
    • 1

    效果
    在这里插入图片描述

    推理视频

    在/data/video目录下准备test.mp4素材

    python detect.py --save-txt --view-img --source data/video --class 0 1 2
    # 或者
    python detect.py --save-txt --view-img --source data/video
    
    • 1
    • 2
    • 3
  • 相关阅读:
    使用 JavaScript 和 CSS 的简单图像放大镜
    【一、http】go的http基本请求方法
    LeetCode 46. 全排列
    mini-Imagenet处理
    方法论系列:用四个金字塔来说明金字塔原理
    回收站清空的文件能恢复吗?
    Linux: network: demux 解释
    docker-compose部署Nacos集群
    uni-app上传文件
    @Component与@Configuration区别
  • 原文地址:https://blog.csdn.net/Blueeyedboy521/article/details/125484082