Ejemplo n.º 1
0
def run(args):
    dataset = VOCInstanceSegmentationDataset(split=args.chainer_eval_set,
                                             data_dir=args.data_root)
    gt_masks = [
        dataset.get_example_by_keys(i, (1, ))[0] for i in range(len(dataset))
    ]
    gt_labels = [
        dataset.get_example_by_keys(i, (2, ))[0] for i in range(len(dataset))
    ]

    pred_class = []
    pred_mask = []
    pred_score = []
    for id in dataset.ids:
        ins_out = np.load(os.path.join(args.ins_seg_out_dir, id + '.npy'),
                          allow_pickle=True).item()
        pred_class.append(ins_out['class'])
        pred_mask.append(ins_out['mask'])
        pred_score.append(ins_out['score'])

    print(
        '0.5iou:',
        chainercv.evaluations.eval_instance_segmentation_voc(pred_mask,
                                                             pred_class,
                                                             pred_score,
                                                             gt_masks,
                                                             gt_labels,
                                                             iou_thresh=0.5))
Ejemplo n.º 2
0
def run(args):
    dataset = VOCInstanceSegmentationDataset(split=args.chainer_eval_set,
                                             data_dir=args.voc12_root)

    pred_class = []
    pred_mask = []
    pred_score = []
    gt_masks = []
    gt_labels = []
    out_dir = None
    n_img = 0
    for i, id in enumerate(dataset.ids):
        print(id)
        if (out_dir is not None) and (not os.path.exists(
                os.path.join(out_dir, id + '.npy'))):
            continue
        gt_masks.append(dataset.get_example_by_keys(i, (1, ))[0])
        gt_labels.append(dataset.get_example_by_keys(i, (2, ))[0])
        ins_out = np.load(os.path.join(args.ins_seg_out_dir, id + '.npy'),
                          allow_pickle=True).item()
        pred_class.append(ins_out['class'])
        pred_mask.append(ins_out['mask'])
        pred_score.append(ins_out['score'])
        n_img += 1
    print(n_img)
    print(
        '0.5iou:',
        chainercv.evaluations.eval_instance_segmentation_voc(pred_mask,
                                                             pred_class,
                                                             pred_score,
                                                             gt_masks,
                                                             gt_labels,
                                                             iou_thresh=0.5))
    print(
        '0.75iou:',
        chainercv.evaluations.eval_instance_segmentation_voc(pred_mask,
                                                             pred_class,
                                                             pred_score,
                                                             gt_masks,
                                                             gt_labels,
                                                             iou_thresh=0.75))
 def setUp(self):
     self.dataset = VOCInstanceSegmentationDataset(split=self.split)