2016-11-18 5 views
1

画像から抽出した連結2D点に回転情報を割り当てるためにPCAを実装しました(エッジ断片、例の画像のデータ点を参照)。私は、データを回転させて情報を堅牢に再現できるようにして、認識目的で使用できるようにしたいと考えています(1に匹敵)。この目的のために、主成分(固有ベクトル)を点(±180度)で回転させたいと思います。主成分分析と回転

私の実装には、データの平均センタリングが含まれています。また、OpenCVの実装とPythonの実装をテストして、同じ結果を得ました。これが私の実装が正しいと仮定し、問題がメソッドそのものであると仮定している理由です。私は他の2Dディストリビューションでもかなり良い結果を出しました。それにもかかわらず、これらの特定のデータ点については、うまくいかないようです。

私はすべてのテストを標準偏差の標準化の有無にかかわらず行いました(つまり、xとyの値のデータを標準偏差で割る)。ここ

は、(画像から抽出された)データの異なる回転のために私の結果である:

PCA Results

分かるように、この方法は、再現性のある回転を見つけることができません。データは量子化の影響を受けます(画像から抽出されるため)。これが問題の起源であると私は考えていました。そこでランダムノイズを追加して実験を繰り返しました(4列目)。ご覧のとおり、これは問題ではないようです。

私は表示された効果を説明する正確なアイデアはありません。主軸の一般的な向きは、それぞれ第1行と第2行で似ているように見えます。私はこれが何かを意味すると思うが、正確に何か?私は何とか問題を解決することができますか、またはそのような問題のためにおそらくより良い方法がありますか?いくつかの前処理のために、異常値がないと仮定することができる。

ありがとうございました!それは、このような結果を与える例でhttps://github.com/subokita/Sandbox/tree/master/FSD

:あなたはこのように対称性検出器を試すことができますようにあなたのようなsymmetrycal形状については

+1

を、第一および2列目は常に同じ回転をします。これはバグのように見えます。たとえ最初のローテーションが常に表示されていても(両方を計算したとしても)また、PCAは、そのようなデータ形状のモデリングには適していません。 – Noidea

+0

すべての列は同じデータ/回転を示します。 4つの異なる回転がここで分析されます。違いは、一番上の行は正規化なしの結果を示し、二番目の行は正規化による結果を示しています。これはバグではなく、正規化の効果を分析するための実験的セットアップです。 PCAの外部実装でも同じ結果が得られたことに注意してください。これは実装にバグがないことを示していると思います。 – Markus

答えて

0

あなたの結果で

enter image description here

enter image description here

+0

ヒントをありがとう。残念ながら、私のデータは必ずしも対称的ではありません。たぶんそれは強い結果がここに及ぼす対称性です。それが対称ではないテストした他の断片のため、PCAの結果は回転のもとでかなり安定しているからです。 – Markus

関連する問題