MCPcopy Create free account
hub / github.com/OpenDriveLab/OpenLane / accumulate

Method accumulate

eval/CIPO_evaluation/pycocotools/cocoeval.py:310–421  ·  view source on GitHub ↗

Accumulate per image evaluation results and store the result in self.eval :param p: input params for evaluation :return: None

(self, p = None)

Source from the content-addressed store, hash-verified

308 }
309
310 def accumulate(self, p = None):
311 '''
312 Accumulate per image evaluation results and store the result in self.eval
313 :param p: input params for evaluation
314 :return: None
315 '''
316 print('Accumulating evaluation results...')
317 tic = time.time()
318 if not self.evalImgs:
319 print('Please run evaluate() first')
320 # allows input customized parameters
321 if p is None:
322 p = self.params
323 p.catIds = [-1]
324 T = len(p.iouThrs)
325 R = len(p.recThrs)
326 K = 1
327 A = len(p.areaRng)
328 M = len(p.maxDets)
329 precision = -np.ones((T,R,K,A,M)) # -1 for the precision of absent categories
330 recall = -np.ones((T,K,A,M))
331 scores = -np.ones((T,R,K,A,M))
332
333 # create dictionary for future indexing
334 _pe = self._paramsEval
335 catIds = [-1]
336 setK = set(catIds)
337 setA = set(map(tuple, _pe.areaRng))
338 setM = set(_pe.maxDets)
339 setI = set(_pe.imgIds)
340 # get inds to evaluate
341 k_list = [n for n, k in enumerate(p.catIds) if k in setK]
342 # print(k_list, "KKK")
343 m_list = [m for n, m in enumerate(p.maxDets) if m in setM]
344 # print(m_list, "MM")
345 a_list = [n for n, a in enumerate(map(lambda x: tuple(x), p.areaRng)) if a in setA]
346 # print(a_list, "AA")
347 i_list = [n for n, i in enumerate(p.imgIds) if i in setI]
348 # print(i_list, "II")
349 I0 = len(_pe.imgIds)
350 # print(I0,"I)")
351 A0 = len(_pe.areaRng)
352 # print(A0, "A0")
353 # retrieve E at each category, area range, and max number of detections
354 for k, k0 in enumerate(k_list):
355 Nk = k0*A0*I0
356 for a, a0 in enumerate(a_list):
357 Na = a0*I0
358 for m, maxDet in enumerate(m_list):
359 E = [self.evalImgs[Nk + Na + i] for i in i_list]
360 E = [e for e in E if not e is None]
361 if len(E) == 0:
362 continue
363 dtScores = np.concatenate([e['dtScores'][0:maxDet] for e in E])
364
365 # different sorting method generates slightly different results.
366 # mergesort is used to be consistent as Matlab implementation.
367 inds = np.argsort(-dtScores, kind='mergesort')

Callers 2

CIPO_evalFunction · 0.95
CIPO_evalFunction · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected