1. 環境設定

仮想開発環境の利用

本コンテストでは,環境設定の煩雑さやプラットフォームの違いによるプログラム挙動の違いをできるだけ少なくするために,仮想開発環境の配布を行っています. 仮想環境を利用しない場合は,サンプルソースをダウンロードし, 以下を参照した上でOSや開発環境に従った設定を行ってください(言い換えれば,仮想開発環境の利用を選択すれば以下の設定を行う必要はありません). なお,アルゴリズムの評価はLinux-32bitで行いますので,必ず32bitOSで開発を行ってください. 64bitOSで開発されたアルゴリズムの動作保障は致しかねます.

MicrosoftWindowsの場合

VisualStudioを使う

有償のMicrosoftVisualStudioの他に,無償で利用できるVisualC++ExpressEditionなどがあります. 以下の手順でプロジェクトを作成してください.

1. [ファイル]>[新規作成]>[プロジェクト]>[空のプロジェクトを作成する]により,新しいプロジェクトを作成します.

2. プロジェクトの[ソースファイル]にサンプルソース中の``alcon2011_main.c(cc)''および``user_function.c(cc)''を [ヘッダーファイル]にサンプルソース中の``alcon2011.h''を追加します.

Cygwin/MinGWを使う

CygwinおよびMinGWはWindows上にUNIXライクな環境を提供するフリーソフトウェアです. Cygwin/MinGWの導入に関してはCygwinプロジェクトMinGWプロジェクト等を参照してください. コンパイルにはgccを用いるので必ずインストールしてください.サンプルソースはgcc-4.4.5/g++-4.4.5で動作することを確認しています.

UNIX/Linux/MacOSの場合

gccコンパイラをインストールしておきます. なお,仮想開発環境はLinuxディストリビューションの1つであるeco-linux(Ubuntu)を用いています.

OpenCV,MISTの設定(インストール)

本コンテストでは画像処理ライブラリであるOpenCVおよびMISTの使用を認めます(必須ではありません). ただし,それらを利用した部分は応募アルゴリズムの新規性として評価されませんので,アルゴリズムの根幹部分での利用はご遠慮ください.

OpenCV

Willowgarageが開発している画像処理/パターン認識ライブラリです. 本コンテストではopencv-2.1.0を用います(サンプルソース内に実装されているアルゴリズムにもOpenCVのAPIが使われています). OpenCVの入手・インストール・設定に関してはOpencvプロジェクトを参照し,自身の環境に応じた手順に沿って導入してください. なお,MicrosoftWindows用にはコンパイル済みのバイナリが配布されていますが,UNIX系の環境と同様にCMakeを利用したソースコンパイルを推奨します. 仮想開発環境には既にOpeCV-2.1.0が設定されています.pkg-configコマンドによりパス指定が可能です.

MIST

名古屋大学が開発している画像処理/音声処理ライブラリです.本コンテストではMIST-1.6.0を用います. MISTの入手・インストール・設定に関してはMISTプロジェクトを参照し,自身の環境に応じた手順に沿って導入してください. 仮想開発環境には既にMIST-1.6.0が設定されています.パスは/usr/local/include/mist/です.

2. コーディング

アルゴリズムの実装はサンプルソース中の``user_function()''関数を改造することで行います. ソースの編集には各種エディタを用いてください.

//--- begin user code ---//

この間にアルゴリズムを実装する

//--- end user code ---//

サンプルソースにはLevel1を対象とした基礎的なアルゴリズムが実装されています.詳しくはソース内のコメント参照してください.

本コンテストでは処理時間も評価対象となりますが,OpenMP等を用いた単なる並列化やGPUを用いた高速化は評価の対象にはなりませんのでご遠慮ください(そもそもこれらの外部ライブラリは使用が許可されていません). アルゴリズムレベルでの工夫や並列化による高速化は問題ありません.

3. コンパイルと実行

コンパイル

VisualStudioを使う

[ビルド]を実行することでコンパイルとリンクを行います. OpenCVやMISTなどの外部ライブラリを用いている場合には,パスの指定やライブラリのリンクに関する設定を事前に行っておきます.

Makeファイルを使う(UNIX系)

サンプルソースにはコンパイル用のMakefileが同梱されています.UNIX系環境でコマンドラインからコンパイルする場合には,このMakefileを用いると便利です. コマンドラインから以下を実行することでコンパイルとリンクが行われます($はコマンドプロンプトを示す記号ですので実際には入力しません).

$ make

環境や外部ライブラリの使用によってはパス設定が一致しないことがあります.その場合はMakefile中の``CFLAGS''および``LIBS''が正しいパス記述となるように修正してください.

プログラムの実行

プログラムの実行は必ずコマンドライン(端末)から行います.サンプルソースをコンパイルして得られる実行ファイルは実行時のオプションにより挙動が変化します. そのため,ファイルマネージャ上で実行ファイルアイコンをダブルクリックする,などの方法では正しく動作しませんので注意してください. オプション指定は以下のようになっています.

-s:filename
入力画像をfilenameで指定する
-d:filename
認識結果(=出力手)をfilenameで指定したファイルに書き込む(このオプションを指定しない場合は端末に認識結果を表示する)
-i:filename
filenameで指定した画像ファイルに認識結果を描画して保存する(-gオプションが同時に設定されていた場合には正解手も描画する)
-g:filename
filenameで指定したファイルから正解データを読み込んで認識結果と比較することで得点を算出・表示する

入力画像やその正解データのサンプルはサンプルデータに含まれていますのでプログラムのテストに使用してください. オプション無しで実行した場合には,上記のオプション対応表が表示されます. -s,-iオプションで指定できる画像ファイルは「コメント行を含まないppmファイル」に限りますので注意してください.

実行ファイルがあるディレクトリに移動し,例えば,

$ ./実行ファイル -s:hoge.ppm

と実行します.この場合,hoge.ppmという名前の画像ファイルを読み込んで手の検出や勝敗判定を行い,その結果を端末に表示します.

$ ./実行ファイル -s:hoge.ppm -d:result.txt -i:result.ppm -g:seikai.txt

のように実行すると,hoge.ppmを読み込んで処理し,その結果をresult.txtおよびresult.ppmに出力し,さらにseikai.txtから読み込んだ正解データを基に得点を計算し表示します.

4. 結果の確認

認識結果

端末に表示あるいはファイルに書き込まれる認識結果は,以下のようなフォーマットになっています. 実装したアルゴリズムの認識結果を確認するために参照してください.

出力手の横位置(pixel) 出力手の縦位置(pixel) 出力手の勝敗(WIN/LOSE/EVEN)

-iオプションを追加した場合は,上記結果が入力画像に重畳された画像が作成されます. 具体的には,出力手毎に(横位置,縦位置)の場所に四角形がWIN/LOSE/EVEN=青/赤/緑の色対応で描画されます. さらに-gオプションが同時に設定されていた場合には,正解手が矩形で描画されます.勝敗と色の対応は出力手と同じです. 認識結果出力の具体例についてはこちらを参照してください.

得点

評価方法で述べた手検出得点と勝敗判定得点,およびその合計点が表示されます.

-->