(57)【要約】【課題】  異体字などの多字種文字認識では、文字の効率的な認識や入力が困難である。【解決手段】本発明では、字形がより単純な字形の組み合わせにより構成されていることを利用し分解する方法を提供する。具体的には、文字画像を細分化し、細分化した要素が、字の中で共起する回数に基づいて、文字の部品を定め、字を分解する。文字入力の際に文字分解情報を利用した候補文字の絞り込みや、フォントの生成を行い、文字の効率的な入力を支援する。【選択図】  図３
2016110468.tif 000002
【特許請求の範囲】
【請求項１】
複数の文字画像を格納する文字画像データベースを有する文字分析システムであって、
前記文字画像を細分化した細分化画像を生成する文字画像細分化部と、
前記細分化画像の文字画素の字形を分類して、前記細分化画像からなる文字要素を生成する分類部と、
前記文字要素が前記文字画像のなかで出現する頻度である共起度に基づいて前記文字要素を合成して文字部品を生成し、前記文字画像を前記文字部品と関連づけて前記文字画像データベースに格納する文字部品生成部と、
を有することを特徴とする文字分析システム。
【請求項２】
請求項１に記載の文字分析システムであって、
前記文字画像細分化部は、前記文字画像中の黒画素が画像上連続している部分を前記細分化画像として生成することを特徴とする文字分析システム。
【請求項３】
請求項１に記載の文字分析システムであって、
前記文字画像細分化部は、前記文字画像中の黒画素と白画素の間の境界線の角度変化が閾値よりも高い箇所を切断候補箇所として、前記切断候補箇所に対する前記黒画素の角度情報と距離情報とに基づいて、前記切断候補箇所における黒画素を白画素に置換し、前記文字画像中の黒画素が画像上連続している部分を抽出し前記細分化画像として生成することを特徴とする文字分析システム。
【請求項４】
請求項１に記載の文字分析システムであって、
前記文字画像細分化部は、前記文字画像における前記細分化画像の位置情報を生成し、
前記分類部は、さらに前記位置情報を用いて前記文字要素を生成し、
前記文字部品生成部は、さらに前記位置情報を用いて前記文字部品を生成し、前記文字画像を前記位置情報と前記文字部品とに関連づけて前記文字画像データベースに格納することを特徴とする文字分析システム。
【請求項５】
請求項１に記載の文字分析システムであって、
前記文字要素と前記共起度とを出力する出力部をさらに有する事を特徴とする文字分析システム。
【請求項６】
請求項１に記載の文字分析システムであって、
文字画像の入力を受け付ける文字情報入力部と、
前記入力された文字画像と前記文字部品とに基づいて、文字部品候補を抽出する候補抽出部と、
をさらに有することを特徴とする文字分析システム。
【請求項７】
請求項4に記載の文字分析システムであって、
文字画像の一部を含む文字情報の入力を受け付ける文字情報入力部と、
前記入力された文字画像と前記文字部品とに基づいて、文字部品候補を抽出する候補抽出部と、
をさらに有し、
前記候補抽出部は、前記入力された文字画像の位置情報と、前記文字部品の前記位置情報とに基づいて、前記文字部品候補を抽出することを特徴とする文字分析システム。
【請求項８】
請求項６に記載の文字分析システムであって、
前記候補抽出部は、前記文字部品候補に基づいて文字候補を抽出することを特徴とする文字分析システム。
【請求項９】
請求項６に記載の文字分析システムであって、
前記文字部品候補を画面に出力する出力部をさらに有する事を特徴とする文字分析システム。
【請求項１０】
請求項６に記載の文字分析システムであって、
複数の前記文字部品候補の選択を受け付けて、前記複数の文字部品候補に基づいて文字候補を生成し、前記生成された文字候補と前記複数の文字部品候補とを関連づけて前記文字画像データベースに格納する文字生成部をさらに有する事を特徴とする文字分析システム。
【請求項１１】
請求項１に記載の文字分析システムであって、
前記文字画像は異体字の文字画像を含むことを特徴とする文字分析システム。
【請求項１２】
請求項１に記載の文字分析システムであって、
前記文字部品生成部は、前記文字部品と前記文字要素とが前記文字画像のなかで出現する頻度に基づいて前記文字部品と前記文字要素とを合成して新たに文字部品を生成し、前記文字画像を前記新たに生成された文字部品と関連づけて前記文字画像データベースに格納することを特徴とする文字分析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字を分析して構成要素に分解し、文字情報を生成する方法、および、生成した文字情報を用いた文字検索等に関する。
【背景技術】
【０００２】
本技術分野は、文字分析システム及び文字分析方法に関する。通常、漢字等を入力する際に、漢字の読み方を入力し、読み方から提示された変換候補をユーザが選択することで、入力対象の文字を入力する。しかし、読み方が分からない場合などには、ユーザにマウス等を使って手書き文字を描いてもらい、その文字を文字認識装置で認識することにより、文字候補を出力し、ユーザが文字候補の中から最終的な入力文字を選択することで、文字を入力する。
【０００３】
特許文献１には、漢字を部首など予め用意された要素に基づいて検索する方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２２３４３９
【発明の概要】
【発明が解決しようとする課題】
【０００５】
部首など予め用意された要素に基づいた文字の分解技術では、認識し対応できる文字種の範囲に限界がある。文字画像から文字要素などを生成し、様々な種類の文字に対して高精度に対応する必要がある。
【課題を解決するための手段】
【０００６】
本発明のある実施形態によれば、複数の文字画像を格納する文字画像データベースを有する文字分析システムであって、文字画像を細分化した細分化画像を生成する文字画像細分化部と、細分化画像の文字画素の字形を分類し、細分化画像からなる文字要素を生成する分類部と、文字要素が文字画像のなかで出現する頻度である共起度に基づいて文字要素を合成して文字部品を生成し、文字画像を文字部品と関連づけて文字画像データベースに格納する文字部品生成部と、を有することを特徴とする文字分析システムが提供される。
【発明の効果】
【０００７】
文字要素の共起度を用いて文字画像から高精度に文字部品などを生成することが出来、より多くの文字種に対応することが出来る。
【図面の簡単な説明】
【０００８】
【図１】文字分解情報を用いた文字入力装置の処理例。
【図２】本実施例の文字入力装置の一例を示す構成図。
【図３】文字分解処理の一例を示す説明図。
【図４】異体字の例を説明する図。
【図５】文字要素画像のクラスタリングの一例を説明する図。
【図６（Ａ）】文字画像ＤＢのデータ例を示す図。文字要素と文字などを格納するテーブルの例を説明する図。
【図６（Ｂ）】文字要素ＩＤと対応する文字要素画像の例を示す図。
【図６（Ｃ）】文字ＩＤと文字要素ＩＤの例を示す図。
【図６（Ｄ）】合成文字ＩＤと合成文字画像と文字要素ＩＤと共起数の例を示す図。
【図６（Ｅ）】文字ＩＤと文字要素、合成文字ＩＤの対応テーブルの例を示す図。
【図７】文字分解情報のテーブルの例を説明する図。
【図８】文字領域と位置情報の例を説明する図。
【図９】文字領域と位置情報の例を説明する図。
【図１０】強制切断の処理の例を説明する図。
【図１１】強制切断の処理の例を説明する図。
【図１２】統計的識別方法の例を説明する図。
【図１３】文字画像のベクトルによるクラスタリングの例を説明する図。
【図１４】検索時のユーザーインターフェイスの例を説明する図。
【発明を実施するための形態】
【実施例１】
【０００９】
本発明の文字入力装置の実施例について、図表を参照しながら説明する。本実施例では、異体字をその構成要素に分解し、分解した要素を用いて文字入力を効率化する。
【００１０】
図２は、本実施例の文字入力装置の一例を示す構成図である。
【００１１】
本実施例の文字分析システム２０１は、ユーザの文字入力を支援する装置であり、入力装置２０２、表示装置２０３、イメージ取得装置２０４、通信装置２０５、演算装置（ＣＰＵ）２０６、外部記憶装置２０７を備える。外部記憶装置２０７は、文字画像ＤＢ２１３、文字分解情報２１４を含む。
【００１２】
入力装置２０２は、コマンド等を入力するためのキーボードやマウス等である。入力装置２０２は、演算装置（ＣＰＵ）２０６で実行されるプログラムの制御や、その他、接続機器の制御のために実行されるコマンド等を入力するための装置である。
【００１３】
表示装置２０３は、処理内容を適宜表示するディスプレイ等の装置である。
【００１４】
イメージ取得装置２０４は、スキャナなどのイメージ取得用の装置である。取得したイメージは、外部記憶装置等に記憶してもよい。
【００１５】
通信装置２０５は、ＰＣやサーバ等の外部機器からのデータのやりとりを行うために用いる。通信装置２０５は、外部機器からのユーザによる実行コマンドの取得や、画像やテキストなどの情報の外部機器からの取得等の目的に用いられる。また、通信装置２０５は、処理内容を外部機器に送信する等の目的にも用いられる。
【００１６】
演算装置（ＣＰＵ）２０６は、文字分解などの各種処理を実行する演算装置である。
【００１７】
外部記憶装置２０７は、ＨＤＤ，メモリ等の外部記憶装置である。外部記憶装置２０７には、文字の画像や文字を構成要素に分解した情報などの各種データが保存されている。また、外部記憶装置には、演算装置（ＣＰＵ）２０６によって実行される処理の途中で生成されるデータ等を一時的に記憶しておくためにも用いられる。
【００１８】
入力装置２０２、表示装置２０３、イメージ取得装置２０４、通信装置２０５はなくてもよい。入力装置２０２が無い場合には、処理の開始は、通信装置２０５を用いて外部機器から指示するか、または、時刻指定等により自動的に行う。表示装置２０３が無い場合には、処理結果は通信装置２０５を用いて外部機器に送信するか、外部記憶装置２０７に記憶しておく。
【００１９】
次に、本実施例における文字分析システム２０１によって実施される処理の説明に移る。以下では、まず、文字分解処理について、図３を用いて説明する。文字分解処理では、文字画像ＤＢ２１３を用いて文字分解情報２１４を作成する。文字分解情報２１４は、文字入力の際に用いられるが、文字入力の処理は、文字分解処理の後に説明する。
【００２０】
まず、字の種類の一つである異体字について説明する。図４に異体字の例を画像で示した。異体字とは、同等の意味を有するが互いに異なる形の字体をいう。図４０１のように、複雑な字形で一部のみが異なるものや、図４０２のように僅かに字形が異なるものなどがある。文字画像ＤＢ２１３は、このような異体字の文字画像が文字を識別するＩＤと文字コードなどの付加情報とともに保存されたものである。なお、文字画像ＤＢ２１３には、異体字以外にも、常用漢字などどのような文字種の画像が入っていてもよい。図６（Ａ）のテーブル６０１に文字画像ＤＢのデータ例を示した。文字を識別するＩＤと文字画像情報が含まれている。さらに、文字に対応するＵＴＦ、ＥＵＣ、ＳＪＩＳなどの文字コード等、付加情報があれば、それらの情報を含んでいてもよい。
【００２１】
文字細分化３０１では、文字画像ＤＢ２１３に含まれる文字画像を細かい要素に細分化する。なお、以下の例では文字画像は予め２値化処理をしているものとする。その結果、黒画素と白画素の何れかになる。以降、細分化の例を説明する。ここで説明する例では、まず文字画像を連結成分ごとに分解し、接触部などは、さらに強制切断をすることで、文字を細かい要素に細分化する。連結成分ごとの分解のみの場合や、強制切断のみの場合もある。まず、連結成分ごとに分解する。図４０４は、図４０３の５つの文字をその連結成分（黒画素が繋がっている成分）ごとに分解した例である。連結成分でわけることにより、多くの文字要素を生成する事ができ、多くの文字種に対応できるようになる。
【００２２】
ただし、連結成分だけでは分離できない字形もあるため、強制切断などの方法を用いて、要素を細かく細分化してもよい。この処理では、細分化した文字を元の文字コードの情報とともに、出力する。なお、強制切断などによって、複数通りの細分化の仕方が生じた場合には、そのうちの一通りの細分化を選んでもよいし、それら複通りの細分化でできた文字要素を生成し、保存しておいてもよい。このとき、テーブル６０３のテーブルの文字要素ＩＤには、複数の細分化でできた文字要素もまとめて保持しておく。
【００２３】
ここで、文字の強制切断の方法例を説明する。図１０の１００１では、矢印１００７で示した箇所で、接触がある。このような場合には、連結成分ごとの分解では不十分であるため、強制切断によって、切り離す。この方法の一例について１００１の左側の文字の例を用いて説明する。テーブル１００２は、テーブル１００１の左側の文字の接触部を拡大したものである。文字線１００３と文字線１００４が接触している。このとき、１００５と１００６に示す矢印のように文字線１００５の輪郭を辿り、それを文字線１００５に沿って少し延長した場合に、１００５と１００６は交わる。このような場合に、文字線１００３と文字線１００４を切り離すことにより切断する。
【００２４】
このことを画像１１０１の模式図を用いて説明する。画像１１０１のひとつのマスはひとつの画素を表わす。画像１１０１の輪郭を辿ると、１、２、３、…のようになる。ここで、輪郭は黒画素に接触している白画素のことであり、輪郭を辿るとは、隣接する輪郭を黒画素を右方向、または左方向に見て辿ることを意味するものとする。また、白画素と黒画素の境界線を辿るとしてもよい。ここで、輪郭位置４の部分で輪郭の角度が変化する（例えば、輪郭位置３から輪郭位置４に向かう方向と、輪郭位置４から輪郭位置５へ向かう方向が異なるがこの角度変化が予め定めた閾値以上である場合）が、このような部分を切断候補箇所として、この箇所から輪郭位置１，２，３，４に沿った方向に延長した直線を考える。すなわち、輪郭位置４の右下の画素、さらに右下の画素、のように延長する。逆に、輪郭位置８，輪郭位置９の方向からも輪郭位置９の左上の画素、さらに左上の画素、のように延長する。このように延長した２つの直線が交わるが、予め閾値を定めておき、延長数が閾値以下である場合には、この直線に沿って文字を切り離す。画像１１０１の例の場合には、画像１１０１に示すように画素１０と画素１１が延長された画素の数であり、この部分の画素が白画素になり文字が切り離される。なお、後に文字要素を合成して文字部品を生成するため、この処理では、過剰に文字を切り離してもよい。また、強制切断処理が無い場合には、画像１００１のような例では分解ができないが、このようなケースは比較的少数であるため、一定の部品分解の効果は得られるため、この処理はなくてもよい。このようにして、強制切断を行うことにより連結成分ごとに分ける場合よりもさらに細分化した文字要素を生成し、より多くの文字種に対応することが可能となる。
【００２５】
クラスタリング３０２では、文字細分化３０１で生成した文字要素の画像を、その位置や字形が類似しているものはクラスタリングしてまとめる。図５に、図４０４の１５個の文字要素画像をクラスタリングした例を示した。各行にまとめられた文字要素を並べている。この例では、位置や字形が類似した画像をまとめて、９種の画像にクラスタリングしている。ここで、クラスタリングされた文字要素画像同士を同一視し、それらを識別するＩＤをつける。図６（Ｂ）に記載のテーブル６０２にその例を示した。ＩＤと、それに対応する文字要素画像が示されている。類似判定については以下に述べる。
【００２６】
クラスタリングでは、パターンマッチングの方法や統計的なクラスタリング方法などを用いることができる。統計的なクラスタリング方法を用いる場合には、各画像から特徴抽出を行い、ベクトルに変換する。これには勾配特徴、画素特徴などを用いることができる。ベクトルのクラスタリングには、ｋ−ｍｅａｎｓや凝集法、ＥＭ−Ａｌｇｏｒｉｔｈｍなどを用いることができる。このときベクトル同士の距離について、ユークリッド距離を用いると、黒画素数が少ないもの同士は類似性が低くとも距離が小さく、黒画素が多いものは類似性が高くとも距離が大きいと判定されてしまう傾向がある。例えば、図１３の文字要素１３０３と文字要素１３０４のユークリッド距離は、文字要素１３０５と文字要素１３０６のユークリッド距離よりも小さい。これは、黒画素が多い字形のほうが、一致しない画素の数が大きくなり、その分が距離として計算されてしまうためである。そのため、２つの画像の画素数でユークリッド距離を正規化してもよい。例えば、ｆ（Ａ，Ｂ）を２つの画像Ａ，Ｂの黒画素数に対して単調非増加な関数として、ユークリッド距離にｆ（Ａ，Ｂ）を掛けた値を距離としてもよい。例えば、ｆ（Ａ，Ｂ）としては、１÷（画像Ａと画像Ｂの黒画素数の合計）や１÷√（画像Ａと画像Ｂの黒画素数の合計）としてもよい。平方根をとったのは、黒画素数は面積に相当するため、黒画素領域のスケールを計算するためである。
【００２７】
ここで、文字要素を元の文字画像と結び付けるテーブルを作成しておくとよい。テーブルの例をテーブル６０３に示した。元の文字のＩＤ（第一列目）に対して、それを構成する文字要素のＩＤが第二列目に記されている。例えば、テーブル６０３より、要素ＩＤがＥ００１の文字要素は、テーブル６０１の文字ＩＤがＣ０１の文字に含まれていることが分かる。
【００２８】
ここまでの処理では、文字をなるべく細分化し、類似した位置や字形のものをまとめることにより、文字要素画像を生成する。しかし、この段階でできた要素画像は細かすぎる場合がある。例えば、「波」のような文字のさんずいの３つの点は３つの異なる文字要素画像に分解されるが、これらは文字の部品としては、ひとつのまとまりとして、扱いたい。つまり「波」の分解ではさんずいと皮の部分に分解したい。このように分解することで、偏や旁のような意味のあるまとまりに分解することができ、後に説明する入力支援に役立てることができる。
【００２９】
文字部品生成３０３では、文字要素が同じ文字の中で共起（出現）する回数をカウントし、共起回数に基づいて文字要素をまとめることで、文字の部品となる画像を生成する。例えば、さんずいの３つの点は、「波」、「池」、「濯」、など様々な文字で共起、つまり同時に現れる。このように同時に現れる文字要素同士を合成することで、さんずいを文字部品として取り出すことができる。以下で、文字要素から文字部品を生成する例について説明する。
【００３０】
文字部品生成の処理例を図３を用いて説明する。ここで挙げる例では、共起回数に予め定めた閾値Ｎを設定しておき、共起回数がＮ回以上共起する文字要素を合成対象とする。
【００３１】
共起数計算３０４では、２つの要素文字のペアのうち、共起回数が最大となるようなペアを探索する。そのようなペアは複数存在する場合もある。
【００３２】
共起回数判定３０５では、共起数計算３０４で得られた共起回数の最大値が閾値Ｎより大きいかどうかを判定する。大きい場合には、文字要素追加３０６に進み、小さい場合には、文字部品生成３０７に進む。ここでは、Ｎ＝２とする。
【００３３】
合成文字生成３０６では、共起数計算３０４で得られた共起回数が最大又は予め定められた別の閾値よりも高くなるようなペアに対して、そのようなペアを合成した新たな合成文字を生成する。生成した合成文字はＩＤを付与し、合成元の文字要素ＩＤ、共起数の情報とともに保持しておく。
【００３４】
例えば、図６（Ｃ）のテーブル６０３の例では、文字Ｃ００１と文字Ｃ００４の２つの文字で、文字要素Ｅ００２と文字要素Ｅ００５、文字要素Ｅ００２と文字要素Ｅ００４、文字要素Ｅ００４と文字要素Ｅ００６、の３つのペアが共起している。図６（Ｃ）の例では、これらの２回の共起数の文字要素ペアが共起回数最大となるため、共起数計算３０４では、これら３つのペアが抽出される。そして、合成文字生成３０６では、これら３つのペアの合成文字を生成し、合成文字を識別するＩＤと合成元の文字要素ＩＤの情報を保持しておく。図６（Ｄ）にその例を示した。ここまでの処理で、テーブル６０４の合成文字が生成される。
【００３５】
次に、共起数計算３０４では、共起回数が最大となるようなペアを探索する。ただし、２回目以降の共起数計算３０４の処理では、すでに探索済みのペアは対象から除く。つまり、ペアＡ，Ｂのうち、すでに合成文字生成３０６において合成文字として生成されたペアは探索対象から除く。
【００３６】
また、ペアとして、要素文字だけでなく、合成文字も対象とする。つまり、ペアＡ，Ｂの一方、または両方が合成文字のものも探索対象とする。これは、テーブル６０３の代わりにテーブル６０６の対応を共起の探索に用いることに相当する。ただし、合成文字は、Ａ，Ｂを構成する文字要素は互いに重ならないものを対象とする。つまり、Ａに対応する文字要素（Ａが合成文字の場合にはそれを構成する文字要素）とＢに対応する文字要素（Ｂが合成文字の場合にはそれを構成する文字要素）の間に重複がないようなペアを対象とする。例えば、合成文字Ｉ００１と文字要素Ｅ００２、合成文字Ｉ００１と合成文字Ｉ００２、などは共通する文字要素としてＥ００２を含むため、探索対象としない。
【００３７】
テーブル６０６の例では、Ｉ００１とＥ００４，  Ｉ００２とＥ００５，  Ｉ００３とＥ００２  が文字Ｃ００１と文字Ｃ００４で共起しており、共起回数が最大となる。
【００３８】
次に、共起回数判定３０５では、共起数計算３０４で探索した共起回数を閾値Ｎと比べる。テーブル６０６の例では、２回共起しているため、合成文字生成３０６に進む。
【００３９】
合成文字生成３０６では、探索したペアを合成することにより合成文字を生成する。このとき、合成文字はその要素文字に展開する。つまり、Ｉ００１とＥ００４のペアは、合成文字Ｉ００１をその要素文字Ｅ００２とＥ００５に展開し、３つの要素文字Ｅ００１とＥ００２とＥ００５から成ると考える。そして、これを合成文字として追加する。テーブル６０５のＩ００４がこの例である。今回の例の場合、残る２つのペアＩ００２とＥ００５，  Ｉ００３とＥ００２についても、３つの要素文字Ｅ００１とＥ００２とＥ００５から成るため、同じものは追加する必要がない。
【００４０】
次に、この例では、共起数計算３０４に進むが、最大共起数が１となり、共起回数判定３０５でＮ＝２以下であるため、文字部品生成３０７に進む。ここまでの処理で、Ｉ００４をそれを含む文字Ｃ００１とＣ００４のエントリーに追加すると図６（Ｅ）のテーブル６０７のようになる。
【００４１】
文字部品生成３０７では、各文字をテーブル６０７のような文字ＩＤと文字要素、合成文字の対応テーブルを用いて、各文字をその部品に分解する。このとき、テーブル６０７の２列目の文字を構成する文字要素、合成文字の中から、文字を組み立てる組み合わせを選択する。ただし、文字を構成する文字要素と合成文字を文字要素に展開したものの集合に、文字要素の重複がないようにする。このとき、文字を組み立てる文字要素と合成文字の数の合計がなるべく小さくなるような分解方法を選択する。
【００４２】
例えば、文字Ｃ００１を分解する際、以下のような組み合わせが考えられる。
【００４３】
Ｃ０００１＝Ｅ００１＋Ｅ００２＋Ｅ００４＋Ｅ００５
Ｃ０００１＝Ｅ００１＋Ｅ００４＋Ｉ００１
Ｃ０００１＝Ｅ００１＋Ｅ００５＋Ｉ００２
Ｃ０００１＝Ｅ００１＋Ｅ００２＋Ｉ００３
Ｃ０００１＝Ｅ００１＋Ｉ００４
ここで、この例の場合には、最後の分割が分割数が少ないため、文字Ｃ００１は、Ｅ００１＋Ｉ００４に分割される。上記の例のように、分割の最小数で選択する方法をとってもよいし、共起数を基準に分割を選択してもよい。例えば、分解要素の共起数の合計が大きくなるような分割をとってもよい。例えば、
Ｃ０００１＝Ｅ００１＋Ｉ００４
の場合には、Ｅ００１の共起数が２、Ｉ００４の共起数が２であるため、共起数の合計は４である。共起数と分割数の両方を考慮して分割を選択してもよい。また、分割の仕方は複数であってよい。この結果をテーブル７０１の例のようなテーブルに保存しておく。分解方法が複数ある場合には、ひとつの文字に対して複数のエントリーが存在する。他にも、ある閾値よりも小さいとして分解の判定しても良い。
【００４４】
これにより文字をその部品に分解することができる。この例では、文字Ｃ００１はこざとへんと、允に分割できている。また、この例では、文字Ｃ００２の旁の元は、Ｅ００７，Ｅ００８に分解されてしまっているが、より多くの文字を対象として共起をとった場合、Ｅ００７，  Ｅ００８は複数の文字で共起しているため、これらを合わせた合成文字を要素として抽出される。
【００４５】
文字分解に使われる文字部品は、テーブル７０２に示すように、文字部品ＩＤと文字部品画像のテーブルとして整理しておいてもよい。
【００４６】
文字分解処理の結果は文字分解情報２１４に格納しておく。文字分解情報２１４には、テーブル７０１、テーブル６０５、テーブル６０２、テーブル７０２など情報が保存されている。
【００４７】
このように、共起数をベースに文字を分解することで、複数の文字においてよく現れるパターンを抽出できる。そのようなパターンは、意味としてひとまとまりとして考えることができる場合が多いため、これにより、高精度な文字部品の生成と文字認識、文字の構成のされ方に合った分割の仕方が可能となり、このように文字を分割することで、文字入力の効率化などが可能となる。
【００４８】
次に、図１を用いて文字分解情報２１４を用いた文字分析システムの処理例について説明する。
【００４９】
文字画像ＤＢ２１３、文字分解情報２１４についてはすでに述べたため、説明を省略する。文字分解１０４の処理は、図３の処理フローにより文字画像ＤＢから文字分解情報２１４を生成する処理である。
【００５０】
認識辞書生成１０５では、入力文字画像を文字分解情報２１４の文字、合成文字、および文字要素に照合するための文字認識辞書を生成する。文字認識技術では、入力文字画像の照合対象は文字であるが、今回の場合には、文字分解で生成した合成文字、文字要素も照合対象となる。入力文字画像に近い文字、合成文字、または文字要素を近い順にスコア（類似度）付きで出力するための辞書を生成しておく。生成した辞書は認識辞書２１５に保存しておく。ここでは、統計的識別方法を用いても良いし、テンプレートマッチングなどの画像のマッチング方法を用いても良い。なお、ここでは、認識辞書生成で学習する照合対象をテーブル７０２に現れる文字部品のみとしてもよい。
【００５１】
なお、テーブル６０２に示すように、文字要素には複数の文字画像が保存されている。ここで、代表となる文字画像をひとつだけ代表画像としてテーブルに保存しておいてもよいが、テーブル６０２に示すように、文字画像を複数準備しておくことにより、学習時に用いることができる学習サンプル数が増加し、認識精度のよい認識辞書を作成することができる。テーブル６０５には、合成文字画像のサンプルを１つしか示していないが、文字要素から生成されるすべての組み合わせ画像を保存しておいてもよい。これも、同様にして認識精度を向上させる効果がある。また、文字のクラスタリングに誤りが生じる場合、つまり字形の異なるものがひとつの文字要素としてクラスタリングされてしまった場合でも、クラスタに所属する文字要素画像を全て保持しておくことにより、認識の処理が頑健となる。
【００５２】
また、複数の文字を保持しておくことで、後に説明するフォント生成において合成に用いる画像の選択肢が広がる。例えば、フォント生成の際に合成に用いる画像の黒画素同士が重ならないような画像を選択する、文字線の長さが近い画像を選択する、などの方法が考えられる。
【００５３】
ここで、統計的識別方法の簡単な例を図１２を用いて説明する。学習フェーズでは、学習データセットを用いて認識辞書を生成する。学習データセットには、画像とそのカテゴリを示すラベルの組が複数保存されている。本実施例の場合には、例えば、文字画像と文字種を示すラベル（テーブル６０１）、合成文字と合成文字ＩＤ（テーブル６０５）、文字要素と文字要素ＩＤ（テーブル６０２）、の組が保存されている。
【００５４】
まず、正規化１２０１では、画像を予め定めたサイズに正規化した正規化画像を生成する。これには、サイズ正規化法、モーメント正規化法、非線形正規化法などの方法を用いることができる。サイズ正規化法では、画像を予め定めたサイズに拡大、縮小することで、正規化画像を生成する。これを、学習用データセットの各画像に対して適用する。
【００５５】
次に特徴抽出１２０２では、正規化１２０１で生成した正規化画像をベクトルに変換する。これには、画素特徴、勾配特徴、などを用いることができる。例えば、図１３０１の文字画像から画素特徴を抽出する例を説明する。図１３０１がサイズ５０×５０の正規化画像とする。このとき、図１３０１を図１３０２に示すように１０×１０の小領域に２５分割する。各小領域の黒画素数をベクトルの要素とし、２５次元のベクトルを生成する。このベクトル化処理を全ての学習用データセットの画像に対して適用する。
【００５６】
次に、認識辞書学習１２０３では、入力画像がどのラベルに属するかを判定するための認識辞書を特徴抽出１２０２で生成されたベクトルとラベルの組を用いて生成する。この認識辞書は、入力画像の各ラベルに対するスコア（類似度）を出力する。通常、最大のスコア（類似度）をもつラベルを入力画像が所属するラベルとする。これには、最近傍法、ＳＶＭ、ニューラルネットワークなどの方法を用いることができる。最近傍法の場合には、生成されたベクトルとラベルの組をそのまま保存しておく。
【００５７】
次に、認識フェーズでは、入力された画像のラベルを認識辞書１２０７に基づいて判定する。正規化１２０４、特徴抽出１２０５では、学習フェーズと同じ方法により画像を正規化、ベクトル化する。次に、生成されたベクトルがどのラベルに所属するか、認識辞書１２０７を用いて判定する。最近傍法の場合には、入力画像より生成されたベクトルと最も近いＫ個（Ｋは予め定めた正の整数）のベクトルを認識辞書より探索し、それらＫ個のベクトルのラベルのうち、もっとも数が多いラベルを入力画像のラベルとして判定する。
【００５８】
認識辞書２１５を用いることで、入力画像が、どの文字、合成文字、または文字要素に近いか、順位付きで出力することができる。
【００５９】
文字情報入力１０１では、ユーザが入力したい文字の一部を、ウィンドウなどの所定の位置にマウスやタッチパネルの操作などで描くことにより、入力する。例えば、テーブル６０１の文字Ｃ００１を入力したいとする。このとき、入力したい文字全体を入力すると、複雑な文字になるほど、文字認識による正解文字との照合が難しく、異体字のように１０万種程度の文字種となる場合には、上位に入力したい正解候補を挙げることが難しくなる。そのため、ここでは、文字の一部を入力することで、照合しやすくする。例えば、まず、こざとへんのみを描く。
【００６０】
文字絞り込み探索１０２では、こざとへんを文字部品として含む文字に入力候補を絞り込む。この方法を説明する。認識辞書２１５には、入力画像を文字の部品となる文字要素または合成文字と照合するための情報が保存されている。ここでは、ユーザが入力した画像との類似度が高い文字要素または合成文字を算出する。類似度が高い順に予め指定した数だけ類似度が高い順に文字要素または合成文字を算出してもよいし、予め定めた閾値以上となる類似度の文字要素または合成文字を算出してもよい。類似度は、先に統計的識別フェーズなどで説明した方法などで計算してもよい。
【００６１】
ここで、算出された文字要素または合成文字をユーザに出力し、ユーザは入力しようとした文字要素または合成文字を選択する。ここで、こざとへんの例では、こざとへんは、すでに説明した文字分解処理により、複数の文字の中で現れるため、文字要素または合成文字に含まれると想定される。認識辞書による照合により、こざとへんが候補として上位に現れるため、ユーザによりこざとへんが選択される。これにより、こざとへんを文字部品としてもつ文字に候補が絞られる。ここで、こざとへんを部品としてもつ文字をユーザに提示する。
【００６２】
次に、入力文字選択終了１０３では、入力文字の選択が終了したかどうかを次のように判定する。文字絞り込み検索１０２で、候補として提示された文字をユーザが入力文字として選択すれば、その文字が入力され終了する。提示された候補から選択できなかった場合には、文字情報入力１０１に移り、さらにユーザに文字情報の入力を促す。
【００６３】
たとえば、こざとへんの例では、こざとへんをもつ全ての文字が候補として出力されるため、候補が多すぎて選択が困難であることが想定される。そのため、文字情報入力１０１に移り、さらに文字情報を入力する。
【００６４】
文字Ｃ００１の例の場合、文字情報入力１０１では、こざとへん以外の文字部品である「允」の部分をユーザが入力する。同様にして、文字絞り込み検索１０２で、現在まで絞り込みを行った文字（こざとへんを部品としてもつ文字）の中から、さらに「允」を部品としてもつ文字が絞り込まれる。ここで、こざとへんをもち允と類似した字形の部品をもつ文字が候補として出力される。ここで、ユーザが入力したい文字が見つかれば、入力文字選択終了１０３にて、処理を終え、文字が入力される。
【００６５】
異体字にはかなり複雑な字形をもつ文字が多数含まれる。また文字種も１０万種近く存在する。このような複雑な字形では、精度の良い文字の認識が困難となる。そこで、本実施例のように、文字を部品ごとに絞り込むことによって、効率よく入力したい文字の絞り込みを行うことが出来る。
【００６６】
異体字の文字種は多いが、図４の例のように、その部品は常用漢字の部品にも現れる字形であることが多い。そのため、部品に分解すれば、部品の数は異体字の字種数よりは少なくなることが期待できるため、認識辞書２１５を用いた認識対象字種は少なくすることが出来る。また、認識対象の字形も単純化できる。
【００６７】
なお、本実施例では、ユーザによる部品部分の入力、および、絞り込みを繰り返す形となっているが、最初から、部品ごとに全て入力してもらい、それらをそれぞれ認識辞書２１５により照合し、類似度と照合結果に基づいて、候補文字を出力してもよい。
【００６８】
また、文字要素と合成文字に、その位置情報も保持しておいても良い。これによって、文字絞り込みの効率を上げることができる。
【００６９】
位置情報を保持する例について説明する。図８のテーブル８０１に示すように、文字領域を複数の領域、例えば９つの領域に分ける。正方格子以外の格子に分けても良い。そして、各文字要素や合成文字、文字部品が占有する領域（例えば、黒画素が一定以上となる領域）を、テーブル６０２のような文字要素テーブルやテーブル６０４、６０５、テーブル７０２のような合成文字テーブルに保存しておく。また、これらのテーブルを画面などに出力して、文字要素と共起度を確認できるようにしてもよい。確認する事によって、文字分析の妥当性の確認や、閾値の調整などが可能となる。
【００７０】
そして、文字情報入力１０１では、ユーザは入力したい文字の部品を描くとともに、画像領域９０１のように任意で位置情報も指定する。画像領域９０１では１、４、７の領域をユーザが指定している。このとき、文字絞り込み検索１０２では、この指定領域と文字要素テーブルや合成文字テーブルに保存されている文字領域との重なりがある文字要素と合成文字、文字部品のみを検索対象とする。これによって、効率的に文字を絞り込むことが出来る。
【００７１】
さらに、文字要素や合成文字、文字部品のうちＵＴＦ−８、ＳＪＩＳ，ＥＵＣのような文字コードをもつ文字形と合致するものや、文字情報基盤に含まれる文字形と合致するもの（ＭＪコード）については、これらの文字コード情報を文字要素テーブルや合成文字テーブルに保持しておくとよい。これは、ＵＴＦ−８やＭＪコードをもつ文字と照合するための文字認識辞書を学習しておき、これと文字要素や合成文字を照合することで、文字要素や合成文字に自動的に文字コードを付与してもよいし、コストはかかるが人手により作成しておいてもよい。
【００７２】
このようなコードを保持しておくことで、文字情報入力１０１において、手書きで文字を入力するかわりに、コードで入力することができ、文字絞り込み検索１０２が正確になる。例えば、文字情報入力１０１において、「允」を入力する場合には、これを手書きで描く代わりに、「允」を通常の常用漢字の入力のように入力することができる。また、こざとへんの入力の場合には、対応するＭＪコードを入力することができる。これにより、認識辞書２１５による照合は不要となり、正確かつ高速に、文字情報入力１０１で入力された部品を含む文字を絞り込むことができる。これにより、高速に文字を入力できる。
【００７３】
図１４にユーザーインターフェイスの例を示した。まず、ユーザによる、１４０３、１４０４、１４０５、１４０７、１４０８のひとつ以上の箇所に入力したい文字、または文字部品の情報の入力を受け付ける。１４０３は部品画数、１４０４は部品のＭＪコードを入力する箇所である。また、１４０５は文字を通常のキーボード入力の方法での入力を受け付ける。例えば、常用漢字等であれば、ＳＪＩＳやＵＴＦコードをもっているため、通常のキーボード入力の受付が可能である。例えば、「允」などの文字の場合には、通常通り字形の入力を受け付ける。例えば、１４０７には手書きによる文字形の入力を受け付ける。１４０８では、文字部品の占める主な位置の指定を受け付ける。例えば、テーブル７０２の文字部品Ｉ００４を検索したい場合には、文字入力１４０５にて「允」の入力を受付け、位置指定１４０８に、図９で示す２，３，５，６，８，９の位置の指定を受け付ける、などとする。情報の入力の受付けが終われば、検索１４０２で検索すると、図１の各処理により部品検索結果（候補）が１４０９に示される。１４１０には、その部品を含む文字候補が示される。１４０９からユーザが選択すれば、それが文字部品として選択され、１４１０からユーザが選択すれば、それが最終的にユーザが入力したい入力文字として選択される。１４０６にはこれまでに選択した文字部品を合成したテーブル６０１の文字Ｃ００１を入力したいとして、まず「允」を検索し、その選択を受け付けたとすると、１４０６のように「允」が表示される。次に、こざとへんを１４０７、１４０８の例のように入力すると、１４０９、１４１０のように候補文字が示される。ここで、１４１０より入力したい文字を選択することによって、最終的な入力文字が指定される。
【００７４】
また、異体字の種類は多く、予めあらゆる文字種を準備することは難しく、準備した文字種のいずれとも異なる未知の文字種の入力が必要となる場合がある。そのような場合には、入力したい文字のフォントが存在しない。そのような文字が現れた場合に、ユーザが入力したい文字部品と文字領域を指定することで、文字要素と合成文字を認識辞書２１５により照合し、当該文字種が準備されていない場合には、これらの部品のフォントを組み合わせて、入力したい文字のフォントを合成することができる。
【００７５】
異体字は、複雑であるが、その部品は、他の文字にも現れる字形であることが多いため、この方法により未知の文字の入力にも対応できる場合がある。
【００７６】
この例について、図１を用いて説明する。
【００７７】
まず、文字部品情報入力１０６では、文字の部品に関する情報をユーザが入力する。これは、文字情報入力１０１の場合と同様に、文字部品の手書き画像や、画数、コードなどである。
【００７８】
次に、文字部品抽出１０７では、ユーザが入力した文字部品に関する情報に基づいて、文字部品候補を抽出する。
【００７９】
次に、文字部品選択１０８では、文字部品候補の中からユーザが文字部品を選択する。選択終了判定１０９では、全ての文字部品が選択されたかどうか判定し、選択されていない文字部品がある場合には、１０６の処理に戻り、残りの文字部品を選択する処理を行う。
【００８０】
選択が終了すれば、フォント生成１１０で、文字部品画像を合成することにより、入力したい文字のフォントを生成する。合成する場合の各文字部品画像の位置の調整などはユーザが行っても良いし、各文字部品の位置情報に基づいて自動的に行っても良い。このようにして、未知の文字の入力にも対応できる。
【００８１】
文字入力１１１では、合成されたフォントを用いて文字を入力する。
【００８２】
なお、フォント生成による文字入力は、すでに１０１〜１０３の処理のフロー図で説明した方法により文字が見つからず、文字入力ができない場合にのみ、用いるなどとすればよい。
【００８３】
処理１０１〜１０３では、文字の情報を入力することで文字を検索する。これに対し、上記のフォント生成では、処理１０６〜１０８までは文字部品を検索する。処理１０１〜１０３では、文字の分解情報を用いることで検索を効率化した。同様のことを、処理１０６〜１０８についても行っても良い。つまり、文字部品自体が、より小さい文字部品に分解できる。このような入れ子状の分解情報を文字の分解情報と同様にして階層的に保存しておくことにより、処理１０１〜１０３と同様の方法によって文字部品の検索を効率化することができる。この場合には文字の分解情報に加えて、文字分解に用いられる文字部品に対しても、その分解情報を保存しておく。文字部品の分解情報の生成、および保存方法については、文字の場合と同様であるため、説明は省略する。
【００８４】
なお、本発明の方法は、中国で用いられる簡体字、繁体字などの漢字についても適用可能である。
【００８５】
また、自治体等、異体字を扱う組織においては、異体字を識別するために独自の識別コードやフォントを用いているケースが想定される。そのような場合において、異なる組織の異体字データベース（異体字画像とその識別コードの組からなるデータベース）を収集し、本発明の方法により分解することによって、異なる識別コードの文字であっても、同一文字であれば、同一の部品で構成されていることが検出できる。異体字のような複雑な文字で、文字サンプルの数も少ない場合には、文字同士の直接のマッチングにより一致と不一致を判定することが難しい場合があるが、部品に分解することにより、文字形が一致するかどうかが判定し易くなるケースがある。このような状況において、文字形が同じ文字を検出し、共通のコードを付与することによって、異体字を扱う異なる組織間においてもデータの移行が容易となる。
【００８６】
また、本発明の方法は、異なる組織間から収集された異体字データベースにおいて、識別コードが組織間で統一されていない場合においても、識別コードとは関係なく、同一文字における共起回数をもとに文字分解を行うことができるため、適用が可能である。
【００８７】
また、上記の例では文字要素の文字での共起回数に基づいて、文字部品を生成したが、ユーザが検索時に描く文字の単位を画像データとして蓄積しておき、ユーザが描く画像の単位を、その頻度が一定以上の場合には、文字要素またはその合成文字とその画像を照合し、照合された文字要素またはその合成文字を文字部品として定めるようにしてもよい。このようにすることで、ユーザが検索時に思い描き易い単位を文字部品として定めることができる。
【００８８】
本発明によって生成された文字分解情報は人手によるメンテナンスにより、修正してもよい。例えば、テーブル７０１に示される文字とそれを構成する文字部品の情報、および、テーブル７０２に示される文字部品の情報をメンテナンス画面に表示し、人手による修正をしてもよい。このとき、修正を補助する情報として、文字部品の共起頻度の数、位置情報、標準文字コード情報（存在する場合）、その文字部品を含む文字の表示、文字の分解の様子を文字部品ごとに色分けして表示するＵＩなどをつけると良い。
【符号の説明】
【００８９】
２０１  文字分析システム
２０２  入力装置
２０３  表示装置
２０４  イメージ取得装置
２０５  通信装置
２０６  演算装置（ＣＰＵ）
２０７  外部記憶装置
２１３  文字画像ＤＢ
２１４  文字分解情報
【図１】
2016110468.tif 000003
【図２】
2016110468.tif 000004
【図３】
2016110468.tif 000005
【図４】
2016110468.tif 000006
【図５】
2016110468.tif 000007
【図６（Ａ）】
2016110468.tif 000008
【図６（Ｂ）】
2016110468.tif 000009
【図６（Ｃ）】
2016110468.tif 000010
【図６（Ｄ）】
2016110468.tif 000011
【図６（Ｅ）】
2016110468.tif 000012
【図７】
2016110468.tif 000013
【図８】
2016110468.tif 000014
【図９】
2016110468.tif 000015
【図１０】
2016110468.tif 000016
【図１１】
2016110468.tif 000017
【図１２】
2016110468.tif 000018
【図１３】
2016110468.tif 000019
【図１４】
2016110468.tif 000020