识别脊的几何形状
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了识别脊的几何形状相关的知识,希望对你有一定的参考价值。
我想要识别这些彼此相关的几何形状。例如,看看下面屋顶的图像,只要知道RED中脊的存在,我知道BLUE中的山脊也应该存在(即使它在图像中不可见)。如果我有数千个这样的标记图像,ML模型也应该能够学习这一点。但是,我无法弄清楚如何表示这个问题?
让我们将这些脊称为线,就像在第一个例子中一样,我们通过简单的边缘检测而不是Z来检测X和Y线,因为它不可见。同样地,未检测到线D,但是来自示例2的线A,B,C。
我想要的是我制定了一个ML模型,该模型从X和Y学习应该有一个Z,随后是A,B,C。
我有一个这样的例子的数据集,其中标记了脊(红色和蓝色只是为了区分,所有的脊都用相同的颜色标记)。
要记住一些重要的事情。
- 图像的亮度可能会有很大差异。
- 脊可以具有任何比例或甚至方向(在合理的范围内)。
- 输入图像几乎总是非常嘈杂。
答案
我可以想到两种方法。
- 使用类似于边缘检测问题中使用的网络。这些网络输出Input的每个像素的概率以包含边缘。你的问题很相似,只是你不需要所有的边缘。但是这可能需要一些重要的后期处理,因为你可能会得到很多近线,你必须使用非最大抑制或一些形态学操作将它们折叠成一行。对于训练,地面实况值可以是包含脊的真实位置的二元掩模,或者您可以在实际脊位置上使用一些小高斯,以使损失函数更稳定。
- 第二种方法可以是回归。您可以将包含脊的终点坐标的输出向量作为平面向量。但这需要你修复可能存在的最大脊数。这种方法可能不会单独工作,因为输出矢量较大可能会导致大量误报,但这可以与第一种方法结合使用,只有当它非常接近边缘位置时才能选择保留关键点。从第一种方法获得。
另一答案
我会用CNN来检测屋顶。如果颜色不重要,您可以制作图像灰度/其他颜色通道模型(例如HSV并移除H通道)。或者,您可以通过自动更改任何图像的色调并将此编辑的图像也提供给CNN来扩充数据集。
以上是关于识别脊的几何形状的主要内容,如果未能解决你的问题,请参考以下文章