(一)图像检测中的评价指标

浅谈图像检测中的评价指标有哪些

 图像检测中常用的评价指标包括:
(1)准确率(Accuracy)
(2)精确率(precision)
(3)召回率(recall)
(4)F值(F1 Score)
(5)AP(Average Precision)
(6)mAP(mean Average Precison)
(7)IOU(Intersection Over Union)
(8)P-R曲线(Precision-Recall Curve)

细分(研究一下其含义与意义)

1、准确率(Accuracy)

概念
 准确率是指模型对测试集标签的正确预测数占总数的比例。
 通俗的说,准确率就是模型预测结果正确的样本数量占总样本数量的比例。
 具体的,准确率的计算公式如下:
accuracy = TP + TN TP + TN + FP + FN \text{accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} accuracy=TP+TN+FP+FNTP+TN

 其中,
TP(True Positive)表示模型将正样本预测为正样本的数量,
TN(True Negative)表示模型将负样本预测为负样本的数量,
FP(False Positive)表示模型将负样本预测为正样本的数量,
FN(False Negative)表示模型将正样本预测为负样本的数量。

 需要注意的是,准确率计算基于测试集进行,因为训练集上的准确率不能反映模型的泛化能力。
 同时,准确率也不能作为唯一的评价指标,因为模型在不同的数据集或应用场景下,准确率会有所不同,还需要总和考虑其他评价指标。


那么什么叫做正样本,什么叫做负样本呢?
 其实这个问题在分类问题中很好理解,以一个二分类问题为例,假设要对人的性别进行分类,将性别分为男性和女性两类,可以将男性样本标记为正样本,女性样本标记为负样本。
 这里假设一个数据集中包含了500个人的信息,其中300个是男性(正样本),200个是女性(负样本)。
 在训练的时候,正负样本的数量应该尽量均衡,即训练集中男性和女性的数量比例应该接近实际比例,可以采用对半划分的方式来确保样本均衡。
 在评价的时候,可以通过计算模型对测试集中正样本和负样本的分类准确率来衡量模型的性能。例如,模型在测试集上对正样本的分类准确率为90%,对负样本的分类准确率为80%,则说明在区分男性和女性方面的效果比较好。

下面举个例子,计算一下准确率:
  假设我们已经训练好了一个性别分类器,在一个100个人的测试集上进行测试,其中男女各占50人。分类器对测试样本进行预测,结果有40个男性被正确识别,10个女性被错误识别为男性,45个女性被正确识别,5个男性被错误分类为女性。
 那么我们可以得到如下信息:
(1)40个男性被正确识别(TP)
(2)10个女性被错误识别为男性(FP)
(3)45个女性被正确识别(TN)
(4)5个男性被错误分类为女性(FN)
那么准确率:
a c c = 40 + 45 40 + 10 + 45 + 5 = 0.85 acc = \frac{40 + 45}{40 + 10 + 45 + 5}=\text{0.85} acc=40+10+45+540+45=0.85

非常好理解

2、精确率(Precision)

 在分类问题中,精确率(Precision)是指分类器所预测的正样本中,真实正样本的比例。
P r e c i s i o n = T P T P + F P Precision= \frac{TP}{TP+FP} Precision=TP+FPTP
依然是上面的例子,计算一下精确率:
 根据给出的数据,男性被正确识别的数量(TP)为40,被错误分类为女性的数量为(FP)10,因此,男性的精确率为:
p r e = T P T P + F P = 40 40 + 10 = 0.8 pre = \frac{TP}{TP+FP} = \frac{40}{40+10}=0.8 pre=TP+FPTP=40+1040=0.8
 也就是说,性别分类器在预测为男性的样本中预测正确的比例为80%。

3、召回率

 在分类问题中,召回率(recall)是指分类器正确预测的正样本数量占所有真实正类的数量的比例,即:

r e c a l l = T P T P + F N recall= \frac{TP}{TP+FN} recall=TP+FNTP
 召回率衡量的是分类器对于正样本的覆盖程度,也被陈我给查全率,它衡量分类器能够识别所有真实正类样本的能力。
 因此,当我们需要寻找所有正类样本时,召回率是比较重要的一个指标,比如,为了尽可能发现所有患者,医生会倾向于使用高召回率的分类器进行癌症筛查。
依然是上面的例子,计算一下召回率:
 在上面的例子中,真正的男性样本为40(TP),原本为男性,错检为女性的数量为5(FN)。
召回率为:
r e c a l l = 40 40 + 5 = 0.89 recall= \frac{40}{40+5}=0.89 recall=40+540=0.89

4、F1值

 F1值是一个综合了精确率和召回率的评估指标,用于评估分类的性能。
 F1值越高,说明分类器的性能越好。
 精确率表示分类器在识别正例时的准确性,即分类器预测为正例中实际为正例的比例;召回率表示分类器在识别正例时的覆盖率,即实际为正例的样本中被分类器预测为正例的比例。
 F1的计算公式如下:

F 1 = 2 ∗ P r e P r e + R e c a l l F1= \frac{2*Pre}{Pre + Recall} F1=Pre+Recall2Pre

5、AP值

 AP值,也就是平均精度(Average Precision)。它是目标检测算法在不同置信度阈值下,根据真实标签和检测结果计算出的精度值的加权平均数。
 通常情况下,AP会计算多个置信度阈值(如0.5,0.75,0.95等),并对这些AP值进行平均,得到最终的平均精度(mAP)。
 AP值越高,表示模型在检测目标时表现越好。

A P = ∑ r ∈ 0 , 1 P ( r ) Δ r AP=\sum_{r\in{0,1}}P(r)\Delta{r} AP=r0,1P(r)Δr
 其中, P ( r ) P(r) P(r)表示Recall为 r r r时的最大Precision值, Δ r \Delta{r} Δr为Recall由上一个切换到当前 r r r时变化的范围,通常等于两个Recall值之间的距离:

Δ r = r i + 1 − r i \Delta{r}=r_{i+1}-r_i Δr=ri+1ri
 在计算AP时,一般会将Recall从小到大排列,并在每个Recall处寻找相应的最大Precision值和 Δ r \Delta{r} Δr,然后累加得到平均精度。
 在实际中,常用的方法是将Recall的数值离散化为一系列阈值,然后对每个阈值计算Precision和Recall,最终得到一组 (Precision, Recall) 点,这组点就可以用来画 Precision-Recall 曲线。接着可以通过计算 Precision-Recall 曲线下面的面积(AUC)来计算AP。

TP FP FN Precision Recall
阈值0.1 50 50 0 50% 100%
阈值0.2 50 50 0 50% 100%
阈值0.3 50 50 0 50% 100%
阈值0.4 40 5 10 88.89% 80%
阈值0.5 40 5 10 88.89% 80%
阈值0.6 40 5 10 88.89% 80%
阈值0.7 40 5 10 88.89% 80%
阈值0.8 40 5 10 88.89% 80%

6、mAP值

  mAP是指平均精度(mean average precision),用来衡量目标检测模型性能的指标,其数值范围在0-1之间。
  mAP值越高,表明目标检测模型的性能越好。在给定一组测试数据集上,mAP值越高,意味着模型能够更准确地检测出目标物体,并且在不同目标之间进行区分的能力也越强。
 mAP的计算公式如下:
m A P = 1 n ∑ i = 1 n A P i mAP=\frac{1}{n}\sum_{i=1}^n AP_i mAP=n1i=1nAPi

  AP就是某个目标的平均精度,mAP是所有目标类别平均准确率的平均值。
  其中, n n n是测试集中目标类别总数, A P i AP_i APi指的是第 i i i个目标类别的平均精度,其计算公式如下:

A P i = 1 R ∑ r = 1 R P ( r ) ⋅ rel ( r ) AP_i=\frac{1}{R}\sum_{r=1}^R P(r)\cdot \text{rel}(r) APi=R1r=1RP(r)rel(r)
  其中, R R R是目标类别的所有正例(即真实存在的目标实例)的数量, P ( r ) P(r) P(r)则是当模型输出前 r r r个检测结果时的准确率, rel ( r ) \text{rel}(r) rel(r)是二进制变量,表示前 r r r个检测结果中是否存在真实正例,取值为0或1。

  简而言之,mAP是每个目标类别的平均准确率的平均值。

7、IOU(Intersection over Union)

 IOU是目标检测中常用的一种指标。它是一种常用的计算物体检测和图像分割等任务中模型预测和真是标注之间的重叠程度的指标。
 该指标计算方法为:将模型预测的边界框和实际边界框进行交集与并集的计算,然后将交集除以并集得到一个值,就是IOU值。该值的范围通常在0-1之间,1表示完全重合,0表示没有重合。在目标检测中,通常使用0.5作为一个阈值,当IOU的值大于0.5时,认为预测的边界框与实际边界框匹配正确。
I O U = I n t e r s e c t i o n U n i o n IOU=\frac{Intersection}{Union} IOU=UnionIntersection
 其中,Intersection指预测框和真实框交集部分的面积,Union是指预测框和真实框并集部分的面积。
 在物体检测任务中,模型对每个目标都产生一个预测框,根据预测框和真实注框之间的IOU值来判断该预测框是否正确。
 当IOU大于某个阈值时,则认为预测框正确,否则认为预测框错误。


举个例子:
 设真实矩形框为 B 1 = ( x 1 , y 1 , w 1 , h 1 ) B_1=(x_1, y_1, w_1, h_1) B1=(x1,y1,w1,h1), 预测矩形框为 B 2 = ( x 2 , y 2 , w 2 , h 2 ) B_2=(x_2, y_2, w_2, h_2) B2=(x2,y2,w2,h2),则它们的交集为:
I n t e r s e c t ( B 1 , B 2 ) = m a x ( 0 , m i n ( x 1 + w 1 , x 2 + w 2 ) − m a x ( x 1 , x 2 ) ) × m a x ( 0 , m i n ( y 1 + h 1 , y 2 + h 2 ) − m a x ( y 1 , y 2 ) ) Intersect(B_1, B_2)=max(0, min(x_1+w_1, x_2+w_2)-max(x1, x2)) \times max(0, min(y_1+h_1, y_2+h_2)-max(y_1, y_2)) Intersect(B1,B2)=max(0,min(x1+w1,x2+w2)max(x1,x2))×max(0,min(y1+h1,y2+h2)max(y1,y2))
 并集为:
U n i o n ( B 1 , B 2 ) = w 1 h 1 − I n t e r s e c t ( B 1 , B 2 ) Union(B_1, B_2)=w_1h_1-Intersect(B_1, B_2) Union(B1,B2)=w1h1Intersect(B1,B2)
 则IOU值就是:
I O U = I n t e r s e c t ( B 1 , B 2 ) U n i o n ( B 1 , B 2 ) IOU=\frac{Intersect(B_1, B_2)}{Union(B_1, B_2)} IOU=Union(B1,B2)Intersect(B1,B2)
举个实例:
 假如有一个真实矩形框为 B 1 = ( 10 , 10 , 30 , 40 ) B_1=(10, 10, 30, 40) B1=(10,10,30,40), 一个预测矩形框为 B 2 = ( 20 , 20 , 20 , 30 ) B_2=(20, 20, 20, 30) B2=(20,20,20,30),则它们的交集为(10, 10, 20, 30),面积为600, 并集为30×40+20×30-600 =1500,因此他们的IOU值为:
I O U = I n t e r s e c t ( B 1 , B 2 ) U n i o n ( B 1 , B 2 ) = 600 1500 = 0.4 IOU=\frac{Intersect(B_1, B_2)}{Union(B_1, B_2)}=\frac{600}{1500}=0.4 IOU=Union(B1,B2)Intersect(B1,B2)=1500600=0.4
 这个IOU值说明预测框和真实框的重叠面积占它们总面积的比例为40%,可以用来评估模型在物体检测任务中的准确性。
注意!!:
 在目标检测任务中,IOU值并不是越大越好,而是根据具体应用场景来确定一个合适的阈值,在实际应用中,通常会将一个阈值作为判断预测框是否正确的标准,在IOU值大于该阈值时,就认为预测框正确,否则认为预测框错误。

猜你喜欢

转载自blog.csdn.net/weixin_44463519/article/details/131224213
今日推荐