(57)【要約】【課題】画像内の様々な文字（手書き文字を含む。）を高精度に認識する。【解決手段】文字認識処理では、制御部１１が、認識対象画像を入力する（Ｓ１０１）。次に、制御部１１が、認識対象画像に基づいて、認識対象のグラフである認識対象グラフを作成する（Ｓ１０２）。次に、制御部１１が、認識対象グラフから、認識対象グラフと１対１に対応付けられるスカラー値である認識対象スカラー値に変換する（Ｓ１０３）。そして、制御部１１が、辞書データベース３を参照して認識対象スカラー値と一致する辞書スカラー値３４を検索することによって、認識対象画像の文字種別を判定する（Ｓ１０４、Ｓ１０５）。【選択図】図４
2012083974.tif 000002
【特許請求の範囲】
【請求項１】
文字種別ごとに、各デジタルフォント画像に対応するグラフである辞書グラフと、前記辞書グラフと１対１に対応付けられるスカラー値である辞書スカラー値と、を記憶する辞書データベースと、
認識対象画像を入力する入力手段と、
前記認識対象画像に基づいて認識対象のグラフである認識対象グラフを作成する作成手段と、
前記認識対象グラフから、前記認識対象グラフと１対１に対応付けられるスカラー値である認識対象スカラー値に変換する変換手段と、
前記辞書データベースを参照して前記認識対象スカラー値と一致する前記辞書スカラー値を検索することによって、前記認識対象画像の文字種別を判定する判定手段と、
を具備することを特徴とする文字認識装置。
【請求項２】
前記グラフの構成要素であるグラフ要素としては、文字の閉領域を示す輪郭線である孔と、文字の端部を示す点である端点と、複数の前記グラフ要素が結ばれる点である分岐点と、前記端点及び前記分岐点を結ぶ線であるエッジと、前記孔同士の隣接関係を示す線である隣接線とが定義されており、
前記作成手段は、前記認識対象画像の隙間の埋立処理を実行し、連結領域に分離し、更に、連結領域ごとに、前記孔の探索、前記隣接線の探索、複数の前記孔を包含する包含孔の探索、前記端点の探索、前記端点から伸びる前記エッジの探索、前記分岐点の探索、前記認識対象画像の文字領域としては連結しているが、前記グラフ要素としては接続されていない非接続部のエッジ化、の順に処理を実行し、前記認識対象グラフの前記グラフ要素を設定することを特徴とする請求項１に記載の文字認識装置。
【請求項３】
スカラー値表現における要素の種別としては、少なくとも、孔を含まないグラフである単独エッジ、前記分岐点及び前記孔が定義されており、
前記変換手段は、前記認識対象スカラー値に係る全体構成のスカラー値表現として、前記要素の数、種別及び順位を設定することを特徴とする請求項１または請求項２に記載の文字認識装置。
【請求項４】
前記作成手段により各デジタルフォント画像に基づいて前記辞書グラフを作成し、前記変換手段により前記辞書グラフから前記辞書スカラー値に変換し、前記辞書データベースを構築する構築手段、
を更に具備することを特徴とする請求項１乃至請求項３のいずれかに記載の文字認識装置。
【請求項５】
前記判定手段は、一致する前記辞書スカラー値が存在しない場合、前記辞書スカラー値の一部を変更することを特徴とする請求項１乃至請求項４のいずれかに記載の文字認識装置。
【請求項６】
前記判定手段における判定において、一致する前記辞書スカラー値が存在しない場合、前記変換手段は、要素順位が１位の要素である始点を変更し、前記認識対象スカラー値を再変換することを特徴とする請求項１乃至請求項５のいずれかに記載の文字認識装置。
【請求項７】
文字種別ごとに、各デジタルフォント画像に対応するグラフである辞書グラフと、前記辞書グラフと１対１に対応付けられるスカラー値である辞書スカラー値と、を記憶する辞書データベースを有するコンピュータが実行する文字認識方法であって、
認識対象画像を入力する入力ステップと、
前記認識対象画像に基づいて認識対象のグラフである認識対象グラフを作成する作成ステップと、
前記認識対象グラフから、前記認識対象グラフと１対１に対応付けられるスカラー値である認識対象スカラー値に変換する変換ステップと、
前記辞書データベースを参照して前記認識対象スカラー値と一致する前記辞書スカラー値を検索することによって、前記認識対象画像の文字種別を判定する判定ステップと、
を含むことを特徴とする文字認識方法。
【請求項８】
前記グラフの構成要素であるグラフ要素としては、文字の閉領域を示す輪郭線である孔と、文字の端部を示す点である端点と、複数の前記グラフ要素が結ばれる点である分岐点と、前記端点及び前記分岐点を結ぶ線であるエッジと、前記孔同士の隣接関係を示す線である隣接線とが定義されており、
前記作成ステップは、前記認識対象画像の隙間の埋立処理を実行し、連結領域に分離し、更に、連結領域ごとに、前記孔の探索、前記隣接線の探索、複数の前記孔を包含する包含孔の探索、前記端点の探索、前記端点から伸びる前記エッジの探索、前記分岐点の探索、前記認識対象画像の文字領域としては連結しているが、前記グラフ要素としては接続されていない非接続部のエッジ化、の順に処理を実行し、前記認識対象グラフの前記グラフ要素を設定することを特徴とする請求項７に記載の文字認識方法。
【請求項９】
コンピュータを、
文字種別ごとに、各デジタルフォント画像に対応するグラフである辞書グラフと、前記辞書グラフと１対１に対応付けられるスカラー値である辞書スカラー値と、を記憶する辞書データベースと、
認識対象画像を入力する入力手段と、
前記認識対象画像に基づいて認識対象のグラフである認識対象グラフを作成する作成手段と、
前記認識対象グラフから、前記認識対象グラフと１対１に対応付けられるスカラー値である認識対象スカラー値に変換する変換手段と、
前記辞書データベースを参照して前記認識対象スカラー値と一致する前記辞書スカラー値を検索することによって、前記認識対象画像の文字種別を判定する判定手段と、
を具備する文字認識装置として機能させるためのコンピュータ読取可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフ理論を応用し、文字を認識する文字認識装置等に関するものである。
【背景技術】
【０００２】
グラフ理論は、数学の一分野であり、様々な分野に応用されている。ここで、グラフとは、ノード（節点、頂点：ｎｏｄｅ）とエッジ（枝、辺：ｅｄｇｅ）の集合などによって構成される。グラフ理論では、分析対象の要素（ノード）の大きさや要素間（エッジ）の長さよりも、要素同士の繋がり方（ノードの接続態様）に着目する。
尚、グラフ理論における用語の定義は、文献によって様々ではあるが、本明細書では、非特許文献１における定義を参考にする。
【０００３】
現在、グラフ理論を応用し、文字を認識する手法の開発が活発になっている。
例えば、特許文献１では、オンライン手書き文字認識の技術が記載されている。オンライン手書き文字認識とは、カメラなどが内蔵されているペン（デジタルペン）を用い、デジタルペンによる紙の上の運筆を検出することによって、時間の経過による筆跡の変化データを取得し、文字を認識するものである。
グラフ理論の応用箇所について着目すると、特許文献１では、筆跡の変化データに基づいてノード間の方向を算出することにより、いわゆる「有向グラフ」を定義し、文字を認識する。
【０００４】
また、例えば、特許文献２では、申込書やアンケートの選択肢欄のように、印刷されている文字列や番号（「１．配偶者」、「２．子供」など）を直接手書きによってマークさせるような場合の文字認識の技術が記載されている。すなわち、印刷文字に手書きマークが重畳しているときに、印刷文字を高精度に認識する技術が記載されている。特許文献２では、入力画像を複数の「部分入力画像」に分割し、加重方向指数ヒストグラム法を適用し、「部分入力画像」の特徴量を算出する。そして、特徴量が定義されている「部分文字画像」を複数記憶する検索テーブルを参照し、各「部分入力画像」について特徴量が類似する「部分文字画像」を検索する。
ここで、グラフ理論の応用箇所について着目すると、「部分入力画像」のうち、同一の文字種別の「部分文字画像」に類似する「部分入力画像」をノードとし、各ノードに対応する「部分文字画像」間の相対位置関係と、各ノードに対応する「部分入力画像」間の相対位置関係とが矛盾しないノード間を接続してグラフを作成し、作成したグラフから完全部分グラフである「クリーク」を文字候補として抽出する。
尚、一般に、グラフＧの部分グラフとは、そのノードが全てＶ（Ｇ）（Ｇのノード集合）に属し、そのエッジが全てＥ（Ｇ）（Ｇのエッジ集合）に属すグラフである。また、一般に、完全グラフとは、相異なる２個のノードが全て隣接している（エッジによって結ばれている）単純グラフである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−４６８２５号公報
【特許文献２】特開２００９−４３１０２号公報
【非特許文献】
【０００６】
【非特許文献１】Ｒ．Ｊ．ウィルソン著  西関隆夫・西関裕子共訳  「グラフ理論入門（原著第４版」近代科学社  ２００１年１１月初版発行
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、手書きによって紙に記入済みの文字（特許文献１に記載するところの「オフライン文字」）をスキャナなどで読み込み、読み込んだ画像（いわゆる「ラスター画像」）内の文字を認識する場合、特許文献１及び特許文献２を含めて従来技術では、十分な認識精度が達成できていない。
特許文献１の技術では、筆跡の変化データを必要とする「有向グラフ」を利用する為、オフライン文字の認識には適用できない。
また、特許文献２の技術における「クリーク」による判定では、無数の人間の手書き文字をカバーすることは不可能であり、手書き文字の認識では十分な認識精度が達成できない。
【０００８】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、画像内の様々な文字（手書き文字を含む。）を高精度に認識することができる文字認識装置等を提供することである。
【課題を解決するための手段】
【０００９】
前述した目的を達成するために第１の発明は、文字種別ごとに、各デジタルフォント画像に対応するグラフである辞書グラフと、前記辞書グラフと１対１に対応付けられるスカラー値である辞書スカラー値と、を記憶する辞書データベースと、認識対象画像を入力する入力手段と、前記認識対象画像に基づいて認識対象のグラフである認識対象グラフを作成する作成手段と、前記認識対象グラフから、前記認識対象グラフと１対１に対応付けられるスカラー値である認識対象スカラー値に変換する変換手段と、前記辞書データベースを参照して前記認識対象スカラー値と一致する前記辞書スカラー値を検索することによって、前記認識対象画像の文字種別を判定する判定手段と、を具備することを特徴とする文字認識装置である。
第１の発明によって、文字を高精度に認識することができる。特に、スカラー値による判定処理は高速に実行できる為、辞書データベースを大規模化しても問題がない。従って、様々なデジタルフォント画像に対応する辞書スカラー値を蓄積することができ、ひいては、文字を高精度に認識することができる。
【００１０】
第１の発明における前記グラフの構成要素であるグラフ要素としては、文字の閉領域を示す輪郭線である孔と、文字の端部を示す点である端点と、複数の前記グラフ要素が結ばれる点である分岐点と、前記端点及び前記分岐点を結ぶ線であるエッジと、前記孔同士の隣接関係を示す線である隣接線とが定義されており、前記作成手段は、前記認識対象画像の隙間の埋立処理を実行し、連結領域に分離し、更に、連結領域ごとに、前記孔の探索、前記隣接線の探索、複数の前記孔を包含する包含孔の探索、前記端点の探索、前記端点から伸びる前記エッジの探索、前記分岐点の探索、前記認識対象画像の文字領域としては連結しているが、前記グラフ要素としては接続されていない非接続部のエッジ化、の順に処理を実行し、前記認識対象グラフの前記グラフ要素を設定することが望ましい。グラフ要素として孔を探索することによって、デジタルフォントが印刷された文字であっても、手書き文字であっても、文字種別を高精度に判定することができる。また、グラフ要素として包含孔を探索することによって、認識対象画像に係る文字の形状が、辞書データベースに係る文字と多少の違いがあっても、精度良く文字種別を判定することができる。そして、このように作成される認識対象グラフは、認識対象画像の特徴が良く表現されたものとなり、ひいては、精度良く文字種別を判定することができる。
【００１１】
第１の発明におけるスカラー値表現における要素の種別としては、少なくとも、孔を含まないグラフである単独エッジ、前記分岐点及び前記孔が定義されており、前記変換手段は、前記認識対象スカラー値に係る全体構成のスカラー値表現として、前記要素の数、種別及び順位を設定することが望ましい。これによって、変換される認識対象スカラー値は、認識対象グラフの特徴が良く表現されたものとなり、ひいては、精度良く文字種別を判定することができる。
【００１２】
第１の発明は、前記作成手段により各デジタルフォント画像に基づいて前記辞書グラフを作成し、前記変換手段により前記辞書グラフから前記辞書スカラー値に変換し、前記辞書データベースを構築する構築手段、を更に具備することが望ましい。これによって、辞書データベースを自動的に構築することができる。また、新しく文字種別やデジタルフォント画像が追加されても、容易に辞書データベースに追加することが可能となる。
【００１３】
第１の発明における前記判定手段は、一致する前記辞書スカラー値が存在しない場合、前記辞書スカラー値の一部を変更することが望ましい。これによって、小さな形状の違いであれば、一致する辞書スカラー値を高速に特定することができる。
【００１４】
第１の発明における前記判定手段における判定において、一致する前記辞書スカラー値が存在しない場合、前記変換手段は、要素順位が１位の要素である始点を変更し、前記認識対象スカラー値を再変換することが望ましい。これによって、認識対象画像に係る文字が、デジタルフォント画像に係る文字の位置と比較して回転している場合であっても、一致する辞書スカラー値を特定することができる。
【００１５】
第２の発明は、文字種別ごとに、各デジタルフォント画像に対応するグラフである辞書グラフと、前記辞書グラフと１対１に対応付けられるスカラー値である辞書スカラー値と、を記憶する辞書データベースを有するコンピュータが実行する文字認識方法であって、認識対象画像を入力する入力ステップと、前記認識対象画像に基づいて認識対象のグラフである認識対象グラフを作成する作成ステップと、前記認識対象グラフから、前記認識対象グラフと１対１に対応付けられるスカラー値である認識対象スカラー値に変換する変換ステップと、前記辞書データベースを参照して前記認識対象スカラー値と一致する前記辞書スカラー値を検索することによって、前記認識対象画像の文字種別を判定する判定ステップと、を含むことを特徴とする文字認識方法である。
【００１６】
第２の発明における前記グラフの構成要素であるグラフ要素としては、文字の閉領域を示す輪郭線である孔と、文字の端部を示す点である端点と、複数の前記グラフ要素が結ばれる点である分岐点と、前記端点及び前記分岐点を結ぶ線であるエッジと、前記孔同士の隣接関係を示す線である隣接線とが定義されており、前記作成ステップは、前記認識対象画像の隙間の埋立処理を実行し、連結領域に分離し、更に、連結領域ごとに、前記孔の探索、前記隣接線の探索、複数の前記孔を包含する包含孔の探索、前記端点の探索、前記端点から伸びる前記エッジの探索、前記分岐点の探索、前記認識対象画像の文字領域としては連結しているが、前記グラフ要素としては接続されていない非接続部のエッジ化、の順に処理を実行し、前記認識対象グラフの前記グラフ要素を設定することが望ましい。
【００１７】
第３の発明は、コンピュータを、文字種別ごとに、各デジタルフォント画像に対応するグラフである辞書グラフと、前記辞書グラフと１対１に対応付けられるスカラー値である辞書スカラー値と、を記憶する辞書データベースと、認識対象画像を入力する入力手段と、前記認識対象画像に基づいて認識対象のグラフである認識対象グラフを作成する作成手段と、前記認識対象グラフから、前記認識対象グラフと１対１に対応付けられるスカラー値である認識対象スカラー値に変換する変換手段と、前記辞書データベースを参照して前記認識対象スカラー値と一致する前記辞書スカラー値を検索することによって、前記認識対象画像の文字種別を判定する判定手段と、を具備する文字認識装置として機能させるためのコンピュータ読取可能なプログラムである。
【発明の効果】
【００１８】
本発明により、画像内の様々な文字（手書き文字を含む。）を高精度に認識することができる文字認識装置等を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】文字認識装置１のハードウエア構成図
【図２】グラフ表現に用いる記号を示す図
【図３】辞書データベース３の一例
【図４】文字認識処理の流れを示すフローチャート
【図５】グラフ作成処理の流れを示すフローチャート
【図６】「夏」のグラフ作成処理の一例（１）
【図７】「夏」のグラフ作成処理の一例（２）
【図８】「夏」のグラフ作成処理の一例（３）
【図９】「藍」のグラフ作成処理の第１の例（１）
【図１０】「藍」のグラフ作成処理の第１の例（２）
【図１１】「藍」のグラフ作成処理の第１の例（３）
【図１２】「藍」のグラフ作成処理の第２の例（１）
【図１３】「藍」のグラフ作成処理の第２の例（２）
【図１４】「藍」のグラフ作成処理の第２の例（３）
【図１５】スカラー値表現の定義を示す図（１）
【図１６】スカラー値表現の定義を示す図（２）
【図１７】スカラー値変換処理を説明する為のグラフの一例
【図１８】図１７のグラフに対するスカラー値変換処理の変換結果（１）
【図１９】図１７のグラフに対するスカラー値変換処理の変換結果（２）
【図２０】図１７のグラフに対するスカラー値変換処理の変換結果（３）
【図２１】文字種別判定処理におけるグラフ拡縮の一例
【図２２】辞書データベース３の構築処理の流れを示すフローチャート
【発明を実施するための形態】
【００２０】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
最初に、図１から図３を参照しながら、本発明の構成の概要と、用語の定義などについて説明する。
【００２１】
図１は、文字認識装置１のハードウエア構成図である。尚、図１のハードウエア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
文字認識装置１は、制御部１１、記憶部１２、メディア入出力部１３、通信制御部１４、入力部１５、表示部１６、周辺機器Ｉ／Ｆ部１７等が、バス１８を介して接続される。
【００２２】
制御部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。
【００２３】
ＣＰＵは、記憶部１２、ＲＯＭ、記録媒体等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、バス１８を介して接続された各装置を駆動制御し、文字認識装置１が行う後述する処理を実現する。
ＲＯＭは、不揮発性メモリであり、コンピュータのブートプログラムやＢＩＯＳ等のプログラム、データ等を恒久的に保持している。
ＲＡＭは、揮発性メモリであり、記憶部１２、ＲＯＭ、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部１１が各種処理を行う為に使用するワークエリアを備える。
【００２４】
記憶部１２は、ＨＤＤ（ハードディスクドライブ）であり、制御部１１が実行するプログラム、プログラム実行に必要なデータ、ＯＳ（オペレーティングシステム）等が格納される。プログラムに関しては、ＯＳ（オペレーティングシステム）に相当する制御プログラムや、後述する処理をコンピュータに実行させるためのアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部１１により必要に応じて読み出されてＲＡＭに移され、ＣＰＵに読み出されて各種の手段として実行される。
【００２５】
メディア入出力部１３（ドライブ装置）は、データの入出力を行い、例えば、ＣＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＤＶＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）等のメディア入出力装置を有する。
通信制御部１４は、通信制御装置、通信ポート等を有し、コンピュータとネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他のコンピュータ間との通信制御を行う。ネットワークは、有線、無線を問わない。
【００２６】
入力部１５は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部１５を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。
表示部１６は、ＣＲＴモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してコンピュータのビデオ機能を実現するための論理回路等（ビデオアダプタ等）を有する。
【００２７】
周辺機器Ｉ／Ｆ（インタフェース）部１７は、コンピュータに周辺機器を接続させるためのポートであり、周辺機器Ｉ／Ｆ部１７を介してコンピュータは周辺機器とのデータの送受信を行う。周辺機器Ｉ／Ｆ部１７は、ＵＳＢやＩＥＥＥ１３９４やＲＳ−２３２Ｃ等で構成されており、通常複数の周辺機器Ｉ／Ｆを有する。周辺機器との接続形態は有線、無線を問わない。
バス１８は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【００２８】
図２は、グラフ表現に用いる記号を示す図である。本発明の実施の形態では、認識対象画像の文字や、記憶部１２に記憶させておくデジタルフォント画像の文字に対して、独自のグラフ表現を定義することにより、文字認識処理を行う。
各画像は、文字認識処理を行う前に２値画像に変換され、「文字領域」と「背景領域」に分けられているものとする。
【００２９】
図２には、グラフを構成する要素（以下、「グラフ要素」という。）として、「端点」、「エッジ」、「分岐点」、「孔」、「隣接線」を示す記号が図示されている。また、グラフ作成処理の前処理として実行される埋立処理を示す記号が図示されている。
【００３０】
「端点」は、文字の端部を示す点である。「端点」は、グラフ理論におけるノードの一態様である。
「エッジ」は、「端点」及び「分岐点」などの「ノード」同士を結ぶ線であり、グラフ理論における定義と同様である。
「分岐点」は、複数のグラフ要素が結ばれる点である。「分岐点」は、グラフ理論におけるノードの一態様である。「端点」と「分岐点」との違いとしては、「端点」が１個のグラフ要素（通常は「エッジ」）のみ接続されているのに対し、「分岐点」は複数のグラフ要素（「エッジ」とは限らない。）が接続されることである。
【００３１】
図２に示す使用例２１には、端点２１１、エッジ２１２、分岐点２１３、エッジ２１４、端点２１５が含まれている。エッジ２１２は、端点２１１と分岐点２１３を結んでいる。エッジ２１４は、分岐点２１３と端点２１５を結んでいる。
端点２１１、分岐点２１３及び端点２１５を「ノード」とみなすことにより、使用例２１は、「グラフ」となっている。
【００３２】
「孔」は、文字の閉領域を示す輪郭線である。「孔」は、グラフ理論における「ノード」の一態様である。「孔」は、記号の形状としては、グラフ理論における「ループ」（ｌｏｏｐ）に似ているが、定義は異なる。グラフ理論における「ループ」は、同じ「ノード」を結ぶ「エッジ」のことを意味するが、「孔」は、あくまでも「ノード」の一態様である。このように、本発明の実施の形態では、混乱を避けるために、「ループ」ではなく、「孔」と呼ぶことにしている。
「隣接線」は、「孔」同士の隣接関係を示し、「孔」同士を結ぶ線である。「隣接線」は、グラフ理論における「エッジ」の一態様である。
【００３３】
図２に示す使用例２２には、孔２２１、孔２２２、孔２２３、孔２２４、隣接線２２５、隣接線２２６が含まれている。隣接線２２５は、孔２２２と孔２２３が隣接関係にあることを示している。隣接線２２６は、孔２２３と孔２２４が隣接関係にあることを示している。孔２２１は、複数の「孔」、すなわち孔２２２、孔２２３及び孔２２４を包含している。以下では、このように、複数の「孔」を包含する「孔」を「包含孔」と呼ぶことにする。
【００３４】
「埋立」は、グラフ要素ではなく、後述する埋立処理を説明する為に便宜上定義する記号である。
文字のフォントには、様々な形状が存在する。つまり、同じ文字種別であっても、「明朝体」では連結している箇所が、「行書体」では連結していない。例えば、「口」という文字は、「明朝体」であれば全ての箇所が連結しているが、「行書体」（図３の文字２３１を参照）では２箇所が連結していない。これと同様に、手書きの文字には、無数の形状が存在する。
そこで、本発明の実施の形態では、グラフ作成処理の前に、非連結部分を積極的に連結させる「埋立処理」を実行する。これによって、ひいては、高精度に文字種別を判定することができる。
【００３５】
図２に示す使用例２３には、デジタルフォント画像２３１と、埋立処理後画像２３２が示されている。埋立処理後画像２３２では、デジタルフォント画像２３１の２箇所の隙間に相当する位置に、埋立２３３及び埋立２３４が配置され、全ての箇所が連結している。
【００３６】
図３は、辞書データベース３の一例である。辞書データベース３は、文字認識装置１の記憶部１２などに記憶され、後述する文字種別の判定処理において参照される。辞書データベース３には、文字種別３１ごとに、１または複数のデジタルフォント画像３２が対応付けられている。また、辞書データベース３には、デジタルフォント画像３２ごとに、１または複数の辞書グラフ３３が対応付けられている。また、辞書データベース３には、辞書グラフ３３と辞書スカラー値３４が１対１に対応付けられている。
【００３７】
文字種別３１は、各文字の種別を示すデータであり、例えば、文字コードである。
デジタルフォント画像３２は、各文字のフォントの画像データである。
辞書グラフ３３は、各デジタルフォント画像３２に対応するグラフである。辞書グラフ３３は、１のデジタルフォント画像３２に基づいて、複数個記憶されていても良い。辞書グラフ３３の詳細については後述する。
辞書スカラー値３４は、辞書グラフ３３と１対１に対応付けられるスカラー値である。但し、図３の辞書スカラー値３４は、一部のみを図示している。辞書スカラー値３４の詳細については後述する。
【００３８】
文字認識装置１は、辞書データベース３を記憶部１２などに記憶し、制御部１１が、文字認識処理を実行する。文字認識処理では、制御部１１が、認識対象画像を入力する。次に、制御部１１が、認識対象画像に基づいて、認識対象のグラフである認識対象グラフを作成する。次に、制御部１１が、認識対象グラフから、認識対象グラフと１対１に対応付けられるスカラー値である認識対象スカラー値に変換する。そして、制御部１１が、辞書データベース３を参照して認識対象スカラー値と一致する辞書スカラー値３４を検索することによって、認識対象画像の文字種別を判定する。文字認識処理の詳細は、図４を参照しながら後述する。
また、制御部１１は、辞書データベース３の構築処理を実行する。辞書データベース３の構築処理では、制御部１１が、デジタルフォント画像３２に基づいて辞書グラフ３３を作成し、辞書グラフ３３から辞書スカラー値３４に変換し、辞書データベース３を構築する。辞書データベース３の構築処理の詳細は、図２２を参照しながら後述する。
【００３９】
以下では、図４から図２２を参照しながら、文字認識装置１が行う処理の詳細について説明する。
図４は、文字認識処理の流れを示すフローチャートである。図４では、１個の文字画像を認識対象画像とする処理の流れを示している。
【００４０】
図４に示すように、文字認識装置１の制御部１１は、メディア入出力部１３、通信制御部１４、入力部１５、周辺機器Ｉ／Ｆ部などを介して、認識対象画像を入力し（Ｓ１０１）、認識対象グラフを作成する（Ｓ１０２）。
グラフ作成処理は、図５から図１４を参照しながら説明する。
【００４１】
図５は、グラフ作成処理の流れを示すフローチャートである。以下、理解を容易にするために、図６から図８を合わせて参照しながら、具体的な例とともに説明する。図６から図８は、「夏」のグラフ作成処理の一例である。
【００４２】
図５に示すように、文字認識装置１の制御部１１は、認識対象画像に存在する閾値以下の距離を有する隙間の埋立処理を実行する（Ｓ２０１）。図６の（１）に示す認識対象文字は、全ての箇所において連結している。従って、この例では、隙間が存在せず、埋立が行われる箇所はない。
ここで、「連結」しているとは、認識対象画像における「文字領域」の画素同士がつながっていることを意味する。例えば、「４連結」の場合、注目画素の上下左右の位置のいずれかにおいて、「文字領域」の画素が存在する場合、注目画素において「連結」している。また、例えば、「８連結」の場合、注目画素の上下左右に斜め方向の４個を加えた位置のいずれかにおいて、「文字領域」の画素が存在する場合、注目画素において「連結」している。
以下では、「連結」している「文字領域」の集合を「連結領域」と呼ぶことにする。
【００４３】
次に、制御部１１は、連結領域ごとにラベリングし、認識対象画像を分離する（Ｓ２０２）。前述の通り、図６の（１）に示す認識対象文字は、全ての箇所において連結しているから、連結領域は１個となる。図６の（２）では、１個の連結領域を図示している。
制御部１１は、以降の処理（Ｓ２０３〜Ｓ２０９の処理）を連結領域ごとに実行する。
【００４４】
次に、制御部１１は、認識対象画像に含まれる小孔を探索する（Ｓ２０３）。ここで、「小孔」とは、「包含孔」と区別するための用語であり、閉領域の大きさには無関係である。また、「探索」とは、認識対象画像の文字領域を走査し、探索対象のグラフ要素（Ｓ２０３では、「小孔」）に相当する箇所（Ｓ２０３では、文字の閉領域）を特定することである。
【００４５】
図６の（３−１）では、グラフ要素が識別できるように、認識対象画像の文字を点線にて図示している。以降、図７及び図８においても、認識対象画像の文字を点線にて図示する。また、図６の（３−２）では、グラフ要素の位置関係が識別できるように、（３−１）からグラフ要素のみを抽出して図示している。以降、図７及び図８においても、グラフ要素のみ抽出されている図を示す。
図６の（３−１）及び（３−２）では、認識対象画像の上部に、横長の小孔が３個図示されている。また、認識対象画像の下部に、比較的円に近い小孔が１個図示されている。
【００４６】
このように、本発明の実施の形態では、グラフ要素として孔を定義しておき、グラフ作成処理において、認識対象画像に含まれる小孔から探索し、認識対象グラフのグラフ要素として設定していく。これによって、ひいては、高精度に文字種別を判定することができる。
【００４７】
次に、制御部１１は、Ｓ２０３においてグラフ要素として設定されている小孔に対して、小孔同士の隣接関係を示す隣接線を探索する（Ｓ２０４）。制御部１１は、注目している２個の小孔同士の距離が閾値以下の場合、その小孔同士が隣接しているとし、その小孔同士の隣接線を設定する。
【００４８】
図７の（１−１）及び（１−２）では、２個の隣接線が設定されている。具体的には、認識対象画像の上部に存在する横長の３個の小孔のうち、上から１番目の小孔と、上から２番目の小孔とに隣接線が設定されている。同様に、上から２番目の小孔と、上から３番目の小孔とに隣接線が設定されている。
一方、上から１番目の小孔と、上から３番目の小孔とは、距離が遠いことから隣接線が設定されていない。同様に、認識対象画像の下部に存在する比較的円に近い小孔（上から４番目の小孔）と、上から３番目の小孔とは、距離が遠いことから、隣接線が設定されていない。
尚、隣接線は以降の処理において設定されるグラフ要素と直接関係がないので、途中の図では図示を省略し、図８の（３−２）にのみ図示するものとする。
【００４９】
次に、制御部１１は、いわゆる一筆書きによって輪郭線を描くことができ、かつ可能な限り多くの小孔を包含する包含孔を探索する（Ｓ２０５）。一筆書きとは、同じ経路を１回のみ通過する筆跡である。
【００５０】
図７の（２−１）及び（２−２）では、１個の包含孔が設定されている。この包含孔は、上から１番目、２番目及び３番目の３個の小孔を包含している。この包含孔は、上から１番目と２番目の２個の小孔を包含するものや、上から２番目と３番目の２個の小孔を包含するものと比較して小孔の数が大きい。また、上から４番目の小孔を包含しようとすると、一筆書きによって輪郭線を描くことができない。従って、制御部１１は、図７の（２−１）及び（２−２）に示す包含孔をグラフ要素として設定する。
【００５１】
このように、本発明の実施の形態では、グラフ作成処理において、認識対象画像に含まれる複数の小孔を包含する包含孔を探索し、認識対象グラフのグラフ要素として設定していく。これによって、ひいては、高精度に文字種別を判定することができる。
【００５２】
次に、制御部１１は、認識対象画像に含まれる端点を探索する（Ｓ２０６）。制御部１１は、所定のアスペクト比（縦横比）の条件に基づいて、端点の探索を行う。
【００５３】
前述の通り、端点は、１個のグラフ要素のみ接続される。図７の（３−１）及び（３−２）では、５個の端部が設定されている。
ここで、アスペクト比の条件について簡単に説明しておく。制御部１１は、各運筆の「筆長」を縦の長さ、「筆幅」を横の長さとしたときに、各運筆が所定のアスペクト比の条件を満たしているかどうかを判定する。例えば、「夏」の文字に含まれる「夂」のうち、左上の「ノ」の「筆長」が短く、所定のアスペクト比の条件を満たさない場合、制御部１１は、「ノ」の終点に対して、端点を設定しない。
【００５４】
次に、制御部１１は、Ｓ２０７においてグラフ要素として設定されている端点から伸びるエッジを探索する（Ｓ２０７）。
図８の（１−１）及び（１−２）では、５個の端点のそれぞれに対して、１本ずつのエッジ（合計５本のエッジ）が設定されている。
【００５５】
次に、制御部１１は、Ｓ２０４、Ｓ２０５及びＳ２０７においてグラフ要素として設定されている小孔、包含孔及びエッジの交点である分岐点を探索する（Ｓ２０８）。
ここで、制御部１１は、エッジとエッジの交点よりも、エッジと孔（小孔又は包含孔）の交点を優先し、分岐点として設定する。
【００５６】
図８の（２−１）及び（２−２）では、４個の分岐点が設定されている。
ここで、「夏」の文字に含まれる「夂」のうち、下の２本のエッジの交点が分岐点として設定されていないのは、エッジと孔の交点が優先され、分岐点として設定されているからである。
【００５７】
次に、制御部１１は、認識対象画像の文字領域としては連結しているが、グラフ要素としては接続されていない非接続部のエッジ化を行う（Ｓ２０９）。
図８の（２−２）において、一点鎖線にて図示されているように、Ｓ２０８の処理が終了した時点では、３個に分かれている。元々これら３個は、１個の連結領域であるから接続する必要がある。
【００５８】
図９の（３−１）及び（３−２）では、新たに３個の分岐点と２個のエッジが設定されている。
隣接線を含む最終的なグラフは、図９の（３−２）に図示する通りである。
以上により、「夏」のグラフ作成処理が終了する。
【００５９】
次に、図９から図１１を参照しながら、「藍」のグラフ作成処理の第１の例について説明する。図９から図１１は、「藍」のグラフ作成処理の第１の例を示している。この例では、「夏」のグラフ作成処理において説明できていない部分に着目して説明する。
【００６０】
図９では、Ｓ２０１からＳ２０３の各処理における結果を図示している。
図９の（１−１）は、認識対象画像を示している。図９の（１−１）を見ると分かるように、「藍」の文字のうち、「臣」の部分と、その右横の「ノ」の部分が連結していない。制御部１１は、Ｓ２０１において、両者の隙間の埋立処理を行い、両者を連結する。
図９の（１−２）では、「埋立」の記号が図示されている。
【００６１】
図９の（２−１）、（２−２）及び（２−３）では、３個の連結領域Ａ、Ｂ及びＣに分離されていることを図示している。制御部１１は、Ｓ２０３以降、連結領域ごとに処理を実行する。
【００６２】
図９の（３−１）以降では、グラフ要素が識別できるように、認識対象画像の文字を点線にて図示している。
図９の（２−１）に示すように、Ｓ２０１における埋立処理によって、「くさかんむり」と「臣」と「ノ」とによって囲まれる閉領域が形成されている。従って、制御部１１は、Ｓ２０３において、この閉領域を孔に設定する。
図９の（３−１）では、４個の小孔が設定されている。具体的には、「臣」の部分における３個の小孔に加えて、「くさかんむり」と「臣」と「ノ」とによって囲まれる閉領域の位置に小孔（以下、「第４小孔」という。）が設定されている。
【００６３】
図１０では、Ｓ２０４からＳ２０６の各処理における結果を図示している。
図１０の（２−１）では、４個の小孔を包含する包含孔が設定されている。包含孔が、第４小孔も包含している理由は、「埋立処理」によって「臣」と「ノ」とが連結されており、一筆書きにより輪郭線を描くことができる為である。
図１０の（３−１）では、第４小孔の内部に、端点が設定されている。このように、孔の内部には、端点やエッジなどのグラフ要素が含まれる場合がある。
【００６４】
図１１では、Ｓ２０７からＳ２０９の各処理における結果を図示している。
図１１の（１−１）では、第４小孔の内部の端点からエッジが伸びている。
図１１の（２−１）では、第４小孔の内部の端点から伸びているエッジが、包含孔と接続されている。
尚、第４小孔の内部の端点から伸びているエッジは、包含孔ではなく、第４小孔と接続させても良い。
【００６５】
図１１の（３−１）に示すように、「藍」の連結領域Ａに対するグラフは、１個の包含孔、４個の小孔、７個の分岐点、７個の端点、７個のエッジがグラフ要素として設定されている。
また、図１１の（３−２）に示すように、「藍」の連結領域Ｂに対するグラフは、２個の端点、１個のエッジがグラフ要素として設定されている。
また、図１１の（３−３）に示すように、「藍」の連結領域Ｃに対するグラフは、１個の包含孔、３個の小孔、２個の分岐点、２個の端点、２個のエッジがグラフ要素として設定されている。
「藍」の連結領域Ｂに対するグラフは、孔を１個も含まない。以下では、このようなグラフを「単独エッジ」と呼ぶことにする。
【００６６】
次に、図１２から図１４を参照しながら、「藍」のグラフ作成処理の第２の例について説明する。図１２から図１４は、「藍」のグラフ作成処理の第２の例を示している。この例では、「藍」のグラフ作成処理の第１の例と相違する箇所に着目して説明する。
【００６７】
図１２では、Ｓ２０１からＳ２０３の各処理における結果を図示している。
第２の例では、第１の例と異なり、「臣」の部分と、その右横の「ノ」の部分との隙間の埋立処理を行わない。
図１２の（３−１）では、３個の小孔が設定されている。具体的には、「臣」の部分における３個の小孔が設定されている。第２の例では、第１の例と異なり、「くさかんむり」と「臣」と「ノ」とによって囲まれる閉領域の位置に小孔（第１の例における「第４小孔」）を設定しない。これは、臣」と「ノ」との隙間の埋立処理を行っていないからである。
【００６８】
図１３では、Ｓ２０４からＳ２０６の各処理における結果を図示している。
図１３の（２−１）では、３個の小孔を包含する包含孔が設定されている。第２の例では、第１の例と異なり、包含孔は「臣」の部分だけを包含する。
図１３の（３−１）では、小孔の内部に設定されている端点は存在しない。これは、第２の例では、第１の例と異なり、第１の例における「第４小孔」が設定されていない為である。
【００６９】
図１４では、Ｓ２０７からＳ２０９の各処理における結果を図示している。
図１４の（３−１）に示すように、「藍」の連結領域Ａに対するグラフは、１個の包含孔、３個の小孔、５個の分岐点、８個の端点、１１個のエッジがグラフ要素として設定されている。
また、図１４の（３−２）に示すように、「藍」の連結領域Ｂに対するグラフは、２個の端点、１個のエッジがグラフ要素として設定されている。
また、図１４の（３−３）に示すように、「藍」の連結領域Ｃに対するグラフは、１個の包含孔、３個の小孔、２個の分岐点、２個の端点、２個のエッジがグラフ要素として設定されている。
【００７０】
第１の例の最終結果と第２の例の最終結果とを比較すると、「藍」の連結領域Ａに対するグラフが異なる。このように、認識対象画像の文字領域を局所的に拡大または縮小する（拡縮する）ことによって、全く異なるグラフが生成される。
そして、局所的な拡縮処理によって複数のグラフを生成することは、文字種別の判定処理において大きな意味がある。後述するように、文字種別の判定処理では、スカラー値表現の完全一致を基本とする為、様々なグラフ表現、ひいては様々なスカラー値表現を生成することによって、「解なし」という結果を回避することができる。
尚、本発明の実施の形態では、局所的な拡縮処理として、隙間の埋立処理を１例として説明したが、局所的な拡縮処理は、この例に限定されるものではない。
【００７１】
図４の説明に戻る。
制御部１１は、所定のスカラー値表現の定義に基づいて、認識対象グラフから、認識対象スカラー値に変換する（Ｓ１０３）。
【００７２】
図１５、図１６は、スカラー値表現の定義を示す図である。スカラー値表現とは、スカラー値によって、グラフ表現と１対１に対応付けられる表現である。以下では、図１５、図１６を参照しながら、１例として、３２ビットのデータ列をデータ単位とするスカラー値表現の定義を説明する。
【００７３】
図１５（ａ）は、全体構成のスカラー値表現の定義を示している。全体構成のスカラー値表現では、グラフを構成し、概念的に大きな要素（例えば、連結領域である。以下、「大要素」という。）の数、種別及び要素順位を設定する。
具体的には、第１ビットから第４ビットによって、大要素数を設定する。また、第４ビットから第３２ビットによって、２ビットずつ、各大要素の種別を設定する。大要素種別は、（１）単独エッジ：０、（２）分岐点：１、（３）孔：２、（４）縮退：３、の４種類である。ここで、「単独エッジ」は、前述の通り、孔を１個も含まないグラフである。また、「縮退」とは、テンプレート化されている特別なグラフである。
ここで、要素順位について説明する。まず、最も左の大要素を第１要素（始点）とする。また、水平方向の位置が同じ場合、最も上の大要素を第１要素（始点）とする。そして、例えば、反時計回りに要素順位を設定していく。
容易に分かるように、図１５（ａ）に示す定義によって表現可能なグラフは、大要素の数が１４個までとなる。
尚、単独エッジだけは、１個であっても複数個であっても、大要素としては、１個と数える。
【００７４】
図１５（ｂ）は、単独エッジのスカラー値表現の定義を示している。単独エッジのスカラー値表現では、単独エッジの数を設定する。
具体的には、第１ビットから第４ビットによって、単独エッジの数を設定する。第５ビットから第３２ビットは未定義である。
容易に分かるように、図１５（ｂ）に示す定義によって表現可能なグラフは、単独エッジの数が１６個までとなる。
【００７５】
図１５（ｃ）は、分岐点のスカラー値表現の定義を示している。分岐点のスカラー値表現では、接続先であって、概念的に小さな要素（以下、「小要素」という。）の数、種別及び要素順位を設定する。
具体的には、第１ビットから第４ビットによって、接続先の小要素数（但し、上位要素を除いた数とする。）を設定する。また、第５ビットから第３２ビットによって、２ビットずつ、各小要素の種別を設定する。小要素種別は、（１）端点：０、（２）分岐点：１、（３）孔：２、（４）縮退：３、の４種類である。端点の場合、その下位の情報は不要となる。
【００７６】
図１６（ａ）は、孔のスカラー値表現の定義を示している。孔のスカラー値表現では、内部に存在する孔（以下、「内部孔」という。）の数、内部孔同士の隣接線の数、内部に存在する小要素の数（但し、孔を除く。）、外部に存在する小要素の数（但し、上位要素を除く。）を設定する。
具体的には、第１ビットから第８ビットによって、内部孔数を設定する。また、第９ビットから第１６ビットによって、内部孔同士の隣接線の数を設定する。また、第１７ビットから第２４ビットによって、内部要素数を設定する。また、第２５ビットから第３２ビットによって、外部要素数を設定する。
【００７７】
図１６（ｂ）は、孔の内部要素に関するスカラー値表現の定義を示している。孔の内部要素に関するスカラー値表現では、内部要素の種別を設定する。
具体的には、第１ビットから第３２ビットによって、２ビットずつ、各内部要素の種別を設定する。内部要素の種別は小要素種別と同じである。
【００７８】
図１６（ｃ）は、孔の外部要素に関するスカラー値表現の定義を示している。孔の外部要素に関するスカラー値表現では、外部要素の種別を設定する。
具体的には、第１ビットから第３２ビットによって、２ビットずつ、各外部要素の種別を設定する。外部要素の種別は小要素種別と同じである。
【００７９】
図１６（ｄ）は、縮退のスカラー値表現の定義を示している。縮退のスカラー値表現では、縮退として登録されているグラフを一意に識別するコード（以下、「縮退登録コード」という。）を設定する。
具体的には、第１ビットから第１６ビットによって、縮退登録コードを設定する。第１７ビットから第３２ビットは未定義である。
【００８０】
以下では、図１７から図２０を参照しながら、スカラー値変換処理の詳細を説明する。
図１７は、スカラー値変換処理を説明する為のグラフの一例である。図１８から図２０は、図１７のグラフに対するスカラー値変換処理の変換結果である。
【００８１】
図１７に示すグラフは、グラフ要素として、包含孔が１個（第１孔）、小孔が２個（第２孔、第３孔）、分岐点が５個（第１分岐点から第５分岐点）、単独エッジが２個（第１単独エッジ、第２単独エッジ）含まれている。認識対象画像における位置関係から、始点となる端点が決まる。
【００８２】
図１８（ａ）について説明する。
図１７に示すグラフは、連結領域が３個にわかれている。但し、２個は単独エッジである為、大要素数としては２個となる。従って、第１ビットから第４ビットが「００１０」（１０進数では「２」）と設定される。
また、始点の接続先が第１分岐点であるから、１個目の大要素種別は、「分岐点：１」となる。従って、第５ビットから第６ビットが「０１」（１０進数では「１」）と設定される。
また、２個目の大要素種別は、「単独エッジ：０」となる。従って、第７ビットから第８ビットが「００」（１０進数では「０」）と設定される。
【００８３】
図１８（ｂ）について説明する。
第１分岐点の接続先の小要素は、第１孔と１個の端点であるから、接続先の小要素数は２個となる。従って、第１ビットから第４ビットが「００１０」（１０進数では「２」）と設定される。
また、第１分岐点の接続先の第１要素は、「端点：０」である。従って、第５ビットから第６ビットが「００」（１０進数では「０」）と設定される。
また、第１分岐点の接続先の第２要素は、第１孔（「孔：２」）である。従って、第７ビットから第８ビットが「１０」（１０進数では「２」）と設定される。
【００８４】
図１８（ｃ）について説明する。
第１孔の内部孔数は、２個である。従って、第１ビットから第８ビットが「００００００１０」（１０進数では「２」）と設定される。
第１孔の内部孔同士の隣接線の数は、１個である。従って、第９ビットから第１６ビットが「０００００００１」（１０進数では「１」）と設定される。
第１孔の内部要素数（但し、孔を除く。）は、０個である。従って、第１７ビットから第２４ビットが「００００００００」（１０進数では「０」）と設定される。
第１孔の外部要素数（但し、上位要素である「第１分岐点」を除く。）は、３個である。従って、第２５ビットから第３２ビットが「００００００１１」（１０進数では「３」）と設定される。
【００８５】
図１８（ｄ）について説明する。
第１孔の外部要素の第１要素は、「端点：０」である。従って、第１ビットから第２ビットが「００」（１０進数では「０」）と設定される。
第１孔の外部要素の第２要素は、第２分岐点（「分岐点：１」）である。従って、第３ビットから第４ビットが「０１」（１０進数では「１」）と設定される。
第１孔の外部要素の第３要素は、第５分岐点（「分岐点：１」）である。従って、第５ビットから第６ビットが「０１」（１０進数では「１」）と設定される。
【００８６】
図１８（ｅ）について説明する。
第２分岐点の接続先の小要素は、第３分岐点と２個の端点であるから、接続先の小要素数は３個となる。従って、第１ビットから第４ビットが「００１１」（１０進数では「３」）と設定される。
また、第２分岐点の接続先の第１要素は、「端点：０」である。従って、第５ビットから第６ビットが「００」（１０進数では「０」）と設定される。
また、第２分岐点の接続先の第２要素は、第３分岐点（「分岐点：１」）である。従って、第７ビットから第８ビットが「０１」（１０進数では「１」）と設定される。
また、第２分岐点の接続先の第３要素は、「端点：０」である。従って、第９ビットから第１０ビットが「００」（１０進数では「０」）と設定される。
【００８７】
図１９（ａ）について説明する。
第３分岐点の接続先の小要素は、第４分岐点と第２孔と１個の端点であるから、接続先の小要素数は３個となる。従って、第１ビットから第４ビットが「００１１」（１０進数では「３」）と設定される。
また、第３分岐点の接続先の第１要素は、第４分岐点（「分岐点：１」）である。従って、第５ビットから第６ビットが「０１」（１０進数では「１」）と設定される。
また、第３分岐点の接続先の第２要素は、第２孔（「孔：２」）である。従って、第７ビットから第８ビットが「１０」（１０進数では「２」）と設定される。
また、第３分岐点の接続先の第３要素は、「端点：０」である。従って、第９ビットから第１０ビットが「００」（１０進数では「０」）と設定される。
【００８８】
図１９（ｂ）について説明する。
第４分岐点の接続先の小要素は、２個の端点であるから、接続先の小要素数は２個となる。従って、第１ビットから第４ビットが「００１０」（１０進数では「２」）と設定される。
また、第２分岐点の接続先の第１要素は、「端点：０」である。従って、第５ビットから第６ビットが「００」（１０進数では「０」）と設定される。
また、第２分岐点の接続先の第２要素は、「端点：０」である。従って、第７ビットから第８ビットが「００」（１０進数では「０」）と設定される。
【００８９】
図１９（ｃ）について説明する。
第２孔の内部孔数は、０個である。従って、第１ビットから第８ビットが「００００００００」（１０進数では「０」）と設定される。
第２孔の内部孔同士の隣接線の数は、０個である。従って、第９ビットから第１６ビットが「００００００００」（１０進数では「０」）と設定される。
第２孔の内部要素数（但し、孔を除く。）は、１個である。従って、第１７ビットから第２４ビットが「０００００００１」（１０進数では「１」）と設定される。
第２孔の外部要素数（但し、上位要素である「第３分岐点」を除く。）は、３個である。従って、第２５ビットから第３２ビットが「００００００１１」（１０進数では「３」）と設定される。
【００９０】
図１９（ｄ）について説明する。
第２孔の内部要素の第１要素は、「端点：０」である。従って、第１ビットから第２ビットが「００」（１０進数では「０」）と設定される。
【００９１】
図１９（ｅ）について説明する。
第２孔の外部要素の第１要素は、第３孔（「孔：２」）である。従って、第１ビットから第２ビットが「１０」（１０進数では「２」）と設定される。
第２孔の外部要素の第２要素は、「端点：０」である。従って、第３ビットから第４ビットが「００」（１０進数では「０」）と設定される。
第２孔の外部要素の第３要素は、「端点：０」である。従って、第５ビットから第６ビットが「００」（１０進数では「０」）と設定される。
【００９２】
図２０（ａ）について説明する。
第３孔の内部孔数は、０個である。従って、第１ビットから第８ビットが「００００００００」（１０進数では「０」）と設定される。
第２孔の内部孔同士の隣接線の数は、０個である。従って、第９ビットから第１６ビットが「００００００００」（１０進数では「０」）と設定される。
第２孔の内部要素数（但し、孔を除く。）は、０個である。従って、第１７ビットから第２４ビットが「００００００００」（１０進数では「０」）と設定される。
第２孔の外部要素数（但し、上位要素である「第２孔」を除く。）は、０個である。従って、第２５ビットから第３２ビットが「００００００００」（１０進数では「０」）と設定される。
【００９３】
図２０（ｂ）について説明する。
第５分岐点の接続先の小要素は、２個の端点であるから、接続先の小要素数は２個となる。従って、第１ビットから第４ビットが「００１０」（１０進数では「２」）と設定される。
また、第５分岐点の接続先の第１要素は、「端点：０」である。従って、第５ビットから第６ビットが「００」（１０進数では「０」）と設定される。
また、第５分岐点の接続先の第２要素は、「端点：０」である。従って、第７ビットから第８ビットが「００」（１０進数では「０」）と設定される。
【００９４】
図２０（ｃ）について説明する。
単独エッジの個数は、第１単独エッジと第２単独エッジの２個である。従って、第１ビットから第４ビットが「００１０」（１０進数では「２」）と設定される。
【００９５】
以上の通り、制御部１１は、認識対象文字に対するスカラー値変換処理を実行する。スカラー値に変換することによって、文字種別の判定処理を高速に実行することができる。
【００９６】
図４の説明に戻る。
制御部１１は、Ｓ１０３において変換されている認識対象スカラー値を検索キーとして、辞書データベース３を検索する（Ｓ１０４）。
文字種別の判定を行い、完全に一致する辞書スカラー値３４が存在する場合（Ｓ１０５の「一致」）、制御部１１は処理を終了する。
完全に一致する辞書スカラー値３４が存在しない場合（Ｓ１０５の「不一致」）、制御部１１はＳ１０６の処理に進む。
【００９７】
制御部１１は、認識対象スカラー値の始点（要素順位が１位の要素）を変更し、変換処理を再度実行する（Ｓ１０６）。始点の変更は、図１７の例であれば、例えば、第１分岐点と接続されている２個の端点のうち、より右側の端点を始点とすることが考えられる。また、例えば、第４分岐点と接続されている２個の端点のいずれか一方を始点とすることも考えられる。
このように、始点を変更して変換処理を再度実行することによって、算出される認識対象スカラー値は異なるものとなる。従って、改めて文字種別の判定処理を実行することにより、辞書スカラー値３４と一致する可能性がある。
【００９８】
ここで、Ｓ１０６の技術的意義について説明する。認識対象スカラー値の始点を変更するということは、文字の位置を回転することを意味する。従って、認識対象画像に係る文字が、デジタルフォント画像３２に係る文字の位置と比較して回転している場合、始点を変更することにより、辞書スカラー値３４と一致することになる。
【００９９】
制御部１１は、文字種別の判定を行い、完全に一致する辞書スカラー値３４が存在する場合（Ｓ１０７の「一致」）、制御部１１は処理を終了する。
完全に一致する辞書スカラー値３４が存在しない場合（Ｓ１０７の「不一致」）、制御部１１はＳ１０８の処理に進む。
【０１００】
次に、制御部１１は、辞書スカラー値３４の一部を変更する（Ｓ１０８）。Ｓ１０８における処理の対象は、認識対象スカラー値と近い辞書スカラー値３４から選択する。
【０１０１】
図２１は、文字種別判定処理におけるグラフ拡縮の一例である。図２１（ａ）は、辞書データベース３に登録されている辞書グラフ３３である。図２１（ｂ）及び図２１（ｃ）は、辞書スカラー値３４の一部が変更され、変更結果に対応するグラフが図示されている。
図２１（ｂ）は、第１拡縮を示している。第１拡縮では、端点とエッジが２個ずつ追加され、辞書グラフ３３が拡大されている。
一方、図２１（ｃ）では、第２拡縮を示している。第２拡縮では、端点とエッジが１個ずつ削除され、辞書グラフ３３が縮小されている。
追加または削除する端点やエッジの個数は、１個や２個に限られず、必要に応じて適宜選択すれば良い。
【０１０２】
Ｓ１０８における拡縮処理では、前述した「藍」のグラフ作成処理の第１の例及び第２の例との相違のように、孔の数が変更になるような大きい拡縮ではなく、端点やエッジの個数の変更など、比較的小さい拡縮を実現する。Ｓ１０８における拡縮処理では、スカラー値表現を直接変更するので、高速な処理を実現することができる。
【０１０３】
図４の説明に戻る。
制御部１１は、文字種別の判定を行い、完全に一致する辞書スカラー値３４が存在する場合（Ｓ１０９の「一致」）、制御部１１は処理を終了する。
完全に一致する辞書スカラー値３４が存在しない場合（Ｓ１０９の「不一致」）、制御部１１は、認識対象グラフの拡縮処理を実行し（Ｓ１１０）、Ｓ１０３から処理を繰り返す。
Ｓ１１０における認識対象グラフの拡縮処理は、前述した埋立処理に限るものではなく、例えば、アスペクト比の条件に用いる閾値などの変更も考えられる。
以上の通り、文字認識装置１は、文字認識処理を実行する。
【０１０４】
次に、図２２を参照しながら、辞書データベース３の構築処理について説明する。辞書データベース３の構築処理は、図４を参照して説明した文字認識処理と同様の処理が多いことから、図４のステップを引用することによって重複する説明を省略する。
【０１０５】
文字認識装置１の制御部１１は、文字種別３１を１つ選択する（Ｓ３０１）。
次に、制御部１１は、Ｓ３０１にて選択される文字種別３１と対応するデジタルフォント画像３２を１つ選択する（Ｓ３０２）。
【０１０６】
次に、制御部１１は、Ｓ３０２にて選択されるデジタルフォント画像３２に基づいて、辞書グラフ３３を作成する（Ｓ３０３）。Ｓ３０３における辞書グラフ３３の作成処理は、Ｓ１０２における認識対象グラフの作成処理と同様である。
【０１０７】
次に、制御部１１は、Ｓ３０３にて作成される辞書グラフ３３から、辞書スカラー値３４に変換する（Ｓ３０４）。Ｓ３０４における辞書スカラー値３４への変換処理は、Ｓ１０３における認識対象スカラー値への変換処理と同様である。
【０１０８】
次に、制御部１１は、Ｓ３０３にて作成される辞書グラフ３３、及び、Ｓ３０４にて変換される辞書スカラー値３４を辞書データベース３に登録する（Ｓ３０５）。
【０１０９】
次に、制御部１１は、全ての拡縮パターンの処理が終了したかどうか確認する（Ｓ３０６）。拡縮パターンとは、例えば、埋立処理や閾値変更など、様々な拡縮処理のパターンを意味する。
全ての拡縮パターンの処理が終了していない場合（Ｓ３０６のＮｏ）、制御部１１は、Ｓ３０３から処理を繰り返す。
全ての拡縮パターンの処理が終了している場合（Ｓ３０６のＹｅｓ）、制御部１１は、Ｓ３０７に進む。
【０１１０】
次に、制御部１１は、全てのデジタルフォント画像３２の処理が終了したかどうか確認する（Ｓ３０７）。
全てのデジタルフォント画像３２の処理が終了していない場合（Ｓ３０７のＮｏ）、制御部１１は、Ｓ３０２から処理を繰り返す。
全てのデジタルフォント画像３２の処理が終了している場合（Ｓ３０７のＹｅｓ）、制御部１１は、Ｓ３０８に進む。
【０１１１】
次に、制御部１１は、全ての文字種別３１の処理が終了したかどうか確認する（Ｓ３０８）。
全ての文字種別３１の処理が終了していない場合（Ｓ３０８のＮｏ）、制御部１１は、Ｓ３０１から処理を繰り返す。
全ての文字種別３１の処理が終了している場合（Ｓ３０８のＹｅｓ）、制御部１１は、処理を終了する。
以上の通り、文字認識装置１は、辞書データベース３の構築処理を実行する。
【０１１２】
本発明の実施の形態における文字認識装置１は、画像内の様々な文字（手書き文字を含む。）を高精度に認識することができる。
特に、本発明の実施の形態では、グラフ要素として、文字の閉領域を示す輪郭線である孔を定義しており、グラフの作成処理では、認識対象画像に含まれる孔から探索し、認識対象グラフのグラフ要素として設定していく。従って、文字を高精度に認識することができる。これは、一般に、印刷されたデジタルフォントの文字であれば、元々、文字の閉領域（孔）に留意してデザインされ、手書き文字であっても、文字の閉領域（孔）に留意して筆記すると考えられる為、文字種別の判定が精度良くできると考えられるからである。
【０１１３】
以上、添付図面を参照しながら、本発明に係る文字認識装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１１４】
１………文字認識装置
３………辞書データベース
３１………文字種別
３２………デジタルフォント画像
３３………辞書グラフ
３４………辞書スカラー値
【図１】
2012083974.tif 000003
【図２】
2012083974.tif 000004
【図３】
2012083974.tif 000005
【図４】
2012083974.tif 000006
【図５】
2012083974.tif 000007
【図６】
2012083974.tif 000008
【図７】
2012083974.tif 000009
【図８】
2012083974.tif 000010
【図９】
2012083974.tif 000011
【図１０】
2012083974.tif 000012
【図１１】
2012083974.tif 000013
【図１２】
2012083974.tif 000014
【図１３】
2012083974.tif 000015
【図１４】
2012083974.tif 000016
【図１５】
2012083974.tif 000017
【図１６】
2012083974.tif 000018
【図１７】
2012083974.tif 000019
【図１８】
2012083974.tif 000020
【図１９】
2012083974.tif 000021
【図２０】
2012083974.tif 000022
【図２１】
2012083974.tif 000023
【図２２】
2012083974.tif 000024