目录

  • 一、更换官方源
  • 二、安装Pytorch+CUDA(python版本)
  • 三、YOLO V5 配置与验证
  • 四、数据集测试
  • 五、小结

不想看前面,可以直接跳到标题: 一、更换官方源

在 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:\Users\Administrator\.condarc文件,修改后,为如下内容

1 ssl_verify: true
2 show_channel_urls: true

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

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

二、安装Pytorch+CUDA(python版本)

先创建conda虚拟环境,取名字为pytorch

1 conda create -n pytorch python=3.8
2 conda activate pytorch # 激活虚拟环境

在pytorch官网,我们作出如下图选择,然后复制生成的脚本指令。

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

【注:cu101表示CUDA10.1版本,已经集成到上述pytorch中】

-----------------------------------------------------------------------------------------------------------------【如果上述成功安装了pytorch等库,则忽略这一段处理】----------------------------------------------------------------------------------------------------------------

注:上述第一行指令执行后,系统回去指定链接下载相关包。如果下载网速太慢或导致错误,可将名为 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安装该库的指令如下:

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

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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

conda list

我们看到torch 和 torchvision都有了,而且版本符合yolo v5 工程中requirement.txt 文件的要求。如果你发现如torchvision没有安装,这时候,只需要重复上述pip install......安装步骤即可。【注:上图torch显示版本是:1.6.0+cu101,如果你显示的是1.6.0,表示你安装的是cpu版本】

至此,我们已经安装了合适yolo v5的pytorch版本(GPU版)、ipython等(下面会安装requirment.txt中要求的剩余依赖库,比较简单)。这时候,可以简单测试、验证下pytorch与torchvision是否安装成功:

# 在控制台键入 ipython,然后逐条输入如下指令,
# 或者在ide中新建test.py,然后复制如下代码,然后运行可行
ipython
import torch torch.cuda.is_available()
import torchvision
torchvision.__version__

输出:

true;

totch161 + cu101

torchvision + cu101

证明GPU能够为pytorch加速

接着安装其余依赖,CD进入yolo源码目录,执行以下指令:

pip install -r requirements.txt

三、YOLO V5 配置与验证

去如下网站下载yolo5源码,我这里解压放在F盘根目录:

git clone https://github.com/ultralytics/yolov5.git

在命令行键入如下指令(测试yolo5源码包中自带图片 bus.jpg):

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

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

          

      

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

(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
#注:上述train 、val表示的路径,是相对于yolov5中源码的路径!
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小时。训练过程,我看过资源管理器,显存被占用了4Gb,GPU占用率一直很低,这是什么原因呢?

(我已经搞清楚训练很慢的原因,原因是:yolo5源码默认开启CPU多线程加载图片,所以很慢,需要在源码中修改,--worker = 0,或者在上面训练指令中新增,具体如下:

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

)

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

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

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

五、小结(没兴趣可以忽略)

YOLO V5作为新秀,和V4原理相似度极高,他们性能差不多,但是V4:偏于学术,容易工程化,而V5生而服务于工程化,结论:V5更香!

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

如下图,这里是没有在win10系统中安装CUDA,但是在python的conda虚拟环境中安装了python版本的cuda,所以你看,还是有加速效果。猜想:之所以国内很多博客在教学安装pytorch环境中都要安装cuda环境的原因很可能是pytorch早期版本必须这样?还是一个吃螃蟹大佬搞错,导致后面的“复制粘贴”者都搞错?

Win10环境下YOLO5 快速配置与测试的更多相关文章

  1. win10环境下VS2019配置NTL库

    win10环境下VS2019配置NTL库 1.下载 WINNTL库文件     https://www.shoup.net/ntl/download.html 2.创建静态库 文件->新建-&g ...

  2. win10环境下如何运行debug

    在学习汇编的时候,会需要用到debug调试程序,但是现在win10默认已经移除了这个插件,我们需要手动安装,下面就告诉大家如何在win10环境下安装debug. 1:准备工具 1.1 DOSBox 1 ...

  3. win10环境下MySql(5.7.21版本)安装过程

    windows10上安装mysql(详细步骤) 2016年09月06日 08:09:34 阅读数:60405 环境:windwos 10(1511) 64bit.mysql 5.7.14 时间:201 ...

  4. Windows环境下完全手工配置Apache、MySQL和PHP

    现在LAMP(Linux.Apache.MySQL.PHP/Perl/Python的简称)已经很流行了.在Windows下也有类似的,比如 WAMP(Apache, MySQL, PHP on Win ...

  5. YApi——手摸手,带你在Win10环境下安装YApi可视化接口管理平台

    手摸手,带你在Win10环境下安装YApi可视化接口管理平台 YApi YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建 ...

  6. 海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_179 随着现代化产品研发的不断推进,我们会发现,几乎每个产品线都会包含功能各异的服务,而且服务与服务之间存在也会存在着错综复杂的依 ...

  7. 在win10环境下搭建 solr 开发环境

    在win10环境下搭建 solr 开发环境 2017年05月30日 09:19:32 SegaChen0130 阅读数:1050   在win10环境下搭建 solr 开发环境 安装环境  Windo ...

  8. win10环境下安装Ubantu双系统(超详解)

    win10环境下安装Ubantu双系统 1.准备工作: 先去ubantu官网(https://www.ubuntu.com/download)去下载ubantu镜像.根据自己的实际情况选择32位的或者 ...

  9. Windows环境下JDK的配置及多版本JDK切换的方法记录

    (这里记录了笔者了解的关于JDK环境配置的信息,以及针对系统上存在不同版本JDK时所尝试的解决方案.具体来说,是已安装 JDK 8 后,又安装了 JDK 9 时所遇到的问题和尝试的解决方法.这次记录以 ...

随机推荐

  1. funny 生成器

    funny 生成器 https://www.zhihu.com/question/380741546/answer/1190570384 举牌小人生成器 https://small-upup.upup ...

  2. Renice INC:全球经济危机持续,2021年红酒市场走向如何?

    2021年,全球经济危机仍在持续,很多国家的经济出现了严重的下滑,不得不以降低利率维持经济.那么,全球经济危机对于红酒市场有什么影响?2021年,红酒市场走势如何呢?近日,美国知名红酒公司伦尼斯公司对 ...

  3. 什么是USDN稳定币?USDN的应用价值是什么?

    9月22日,美国货币监理署(OCC)发布了一项稳定币指南,主要内容围绕的是稳定币的监管及相关规定.一时间,稳定币得到了市场上广泛的关注.那么,什么是稳定币呢?什么又是USDN稳定币呢? 1.什么是稳定 ...

  4. C++算法代码——笨小猴

    题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1163 题目描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了 ...

  5. JDBC概念理解

    ##JDBC: 概念:Java DataBase Connectivity  Java 数据库连接  Java语言操作数据库 JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则 ...

  6. SpringBoot(十):SpringBoot的简单事务管理

    SpringBoot集成Mybatis之后,进行事务管理.SpringBoot使用事务非常简单,底层依然采用的是Spring本身提供的事务. 1.在入口类中使用注解@EnableTransaction ...

  7. python进阶(12)闭包

    闭包 首先了解一下:如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数. 在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用 ...

  8. 写了一个vue+antdv的后台管理模板

    1,项目简介 写在前面===>这是一个vue+antdv的后台管理模板 项目地址: https://github.com/BaiFangZi/vue-antd-manage 1.1,概述 ​ 最 ...

  9. ZooTeam 前端周刊|第 111期

    转: ZooTeam 前端周刊|第 111期 ZooTeam 前端周刊|第 111期 浏览更多往期周刊,请访问: https://weekly.zoo.team 基于Vue的前端架构,我做了这15点 ...

  10. 剑指 Offer 58 - II. 左旋转字符串 + 简单题

    剑指 Offer 58 - II. 左旋转字符串 Offer_58_2 题目描述 java代码 package com.walegarrett.offer; /** * @Author WaleGar ...