iou是一个类比的交互比,miou是所有类别交互比的平均,首先计算混淆矩阵,然后根据混淆矩阵计算iou以及miou
def calculate_miou(output, target):
output = np.array(output)
output = output.reshape(-1)
target = np.array(target)
target = target.reshape(-1)
k = (output >= 0) & (output < n)# n为类别数
# 计算混淆矩阵
hist = np.bincount(n * output[k].astype(int) + target[k], minlength=n ** 2).reshape(n, n)
# 计算iou
iou = np.diag(hist) / (hist.sum(1) + hist.sum(0) - np.diag(hist))
# 计算miou
miou = np.mean(iou)
return miou