Author:张一极
ap通过计算pr曲线对横坐标的积分,来衡量object detiction 任务的优劣
pr曲线计算方式分为两部:
tp:识别的样本中,正确分类的数目。
fp:识别的样本中,未正确分类的数目。
第一步,计算p:,也就是正确的目标数占据全体目标的占比。
第二步,计算r: (recall)召回率代表,正样本中,识别正确的概率。
然后,计算每一个obj的iou(),定义好tp或者fp
将一类的(recall,precision)点,标在坐标系里。
Code:
91def voc_ap(self, rec, prec):
2 mrec = np.concatenate(([0.], rec, [1.]))
3 mpre = np.concatenate(([0.], prec, [0.]))
4 for i in range(mpre.size - 1, 0, -1):
5 mpre[i - 1] = np.maximum(mpre[i - 1], mpre[i])
6 i = np.where(mrec[1:] != mrec[:-1])[0]
7 # and sum (\Delta recall) * prec
8 ap = np.sum((mrec[i + 1] - mrec[i]) * mpre[i + 1])
9 return ap