[目标检测][目标识别]模型性能测试

在目标检测和目标识别任务中,常用以下几种评价标准:

  1. 参数数目
  2. FLOPs
  3. FPS
  4. Accuracy/Error Rate
  5. mAP

结合PyTorch完成了相关评价标准的实现:zjZSTU/Evaluation-Metrics

相关实现文档:Evaluation-Metrics

参数数目

计算参数数目有助于衡量模型所需内存。为了更直观的理解模型大小,通常利用参数数目进一步计算模型大小(单位为MB

$$
Size = \frac {Num \times 4.0}{1024 \times 1024}
$$

  • 通常使用32位浮点数,所以需要乘以4字节

FLOPs

FLOPS ? FLOPs !

  • FLOPS:Floating-Point Operations Per Second,每秒所执行的浮点运算次数。常被用于估算电脑的执行能力
  • FLOPs:Floating Point Of Operations,浮点运算次数。常被用来衡量算法/模型复杂度

常用GFLOPs衡量算法性能,其表示十亿(=10^9)次的浮点运算

计算

关于FLOPs的计算公式,参考深度学习中FLOPs的计算公式具体在哪篇论文里有提到?

FPS

FPS指的是模型每秒运行帧数。它和FLOPs都是关于模型计算速度的评价标准,不过由于FLOPs是一个估算值,同时其计算同样依赖于具体的硬件设备,所以相对而言,FPS更能够体现模型计算速度

Accuracy/Error Rate

  • Accuracy指的是Top-1 Correct Rate,即标注类别等于分类概率最大的预测类别的样本数除以样本总数
  • Error Rate和正确率相反,其计算标注类别不在前$k$个分类概率最大的预测类别的样本数除以样本总数。在论文中最常使用的就是Top-1/Top-5错误率(个人直觉是因为看起来更加收敛

mAP

mAP(mean average precision)是目标检测任务中最常使用的评价标准,通过计算PR曲线面积来评估算法性能

不同的数据集提供了不同的mAP计算公式,其中最常使用的PASCAL VOC数据集提供的mAP计算。其实现参考:[目标检测][PASCAL VOC]mAP

相关阅读