持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情
首先,在github中下载当前的yolov5版本,网址如下: github.com/ultralytics…
打开网址是这样子的
然后点击上面图片中箭头指向的地方
按照箭头首先点击tags,然后选择5.0,打开是下面这个样子的
点击箭头所示,然后是下面这个样子
然后选择Download ZIP,就可以下载yolov5的源码了。
下载源码之后,下一步就是让代码跑起来,对于conda安装gpu版本的pytorch后面我会专门写一次博客,也就在这两天时间,gpu版本的pytorch安装可以参考那一篇还未出世的博客。
首先,打开anaconda prompt,然后通过cd切换文件夹的方式切换到yolov5所在的目录下,大概命令如下所示 我的代码放d盘里面了,所以依次执行下面的命令
d:
cd PythonWorkSpace
cd yolov5-5.0
# 此处需要说明,事先需要使用conda自己建立一个虚拟环境,我用的是python3.8版本,虚拟环境名称为python38
# 下面的操作都必须在conda自带的Anaconda Prompt下执行。
# 不知道怎么使用python创建虚拟环境的看下面的命令(conda create --name 环境名 python=版本号,例如[conda create --name python38 python=3.8])
# 这样虚拟环境就建立好了,然后就是执行命令激活虚拟环境,activate python38。
activate python38
pip install -r requirements.txt
如下所示
我这里没有切换镜像源,稍微慢了一点,需要切换源的自己百度一下,非常简单。
安装完毕之后,就是检查一下代码是否能跑起来了!!! 话不多说,直接打开detect.py运行一下,看能否运行,第一次运行detect.py时界面如下,会首先下载权重文件
此处必定出错,因为自动下载的是6.1的权重,与我们代码的版本不匹配,会报错如下
然后,我们需要手动下载5.0的权重文件,链接如下 github.com/ultralytics…
下载后放置到weighs目录下,然后修改detect.py文件,只需要修改一行即可,就是指定权重文件的目录
然后继续运行,你会发现又报错了。。。
见招拆招,不要怕
打开图示的文件,加入下面的代码
import warnings
class SPPF(nn.Module):
# Spatial Pyramid Pooling - Fast (SPPF) layer for YOLOv5 by Glenn Jocher
def __init__(self, c1, c2, k=5): # equivalent to SPP(k=(5, 9, 13))
super().__init__()
c_ = c1 // 2 # hidden channels
self.cv1 = Conv(c1, c_, 1, 1)
self.cv2 = Conv(c_ * 4, c2, 1, 1)
self.m = nn.MaxPool2d(kernel_size=k, stride=1, padding=k // 2)
def forward(self, x):
x = self.cv1(x)
with warnings.catch_warnings():
warnings.simplefilter('ignore') # suppress torch 1.9.0 max_pool2d() warning
y1 = self.m(x)
y2 = self.m(y1)
return self.cv2(torch.cat([x, y1, y2, self.m(y2)], 1))
再运行detect.py,还报错。。不要慌
按照下面的方式修改即可
再运行,终于出现了下面的画面
此时,我们的代码终于跑了起来,运行成功之后刷新项目文件,会多出一个runs文件夹,下面就是我们检测结果的存放目录。
打开之后能看到检测的结果
这样我们的代码就跑成功了,下面就是训练我们自己的数据集了。关于如何制作yolov5的口罩数据集,可以擦模考前面的博客,里面有详细的教程。