YOLOv8(n/s/m/l/x)&YOLOv7(yolov7-tiny/yolov7/yolov7x)&YOLOv5(n/s/m/l/x)不同模型参数/性能对比(含训练及推理速度)

0.引言

由于YOLOv5/YOLOv7使用的设备不尽相同,考虑控制变量法,特此写一篇博客记录一下各模型的横向对比(由于时间有限,因此只针对640尺寸的模型进行训练测试)

1.软硬件配置

(1)硬件配置

  • CPU:英特尔E5-2640 v3@2.6GHz
  • GPU:Tesla P40 24G*4
  • 内存:64G

(2)软件配置

  • Ubuntu18.04
  • cuda11.3
  • pytorch:1.11.0
  • torchvision:0.12.0

2.数据集配置

2020年kaggle小麦检测数据集,包含3187张图片,各类标签的数量分别为:

  • arvalis_1: 42962
  • arvalis_2: 4022
  • arvalis_3: 15715
  • rres_1: 19077
  • ethz_1: 48606
  • usask_1: 5605
  • inrae_1: 3540

带框的样本图片

3.不同模型性能对比表

每种算法均按默认配置,使用小麦检测数据集训练100轮,batch_size按显存最大来设置,img_size均为640*640,使用train.py进行4卡训练,使用detect.py进行单卡预测。加粗的表示最优结果。

算法batch_sizeparam/MillionFLOPs/Gweight_size/MBP/%R/%mAP50/%mAP50-95/%train_time/hSpeed/ms
yolov5n2561.74.33.991.988.193.953.20.68211.0
yolov5s2567.016.014.592.790.394.855.60.70513.0
yolov5m12820.948.342.393.189.494.255.01.009816.8
yolov5l6446.2108.392.993.188.894.355.01.75125.6
yolov5x3286.2204.8173.292.689.494.555.43.06840.4
yolov7-tiny5126.0313.212.364.461.268.829.11.13011.5
yolov712837.2105.274.992.091.994.954.91.91230.4
yolov7x12870.9189.0142.293.491.094.654.92.66842.3
yolov8n2563.18.26.391.988.494.155.61.64114.7
yolov8s12811.128.722.591.189.094.256.11.86213.9
yolov8m12825.979.152.191.690.094.656.42.22820.3
yolov8l6443.6165.487.792.189.194.656.62.97430.7
yolov8x6468.2258.2136.891.890.395.056.83.65840.2

4.结论

  • 从同一模型来看,模型的准确率和召回率并没有随着模型的加深而提高,相反,有着一定的降低,这主要是由于数据集量相比COCO数据集小得多,模型中有着大量的冗余参数,导致模型的各项指标下降;因此,对于量较小的数据集,选用参数量较少的模型,不光可以提高准确率,降低训练时间,还能在预测速度上有着比较大的优势;
  • 对比不同模型来看,yolov8相较yolov5和yolov7在准确率方面确实有一定的提升(仅限于大模型l/x),在本文使用的数据集上提升大概在1个点左右;而小模型(n/s)其实差距不大,甚至yolov7-tiny远低于正常水平(不知道是否是训练的时候出问题了,后续需要再测一下),这是我没有想到的;
  • 需要根据实际情况挑选自己的模型,没有最好的模型,只有最适合自己数据集的模型

5.后记

### YOLOv8 不同版本的主要区别 #### 小型模型 (YOLOv8n, YOLOv8s) 小型模型设计用于资源受限环境下的高效运行。这些模型具有较少的参数更少的计算需求,因此非常适合嵌入式设备或移动平台上的实时应用。 - **特点** - 参数量减少 - 计算复杂度低 - 推理速度快 ```python import torch model = torch.hub.load('ultralytics/yolov8', 'yolov8n') # 加载最小型号 ``` 这种类型的模型虽然牺牲了一定程度的检测精度,但在特定场景下能够提供足够的性能并保持较高的处理效率[^2]。 #### 中型模型 (YOLOv8m) 中型模型在大小性能之间取得了较好的平衡。相比小型模型,这类模型拥有更多的层更高的分辨率输入图像支持,从而提高了目标检测的效果。 - **特点** - 较高的准确性 - 资源消耗适中 - 广泛的应用范围 此类模型适用于那些既希望获得较好效果又不想占用过多硬件资源的情况。 #### 大型模型 (YOLOv8l, YOLOv8x) 大型模型专为追求极致精确度的任务而生。它们通常具备更深的网络架构以及更大的特征图尺寸,这使得其能够在各种复杂的视觉任务中表现出色。 - **特点** - 高精度的目标定位能力 - 更丰富的语义理解力 - 对细粒度对象有更好的捕捉率 然而,由于所需内存较大且推理时间较长,只有当有足够的计算能力存储空间时才推荐使用这样的大模型。 所有五个版本(nano、small、medium、large extra-large)都是通过调整宽度深度的比例来实现不同的规模变化,这意味着整个家族共享相同的骨干网结构,只是在网络组件的数量上有增减而已[^3]。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhijun.li@Studio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值