template matching テンプレートマッチング

動く物体を追跡するためにテンプレートマッチングをやりたいのですが、なかなか完璧な方法というものが見つかりません。今まで、いろいろやってきてムービーの90%程度のフレームに関しては追跡可能であっても、物体の動きが急すぎてピントがぼけてブレたようになったフレームがあったりすると、うまくいかなくなります。

完全なものを模索中です。

FAsT-Match: Fast Affine Template Matching https://www.eng.tau.ac.il/~simonk/FastMatch/

というものを見かけました。よさげに見えます。MATLABコードが公開されていました。

FastMatch_demo.mをさっそく実行してみるとエラーになりました。

ADDING PATHS (2 subfolders to path)…

COMPILING MEX FILES…
==> compiling ‘Configs2Affine_mex.cpp’ (1 out of 3)
次を使用中のエラー: mex
サポートされているコンパイラが検出されません。無償提供されている MinGW-w64 C/C++ コンパイラをインストールできます。「Install MinGW-w64 Compiler」を参照してください。その他のオプションについては、https://www.mathworks.com/support/compilers を参照してください。

エラー: CompileMex (行 6)
mex Configs2Affine_mex.cpp

エラー: FastMatch_demo (行 13)
CompileMex

6 mex Configs2Affine_mex.cpp
K>>

コンパイラが必要らしい。

MinGW-w64 コンパイラのインストール

コンパイラをインストールするには、[アドオン] メニューを使用します。

  • MATLAB[ホーム]タブの[環境]セクションで、[アドオン]、[アドオンの入手]をクリックします。
  • MinGW を検索するか、[機能]から選択します。

MATLABのメニューから探してみました。

MATLAB Support for MinGW-w64 C/C++/Fortran Compiler

というのをインストールしてみます。ダウンロードにはMathworksへのログインが必要でした。パスワードを完全に忘れていましたが、メモが見つかってよかった。無事、デモファイルが実行できました。