使用scikit稀疏编码后应用最大/平均合并学习分类

时间:2014-10-30 16:16:43

标签: python image-processing machine-learning scikit-learn

我正在使用来自scikit-learn的稀疏编码,我想尝试对图像进行分类。我有大小为128 x 128的图片。从这里我提取随机7x7补丁,以提供给有100个质心的kmeans。这意味着我有一个100原子的字典。 因此,给定要分类的图像,我首先使用extract_patches_2d从此图像中提取补丁,如果我没有记错,也称为convolutional sampling。这意味着我有一个(128-7 + 1)^ 2个图像补丁。我可以通过使用我的字典和正交匹配persuit编码每个补丁,留下我的(128-7+1)^2*(128-7+1)^2 * 100(稀疏)功能。

将此(14884,100)矩阵转换为特征向量的下一步是什么?从我正在阅读的内容来看,这是通过平均或最大池来完成的,但是我无法弄清楚这个矩阵是如何工作的。

1 个答案:

答案 0 :(得分:1)

您的图像是自然图像还是来自某些特定的设置或科学成像?如果你想对自然图像进行分类,我建议你研究使用神经网络的特征提取,或者像SIFT这样的手工描述符(例如从scikit-image尝试DAISY)。

回答您的问题:要进行最大池化或平均池化,您需要决定是否要在图像中保留局部性。如果没有,您可以对每张图像获得的行进行最大或平均。如果要保持局部性,可以在图像上放置3x3或类似的网格,并仅获取位于给定网格单元格内的那些块的平均值/最大值。这样就可以为每个图像提供3x3x100的功能。