JP6229303B2 - プログラム、情報処理装置および文字認識方法 - Google Patents

プログラム、情報処理装置および文字認識方法 Download PDF

Info

Publication number
JP6229303B2
JP6229303B2 JP2013104134A JP2013104134A JP6229303B2 JP 6229303 B2 JP6229303 B2 JP 6229303B2 JP 2013104134 A JP2013104134 A JP 2013104134A JP 2013104134 A JP2013104134 A JP 2013104134A JP 6229303 B2 JP6229303 B2 JP 6229303B2
Authority
JP
Japan
Prior art keywords
character
image data
input
information
stroke
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013104134A
Other languages
English (en)
Other versions
JP2014225135A (ja
Inventor
綾 ▲高▼杉
綾 ▲高▼杉
哲郎 星
哲郎 星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013104134A priority Critical patent/JP6229303B2/ja
Priority to US14/256,296 priority patent/US9298365B2/en
Priority to KR1020140050788A priority patent/KR101588520B1/ko
Priority to CN201410195310.3A priority patent/CN104166474B/zh
Publication of JP2014225135A publication Critical patent/JP2014225135A/ja
Application granted granted Critical
Publication of JP6229303B2 publication Critical patent/JP6229303B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/018Input/output arrangements for oriental characters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Character Discrimination (AREA)

Description

本発明はプログラム、情報処理装置および文字認識方法に関する。
現在、文字認識の技術が利用されている。文字認識を行う装置は、入力デバイス(例えば、タッチパネルやマウスなど)を用いたユーザによる文字の手書き入力を受け付け、ユーザが意図した文字の文字コードを推定する。候補の文字コードが複数ある場合、ユーザに選択を促すこともできる。文字認識の技術では文字の認識精度の向上が図られている。
例えば、文字の入力領域に複数の入力枠を設けて、漢字1文字を分割した複数の構成部分(編、旁、冠など)を各入力枠に入力させる提案がある。構成部分の組と文字との対応を記憶手段に予め記憶させ、各入力枠に入力された構成部分の組と記憶手段に記憶された構成部分の組とを比較し、入力された構成部分の組を含む文字を表示装置に表示させる。
また、手書き入力された文字の1画を示す1ストロークごとに、以前に入力されたストロークデータと併せて手書きストロークデータを生成し、予め用意されたストロークデータからなる辞書文字データと比較して類似度を判定しながら文字認識を行う提案がある。手書きストロークデータの辞書文字データに対する類似度が0になったときに、1ストローク前の手書き入力によって生成された手書きストロークデータを1文字として切出し、当該手書きストロークデータを含む辞書文字データを候補文字として表示する。
特開平7−121660号公報 特開平11−134437号公報
上記の方法では、認識対象とする文字ごとに、構成部分の組やストロークの照合に用いられる辞書データを予め用意することになる。しかし、文字の数は膨大であり、辞書データに全ての文字を網羅するのは容易でない。例えば、辞書データの作成作業は、多数のユーザからサンプルとなるストローク情報を文字ごとに複数採取して登録するなど手間がかかる。このため、文字によっては辞書データに登録されないことがある。例えば、異体字や外字など使用頻度の少ない文字には辞書データに登録されないものも存在する。そこで、辞書データに未登録の文字をどのようにして精度良く認識するかが問題となる。
1つの側面では、本発明は、辞書データに未登録の文字を精度良く認識できるプログラム、情報処理装置および文字認識方法を提供することを目的とする。
1つの態様では、コンピュータによって実行されるプログラムが提供される。このプログラムは、手書きの入力に応じて、入力された複数の文字それぞれの入力位置を示す第1の情報と複数の文字に対応する複数の第1の文字コードとを検出し、文字コードと文字の画像データとを対応付けた第2の情報を参照して複数の第1の文字コードに対応する複数の第1の画像データを取得し、第1の情報に基づいて複数の第1の画像データを組合せることで第2の画像データを生成し、第2の情報に含まれる文字の画像データと第2の画像データとの照合により、第2の画像データに対応する文字の第3の画像データを第2の情報の中から特定し、第3の画像データ、または、第3の画像データに対応する第2の文字コードを出力する、処理をコンピュータに実行させる。
また、1つの態様では、情報処理装置が提供される。この情報処理装置は、記憶部と演算部とを有する。記憶部は、文字コードと文字の画像データとを対応付けた第1の情報を記憶する。演算部は、手書きの入力に応じて、入力された複数の文字それぞれの入力位置を示す第2の情報と複数の文字に対応する複数の第1の文字コードとを検出し、第1の情報を参照して複数の第1の文字コードに対応する複数の第1の画像データを取得し、第2の情報に基づいて複数の第1の画像データを組合せることで第2の画像データを生成し、第1の情報に含まれる文字の画像データと第2の画像データとの照合により、第2の画像データに対応する文字の第3の画像データを第2の情報の中から特定し、第3の画像データ、または、第3の画像データに対応する第2の文字コードを出力する。
また、1つの態様では、情報処理装置が実行する文字認識方法が提供される。この文字認識方法では、情報処理装置が、手書きの入力に応じて、入力された複数の文字それぞれの入力位置を示す第1の情報と複数の文字に対応する複数の第1の文字コードとを検出し、文字コードと文字の画像データとを対応付けた第2の情報を参照して複数の第1の文字コードに対応する複数の第1の画像データを取得し、第1の情報に基づいて複数の第1の画像データを組合せることで第2の画像データを生成し、第2の情報に含まれる文字の画像データと第2の画像データとの照合により、第2の画像データに対応する文字の第3の画像データを第2の情報の中から特定し、第3の画像データ、または、第3の画像データに対応する第2の文字コードを出力する。
1つの側面では、辞書データに未登録の文字を精度良く認識できる。
第1の実施の形態の情報処理装置を示す図である。 第2の実施の形態のクライアント装置を示す図である。 クライアント装置のハードウェア例を示す図である。 クライアント装置の機能例を示す図である。 字型テーブルの例を示す図である。 辞書テーブルの例を示す図である。 入力履歴テーブルの例を示す図である。 類似度履歴テーブルの例を示す図である。 組合せテーブルの例を示す図である。 文字認識の処理例を示すフローチャートである。 文字認識の処理例(続き)を示すフローチャートである。 部品文字判定の具体例を示す図である。 部品文字判定の具体例(続き)を示す図である。 変形画像データの例を示す図である。 変形画像データの合成例を示す図である。 最終結果の出力例を示す図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。情報処理装置1は、ユーザにより手書き入力された文字の文字認識を行う。例えば、ユーザは、情報処理装置1が有するタッチパネル、タッチパッドおよびマウスなどの入力デバイスを用いて、情報処理装置1に対する手書きの入力を行える。入力デバイスは、情報処理装置1の外部に接続されるものでもよい。ここで、手書き入力された文字の1画をストロークということがある。また、1文字を形成するストロークの集合や書き順(ストロークの順番)などを含む情報をストローク情報ということがある。
情報処理装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。演算部1bは、プログラムを実行するプロセッサであってもよい。“プロセッサ”には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
記憶部1aは、文字コードと文字の画像データとを対応付けた字型データ2を記憶する。例えば、字型データ2は次のような対応関係を含む。文字コードA1と画像データX1(文字“火”を示す)との対応。文字コードA2と画像データX2(文字“ク”を示す)との対応。文字コードA3と画像データX3(“臼”を示す)との対応。文字コードA4と画像データX4(文字“焔”の異体字を示す)との対応。
また、記憶部1aは、文字コードと基準のストローク情報とを対応付けた辞書データ3を記憶する。例えば、辞書データ3は次のような対応関係を含む。文字コードA1とストローク情報Pxとの対応。文字コードA2とストローク情報Pyとの対応。文字コードA3とストローク情報Pzとの対応。ここで、文字コードA4に対するストローク情報は辞書データ3には登録されていない。
演算部1bは、ユーザによる手書きの入力に応じて、入力された複数の文字の入力位置を示す位置情報を検出する。例えば、演算部1bは、手書き入力されたストローク情報と記憶部1aに記憶された辞書データ3とに基づいて、入力された複数の文字に対応する複数の文字コードを検出する。
例えば、演算部1bは、手書き入力により入力データ4を受け付ける。入力データ4は、文字4a,4b,4cを含む。文字4a,4b,4cそれぞれは、ユーザにより入力された複数のストロークによって形成されている。演算部1bは、文字4a,4b,4cを検出し、文字4a,4b,4cそれぞれの入力位置を示す位置情報を検出する。演算部1bは、文字4a,4b,4cそれぞれのストローク情報を辞書データ3に登録されたストローク情報Px,Py,Pzと照合することで、文字4a,4b,4cに対応する文字コードA1,A2,A3を検出し得る。
なお、演算部1bは、字型データ2から文字4a,4b,4cに対応する画像データを特定することで、文字4a,4b,4cに対する文字コードA1,A2,A3を取得してもよい。また、演算部1bは、字型データ2および辞書データ3により取得した各文字コードの候補をマージして文字4a,4b,4cに対応する文字コードA1,A2,A3を検出してもよい。例えば、文字4aに対して字型データ2から複数の文字コードの候補が検出され、辞書データ3から複数の文字コードの候補が検出される場合も考えられる。その場合、字型データ2および辞書データ3の両方に対する照合で確度が高いと判断された文字コードの候補を文字4aに対する文字コードと決定してもよい。
演算部1bは、字型データ2を参照して、検出された複数の文字コードに対応する複数の第1の画像データを取得する。例えば、演算部1bは、字型データ2を参照して、文字コードA1,A2,A3に対して画像データX1,X2,X3を取得する。
演算部1bは、検出された位置情報に基づいて、複数の第1の画像データを組合せることで、第2の画像データを生成する。例えば、演算部1bは、検出された文字4a,4b,4cそれぞれの位置情報に基づいて、文字4a,4b,4cが入力された相対的な位置関係を維持して画像データX1,X2,X3を配置し、1つの画像データとすることで、画像データ5を生成する。
このとき、演算部1bは、画像データX1,X2,X3を変形することで、画像データ5a,5b,5cを生成してもよい。画像データ5aは画像データX1を変形したものである。画像データ5bは画像データX2を変形したものである。画像データ5cは画像データX3を変形したものである。
例えば、文字4aの位置情報に基づいて文字4aの入力領域を示す矩形を特定し、画像データ5aの縦横比を当該矩形の縦横比と一致させることが考えられる。同様にして画像データX2を画像データ5bに変形する。画像データX3を画像データ5cに変形する。更に、画像データX1,X2,X3それぞれに対して特定した各矩形の面積比と、画像データ5a,5b,5cの面積比とを一致させることが考えられる。このように、演算部1bは、画像データX1,X2,X3を変形した画像データ5a,5b,5cを組合せることで、画像データ5を生成してもよい。
演算部1bは、字型データ2を参照して、生成された画像データに対応する文字の画像データまたは当該画像データに対応する文字コードを出力する。例えば、演算部1bは、画像データ5に対応する文字の画像データX4または画像データX4に対応する文字コードA4を出力する。例えば、演算部1bは、画像データ5と字型データ2に含まれる各画像データとを照合することで、字型データ2の中から画像データ5に最も近似する画像データX4を特定し得る。
情報処理装置1によれば、演算部1bにより、ユーザによる手書きの入力に応じて、入力された文字4a,4b,4cそれぞれの入力位置を示す位置情報と文字4a,4b,4cそれぞれに対応する文字コードA1,A2,A3が検出される。演算部1bにより、字型データ2が参照されて文字コードA1,A2,A3に対応する画像データX1,X2,X3が取得され、位置情報に基づいて画像データX1,X2,X3を組合せた画像データ5が生成される。演算部1bにより、字型データ2が参照されて、画像データ5に対応する文字の画像データX4または画像データX4に対応する文字コードA4が出力される。
これにより、辞書データに未登録の文字を精度良く認識できる。例えば、文字認識を行うためには、認識対象とする文字ごとに、構成部分の組やストローク情報の照合に用いられる辞書データを予め用意することになる。しかし、文字の数は膨大であり、辞書データに全ての文字を網羅するのは容易でない。
例えば、辞書データ3の作成作業は文字ごとにストローク情報を登録するなど手間がかかる。例えば、1つの文字に対するストロークの配置パターンや書き順などは書き手によって多様である。このため、辞書データ3の作成では、多数のユーザから文字ごとにストロークの入力パターンなどのサンプルを採取し、採取したサンプルを統合・編集して登録するなど、作業コストが大きい。このため、例えば、異体字や外字(旧字体を含む)など使用頻度の少ない文字の辞書データ3への登録を省略することがある。また、ユーザが自身で文字を作成して字型データ2に登録することもある。ユーザが自身で作成した文字については、辞書データ3に予め登録することは困難である。
このため、辞書データ3に未登録の文字を精度良く認識する方法が問題となる。例えば、辞書データ3に未登録の文字を意図して入力された入力データ4が入力された場合に、入力データ4を字型データ2に登録された各画像データと照合することも考えられる。しかし、入力データ4に含まれる各部分の形が崩れていると、入力データ4に対する認識の精度が低下する可能性がある。
そこで、情報処理装置1は、入力データ4を複数の文字の組合せとして扱う。具体的には、情報処理装置1は、当該複数の文字を辞書データ3に基づいて認識することで、当該複数の文字の文字コードを検出する。情報処理装置1は、当該複数の文字コードに対応する複数の画像データを字型データ2から抽出して組合せることで、入力データ4を画像データ5に整形する。そして、画像データ5を字型データ2に含まれる各画像データと照合して、入力データ4に対する画像データX4を特定する。これにより、入力データ4に対応する文字が辞書データ3に登録されていなくても、辞書データ3に登録されたストローク情報を用いて、ユーザが入力を意図した文字の画像データX4または文字コードA4を適切に特定し得る。
このとき、上記のようにユーザによる文字4a,4b,4cの入力位置に基づいて、画像データX1,X2,X3を変形して組合せることで、画像データ5を生成してもよい。このようにすれば、編や旁などの部首として入力された部分を画像データX1,X2,X3により再現して、画像データ5に適切に反映させることができる。
[第2の実施の形態]
図2は、第2の実施の形態のクライアント装置を示す図である。クライアント装置100は、携帯電話機、タブレット装置およびコンピュータなどの情報処理装置である。クライアント装置100は文字認識を行う。クライアント装置100は、ユーザによる手書きの入力を受け付けると、ユーザが入力を意図した文字の文字コードを推定する。クライアント装置100は、文字コードの推定に辞書データを用いる。辞書データは、文字コードとストローク情報とを対応付けた情報である。
例えば、ユーザは、クライアント装置100が有するタッチパネルを手200の何れかの指やスタイラスペンなどでなぞることで手書き入力を行える。例えば、ユーザは、タッチパネルの所定の入力領域Rに対して手書き入力することで文字を入力し得る。クライアント装置100は、文字を入力するための領域として入力領域Rをディスプレイに表示させることで、ユーザに提示してもよい。以下の説明では、入力領域Rの紙面に向かって左上の頂点を原点Oとする。また、原点Oに対して右方向の座標軸をX軸とする。原点Oに対して下方向の座標軸をY軸とする。
例えば、クライアント装置100は、推定された文字コードに対応する文字の画像データをディスプレイに表示させる。例えば、ユーザは、ディスプレイに表示された文字の画像データが、自身が意図したものであれば当該文字の入力を確定する操作を行える。
図3は、クライアント装置のハードウェア例を示す図である。クライアント装置100は、プロセッサ101、RAM102、フラッシュメモリ103、無線部104、ディスプレイ105およびタッチパネル106、通話部107および媒体読取部108を有する。各ユニットはクライアント装置100のバスに接続されている。
プロセッサ101は、クライアント装置100の情報処理を制御する。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、CPU、DSP、ASIC、FPGAなどの2以上の要素の組合せであってもよい。
RAM102は、クライアント装置100の主記憶装置である。RAM102は、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
フラッシュメモリ103は、クライアント装置100の補助記憶装置である。フラッシュメモリ103には、OSのプログラム、アプリケーションプログラムおよび各種データが格納される。フラッシュメモリ103は、クライアント装置100に対して着脱可能な可搬型の記録媒体でもよい。
無線部104は、無線通信を行えるインタフェースである。無線部104は、アクセスポイント10と通信することで、アクセスポイント10が接続されたネットワークにアクセスできる。無線部104は、当該ネットワークに接続された他のコンピュータとプログラムやデータの送受信を行える。なお、クライアント装置100は、無線部104に代えて、または、無線部104と併せて有線で通信を行えるインタフェースを備えてもよい。
ディスプレイ105は、プロセッサ101からの命令に従って、画像を出力する。例えば、ディスプレイ105は、液晶ディスプレイや有機EL(Electro Luminescence)ディスプレイなどである。
タッチパネル106は、タッチ操作を検出する。ユーザは、指やスタイラスペンでタッチパネル106にタッチすることができる。タッチパネル106は、タッチ操作を検出すると、指やスタイラスペンが接触している位置を検出して、プロセッサ101に出力する。指やスタイラスペンによりタッチパネル106をなぞる操作が行われると、タッチパネル106は、その軌跡に含まれる位置を継続的に検出し、プロセッサ101に出力する。
なお、タッチパネル106はクライアント装置100の外部に接続されてもよい。また、クライアント装置100はタッチパッドやマウスなどの他のポインティングデバイスと接続されて、当該他のポインティングデバイスを用いた手書き入力を受け付けてもよい。
通話部107は、通話機能を実現する。例えば、通話部107は、マイクやスピーカを備える。マイクにより入力された音声アナログ信号に対して所定の信号変換処理を行って音声データを生成し、プロセッサ101に出力する。また、通話部107は、プロセッサ101から取得した音声データを音声アナログ信号に変換し、スピーカを用いて音声出力する。
媒体読取部108は、プロセッサ101からの命令に従って、可搬型の記録媒体11からプログラムやデータを読み取ったり、記録媒体11に対してプログラムやデータを書き込んだりする。例えば、記録媒体11は媒体読取部108に対して着脱可能なカード型の記録媒体(メモリカード)である。媒体読取部108は、記録媒体11から読み取ったプログラムやデータをRAM102またはフラッシュメモリ103に格納する。媒体読取部108は、レーザ光などを利用して、光ディスクに記録されたプログラムやデータを読み取る駆動装置でもよい(例えば、クライアント装置100がコンピュータなどの場合)。
その場合、記録媒体11として光ディスクを利用できる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などを使用できる。例えば、媒体読取部108は、例えば、プロセッサ101からの命令に従って、光ディスクから読み取ったプログラムやデータをRAM102またはフラッシュメモリ103(あるいは、HDDなどの他の記憶装置)に格納する。
図4は、クライアント装置の機能例を示す図である。クライアント装置100は、記憶部110、文字判定部120、部品文字組合せ部130および文字比較部140を有する。記憶部110は、RAM102またはフラッシュメモリ103に確保した記憶領域として実現できる。文字判定部120、部品文字組合せ部130および文字比較部140は、プロセッサ101が実行するソフトウェアのモジュールとして実現できる。
記憶部110は、文字判定部120、部品文字組合せ部130および文字比較部140の処理に用いられる各種の情報を記憶する。記憶部110に記憶される情報は、字型テーブル、辞書テーブル、入力履歴テーブル、類似度履歴テーブルおよび組合せテーブルを含む。
字型テーブルは、文字コードと文字フォント(字型を示す画像データ)との対応関係を示すテーブルである。辞書テーブルは、文字コードと基準のストローク情報との対応関係を示すテーブルである。入力履歴テーブルは、入力されたストロークに関する情報を格納しておくテーブルである。類似度履歴テーブルは、手書き入力のストロークとストローク情報との類似度の算出履歴を格納しておくテーブルである。組合せテーブルは、画像データの組合せに用いられるテーブルである。
文字判定部120は、ユーザによる手書きの入力を受け付ける。文字判定部120は、タッチパネル106により検出された各ストロークに対応する軌跡を示す座標群を記憶部110に記憶された入力履歴テーブルに格納する。文字判定部120は、最後に入力されたストロークの後に無入力期間が所定時間以上続いたか否かにより、手書き入力された1文字を特定する。
文字判定部120は、手書き入力の情報に基づいて入力された文字を推定し、当該文字に対応する文字コードを特定する。文字判定部120は、記憶部110に記憶された字型テーブルおよび辞書テーブルに基づいて、手書き入力の情報に応じた文字コードを特定し得る。例えば、辞書テーブルに登録された文字に対して文字認識を行う場合は次の通りである。
文字判定部120は、手書きによる1画の入力を受け付ける。文字判定部120は、辞書テーブルに登録された各ストローク情報と手書き入力された際のストローク情報とを対比して、ストローク情報の第1の類似度を評価する。ここで、類似度は数値で表され、類似度の数値が大きいほど類似しており、類似度の数値が小さいほど非類似であるとする。文字判定部120は、当該第1の類似度が大きいストローク情報に対応する文字コードを、辞書テーブルから1つまたは複数抽出し得る。
また、文字判定部120は、字型テーブルに登録された各画像データと手書き入力された画像データとを対比して、画像パターンの第2の類似度を評価する。例えば、文字を2値のドットパターンで示せばドット位置やドットパターンの一致度合いにより第2の類似度を算出し得る。文字判定部120は、当該第2の類似度が大きい画像データに対応する文字コードを、字型テーブルから1つまたは複数抽出し得る。
そして、文字判定部120は、字型テーブルおよび辞書テーブルから抽出された文字コードの中から、手書き入力に対する文字コードを特定する。具体的には、第1および第2の類似度として求めた結果を総合した類似度を算出し、候補となった文字コードの中から最大の類似度となる文字コードを特定する。例えば、文字判定部120は、第1および第2の類似度を同じ文字コードについて平均することで、各文字コードの総合的な類似度を算出してもよい。ただし、文字判定部120は、第1の類似度のみにより、手書き入力に対する文字コードを特定してもよい(第2の類似度の算出を省略してもよい)。
一方、ユーザは、辞書テーブルに登録されていない文字を意図して手書き入力を行うこともある。そこで、文字判定部120は、1文字の最初のストロークから最後のストロークが入力されるまでの期間において、1ストロークが入力されるごとに類似度を算出する。具体的には、文字判定部120は、辞書テーブルに登録されていない文字を複数の文字(以下の説明では部品文字ということがある)の組合せとして扱い、当該複数の部品文字それぞれについて文字認識を行う。後述するように、文字判定部120は部品文字1文字を類似度の変化により検出する。文字判定部120は、1文字の入力期間中に部品文字を複数検出した場合は、各部品文字の文字コードを部品文字組合せ部130に出力する。
部品文字組合せ部130は、文字判定部120から取得した複数の部品文字の文字コードに基づいて、各部品文字の画像データを字型テーブルから取得する。部品文字組合せ部130は、取得した各部品文字の画像データを、各部品文字が入力された位置を示す位置情報に基づいて組合せる。部品文字組合せ部130は、記憶部110に記憶されたストロークの入力履歴から、各部品文字の位置情報を特定できる。
部品文字組合せ部130は、位置情報に基づいて、各部品文字が入力された領域を示す矩形を特定する。部品文字組合せ部130は、各部品文字の画像データを変形して、それぞれの矩形に当てはめることで各部品文字を組合せる(以下の説明では変形後の画像データを変形画像データということがある)。そして、部品文字組合せ部130は、組合せ結果として、1つの画像データ(以下の説明では合成画像データということがある)を生成し、文字比較部140に出力する。
文字比較部140は、部品文字組合せ部130から合成画像データを取得する。文字比較部140は、記憶部110に記憶された字型テーブルの各画像データと、合成画像データとを照合して、合成画像データに対応する画像データまたは当該画像データに対応する文字コードを特定し、出力する。例えば、文字比較部140は、合成画像データに対応する画像データをディスプレイ105に表示させてもよい。また、文字比較部140は、当該画像データに対応する文字コードをクライアント装置100上で動作する所定のソフトウェアやクライアント装置100と通信する他の装置などに出力してもよい。
図5は、字型テーブルの例を示す図である。字型テーブル111は、記憶部110に予め格納される。字型テーブル111は、クライアント装置100のオペレーティングシステムによって提供される文字フォントの情報でもよい。あるいは、字型テーブル111は、当該文字フォントの情報を用いて(例えば、当該文字フォントの情報を複製して)、文字判定部120により作成された情報でもよい。
字型テーブル111は、文字コードおよび画像データの項目を含む。文字コードの項目には、文字コードが登録される。画像データの項目には、文字フォントを示す画像データ(例えば、ビットマップデータ)が登録される。
例えば、字型テーブル111には、文字コードが“706b”、画像データが“G1(火)”という情報が登録される。これは、文字コード“706b”に対して、文字“火”を示す画像データ“G1”が登録されていることを示す。
字型テーブル111の登録内容は、ユーザにより追加可能である。例えば、ユーザは、使用されていない文字コードに対応付けて、異体字や外字などを登録することができる。また、ユーザは、独自の文字の画像データを作成し、使用されていない文字コードに対応付けて字型テーブル111に登録することもできる。例えば、字型テーブル111には、文字コード“7130”に対して、異体字の画像データ“G7”が登録されている。画像データ“G7”は、文字“焔”の異体字の文字フォントである。
なお、第2の実施の形態では、文字コードの一例としてユニコード(Unicode)を例示するが、他の文字コード(例えば、JISコードおよびShift JISコードなど)を用いてもよい。
図6は、辞書テーブルの例を示す図である。辞書テーブル112は、記憶部110に予め格納される。辞書テーブル112は、文字コードおよびストローク情報の項目を含む。文字コードの項目には、文字コードが登録される。ストローク情報の項目には、基準のストローク情報が登録される。例えば、当該ストローク情報には、1文字に対して、当該1文字を形成する各ストロークの書き出し位置、書き終わり位置、各ストロークの書き終わり位置と次のストロークの書き出し位置との相対的な位置関係および書き順などの複数のパターンが含まれ得る。
例えば、辞書テーブル112には、文字コードが“30bd”、ストローク情報が“P1”という情報が登録されている。例えば、辞書テーブル112には、文字“焔”の異体字に関するストローク情報は登録されていない。
図7は、入力履歴テーブルの例を示す図である。入力履歴テーブル113は、記憶部110に格納される。入力履歴テーブルは、順番および検出点の項目を含む。順番の項目には、ストロークが入力された順番が登録される。検出点の項目は、ユーザにより入力されたストローク上の座標群が登録される。例えば、入力履歴テーブル113には、順番が“1”、検出点が“N1,N2,・・・”という情報が登録される。これは、1回目に入力されたストロークについて、座標“N1,N2,・・・”が検出されたことを示す。
入力履歴テーブル113に登録された順番により、ストロークの入力順を特定できる。また、あるストロークの最後の検出点および次のストロークの最初の検出点から各ストロークの相対的な位置関係を特定できる。入力履歴テーブル113に登録された連続する複数のストロークの集合が、1文字(あるいは1部品文字)を形成する。
図8は、類似度履歴テーブルの例を示す図である。類似度履歴テーブル114は、記憶部110に格納される。類似度履歴テーブル114には、ユーザにより1ストロークが入力されるごとに新たなエントリが追加される。類似度履歴テーブル114の登録内容は、1つの部品文字が検出されるとクリアされる。類似度履歴テーブル114は、入力画数、文字コードおよび類似度の項目を含む。
入力画数の項目には、入力された画数(部品文字単位のストローク数)が登録される。文字コードの項目には、文字コードが登録される。類似度の項目には、ユーザによる手書き入力に対して、文字判定部120により評価された類似度が登録される。ここで、一例として類似度の最大値を“100”とする。
例えば、類似度履歴テーブル114には、入力画数が“1”、文字コードが“30bd”、類似度が“17”という情報が登録されている。これは、1画目のストロークに対して、文字コード“30bd”が検出され、そのときの類似度が“17”であったことを示す。
また、例えば、類似度履歴テーブル114には、入力画数が“2”、文字コードが“706b”、類似度が“53”という情報が登録されている。これは、1画目および2画目のストロークの組合せに対して、文字コード“706b”が検出され、そのときの類似度が“53”であったことを示す。
図9は、組合せテーブルの例を示す図である。組合せテーブル115は、記憶部110に格納される。組合せテーブル115は、文字コード、変形画像データ、最小座標および最大座標の項目を含む。
文字コードの項目には、文字コードが登録される。変形画像データの項目には、部品文字の変形画像データが登録される。最小座標の項目には、当該部品文字に対して検出されたX,Y軸の最小値の組(最小座標という)が登録される。最大座標の項目には、当該部品文字に対して検出されたX,Y軸の最大値の組(最大座標という)が登録される。
例えば、組合せテーブル115には、文字コードが“706b”、変形画像データが“G11”、最小座標が“(3,25)”、最大座標が“(42,78)”という情報が登録される。これは、文字コード“706b”に対して変形画像データ“G11”が生成されていることを示す。また、当該文字コードに対応する部品文字が入力された際の最小座標が“(3,25)”であり、最大座標が“(42,78)”であったことを示す。なお、最小座標および最大座標は、変形画像データを配置する位置を決定するための情報(他の変形画像データとの相対的な位置関係を示す情報)としても用いられる。
図10は、文字認識の処理例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
(S11)文字判定部120は、文字認識を開始する旨のユーザによる操作入力を受け付ける。文字判定部120は、変数nに“1”を代入する。また、類似度V0を“0”とする。終了フラグを“false”とする。
(S12)文字判定部120は、ユーザによる手書き入力の1ストローク(1画)を受け付ける。“1ストロークを受け付ける”とは、当該1ストロークの書き終わり点を検出したことを意味する。文字判定部120は、入力されたストロークを示す情報(タッチパネル106により検出されたストロークの軌跡を示す座標群)を記憶部110に格納する。
(S13)文字判定部120は、記憶部110に記憶された入力履歴テーブル113から、何れの文字を形成するかが未確定のストロークの集合(未確定ストローク群という)を抽出する。文字判定部120は、未確定ストローク群と、記憶部110に記憶された字型テーブル111および辞書テーブル112とに基づいて、未確定ストローク群と各文字との類似度Vnを算出する。例えば、文字判定部120は、未確定ストローク群と辞書テーブル112の各ストローク情報とを照合して、未確定ストローク群と各文字との第1の類似度を算出する。また、文字判定部120は、未確定ストローク群が示すドットパターンと字型テーブル111の画像データとを照合して、未確定ストローク群と各文字との第2の類似度を算出する。そして、文字判定部120は第1および第2の類似度に基づいて、未確定ストローク群と各文字との類似度を総合判断する。例えば、前述のように第1および第2の類似度の平均を未確定ストローク群と各文字との類似度としてもよい。そして、最大の類似度をVnとし、類似度Vnに対応する文字コードを文字コードCnとする。文字判定部120は、入力画数n、文字コードCnおよび類似度Vnを類似度履歴テーブル114に登録する。
(S14)文字判定部120は、ステップS12でストロークの入力を受け付けてから所定の制限時間T以内に次のストローク(次画)の入力が開始されたか否かを判定する。“次のストロークの入力が開始される”とは、次のストロークの書き出し点を検出したことを意味する。制限時間T以内に次のストロークの入力が開始された場合、処理をステップS15に進める。制限時間T以内に次のストロークの入力が開始されなかった場合、処理をステップS19に進める。例えば、制限時間Tは、0.2秒〜1秒程度の任意の時間とすることができる。ユーザの入力方法に応じて何れかの時間の設定変更を許容してもよい。
(S15)文字判定部120は、変数nが“1”より大きいか否かを判定する。nが“1”より大きい場合、処理をステップS16に進める。nが“1”以下の場合、処理をステップS18に進める。
(S16)文字判定部120は、類似度Vnが類似度Vn-1以下、かつ、類似度Vn-1が閾値Q以上であるか否かを判定する。類似度Vnが類似度Vn-1以下、かつ、類似度Vn-1が閾値Q以上である場合、処理をステップS17に進める。類似度VnがVn-1以下、かつ、類似度Vn-1が閾値Q以上でない場合、処理をステップS18に進める。
(S17)文字判定部120は、文字コードCn-1を部品文字と特定する。文字判定部120は、記憶部110に記憶された組合せテーブル115に文字コードCn-1を登録する。文字判定部120は、文字コードCn-1を部品文字組合せ部130に出力して、処理を図11のステップS31に進める。
(S18)文字判定部120は、変数nをインクリメント(nの値に1を加算)する。そして、処理をステップS12に進める。
(S19)文字判定部120は、終了フラグを“true”とする。
(S20)文字判定部120は、文字コードCnを部品文字と特定する。文字判定部120は、組合せテーブル115に文字コードCnを登録する。
(S21)文字判定部120は、組合せテーブル115を参照して、取得した部品文字が1つであるか否かを判定する。取得した部品文字が1つである場合、処理をステップS22に進める。取得した部品文字が1つでない場合、文字判定部120は文字コードCnを部品文字組合せ部130に出力して、処理を図11のステップS31に進める。
(S22)文字判定部120は、1つだけ取得された文字コードCnの画像データを字型テーブル111から取得して、ディスプレイ105に出力する。あるいは、文字判定部120は、文字コードCnを他のソフトウェアや他の装置などに出力してもよい。例えば、ユーザは、ディスプレイ105に表示された文字画像を閲覧して、自身が入力を意図した文字であるかを確認できる。文字判定部120は、次の文字の認識に備えて各テーブルの内容をクリアする。そして、1文字の認識処理を終了する。
なお、前述のようにステップS13では、辞書テーブル112との照合結果のみを用いて、類似度Vnおよび文字コードCnを取得してもよい。
また、文字の1画目の入力は、横線“−”や縦線“|”のような場合が多く、文字“一”などとの類似度が比較的大きく算出されてしまう。このため、2画目で類似度が大きく低下すると、ステップS16の判定が真となり部品文字を誤検出してしまうことがある。そこで、ステップS15のように1画目の場合にステップS16の判定を行わないようにすることで、部品文字を誤検出する可能性を低減できる。
図11は、文字認識の処理例(続き)を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
(S31)部品文字組合せ部130は、字型テーブル111を参照して、ステップS17で取得した部品文字の文字コードCn-1に対応する画像データ(フォント画像)を取得する。または、部品文字組合せ部130は、ステップS20で取得した部品文字の文字コードCnに対応する画像データを取得する。
(S32)部品文字組合せ部130は、ステップS17またはステップS20で検出された部品文字について、記憶部110に記憶された入力履歴テーブル113を参照して、当該部品文字が入力された座標から、最小座標および最大座標を取得する。部品文字組合せ部130は、当該部品文字の最小座標および最大座標を、組合せテーブル115に登録する。
(S33)部品文字組合せ部130は、ステップS32で取得した最小座標および最大座標を対頂点(辺を共有しない2頂点)にもつ矩形を特定する。当該矩形の2辺はX軸に平行であり、他の2辺はY軸に平行である。部品文字組合せ部130は、ステップS31で取得した部品文字の画像データを当該矩形に当てはまるように変形することで、変形画像データを生成する。具体的には、部品文字の元の画像データのサイズが当該矩形と同一のサイズになるように、元の画像データのX軸方向およびY軸方向の長さを変更(伸縮)する。すなわち、変形画像データの縦横比は当該矩形の縦横比と同じ比率になる。なお、必ずしも完全に同一のサイズとしなくてもよく、矩形のサイズよりも縦横について所定の割合だけ大きめ、または、小さめというように所定の幅を許容してもよい。また、部品文字組合せ部130は、生成した変形画像データの頂点が、当該矩形の対応する頂点に一致するように、変形画像データの配置位置を決定する。部品文字組合せ部130は、当該部品文字の変形画像データを組合せテーブル115に登録する。
(S34)部品文字組合せ部130は、終了フラグが“true”であるか否かを判定する。終了フラグが“true”である場合、処理をステップS37に進める。終了フラグが“true”でない(すなわち、“false”のままである)場合、処理を文字判定部120に委譲してステップS35に進める。
(S35)文字判定部120は、類似度履歴テーブル114のエントリを削除する。
(S36)文字判定部120は、変数nに“1”を代入する。そして、処理を図10のステップS12に進める。すなわち、次の部品文字を検出するための処理に移る。
(S37)部品文字組合せ部130は、組合せテーブル115に記憶された各変形画像データをステップS33で決定した位置に配置して組合せることで、合成画像データを生成する。部品文字組合せ部130は、合成画像データを文字比較部140に出力する。
(S38)文字比較部140は、字型テーブル111を参照して、取得した合成画像データに対応する文字フォントの画像データ(フォント画像)を検索する。例えば、文字比較部140は、合成画像データに含まれる部首を検出し、字型テーブル111の画像データを当該部首によって絞り込んでもよい。文字比較部140は字型テーブル111に登録された各画像データと合成画像データとの間のドット位置やドットパターンの一致度を類似度として算出し、当該類似度が最大となる画像データを、合成画像データに対応する画像データと特定する。
(S39)文字比較部140は、ステップS38で特定した画像データを、ディスプレイ105に出力する。あるいは、文字比較部140は、当該画像データに対応する文字コードを字型テーブル111から取得し、他のソフトウェアや他の装置などに出力してもよい。例えば、ユーザは、ディスプレイ105に表示された文字画像を閲覧して、自身が入力を意図した文字であるかを確認できる。文字比較部140は、次の文字の認識に備えて類似度履歴テーブル114および組合せテーブル115の内容をクリアする。そして、1文字の認識処理を終了する。
なお、ステップS33をステップS37の直前に実行してもよい。その場合、ステップS32の次にステップS34を実行し、ステップS34の判定で“Yes”となった場合に、ステップS33を実行する。
次に、文字判定部120の処理の具体例を説明する。以下の説明では、文字“焔”の異体字を認識する場合を例示する。以下の説明では、入力されたストローク数をいう場合、当該異体字の全体に対するストローク数(以下の例では全部で12ストローク目まで存在する)として表記する。また、一例として類似度の閾値Qを“80”とする。
図12は、部品文字判定の具体例を示す図である。図12(A)は、3ストローク目の入力を受け付けた場合の類似度履歴テーブル114aを例示している。文字判定部120は、入力画数“3”、文字コード“706b”(文字“火”に対応)および類似度“68”というエントリを類似度履歴テーブル114aに登録する。ここで、類似度履歴テーブル114aでは、最新のエントリのみを表記し、他のエントリを“・・・”と略記している(以下、同様の表記とすることがある)。
図12(B)は、4ストローク目の入力を受け付けた場合の類似度履歴テーブル114bを例示している。文字判定部120は、入力画数“4”、文字コード“706b”(文字“火”に対応)および類似度“91”というエントリを類似度履歴テーブル114bに登録する。
図12(C)は、5ストローク目の入力を受け付けた場合の類似度履歴テーブル114cを例示している。文字判定部120は、入力画数“5”、文字コード“72ac”(文字“犬”に対応)および類似度“28”というエントリを類似度履歴テーブル114cに登録する。ここで、類似度履歴テーブル114b,114cを比較すると、類似度V5=28は類似度V4=91以下である。更に、類似度V4=91は閾値Q=80以上である。したがって、文字判定部120は、図12(B)のストロークまでを1つの部品文字として検出する。当該部品文字の文字コードは“706b”である。文字判定部120は、類似度履歴テーブル114cの登録内容をクリアする。
図13は、部品文字判定の具体例(続き)を示す図である。図13(A)は、図12(C)の6ストローク目(類似度履歴テーブル114cはクリアされるので管理上は1画目となる)の入力を受け付けた場合の類似度履歴テーブル114dを例示している。文字判定部120は、入力画数“1”、文字コード“30af”(文字“ク”に対応)および類似度“86”というエントリを類似度履歴テーブル114dに登録する。
図13(B)は、7ストローク目の入力を受け付けた場合の類似度履歴テーブル114eを例示している。文字判定部120は、入力画数“2”、文字コード“ff17”(文字“7”に対応)および類似度“39”というエントリを類似度履歴テーブル114eに登録する。ここで、類似度履歴テーブル114d,114eを比較すると、類似度V2=39は類似度V1=86以下である。更に、類似度V1=86は閾値Q=80以上である。したがって、文字判定部120は、図13(A)のストロークまでを1つの部品文字として検出する。当該部品文字の文字コードは“30af”である。文字判定部120は、類似度履歴テーブル114eの登録内容をクリアする。
図13(C)は、11ストローク目の入力を受け付けた場合の類似度履歴テーブル114fを例示している。文字判定部120は、入力画数“4”、文字コード“81fc”(文字“臼”に対応)および類似度“72”というエントリを類似度履歴テーブル114fに登録する。
図13(D)は、12ストローク目の入力を受け付けた場合の類似度履歴テーブル114gを例示している。文字判定部120は、入力画数“5”、文字コード“81fc”(文字“臼”に対応)および類似度“86”というエントリを類似度履歴テーブル114fに登録する。文字判定部120は、12ストローク目を検出後、所定時間T以内に次のストロークの入力が開始されなければ当該12ストローク目までを1文字として検出することになる。部品文字組合せ部130は、文字判定部120により検出された各部品文字の画像データを変形して組合せることで合成画像データを生成する。次に、部品文字組合せ部130による画像データの変形処理を例示する。
図14は、変形画像データの例を示す図である。部品文字組合せ部130は、字型テーブル111を参照して、部品文字(ここでは、文字“火”とする)の文字コード“706b”に対応する画像データG1を取得する。また、部品文字組合せ部130は、図12(B)の4ストローク目までの入力履歴から最小座標“(3,25)”と最大座標“(42,78)”を取得する。なお、図14の例では、入力領域RのX軸の最大値を“100”、Y軸の最大値を“100”と想定している。
部品文字組合せ部130は、最小座標と最大座標とを対頂点にもつ矩形Hを特定する。矩形Hの横方向の2つの辺はX軸に平行である。矩形Hの縦方向の2つの辺はY軸に平行である。そして、画像データG1を矩形Hに当てはめて配置できるように、画像データG1を変形する。具体的には、画像データG1のX軸と平行な方向の長さが矩形Hの横方向の辺の長さ(ここでは“39”)と同じ長さになるように伸縮する。また、画像データG1のY軸と平行な方向の長さが矩形Hの縦方向の長さ(ここでは“53”)と同じ長さになるように伸縮する。これにより、変形画像データG11を生成する。
すなわち、変形画像データG11の縦横比を矩形Hの縦横比に一致させるように画像データG1を変形しているといえる。例えば、矩形Hの縦横比が縦:横=“2:1”であれば、画像データG1の縦横比も“2:1”とする。ただし、変形後の縦横比を所定の割合の範囲内で調整してもよい。例えば、矩形Hの縦横比“2:1”に対して、画像データG1の縦横比を“2.2:0.9”のように所定の割合の範囲で変えてもよい。
このようにして、部品文字組合せ部130は画像データG1から変形画像データG11を生成する。また、部品文字組合せ部130は、入力領域Rのうち矩形Hの各頂点と、変形画像データG11の各頂点(縦横比を調整する場合は、矩形Hの頂点のうち最小座標に対応する頂点と変形画像データG11の対応する頂点)とが重なるように配置すると決定する。
図15は、変形画像データの合成例を示す図である。図15(A)は部品文字“ク”に対する変形画像データG21を例示している。図15(B)は部品文字“臼”に対する変形画像データG31を例示している。部品文字組合せ部130は、図14で説明した方法と同様にして、変形画像データG21,G31を生成できる。
図15(C)は、変形画像データG11,G21,G31を合成した合成画像データGXを例示している。部品文字組合せ部130は、変形画像データG11,G21,G31それぞれを、決定した位置に配置して1つの画像データとすることで、合成画像データGXを得る。変形画像データG11,G21,G31は、変形画像データG11,G21,G31の各頂点が各部品文字の入力領域を示す矩形の各頂点と一致するように配置される。よって、配置された変形画像データG11,G21,G31それぞれの面積は、対応する各矩形の面積に一致する。したがって、変形画像データG11,G21,G31の面積比を、各部品文字が入力された領域を示す各矩形の面積比と一致するように、画像データG1,G2,G3を変形しているといえる。例えば、各部品文字が入力された領域を示す各矩形の面積比が“4:3:6”であれば、変形画像データG11,G21,G31を配置する領域の面積比も“4:3:6”とする。
ただし、当該面積比を各矩形の面積比に完全に一致させなくてもよく、多少の相違を許容してもよい。例えば、部品文字が入力された領域を示す各矩形の面積比が“4:3:6”であれば、変形画像データG11,G21,G31を配置する領域の面積比を“3.8:3.1:6.3”のように所定の割合の範囲で変えてもよい。部品文字組合せ部130は、合成画像データGXを文字比較部140に出力する。
図16は、最終結果の出力例を示す図である。文字比較部140は、合成画像データGXと字型テーブル111に登録された各文字の画像データとを照合する。そして、最も一致する画像データG7を、ユーザにより入力された文字と推定する。文字比較部140は、ディスプレイ105に画像データG7を表示させてユーザによる確認を促してもよい。文字比較部140は、字型テーブル111から画像データG7に対応する文字コードを取得して、クライアント装置100上で動作する他のソフトウェアに出力してもよい。また、文字比較部140は、画像データG7に対応する文字コード“7130”を他の装置に出力してもよい。
このように、クライアント装置100は、1文字に含まれる複数の部品文字を検出し、部品文字を合成した合成画像データGXを生成する。そして、合成画像データGXを字型テーブル111の各文字の画像データと照合し、最終的な文字認識結果を得る。このため、辞書テーブル112に未登録の文字であっても、精度良く認識できる。例えば、文字認識を行うためには、認識対象とする文字ごとに、サンプルとなるストローク情報を予め用意することになる。
しかし、文字の数は膨大であり、全ての文字について手書き入力に対する文字認識用のストローク情報を予め網羅するのは容易でない。一例を挙げれば、異体字は登記の際に利用され得る。異体字によってはごく少数(例えば、一か所)の登記所でしか使用されていないものも存在する。例えば、数万という単位で存在する全ての異体字に対して10〜30人程度の被験者からストロークのサンプルを採取するのは困難であるし、登録したとしても作業コストに比べて有用性は低い。このため、異体字や外字など使用頻度の少ない文字については、辞書テーブル112にストローク情報が登録されないことがある。
また、字型テーブル111には、ユーザが自身で作成した文字を任意に登録することもできる。そのような文字を想定してサンプルとなるストローク情報を予め用意するのは困難である。
そこで、辞書テーブル112に未登録の文字を精度良く認識する方法が問題となる。例えば、手書き入力された線の組合せを示す画像データを、字型テーブル111に登録された各文字の画像データと照合することも考えられる。しかし、手書き入力された線は文字としての形が崩れていることがある。したがって、手書き入力された線の組合せを示す画像データを字型テーブル111に登録された各文字の画像データと照合すると、文字認識の精度が低下し得る。
これに対し、クライアント装置100は、1文字を複数の部品文字の組合せとして扱う。すなわち、ユーザが1文字の入力を意図して入力領域Rに手書き入力した文字が、クライアント装置100により複数の部品文字の組合せとして検出される。クライアント装置100は、辞書テーブル112に基づいて認識した各部品文字の画像データを組合せることで合成画像データGXを得る。このとき、ユーザによって入力された位置を示す情報に基づいて各部品文字の画像データを変形して組合せる。このため、編や旁などの部首として入力された部分を字型テーブル111に登録された画像データを用いて再現して、合成画像データGXに適切に反映できる。よって、手書き入力された線の組合せをそのまま字型テーブル111の画像データと照合するよりも、精度良く認識を行える。
また、手書き文字の認識用のストローク情報が用意されていない異体字や外字などであっても、既存のストローク情報を用いて、精度の良い文字認識を容易に行える。更に、使用頻度の低い異体字や外字などに対して個別のストローク情報を用意しなくてもよい。よって、サンプルとなるストローク情報を収集および登録するための作業を省力化できる。また、辞書テーブル112に登録する文字を軽減でき、ストローク情報の増大を抑えることができる。
なお、前述のように、第1の実施の形態の情報処理は、演算部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、光ディスク、メモリ装置およびメモリカードなど)に記録できる。
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータなどのクライアント装置は、例えば、記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAMやHDDなどの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
1 情報処理装置
1a 記憶部
1b 演算部
2 字型データ
3 辞書データ
4 入力データ
4a,4b,4c 文字
5,5a,5b,5c,X4 画像データ

Claims (11)

  1. 手書きの入力に応じて、入力された複数の文字それぞれの入力位置を示す第1の情報と前記複数の文字に対応する複数の第1の文字コードとを検出し、
    文字コードと文字の画像データとを対応付けた第2の情報を参照して前記複数の第1の文字コードに対応する複数の第1の画像データを取得し、前記第1の情報に基づいて前記複数の第1の画像データを組合せることで第2の画像データを生成し、
    前記第2の情報に含まれる文字の画像データと前記第2の画像データとの照合により、前記第2の画像データに対応する文字の第3の画像データを前記第2の情報の中から特定し、前記第3の画像データ、または、前記第3の画像データに対応する第2の文字コードを出力する、
    処理をコンピュータに実行させるプログラム。
  2. 前記生成では、前記第1の情報に基づいて前記複数の第1の画像データを変形し、
    変形後の前記複数の第1の画像データを組合せることで前記第2の画像データを生成する、請求項1記載のプログラム。
  3. 前記変形では、前記第1の情報に基づいて、前記複数の文字が入力された領域を示す複数の矩形を特定し、変形後の前記複数の第1の画像データそれぞれの縦横比を矩形ごとの縦横比に一致させる、請求項2記載のプログラム。
  4. 前記変形では、変形後の前記複数の第1の画像データそれぞれの面積比を前記複数の矩形それぞれの面積比に一致させる、請求項3記載のプログラム。
  5. 前記生成では、前記第1の情報に基づいて前記複数の文字の入力位置の相対的な位置関係を特定し、前記位置関係を維持して前記複数の第1の画像データを組合せる、請求項1乃至4の何れか1項に記載のプログラム。
  6. 前記検出では、手書きによる1ストロークの入力を受け付けるたびに、文字コードと基準のストロークを示す情報との対応が複数登録された辞書データを参照して、入力されたストロークのうち何れの文字を形成するかが未確定のストロークの集合と前記辞書データに含まれる基準のストロークを示す情報とを照合し、照合の結果に基づいて前記複数の第1の文字コードそれぞれを順次検出する、請求項1乃至5の何れか1項に記載のプログラム。
  7. 前記照合では、入力されたストロークのうち何れの文字を形成するかが未確定のストロークの集合と前記辞書データに含まれる複数の基準のストロークとの類似度を算出し、類似度が最大となる基準のストロークに対応する文字コードを取得し、
    今回の最大の類似度が前回の最大の類似度以下であり、かつ、前回の最大の類似度が閾値以上であれば、前記未確定のストロークの集合のうち前回までに入力されたストロークの集合に対して前回取得された文字コードを確定する、
    請求項6記載のプログラム。
  8. 前記照合では、ストロークの入力を受け付けた後、制限時間内に次のストロークの入力が開始されない場合、前記未確定のストロークの集合に対して最後に取得された文字コードを確定することで、前記複数の第1の文字コードのうちの最後の文字コードを検出する、請求項7記載のプログラム。
  9. 前記第2の情報は、前記コンピュータが予め保持する文字フォントの情報、または、当該文字フォントの情報に基づいて作成された情報である、請求項1乃至8の何れか1項に記載のプログラム。
  10. 文字コードと文字の画像データとを対応付けた第1の情報を記憶する記憶部と、
    手書きの入力に応じて、入力された複数の文字それぞれの入力位置を示す第2の情報と前記複数の文字に対応する複数の第1の文字コードとを検出し、
    前記第1の情報を参照して前記複数の第1の文字コードに対応する複数の第1の画像データを取得し、前記第2の情報に基づいて前記複数の第1の画像データを組合せることで第2の画像データを生成し、
    前記第1の情報に含まれる文字の画像データと前記第2の画像データとの照合により、前記第2の画像データに対応する文字の第3の画像データを前記第2の情報の中から特定し、前記第3の画像データ、または、前記第3の画像データに対応する第2の文字コードを出力する、演算部と、
    を有する情報処理装置。
  11. 情報処理装置が実行する文字認識方法であって、
    手書きの入力に応じて、入力された複数の文字それぞれの入力位置を示す第1の情報と前記複数の文字に対応する複数の第1の文字コードとを検出し、
    文字コードと文字の画像データとを対応付けた第2の情報を参照して前記複数の第1の文字コードに対応する複数の第1の画像データを取得し、前記第1の情報に基づいて前記複数の第1の画像データを組合せることで第2の画像データを生成し、
    前記第2の情報に含まれる文字の画像データと前記第2の画像データとの照合により、前記第2の画像データに対応する文字の第3の画像データを前記第2の情報の中から特定し、前記第3の画像データ、または、前記第3の画像データに対応する第2の文字コードを出力する、
    文字認識方法。
JP2013104134A 2013-05-16 2013-05-16 プログラム、情報処理装置および文字認識方法 Active JP6229303B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013104134A JP6229303B2 (ja) 2013-05-16 2013-05-16 プログラム、情報処理装置および文字認識方法
US14/256,296 US9298365B2 (en) 2013-05-16 2014-04-18 Storage medium, information processing apparatus and character recognition method
KR1020140050788A KR101588520B1 (ko) 2013-05-16 2014-04-28 기억 매체, 정보 처리 장치 및 문자 인식 방법
CN201410195310.3A CN104166474B (zh) 2013-05-16 2014-05-09 信息处理装置和字符识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013104134A JP6229303B2 (ja) 2013-05-16 2013-05-16 プログラム、情報処理装置および文字認識方法

Publications (2)

Publication Number Publication Date
JP2014225135A JP2014225135A (ja) 2014-12-04
JP6229303B2 true JP6229303B2 (ja) 2017-11-15

Family

ID=51895401

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013104134A Active JP6229303B2 (ja) 2013-05-16 2013-05-16 プログラム、情報処理装置および文字認識方法

Country Status (4)

Country Link
US (1) US9298365B2 (ja)
JP (1) JP6229303B2 (ja)
KR (1) KR101588520B1 (ja)
CN (1) CN104166474B (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD705787S1 (en) * 2012-06-13 2014-05-27 Microsoft Corporation Display screen with animated graphical user interface
JP5942835B2 (ja) * 2012-12-20 2016-06-29 富士ゼロックス株式会社 手書き情報処理装置及びプログラム
US9465985B2 (en) 2013-06-09 2016-10-11 Apple Inc. Managing real-time handwriting recognition
US9495620B2 (en) 2013-06-09 2016-11-15 Apple Inc. Multi-script handwriting recognition using a universal recognizer
US20140361983A1 (en) * 2013-06-09 2014-12-11 Apple Inc. Real-time stroke-order and stroke-direction independent handwriting recognition
US10725650B2 (en) * 2014-03-17 2020-07-28 Kabushiki Kaisha Kawai Gakki Seisakusho Handwritten music sign recognition device and program
KR20160062565A (ko) * 2014-11-25 2016-06-02 삼성전자주식회사 디바이스 및 디바이스의 필기 컨텐트 제공 방법
CN104635926B (zh) * 2015-01-22 2017-09-29 百度在线网络技术(北京)有限公司 一种用于在计算机设备中收录信息的方法和装置
DK179329B1 (en) 2016-06-12 2018-05-07 Apple Inc Handwriting keyboard for monitors
CN106469132A (zh) * 2016-08-31 2017-03-01 深圳天珑无线科技有限公司 数据处理的方法及装置
JP2020064373A (ja) * 2018-10-15 2020-04-23 富士通株式会社 コード情報読取装置、方法、及びプログラム
KR102257719B1 (ko) * 2018-11-21 2021-05-28 오세호 작성프로그램 및 이를 탑재한 문자 입력 장치
US10748031B1 (en) 2019-05-22 2020-08-18 Read-Ink Corporation Handwriting recognition systems and methods
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
CN115701298A (zh) * 2021-05-28 2023-02-07 京东方科技集团股份有限公司 一种交互方法、电子设备及计算机存储介质
KR20230118429A (ko) * 2022-02-04 2023-08-11 삼성전자주식회사 사용자 입력에 대한 인식 성능 개선 방법 및 전자 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02105983A (ja) * 1988-10-14 1990-04-18 Canon Inc 文字認識装置
JP2989072B2 (ja) * 1992-06-24 1999-12-13 シャープ株式会社 手書き文字入力装置
JPH07121660A (ja) 1993-10-25 1995-05-12 Hitachi Ltd 手書き文字認識装置
JPH07210629A (ja) * 1994-01-13 1995-08-11 Hitachi Ltd 文字認識方式
JPH08320866A (ja) * 1995-05-24 1996-12-03 Toshiba Corp 文書作成装置および文書作成方法
JPH1055409A (ja) * 1996-08-08 1998-02-24 Sharp Corp 手書き入力情報処理装置
JPH10289290A (ja) * 1997-04-11 1998-10-27 Hitachi Ltd 情報処理装置
JPH11134437A (ja) 1997-10-31 1999-05-21 Sharp Corp 手書き文字認識装置
CN1253781C (zh) * 2004-01-20 2006-04-26 华南理工大学 汉字电子化中的拼部组字方法
CN100585623C (zh) * 2007-03-30 2010-01-27 无敌科技(西安)有限公司 一种手写输入字符辨识方法及系统
JP5123588B2 (ja) * 2007-07-17 2013-01-23 キヤノン株式会社 表示制御装置および表示制御方法
JP5487208B2 (ja) * 2009-08-27 2014-05-07 株式会社東芝 情報検索装置
JP5505106B2 (ja) 2010-06-11 2014-05-28 富士通株式会社 手書き文字分離装置、手書き文字分離方法及び手書き文字分離プログラム
CN103186511B (zh) * 2011-12-31 2017-03-08 北京大学 汉字造字方法和设备、构造字体库的方法

Also Published As

Publication number Publication date
US20140340333A1 (en) 2014-11-20
CN104166474B (zh) 2017-06-23
JP2014225135A (ja) 2014-12-04
KR101588520B1 (ko) 2016-01-25
US9298365B2 (en) 2016-03-29
KR20140135612A (ko) 2014-11-26
CN104166474A (zh) 2014-11-26

Similar Documents

Publication Publication Date Title
JP6229303B2 (ja) プログラム、情報処理装置および文字認識方法
JP5349645B1 (ja) 電子機器および手書き文書処理方法
US8423916B2 (en) Information processing apparatus, processing method thereof, and computer-readable storage medium
JP2007317022A (ja) 手書文字処理装置及び手書文字処理方法
JP2007109118A (ja) 入力指示処理装置および入力指示処理プログラム
JP5294818B2 (ja) 情報処理装置及び情報処理方法
JP6464504B6 (ja) 電子機器、処理方法およびプログラム
JP2015162088A (ja) 電子機器、方法及びプログラム
WO2014147712A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP7073886B2 (ja) 情報処理システム、情報処理方法及びプログラム
US8750571B2 (en) Methods of object search and recognition
US9384304B2 (en) Document search apparatus, document search method, and program product
JP2007272473A (ja) 文字認識装置、方法およびプログラム
JP4346814B2 (ja) 情報処理装置及びその方法、コンピュータ可読メモリ、プログラム
JP6223687B2 (ja) 電子機器および手書き文書検索方法
JP5735126B2 (ja) システムおよび筆跡検索方法
JP5330576B1 (ja) 情報処理装置および筆跡検索方法
JP5188290B2 (ja) アノテーション装置、アノテーション方法およびプログラム
JP2019204363A (ja) 帳票処理装置及び帳票処理方法
JP5666011B1 (ja) 方法及び電子機器
JP2010262578A (ja) 帳票辞書生成装置、帳票識別装置、帳票辞書生成方法、及びプログラム
US20150253878A1 (en) Electronic device and method
JP5911981B2 (ja) 文書検索装置、方法およびプログラム
JPH10260965A (ja) 情報処理装置
JPH09326011A (ja) 手書き文字認識装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170919

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171002

R150 Certificate of patent or registration of utility model

Ref document number: 6229303

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150