python - 为独特的分割任务构建复杂的自定义损失函数 - 图像上预测点和真实点之间的平均距离
问题描述
我需要为以下任务构建一个非常复杂的损失函数:模型接收图像并输出分割图。具体任务需要识别几个小圆圈,这样输出的分割图本质上是一个带有几个非常小的白点的黑色背景。
对这类问题使用基于交集的方法的问题在于,由于每个圆圈都非常小,所以两个不接触但非常接近的圆圈与两个不接触的圆圈之间没有任何区别& 彼此相距甚远,尽管前者显然更好并且应该“激励”。
一个可能的损失函数是将预测图像上的每个点与ground-truth图像上的对应点进行匹配,并找到对应点之间的平均距离,而不是使用交点。
我目前正在考虑的一种方法是:
- 使用 Hessian 行列式方法快速有效地识别 blob 的坐标。
- 使用匈牙利算法找到从预测图像到真实图像的点的最佳映射。幸运的是,这也可以处理模型预测的点数与真实图像中的点数不同的情况。
但是,我不确定如何使用 Keras 后端函数来实现这一点,因为我正在使用其他库(用于 Hessian 行列式的scikit 图像和用于匈牙利算法的scipy)来完成繁重的工作。我在这里寻找一些指导:是否完全有可能使用可区分的后端函数来实现这一点?如果没有,您是否会推荐其他方法来查找对应点之间的平均距离。
或者,是否有更简单/更好的损失函数可以通过使用基于交集的损失函数来解决上述问题?
谢谢。
解决方案
推荐阅读
- python-3.x - [x]* 在 python 函数文档中是什么意思?
- css - CSS 到属性内的目标类
- python - 在 Pandas 的日期时间值列中混合日期和月份
- c# - 如何在 WPF DataGrid 中提交之前添加项目?
- c# - 如何在 EF 核心中包含虚拟 ICollection 以及此集合中的特定项目?
- xml - 如何使用一个字段作为标记而另一个字段作为值将 go struct 序列化为 XML
- php - 在 ubuntu 中在 www 之外运行一个 php 文件
- xpath - 从 xml 文档中选择命名空间的 xpath
- python - 假设 - 在测试之间重用 @given
- nuget - 在 Artifactory 中查询最新版本的 NuGet 包