以下、判定装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、入力された手書き文字(画像)から構造点を取得し、構造点を用いて、正解文字と比較し、比較結果を出力する判定装置について説明する。また、本実施の形態において、手書き文字の構造点を用いて構造比較し、次に構造点および特徴点を用いて特徴比較を行う判定装置について説明する。
図1は、本実施の形態における判定装置のブロック図である。判定装置1は、文字画像読取部10、正解文字情報格納部11、文字画像格納部12、文字分割部13、点情報取得部14、判断部15、判断結果出力部16、受付部17、判断情報更新部18を具備する。
点情報取得部14は、構造点情報取得手段141、特徴点情報取得手段142を具備する。
判断部15は、構造判断手段151、特徴判断手段152を具備する。
特徴判断手段152は、グループ分割手段1521、グループ特徴判断手段1522、特徴量取得手段1523、バランス判断手段1524を具備する。
文字画像読取部10は、手書き入力された1以上の文字を読み取る。文字画像読取部10は、紙などの媒体に記載された1以上の文字から、当該文字を含む画像を構成する。文字画像読取部10は、例えば、スキャナやデジタルカメラなどである。
正解文字情報格納部11は、1以上の正解文字情報を格納し得る。正解文字情報とは、正解の文字を示す情報である。正解文字情報とは、文字の骨格を構成する構造点を示す情報である構造点情報を含む。構造点とは、文字の骨格を構成する端点または分岐点または交点である。正解の文字とは、手書き入力された文字と比較される比較対象の文字である。
構造点情報は、通常、点の位置を示す位置情報(x、y)を有する。構造点を示すフラグが付与されていても良い。また、文字とは、漢字やひらがなやアルファベットやハングル文字など、何でも良い。ただし、本判定装置1の処理は、漢字を対象にすることは好適である。正解文字情報は、1以上の特徴点情報を含むことは好適である。特徴点情報とは、特徴点の情報である。特徴点とは、エッジ上の点であり、閾値より曲がりの程度の大きい点である。エッジとは、2つの構造点を結ぶ線である。また、正解文字情報は、文字の特徴を示す1以上の判断情報を有することは好適である。判断情報とは、特徴量または特徴量の範囲を示す情報である。特徴量とは、例えば、後述するグループの占める面積の比率、1以上のグループである文字の部分の占める面積の比率、グループ間の距離、文字のはねの長さ、特定の線(画)の長さなど、文字の特徴を示す値であれば何でも良い。グループとは、文字の骨格を構成する一の連結されている構造点または特徴点の集合である。また、グループとは、文字の骨格を構成する一の連結されている構造点または特徴点の集合から構成される線図でも良い。さらに具体的には、正解文字情報は、例えば、構造点情報または特徴点情報であるノード情報、および構造点や特徴点の接続を示す接続情報を有することは好適である。
正解文字情報格納部11は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
正解文字情報格納部11に正解文字が記憶される過程は問わない。例えば、記録媒体を介して正解文字が正解文字情報格納部11で記憶されるようになってもよく、通信回線等を介して送信された正解文字が正解文字情報格納部11で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された正解文字が正解文字情報格納部11で記憶されるようになってもよい。
文字画像格納部12は、手書き入力された1以上の文字を含む画像である文字画像(適宜、「入力文字画像」という)を格納し得る。文字画像格納部12は、通常、文字画像読取部10が取得した文字画像を格納している。文字画像格納部12は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。文字画像格納部12に文字画像が記憶される過程は問わない。例えば、記録媒体を介して文字画像が文字画像格納部12で記憶されるようになってもよく、通信回線等を介して送信された文字画像が文字画像格納部12で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された文字画像が文字画像格納部12で記憶されるようになってもよい。
文字分割部13は、文字画像格納部12に格納されている文字画像に含まれる2以上の文字から、各文字を切り出す。文字分割部13は、文字認識処理などで利用されている公知技術であるので詳細な説明を省略する。文字分割部13は、通常、MPUやメモリ等から実現され得る。文字分割部13の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
点情報取得部14は、文字画像格納部12に格納されている文字画像に含まれる各文字に対して、1以上の構造点情報、および1以上の特徴点情報を取得する。また、点情報取得部14は、文字画像格納部12に格納されている文字画像に含まれる各文字に対して、1以上の構造点情報のみを取得しても良い。なお、文字画像格納部12に格納されている文字画像に含まれる各文字とは、文字分割部13が切り出した各文字である。さらに詳細には、点情報取得部14は、文字画像に含まれる各文字をグラフ化し、ノードとエッジ(線分)を検出し、特定のノードである端点または分岐点または交点を検出する。この特定のノードは、構造点である。また、点情報取得部14は、2つの構造点を結ぶ線であるエッジ上の点であり、閾値より曲がりの程度の大きい点である特徴点を検出する。なお、点情報取得部14は、閾値を予め格納している。また、曲がりの程度とは、例えば、2つの直線により構成される角度である。また、曲がりの程度とは、エッジ上の各点の微分値(傾き)などでも良い。なお、ここで、ノードとは、構造点または特徴点である。
点情報取得部14は、通常、MPUやメモリ等から実現され得る。点情報取得部14の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
構造点情報取得手段141は、文字画像格納部12に格納されている文字画像に含まれる各文字に対して、1以上の構造点情報を取得する。さらに具体的には、構造点情報取得手段141は、例えば、図2に示すように動作する。まず、構造点情報取得手段141は、手書き文字画像に対して、細線化処理を行う。細線化処理とは、手書きの文字画像(a)から太さを除去して、線画画像に変換後、線画画像(ラスター)から線画データ(ベクター(b))に変換する。かかる変換をラスターベクター変換という。次に、構造点情報取得手段141は、グラフデータ作成処理を行う。つまり、構造点情報取得手段141は、線画データ(ベクター)から構造点を抽出する。構造点は、線画データの端点、分岐点、または交点である。
構造点情報取得手段141は、通常、MPUやメモリ等から実現され得る。構造点情報取得手段141の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
特徴点情報取得手段142は、文字画像格納部12に格納されている文字画像に含まれる各文字に対して、1以上の特徴点情報を取得する。つまり、特徴点情報取得手段142は、図2の線画データ(ベクター)より特徴点を抽出する。構造点情報取得手段141の処理と、特徴点情報取得手段142の処理により、ノード(構造点または特徴点)とエッジを有するグラフデータ(図2(c))が構成される。また、点情報取得部14は、正規化されていないグラフデータ(図2(c))を正規化し、正規化されたグラフデータ(図2(d))を得る。正規化とは、ここでは、ノードの位置情報を、XY座標系の(0,0)(0,1)(1,1)(1,0)の矩形領域に収める処理である。
特徴点情報取得手段142は、通常、MPUやメモリ等から実現され得る。特徴点情報取得手段142の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
判断部15は、文字画像に含まれる各文字に対応する正解文字情報に含まれる構造点情報と、点情報取得部14が取得した構造点情報とを比較し、文字画像に含まれる各文字が不正解か否かを判断する。判断部15は、2つの構造点情報から、2つの文字の構造が一致しないと判断した場合、2つの文字が異なる、と判断する。
判断部15は、構造点情報と特徴点情報を異なる用い方により、構造点情報取得手段141が取得した1以上の構造点情報および特徴点情報取得手段142が取得した1以上の特徴点情報と、正解文字情報に含まれる1以上の構造点情報および1以上の特徴点情報とを比較し、文字画像に含まれる文字が不正解か否かを判断する。ここで、「異なる用い方」とは、例えば、構造点情報を用いて構造の一致/不一致を判断し、構造点情報と特徴点情報を用いて形状の一致/不一致を判断することである。また、例えば、「異なる用い方」とは、構造点情報を用いて構造の一致/不一致を判断し、特徴点情報を用いて文字の曲がり度合いの一致/不一致を判断すること等である。
判断部15は、受付部17が受け付けた1以上のパラメータ(「特徴量」と同意義である。)を基準にして、文字画像に含まれる文字が不正解か否かを判断することは好適である。ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。なお、判断部15は、さらに具体的には、後述する構造判断手段151、特徴判断手段152により、文字画像に含まれる各文字が不正解か否かを判断する。
判断部15は、通常、MPUやメモリ等から実現され得る。判断部15の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
構造判断手段151は、構造点情報取得手段141が取得した1以上の構造点情報と、正解文字情報に含まれる1以上の構造点情報を比較し、文字画像に含まれる文字が不正解か否かを判断する。構造判断手段151は、2つの文字の構造を比較し、異なる文字か否かを判断する。構造判断手段151は、構造点の接続情報を用いて、2つの文字の構造を比較し、異なる文字か否かを判断することは好適である。構造判断手段151は、さらに具体的には、図3に示すような方法で、文字画像に含まれる文字が不正解か否かを判断する。つまり、構造判断手段151は、入力文字の構造点情報(ここでは、各構造点の接続情報)と、正解文字の構造点情報(ここでは、各構造点の接続情報)とを取得する。そして、構造判断手段151は、2つの構造点情報が有する接続情報(グラフ構造)がすべて一致しない場合に、2つの文字は異なる、と判断する。また、構造判断手段151は、入力文字の構造点の位置情報と、対応する正解文字の構造点の位置情報とを比較し、その差を算出しても良い。そして、その差の集合(例えば、差の絶対値をすべて加えた値)を用いて、2つの文字の形状の違いを判断しても良い。つまり、例えば、構造判断手段151は、差の絶対値をすべて加えた値が所定以上の値であれば、両文字は異なると判断しても良い。
構造判断手段151は、通常、MPUやメモリ等から実現され得る。構造判断手段151の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
特徴判断手段152は、構造判断手段151が文字画像に含まれる文字が不正解でないと判断した文字に対して、構造点情報取得手段141が取得した1以上の構造点情報および特徴点情報取得手段142が取得した1以上の特徴点情報と、正解文字情報に含まれる1以上の構造点情報および1以上の特徴点情報とを比較し、文字が不正解か否かを判断する。なお、特徴判断手段152は、主として、2つの文字の形を比較し、文字画像に含まれる文字が不正解か否かを判断する。具体的には、特徴判断手段152は、グループ分割手段1521、グループ特徴判断手段1522、特徴量取得手段1523、およびバランス判断手段1524により、文字が不正解か否かを判断することは好適である。
特徴判断手段152は、通常、MPUやメモリ等から実現され得る。特徴判断手段152の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
グループ分割手段1521は、一文字に含まれる構造点および特徴点を、連結されている構造点または特徴点を有する1以上のグループに分割する。つまり、グループ分割手段1521は、例えば、ひらがな「い」は2つのグループに分割する。また、グループ分割手段1521は、例えば、漢字「淳」を6つのグループに分割する。グループ分割手段1521は、図4に示すように、連結しているノード群を一つのグループである、と判断する。文字「ぽ」は、3つのグループに分割される。
グループ分割手段1521は、通常、MPUやメモリ等から実現され得る。グループ分割手段1521の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
グループ特徴判断手段1522は、各グループごとに、構造点情報取得手段141が取得した1以上の構造点情報および特徴点情報取得手段142が取得した1以上の特徴点情報と、正解文字情報に含まれる1以上の構造点情報および1以上の特徴点情報とを比較し、文字が不正解か否かを判断する。
グループ特徴判断手段1522は、まず、各グループごとに、構造点情報取得手段141が取得した1以上の構造点情報および特徴点情報取得手段142が取得した1以上の特徴点情報が示す各点に対応する点であり、正解文字情報に含まれる1以上の構造点情報または1以上の特徴点情報のうちのいずれかが示す点の情報である対応点情報を取得する。そして、グループ特徴判断手段1522は、構造点情報取得手段141が取得した1以上の構造点情報および特徴点情報取得手段142が取得した1以上の特徴点情報が示す各点と対応する点の位置情報を用いて、文字が不正解か否かを判断する。
グループ特徴判断手段1522は、例えば、図5に示すように、各グループごとに、対応するノードを決定し、そのノード間の距離を算出する。そして、距離の集合を用いて、2つのグループの評価値を算出する。グループ特徴判断手段1522は、その評価値が所定より大きい場合(以上も含む)、2つの文字は異なると判断する。具体的には、例えば、図5に示すように、入力文字「ぽ」の第1画のグループがP1、P2、P3、P4のノードを有する、とする。また、正解文字「ぽ」の第1画のグループがQ1、Q2、Q3、Q4、Q5のノードを有する、とする。そして、グループ特徴判断手段1522は、2つの文字のグループ間で、他方のノードであり、距離が最も近いノードを、対応するノードでると決定する。図5において、グループ特徴判断手段1522は、Q1、Q2、Q3、Q4、Q5は、それぞれ、P1、P2、P2、P3、P4に対応すると決定する。次に、グループ特徴判断手段1522は、対応する2点「(P1,Q1)(P2,Q2)(P2,Q3)(P3,Q4)(P4,Q5)」のそれぞれの距離を算出する。そして、グループ特徴判断手段1522は、その距離を、数式1に代入し、評価値を算出する。次に、グループ特徴判断手段1522は、その評価値が閾値以上であれば、入力文字が不正解であると判断する。
数式1において、点Piの位置情報が(pxi,pyi)、点Qjの位置情報が(qxj,qyj)である。
グループ特徴判断手段1522は、通常、MPUやメモリ等から実現され得る。グループ特徴判断手段1522の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
特徴量取得手段1523は、手書き入力された文字のバランスを示す1以上の特徴量を取得する。文字のバランスとは、通常、グループ間のバランスである。また、グループ間のバランスとは1以上のグループ(文字の部分)間のバランスも含む趣旨である。
特徴量取得手段1523は、例えば、各文字を構成するグループが有するノードの位置情報から、各グループが含まれる最小の矩形の面積を、グループごとに算出する。そして、特徴量取得手段1523は、文字が有するノードの位置情報から、文字が含まれる最小の矩形の面積を算出する。そして、特徴量取得手段1523は、各グループの矩形の面積、文字の矩形の面積を用いて、各グループの、文字全体に占める面積の割合を算出する。かかる場合、特徴量は、各グループの、文字全体に占める面積の割合である。
また、特徴量取得手段1523は、例えば、手書き入力された文字の1以上のグループにより構成される文字の部分が占める面積の比率を特徴量として算出する。かかる場合、特徴量は、1以上のグループにより構成される文字の部分が占める面積の比率である。
また、特徴量取得手段1523は、例えば、手書き入力された文字の各グループ間の距離を特徴量として算出する。かかる場合、特徴量は各グループ間の距離である。
特徴量取得手段1523は、例えば、入力文字の各グループに対して、他のそれぞれのグループとの最短距離を算出する。そして、特徴量取得手段1523は、例えば、得た距離の和を算出する。かかる場合、特徴量は1以上のグループ間の距離の和である。
特徴量取得手段1523は、例えば、ハネなどの特定の線分の長さを取得する。かかる場合、特徴量は特定の線分の長さである。
特徴量取得手段1523は、通常、MPUやメモリ等から実現され得る。特徴量取得手段1523の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
バランス判断手段1524は、特徴量取得手段1523が取得した1以上の特徴量を用いて、入力文字が不正解か否かを判断する。バランス判断手段1524は、特徴量取得手段1523が取得した1以上の特徴量を、判断情報に適用し、判断情報が示す条件を満たすか否かを判断する。判断情報が示す条件を満たさない場合、バランス判断手段1524は、入力文字が不正解であると判断する。なお、判断情報は、特徴量のみでも良く、特徴量を有する判断のためのルールや式などでも良い。判断情報は、通常、正解文字情報格納部11の正解文字情報が有する。
バランス判断手段1524は、通常、MPUやメモリ等から実現され得る。バランス判断手段1524の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
判断結果出力部16は、判断部15における判断結果を出力する。また、判断結果出力部16は、判断部15における判断結果、および正解の文字列、および入力文字画像を出力しても良い。なお、判断結果とは、2以上の文字を比較する場合、すべての文字が正解の場合に、正解と出力しても良い。判断結果出力部16は、2以上の文字を比較する場合、文字ごとに判断結果を出力しても良い。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
判断結果出力部16は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。判断結果出力部16は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
受付部17は、正誤情報を受け付ける。正誤情報とは、判断結果の正誤に関する情報である。正誤情報は、例えば、正解か否か、特徴量、特徴量を含む判断情報などである。
正誤情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部17は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
判断情報更新部18は、受付部17が受け付けた正誤情報を用いて、入力文字画像に含まれる文字が不正解か否かを判断する基準を変更する。判断情報更新部18は、受付部17が受け付けた正誤情報を用いて、判断情報を更新する。
判断情報更新部18は、通常、MPUやメモリ等から実現され得る。判断情報更新部18の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、判定装置1の動作について図6のフローチャートを用いて説明する。
(ステップS601)文字画像読取部10は、手書き入力された1以上の文字を読み取ったか否かを判断する。文字を読み取ればステップS602に行き、文字を読み取らなければステップS601に戻る。
(ステップS602)文字分割部13は、ステップS601で読み取られた文字から文字画像を取得する。
(ステップS603)文字分割部13は、ステップS602で取得した文字画像を、各文字の画像に分割する。
(ステップS604)点情報取得部14は、カウンタiに1を代入する。
(ステップS605)点情報取得部14は、ステップS603で分割された文字の画像の中に、i番目の文字の画像が存在するか否かを判断する。i番目の文字の画像が存在すればステップS606に行き、i番目の文字の画像が存在しなければステップS610に行く。
(ステップS606)点情報取得部14は、点情報取得処理を行う。点情報取得処理について、図7のフローチャートを用いて説明する。
(ステップS607)判断部15は、判断処理を行う。判断処理について、図8のフローチャートを用いて説明する。
(ステップS608)点情報取得部14は、ステップS607における判断処理の結果が「OK」か「NG」であるかを判断する。「OK」であればステップS609に行き、「NG」であればステップS610に行く。
(ステップS609)点情報取得部14は、カウンタiを1、インクリメントする。ステップS605に戻る。
(ステップS610)判断結果出力部16は、判断結果を出力する。
(ステップS611)判断情報更新部18は、判断部15が判断処理に用いる判断情報を更新するか否かを判断する。判断情報を更新する場合はステップS612に行き、判断情報を更新しない場合は処理を終了する。なお、判断情報を更新する場合とは、たとえば、処理結果がNGであった場合である。また、判断情報更新部18は、判断情報を更新する場合は、判断情報を更新するための画面(パネル)を出力しても良い。
(ステップS612)受付部17は、ユーザから正誤情報を受け付けたか否かを判断する。正誤情報を受け付ければステップS613に行き、正誤情報を受け付けなければステップS612に戻る。
(ステップS613)判断情報更新部18は、受付部17が受け付けた正誤情報を用いて、文字画像に含まれる文字が不正解か否かを判断する基準(ここでは、判断情報)を変更する。処理を終了する。
なお、図6のフローチャートにおいて、判断情報を更新する処理は必須ではない、ことは言うまでもない。
次に、ステップS606の点情報取得処理について、図7のフローチャートを用いて説明する。
(ステップS701)点情報取得部14は、手書きの文字画像から太さを除去して、線画画像に変換する。かかる処理は公知技術である。
(ステップS702)点情報取得部14は、ステップS701で得られた線画画像から線画データ(ベクター)に変換し、ベクターデータを得る。かかる処理は公知技術である。
(ステップS703)構造点情報取得手段141は、ステップS702で得られたベクターデータから、構造点を抽出する。また、特徴点情報取得手段142は、ステップS702で得られたベクターデータから、特徴点を抽出する。なお、構造点、特徴点の抽出方法は、上述した通りである。
(ステップS704)構造点情報取得手段141または特徴点情報取得手段142は、構造点または特徴点の位置情報(ここでは、座標情報(x,y))を取得し、記憶媒体に蓄積する。
(ステップS705)構造点情報取得手段141または特徴点情報取得手段142は、構造点および特徴点の接続情報を取得し、記憶媒体に蓄積する。上位処理にリターンする。
なお、図7のフローチャートにおいて、構造点と特徴点の抽出、位置情報の取得、および接続情報の取得をシーケンシャルに行わず、並行して行っても良い。
次に、ステップS607の判断処理について、図8のフローチャートを用いて説明する。
(ステップS801)判断部15は、判断対象の入力文字に対応する正解文字の正解文字情報を、正解文字情報格納部11から読み出す。
(ステップS802)構造判断手段151は、構造比較処理を行う。構造比較処理について、図9のフローチャートを用いて説明する。
(ステップS803)特徴判断手段152は、ステップS802における判断結果が「OK」であったか否かを判断する。「OK」であればステップS804に行き、「OK」でなければ上位処理にリターンする。
(ステップS804)特徴判断手段152は、形状比較処理を行う。形状比較処理について、図10のフローチャートを用いて説明する。
(ステップS805)特徴判断手段152は、ステップS804における判断結果が「OK」であったか否かを判断する。「OK」であればステップS806に行き、「OK」でなければ上位処理にリターンする。
(ステップS806)特徴判断手段152は、特徴量比較処理を行う。特徴量比較処理について、図11のフローチャートを用いて説明する。
なお、図8のフローチャートにおいて、構造比較処理を最初に行うことは好ましいが、構造比較処理と形状比較処理と特徴量比較処理の順序は問わない。
次に、ステップS702の構造比較処理について、図9のフローチャートを用いて説明する。
(ステップS901)構造判断手段151は、一文字に含まれる構造点および特徴点を、連結されている構造点または特徴点を有する1以上のグループに分割する。なお、かかるグループに分割する処理は、グループ分割手段1521が行っても良い。
(ステップS902)構造判断手段151は、初期化処理を行う。初期化処理とは、カウンタiに1を代入し、変数の判断結果に「OK」を代入する処理である。
(ステップS903)構造判断手段151は、i番目のグループが存在するか否かを判断する。i番目のグループが存在すればステップS903に行き、i番目のグループが存在しなければ上位処理にリターンする。
(ステップS904)構造判断手段151は、入力文字のi番目のグループの構造点情報を取得する。
(ステップS905)構造判断手段151は、正解文字のi番目のグループの構造点情報を取得する。
(ステップS906)構造判断手段151は、カウンタjに1を代入する。
(ステップS907)構造判断手段151は、入力文字のi番目のグループにj番目の構造点が存在するか否かを判断する。j番目の構造点が存在すればステップS908に行き、j番目の構造点が存在しなければステップS910に行く。
(ステップS908)構造判断手段151は、j番目の構造点に対応する構造点が、正解文字情報のi番目のグループの中に存在するか否かを判断する。存在すればステップS909に行き、存在しなければステップS911に行く。なお、「対応する」か否かは、例えば、i番目のグループの接続情報から構造点のノードのみを残し、当該残ったノードを検査することにより判断され得る。検査とは、入力文字の構造点の接続の順に、正解文字に対応する構造点が存在するか否かを判断することである。対応するか否かは、構造点の接続情報のみで判断を行うことが好適であるが、構造点の位置情報のみで判断を行っても良いし、構造点の接続情報と位置情報の両方を用いて判断を行っても良い。
(ステップS909)構造判断手段151は、カウンタjを1、インクリメントする。ステップS907に戻る。
(ステップS910)構造判断手段151は、ステップS908における対応するか否かの判断において、判断の対象にならなかった構造点(余った構造点)が存在するか否かを判断する。余った構造点が存在すればステップS911に行き、余った構造点が存在しなければステップS912に行く。
(ステップS911)構造判断手段151は、判断結果に「NG」を代入する。上位処理にリターンする。
(ステップS912)構造判断手段151は、カウンタiを1、インクリメントする。ステップS903に戻る。
次に、ステップS804の形状比較処理について、図10のフローチャートを用いて説明する。
(ステップS1001)グループ分割手段1521は、一文字に含まれる構造点および特徴点を、連結されている構造点または特徴点を有する1以上のグループに分割する。
(ステップS1002)グループ特徴判断手段1522は、初期化処理を行う。初期化処理とは、カウンタiに1を代入し、変数の判断結果に「OK」を代入する処理である。
(ステップS1003)グループ特徴判断手段1522は、i番目のグループが存在するか否かを判断する。i番目のグループが存在すればステップS1004に行き、i番目のグループが存在しなければ上位処理にリターンする。
(ステップS1004)グループ特徴判断手段1522は、入力文字のi番目のグループの構造点情報、および特徴点情報を取得する。
(ステップS1005)グループ特徴判断手段1522は、正解文字のi番目のグループの構造点情報、および特徴点情報を取得する。
(ステップS1006)グループ特徴判断手段1522は、入力文字のi番目のグループと、正解文字のi番目のグループのノード数を比較し、ノード数の多い方の文字のグループを決定する。ノード数の多い方の文字のグループを基準に、以下、チェックを行う。
(ステップS1007)グループ特徴判断手段1522は、初期化処理を行う。初期化処理とは、カウンタjに1を代入し、変数の評価値に「0」を代入する処理である。
(ステップS1008)グループ特徴判断手段1522は、基準のグループのj番目のノードが存在するか否かを判断する。ノードが存在すればステップS1009に行き、ノードが存在しなければステップS1013に行く。
(ステップS1009)グループ特徴判断手段1522は、基準とならない他方の文字のグループのノードのうち、j番目のノード(基準となる文字のノード)に対応するノードを決定し、2つのノードの組の情報を、少なくとも一時蓄積する。なお、j番目のノードに対応するノードとは、例えば、j番目のノードに最も距離が近いノードである。また、2つのノードの組とは、2つの文字の対応する2つのノードである。
(ステップS1010)グループ特徴判断手段1522は、ステップS1009で組とした2つのノード間の距離を算出する。グループ特徴判断手段1522は、2つのノードの情報が有する2つの位置情報から距離を算出する。
(ステップS1011)グループ特徴判断手段1522は、評価値に距離を加える。なお、評価値は、最終的に、2つのノード間の距離の和となる。
(ステップS1012)グループ特徴判断手段1522は、カウンタjを1、インクリメントする。ステップS1008に戻る。
(ステップS1013)グループ特徴判断手段1522は、評価値が閾値より大きいか否か(「以上であるか否か」を含む)を判断する。大きければステップS1014に行き、大きくなければステップS1015に行く。
(ステップS1014)グループ特徴判断手段1522は、判断結果に「NG」を代入する。上位処理にリターンする。
(ステップS1015)グループ特徴判断手段1522は、カウンタiを1、インクリメントする。ステップS1003に戻る。
次に、ステップS806の特徴量比較処理について、図11のフローチャートを用いて説明する。なお、特徴量比較処理は、バランス比較処理を含む。
(ステップS1101)特徴量取得手段1523は、入力文字の矩形の面積を取得する。入力文字の矩形の面積は、例えば、入力文字のノードがすべて含まれる矩形の面積である。
(ステップS1102)特徴量取得手段1523は、初期化処理を行う。初期化処理とは、カウンタiに1を代入し、判断結果に「OK」を代入する処理である。
(ステップS1103)特徴量取得手段1523は、入力文字の中に、i番目のグループが存在するか否かを判断する。i番目のグループが存在すればステップS1104に行き、i番目のグループが存在しなければステップS1111に行く。
(ステップS1104)特徴量取得手段1523は、i番目のグループの矩形の面積を算出する。
(ステップS1105)特徴量取得手段1523は、文字全体の面積に対する、i番目のグループの面積の比率を算出する。
(ステップS1106)バランス判断手段1524は、ステップS1105で取得された比率が許容範囲か否かを判断する。許容範囲は、判断情報であり、例えば、正解文字情報格納部11に格納されている。許容範囲であればステップS1107に行き、許容範囲でなければステップS1110に行く。
(ステップS1107)特徴量取得手段1523は、i番目のグループと他のグループとの距離を算出する。距離とは、i番目のグループの矩形の重心と、他のグループの矩形の重心との距離でも良いし、i番目のグループのノードと他のグループのノードとの距離のうち、最も近い2ノード間の距離でも良い。ここで、グループが3以上存在する場合、特徴量取得手段1523は、2以上の距離を算出しても良い。他のグループとは、隣接する一のグループでも良いし、隣接する1以上のグループでも良いし、他のすべてのグループでも良い。
(ステップS1108)バランス判断手段1524は、ステップS1107で取得された1以上の距離を用いて算出される値が許容範囲か否かを判断する。許容範囲であればステップS1109に行き、許容範囲でなければステップS1110に行く。1以上の距離を用いて算出される値とは、例えば、1以上の距離の和などである。
(ステップS1109)特徴量取得手段1523は、カウンタiを1、インクリメントする。ステップS1103に戻る。
(ステップS1110)バランス判断手段1524は、判断結果に「NG」を代入する。上位処理にリターンする。
(ステップS1111)特徴量取得手段1523は、他の特徴量が存在するか否かを判断する。他の特徴量が存在すればステップS1112に行き、他の特徴量が存在しなければ上位処理にリターンする。なお、他の特徴量が存在するか否かは、例えば、正文字情報の中をチェックすることにより判断され得る。なお、他の特徴量に対応する値とは、例えば、はねの長さである。はねの長さは、通常、特定の2つの構造点間の距離である。
(ステップS1112)特徴量取得手段1523は、他の特徴量に対応する値を、入力文字の構造点情報、または特徴点情報、または構造点情報と特徴点情報から取得する。
(ステップS1113)バランス判断手段1524は、ステップS1112で取得した他の特徴量に対応する値が、許容範囲であるか否かを判断する。許容範囲であればステップS1111に行き、許容範囲でなければステップS1110に行く。
以下、本実施の形態における判定装置の具体的な動作について説明する。
今、正解文字情報格納部11は、図12に示す正解文字情報管理表を保持している。正解文字情報管理表は、1以上の正解文字の正解文字情報を保持している。正解文字情報は、構造点情報と特徴点情報を有する。なお、図12において、構造点情報と特徴点情報とは、ノード位置情報および接続情報であり、区別されていない。ただし、図12において、接続情報から、端点、分岐点、交点は判断可能であるので、構造点と特徴点は区別され得る。正解文字情報は、文字コードと、ノード位置情報と接続情報を有する。図12の右側の文字と丸と丸の中の数字とにより構成される絵文字は、ノード位置情報と接続情報により構成される文字のイメージを示す絵文字である。図12の右側の文字の丸は、構造点または特徴点を示す。構造点は白抜きの丸である。特徴点は網掛けの丸である。文字「か」において、ノード位置情報のP1は、右側の絵文字の丸1の構造点を示す。文字「か」において、ノード位置情報のP3は、右側の絵文字の丸3の特徴点を示す。文字は、正規化された大きさであるので、ノード位置情報は(0,1)の範囲に収まる。なお、ノード位置情報は、ノードの位置情報である。また、接続情報は、点の接続を示す情報であり、図12のデータは一例である。また、図12において、ノード位置情報に対応して、ノードの種類(構造点または特徴点)を示すフラグを有しても良い。接続情報は、図13に示すような情報でも良い。図13において、縦軸、横軸ともにノードを示し、「*」は、対応する縦軸のノードと対応する横軸のノードが接続されていることを示す。
かかる状況において、文字画像読取部10は、ユーザが手書き入力した文字「ぽすと」を読み取った、とする。
次に、文字分割部13は、読み取られた文字「ぽすと」から文字画像を取得する。文字画像は、図2(a)に示したように、太さを有するビットマップである。
そして、文字分割部13は、取得した文字画像「ぽすと」を、「ぽ」「す」「と」の3つの文字の画像に分割する。
次に、点情報取得部14は、1番目の文字の画像「ぽ」に対して、以下のように点情報取得処理を行う。つまり、点情報取得部14は、手書きの文字画像から太さを除去して、線画画像に変換する(図2(b)参照)。そして、点情報取得部14は、線画画像から線画データ(ベクター)に変換し、ベクターデータを得る。
次に、構造点情報取得手段141は、ベクターデータの端点、分岐点、および交点を構造点と決定し、構造点の位置情報を蓄積する。
次に、特徴点情報取得手段142は、ベクターデータの特徴点情報を取得する。つまり、特徴点情報取得手段142は、ベクターデータが構成するエッジ間の角度を取得し、当該角度が示す曲がりの程度が、閾値より大きい場合、エッジの交点を特徴点として検出し、当該特徴点の位置情報を蓄積する。
次に、点情報取得部14は、構造点および特徴点の接続情報を取得し、蓄積する。以上の処理により、正規化されていないグラフデータが取得できた(図2(c)参照)。
次に、点情報取得部14は、正規化し、グラフデータが(0,0)(0,1)(1,1)(1,0)の矩形に収まるように、構造点および特徴点の位置情報を変換する。かかる正規化の処理は公知技術であるので、詳細な説明は省略する。以上の処理により、正規化されたグラフデータが取得できた(図2(d)参照)。
次に、判断部15は、以下のような判断処理を行う。つまり、判断部15は、判断対象の入力文字「ぽ」に対応する正解文字の正解文字情報(図12の「ぽ」の情報)を、正解文字情報格納部11から読み出す。
次に、構造判断手段151は、以下のように構造比較処理を行う。つまり、構造判断手段151は、文字「ぽ」に含まれる構造点および特徴点を、連結されている構造点または特徴点を有する3つのグループに分割する。そして、構造判断手段151は、図9のフローチャートにしたがって、グループごとに、入力文字の「ぽ」の各ノードに対応するノードが、正解文字の「ぽ」のノード中に存在するか否かを判断する。
そして、図9のフローチャートにしたがって、構造判断手段151は、入力文字の「ぽ」のすべてのノードについて、対応するノードが正解文字の「ぽ」のノード中に存在し、かつ、正解文字の「ぽ」のノード中に余ったノードが存在しない場合に、入力文字の「ぽ」が不正解でない、と判断する(図3参照)。なお、余ったノードとは、対応するノードが存在しないノードである。
次に、特徴判断手段152は、以下のような形状比較処理を行う(図10のフローチャートを参照のこと)。つまり、グループ分割手段1521は、文字「ぽ」のグループ毎に、入力文字の形状が正解文字と同じか否かを判断する。具体的には、図5に示したように、特徴判断手段152は、グループ毎に、入力文字を構成するノードと、正解文字を構成するノードの対応をとる。そして、特徴判断手段152は、入力文字のノードと正解文字のノード(対応がとれたノード)との距離を算出する。そして、特徴判断手段152は、1以上の距離の値を用いて、評価値を算出する。この算出式の例が上述した数式1である。
そして、特徴判断手段152は、予め格納している閾値を読み出す。そして、特徴判断手段152は、評価値と閾値を比較し、入力文字の形状が、正解文字の形状と比較して、予め決められた以上の近似度を有するか否かを判断する。予め決められた以上の近似度を有しなければ入力文字を不正解である、と判断する。
以上の処理を全グループに対して行い、一つのグループでも、予め決められた以上の近似度を有しなければ、入力文字を不正解である、と判断する。
次に、特徴量取得手段1523、およびバランス判断手段1524は、特徴量比較処理を行う。
以上の処理を2番目の文字「す」、3番目の文字「と」に対しても行い、3つの文字、すべてが不正解でない場合に、入力文字は正解である、と判断される。
そして、判断結果出力部16は、判断結果を出力する。判断結果の出力態様は問わない。
次に、特徴量比較処理の具体例について説明する。まず、正解文字情報格納部11は、図14に示す正解文字情報管理表を保持している。正解文字情報管理表は、1以上の正解文字の正解文字情報を保持している。正解文字情報は、文字コードと、ノード位置情報と接続情報と特徴量を有する。ここでは、文字は「奈」であり、正解文字情報は、2つの特徴量を有する。
図14において、特徴量(1)「5<=P15−P16」は、漢字「奈」の下側のハネが5ピクセル以上であることを示す。図14の特徴量(1)に対応するコメント「ハネが不十分」は、特徴量(1)が適用されて、文字が不正解であると判断された場合に出力されるコメントである。
図14の特徴量(2)「0.8<=A/B<=1.2」は、漢字「奈」の上部「大」と、下部「示」の比率が0.8以上、1.2以下であることを示す。なお、図14の特徴量(2)の「A(P1−P4−・・・)」は、漢字「奈」の上部「大」を示す。図14の特徴量(2)の「B(P10−P11,P12−・・・)」は、漢字「奈」の下部「示」を示す。図14の特徴量(2)に対応するコメント「バランスが悪い」は、特徴量(2)が適用されて、文字が不正解であると判断された場合に出力されるコメントである。
なお、特徴量の定義方法は、上記に限られないことは言うまでもない。
かかる状況において、多数の被験者に対して漢字テストを実施する、とする。そして、多数の受講生が漢字「奈良」を紙に記載し、文字画像読取部10は、かかる紙を読み取って、文字画像を取得した、とする。
次に、文字分割部13は、取得した文字画像を分割しようとし、漢字「奈」と「良」を取得した、とする。
次に、点情報取得部14は、1番目の文字の画像「奈」に対して、上述したような点情報取得処理を行う。次に、構造判断手段151は、1番目の文字の画像「奈」に対して、上述したような構造比較処理を行う。さらに、特徴判断手段152は、1番目の文字の画像「奈」に対して、上述したような形状比較処理を行った、とする。
そして、次に、特徴量取得手段1523およびバランス判断手段1524は、以下のように特徴量比較処理を行う。
まず、バランス判断手段1524は、正解文字情報格納部11から、漢字「奈」の特徴量(1)、および特徴量(2)を読み出す。
次に、特徴量取得手段1523は、特徴量(1)の「P15−P16」から、入力文字のハネの長さ(「P15−P16」の距離)を取得する。そして、バランス判断手段1524は、特徴量取得手段1523が取得したハネの長さが5ピクセル以上であるか否かを判断する。5ピクセル未満であれば、バランス判断手段1524は、入力文字を不正解、とする。
そして、判断結果出力部16は、図15(a)のような判断結果を出力する。図15(a)は、特徴量(1)の「5<=P15−P16」を満たさない不正解の文字を出力している。そして、図15(a)のハネの部分の丸は、判断結果出力部16が「P15−P16」から、構造点P15、P16が中に含まれる丸を描画したもの、とする。
そして、判断結果出力部16は、図15(b)のような、判断情報更新画面を出力する。判断情報更新画面は、ここでは、ハネの長さの条件(判断情報)を変更するための画面である。そして、ユーザは、図15(b)の判断情報更新画面に対して、キーボード等の入力手段を用いて、「5ピクセル以上」を「3ピクセル以上」に変更し、「更新」ボタンを押下した、とする。すると、受付部17は、正誤情報「3」を受け付ける。そして、判断情報更新部18は、受付部17が受け付けた正誤情報「3」から、判断情報「3<=P15−P16」を構成し、図14の判断情報を変更する。
次に、ユーザは、図15(b)の「シミュレーション」ボタンを押下した、とする。すると、特徴量取得手段1523、およびバランス判断手段1524は、上述したアルゴリズムにより、採点対象の各文字が、特徴量(1)の判断情報「3<=P15−P16」を満たすか否かを判断する。そして、判断結果出力部16は、図16に示すような判断結果(シミュレーション画面)を出力する。図16の判断結果において、○は、判断情報を「3<=P15−P16」に変更したことによって、正解となった文字を示す。図16の判断結果において、×は、判断情報を「3<=P15−P16」に変更した場合でも、不正解である文字を示す。図16に示すように、シミュレーションを行うことにより、ユーザは、適正な判断情報を得ることができる。
次に、特徴量取得手段1523が取得したハネの長さが3ピクセル以上である場合、特徴量取得手段1523は、特徴量(2)の「A=(P1−P4・・・)」から、「奈」の上部の「大」の矩形の面積(A)を取得する。次に、特徴量取得手段1523は、特徴量(2)の「B=(P10−P11,P12―・・・)」から、「奈」の下部の「示」の矩形の面積(B)を取得する。そして、特徴量取得手段1523は、比率(A/B)を算出する。
そして、バランス判断手段1524は、比率(A/B)が「0.8<=A/B<=1.2」を満たすか否かを判断する。満たさない場合、バランス判断手段1524は、入力文字を不正解、とする。
そして、判断結果出力部16は、図17(a)のような判断結果を出力する。図17(a)は、特徴量(2)の判断情報を満たさない不正解の文字を出力している。
そして、判断結果出力部16は、図17(b)のような、判断情報更新画面を出力する。判断情報更新画面は、ここでは、比率(A/B)に関する判断情報を変更するための画面である。そして、ユーザは、図17(b)の判断情報更新画面に対して、キーボード等の入力手段を用いて、「比率 0.8以上1.2以下」を「比率 0.7以上1.4以下」に変更し、「更新」ボタンを押下した、とする。すると、受付部17は、正誤情報「0.7以上1.4以下」を受け付ける。そして、判断情報更新部18は、受付部17が受け付けた正誤情報「0.7以上1.4以下」から、判断情報「0.7<=A/B<=1.4」を構成し、図14の判断情報を変更する。
次に、ユーザは、図17(b)の「シミュレーション」ボタンを押下した、とする。すると、特徴量取得手段1523、およびバランス判断手段1524は、上述したアルゴリズムにより、採点対象の各文字が、特徴量(2)の判断情報「0.7<=A/B<=1.4」を満たすか否かを判断する。そして、判断結果出力部16は、図18に示すような判断結果(シミュレーション画面)を出力する。図18の判断結果において、○は、判断情報を「0.7<=A/B<=1.4」に変更したことによって、正解となった文字を示す。図18の判断結果において、×は、判断情報を「0.7<=A/B<=1.4」に変更した場合でも、不正解である文字を示す。図18に示すように、シミュレーションを行うことにより、ユーザは、適正な判断情報を得ることができる。
以上、本実施の形態によれば、文字の正誤判断が適切にできる。特に、本実施の形態によれば、入力文字から構造点および特徴点を抽出し、構造点の情報と特徴点の情報とを、異なる用い方をする(異なるアルゴリズムを適用する)ことにより、文字の正誤判断が適切にできる。
また、本実施の形態によれば、まず、判定装置1は、構造点を用いて構造比較し、次に、構造点および特徴点を用いて特徴比較を行った。そのため、異なる文字の判断が高速に、かつ、精度高くできた。
また、本実施の形態によれば、判定装置1は、構造点および特徴点を用いて、各グループの形状、および特徴をチェックした。そのため、精度高く、文字の正誤判断が可能となった。
また、本実施の形態によれば、判定装置1は、さらに、特徴量をも用いて、文字の特徴的なポイント(ハネやバランスなど)をチェックした。そのため、非常に精度高く、文字の正誤判断が可能となった。
さらに、本実施の形態によれば、判定装置1は、採点された1以上の入力文字を見ながら、特徴量(または判断情報)を変更し、シミュレーションできた。そのため、ユーザは、実際に入力された文字を見ながら、適切な特徴量(または判断情報)を設定できる。
なお、本実施の形態において、判定装置1は、文字の正誤判断の際に、構造点のみを抽出して、構造点のみを用いて、正誤判断を行っても良い。かかる場合、非常に高速に正誤判断が可能である。
また、本実施の形態によれば、特徴量(または判断情報)は、主として、ハネまたは文字の部分間の比率であった。しかし、他の特徴量(または判断情報)を適用しても良いことは言うまでもない。他の特徴量(または判断情報)とは、例えば、文字の部分間の距離である。なお、文字の部分とは、1以上のグループである。また、比率は、面積の比でなくとも良い。比率は、文字の部分の矩形の対角線の長さの比でも良い。
また、本実施の形態において、文字は漢字であることが好適であるが、漢字であるとは問わない。また、本実施の形態において、文字は、一般的な文字に限らず、絵文字などでも良い。さらに、本実施の形態において、文字は、構造点または/および特徴点が取り出されることができる図形などでも良い。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、正解の文字を示す正解文字情報であり、文字の骨格を構成する端点または分岐点または交点である構造点の情報である構造点情報を含む1以上の正解文字情報と、手書き入力された1以上の文字を含む画像である文字画像とを格納しており、コンピュータを、前記記録媒体に格納されている文字画像に含まれる各文字に対して、1以上の構造点を検出し、当該構造点の情報である構造点情報を、1以上取得する点情報取得部と、前記文字画像に含まれる文字に対応する正解文字情報に含まれる構造点情報と、前記点情報取得部が取得した構造点情報とを比較し、文字画像に含まれる文字が不正解か否かを判断する判断部と、前記判断部における判断結果を出力する判断結果出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、コンピュータを、前記記録媒体に格納されている文字画像に含まれる2以上の文字から、各文字を切り出す文字分割部としてさらに機能させ、前記点情報取得部は、前記文字分割部が切り出した文字に対して、1以上の構造点を検出し、1以上の構造点情報を取得するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記正解文字情報は、文字の骨格を構成する端点または分岐点または交点である構造点の情報である構造点情報と、2つの構造点を結ぶ線であるエッジ上の点であり、閾値より曲がりの程度の大きい点である特徴点の情報である特徴点情報とを有し、前記点情報取得部は、前記文字画像格納部に格納されている文字画像に含まれる各文字に対して、1以上の構造点情報を取得する構造点情報取得手段と、前記文字画像格納部に格納されている文字画像に含まれる各文字に対して、1以上の特徴点情報を取得する特徴点情報取得手段とを具備し、前記判断部は、構造点情報と特徴点情報を異なる用い方により、前記構造点情報取得手段が取得した1以上の構造点情報および前記特徴点情報取得手段が取得した1以上の特徴点情報と、前記正解文字情報に含まれる1以上の構造点情報および1以上の特徴点情報とを比較し、文字画像に含まれる文字が不正解か否かを判断するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記判断部は、前記構造点情報取得手段が取得した1以上の構造点情報と、前記正解文字情報に含まれる1以上の構造点情報を比較し、文字画像に含まれる文字が不正解か否かを判断する構造判断手段と、前記構造判断手段が文字画像に含まれる文字が不正解でないと判断した文字に対して、前記構造点情報取得手段が取得した1以上の構造点情報および前記特徴点情報取得手段が取得した1以上の特徴点情報と、前記正解文字情報に含まれる1以上の構造点情報および1以上の特徴点情報とを比較し、前記文字が不正解か否かを判断する特徴判断手段とを具備するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記特徴判断手段は、一文字に含まれる構造点および特徴点を、連結されている構造点または特徴点を有する1以上のグループに分割するグループ分割手段と、各グループごとに、前記構造点情報取得手段が取得した1以上の構造点情報および前記特徴点情報取得手段が取得した1以上の特徴点情報と、前記正解文字情報に含まれる1以上の構造点情報および1以上の特徴点情報とを比較し、前記文字が不正解か否かを判断するグループ特徴判断手段と、手書き入力された文字の各グループ間のバランスを示す1以上の特徴量と、正解の文字の各グループの1以上の特徴量とを取得する特徴量取得手段と、前記特徴量取得手段が取得した、手書き入力された文字の各グループの1以上の特徴量と正解の文字の各グループの1以上の特徴量とを比較し、前記文字が不正解か否かを判断するバランス判断手段とを具備するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記グループ特徴判断手段は、各グループごとに、前記構造点情報取得手段が取得した1以上の構造点情報および前記特徴点情報取得手段が取得した1以上の特徴点情報が示す各点に対応する点であり、前記正解文字情報に含まれる1以上の構造点情報または1以上の特徴点情報のうちのいずれかが示す点の情報である対応点情報を取得し、前記1以上の構造点情報および前記1以上の特徴点情報の各々が示す各点と、各対応点情報が示す各点との距離を算出し、前記距離の絶対値の和を算出し、当該距離の絶対値の和が閾値以上または閾値より大きい場合に、前記文字が不正解であると判断するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記バランス判断手段は、手書き入力された文字の各グループが占める面積の比率を特徴量として算出し、かつ正解の文字の各グループが占める面積の比率を特徴量として算出し、当該特徴量とを比較し、前記文字が不正解か否かを判断するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記バランス判断手段は、手書き入力された文字の各グループ間の距離を特徴量として算出し、かつ正解の文字の各グループ間の距離を特徴量として算出し、当該特徴量とを比較し、前記文字が不正解か否かを判断するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記判断結果出力部は、前記判断部における判断結果、および正解の文字、および前記文字画像を出力し、判断結果の正誤に関する情報である正誤情報を受け付ける受付部をさらに具備し、前記判断部は、前記正誤情報を用いて、文字画像に含まれる文字が不正解か否かを判断する基準を変更するものとして、コンピュータを機能させることは好適である。
また、図19は、本明細書で述べたプログラムを実行して、上述した実施の形態の判定装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図19は、このコンピュータシステム340の概観図であり、図20は、コンピュータシステム340のブロック図である。
図19において、コンピュータシステム340は、FDドライブ、CD−ROMドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344とを含む。
図20において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の判定装置等の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の判定装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、ハードウェアによって行われる処理、例えば、モデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。