【yolov5系列】yolov5 v6.0 环境配置、图片视频测试、模型可视化、v6.0的更新内容

1 环境安装、工程下载

工程链接:https://github.com/ultralytics/yolov5

工程环境配置记录:

  • 本人电脑已有环境:ubuntu18、cuda10.0、anaconda

  • 创建虚拟环境并激活
    conda create -n yolov5 python=3.6
    source activate yolov5

  • 下载工程并安装工程环境
    git clone https://github.com/ultralytics/yolov5
    cd yolov5
    pip install -r requirements.txt
    按照工程所说,git下载会自动下载最新的YOLOv5模型。

  • 如果是直接下载工程并解压,到工程根目录激活虚拟环境后 运行 pip install -r requirements.txt。这样我们需要手动下载模型,本人是手动下载的。
    在这里插入图片描述
    从这里进入链接,在如下图位置进行下载模型,为了测试该工程的性能,个人把所有的模型全部下载
    在这里插入图片描述
    该链接下,当前更新到了 v6.0,主要增加了YOLOv5n、YOLOv5n6,纳米版的yolov5,比yolov5s的模型还小,更合适移动端移植的任务。
    为了工程文件的整洁性,在工程目录下创建文件夹【MODEL】,将下载的模型移到此处
    在这里插入图片描述

2 模型测试

在这里插入图片描述

  • 使用yolov5s.pt,测试工程提供的图片:
    python detect.py --weight MODEL/yolov5s.pt
    默认图片所在位置【data/images/】,工程提供了两张图片,运行命令会将路径下的 图片以及视频 都进行预测,结果默认路径为:【runs/detect/】。
  • 如果要预测单个图片或视频,
    python detect.py --weight MODEL/yolov5s.pt --source data/images/bus.jpg
    python detect.py --weight MODEL/yolov5s.pt --source data/images/**.mp4
    在这里插入图片描述在这里插入图片描述

3 onnx模型格式的导出与预测

  • onnx库的安装:
    pip install -U coremltools onnx scikit-learn==0.19.2
  • yolov5的onnx模型的导出:(注意:这里模型路径根据自己实际情况而定)
    python export.py --weights MODEL/yolov5s.pt --include onnx --dynamic
  • 使用onnx模型进行预测:
    python detect.py --weights MODEL/yolov5s.onnx

4 网络结构可视化

使用 netron 工具来可视化网络结构。软件安装命令 snap install netron,结束后输入 netron即可打开软件。

  • 【yaml格式】yolov5工程提供的网络文件是【yaml格式】,与yolov3/yolov4提供的【cfg文件】不同,无法直接进行可视化
  • 【开源的pt格式】yolov5工程提供了训练好的【pt格式】权重模型,这个模型打开后可视化的结构不是详细的全部网络结构。这里粘贴局部内容
    在这里插入图片描述
  • 【onnx格式】我们【pt模型】转换成【onnx模型】,然后再使用netron进行可视化。这里显示的onnx模型,与网络本身定义的有一定的变化,比如没有bn、激活函数变化了。这也不是我们想要的。粘贴局部模型:
    在这里插入图片描述在这里插入图片描述
  • 【重新保存的pt模型】我们只想可视化网络结构,与代码中定义的结构保持一致,训练参数暂时不关注。具体方法为:
    在代码【models/yolo.py】中添加如下代码。我们可以看到保存的【test.pt】模型大小为 29.4M,作者提供的【yolov5s.pt】大小为 14.7M。
        inputs = torch.ones(size=(1, 3, 640, 640)).to(device)
        script_model = torch.jit.trace(model,inputs)
        script_model.save("test.pt")
    
    在这里插入图片描述
    在这里插入图片描述
    额外说一句:这里我们在可视化的网络结构图中,发现yolov5中的 Focus操作不见了,这是因为这里显示的是 yolov5s v6.0的结构,将原本的Focus 操作替换成了一个卷积层,方便导出模型。

5 v6.0的更新内容

v6.0 修复了 上一个版本yolov5 v5.0的错误,以及合并了许多新功能;带来了架构调整,还引入了新的模型 P5 和 P6 的纳米版模型:YOLOv5n 和 YOLOv5n6。
Nano模型保持 YOLOv5s de 深度的0.33倍,但将YOLOv5s 的宽度倍数从 0.50减少到0.25,从而减少了约75%的参数,从7.5M 到1.9M,非常适合移动端和CPU解决方案。

重要更新:

  • Roboflow 集成:使用我们新集成可直接在Roboflow数据集上训练 YOLOv5 模型
  • YOLOv5n 纳米模型:低于 YOLOv5s(7.5M参数)的新的更小的 YOLOv5n(1.9M参数)模型,导出INT8模型大小为2.1M,非常适合超轻型移动解决方案。
  • TensorFlow 和 Keras 导出:集成了 导出tensorflow、keras、TFLite、TF.js 模型的功能
    python export.py --include saved_model pb tflite tfjs
  • OpenCV DNN:导出 YOLOv5 ONNX 模型 支持opencv DNN 和 ONNX Runtime,无需开发者自己修改。导出后调用:python detect.py --weights yolov5n.onnx --dnn --source data/images/bus.jpg --img 640
  • 模型架构:更新后的主干更小、更快、更准确
    • 更好的导出性:将【Focus()】替换为一个等效的【Conv(k=6,s=2,p=2)】
    • 减少操作:使用【SPPF()】代替原本的【SPP()】层
    • 提高速度:将backbone中的 P3 中的 C3() 从9个减少为6个
    • 【SPPF()】在主干末端重新排序位置
    • 在最后一个C3() 主干层重新引入 shortcut
    • 更新超参数:增加了 mixup 和 copy-paste 的数据增强

v5.0 和 v6.0 的性能对比
在这里插入图片描述在这里插入图片描述

  • 32
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
YOLOv5-6.0YOLOv5系列的最新版本,它具有以下特点和更新内容: 1. 友好且易于上手:YOLOv5系列一直以来都非常友好且易于上手,兼容性也比较高。它不会对训练的硬件配置有很多苛刻的要求,从搭建环境到训练再到应用,都非常简便。这使得使用者能够更多地将时间花在实际的应用场景的协调和改进上。\[1\] 2. 更新的源码和信息:YOLOv5-6.0的源码可以在GitHub上找到,链接为https://github.com/ultralytics/yolov5/tree/v6.0。此外,还有一些关于更新信息的说明可以在https://github.com/ultralytics/yolov5/releases/tag/v6.0找到。\[1\] 3. 网络结构的改进:YOLOv5-6.0在Conv模块中封装了卷积(Conv2d)、Batch Normalization和激活函数,并使用autopad(k, p)实现了padding的效果。此外,YOLOv5-6.0版本使用Swish作为激活函数,代替了旧版本中的Leaky ReLU。还引入了Focus模块,进一步改进了网络结构。\[2\] 4. 可视化网络结构:可以使用netron工具来可视化YOLOv5的网络结构。安装netron工具的命令是snap install netron,然后输入netron即可打开软件。YOLOv5提供的网络文件是yaml格式,可以转换成onnx模型进行可视化。需要注意的是,可视化的结构可能与网络本身定义的有一定的变化,比如没有bn、激活函数变化了。\[3\] 总结起来,YOLOv5-6.0YOLOv5系列的最新版本,它在易用性、网络结构和可视化方面都有一些改进和更新。 #### 引用[.reference_title] - *1* [【YOLO】YOLOv5-6.0环境搭建(不定时更新)](https://blog.csdn.net/qq_44703886/article/details/118851718)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v4^insert_chatgpt"}} ] [.reference_item] - *2* [YOLOv5-v6.0学习笔记](https://blog.csdn.net/baoli8425/article/details/122154078)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v4^insert_chatgpt"}} ] [.reference_item] - *3* [【yolov5系列yolov5 v6.0 环境配置图片视频测试模型可视化v6.0的更新内容](https://blog.csdn.net/magic_ll/article/details/121352907)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值