软硬件环境
- windows 10 64bit
- pytorch 1.7
- yolov5 4.0
- nvidia gtx 1660
视频看这里
此处是 youtube
的播放链接,需要科学上网。喜欢我的视频,请记得订阅我的频道,打开旁边的小铃铛,点赞并分享,感谢您的支持。
前言
最近,YOLOv5
发布了4.0的 release
版本,地址是 https://github.com/ultralytics/yolov5/releases/tag/v4.0,相比于3.0,这次更新又有哪些亮点呢?本文就带大家一起来看看。
版本更新
v4.0
主要进行了如下的更新
- 使用全新的激活函数
nn.SiLU
来替代原来的nn.LeakyReLU(0.1)
和nn.Hardswish()
,这个nn.SiLU
也是pytorch 1.7
才引入的 - 修复了之前版本的一些
bug
,如多gpu
的resume
问题、docker
使用的问题等 - 增加了
Weights & Biases
日志的支持 utils
模块的重构pytorch hub
集成- 模型更加精简,在每个
bottleneck
都去掉了一个卷积层
代码测试
v4.0
要求 python3.8
,而 pytorch
也要求1.7之后的版本
使用 conda
来创建新的虚拟环境
conda create -n pytorch1.7 python=3.8
conda activate pytorch1.7
下面来到 pytorch
官方网站,根据自己的环境选择相应组件,得到安装命令
pip install torch===1.7.1+cu110 torchvision===0.8.2+cu110 torchaudio===0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
最近的 pytorch
官网有点抽风,如果因为网络原因无法下载的话,可以根据终端里给出的 whl
文件的下载地址,自行下载,然后离线安装
pip install C:\Users\admin\Downloads\torch-1.7.1+cu110-cp38-cp38-win_amd64.whl
接下来就开始安装其它依赖库,上面由于已经安装好了 torch
和 torchvision
,因此编辑 requirements.txt
,将其中的 torch
和 torchvision
两行注释掉,然后执行
pip install -r requirements.txt
然后去下载 v4.0
的权重文件,https://github.com/ultralytics/yolov5/releases/tag/v4.0,其它几个权重我也一并下载好了,打包放在了百度云上,大家有需要的话,自己去下载
链接:https://pan.baidu.com/s/1d01URdvSXJ6U1YTzaghzlg
提取码:8ez9
环境都准备好后,就可以开始检测了
python .\detect.py --weights .\weights\yolov5s.pt
但是,但是,但是,诡异的问题出现了,data/images
下的测试图片,里面的目标并没有被检测出来,咋回事?
赶紧跑到官方去找找原因,找到了下面2个相关 issue
https://github.com/ultralytics/yolov5/issues/1625 和 https://github.com/ultralytics/yolov5/issues/1749,yolov5
作者 glenn-jocher
也聊到了,应该是 windows
版的 pytorch
问题。
最后总结下解决检测问题的几个方法
- 修改
detect.py
,将cudnn.benchmark = True
移到if
语句之前执行
- 使用
cpu
来替代gpu
-
使用
linux
操作系统linux
和macOS
都没有这个问题