1 FPS

FPS(每秒帧数)是衡量图像处理或模型推断速度的指标,通常用于评估计算机视觉应用程序的性能。FPS表示在一秒内处理的图像帧数,其计算公式为:

\text{FPS} = \frac{1}{\text{Processing time per frame }}

其中Processing time per frame代表每帧处理时间。

在YOLO中这个值通常是由test.py来得到。将test.py的权重文件换为训练生成的best.pt,如下图所示:

运行过后能够得到spped三个值

这里只需用到total,FPS就是1000ms(=1s)/4.8ms=208.3

当然,使用detect.py也能够得到我们的FPS,运行detect.py后的结果如下:

pre-process:图像预处理时间,包括图像保持长宽比缩放和padding填充,通道变换(HWC->CHW)和升维处理等。
ms inference:推理速度,指预处理之后的图像输入模型到模型输出结果的时间。
NMS :可以理解为后处理时间,对模型输出结果经行转换等。
至于计算FPS,是1s也就是1000ms除以这三个时间相加。

2 GFLOPs

GFLOPs(每秒浮点运算次数)通常用于衡量模型在推断或训练时的计算性能。在训练yolo的时候会自动生成这个值。如下:

但是我也遇到它不打印GFLOPs的情况,解决方法:

在终端下载thop库

pip install thop

3 总结

最近在做对比实验,由于是轻量化所以很看重这两个参数,但是发现我不管用哪种网络,FPS都很高(超过100),不知道是不是实验设备太好还是数据集太简单的原因,评价指标最后可能不考虑FPS这个参数了。选择参数量会更加稳妥。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐