coco的AP ap50 ap75 ar 分别有哪些参考价值?


不应该用「科学」或者「不科学」来形容mAP。mAP只是众多衡量目标检测器效果的指标之一,每一种衡量指标只能体现目标检测器效果的一个方面,没有哪一个衡量指标能够全面的体现一个目标检测器的效果,正所谓「横看成岭侧成峰,远近高低各不同」。

我们应该根据所关心的点来选择衡量指标。

1、如果项目要求目标检测器的precision为98%,我们可以看precision=98%时,recall的大小;

2、如果项目要求「there is an upper limit on the acceptable false positives per image (FPPI) rate independent of pedestrian density」,MR就是一个合适的选择;

3、如果我们想看看检测器在某个类别上的总体效果,AP是一个不错的选择,或者直接看看PR曲线;

4、如果我们想看看检测器在各个类别上的总体效果,mAP是一个不错的选择;

5、如果我们想看看检测器在各个类别、各个IOU threshold上的总体效果,可以选择mmAP。


不科学,据我之前实习的了解,和公司内一位大神交流了一下,实际的业务场景中大家通常不会选择mAP(0.5-0.95)这种指标来衡量一个detector的性能,一般还是用FPPI、或者相同Recall下比Precision,主要原因是:

1.应用场景中一般0.5的IoU足够了,并不需要过度严格的指标,比如行人检测、人脸检测等等。

2.mAP会被一些涨recall的方法推上去(脑补一下PR曲线),比如用soft-nms,focal loss等方法测试或训出来的模型Recall会很高,mAP相应的通常会涨一丢丢(当然并不是绝对的),但是都是涨的低Precision的区域,低精度区对应用场景来说没用,一般用的时候都是卡高Precision,涨回来的Recall其实并没有什么用。

3.应用的时候会卡单一的阈值,比如0.5,mAP对阈值做了平均,这时候就更不能用了。

所以常常一些涨mAP的方法在行人和人脸上其实并不能涨点,还是要根据指标和实际的应用场景来hack,但是当大家都在一个公开的benchmark上面公平比测,那这个时候用哪个指标就都无所谓,只要统一就好了呀~


按AP_all排:

按AP50排:

EfficientDet-D7x 从第五跃升第一

不过两种排名方法差不多

ap从55.8到57点多,什么概念?

想起了为提升学分绩煞费苦心的日子.....

--------

What about getting rid of the per-class AP

and just doing a global average precision? Or doing an AP calculation per-image and averaging over that?

Boxes are stupid anyway though, I』m probably a true believer

in masks except I can』t get YOLO to learn them.

YOLOV3只看mAP50

it』s already mean average precision, what do we even call the COCO metric, average mean average precision?

AP30比过别人 ,也能发论文?

得到box以后, 具体怎么用?

第三行比较明显:

(calculate the IOU using the wolfs pixels/polygon or bounding box? I assume it was the former.)

The jump from .25 to .5 is huge. .5 to .666 is somewhat noticeable but i think .666 to .75 is quite hard to tell the difference. Now imagine if theyre all mixed up trying to sort out which is which! To me, .5 is like, you know where the object is basically, .75 is like you know almost EXACTLY where the object is, and .9 is like you got really lucky. I would love to see metrics on inter-labeller IOU to see what most human labellers get.

has some metrics on inter-labeler iou, they got around 0.88 on average

Having accurate bounding boxes is very useful for tasks which are performed after detection, e.g., tracking, instance segmentation, etc.

来源:

## -----------------

摘抄:

1.项目落地时,IoU大于0.5就够用了,一味追求太高的IoU没有太大意义。如果只检测某几类,看mAP不如看那几类的AP;看AP不如比相同recall下的precision。(一般要求precision比较高,不然FP太多经常误报警?)

2. 有些提高AP的方法(比如soft-nms、focal loss)其实涨的是垃圾AP,也就是在precision很低的时候,提高了recall,从而增大了曲线围成的面积,没有实际价值。

有人在问题评论说,「一般情况,re(recall)与pr相比,rc对map影响比较大,所以一般刷榜的都是rc很高,pr并不怎么好」。

求问:coco比赛只看AP,那AR的意义是?


mAP不是有个平均么?而且10个预测出一个,假设唯一预测对的和GT完全重合(p=1,r=1),其余的9个没预测出来,或者完全错误(p=0,r=0),那么得到的mAP也高不到哪里去吧,之前说mAP=0.1,有点错误,得算一波


不同的人有不同的实现,你的这种演算法有bug。

KITTI的检测的代码是你这种演算法,按recall采样了11个点,所以能动手脚。

pascal voc应该没这个bug吧?

coco的代码我没仔细读,估计应该没这个bug。


不同的数据集定义mAP的方式是不一样的,PASCAL数据集后来更改过一次定义,COCO中已经没有mAP的概念了,取而代之的是AP,当然这里的AP和PASCAL和ImageNet里的AP是不一样,COCO这里是把80个类10个IOU阈值(0.5-0.95)下的101个recall下的precision加在一起再除以总数,这样会奖励那些location能力强的模型。

由mAP定义的更迭也能看出来,mAP作为一个metric,更应该说针对不同任务合不合适,而不是科不科学。


首先先说结论:当然科学!

map只是衡量od performance的其中一个评价标准,这个标准有自己严格的数学定义,用处和优缺点。

在他自己的本身当然是科学的,对于用的人先把定义和优缺点去搞清楚,并确定适不适合自己的项目。

ps:很多时候map在实际项目中是不够的。


不科学,最近产品碰到类似的问题,一直想仔细探索,还没来得及,希望知乎大神给点提示?


如果1个proposal都不预测,那算出来mAP就是100%了?


科学,你先搞明白mAP到底怎么算的吧。


推荐阅读:
相关文章