Octaveでdeformable part modelを使ってみる (1)

Deformable part model*1は近年特に注目を浴びている一般物体検出手法で、デファクトスタンダードとしての地位を固めつつあります。人気の理由として、認識精度のよさや理論的な面白さなどがあげられますが、やはり開発者がしっかりしたソースコードを提供していることが大きいと思います。
http://www.cs.brown.edu/~pff/latent/

ただ、このコードはmatlab用のものです。一般人は普通matlabなんか持っていません。。
まあ最近ではpythonの実装*2などもあるようですが、やはりできればまず開発者のコードを動かしてみたいですよね。

なので、フリーのmatlabクローンであるoctaveでサンプルを動かしてみます。
Octaveはクローンといいつつmatlabとの互換性はかなり怪しかったのですが、最近はだいぶマシになってきたようです。ただ、まだ微妙に仕様が違うところが多いので注意が必要です。

Octaveのインストール

http://www.gnu.org/software/octave/からoctaveソースコードを落としてきます。3.4系以降ならいいと思います。私は3.4.0を使いました。
ソースコードを展開してconfigureします。オプションはいろいろありますが、画像を扱うためにはmagickのライブラリを指定する必要があります。ImageMagickを使う場合はこんな感じ。(先にImageMagickgnuplotは入れておいてください)

$ cd octave-3.4.0
$ ./configure --with-magick=ImageMagick

他のオプションはお好みで。(configureスクリプトの中にいろいろ説明があります)
多分いろいろライブラリが足りないと怒られるので、適宜入れてください。大抵のものはパッケージ管理ツールで入りますが、パフォーマンスを上げるためにblaslapackあたりは自分でソースからコンパイルしてもいいかもしれません。

configureが通ったらmake、make installでOK。make中になんか足らないと怒られることもありますが、その時も適宜インストールしてconfigureからやりなおしてください。

imageパッケージのインストール

Octaveに、画像処理のパッケージを追加で入れます。octave-forgeからimageパッケージをダウンロードします。ダウンロードした場所でoctaveを起動し、pkg installすると入ります。

$ octave
octave:1> pkg install image-1.0.15.tar.gz

これでoctaveの準備は整いました。