如何处理语义分割中未知类的平均交集(mIOU)?

2024-02-07

我实现了一个 FCN 网络来进行语义分割。我使用 Cityscapes 作为我的数据集。如您所知,Cityscapes 中有一些您在训练过程中忽略的类,它们被标记为 255。我使用加权损失来忽略未知类的损失(将未知类的损失设置为零)。现在我想从我的评估指标中排除未知类(平均交集(mIOU))。目前我不清楚如何排除未知类。

目前我正在考虑使用张量流方法的所有类,包括像这样的未知类:

 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 计算过程中忽略一个类,并且你可以访问混淆矩阵,那么你可以这样做:

  1. 忽略miou由张量流计算(因为它考虑了所有类,但这不是你想要的)
  2. 从混淆矩阵中删除与要忽略的类相对应的行和列
  3. 重新计算miou使用新的混淆矩阵进行度量

如何重新计算miou混淆矩阵的度量?

  • 第一堂课的iou:iou_0 = conf_mat[0,0] / (sum(conf_mat[0,:]) + sum(conf_mat[:,0]) - conf_mat[0,0])
  • 第二堂课的iou: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 to get miou.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理语义分割中未知类的平均交集(mIOU)? 的相关文章

随机推荐

  • 对一组事实进行排序 CLIPS

    我正在尝试根据基于两个字段的比较器对 CLIPS 中的事实集合进行排序 不幸的是 我无法理解为什么如果传递的两个事实中第一个字段相同 则比较器 显然是正确的 会打印 2 我的比较器 deffunction MAIN rating sort
  • C++ 按位复制与按成员复制? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Javascript Set() 中的成员数量是否有限制?或者这是V8中的一个错误

    下面是一些简单的 Javascript 代码 它将整数重复添加到 Set 中 var i var limit 1 lt lt 24 var s new Set for i 0 i lt limit 10 i s add i if i gt
  • 关机还是不关机?在ExecutorService(Java8)中

    我试图了解执行程序服务相对于关闭的行为 文档说 除非有 shutdown 调用 否则应用程序不会终止 但在这个简单的示例中 它会在一分钟后精确退出 任何想法 Runnable r new Runnable Override public v
  • 调整阈值cros_val_score sklearn

    有没有办法设置sklearn的cross val score阈值 我训练了一个模型 然后将阈值调整为 0 22 型号如下 Try with Threshold pred proba LGBM Model predict proba X te
  • Python 3 Windows 服务仅在调试模式下启动

    我首先在中发布了答案这个帖子 https stackoverflow com questions 42586805 python 3 windows service 但不符合论坛标准 我希望这次的回答符合论坛标准 这段代码应该更加清晰易读
  • 当参数未显式传递时,默认使用 lambda 进行用户输入

    我写了下面的代码 仍然想知道它的用途 https codereview stackexchange com questions 242702 how effective is it to default to user input in c
  • Visual Studio 在调试时跳到每隔一行

    我现在尝试单步执行代码 Visual Studio 会跳过所有其他行 我知道它是每隔一个 因为当我有一个 ForEach 循环时 它会碰到在以后的迭代中跳过的行 Visual Studio 是否有任何逻辑原因跳过其他行 UPDATE 我添加
  • 如何迭代 Array.prototype 函数

    我想将所有数组函数包装在数组对象中 但在控制台中 gt gt gt Array prototype gt gt gt prototype undefined 但是当我输入时Array prototype在控制台中它显示自动完成中的所有功能
  • System.Diagnostics.Trace.WriteLine 的结果在哪里?

    在我的代码中 我使用以下命令编写了一些跟踪消息System Diagnostics Trace WriteLine 但是我可以从哪里获取消息呢 我查看了事件查看器 但没有找到它们 Are you debugging Look at the
  • 将 Google Maps JS API ImageMapType 剪辑为多边形

    如何将 Google 地图中的 MapType 剪辑为任意多边形 例如 如果我有一个自定义图像映射类型 https developers google com maps documentation javascript maptypes I
  • Typescript:调用另一个类的“方法”

    我对 java type script 很陌生 在理解它们的概念时遇到了一些困难 我想打电话给method另一个班级的 然而 到目前为止我还没有成功 export class Foo calcSomeThing parameter numb
  • 如何仅使用 javascript 更改 onclick 按钮颜色?

    我试图使用 onclick 和 getElementsByClassName 更改按钮的颜色 并想出了这样的结果 HTML
  • Android 2.3 Webview 中的希伯来字体

    我正在将一个显示希伯来语的应用程序移植到 Android 2 3 2 3 模拟器在 TextView 中正确显示字符串 但是当我尝试将字符串放入 WebView 中时 WebView 只显示乱码 这告诉我希伯来语字体在模拟器中可用 但 we
  • 执行更新时存储过程失败

    我正在使用 PHP 的 SQL Server 驱动程序连接到 SQL Server 2008 Express 现在 我正在尝试用存储过程替换所有 SELECT UPDATE 和 INSERT 语句 这对于只包含 SELECT 语句的 SP
  • 将 Ninject 2.0 与 ASP .Net 3.5 结合使用

    我正在尝试将 Ninject 2 0 与 Asp Net 3 5 Web 应用程序一起使用 以下是 DLLS 及其我正在使用的版本 Ninject dll v2 0 0 0 Ninject Extensions Logging dll v2
  • 对象作为 python 字典中的键

    我试图使用一个对象作为 python 字典中的键 但它的行为方式我不太理解 首先 我创建一个以我的对象为键的字典 package disseminators ContentType application zip http other pr
  • 如何知道下次夏令时调整时钟的时间?

    我很好奇 是否有任何方法可以找出下一次夏令时调整发生时的 UTC 日期 时间 类似于 Windows 报告的内容 参见圆圈 此信息在 Windows 中由 EnumDynamicTimeZoneInformation 函数提供 See ht
  • 从 DataRow 获取值之间的区别

    示例代码 DataTable table new DataTable insert column to table table Columns Add name insert value to table foreach DataRow r
  • 如何处理语义分割中未知类的平均交集(mIOU)?

    我实现了一个 FCN 网络来进行语义分割 我使用 Cityscapes 作为我的数据集 如您所知 Cityscapes 中有一些您在训练过程中忽略的类 它们被标记为 255 我使用加权损失来忽略未知类的损失 将未知类的损失设置为零 现在我想