VLFeat 0.9.16 のインストール(ソースコードを使用)(Ubuntu 上)

VLFeatは,コンピュータビジョンのソフトウェア Windows 版, Linux 版, Max OS X 版などがある.

ユースケース.VLFeatは「apt install libvlfeat-dev」で簡単にインストールできるが,VLFeat の最新版を追いかけたい場合.自分の環境にあわせてビルドしたい(NVidia CUDA を使うなど)場合は,ソースコードからビルドする.

先人に感謝.

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。

Ubuntu のインストールはこちらの別ページで説明する。

# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now

C/C++ コンパイラと Make とビルドツールのインストール

ソフトウェアをソースコードからビルドするには、C/C++コンパイラ (通常はGCC) や make ユーティリティといった開発ツールが重要である。Ubuntuでは、これらのツールは build-essential パッケージにまとめられている。インストールするには,端末で,次のコマンドを実行する。

sudo apt -y install build-essential libtool texinfo dpkg-dev pkg-config

libtool, texinfo, dpkg-dev, pkg-config は、より複雑なビルドやパッケージ管理の際に役立つ開発関連ツールである。

Git, cmake, curl, curl, p7zip-full のインストール(Ubuntu 上)

端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install git cmake cmake-curses-gui cmake-gui curl curl p7zip-full

VLFeat のインストール(ソースコードを使用)(Ubuntu 上)

  1. VLFeat のインストール操作
    cd /usr/local
    sudo rm -rf vlfeat
    sudo git clone -b v0.9.16 https://github.com/vlfeat/vlfeat
    sudo chown -R $USER vlfeat
    cd /usr/local/vlfeat
    make
    
    cd bin
    sudo cp glnxa64/libvl.so /usr/local/lib
    sudo cp glnxa64/sift /usr/local/bin/
    sudo chmod 755 /usr/local/bin/sift
    sudo cp glnxa64/aib /usr/local/bin/
    sudo chmod 755 /usr/local/bin/aib
    sudo cp glnxa64/mser /usr/local/bin/
    sudo chmod 755 /usr/local/bin/mser
    cd ../src
    sudo cp mser.1 /usr/local/man/man1
    sudo cp sift.1 /usr/local/man/man1
    sudo cp vlfeat.7 /usr/local/man/man7
    sudo /sbin/ldconfig
    
  2. VLFeat を使ってみる

    VLFeat の sift コマンド,ImageMagick の convert コマンドを使用

    cd /tmp
    curl -L https://github.com/opencv/opencv/blob/master/samples/data/fruits.jpg?raw=true -o fruits.jpg
    convert fruits.jpg fruits.pgm
    rm -f fruits.sift fruits.frame
    sift fruits.pgm
    mser fruits.pgm