2021年7月28日水曜日

Cross-correlation coefficient between 3D arrays

 x,y (2次元) + time (1次元)の相関性をどう定量化しているか?

思いつくのは相互相関係数。動画のマッチングなどで使われているかな?と思い調べてみましたが、見当たらず。需要はないのでしょうか。

3Dで引っかかったのはコレ↓

Correlating two 3D arrays in Python
https://stackoverflow.com/questions/28861995/correlating-two-3d-arrays-in-python

なるほど。1次元にすればよいのか。確かにこれで目的は達せます。偉いねえ。

scipy.ndimage.correlate だと3次元のまま関数を計算できましたが、1次元の方が良さそう。

相関性の良さを比較するには正規化が必要です。が、正規化相互相関は各ライブラリに実装されていないようです。OpenCV にはありましたが、画像なので int 扱いになります。

難しい式ではないので、Zero Mean Normalized Cross-Correlation を関数として記述。2つの3d array を渡せば係数を返してくれるようにあしました。
これでクリアーです。


0 件のコメント:

コメントを投稿