训练YOLOv7---有关FPS计算的问题

本文探讨了在YOLOv7中计算帧率(FPS)的不同方法,包括基于inference时间、Latency和预处理时间的计算。测试代码显示的结果与预期有较大差异,引发关于训练过程中FPS计算的疑问。
摘要由CSDN通过智能技术生成

一些基础概念

Inference(推理)是指将经过训练的深度学习模型应用于新的输入数据以获得预测结果的过程。在推理阶段,模型不再进行训练,而是将输入数据传递给模型,并输出对应的预测值。

Latency(延迟)是指从输入数据传入模型开始,到模型输出结果可用的时间间隔。在深度学习推理中,延迟是指整个推理过程中的时间延迟。延迟可以包括多个方面的时间开销,例如数据传输、计算推理、结果传回等。在实际应用中,延迟通常是实时性的关键指标。较低的延迟意味着模型能够更快地处理输入数据,并输出结果。

Preprocess(预处理)是指在输入数据进入模型之前对其进行的操作或转换。预处理包括数据清洗、缩放、归一化、裁剪、图像旋转或镜像等操作,以确保输入数据与模型的要求和期望相匹配。预处理的目的是为了提高模型的训练或推理效果,并且通常在数据集准备阶段进行。

FPS指的是每秒传输帧数。

计算FPS

方法一: FPS=1/Inference
这个是YOLOv5作者在测试FPS和batchsize的关系时,计算FPS的方法,链接: link

方法二: FPS=1/Latency
这个B导给出的计算FPS的方法,链接: link

方法三: FPS=1000(1s)/(preprocess+inference+postprocess)
链接: link

运行YOLOv7相关代码

运行test.py

Speed: 2.5/0.8/3.4 ms inference/NMS/total per 640x640 image at batch-size 32

inference=2.5ms
NMS=0.8ms
total per=3.4ms
方法一:FPS=1000/2.5=400
方法三:FPS=1000/3.4=294.1

运行Latency.py

model weights:best.pt size:16.9M (bs:1)Latency:0.00850s +- 0.00027s fps:117.6

方法二:FPS=1/0.00850=117.6

运行detect.py

在这里插入图片描述
运行detect.py,又会得到10ms以上的inference(推理时间)

在训练YOLOv7过程中,对FPS的计算,我真是搞不懂了,主要算出来的FPS也太大了,论文里几乎没有出现一百以上的,有相同疑惑的小伙伴可以留言和我讨论。

  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值