示例#1
0
def segmentation_stats_gf1(pred_seg, target):
    n_classes = pred_seg.size(1)
    pred_lbls = pred_seg.data.max(1)[1].cpu().numpy()
    gt = np.squeeze(target.data.cpu().numpy())
    gts, preds = [], []
    for gt_, pred_ in zip(gt, pred_lbls):
        gts.append(gt_)
        preds.append(pred_)

    iou = segmentation_scores_gf1(gts, preds, n_class=n_classes)
    dice = dice_score_list(gts, preds, n_class=n_classes)

    return iou,dice
示例#2
0
def segmentation_stats(pred_seg, target):
    n_classes = pred_seg.size(1)
    pred_lbls = pred_seg.data.max(1)[1].cpu().numpy()
    gt = np.squeeze(target.data.cpu().numpy(), axis=1)
    gts, preds = [], []
    for gt_, pred_ in zip(gt, pred_lbls):
        gts.append(gt_)
        preds.append(pred_)

    iou = segmentation_scores(gts, preds, n_class=n_classes)
    dice = dice_score_list(gts, preds, n_class=n_classes)
    precision, recall = precision_and_recall(gts,
                                             preds,
                                             n_class=int(n_classes))

    return iou, dice, precision, recall
示例#3
0
def segmentation_stats(pred_seg, target):
    n_classes = pred_seg.size(1)
    pred_lbls = pred_seg.data.max(1)[1].cpu().numpy()
    #gt = np.squeeze(target.data.cpu().numpy(), axis=1)
    if target.size()[0] > 1:  # Batch of size 1
        gt = np.squeeze(target.data.cpu().numpy()
                        )  #OS: previously raised an error for multimodal
    else:
        gt = target.data.cpu().numpy()
    gts, preds = [], []
    for gt_, pred_ in zip(gt, pred_lbls):
        gts.append(gt_)
        preds.append(pred_)

    iou = segmentation_scores(gts, preds, n_class=n_classes)
    dice = dice_score_list(gts, preds, n_class=n_classes)

    return iou, dice
示例#4
0
def segmentation_stats(prediction, target):
    n_classes = prediction.size(1)
    if n_classes == 1:
        pred_lbls = (torch.sigmoid(prediction) > 0.5)[0].int().cpu().numpy()
        n_unique_classes = n_classes + 1
    else:
        pred_lbls = prediction.data.max(1)[1].cpu().numpy()
        n_unique_classes = n_classes

    gt = np.squeeze(target.data.cpu().numpy(), axis=1)
    gts, preds = [], []
    for gt_, pred_ in zip(gt, pred_lbls):
        gts.append(gt_)
        preds.append(pred_)

    iou = segmentation_scores(gts, preds, n_class=n_unique_classes)
    class_wise_dice = dice_score_list(gts, preds, n_class=n_unique_classes)
    single_class_dice = single_class_dice_score(gts, preds)
    roc_auc_score = roc_auc(gts, preds)

    return iou, class_wise_dice, single_class_dice, roc_auc_score