关键点的平均精度(AP:Average Precision)计算过程详细解释
关键点的平均精度(AP:Average Precision)是衡量人体关键点检测效果的重要指标之一。在计算平均精度之前,需要理解以下几个概念:
-
关键点检测任务:在人体关键点检测任务中,通常需要检测人体的各个关节点(例如头、肩、肘、膝、脚等),每个关节点都有一个二维坐标表示在图像中的位置。
-
预测结果和真值(Ground Truth):在进行评估时,我们会有预测的关键点位置和真实的关键点位置。每个关键点的预测位置和真实位置可以用坐标来表示。
-
OKS (Object Keypoint Similarity):这是一个度量预测关键点与真实关键点相似度的指标。OKS的计算公式如下:
O K S = ∑ i exp ( − d i 2 2 s k 2 σ i 2 ) ⋅ δ ( v i > 0 ) ∑ i δ ( v i > 0 ) , OKS = \frac{\sum_{i} \exp\left( - \frac{d_i^2}{2s_k^{2}\sigma_i^{2}} \right) \cdot \delta\left( v_i > 0 \right)}{\sum_{i} \delta\left( v_i > 0 \right)}, OKS=∑iδ(vi>0)∑iexp(−2sk2σi2di2)⋅δ(vi>0),
其中:- d i d_i di 是第 i i i 个关键点的预测和真实位置之间的欧几里得距离。
- 见另外一篇文章:OKS (Object Keypoint Similarity)公式详细解释
-
AP (Average Precision):AP 是对不同阈值下计算出的一系列精度和召回率的综合度量。在人体关键点检测中,平均精度用来衡量预测与真值之间的一致性。为了计算AP,通常会进行以下步骤:
- 计算OKS:对于每一个预测目标,计算其与真实目标之间的OKS。
- 设定阈值:设定多个OKS阈值(例如0.50、0.55、…, 0.90等),并根据这些阈值判断预测是否为正确检测。
- 计算精度-召回曲线:对于每一个阈值,计算对应的精度和召回率。
- 计算AP:对于每一个阈值的精度和召回率曲线,计算AP,最终对所有阈值的AP 进行平均,以得到最终的平均AP。
-
精度(Precision)和召回率(Recall):
- 精度: Precision = TP TP + FP \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} Precision=TP+FPTP,其中 TP \text{TP} TP是True Positive, FP \text{FP} FP 是False Positive。
- 召回率: Recall = TP TP + FN \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} Recall=TP+FNTP,其中 FN \text{FN} FN 是False Negative。
具体的计算流程:
- 对每个实例:计算其所有关键点的OKS。
- 设定多个OKS阈值:通常为一系列从0.5到0.95,每隔0.05一个阈值。
- 计算每个阈值下的TP、FP和FN:基于不同的OKS阈值。
- 计算每个阈值下的Precision和Recall。
- 绘制Precision-Recall 曲线:并对曲线进行平均,从而得到每个阈值下的AP。
- 计算mAP(mean Average Precision):对所有阈值下的AP求平均,从而得到最终的平均精度。
这就是关键点检测中平均精度(AP)的详细解释及其计算步骤。通过衡量不同关键点的检测效果,AP可以有效地反映出算法在关键点检测任务上的性能。