(self, rec, prec, use_07_metric=True)
return ap
ap = voc_ap(rec, prec, [use_07_metric])
        Compute VOC AP given precision and recall.
        If use_07_metric is true, uses the
        VOC 07 11 point method (default:False).
ap = voc_ap(rec, prec, [use_07_metric])
        Compute VOC AP given precision and recall.
        If use_07_metric is true, uses the
        VOC 07 11 point method (default:False).
ap = voc_ap ( rec prec [ use_07_metric ] ) Compute VOC AP given precision and recall . If use_07_metric is true uses the VOC 07 11 point method ( default : False ) .
def voc_ap(self, rec, prec, use_07_metric=True):
        """ ap = voc_ap(rec, prec, [use_07_metric])
        Compute VOC AP given precision and recall.
        If use_07_metric is true, uses the
        VOC 07 11 point method (default:False).
        """
        if use_07_metric:
            # 11 point metric
            ap = 0.
            for t in np.arange(0., 1.1, 0.1):
                if np.sum(rec >= t) == 0:
                    p = 0
                else:
                    p = np.max(prec[rec >= t])
                ap = ap + p / 11.
        else:
            # correct AP calculation
            # first append sentinel values at the end
            mrec = np.concatenate(([0.], rec, [1.]))
            mpre = np.concatenate(([0.], prec, [0.]))

            # compute the precision envelope
            for i in range(mpre.size - 1, 0, -1):
                mpre[i - 1] = np.maximum(mpre[i - 1], mpre[i])

            # to calculate area under PR curve, look for points
            # where X axis (recall) changes value
            i = np.where(mrec[1:] != mrec[:-1])[0]

            # and sum (\Delta recall) * prec
            ap = np.sum((mrec[i + 1] - mrec[i]) * mpre[i + 1])
        return ap
def voc_ap ( self , rec , prec , use_07_metric = True ) : if use_07_metric : # 11 point metric ap = 0. for t in np . arange ( 0. , 1.1 , 0.1 ) : if np . sum ( rec >= t ) == 0 : p = 0 else : p = np . max ( prec [ rec >= t ] ) ap = ap + p / 11. else : # correct AP calculation # first append sentinel values at the end mrec = np . concatenate ( ( [ 0. ] , rec , [ 1. ] ) ) mpre = np . concatenate ( ( [ 0. ] , prec , [ 0. ] ) ) # compute the precision envelope for i in range ( mpre . size - 1 , 0 , - 1 ) : mpre [ i - 1 ] = np . maximum ( mpre [ i - 1 ] , mpre [ i ] ) # to calculate area under PR curve, look for points # where X axis (recall) changes value i = np . where ( mrec [ 1 : ] != mrec [ : - 1 ] ) [ 0 ] # and sum (\Delta recall) * prec ap = np . sum ( ( mrec [ i + 1 ] - mrec [ i ] ) * mpre [ i + 1 ] ) return ap