Octave で VLFeat を使う(Ubuntu 上)
VLFeat は,SIFT,MSER,k-means,AIB などのコンピュータビジョン・機械学習のアルゴリズムを実装したライブラリである.C 言語のライブラリと,MATLAB および Octave から利用できる mex ファイルから構成される.
この Web ページで行うこと
- VLFeat のビルドとインストール
- Octave 用の mex ファイルのビルドと,Octave からの利用
VLFeat の最新版は 0.9.21(2018 年公開)であり,その後の更新は行われていない.ソースコードのリポジトリは https://github.com/vlfeat/vlfeat にある.
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now
C/C++ コンパイラー,make,パッケージツール,curl のインストール
端末で,次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config
sudo apt -y install curl
Octave と liboctave-dev のインストール
Octave 用の mex ファイルのビルドには mkoctfile が必要である.mkoctfile は liboctave-dev パッケージに含まれる. 端末で,次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install octave liboctave-dev
VLFeat のインストール(Ubuntu 上)
ダウンロード
- 次のページで VLFeat のバージョンを確認する
- ダウンロードと展開(解凍)
端末で,次のコマンドを実行する.
cd /tmp curl -O https://www.vlfeat.org/download/vlfeat-0.9.21.tar.gz rm -rf vlfeat-0.9.21 tar -xvzof vlfeat-0.9.21.tar.gz
(以下省略)
VLFeat のビルドとインストール
- ビルド
端末で,次のコマンドを実行する.
cd /tmp cd vlfeat-0.9.21 make - インストール
ビルド結果は,アーキテクチャごとのディレクトリ(64 ビット Linux では glnxa64)の下に置かれる.次のコマンドは,存在するディレクトリから共有ライブラリ libvl.so とコマンド(sift, aib, mser)をコピーする.
端末で,次のコマンドを実行する.
cd /tmp/vlfeat-0.9.21/bin for d in glnxa64 glnx64 glnx86 glnx32 glx a64; do if [ -f $d/sift ]; then sudo cp $d/libvl.so /usr/local/lib sudo cp $d/sift $d/aib $d/mser /usr/local/bin/ fi done sudo chmod 755 /usr/local/bin/sift /usr/local/bin/aib /usr/local/bin/mser # man ページのインストール(ディレクトリが無い場合は作成) sudo mkdir -p /usr/local/share/man/man1 /usr/local/share/man/man7 cd ../src sudo cp mser.1 sift.1 /usr/local/share/man/man1 sudo cp vlfeat.7 /usr/local/share/man/man7 # 共有ライブラリのキャッシュを更新 sudo /sbin/ldconfig
VLFeat 付属のドキュメントの生成
端末で,次のコマンドを実行する.
cd /tmp/vlfeat-0.9.21
sudo apt -y install xfig dvipng doxygen
make doc
Octave で VLFeat を使ってみる
Octave 用の mex ファイルをビルドし,インストールする. 端末で,次のコマンドを実行する.
cd /tmp/vlfeat-0.9.21/toolbox
for d in aib imop kmeans misc sift; do
cd $d
for i in *.c; do echo $i; mkoctfile $i -I.. -I../.. -L/usr/local/lib -lvl --mex; done
cd ..
done
# インストール
sudo /sbin/ldconfig
sudo mkdir -p /usr/local/share/octave/mex
cd /tmp/vlfeat-0.9.21/toolbox
sudo cp */*.mex /usr/local/share/octave/mex
ホームディレクトリの .octaverc に次の行を追加する.Octave の起動時に,mex ファイルのディレクトリが検索パスに追加される.
addpath( fullfile( '/usr/local/share/octave/mex' ) );
動作確認のため,Octave を起動し,次を実行する.関数のヘルプが表示されれば,mex ファイルが読み込まれている.
octave
which vl_sift
help vl_sift