金子邦彦研究室インストールUbuntu, WSL2Fast SIFT Image Features Library のインストール(Ubuntu 上)

Fast SIFT Image Features Library のインストール(Ubuntu 上)

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

この Web ページで行うこと

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

[image]

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

前準備

Ubuntu のシステム更新

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

UbuntuUbuntu のインストールは別ページ »で説明

sudo apt -y update
sudo apt -yV upgrade
sudo /sbin/shutdown -r now

C/C++ コンパイラー,make,パッケージツールのインストール(Ubuntu 上)

インストールするには,端末で,次のコマンドを実行する.

sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config

cmake, curl のインストール(Ubuntu 上)

インストールするには, 端末で,次のコマンドを実行する.

sudo apt -y update
sudo apt -y install cmake cmake-curses-gui cmake-gui curl

Fast SIFT Image Features Library のインストール(ソースコードを使用)(Ubuntu 上)

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

    利用条件などを確認する.

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

  2. View all files」をクリック

    [image]
  3. libsiftfast のインストール

    cd /tmp
    curl -L -O https://sourceforge.net/projects/libsift/files/libsiftfast/libsiftfast-1.2/libsiftfast-1.2-src.tgz
    cd /usr/local
    sudo rm libsiftfast-1.2-src
    sudo tar -xvzof /tmp/libsiftfast-1.2-src.tgz
    sudo chown -R $USER libsiftfast-1.2-src
    cd libsiftfast-1.2-src
    rm -rf build
    mkdir build
    cd build
    cmake -DCMAKE_VERBOSE_MAKEFILE=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-std=c++0x -Wno-narrowing" ..
    make
    sudo make install
    
  4. 結果の確認

    エラーメッセージが出ていないこと

    [image]

テスト実行(Ubuntu 上)

ここでサンプルとして使用する動画

curl コマンドを用いてダウンロードできる.あるいは Web ブラウザでもダウンロードできる.

curl -L https://github.com/opencv/opencv/blob/master/samples/data/fruits.jpg?raw=true -o fruits.jpg

テスト実行の手順

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

  1. ImageMagick のインストール

    ImageMagick の 「convert -format」を使うので, ImageMagick のインストールを行っておくこと.

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install imagemagick
    
  2. テストに使う PGM 画像ファイルの準備と確認表示

    ImageMagick の convert コマンドを使い,PGM 画像ファイルに変換している.

    convert fruits.jpg fruits.pgm
    display fruits.pgm
    

    [image]

    [image]
  3. siftfast を用いた SIFT 特徴量の算出.確認のため,結果の先頭 10行を表示.

    siftfast < fruits.pgm > fruits.key
    head fruits.key
    

    [image]
  4. 結果のファイルを整形
    cat fruits.key | sed 's/^$/@/g' | tr -d '\n' | sed 's/@/\n/g' > fruits.sift
    head fruits.sift
    

    [image]

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

  1. ドキュメントの確認

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

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

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

    curl -O https://www.kkaneko.jp/sample/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 ... の実行を忘れると,次のようなエラーが出る.

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

    [image]

    [image]