爲了將旋轉信息分配給從圖像中提取的連接2D點(邊緣片段,請參閱下圖中的數據點以查看示例),我已經實現了PCA。我希望信息在數據輪換的情況下具有強大的可重複性,以便我可以將其用於識別目的(與1相當)。爲此,我希望主要部分(特徵向量)隨着點(+ - 180度)旋轉。主成分分析和旋轉
我的實現包括數據的平均居中。我也測試了OpenCV的實現和Python中的一個實現相同的結果。這就是爲什麼我假設我的實現是正確的,問題是方法本身。對於其他2D發行版我有很好的結果。儘管如此,對於這些特定的數據點,它似乎並不奏效。
我已經完成了所有測試,並且沒有標準化到標準偏差(即,將x和y值的數據除以它們的標準偏差)。
這裏是我的結果的數據的不同的旋轉(從圖像中提取的):
如可以看到的,該方法不允許找到一個可再現的轉動。數據受量化影響(因爲它是從圖像中提取的),這就是爲什麼我認爲這是問題的根源。因此我重複了添加隨機噪聲的實驗(第4列)。可以看出,這似乎不成問題。
我沒有確切的想法如何解釋顯示的效果。我注意到,主軸的總體方向分別在第一行和第二行看起來相似。我認爲這意味着什麼,但究竟是什麼?我能以某種方式解決這個問題,或者可能有更好的方法來解決這個問題嗎?由於一些預處理,可以假設沒有異常值。
感謝您的幫助!
和第二列總是有相同的旋轉。這看起來像一個bug,就像你總是顯示第一個旋轉一樣(即使你計算了兩個)。而且,PCA對建模這種數據形狀也不好。 – Noidea
每列顯示相同的數據/旋轉。這裏分析了四種不同的旋轉。不同之處在於第一行顯示沒有標準化的結果,第二行顯示標準化的結果。這不是一個錯誤,而是用於分析規範化效果的實驗設置。請注意,我收到與PCA的外部實現相同的結果 - 我認爲這表明實施中沒有錯誤。 – Markus