基于中心线提取的评价指标

概要

本博文主要介绍如何评价中心线提取算法的指标,该类指标主要有三种:完整性、正确性以及质量。完整性是召回率(recall)的一种变体,在所提取的中心线新建一定长度的缓冲区,真值(ground truth)与之重叠部分的长度除以真值的长度,即可获取完整性的值。正确性是准确率的变体,在真值中心线新建一定长度的缓冲区,所提取的中心线与之重叠部分除以所提中心线的长度,即可获得正确性的值。质量是一个总体指标,结合了完整性和正确性,公式如下图所示。
在这里插入图片描述

代码实现

def compute_centerline_metrics(gtPath, predPath):
    gt = read_img(gtPath)
    pred = read_img(predPath)
    gt = np.where(gt > 0, 1, 0)
    pred = np.where(pred > 0, 1, 0)
    length_gt = np.sum(gt)
    length_pred = np.sum(pred)
    pred_mask = dilation(pred.copy(), square(7))
    pred_pos = np.where((pred_mask + gt) == 2, 1, 0)
    length_pred_pos = np.sum(pred_pos)
    completeness = length_pred_pos / length_gt

    gt_mask = dilation(gt.copy(), square(7))
    gt_pos = np.where((gt_mask + pred) == 2, 1, 0)
    length_gt_pos = np.sum(gt_pos)
    correctness = length_gt_pos / length_pred

    quality = length_gt_pos / (length_pred + length_gt - length_gt_pos)

    return completeness, correctness, quality

猜你喜欢

转载自blog.csdn.net/weixin_42990464/article/details/115129219