ホーム > 簡易文字認識エンジン

簡易文字認識エンジン

このプログラムは、Javaプログラムから簡単に呼び出すことが できる簡易文字認識エンジンです。

手書きストローク(PointのVectorのVector) を受け取って文字列(String)を返します。

デフォルトの辞書で数字とアルファベットを 認識することができる他、辞書編集プログラムで 専用辞書を作ることでジェスチャー等の認識も行うことができます。

ただし、非常に単純なアルゴリズムを用いているので、 認識可能な文字種や認識精度は限られています。

ここではインストール方法、辞書マネージャの使い方、文字認識ライブラリの使い方、ドキュメント(javadoc)を紹介します

インストール

  1. recognizer.zipをダウンロード
  2. アーカイブを展開するとrecognizerディレクトリが現れるのでそこに移動
  3. run.batをダブルクリックするか、 コマンドラインから
    recognizer> java -classpath "recognizer.jar;." Main

    とすれば同梱されているテストコードが実行できます (解凍ソフトがrecognizer.jarを勝手に解凍して消去してしまうことがあるので注意してください)

    テストコードが必要なければ

    のみのダウンロードでも十分です。

    ちなみに辞書についてですがstandard.dicは貧弱ですので、 graffitiの二つを使う方がオススメです。

    また、辞書の改良についてですが、文字認識アルゴリズムは最もスコアの良かった1つを選んで認識しているので 認識の悪い文字についてはストロークをたくさん用意すればその文字の認識成功率は高くなります。

    最も良かったものしか見ないので、同じ文字に複数の種類のストロークを用意しても問題ありません。

StrokeDictionaryManagerの使い方

StrokeDictionaryManagerは辞書エディタです。 認識に用いる辞書を編集できます。

dictionary_manager.batをダブルクリックするか

recognizer> java -jar recognizer.jar standard.dic

或いは

recognizer> java -classpath recognizer.jar ui.recognizer.StrokeDictionaryManager standard.dic

で立ち上がります。 (standard.dicの中身はテキストです)

ボタンの上にポインタをかざせば(ALT属性のように)説明文が表示されます

文字認識ライブラリの使い方

解凍したディレクトリで作業するとします

テストコードも参照してください。

※変数strokesは[PointのVectorのVector]

import ui.recognizer.StrokeRecognizer;
import ui.recognizer.CharRecognizer;

......

Vector strokes = training.getStrokes();
StrokeRecognizer recognizer =
	new StrokeRecognizer(new CharRecognizer("standard.dic"));
//ストロークの集まりを文字列として認識
System.out.println(
	"recognized string:[" + recognizer.recognizeString(strokes) + "]");
//ストロークの集まりを1文字として認識
System.out.print(
	"recognized char:[" + recognizer.recognizeChar(strokes) + "]");
//1文字として認識した時のスコア
System.out.println("(score=" + recognizer.getScore() + ")");
		

とすれば利用できます

ドキュメント

StrokeRecognizer,CharRecognizerクラスについて見ていただければ十分だと思います


home