发布时间:2023-09-04 09:30
在了解Precision(精确度)、Recall(召回率之前我们需要先了解一下IOU(Intersection over Union,交互比)。交互比是衡量目标检测框和真实框的重合程度,用来判断检测框是否为正样本的一个标准。通过与阈值比较来判断是正样本还是负样本。一般来讲,当预测框和真实框IOU>=0.5时,被认为是正样本。
I O U = S I n t e r s e c t i o n S U n i o n = S 2 S 1 + S 2 + S 3 IOU = \frac{{{S_{Intersection}}}}{{{S_{Union}}}}{\rm{ = }}\frac{{S2}}{{S1 + S2 + S3}} IOU=SUnionSIntersection=S1+S2+S3S2
Pr e c i s i o n = T P T P + F P R e c a l l = T P T P + F N \begin{array}{l} \Pr ecision = \frac{{TP}}{{TP + FP}}\\ {\mathop{\rm Re}\nolimits} call = \frac{{TP}}{{TP + FN}} \end{array} Precision=TP+FPTPRecall=TP+FNTP
上述公式是求解精确度和召回率的公式,这里我们需要理解其中各项的含义,(正样本就是我们要检测的目标,负样本就是背景)
TP (True Positive) : 可以理解为把框分对了,被分为正样本,本身也是正样本(本身是正样本还是负样本是通过IOU值与阈值比对来判定)。
TN(True Negative): 可以理解为把框分对了,被分为负样本,本身也是负样本。(该指标没有意义,一般不用)
FP(False Positive):可以理解为把框分错了,被分为正样本,但是本身是负样本。
FN(False Negative): 可以理解为把框分错了,被分为负样本,但是本身是正样本。(也就是说该真实目标没有被检测出来)。
举例:
在这个图中绿色的框是真实目标框,红色的框是分类器的预测框
Pr e c i s i o n = 1 1 + 2 = 1 3 R e c a l l = 1 1 + 1 = 1 2 \begin{array}{l} \Pr ecision = \frac{1}{{1 + 2}} = \frac{1}{3}\\ {\mathop{\rm Re}\nolimits} call = \frac{1}{{1 + 1}} = \frac{1}{2} \end{array} Precision=1+21=31Recall=1+11=21
目标检测不是分类,不能单纯凭精确度(Precision)来判断,也不能单纯看召回率(Recall)来判断。比如下面两种情况。
Case 1:
Pr e c i s i o n = 1 1 + 0 = 1 \Pr ecision = \frac{1}{{1 + 0}} = 1 Precision=1+01=1
虽然说精确度可以达到100%,但是在图片中还有其他目标没有被检测到,所以不能单纯依靠精确度一个指标。
Case 2:
R e c a l l = 2 2 + 0 = 1 {\mathop{\rm Re}\nolimits} call = \frac{2}{{2 + 0}} = 1 Recall=2+02=1
同理,该例子中虽然召回率可以达到100%,但是检测效果也不好。那么如何判断模型的检测效果好坏呢,需要AP来衡量。
AP(Average precision可以看作是平均精准度,只不过是一个类别的。而mAP是多个类别的平均精准度。
要算AP,那么我们就要了解PR曲线。该曲线是通过设置不同的置信度(confidence)阈值,得到不同的Precision和Recall,以Precision为横轴,Recall为纵轴画出来的曲线则是PR曲线,曲线围成的面积就是AP。
该图是一个类别的AP,多个类别AP的平均值则是mAP.