zoukankan      html  css  js  c++  java
  • Windows10环境下YOLO V5 环境配置、测试<一>【已调通】

         在此说明:1、首先配置CUDA和cuDnn,参考:https://xugaoxiang.com/2019/12/18/windows-10-cuda-cudnn/

                           2、你最好有梯子,花钱的那种,否则......

         OK,让我们开车。

         在 YOLO V5 官方gayhub页面(https://github.com/ultralytics/yolov5),看到如下内容:

    1 Requirements
    2 Python 3.8 or later with all requirements.txt dependencies installed, including torch>=1.6. To install run:
    3 
    4 $ pip install -r requirements.txt

          所以,为了避免不必要麻烦,python请换成3.8版本!同事也要提前打开 requirements.txt文件(见下文),了解其他依赖库版本。我这里事先安装好Anaconda3-2020.07-Windows-x86_64,对应Python3.8。

          其requirement.txt文件中要求如下。

     1 # pip install -r requirements.txt
     2 Cython
     3 matplotlib>=3.2.2
     4 numpy>=1.18.5
     5 opencv-python>=4.1.2
     6 pillow
     7 # pycocotools>=2.0
     8 PyYAML>=5.3
     9 scipy>=1.4.1
    10 tensorboard>=2.2
    11 torch>=1.6.0
    12 torchvision>=0.7.0
    13 tqdm>=4.41.0

    一、更换官方源

            由于YOLO V5 最近才出,清华等国内源似乎没有跟上步调(例如:服务器中没有Python3.8安装包),所以,这里使用官方源。换源请参考:https://www.cnblogs.com/winslam/p/13347331.html

    或者更简单的方法:手动打开 C:UsersAdministrator.condarc文件,修改后默认为如下内容

    1 ssl_verify: true
    2 show_channel_urls: true

    【注:需要提前安装Anaconda3-2020.07-Windows-x86_64,对应Python3.8; 当你看到这篇博客的时候,说不定YOLO V5 页面的安装需求变为Python3.9...】

         打开如上图红圈内的命令行窗口,本篇博客所有指令将在其上进行操作,而不是win自带CMD or powershell

    二、install Pytorch & ipython

    1 conda create -n pytorch python=3.8
    2 conda activate pytorch
    # 在pytorch官方选择相关依赖库版本,将其自动生成的安装命令拷贝,即:
    3
    pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

    4 pip install ipython

            注:上述第三行指令执行后,系统回去指定链接下载相关包。如果下载网速太慢或导致错误,可将名为 xxx.whl的下载链接粘贴到 IDM 或者迅雷中下载,其下载链接会在控制台中打印出来。例如:

    torch==1.6.0: https://download.pytorch.org/whl/cu102/torch-1.6.0-cp38-cp38-win_amd64.whl

    torvision==0.7.0: https://download.pytorch.org/whl/cu102/torchvision-0.7.0-cp38-cp38-win_amd64.whl

    (从其拓展名也知道,该库仅支持python3.8,上述所有库的集合在链接:https://download.pytorch.org/whl/torch_stable.html )

    下载到本地怎么安装?例如我将 torch 用迅雷下载好的库放到D盘根目录,那么安装指令如下:

    pip install d:/torch-1.6.0-cp38-cp38-win_amd64.whl

           安装完毕后,需要检查下。根据我的经验,当一句命令行安装多个库,有时候总是会后漏网之鱼。执行以下指令:

    conda list

          我们看到torch 和 torchvision都有了,而且版本符合yolo v5 工程中requirement.txt 文件的要求,如果你发现如torchvision没有安装,这时候,只需要重复上述

    pip install......安装步骤即可。

          至此,我们已经安装了合适yolo v5的pytorch版本(GPU版)、ipython等。这时候,可以简单测试下:

    ipython
    
    import torch
    
    torch.cuda.is_available()

    import torchvision

    torchvision.__version__

     返回true,证明GPU能够为pytorch加速

    三、YOLO V5 配置与验证

    键入如下指令:

    1 python  detect.py --source ./inference/images/bus.jpg

    其中bus.jpg式输入图像,输出的效果图保存在F:yolov5-masterinferenceoutput 路径下。

                

            

    在命令行键入如下指令,使用摄像头进行目标检测,使用默认权重文件:

    (pytorch) F:yolov5-master>python detect.py --source 0

    四、数据集测试

    在网站:https://public.roboflow.ai/

    https://public.roboflow.ai/object-detection/mask-wearing

    下载”人类是否戴口罩“的检测数据集,在页面按ctrl+F搜索mask,可能需要梯子。由于口罩检测是二分类,所以修改yolov5/models/yolov5s.yaml,将nc = 80修改为nc = 2,因为数据集中只有maskno-mask2个类别

            接着修改mask/data.yaml文件内容为:

    train: ../mask/train/images
    val: ../mask/valid/images
    
    nc: 2
    names: ['mask', 'no-mask']

           执行以下命令,开始训练

    cd yolov5
    python train.py --img 640 --batch 16 --epochs 300 --data ../mask/data.yaml --cfg models/yolov5s.yaml --weights '' 

          可以看到,100多张图,训练了2小时,GPU应该是没工作。训练过程,我看过资源管理器,显存被占用了4Gb,GPU占用率一直很低,不知道是cuDnn没工作的原因,还是什么BUG。

          执行以下命令,我们用单目摄像头来检测口罩:

    pytorch) F:yolov5-master> python detect.py --source 0 --weights runs/exp5/weights/best.pt

          可以看到一个帅气的老哥.............口罩虽然被检测出来了,但是置信度有点低。

    五、小结

          YOLO V5作为新秀,我不评价他与YOLO V3、4之间有什么恩怨情仇,它有它的优势,毕竟经过大量测试;然而也正因为他是新来的,所以我并不打算在项目中部署他,目前还是作为学习对象的一种选择。

     【实践证明:咱们在安装torch的时候,安装了python版本的cuda后,是不用再安装NVIDIA官网的cuda,这时候显卡加速有效。如果部署到C++ OpenCV工程中,可以用CPU跑,至于GPU跑,应该还是要安装CUDA+cuDnn】

  • 相关阅读:
    vue项目中兼容ie8以上浏览器的配置
    vue项目中event bus的简单使用
    js中的正则表达式小结1
    sourceTree跳过注册
    日期时间格式化
    阿里矢量图标库的使用
    mySql 常用命令
    php 常用的系统函数
    php mySql常用的函数
    php 关于php创建 json文件 和 对文件增删改查 示例
  • 原文地址:https://www.cnblogs.com/winslam/p/13474330.html
Copyright © 2011-2022 走看看