in evaluation/tiny_benchmark/third/Cityscapes/evaluation/eval_script/eval_MR_multisetup.py [0:0]
def _prepare(self, id_setup):
'''
Prepare ._gts and ._dts for evaluation based on params
:return: None
'''
p = self.params
if p.useCats:
gts = self.cocoGt.loadAnns(self.cocoGt.getAnnIds(imgIds=p.imgIds, catIds=p.catIds))
dts = self.cocoDt.loadAnns(self.cocoDt.getAnnIds(imgIds=p.imgIds, catIds=p.catIds))
else:
gts = self.cocoGt.loadAnns(self.cocoGt.getAnnIds(imgIds=p.imgIds))
dts = self.cocoDt.loadAnns(self.cocoDt.getAnnIds(imgIds=p.imgIds))
# set ignore flag
for gt in gts:
gt['ignore'] = gt['ignore'] if 'ignore' in gt else 0
# ########################################################### change by hui ###############################
import math
if 'vis_ratio' not in gt:
if 'vis' not in gt:
gt['vis_ratio'] = 1 - 1e-12
else:
gt['vis_ratio'] = (gt['vis'][-1] / gt['bbox'][-1]) * (gt['vis'][-2] / gt['bbox'][-2])
if 'size' not in gt:
gt['size'] = math.sqrt(gt['area'])
if 'height' not in gt:
gt['height'] = gt['bbox'][-1]
if self.filter_type == 'size':
gt['ignore'] = 1 if (gt['size'] < self.params.HtRng[id_setup][0] or gt['size'] > self.params.HtRng[id_setup][1]) or \
(gt['vis_ratio'] < self.params.VisRng[id_setup][0] or gt['vis_ratio'] > self.params.VisRng[id_setup][1]) else gt['ignore']
else:
gt['ignore'] = 1 if (gt['height'] < self.params.HtRng[id_setup][0] or gt['height'] > self.params.HtRng[id_setup][1]) or \
(gt['vis_ratio'] < self.params.VisRng[id_setup][0] or gt['vis_ratio'] > self.params.VisRng[id_setup][1]) else gt['ignore']
if self.ignore_uncertain and 'uncertain' in gt and gt['uncertain']:
gt['ignore'] = 1
##########################################################
self._gts = defaultdict(list) # gt for evaluation
self._dts = defaultdict(list) # dt for evaluation
for gt in gts:
self._gts[gt['image_id'], gt['category_id']].append(gt)
for dt in dts:
self._dts[dt['image_id'], dt['category_id']].append(dt)
self.evalImgs = defaultdict(list) # per-image per-category evaluation results
self.eval = {} # accumulated evaluation results