2008/1/9 本講義は、学部改組にともない、2019年度で開講を終了しました。
以下は、2019年度の講義資料をまとめたものです。
グループ | 回数 | 講義日 | 講義内容 |
- | - | 2019/4/12 | 全体オリエンテーション |
1 | 1 | 2019/4/19 | 画像識別(1) |
2 | 2019/4/26 | 画像識別(2) | |
3 | 2019/5/10 | 画像識別(3) | |
4 | 2019/5/17 | 識別精度 | |
5 | 2019/5/24 | 自由演習 | |
6 | 2019/5/31 | プレゼンテーション | |
2 | 1 | 2019/6/14 | 画像識別(1) |
2 | 2019/6/21 | 画像識別(2) | |
3 | 2019/6/28 | 画像識別(3) | |
4 | 2019/7/5 | 識別精度 | |
5 | 2019/7/12 | 自由演習 | |
6 | 2019/7/19 | プレゼンテーション |
プロジェクトIでは、画像識別をテーマとして取り組む。
手書き文字認識を題材に、特徴量を使ってデータを分類する手法について学習する。
手書き文字の画像をファイルから読み込んで文字認識を行う Java プログラムを作成する。
成績はプレゼンテーションにより評価される。
演習は、2人1組のグループで行う。
演習のプログラムは共同で作成し、途中のプログラム提出や、最後のプレゼンテーションも、グループごとに行う。
グループ分けは、あらかじめ決めたものを Moodle のシステム創成プロジェクトのコースに掲示するので、これに従うこと。
講義・演習資料:画像識別(第1週〜第3週)
講義・演習資料:識別精度(第4週)
- 講義スライド 第1週 [PDF(印刷用)]
- 演習資料 [PDF]
- 演習説明スライド 第1週 [PDF(閲覧用)] [PDF(印刷用)]
- 演習説明スライド 第2週 [PDF(閲覧用)] [PDF(印刷用)]
- 演習説明スライド 第3週 [PDF(閲覧用)] [PDF(印刷用)]
- CharacterRecognizer_Step1.zip (基本的なクラス定義のみを記述したスケルトン)
- list1.txt (サンプル画像の読み込み処理の実装、説明は演習資料を参照)
- list2.txt (文字認識のテスト処理の実装)
- list3.txt (文字画像の左側の辺を抽出する)
- ThresholdByAverage.java (平均値による閾値の計算)
- CharacterRecognizer_Step2.zip (3つの閾値計算クラスのスケルトンを追加)
- list4.txt (閾値計算モジュールの追加)
- ThresholdByProbability.java (Step2 に含まれている ThresholdByProbability.java にヒントを追加したもの)
- list5.txt (FeatureWidthRatio.java、右クリックしてファイルに保存)
- CharacterRecognizer_Step3.zip (2次元の特徴量を使った認識への拡張)
- list6.txt (FeatureWidthRatio.java の実装例)
- list7.txt (Threshold2DByGaussian1.java と Threshold2DByGaussian2.java の実装例)
講義・演習資料:プレゼンテーション準備(第5週)
- 講義スライド 第4週 [PDF(閲覧用)]
- 演習説明スライド 第4週 [PDF(閲覧用)] [PDF(印刷用)]
- list8.txt (RecognitionApp.java の拡張、学習用・評価用画像の区別)
参考資料
- 講義スライド 第5週 [PDF(閲覧用)] [PDF(印刷用)]
- 「EclipseによるJavaプログラミング」 (2006年度TA 吉屋 作成、2014年度TA 飯沼 更新)
Eclipseの使い方については、講義資料には含まれていないので、こちらのページの説明を参考にすること。
- 圧縮ファイルの解凍方法
CL端末の Windows 7 では、zip形式の圧縮ファイルをダブルクリックすると、インストールされている解凍ソフトが自動的に起動して、デスクトップに解凍される。(プロジェクトを作成するときは、デスクトップから自分のホームディレクトリ(Zドライブ)の下の適当なディレクトリに移動した方が良い。)
- Java 8 SDK ドキュメント
・ java.awt.image.BufferedImage (ピクセルデータにアクセス可能な画像クラス)
・ java.lang.Math (平方根の計算などの算術演算クラス)
- Computing Laboratory 利用案内
- 講義の内容を理解する
講義では、1〜3章、及び、7章のプログラム全体の設計の考え方を主に説明する。
- 1次元の特徴量を使った識別プログラムの作成
4章の説明に従ってプログラムを作成する。適宜、5〜6章の説明も参考にする。
4.2節、4.6節、4.7節、4.8節、6.9節の内容がそれぞれ完成したら、TAに報告して確認してもらうこと。
- 2次元の特徴量を使った識別プログラムに拡張
10章の説明に従って作成する。適宜、 8〜9章の説明も参考にする。
10.2節、10.3節、10.4節の内容がそれぞれ完成したら、TAに報告して確認してもらうこと。
※ 4週目の前日までに、最低でもここまでは終わらせて、プログラムを提出する。
- 各自の選んだ画像に対して識別を行うようプログラムを拡張
11章の説明に従って作成する。
※ 自分のプロジェクトで用いる画像(2種類)・特徴量(最低3種類)を決めてTAに説明する。
11.1節、11.2節、11.3節の内容がそれぞれ完成したら、TAに報告して確認してもらうこと。
11.3節については、1つ目、2つ目、3つ目の特徴量計算が完成した時点で、TAに報告して確認してもらうこと。
- 別の識別精度計算を使えるようプログラムを拡張
12章の説明に従って作成する。
12.1節の内容が完成したら、TAに報告して確認してもらうこと。
※ 4週目の演習では、上記 4 がまだ終わっていない場合も、こちらの演習を優先して行う。
- プログラムを使った実験、及び、プレゼンテーションの準備
第3週目 16:10(厳守)までに、各グループで取り組む課題(2つの文字画像)と実装予定の3つの特徴量を決めて、実験計画書に記入し、演習担当教員に提出すること。
取り組む課題は、あらかじめ指定された複数のグループで相談して決めること。
- 実験計画書 [PDF]
第4週目の前日 木曜日 19:00(厳守)までに、少なくとも演習資料の10章までの演習を終えて、作成したソースファイル一式を Moodle から提出すること。
ソースファイル一式(*.java)を zip 形式で圧縮して、提出すること。それ以外のファイル(画像データやコンパイル結果のclassファイルなど)は、提出しないこと。
提出は、Moodle の「システム創成プロジェクト」のコースの中にある提出ページから行うこと。
提出するファイルのファイル名は、「自分のグループ番号.zip」とすること。
zip形式での圧縮方法が分からない場合は、以下の手順に従ってファイルを作成・提出すること。(やり方が分かる人は、これ以外の方法を用いても構わない。)
- 演習資料の10章までの演習を終える。
- 適当な場所に、「自分のグループ番号」の名前でフォルダを作成する。
- 自分が作成しているプログラムのプロジェクトのフォルダを開く。
- 3で開いたフォルダの中にあるファイルのうち、拡張子が *.java になっているファイルを全て選択し、2のフォルダにコピーする。(注意:間違えてコピーではなく移動をしないようにすること。)
- 2のフォルダを、デスクトップに置かれている Lhaplus(圧縮・解凍用ソフト)にドラッグ&ドロップする。
- デスクトップに、圧縮ファイルが「自分のグループ番号.zip」の名前で作成されるので、これを Moodle から提出すること。
自分達が行ったプロジェクトの結果をまとめて、プレゼンテーションを行う。
下記の説明を良く読んで、自分の発表を準備すること。本番になって焦らないように、十分に準備や発表練習をした上で発表に臨むこと。
第6週目の当日 金曜日 12:20(厳守)までに、以下の2つを Moodle から提出すること。
- プレゼンテーション実施要領 [PDF]
- プレゼンテーション テンプレート [PPTX]
本テンプレートを参考にして、プレゼンテーションを準備すること。- プレゼンテーション グループ分け・発表順番
Moodle のシステム創成プロジェクトのコースの掲示に従うこと。
未提出の場合は、プレゼンテーションの発表は認められず、不合格になるので、必ず事前に提出すること。(プレゼンテーション会場に直接ファイルを持って来ても、プレゼンテーションは認められない。)
- プレゼンテーションのファイル(PowerPoint)
- 作成したプログラムのソースファイル、及び、画像データ一式(zip)
プレゼンテーションで発表した内容や、プレゼンテーション後にディスカッションした内容をもとに、下記のテンプレートに従ってレポートを作成し、提出すること。
テンプレートは、Tex と Microsoft Word の2種類を用意しているので、どちらを使用して作成しても構わない。作成したレポートは、PDF形式で提出すること。
プレゼンテーションの1週間後 12:00(厳守)までに、作成したレポート(PDF形式)を Moodle から提出すること。
実験に必要な手書き文字画像を準備するためのツールなどを置いています。 必要な人は利用してください。
ツールは、2014年度TAの飯沼さん(齊藤研)が開発してくれたものです。
- 画像スキャン用のフレーム [PDF]
- プリントアウトして利用してください。
細い文字や薄い文字はうまく読み取れない場合があるため、文字はマジックやボールペンで書くようにした方が良いでしょう。
- スキャナの使用方法
- CLの端末の1台にスキャナが設置されており、利用できます。
スキャナが接続されているCLのPCに、自分のアカウントでログインしてスキャナを利用してください。
また、スキャンした画像は自分のホームディレクトリ(Z:\)の下に保存してください。
スキャナの使用方法は、以下の通りです。
使い方が分からなければ、演習時間中にTAに尋ねてください。
- デスクトップに置かれているショートカットから「EPSON SCAN」を起動
- 下記の通りにスキャナの設定を行う
- モードの設定 ⇒「ホームモード」
- 原稿種の設定 ⇒「イラスト」
- イメージタイプの設定 ⇒「グレー」
- 出力設定の設定 ⇒「その他」
- 解像度の設定 ⇒「200dpi」
- 「プレビュー」をクリック
※「ホームモード」の場合、一度「プレビュー」をクリックしないと「スキャン」のボタンがクリックできません。- 「スキャン」をクリック
- スキャン画像から個々の文字を切り出して2値ビットマップに変換するためのツール
- Image_Clip.zip (使用方法)
- 文字画像ファイルを連番のファイル名に変更するためのソフトウェア
- 本プロジェクトでは特に専用のツールは用意していませんが、一般のフリーソフトウェアなどを利用することができます。ここでは、Nameryを使用した方法を紹介しています。
Namery のダウンロード(vector) (使用方法)
以下は、古い説明・ツールです。上記のツールが問題なければ、こちらを使う必要はありません。
ツールは、2003年度TAの松村くんが開発してくれたものです。また、使い方の説明などは、2006年度TAの吉屋くんが書いてくれたものです。
- スキャン画像から個々の文字を切り出すためのツール
- ImageClip.exe (使用方法) (設定の目安)
- 切り出した文字画像を白黒の2値ビットマップに変換するためのツール
- BlackWhiteGUI.exe (使用方法)