主成分分析存在问题

6
我不确定这是否是正确的地方,但我来试试:
我有一组300张高分辨率图片的数据库。我想对该数据库执行PCA操作,到目前为止,我的方法如下: - 将每个图像重新格式化为单列向量 - 创建所有数据的矩阵(500x300) - 计算平均列并将其减去以获得X矩阵 - 计算相关性C = X' * X(300x300) - 查找C的特征向量V和特征值D。 - PCA矩阵由X * V * D ^ -1/2给出,其中每列是主成分。
这很好,可以给出正确的结果。
现在,我正在对相同的数据库执行相同的PCA,只是图像的分辨率更低。
这是我的结果,左边是低分辨率,右边是高分辨率。正如您所看到的,它们大多数都很相似,但有些图片不同(我圈出的那些)。
有没有办法解释这个问题?我需要我的算法使用相同的图像,但一个集合是高分辨率,另一个集合是低分辨率,该怎么做?
谢谢
1个回答

2
很有可能你使用的滤波器对某些组件进行了一些处理。毕竟,低分辨率图像不包含贡献到哪些组件的高频率。如果这些图像上的组件权重很小,那么也有可能会出现错误。
我猜你的组件图像是按权重排序的。如果是这样,我建议尝试使用不同的预下采样滤波器,看看是否会得到不同的结果(通过不同方式获得低分辨率图像)。这些不同的组件可能在该滤波器的过渡带中具有许多频率内容。红色圈出来的图像看起来几乎是完美的反转。滤波器可能会导致这种情况。
如果你的图像没有按权重排序,那么被圈出来的那些图像可能权重非常小,只是计算精度误差之类的问题。无论如何,我们可能需要更多关于你如何下采样、如何在显示前对图像进行排序的信息。此外,我不认为所有的图像都应该非常相似,因为你基本上要摆脱很多频率成分。我非常确定这与将图像拉伸成向量以计算PCA的事实无关,但请尝试在不同方向上拉伸它们(取列而不是行或反之),然后尝试一下。如果结果有所改变,那么也许你可以尝试以不同的方式执行PCA,但我不确定如何操作。

谢谢。不过我还是成功地解决了问题,只需将高分辨率的PCA结果调整为低分辨率图像的尺寸即可。这样我可以确保两种分辨率具有完全相同的基础。 - lezebulon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接