NN模型架构每像素分类

时间:2016-07-18 20:29:19

标签: machine-learning neural-network theano convolution keras

我很熟悉(C)NN如何一般地用于分类问题(2d图像 - > 1类),但我不知道如何构建一个将采用2D图像并输出2d的网络分类值矩阵。

实际上,我有一组NxN图像(1个通道),我想按“每个像素”进行分类。我希望输出是一组NxN类,这样对于位置(a,b)的像素,结果将是输入图像中像素(a,b)的分类结果。

模型架构的任何帮助?

P.S。我听说过基于补丁的方法,但我想将整个NxN图像输入到网络中,而不需要“修补”。

谢谢! 乔

1 个答案:

答案 0 :(得分:2)

一般来说,这项任务没什么特别之处。 DNN可以同时执行多个分类或回归任务。由于权重是共享的,因此您可以确保在对每个像素进行分类时,在一个像素和所有其他像素之间存在一些链接。

长话短说,可能的算法来解决这个问题:

1)确保您有一个训练集,其中输入您有NxN图像,作为输出您有目标类标签的NxN矩阵(每个像素的类标签)

2)使用通常用于图像分类的架构构建一些DNN。像一对带有最大池的卷积层,然后是2-3个完全连接的ReLU层。

3)确保您的输出图层的大小为NxN且不是softmax图层(再次使用ReLU)

4)训练它!

这应该绝对正常。我还可以向你保证,从DNN获得几个半独立的输出并不罕见。例如,here同一网络用于同时定位所有面部关键点(眼睛,嘴巴,鼻子等)。