保留正文与补采附件。源页面当前未重新核验;具体限制见交付清单。

[](javascript:void(0)) ZhiHu logo 关注推荐热榜专栏圈子AI WorksBeta 故事 ​ 直答 切换模式 登录/注册 浅析经典目标检测评价指标--mmAP(二) 首发于欲穷千里目 切换模式

浅析经典目标检测评价指标--mmAP(二)

zzzz1 zzzz1 收录于 · 欲穷千里目 194 人赞同了该文章 本文上篇介绍了mmAP这一经典的目标检测评价指标的定义初衷和具体计算方式。下面我们来谈谈mmAP的诸多特点。通过分析我们甚至可以发现某些特点较反直觉,而某些特点可以加以利用达到“涨点”目的……与此同时,mmAP也并不“全能”,它也有一些未考虑到的因素。以下,我们将通过举例的方式来描述mmAP的这些特点以及它的局限。 mmAP的几个特点 先来看一组检测结果。 检测结果(蓝色框为Ground Truth,绿色框为检测结果) 凭直觉地看:b、d的检测结果均差于a、c,因为b、d均含有一个多余的FP;而c的结果要优于a,因为其定位更准确。凭直觉对它们的mmAP排序很可能会排出:c>a>b=d的结果。但实际上,这四组结果对应的mmAP如下图。 实际上,mmAP的排序为:c=d>b>a。为什么呢? 首先回顾一下mmAP的计算方法,mmAP是对每一个IOU阈值计算出一个mAP,然后将其平均得到最终的结果的,因此mAP@0.95和mAP@0.5是同等重要的(本文就暂以0.95和0.5举例,代表两个极端的阈值),虽然b中的两个检测结果其中必有一个为FP,但是在计算mAP@0.5时,分数低但定位更好的结果并不会对mAP产生影响(因为没有分数更低的TP出现了,该FP对P-R曲线毫无影响);同时,在计算mAP@0.95时,分数高但定位更差的结果变成了FP,但是由于a中在该阈值下根本不存在TP,所以b的mAP仍高于a。在所有阈值下,b的mAP都要好于或等于a,所以会有b的mmAP高于a这样的反直觉的现象产生。 再来看看c为什么大于b,同时会等于d?c和b的区别在于,c不存在定位更差的检测结果,因此在计算mAP@0.5这样的低阈值mAP时,两者完全相同(b中FP为何不会产生负面作用,道理同上文一样),而计算mAP@0.95这样的高阈值mAP时,c优于b,因此综合下来c的性能好于b。而b和d的直观效果一样,为何mmAP不同?因为b和d区别(也是唯一区别)在于,d中定位更好的检测结果的分数更高。这样一来,d的性能就和c一样了,因为那个低分且低性能的FP不会影响结果。 从这几个结果的对比我们可以发现mmAP的几个特点:1.mAP@0.75这样的高阈值mAP提高时,未必是定位的性能变好导致的,也有可能是因为检测器留下了部分本来应该被过滤掉的FP,而碰巧这个FP的定位效果更好,在高阈值mAP上提供了正面价值;2.如果检测器的定位性能更强,那么mmAP一定会有所提高;3.有时FP未必会影响性能,FP是否影响性能,关键要看是否还存在比该FP分数更低的TP。 如何利用其特点提高mmAP? 再看一组检测结果。 检测结果 这一组检测结果更真实一些,更像是性能正常的检测器输出出来的结果。直观地看,我们可以确信g>e,因为其定位效果更好。但是f和h仍然含有多余的FP,并且存在分数小于该FP的TP,那么它们的性能究竟如何呢? 实际上:g>h>e>f。其实这一组对比是希望分析检测中的一个问题,即“检测器检测出来的结果中,分数高的未必定位更好,如果分数低的检测结果更好,我们应该怎么办呢?”。其中e的做法是最传统的--直接抑制掉(抑制方法为NMS),而f中的做法则是选择保留,很明显,保留之后的性能变差了,这是因为保留之后必然会存在一个FP,而这个FP会对P-R曲线的后半段产生巨大影响;g的做法比较直观--保留那个分数低但是定位更好的,但是如何确定哪个是定位更好的结果呢?最简单的方法就是“预测定位效果”,IOU-Net就是一个可以用于解决这个问题的研究工作,通过预测检测结果与GT的IOU来判断哪个检测结果的定位效果更好;h的做法非常有意思--将那个应该被抑制掉的检测结果留下来,但是并不是像f那样直接保留,而是给它打了一个很低的分数再保留,这样一来:在计算低阈值mAP时,就不存在比这个FP分数更低的TP了,而在计算高阈值mAP时,它又会对性能有所帮助,所以综合下来,h中的操作也可以提高mmAP。等等,是否觉得这种重新打分的操作非常熟悉?没错,它就是Soft-NMS。其实,在大数据集上(比如COCO),是无法保证重新打分后的检测结果的分数低于所有其他TP的。但是只要被Soft-NMS重新打分的那些结果的平均性能优于该分数段的检测结果,那么性能就会提升。可以这样理解,那些本身就应该保留的高分检测结果大部分是“王者”或者“钻石”,而那些被重新打分的都是“王者”或者“青铜”,虽然并不都是好的,但是由于重新打分,我们把它们放到了“白银”分段,和那些低分检测结果混在了一起。所以最终它们还是能提高检测性能的。 mmAP之外 --分数密度 mmAP也并不是全能的,有一个被mmAP忽略掉的因素就是“分数密度”,也就是每个目标的具体得分情况,mmAP在计算时,只考虑所有检测结果的排序,但并不会考虑检测结果的具体分数,两个mmAP完全相同的检测器的得分可能相差很大。比如下图。 检测结果(红色表示FP) 两者的mmAP完全相同,但是FP的分值并不相同,左边的两个FP分别为0.87和0.86,而右边的两个FP为0.25和0.35。在实际使用时,右侧的检测器我们可以将分数阈值设置为0.35到0.88之间的任何一个数字,因为TP和FP之间有很大的分数差距;而对于左边的检测器,我们只能将分数阈值设置在0.87到0.88之间。换言之,有着同样的mmAP的检测器,在实际使用时的泛化能力未必相同。这是因为mmAP并没有考虑到如“分数密度”这样的因素。 mmAP之外 --P-R trade-off mmAP更高意味着检测结果性能更好,但是当给定一个场景时,却未必总是这样。比如在一个智能收银场景,对图像中所有物体都要检测出来并进行分类,此时我们可能更关心accuracy=TP / (TP+FP+FN),因为此时漏检(FN)和误检(FP)对于性能的损失是相同的。那么拥有更高mmAP的检测器一定拥有更高的acc吗?答案是否定的。 如图,蓝色曲线和绿色曲线相比,AP明显更低,但是却可以达到更高的acc。 这个例子并不是用来证明mmAP不够好。实际上之所以有这样的现象,是因为:mmAP是用来评价检测算法的,而acc是用来评价具体场景下的检测器的。检测算法的mmAP更高,那么它在综合所有任务场景上来看就会有更好的性能。但是当我们有一个确定的场景时,mmAP就会因为“考虑得太全面”而不那么适用了,此时我们应该寻找一个其他的评价指标来衡量检测器的性能,这个指标需要考虑很多因素,比如如何在P-R重要性之间进行trade-off(取舍)。 总结 mmAP是目标检测领域非常重要的性能评价指标,它综合考虑了许多因素,比如类别间的均衡、定位精度的需求等。mmAP也有很多特点,比如“FP未必就是没用的”……不过,虽然mmAP很经典,但它也有体现不出来的要素,比如“分数密度“等。总而言之,mmAP是非常值得深入思考和研究的,辩证地看待它、使用它,才能由表及里的设计出优秀的目标检测算法。 PS:旷视南京研究院全职、实习岗位持续open,欢迎推荐、自荐,简历请发送至南京研究院负责人:songrenjie@megvii.com 编辑于 2021-03-22 08:05 计算机视觉 目标检测 深度学习(Deep Learning) ​赞同 194​​30 条评论​291 ​8 ​分享 ​申请转载​ ​ 未登录用户

30 条评论 默认 最新 瞿可 瞿可 跪求一个问题! 算mmap的时候是不是应该把置信度调的很低,尽量多检测出框,这样map会更高是吗???? 2019-03-27 ​回复​2 zzzz1 zzzz1 作者 是的,因为这样会加长pr曲线的尾巴,并且对pr曲线的前面的部分不会有任何影响。 2019-03-27 ​回复​喜欢 展开其他 3 条回复​ zg9uagfv zg9uagfv 大佬,map@0.5的mmap等于33.7,是怎么计算出来的? 2019-02-28 ​回复​2 zzzz1 zzzz1 作者 大兄弟你看得很细啊~
实际上这是一个计算上的细节问题。 直观来看Recall最大为0.33,所以0-0.33期间Precision都为1。那么计算下来mAP应该等于0.33才对。但是实际上COCO计算mAP时使用了recall = [0, 0.01, ..., 1.00]共101个采样点,因此共有34(0到0.33)个点的Precision=1,其余均为0。所以其mAP为 34/101 约等于0.337。 2019-03-01 ​回复​11 展开其他 1 条回复​ zxhr2793 zxhr2793 楼主总结的非常好,解决了我实验中遇到的一些不理解的现象。但是有个疑问:f保留的那个FP会对后面的PR曲线产生影响嘛?在@0.5时,FP之后没有TP,召回率不变,精度下降,但是PR曲线没有变化啊,所以和h@0.5的分数不一样不太明白 2019-02-24 ​回复​1 zzzz1 zzzz1 作者 可能是图画的不太好,分数不清晰。f里面的那个很明显的fp的分数比另外两个tp要高,所以它后面是有tp的,所以该fp会影响性能。 2019-02-24 ​回复​喜欢 展开其他 1 条回复​ 后仰平行地面 后仰平行地面 您好楼主,请问一下目标检测算法是不是不能考虑ROC曲线和灵敏度特异度啊?因为fpr和特异度这两个指标计算都涉及tn,但是我看有些论文ROC曲线的横轴也就是fpr直接拿fp画的,这对吗 2020-09-18 ​回复​喜欢 南来北往 南来北往 您是不是应该注明一下各检测框与gt的iou,不然mmap难得看出来呀... 2020-07-22 ​回复​喜欢 步履不停 步履不停 请问一下大佬,在iou0.95的情况下,为什么a中没有TP,它0.96不也是属于TP的情况吗,难道是图显示不够清楚 2020-05-26 ​回复​喜欢 小河沟 小河沟 大多数同一个gt的对应的多个预测框,nms过后差不多都没有了吧 2020-02-06 ​回复​喜欢 付知乎 付知乎 大佬,请问有碰到过两个检测器在IoU@0.5和IoU@0.7下的Recall差不多,且在0.5下的mAP也差不多,但在0.7下的mAP却差别较大的情况吗? 2019-07-25 ​回复​喜欢 a粒 a粒 您好,我想问一下,目标检测的评价中是不是不用ROC?原因是不是在False positive rate=FP/N的计算中,N(negative)的数量无法计算呀? 2019-07-13 ​回复​喜欢 zzzz1 zzzz1 作者 对的,n就不好定义。检测这样的非结构化输出任务的是不好定义TN这个概念的。 2019-07-15 ​回复​喜欢 康康 康康 老哥你可以把这几幅图当面试题了 2019-04-18 ​回复​喜欢 点击查看全部评论 未登录用户

关于作者 zzzz1 zzzz1 回答 11 文章 2 关注者 649 ​关注他​发私信 大家都在搜 换一换 江歌妈妈发长文尘埃终将落定704 万热 中国男足 0-5 巴勒斯坦562 万热 原央视主持人阿丘回应被通报419 万热 华为与赛力斯达成新五年合作409 万热 迪拜航空确认航班发生事故398 万热 东航回应网传空姐跪地道歉326 万 王楚钦:不知道为什么就是感觉累320 万热 江苏高考作文《衬衫的价格为 9 磅 15 便士》爆火268 万 女装网店开始用防拆带了265 万 孕妇骑车别车被司机踹翻257 万

推荐阅读

浅析经典目标检测评价指标--mmAP(一) 大家好,我是旷视科技南京研究院研究员赵博睿,主要研究领域为目标检测。今天和大家聊聊mmAP的那些事~ 目标检测是计算机视觉领域的一项基础问题,在许多智能场景的落地应用中目标检测通常… zzzz1 # 目标检测任务、多分类任务的评价指标 二分类任务评价指标首先明确在一般的分类任务或是检测任务中,如果是多分类情况,那么一般的评价指标包含了每个类别独立的指标(如果对于一些类别之间存在关系的特殊任务,可能还会有额外的… red0orange 目标检测评价标准mAP目标检测评价标准mAP 千佛山彭于...发表于机器学习、... 避坑指南:如何选择适当的预测评价指标?| 程序员评测避坑指南:如何选择适当的预测评价指标?| 程序员评测 AI科技大...发表于AI科技大...

想来知乎工作?请发送邮件到 jobs@zhihu.com 打开知乎App 在「我的页」右上角打开扫一扫 其他扫码方式:微信 下载知乎App 无障碍模式 验证码登录 密码登录 开通机构号 中国 +86 获取短信验证码 忘记密码 登录/注册 其他方式登录 未注册手机验证后自动登录,注册即代表同意《知乎协议》《隐私保护指引》 扫码下载知乎 App 关闭二维码