2016-07-18 23 views
2

我很熟悉如何(C)神经网络工作在一般的分类问题(2D图像 - > 1类),但我不知道如何构建一个网络,将采取2d图像并输出分类值的2d矩阵。NN模型体系结构每像素分类

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

模型架构的任何帮助?

P.S.我听说过基于补丁的方法,但我希望将整个NxN图像无需“修补”即可送入网络。

谢谢! Joe

+0

是一个像素依赖于其他像素? – malioboro

+0

你有什么问题?我的意思是你可以清楚地尝试使用NxN输入层和NxN输出层。只要确保不在整个输出层上应用softmax函数(正如我们在分类问题中通常所做的那样)。试试看它是否有效。或者你已经尝试过了吗? –

+0

这些图像是来自医学CT扫描的切片。 @malioboro:一个像素不是明确地依赖于其他像素,但像一个图像,它们是内在联系的。 @ Maxim:这不是一个有效的自动编码器吗?有关为分类目的创建此类网络的任何提示? –

回答

2

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

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

1)请确保您有在那里输入您的N×N图像的训练集,作为输出你有目标的分类标记的N×N矩阵(类标签对于每个像素)

2)建立一个DNN与您通常用于图像分类的架构。类似于具有最大池的卷积层的几个,随后是2-3个完全连接的ReLU层。

3)确保你的输出层将具有N×N的大小,是不是SOFTMAX层(使用RELU再次)

4)车吧!

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