示例#1
0
    # settting
    sets = parse_opts()
    sets.target_type = "normal"
    sets.phase = 'test'

    # getting model
    checkpoint = torch.load(sets.resume_path)
    net, _ = generate_model(sets)
    net.load_state_dict(checkpoint['state_dict'])

    # data tensor
    testing_data =BrainS18Dataset(sets.data_root, sets.img_list, sets)
    data_loader = DataLoader(testing_data, batch_size=1, shuffle=False, num_workers=1, pin_memory=False)

    # testing
    img_names = [info.split(" ")[0] for info in load_lines(sets.img_list)]
    masks = test(data_loader, net, img_names, sets)
    
    # evaluation: calculate dice 
    label_names = [info.split(" ")[1] for info in load_lines(sets.img_list)]
    Nimg = len(label_names)
    dices = np.zeros([Nimg, sets.n_seg_classes])
    for idx in range(Nimg):
        label = nib.load(os.path.join(sets.data_root, label_names[idx]))
        label = label.get_data()
        dices[idx, :] = seg_eval(masks[idx], label, range(sets.n_seg_classes))
    
    # print result
    for idx in range(1, sets.n_seg_classes):
        mean_dice_per_task = np.mean(dices[:, idx])
        print('mean dice for class-{} is {}'.format(idx, mean_dice_per_task))   
示例#2
0
    net.load_state_dict(checkpoint['state_dict'])

    # data tensor
    # testing_data =BrainS18Dataset(sets.data_root, sets.img_list, sets)
    with open(sets.dataset_info, "r") as read_file:
        dataset_info = json.load(read_file)[sets.dataset]
    testing_data = BiMaskDataset(dataset_info, sets)
    data_loader = DataLoader(testing_data,
                             batch_size=1,
                             shuffle=False,
                             num_workers=1,
                             pin_memory=False)

    # testing
    img_names = [
        info.split("|")[0] for info in load_lines(dataset_info["fp_val"])
    ]
    masks = test(data_loader, net, img_names, sets)

    # evaluation: calculate dice
    label_names = [
        info.split("|")[1] for info in load_lines(dataset_info["fp_val"])
    ]
    Nimg = len(label_names)
    dices = np.zeros([Nimg, sets.n_seg_classes])
    for idx in range(Nimg):
        label = nib.load(label_names[idx])
        label = label.get_data()
        dices[idx, :] = seg_eval(masks[idx], label, range(sets.n_seg_classes))

    # print result