学习笔记 --- 目标检测性能评价指标MAP、FLOPs

通常我们去评价一个模型时首先看的应该是它的精确度,当你精确度不行的时候,你和别人说我的模型预测的多么多么的快,部署的时候占的内存多么多么的小,都是白搭。但当你模型达到一定的精确度之后,就需要更进一步的评价指标来评价你模型:
1)前向传播时所需的计算力,它反应了对硬件如GPU性能要求的高低;
2)参数个数,它反应所占内存大小。
为什么要加上这两个指标呢?因为这事关你模型算法的落地。比如你要在手机和汽车上部署深度学习模型,对模型大小和计算力就有严格要求。

IOU定义与计算

https://github.com/amusi/Deep-Learning-Interview-Book/blob/master/docs/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89.md#iou

mAP定义与计算

https://github.com/amusi/Deep-Learning-Interview-Book/blob/master/docs/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89.md#map

关于IOU的疑问:

iou只能用来判断预测预测的位置准不准确,但是目标检测除了预测位置准不准确外,还需要判断预测的类别和gt(ground truth)类别是否对应呀。
现在我拿出一张图片中所有要计算AP的类别的检测框,计算与Gt对象检测框的iou,若iou大于阈值,则视为TP,若预测框中的实际对象不是要计算AP值的那个类别,但预测的标签是要计算AP的那个类别,且预测框与gt对象的框iou也大于阈值,那么这种情况判读为TP,明显是错误的。

其实这种情况基本不可能发生:
1、源码中:if not R[‘difficult’][jmax],将难检测的目标去掉了(个人觉得这里主要去除的是被遮挡面积较大的检测对象,也就是2个不同类别的物体重叠干扰的情况)
2、假如框中实际对象与要GT的类别不匹配,你预测的此类别的置信度分数不会很高,然后在统计TP的时候,置信度分数高的检测结果先去判断是否是TP
3、即使假设你是剩下预测中置信度分数最高的,你与其他目标的GT的IOU还要超过阈值
以上三点每一样都基本很难满足,更别说三点都满足了,所以说这样做是一点问题没有的。

目标检测中的遮挡问题解决方案

一般通过设计优化损失函数来解决

1.对于待检测目标之间的相互遮挡

通过优化损失函数,一方面对proposal向其它目标偏移或其它目标对应的proposals靠近的情况进行惩罚;
另一方面设计损失函数使(1)所有的预测框逼近对应的Target框;(2)属于同一Target框的多个预测框尽量集中来解决待检测目标之前的相互遮挡。

2.对于待检测的物体被干扰物体(非检测的类别目标)遮挡

因为算法只学习待检测的物体的特征,所以第二种遮挡只能通过增加样本来优化检测效果。

在NMS之后计算mAP

这一点一定要明确,mAP值计算在NMS之后进行的,mAP是统计我们的检测模型的最终评价指标,是所有操作完成之后,以最终的检测结果作为标准,来计算mAP值的,另外一般只有测试的时候才会作NMS,训练的时候不进行NMS操作,因为训练的时候需要大量的正负样本去学习。

FLOPs和FLOPS区分

FLOPs:floating point operations 指的是浮点运算次数,理解为计算量,可以用来衡量算法/模型的复杂度。
FLOPS(全部大写)指的是每秒运算的浮点数,理解为计算速度,衡量一个硬件的标准。
我们要的是衡量模型的复杂度的指标,所以选择FLOPs

FLOPs计算

卷积层FLOPs计算

参考:(另外其中有计算FLOPs的工具)
目标检测的性能评价指标

CNN 模型所需的计算力flops是什么?怎么计算?

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昼行plus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值