私はそれぞれ約10-100万の倍精度要素を持つ16個の1D配列を持っています。私はそれらの間に相互相関を実行する必要があります。すなわち、1と2、1と3、...、1と16、2と3、2と4、...、2と16など。これは、MacBook Intel Core 2デュオ2.4GHzでは4GBのRAMで効率的に実行することはできません。私の質問は、一般的なアプローチは何か、ブルートフォース(速いプロセッサ、より多くのRAM)ではなく、人々がこの問題を克服するために使用するかどうか、またはそのような問題ですか?ありがとう!中規模の配列の相互相関
3
A
答えて
2
各アレイのフーリエ変換を計算する場合は、 変換された配列を使用して元の入力配列の各ペアの間でcross-correlationを効率的に計算する必要があります。 の「プロパティ」セクションを参照してください。使用するアイデンティティーについてはリンク先のWikipediaの記事を参照してください。
1
numpyの相互相関関数は非常に遅いです。 openCVライブラリには、親しみやすい親密な相互相関関数が用意されています。周波数領域を実装しようとしても、相互相関計算を高速化するために利用可能な多くの技があるので、openCVライブラリを打ち負かすことはありません。
JPルイス、「高速テンプレートマッチング、」ビジョン・インタフェース、1995年、巻中:私は、コードは以下の論文で詳述トリックに基づいていると信じ
Computing cross-correlation function?
:前に私はこれについて投稿しました。 95巻、120-123頁。
関連する問題
- 1. OpenCVの2つの配列の相互相関
- 2. C#の相互相関コード
- 3. 分散相互相関行列計算
- 4. Kerasは相互配列相関を最大にします
- 5. 相互相関関数2つの強度行列801x801
- 6. Matlab:xcorr 1d相互相関正規化問題
- 7. 相互相関係数の混乱
- 8. 2つの配列の相互比較
- 9. Tensorflowにおけるバッチ相互相関
- 10. 人の相互関係
- 11. 相互参照表の列
- 12. は相互関係に
- 13. 次の相互
- 14. Javaの相互
- 15. 相互相関に対するパディングの効果
- 16. C/Java/C++での相互相関関数に関するすべてのポインタ
- 17. 相互相関:ValueError:目的の配列に対してオブジェクトが深すぎます
- 18. 配列対WCFとの相互運用性のためのリスト
- 19. Androidの相互アクティビティコミュニケーション
- 20. ウィジェットの相互リサイズ
- 21. 相互スクロールバー
- 22. 相互参照
- 23. 相互再帰
- 24. 相互相関を正しく計算する方法は?
- 25. 異なる長さの信号に対して[-1,1]との相互相関を正規化する
- 26. jQuery配列の相違
- 27. Argonaut:多相配列のデコード
- 28. VBA - 配列の相違
- 29. 相互の友人のクエリ
- 30. 中規模大規模プロジェクトの構造
私はこの身元について知っています。私は相互相関を直接計算するNumPyを使用しています。このアイデンティティを使用して相互相関を計算すると、計算が高速になります。つまり、一晩中実行する必要はありません。 –
@cpcloud:私はPythonのエキスパートではありませんが、私はちょっと調べて、NumPyがFFTテクニックを使用していないと主張したSOの別の場所で答えを見つけました。 1つの配列が他の配列よりもはるかに小さい場合は多少速くなりますが、関心がある場合は遅くなります)。1000万点の配列のFFTを計算するのは時間がかかり過ぎないはずです。フーリエ識別を使用して相互相関ルーチンを実装した場合、大幅なスピードアップが見込まれます。 –
ありがとう!この情報を見つけた場所へのリンクを投稿できますか?とても有難い! –