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这个参数了。选择参数量会更加稳妥。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)