2016-11-18 51 views
1

为了将旋转信息分配给从图像中提取的连接2D点(边缘片段,请参阅下图中的数据点以查看示例),我已经实现了PCA。我希望信息在数据轮换的情况下具有强大的可重复性,以便我可以将其用于识别目的(与1相当)。为此,我希望主要部分(特征向量)随着点(+ - 180度)旋转。主成分分析和旋转

我的实现包括数据的平均居中。我也测试了OpenCV的实现和Python中的一个实现相同的结果。这就是为什么我假设我的实现是正确的,问题是方法本身。对于其他2D发行版我有很好的结果。尽管如此,对于这些特定的数据点,它似乎并不奏效。

我已经完成了所有测试,并且没有标准化到标准偏差(即,将x和y值的数据除以它们的标准偏差)。

这里是我的结果的数据的不同的旋转(从图像中提取的):

PCA Results

如可以看到的,该方法不允许找到一个可再现的转动。数据受量化影响(因为它是从图像中提取的),这就是为什么我认为这是问题的根源。因此我重复了添加随机噪声的实验(第4列)。可以看出,这似乎不成问题。

我没有确切的想法如何解释显示的效果。我注意到,主轴的总体方向分别在第一行和第二行看起来相似。我认为这意味着什么,但究竟是什么?我能以某种方式解决这个问题,或者可能有更好的方法来解决这个问题吗?由于一些预处理,可以假设没有异常值。

感谢您的帮助!

+1

和第二列总是有相同的旋转。这看起来像一个bug,就像你总是显示第一个旋转一样(即使你计算了两个)。而且,PCA对建模这种数据形状也不好。 – Noidea

+0

每列显示相同的数据/旋转。这里分析了四种不同的旋转。不同之处在于第一行显示没有标准化的结果,第二行显示标准化的结果。这不是一个错误,而是用于分析规范化效果的实验设置。请注意,我收到与PCA的外部实现相同的结果 - 我认为这表明实施中没有错误。 – Markus

回答

0

对于symmetrycal的形状像你显示你可以尝试对称探测器这样的:https://github.com/subokita/Sandbox/tree/master/FSD

中的实例给它的结果是这样的:

enter image description here

enter image description here

在搜索结果中,第一个
+0

感谢您的提示。不幸的是,我的数据并不总是对称的。也许这是影响结果的对称性强。因为对于我测试过的其他片段,这些片段不是对称的,PCA的结果在旋转时非常稳定。 – Markus