パターン認識プログラミング(調査製作WS・荒井担当分)・第2回

★パターン認識プログラム課題★

■準備

第1回のサンプルプログラムから改良(修正)を施したプログラムを元に、実際にパターン認識を行うプログラムを完成させよう。

既に20x20のモノクロ画像に対し、面積、エッジ画像、周囲長、そして{原画像、エッジ画像}×{縦方向、横方向}のヒストグラムが完成しているはずである。このプログラムmain.cを更に追加修正し、画像パターンを識別するプログラムを完成させる。

■課題

・パターン▲、パターン●、そしてパターン◆の3種類の内、テストパターンがこのどれであるかを識別するプログラムを完成させよ。

なお、3種類の内どれであるかを識別する(つまり分からないパターンはなく必ずどれに近いかを識別する)のでも、
またこの3種類のどれか、もしくはそれ以外として識別する(つまり▲か●か◆かその他として識別する)のでも、
どちらでも構わないものとする。
勿論「その他」も判断できる方が高級(難しい)であるので、こちらの方が望ましい。

それぞれのパターンは、回転を許しても、許さなくてもどちらでも構わないものとする。回転を許さないとした場合は、例えば「▼」は、パターン▲として認識されず、その他もしくは別のパターンと誤認識されても構わない。一方回転を許すとした場合は、たとえば「▲」は勿論のこと「▼」も、パターン▲として認識できなければいけない。
勿論「回転を許す」方が高級(難しい)であるので、こちらの方が望ましい。

・テストパターンとしては、既にプログラム内に記述されている二次元配列変数の、sankakuMap[][], maruMap[][], sikakuMap[][]の3つをそれぞれ識別させるものとする。

但し、テストパターンを別のものにした場合でも、十分にうまく識別できなければならない。つまり、きちんと特徴を抽出し、これら特徴によって判断して、パターン識別をするプログラムとしなければならない。

なお、識別アルゴリズムが十分によく検討されており妥当なアルゴリズムであれば、識別の正解率が必ずしも100%でなくても構わないとする。但し通常は十分に妥当なアルゴリズムであれば、サンプルプログラムの三つのパターンについては、100%の識別能力が実現できるはずである。

・識別結果は、それぞれprintfで「この画像パターンは▲です」などのように文字で表示するものとする。

■オプション(追加)課題

・別画像追加による識別テスト;
サンプルプログラム内では、3つの二次元配列変数による画像しか使われていないが、更に同様の画像用の配列を追加し、適当なパターンを追加して、これを判断させてみよう。

追加の画像パターンは、例えば「▲」と「◆」の中間のようなものや、「●」と「◆」の中間のようなものとし、つまり人間が見ても判断に困るようなものとするとよい。一方、回転を許す、許さない関わらず、▲を回転させた「▼」などのパターンも試してみるとよい。回転を許すとした場合は、正しく「▲」と識別できることが望ましく、回転を許さないとした場合は「▲」ではないと識別されることが望ましい。

・4つ目のパターン追加による識別;
今までは三つのパターン(▲●◆)であったが、新たに別のパターン、たとえば「★」などを識別したいパターンとして追加し、4つ以上のパターンを識別するプログラムを作ってみよう。

・数字や文字の認識;
今までは画像(記号模様?)の識別であったが、パターンとして、「1」「2」「3」などの数字や、「A」「B」「C」などの文字などを識別するプログラムを作ってみよう。但しこの課題にチャレンジする場合は、別のプロジェクトとして、今までのものとは別に作ること。よってこの場合提出プログラムは二つとなる。

■プログラム課題提出

○課題の提出は、プログラムとレポートの二つである。ここではプログラム課題の提出について説明する。

★提出物: プログラムソース(main.c)

作成したプログラムのmain.cという名前のプログラムソースファイルを提出する。
このファイルは、自分が作成してるプロジェクトが「PatRcg」だとすると、「PatRcg\PatRcg\」(★←授業内で指示★)の下に「main.c」というファイルが存在している。

※学籍番号の名前のフォルダを作成、このプログラムソース(main.c)と共にレポートも一緒に入れて提出。

提出方法は、授業内で指示するので、必ずそれに従うこと。

授業の教室などによって提出方法が違うことがあるので、十分に注意すること。
例えば、提出フォルダにコピーする場合もあれば、USBメモリにコピーする場合、工芸.Netを利用する場合、メールによって提出する場合などがある。

★提出期限

授業内で、プログラム、レポートの二つの課題とも、必ず提出しなければならない!

授業内で提出しない場合は、本テーマについては採点を行わないので、たとえ未完成でも必ず提出をすること!

もし再提出を望む場合は、電子メールにて提出をしてもよい。但し、本プログラム提出日の授業から1週間以内とし、授業内で提出していない場合は追加採点対象外となるので注意すること。
また、再提出の採点は、本来の採点の半分程度とする。つまり100点満点とした場合、例えば完璧な再提出物だとしても、再提出分は50点にしかならない。