我正在尝试在Matlab中实现分类NN。 我的输入是来自图像的坐标簇。 (对应于delaunay三角剖分顶点) 这种格式有3个簇(光学算法的结果):
(并非所有群集都具有相同的大小。)。元素表示欧几里德2d空间中的坐标。所以(110,12)是我图像中的一个点,所描绘的矩阵代表一个点集。 在图像边缘上完成聚类。因此,坐标指的是图像矩阵上的逻辑值(在这种情况下总是1s)。(在边缘检测之后,图像中有3个“密集”区域,并且这些像素集合用于分类)。有6个目标类。
所以,我的问题是如何将它们格式化为单列向量输入以用于神经网络? (有一个相关的答案here但是如果可能的话我想进行一些阐述。(我现在可能从12小时尝试的东西太累了,不要100%得到它:D :() 请记住,每张图片有3种不同的坐标矩阵,所以我最初的想法是,用3个输入(不同长度)创建一个nn。但是如何序列化呢?
如果有帮助,这是一个带有标签的群集:
答案 0 :(得分:1)
为了训练分类器,你需要一个矩阵X,其中每一行都对应一个图像。如果要使用坐标表示,这意味着所有图像必须具有相同的大小,例如,M乘N.因此,图像的行将具有M次N个元素(要素),并且相应的要素值将是群集分配。类向量y将是您拥有的任何标签,这是您通过上述注释提到的六个不同类别之一。你应该记住,如果你使用坐标表示,X可以得到非常高维度,除非你有大量的图像,否则你的分类器很可能表现得很差。如果您的图像很少,请考虑使用我在其中一条评论中建议的属于像素的像素分数:这可以为您提供更短的特征描述,这些特征描述对于旋转和平移是不变的,并且可以产生更好的分类。