![](/img/trans.png)
[英]Intersection over union (IOU) metric for multi-class semantic segmentation task
[英]How to handle the mean Intersection Over Union (mIOU) for unknown class in semantic segmentation?
我实现了一个 FCN 网络来进行语义分割。 我使用 Cityscapes 作为我的数据集。 如您所知,Cityscapes 中有一些您在训练过程中忽略的类,它被标记为 255。我使用加权损失来忽略未知类的损失(将未知类的损失设置为零)。 现在我想从我的评估指标中排除未知类(平均交叉联合(mIOU))。目前我不清楚如何排除未知类。
目前我正在考虑使用 tensorflow 方法的所有类,包括像这样的未知类:
miou, confusion_mat = tf.metrics.mean_iou(labels=annotation, predictions=pred_annotation, num_classes=num_cls)
with tf.control_dependencies([tf.identity(confusion_mat)]):
miou = tf.identity(miou)
我试过这个,但它给出了未绑定标签的错误(对于未知标签)
miou, confusion_mat = tf.metrics.mean_iou(labels=annotation, predictions=pred_annotation, num_classes=(num_cls-1))
如果您想在 mIoU 计算期间忽略一个类,并且您可以访问混淆矩阵,那么您可以这样做:
miou
计算的 miou(因为它考虑了所有类,这不是你想要的)miou
度量如何从混淆矩阵重新计算miou
度量?
iou_0 = conf_mat[0,0] / (sum(conf_mat[0,:]) + sum(conf_mat[:,0]) - conf_mat[0,0])
iou_1 = conf_mat[1,1] / (sum(conf_mat[1,:]) + sum(conf_mat[:,1]) - conf_mat[1,1])
j
类: iou_j = conf_matrix[j,j] / (sum(conf_mat[j,:]) + sum(conf_mat[:,j]) - conf_mat[j,j])
最后,对每类iou
所有这些求和求平均值,得到miou
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.