Esempio n. 1
0
    def load_annotations(self):
        assert self.data_type == "mot"

        gt_filename = os.path.join(self.data_root, self.seq_name, "gt", "gt.txt")
        self.gt_frame_dict = read_results(gt_filename, self.data_type, is_gt=True)
        self.gt_ignore_frame_dict = read_results(
            gt_filename, self.data_type, is_ignore=True
        )
Esempio n. 2
0
    def load_annotations(self):  # 读取了两种数据,第二种方式忽略了一部分行人框
        assert self.data_type == 'mot'

        gt_filename = os.path.join(self.data_root, self.seq_name, 'gt',
                                   'gt.txt')
        self.gt_frame_dict = read_results(gt_filename,
                                          self.data_type,
                                          is_gt=True)  # 加载ground truth,
        self.gt_ignore_frame_dict = read_results(gt_filename,
                                                 self.data_type,
                                                 is_ignore=True)
Esempio n. 3
0
    def load_annotations(self):
        assert self.data_type == 'mot'

        gt_filename = os.path.join(self.data_root, self.seq_name, 'gt',
                                   'gt.txt')
        print('gt_filename', gt_filename)
        self.gt_frame_dict = read_results(gt_filename,
                                          self.data_type,
                                          is_gt=True)
        self.gt_ignore_frame_dict = read_results(gt_filename,
                                                 self.data_type,
                                                 is_ignore=True)
Esempio n. 4
0
    def load_annotations(self):
        assert self.data_type == 'mot'

        gt_filename = os.path.join(self.data_root, self.seq_name, 'gt',
                                   'gt.txt')
        self.gt_frame_dict = read_results(gt_filename,
                                          self.data_type,
                                          is_gt=True)
        self.gt_ignore_frame_dict = read_results(gt_filename,
                                                 self.data_type,
                                                 is_ignore=True)
        if not os.path.exists(gt_filename):
            print('gt file not found, empty gt assumed.')
        else:
            print('len %d loaded from gt' % len(self.gt_frame_dict))
Esempio n. 5
0
    def eval_file(self, filename):
        self.reset_accumulator()

        result_frame_dict = read_results(filename, self.data_type, is_gt=False)
        #frames = sorted(list(set(self.gt_frame_dict.keys()) | set(result_frame_dict.keys())))
        frames = sorted(list(set(result_frame_dict.keys())))
        for frame_id in frames:
            trk_objs = result_frame_dict.get(frame_id, [])
            trk_tlwhs, trk_ids = unzip_objs(trk_objs)[:2]
            self.eval_frame(frame_id, trk_tlwhs, trk_ids, rtn_events=False)

        return self.acc
Esempio n. 6
0
    def eval_file(self, filename):
        self.reset_accumulator()

        result_frame_dict = read_results(filename, self.data_type,
                                         is_gt=False)  # 加载检测结果
        frames = sorted(
            list(
                set(self.gt_frame_dict.keys())
                | set(result_frame_dict.keys())))  # 帧的并集
        for frame_id in frames:
            trk_objs = result_frame_dict.get(frame_id, [])
            trk_tlwhs, trk_ids = unzip_objs(trk_objs)[:2]  # 预测track中的边框、id
            self.eval_frame(frame_id, trk_tlwhs, trk_ids,
                            rtn_events=False)  # 用于和ground truth进行计算

        return self.acc
Esempio n. 7
0
    def eval_file(self, filename):
        self.reset_accumulator()
        if self.return_fn and self.return_fp:
            fns = {}
            fps = {}
            matched = {}
            fp_confs = {}
        result_frame_dict = read_results(filename, self.data_type, is_gt=False)
        frames = sorted(
            list(
                set(self.gt_frame_dict.keys())
                | set(result_frame_dict.keys())))
        for frame_id in frames:
            trk_objs = result_frame_dict.get(frame_id, [])
            trk_tlwhs, trk_ids, trk_confs = unzip_objs(trk_objs)
            trk_confs = np.array(trk_confs)
            if self.return_fn and self.return_fp:
                _, oids_masked, hids_masked = self.eval_frame(frame_id,
                                                              trk_tlwhs,
                                                              trk_ids,
                                                              rtn_events=False)
                gt_objs = self.gt_frame_dict.get(frame_id, [])
                gt_tlwhs, gt_ids = unzip_objs(gt_objs)[:2]

                # These are the matched boxes
                matched[frame_id] = {}
                matched[frame_id]['gt'] = gt_tlwhs[oids_masked]
                matched[frame_id]['trk'] = trk_tlwhs[hids_masked]
                matched[frame_id]['trk_confs'] = trk_confs[hids_masked]
                # FN FP
                fns[frame_id] = gt_tlwhs[~oids_masked]
                fps[frame_id] = trk_tlwhs[~hids_masked]
                fp_confs[frame_id] = trk_confs[~hids_masked]
            else:
                self.eval_frame(frame_id, trk_tlwhs, trk_ids, rtn_events=False)
        if self.return_fn and self.return_fp:
            return self.acc, fns, fps, matched, fp_confs
        return self.acc