アルコン2008ポスター
↑ ポスター

第12回 パターン・認識・メディア理解 (PRMU) 研究会 アルゴリズムコンテスト 「騎士(ナイト)を数えナイト 〜画像に含まれる特定物体の計数〜」

チュートリアル・目次

  1. ダウンロード
    1. Linuxの場合(cygwin含む)
    2. Windowsの場合(Visual Studio .net 2005 & 2008)
  2. とりあえず実行してみる
    1. Linuxの場合(cygwin含む)
    2. Windowsの場合(Visual Studio .net 2005 & 2008)
  3. 新しいアルゴリズムを実装する
  4. 各種設定
    1. 画像形式の変更方法(Linuxのみ)
    2. Visual Studio .netのコマンドライン引数の変更方法

1. ダウンロードとインストール

a. Linuxの場合(cygwin含む)

ダウンロードページからプログラムと画像をダウンロードします。画像はPNG形式とPPM形式の2種類があります。 libpngが(ひょっとするとzlibも)インストールされている場合はPNG形式をお薦めします。

Linux版はtar.gz形式なので、プログラムは

# tar xfz alcon2008_@@@.tar.gz

で展開します(@@@はversion)。画像は、PNG形式の場合は

# tar xfz alcon2008_img_png.tar.gz

で、PPM形式の場合は

# tar xfz alcon2008_img_ppm.tar.gz

で展開します。 次の「とりあえず実行してみる」の項では、プログラムと画像を同じディレクトリで展開したとして説明します。

削除する場合はディレクトリを下記のコマンドで削除してください。

# rm -r alcon2008_@@@
# rm -r image

b. Windowsの場合(Visual Studio .net 2005 & 2008)

以下、Visual Studio .netを利用する場合です。 cygwinを利用する場合は上記のLinuxの場合の場合を参照してください。

ダウンロードページからプログラムと画像をダウンロードします。画像はPNG形式とPPM形式の2種類がありますが、Windows版のプログラムには libpngzlibが同梱されていますので、PNG形式をダウンロードしてください。zip圧縮のものをお薦めします。そして、プログラムと画像をダウンロードして、同じ場所に展開してください。

削除する場合はフォルダをごみ箱に捨ててください。

目次へ戻る

2. とりあえず実行してみる

a. Linuxの場合(cygwin含む)

  1. 次のコマンドで展開したディレクトリに入ります。
  2. # cd alcon2008_@@@
    
  3. 配布時の設定はPNG形式の画像を使うことになっているので、libpngを(ひょっとするとzlibも)必要とします。これらがインストールされていない場合は、「画像形式の変更」の項を参照の上、PPM画像を使うように変更してください。
  4. makeコマンドでプログラムをコンパイルします。
  5. # make
    
  6. コンパイルに成功すれば、alcon2008 という実行形式のファイルができているはずです。次のコマンドでこれを実行してみましょう。
  7. # ./alcon2008 ../image/LV1/1
    

    "../image/LV1/1"というのは画像のあるディレクトリへのパスで、この場合はLevel 1の1番目の画像を表しています。 画像のあるディレクトリをコマンドラインの引数で指定しない場合は、実行時に居るディレクトリに画像があるとみなします。指定したディレクトリに画像が無い場合は、画像ファイルが開けないというエラーが出て終了します。

  8. 正常に実行されれば、いろいろなメッセージが表示された後、実行時間やスコアが表示されます。
  9. 配布時の状態では"relative mag = 1.378585"が表示された後、しばらく時間がかかりますが、異常ではありません。

    「No such file: ../image/LV1/1/test.png」のように表示された場合は画像を展開した場所が違うことが考えられますので、画像の位置を確認してください。

  10. 実行後、現在いるディレクトリに evaluate.png という画像ファイルができていると思います。この画像が実行結果を表していて、矩形が正しい参照画像の位置を表し、点が回答した位置を表しています。グレーの矩形は正しく回答されなかった参照画像、それ以外の色の矩形は正しく回答された参照画像を表しています。グレーの点は不正解、それ以外の色の点は正解であることを表しています。この例の場合は回答した2点とも正解です。

目次へ戻る

b. Windowsの場合(Visual Studio .net 2005 & 2008)

  1. 展開したフォルダ alcon2008_@@@ に入り、alcon2008.sln を開きます。

  2. メニューの「ビルド(B)」から「ソリューションのビルド(B)」を選択し、プログラムをコンパイルします。

  3. 「========== ビルド: 1 正常終了、0 失敗、0 更新、0 スキップ ==========」のように表示されたら成功です。
  4. 次に、画像の場所をコマンドライン引数を与えます。 「Visual Studio .netのコマンドライン引数の変更方法」の項を参照して、「コマンドライン引数」に" ../../image/LV1/1"を与えてください。
  5. これで準備ができたので、プログラムを実行します。メニューの「デバッグ(D)」から「デバッグなしで開始(H)」を選びます。

  6. 正常に実行されれば、いろいろなメッセージが表示された後、実行時間やスコアが表示されます。
  7. 配布時の状態では"relative mag = 1.378585"と"relative mag = 1.792160"が表示された後、しばらく時間がかかりますが、異常ではありません。

    「No such file: ../image/LV1/1/test.png」のように表示された場合は画像を展開した場所が違うことが考えられますので、画像の位置を確認してください。

  8. 実行後、alcon2008 というフォルダの中に evaluate.png という画像ファイルができていると思います。この画像が実行結果を表していて、矩形が正しい参照画像の位置を表し、点が回答した位置を表しています。グレーの矩形は正しく回答されなかった参照画像、それ以外の色の矩形は正しく回答された参照画像を表しています。グレーの点は不正解、それ以外の色の点は正解であることを表しています。この例の場合は回答した2点とも正解です。


目次へ戻る

3. 新しいアルゴリズムを実装する

main関数から、count.cというファイルに含まれる

struct answer count(struct image *test_img,
		    struct image *template_img,
		    struct image *mask_img);

が呼ばれます。関数countや、count.cの他の関数などを自由に変更して、早くて正確に計数するアルゴリズムを実装してください。サンプルプログラムでは、画像を扱うためにimageという構造体を定義して使っています。このプログラムでの画像の扱い方を「画像の扱い方(構造体image)」の項で説明しますので、参考にしてください。

目次へ戻る

4. 各種設定

a. 画像形式の変更方法(Linuxのみ)

使用する画像の形式はPNGまたはPPMのいずれかです。配布時はPNG形式を使う設定になっています。これを変更するには、Makefileの1行目の

# for PNG
IMG_FORMAT = -DUSE_PNG

# for PPM
# IMG_FORMAT = -DUSE_PNM

# for PNG
# IMG_FORMAT = -DUSE_PNG

# for PPM
IMG_FORMAT = -DUSE_PNM

に変更してください。そして、下記のコマンドで全てのファイルをコンパイルし直します。

# make realclean
# make

目次へ戻る

b. Visual Studio .netのコマンドライン引数の変更方法

  1. メニューの「プロジェクト(P)」から「alcon2008のプロパティ(P)」を選択します。

  2. 開いたウィンドウで左側の「構成プロパティ」ツリーを展開し,「デバッグ」を選択します。

  3. 右側の一覧の「コマンドライン引数」に引数を入力します。ここでは" ../../image/LV1/1"と入力します。
  4. "../../image/LV1/1"というのは画像のあるフォルダへのパスで、この場合はLevel 1の1番目の画像を表しています。画像のあるフォルダをコマンドラインの引数で指定しない場合は、実行時に居るフォルダに画像があるとみなします。指定したフォルダに画像が無い場合は、画像ファイルが開けないというエラーが出て終了します。


  5. 「OK」で確定します。

目次へ戻る


お問い合わせ:アルコン2008 実行委員会
alcon2008(あっと)m.cs.osakafu-u.ac.jp