FPS如何计算?Yolo系列的GFLOPs与FPS如何得到?(小白学习记录)
·
1 FPS
FPS(每秒帧数)是衡量图像处理或模型推断速度的指标,通常用于评估计算机视觉应用程序的性能。FPS表示在一秒内处理的图像帧数,其计算公式为:
其中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这个参数了。选择参数量会更加稳妥。
更多推荐
已为社区贡献2条内容
所有评论(0)