コード例 #1
0
ファイル: compute_JI.py プロジェクト: zymale/CrowdDetection
def evaluation_all(path, target_key):
    records = misc_utils.load_json_lines(path)
    for i in range(10):
        score_thr = 1e-1 * i
        total = len(records)
        stride = math.ceil(total / nr_procs)
        result_queue = Queue(10000)
        results, procs = [], []
        for i in range(nr_procs):
            start = i * stride
            end = np.min([start + stride, total])
            sample_data = records[start:end]
            p = Process(target=compute_JI_with_ignore,
                        args=(result_queue, sample_data, score_thr,
                              target_key))
            p.start()
            procs.append(p)
        tqdm.monitor_interval = 0
        pbar = tqdm(total=total, leave=False, ascii=True)
        for i in range(total):
            t = result_queue.get()
            results.append(t)
            pbar.update(1)
        for p in procs:
            p.join()
        pbar.close()
        line, mean_ratio = gather(results)
        line = 'score_thr:{:.1f}, {}'.format(score_thr, line)
        print(line)
コード例 #2
0
 def __init__(self, config, if_train):
     if if_train:
         self.training = True
         source = config.train_source
         self.short_size = config.train_image_short_size
         self.max_size = config.train_image_max_size
     else:
         self.training = False
         source = config.eval_source
         self.short_size = config.eval_image_short_size
         self.max_size = config.eval_image_max_size
     self.records = misc_utils.load_json_lines(source)
     self.config = config
コード例 #3
0
ファイル: visulize_json.py プロジェクト: zzq96/CrowdDet
def eval_all(args):
    # json file
    assert os.path.exists(args.json_file), "Wrong json path!"
    misc_utils.ensure_dir('outputs')
    records = misc_utils.load_json_lines(args.json_file)[:args.number]
    for record in records:
        dtboxes = misc_utils.load_bboxes(
                record, key_name='dtboxes', key_box='box', key_score='score', key_tag='tag')
        gtboxes = misc_utils.load_bboxes(record, 'gtboxes', 'box')
        dtboxes = misc_utils.xywh_to_xyxy(dtboxes)
        gtboxes = misc_utils.xywh_to_xyxy(gtboxes)
        keep = dtboxes[:, -2] > args.visual_thresh
        dtboxes = dtboxes[keep]
        len_dt = len(dtboxes)
        len_gt = len(gtboxes)
        line = "{}: dt:{}, gt:{}.".format(record['ID'], len_dt, len_gt)
        print(line)
        img_path = img_root + record['ID'] + '.png'
        img = misc_utils.load_img(img_path)
        visual_utils.draw_boxes(img, dtboxes, line_thick=1, line_color='blue')
        visual_utils.draw_boxes(img, gtboxes, line_thick=1, line_color='white')
        fpath = 'outputs/{}.png'.format(record['ID'])
        cv2.imwrite(fpath, img)