トップページ -> 実践知識 -> Octave を用いた画像処理,信号処理 -> Fast SIFT Image Features Library のダウンロードとビルドとインストールとテスト実行
[サイトマップへ], [サイト内検索へ],

Fast SIFT Image Features Library のダウンロードとビルドとインストールとテスト実行

サイト構成 連絡先,業績など 実践知識 データの扱い コンピュータ 教材 サポートページ

Fast SIFT Image Features Library は,SIFT 画像特徴量を求めるライブラリで,Octave/Matlab のスクリプト,コマンドラインインタフェース,python インタフェースを持つ.

この Web ページで行うこと

SIFT 画像特徴量のうち座標値 (x,y) をプロットしたもの

謝辞: Fast SIFT Image Features Library は高速で動き,良質のソフトウエアだと感じています.Fast SIFT Image Features Library の作者様に直接,この Web ページに関するコメント等頂きまして,とても有難く思っています.

◆ この Web ページで行うコマンドの概略(Ubuntu の場合の実行例)

sudo apt-get install cmake

cd /tmp
if [ ! -f libsiftfast-1.2-src.tgz ]; then 
    wget http://sourceforge.net/projects/libsift/files/libsiftfast/libsiftfast-1.2/libsiftfast-1.2-src.tgz
fi

cd /tmp
sudo rm -rf /tmp/libsiftfast-1.2-src
tar -xvzof libsiftfast-1.2-src.tgz
cd libsiftfast-1.2-src
make

sudo make install

wget https://www.kkaneko.jp/cc/stand/lena_std.pgm 
siftfast < lena_std.pgm > lena_std.key

前準備


ビルドとインストール

  1. SourceForge の Fast SIFT Image Features Library の Web ページを開く

    http://sourceforge.net/projects/libsift/

  2. View all files」をクリック

  3. ファイルのダウンロード

    ダウンロードしたファイルは /tmp に置くことにする

  4. 解凍
    cd /tmp
    tar -xvzof libsiftfast-1.2-src.tgz
    

  5. ドキュメントの確認
    cd libsiftfast-1.2-src
    cat README
    

  6. make の実行

  7. make の実行結果の確認

    ■ 実行結果の例 (Ubuntu バージョン 10.10 の場合)

    ■ 実行結果の例 (Fedora バージョン 12 の場合)

  8. make install の実行

    ■ 実行結果の例 (Ubuntu バージョン 10.10 の場合)


テスト実行

siftfast を使って PGM 画像ファイル(濃淡画像) から SIFT 特徴量を求めてみます

  1. テストに使う PGM 画像ファイルの準備

    ImageMagick の convert コマンドを使うと, PGM 画像ファイルを簡単に作ることができます.

  2. siftfast を用いた SIFT 特徴量の算出

    wget https://www.kkaneko.jp/cc/stand/lena_std.pgm 
    siftfast < lena_std.pgm > lena_std.key
    

    ここでの実行例では time を付けて時間を計ることにしている.確かに速い(と思います).


octave を起動し SIFT 特徴量を求める

  1. ドキュメントの確認

    cat /usr/local/share/siftfast/octave/siftfast.m
    

  2. octave を起動し siftfast 関数を使ってみる

    ※ 「lena_std.jpg」の部分は画像ファイル名に書き換えて使ってください.

    wget https://www.kkaneko.jp/cc/stand/lena_std.jpg 
    octave
    

    addpath('/usr/local/share/siftfast/octave')
    
    [rgb, map, alpha] = imread("lena_std.jpg");
    mono = rgb2gray( rgb );
    colormap(gray(256));
    imshow(mono);
    
    MA = double( 1 / double( max(max( mono ))) );
    [frames, descriptors] = siftfast( double(mono) * MA );
    

    ※ addpath ... の実行を忘れると,次のようなエラーが出る.

  3. SIFT 画像特徴量のうち座標値 (x,y) をプロット
    hold
    imshow(mono)
    plot(frames(1,:), frames(2,:), '@')