目标检测——yolov4模型评价

目标检测模型的好坏通常用mAP和FPS来评价,一个代表准确度,一个代表速度。

mAP的评价指标确切的说无模型无关。

mAP--mean Average Precision.

我们用Precision表示模型预测的精度,即模型预测的所有正例中真正正例的比例

用recall表示模型的召回率,即模型预测的真正正例中占所有正例的比例。文字描述比较费劲。

画一个图就好理解了。

 

 

 Precision = TP / (TP+ FN) 预测正确的框 / 所有的预测的框

 Recall = TP / (TP+ FN) 预测正确的框 / 所有的框

在目标检测如何判断预测正确呢,通常计算预测框与真实框的iou,一般设定阈值为0.5, 即大于0.5的判断为预测正确(TP)

因为一个GT只能对应一个预测框,那么只有与GT框 iou最大的,且大于0.5的为TP,其余均为FP  。

举一个例子,例子来源知乎AICV的回答:

 

 

 预测框为红色,GT框为绿色,图片中的百分数为置信度,置信度为88%的框与GT框iou小于0.5,所以这个预测框为FP,依次可以类推出所有的预测框是TP or FP

 

将置信度从大到小排列

 

 

求出所有的TP数量和FP数量,求出不同置信度下的Precision和Recall,绘制PR曲线,横坐标为Recall,纵坐标为Precision

 

 计算PR曲线下的面积,即为所求的AP值

 如何计算面积呢?

在VOC2012之前,只需要选取当Recall >= 0, 0.1, 0.2, ..., 1共11个点时的Precision最大值,然后AP就是这11个Precision的平均值。

需求根据之前的PR曲线插值求出Recall 分别等于0.1,0.2,0.3.。。。1时的Precision值.

在VOC2012之后,需要针对每一个不同的Recall值(包括0和1),选取其大于等于这些Recall值时的Precision最大值,

然后计算PR曲线下面积作为AP值。

( 0.0666-0)*1 + (0.1333-0.0666)*(0.6666)+ (0.2-0.1333)*(0.4285)+(0.2666-0.2)*(0.4285)+(0.3333-0.2666)*(0.4285)

+(0.4-0.3333)*(0.4285)+ (0.46666-0.4)*(0.3043)+(1-0.46666)* 0 = 0.245627808

最终求得AP值为24.56%

要计算 mAP,就把所有类别的 AP 计算出来,然后求取平均即可。

 

posted @ 2020-12-11 23:07  learningcaiji  阅读(1735)  评论(0编辑  收藏  举报