使用卷积神经网络的像素级分类?

Pixel wise classification using Convolutional Neural Network?

问题是概念性的。我基本上了解 MNIST 示例的工作原理,前馈网络将图像作为输入并输出预测标签 0 到 9。

我正在做一个理想情况下将图像作为输入的项目,对于该图像上的每个像素,我将输出该像素是否为特定标签的概率。

例如,我的输入大小为 600 * 800 * 3 像素,我的输出为 600 * 800,其中输出中的每个条目都是一个概率。

如何使用卷积神经网络设计管道?我正在使用 Tensorflow。谢谢


详细说明:

基本上我想将每个像素标记为前景或背景(像素为前景的概率)。我的直觉是,在卷积层中,神经元将能够在该像素周围的补丁中获取信息,并最终能够判断出该像素有多大可能是前景。

虽然效率不高,但一个天真的方法可能是将 window(比如 5px x 5px)像素涂成黑色,记录每个输出 class 的概率,然后将 window 滑动一点,然后再次录制。这将重复,直到 window 遍历整个图像。

现在我们有一些有趣的信息。对于每个 window 位置,我们知道与 classifier 接收整个图像时的概率相比,标签上的概率分布的增量。该增量对应于该区域对 class 做出该决定的贡献的数量。

如果出于可视化目的,您希望将其向下映射到每像素级别,您可以在滑动 window 时使用 1 个像素的步长,并将概率增量映射到 window.

请注意,您不想让 window 太小,否则增量会太小而无法产生差异。此外,您可能希望在如何选择 window 的颜色方面更聪明一些,这样 window 本身似乎并不是 classifier 的一个特征。

根据您的阐述进行编辑: 这仍然适用于您正在尝试做的事情。事实上,它甚至变得更好了。您可以将它们相加,而不是将所有标签概率增量分开。这会给你测量值,告诉你 "how much does this region make the image more like a number" (或者换句话说,前景)。此外,您不会针对未覆盖的图像测量增量,而是针对每个标签的 P(x)=0 的概率向量。