我正在使用来自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)
矩阵转换为特征向量的下一步是什么?从我正在阅读的内容来看,这是通过平均或最大池来完成的,但是我无法弄清楚这个矩阵是如何工作的。
答案 0 :(得分:1)
您的图像是自然图像还是来自某些特定的设置或科学成像?如果你想对自然图像进行分类,我建议你研究使用神经网络的特征提取,或者像SIFT这样的手工描述符(例如从scikit-image尝试DAISY)。
回答您的问题:要进行最大池化或平均池化,您需要决定是否要在图像中保留局部性。如果没有,您可以对每张图像获得的行进行最大或平均。如果要保持局部性,可以在图像上放置3x3或类似的网格,并仅获取位于给定网格单元格内的那些块的平均值/最大值。这样就可以为每个图像提供3x3x100的功能。