def _prepare()

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