JP6170860B2 - 文字認識装置及び識別関数生成方法 - Google Patents

文字認識装置及び識別関数生成方法 Download PDF

Info

Publication number
JP6170860B2
JP6170860B2 JP2014062641A JP2014062641A JP6170860B2 JP 6170860 B2 JP6170860 B2 JP 6170860B2 JP 2014062641 A JP2014062641 A JP 2014062641A JP 2014062641 A JP2014062641 A JP 2014062641A JP 6170860 B2 JP6170860 B2 JP 6170860B2
Authority
JP
Japan
Prior art keywords
function
character
sample
vector
value
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
JP2014062641A
Other languages
English (en)
Other versions
JP2015185033A (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.)
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Information and Telecommunication Engineering 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 Hitachi Information and Telecommunication Engineering Ltd filed Critical Hitachi Information and Telecommunication Engineering Ltd
Priority to JP2014062641A priority Critical patent/JP6170860B2/ja
Priority to CN201510110197.9A priority patent/CN104951781B/zh
Publication of JP2015185033A publication Critical patent/JP2015185033A/ja
Application granted granted Critical
Publication of JP6170860B2 publication Critical patent/JP6170860B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、光学的文字認識技術に関し、特に、特徴空間上における文字の識別技術に関する。
本技術分野の背景技術として、特開2010−39778号公報(特許文献1)がある。特許文献1には、「辞書生成用特徴パターン群を用いて、多項式ニューラルネットワークにより二次関数を学習し、二次関数の主要成分を保存する部分空間を選択することにより、特徴空間の次元を削減する。初期係数設定ステップ、係数修正ステップでは、二次関数を識別関数として用いた場合の損失関数の値が小さくなるように、勾配降下法又は確率的勾配降下法により係数を修正する。基底ベクトル導出ステップは、二次関数の二次の項の二次形式の行列の固有ベクトルと、一次の項の係数ベクトルを導出する。次に、射影行列導出ステップは、固有ベクトルと係数ベクトルとの中から主成分となる1つ以上のベクトルを選択し、選択されたベクトルによって生成される部分空間を新たな特徴空間として生成する。」と記載されている。
特開2010−39778号公報
文字認識における識別関数として、識別精度と識別速度の双方で高いパフォーマンスをもつ二次関数が広く用いられる。二次関数には、放物型、双曲型、楕円型の3つの型がある。
従来技術による識別関数の生成方法のうち、誤読にかかる損失関数を定義し、損失関数の値が小さくなるように係数を学習サンプルに基づいて繰り返し修正することで、識別関数を作成する方法がある(例えば特許文献1参照)。この方法では、一般的には、識別関数は楕円型とならない。
この様子を図15に模式的に示した。等高線で示したものは、文字種“X”の識別関数の等高線である。文字種“X”とその他の文字種を分けるように等高線ができており、文字種“X”を示す丸の図形がある側が識別関数の値が大きい側、反対側が識別関数の値が小さい側である。この方法では、異なる文字同士を分けるように識別関数が生成されるが、図15に示すように、高い値をとる領域に非文字が位置する場合がある。したがって、識別精度は高いが、非文字棄却精度は低いという問題がある。
従来技術による識別関数の別の生成方法として、各字種の文字の分布にガウス分布を仮定して、ガウス分布の分布密度に基づいて識別関数を定める方法がある。この方法では、図17のように、識別関数が楕円型となる。この場合には、損失関数などを小さくするように直接係数を調整する方法ではないため、識別精度は低いが、棄却精度は高い。
そこで、識別関数を楕円型に維持しつつ、損失関数の値が小さくなるように係数を修正することで、識別関数を作成し、高い正読率と高い棄却率を実現することが課題である。
本発明の代表的な一例を示せば次の通りである。すなわち、プロセッサ及び記憶装置を有する文字認識装置であって、前記記憶装置は、複数の文字種の複数の学習用文字画像を保持し、前記プロセッサは、前記各学習用文字画像を所定の次元数のベクトルに変換する特徴抽出処理と、前記文字種ごとに、前記所定の次元数のベクトル空間上の楕円型二次識別関数を定義する二次関数初期設定処理と、前記楕円型二次識別関数を用いて前記学習用文字画像を識別したときの誤差の程度を測る損失関数を定義する損失関数定義処理と、前記楕円型二次識別関数を用いて、前記複数の学習用文字画像から選択されたサンプルを識別したときの前記損失関数の値が小さくなるように、前記サンプルのベクトルの位置を移動させるための修正ベクトルを計算するサンプル位置修正幅計算処理と、前記修正ベクトルに基づいて、前記楕円型二次識別関数のパラメータを、前記楕円型二次識別関数の等高線を楕円形に維持したまま、前記損失関数の値が小さくなるように修正する係数修正処理と、前記修正されたパラメータを有する前記楕円型二次識別関数を、入力された文字画像の識別及び棄却に使用する識別関数として前記記憶装置に保存する保存処理と、を実行することを特徴とする。
本発明の一態様によれば、文字認識において、高い正読率と高い非文字棄却率を実現できる。
本発明の実施例の文字認識装置の構成の一例を示すブロック図である。 本発明の実施例の文字認識装置による文書電子化の処理の流れの典型的な例を示すフローチャートである。 本発明の実施例の文字認識装置による文書電子化の処理の流れの具体例を示す説明図である。 本発明の実施例の文字認識装置による文字切出処理の説明図である。 本発明の実施例の文字認識装置による文字識別の結果の説明図である。 本発明の実施例の文字認識装置による認識結果の候補のネットワークの説明図である。 本発明の実施例の文字認識装置による特徴抽出の処理の例を示す説明図である。 本発明の実施例の文字認識装置による勾配特徴抽出方法の第1の説明図である。 本発明の実施例の文字認識装置による勾配特徴抽出方法の第2の説明図である。 本発明の実施例の文字認識装置による文字識別用の方式の説明図である。 本発明の実施例の文字認識装置が保持する学習用文字画像データベースの例を示す説明図である。 本発明の実施例の文字認識装置によって棄却される文字の第1の例を示す説明図である。 本発明の実施例の文字認識装置によって棄却される文字の第2の例を示す説明図である。 従来の識別関数の生成方法の第1の例の説明図である。 従来の方法によって生成された識別関数の第1の例の説明図である。 従来の識別関数の生成方法の第2の例の説明図である。 従来の方法によって生成された識別関数の第2の例の説明図である。 本発明の実施例の文字認識装置による識別関数の作成方法を示すフローチャートである。 本発明の実施例の文字認識装置による識別関数のパラメータの修正を模式的に示した説明図である。 本発明の実施例の文字認識装置による楕円型の識別関数の中心の移動の説明図である。 本発明の実施例の文字認識装置による楕円型の識別関数の中心以外のパラメータの変更の説明図である。
以下、本発明の文字認識装置の実施例について、図表を参照しながら説明する。本実施例の文字認識装置は、例えば紙文書をスキャナ等によって読み取ることで取得された入力文書画像中の文字を検知、認識し、文字をコード化することよって、入力文書を電子化する装置である。入力文書には、一般文書の他に、例えば、帳票、明細書などがある。
図1は、本発明の実施例の文字認識装置の構成の一例を示すブロック図である。
本実施例の文字認識装置201は、例えば、押印認識および帳票認識を行うものであり、入力装置202、表示装置203、イメージ取得装置204、通信装置205、演算装置(CPU)206、外部記憶装置207を備える。外部記憶装置207は、学習用文字画像データベース213及び文字識別用辞書214を含む。
入力装置202は、例えば、コマンド等を入力するためのキーボードおよびマウス等である。入力装置202は、演算装置(CPU)206で実行されるプログラムの制御や、その他、接続機器の制御のために実行されるコマンド等を入力するための装置である。
表示装置203は、処理内容を適宜表示するディスプレイ等の装置である。
イメージ取得装置204は、スキャナなどのイメージ取得用の装置である。取得したイメージは、外部記憶装置207等に記憶してもよい。
通信装置205は、PCまたはサーバ等の外部機器(図示省略)との間のデータのやりとりを行うために用いる。通信装置205は、外部機器からのユーザによる実行コマンドの取得や、画像やテキストなどの情報の外部機器からの取得等の目的に用いられる。また、通信装置205は、文字認識装置201での処理内容を外部機器に送信する等の目的にも用いられる。
演算装置(CPU)206は、文書画像中の文字認識に用いる文字識別用辞書214の生成などの処理を実行する演算装置である。
外部記憶装置207は、ハードディスクドライブ(HDD)およびメモリ等の外部記憶装置である。外部記憶装置207には、学習用文字画像データベース213および文字識別用辞書214などの各種データが保存されている。また、外部記憶装置207は、演算装置(CPU)206によって実行される処理の途中で生成されるデータ等を一時的に記憶しておくためにも用いられる。
入力装置202、表示装置203、イメージ取得装置204および通信装置205はなくてもよい。入力装置202が無い場合には、文字認識装置201は、通信装置205を用いて外部機器から指示されたときに処理を開始してもよいし、または、時刻指定等により自動的に処理を開始してもよい。表示装置203が無い場合には、処理結果は通信装置205を用いて外部機器に送信されるか、外部記憶装置207に記憶される。
処理を実行するモジュールの出力と入力は、外部記憶装置207を介して行ってもよい。すなわち、例えば演算装置206によって実現されるある処理部(図示省略、ここでは処理部1と記載する)が、処理結果を演算装置206によって実現される別の処理部(図示省略、ここでは処理部2と記載する)に出力し、処理部2は、その処理結果を入力として受け取る場合、実際には、処理部1が処理結果を外部記憶装置207に出力し記憶しておき、処理部2は、外部記憶装置207に記憶されている処理部1の出力結果を入力として取得してもよい。
次に、本実施例における文字認識装置201によって実施される処理の説明に移る。
以下では、まず、本発明の実施例の文字認識装置201が実行する文書電子化処理を、図2等を用いて説明する。その後、本実施例の特徴である、文書電子化に使用される文字識別用辞書214の生成処理を、図18等を用いて説明する。
まず、本発明の実施例の文字認識装置が実行する文書電子化処理について説明する。
図2は、本発明の実施例の文字認識装置201による文書電子化の処理の流れの典型的な例を示すフローチャートである。また、図3は、本発明の実施例の文字認識装置201による文書電子化の処理の流れの具体例を示す説明図である。
文書の画像化(スキャン)501では、文字認識装置201のCPU206は、イメージ取得装置204(例えばスキャナ等)により文書を読込み、画像化する。このときに、背景印刷がカラーで印字されている場合などは、CPU206は、特定の色の印字を光学的に除去するカラードロップアウト等の処理を行う場合もある。入力文書は、一般文書、帳票類、また、初めから文字認識装置で処理する目的で作成されているマークシート用紙等がある。
前処理502では、CPU206は、文書画像のカラー画像の二値化(白黒化)、ノイズ除去、及び、背景印刷などの不要部分の除去等の処理を行う。前処理後の二値画像は、例えば、図3の帳票画像601のようになる。
レイアウト解析503で、CPU206は、二値画像のレイアウト解析を行い、図表の位置、段落構造、および項目とデータの位置などを認識する。項目とデータの位置については、CPU206は、例えば、帳票画像601の場合には、表構造の関係から、「支払金額」が項目名で、その下の「7,890,123」が記載されている枠がデータ枠である、などと解析する。論文および技術報告書の場合などには、文書の構造と位置関係から、タイトル、著者、要旨、ページ番号などが書かれている位置を認識するなどのメタデータ抽出を行う場合もある。
文字列抽出504では、CPU206は、文書画像中から文字列単位の画像を抽出する。CPU206は、一般文書の場合には1行分の画像、表の場合には枠内の画像、など文字列単位の画像を抽出する。例えば、図3の文字列602のように、表の「7,890,123」が記載された枠内の画像を抽出する。
文字切出505、文字認識512、認識結果選定509、の一連の処理では、抽出した各文字列画像中の文字を認識する。ここでの処理は、図3の文字切出603のように、文字列画像を文字単位に分割して、各々の文字画像中の文字を認識することにより、最終的に文字コード等の計算機が扱えるコード604に変換する。
上記の文字列抽出504から後の、文字切出505から認識結果選定509までの処理を、例を挙げて説明する。
図4は、本発明の実施例の文字認識装置201による文字切出処理の説明図である。
まず、文字切出505について説明する。例えば、文字列抽出504によって、図4の画像1001のような文字列画像が得られたとする。まず、文字切出505の処理では、CPU206は、文字線同士が交差する点や、文字線が途切れた点などを基に、切断候補点を作成する。図4の画像1002が、切断候補点による分割を示す。この例では、文字列画像が4つの画像に分割されている。この各分割画像と、隣接した複数個の画像の合成が、文字画像候補となる。図4の画像1003の例では、左から1つ目と2つ目の画像を合成した画像、及び、左から2つ目と3つ目の画像を合成した画像も、それぞれ文字画像候補とすることによって、6つの文字画像候補を得ている。左端の点を始点とし、右端の点を終点とする、左から右に至る各ルート上の文字画像が、画像1001の文字列の切出し候補となる。
図5は、本発明の実施例の文字認識装置201による文字識別の結果の説明図である。
次に、文字認識512では、CPU206は、候補となっている個々の文字画像中の文字を認識する。ここでは、例えば、図5のように各文字画像701に対する正解候補文字と、その正解候補文字に対する類似度(尤度、信頼度)を得る。図5の例では、各文字画像について複数の正解候補文字が得られる。それらのうち最も類似度が高いものが1位候補文字種702、その類似度が1位候補文字類似度703、次に類似度が高いものが2位候補文字種704、その類似度が2位候補文字類似度705であり、同様にさらに下位のn位候補文字種が得られてもよい。
次に、CPU206は、文字認識512で得た正解候補文字と類似度を基に、認識結果の候補となるネットワークを作成する。
図6は、本発明の実施例の文字認識装置201による認識結果の候補のネットワークの説明図である。
具体的には、図6のネットワーク1101は、一例として、図4に示すように切り出された文字画像中の文字を認識した結果を示す。それぞれの文字画像の右上に表示された文字が正解候補文字であり、一つの文字画像について複数の正解候補文字(例えば1位候補文字種及び2位候補文字種)が得られてもよい。
ネットワーク1101から文字画像を除いたものが、ネットワーク1102である。左端の点を始点とし、右端の点を終点とする、左から右に至る各ルートが認識結果候補となる。また、ここでは、CPU206は、文字画像の認識結果の信頼性が低いと判断した場合、棄却処理を行い、認識結果に対して棄却フラグを立てるなどして、認識結果の信頼性が低いことを後の処理、またはユーザに知らせる。
この文字認識512の内部の処理について説明する。ここでは、CPU206は、個々の文字画像中に描かれている文字を認識する(文字識別506)。また、認識結果の棄却処理も行う(非文字棄却507および曖昧文字棄却508)。
まず、文字識別506について説明する。ここでは、まず、CPU206は、文字画像をベクトル値に変換する特徴抽出処理を行う。ベクトル値の次元数をNとすると、特徴抽出処理によって、1つの文字画像はN次元ベクトルとして表現される。文字画像をベクトル値として表現することにより、文字画像の分布を統計的に扱うことが可能となる。
図7は、本発明の実施例の文字認識装置201による特徴抽出の処理の例を示す説明図である。
まず、CPU206は、文字画像の正規化を行う。一般に入力文字画像は、サイズが異なる。そのため、正規化では、文字画像のサイズを揃えることによって、後の処理で統一的に扱えるようにする。また、入力文字画像は、筆記具、筆記者、フォントなどの違いによって同じ字種の文字であっても字形が大きく異なる場合がある。このことは、認識精度低下の原因となる。そこで、正規化処理では、入力文字画像のサイズの変形と字形の変形によって、サイズを統一し、同一字種間での字形のばらつきを低減する。
図7の画像1401が入力文字画像の例であり、画像1402は入力文字画像を64×64画素のサイズに変形した正規化画像である。正規化処理に関しては、様々な方法があり、例えば、Mohammed Cheriet, Nawwaf Kharma, Cheng lin Liu, and Ching Suen. Character Recognition Systems: A Guide for Students and Practitioners. Wiley-Interscience, 2007(以下、単に文献「Character Recognition Systems」とも記載する)に詳しく記載されている。
次に、CPU206は、正規化によって生成された正規化画像をベクトル値に変換する特徴抽出を行う。特徴抽出にも様々な方法があり、例えば、上記の文献「Character Recognition Systems」に詳しく記載されている。ここでは、最も簡単な画素特徴抽出の例を用いて説明する。画素特徴抽出では、正規化画像を小領域に分割する。図7の例では、正規化画像1402を64個の小領域に分割している。分割の様子を画像1403に示した。次に、各小領域の黒画素の個数を要素とするベクトル値に変換する。小領域が64個あるため、ベクトル1404のように64次元のベクトル値が生成される。
広く用いられている特徴抽出の方法のもう一つ例として、勾配特徴抽出方法について説明する。
図8及び図9は、それぞれ、本発明の実施例の文字認識装置201による勾配特徴抽出方法の第1の説明図及び第2の説明図である。
ここでは、正規化によって生成される正規化画像には、1画素分の白縁をつけている(すなわち正規化画像の最外周の全ての画素の画素値が0である)とする。また、画素点(i、j)の正規化画像の画素値をf(i、j)とおく。このとき、CPU206は、正規化画像の各画素点(i、j)において、勾配ベクトルg=(gx、gy)を以下のように計算する。これは、図8に示すフィルタをかけることに相当する。
gx(i、j)=[f(i+1、j+1)+2f(i、j+1)+f(i−1、j+1)−f(i+1、j−1)−2f(i、j−1)−f(i−1、j−1)]/8
gy(i、j)=[f(i+1、j+1)+2f(i+1、j)+f(i+1、j−1)−f(i−1、j+1)−2f(i−1、j)−f(i−1、j−1)]/8
ただし、上記の式において、画素点(i、j)が画像の縁にある場合には、その周囲の画素点が画像の領域外となる場合がある。そのときは、画像外の領域におけるfの値は0と考えて、上記の式を計算する。これによって、各画素点(i、j)において、画素値の勾配ベクトルg=(gx、gy)が得られる。
次に、CPU206は、ベクトルg(i、j)を図9の参照番号2001に示す45度間隔の8方向g0(i、j)、g1(i、j)、…、g7(i、j)のうち、g(i、j)の方向に近接する2つの方向に分解する。但し、g(i、j)の方向が8方向のいずれかに完全に一致する場合には、分解の必要はなく、仮に方向0に一致した場合には、g0(i、j)=ベクトルg(i、j)の長さ、とし、他の方向については、g1(i、j)=…=g7(i、j)=0とおく。
図9の参照番号2002の図によって、分解の方法を説明する。CPU206は、参照番号2002の図に示すように、g(i、j)が方向0と方向1の間に存在する場合、ベクトルg(i、j)を方向0と方向1の成分に分解する。このとき、方向0の成分の長さをp0、方向1の成分の長さをp1とすると、g0(i、j)=p0、g1(i、j)=p1、p2(i、j)=…=p7(i、j)=0とする。
以上のようにして、8つの方向画像g0(i、j)、…、g7(i、j)が生成される。文字の変形に対する頑健性を高めるために、この画像にガウスフィルタによるぼかしを施す場合もある。その場合には、ぼかしをかけた方向画像をあらためて、g0(i、j)、…、g7(i、j)とおく。次に、CPU206は、各方向画像gi(x、y)を小領域に分割し、各小領域の画素値の合計値を要素とするベクトルを生成する。いま、各方向画像を64の小領域に分割したとすると、各方向画像から64個の値が得られる。これが、各方向について得られるため、8方向で合計64×8=512個の値が得られる。これらをベクトルの成分として、512次元のベクトルが生成される。
以上が、勾配特徴抽出方法の説明である。
以上のようにして、CPU206は、文字画像をベクトル値に変換する。以下では、特徴抽出によって生成されるベクトル値の次元数をNとする。これによって、1つ1つの文字画像は、N次元空間上の点として表現され、同一文字種は近い領域に分布することになる。その様子を次の図10に模式的に示した。
図10は、本発明の実施例の文字認識装置201による文字識別用の方式の説明図である。
図10のグラフ上にプロットした丸、三角及び四角の図形がそれぞれ、文字種A、文字種B及び文字種Cに対応する各文字画像から抽出されたN次元ベクトル点を表している。例えば、一つ一つの丸形の図形は、いずれも文字種Aの画像から抽出されたベクトル点であるが、それぞれ異なる画像(例えば異なる書体の活字又は異なる人による手書き文字等)から抽出されたベクトル点を表している。
次に、CPU206は、予め作成しておいた文字識別用辞書214を参照し、文字画像から抽出されたベクトル値に基づいて、文字画像中に描かれている文字を識別する。
ここで、まず、文字識別用辞書214について説明する。文字識別用辞書214には、例えば、各識別対象文字種kに対して、N次元ベクトルを引数にとり、実数値を値にとる識別関数fk(x)が保存されている。識別関数fk(x)は、文字種kが描かれている文字画像から生成されるN次元ベクトルxに対しては大きい値を、その他の字種が描かれている文字画像から生成されるN次元ベクトルxに対しては小さい値をとるように、予め、学習によって生成しておく。識別関数fk(x)の値は、ベクトルxの字種kに対する類似度、または尤度などと呼ばれる。例えば、数字を対象とした認識の場合には、0〜9の10字種に対応して、10個の識別関数f0(x)、f1(x)、…、f9(x)が存在する。
図10の例では、入力された文字画像のN次元ベクトル901を引数として、文字種A、B及びCのそれぞれの識別関数の値を計算し、その値が最も大きい文字種が1位候補文字種、2番目に大きい文字種が2位候補文字種となる。
CPU206は、この識別関数を、例えば、文字画像と文字ラベルから成る学習用文字画像データベースを用いて作成することができる。
図11は、本発明の実施例の文字認識装置201が保持する学習用文字画像データベース213の例を示す説明図である。
図11には、例として、それぞれ正方形の枠内に表示された文字画像と、それぞれの枠の右上に表示された文字ラベルと、を示す。文字ラベルは、文字画像中に描かれている文字を示すコード化されている正解ラベルである。例えば、文字画像1501及びそれに対応する文字ラベル1502は、文字画像1501が文字種「D」の画像であることを示している。
学習用文字画像データベース213は、例えば、指定の枠内に指定の文字を人に書いてもらうなどのように、文字画像を収集することで作成することができる。CPU206は、この学習用文字画像データベース213に含まれている各画像を上記と同様の方法によってN次元ベクトルに変換する。ここで、CPU206は、これらのN次元ベクトルと正解ラベルに基づいて、識別関数fk(x)を字種kに対応するN次元ベクトルに対しては大きな値を、それ以外の字種に対応するN次元ベクトルに対しては小さな値をとるように学習により生成する。ここの学習の方法に関しては、従来技術と本発明の方法を後に説明する。
文字識別506では、CPU206は、文字画像から抽出したN次元ベクトルxを用いて、各字種の識別関数fk(x)の値を計算する。識別関数fk(x)の値は、字種kに対する類似度であるため、fk(x)の値が最も大きい字種kが認識結果の第一位候補となる。同じように、二番目に値が大きい識別関数に対する字種kが認識結果の第二候補となる。このようにして第n候補まで認識結果が得られる。例えば、図3の文字切出603によって切出した文字画像の認識は、図5のようになる。以上によって、図3の参照符号604が示すように認識結果が得られ、計算機が扱える文字コードなどのコードに変換される。
以上が文字識別506の説明である。
上記で説明した文字識別は、文字画像と各認識対象字種の類似度を計算し、それに基づいて、候補文字を得る処理である。OCR装置の有用性を高めるためには、この文字識別の精度が重要である。しかし、認識結果が疑わしい場合には、それを知らせる認識結果の棄却処理も重要である。
図12は、本発明の実施例の文字認識装置201によって棄却される文字の第1の例、具体的には非文字と曖昧文字の例を示す説明図である。
棄却の対象となるものには、たとえば、図12の非文字1201および曖昧文字1202がある。非文字1201は、たとえば、文字切出のミスによる文字の一部、複数文字が合わさった画像、または汚れなどの外乱要因が混入したものなどがある。曖昧文字1202としては、たとえば、左端の画像のように7と9の区別がつかないものなどがある。
棄却処理が精緻であれば、いくつかの利点がある。ひとつは、もし、誤って文字を認識したまま結果が保存されると、誤ったままにするか、あるいは、これを修正するためには、全認識結果を人手によって再チェックしなければならない。これに対して、認識結果が疑わしい場合に、これをユーザに知らせることができれば、ユーザはその部分のみ修正すればよい。また、棄却を精度良く行うことができれば、その要因として、前処理、文字行抽出、文字切出など、前の処理に失敗している可能性があると判断して、前のいずれかの処理から処理方法や処理条件などを変えて、再度、処理を試すことができる。これにより、認識精度を高めることができる。
以下では、正しく文字画像中の文字を認識する率を正読率、誤って認識する率を誤読率、認識結果を棄却する率を棄却率とよぶことにする。一般に、棄却を強くしすぎると、誤読していたものを棄却するようになるだけでなく、正しく読めていたもののうちいくつかは棄却してしまうため、正読率、誤読率ともに低くなる。そのため、棄却は、正読率をなるべく落とさないように、かつ、誤読率を減少させるように行うことが望ましい。
以下では棄却判定部の処理である非文字棄却507及び曖昧文字棄却508について説明する。
非文字棄却507について説明する。入力文字画像から抽出されたN次元ベクトルをxとする。また、第一位候補文字k1に対応する識別関数をfk1とする。このとき、fk1(x)は文字種k1に対する類似度である。r1(x)=−fk1(x)とおくと、r1(x)は、文字種k1に対する非類似度とみなすことができる。そのため、CPU206は、閾値h1をあらかじめ定めておき、r1(x)>h1のとき、非類似度が高い(類似度が低い)として棄却の判断をする。これは、入力画像が非文字であったとき、第一位候補の文字に対しても類似度が低いことが想定されるため、非文字の棄却を想定したものである。
次に、曖昧文字棄却508について説明する。第二位候補文字k2に対応する識別関数をfk2とする。このとき、fk2(x)は文字種k2に対する類似度である。また、fk1(x)≧fk2(x)となる。r2(x)=fk2(x)−fk1(x)とおくと、このr2(x)の値が大きいほど、fk1(x)とfk2(x)の値が近いことになる。このとき、第一位候補文字と第二位候補文字の間で識別が曖昧であることを示している。そのため、CPU206は、閾値h2をあらかじめ定めておき、r2(x)>h2のとき、識別結果が曖昧であるとして棄却する。この処理は、非文字棄却507において、すでに棄却判定がされている場合には、スキップしてもよい。
図13は、本発明の実施例の文字認識装置201によって棄却される文字の第2の例、具体的にはかすれ文字1301及びつぶれ文字1302の例を示す説明図である。上記の棄却処理によって、かすれ文字1301及びつぶれ文字1302も棄却することが望ましい。
以上が、文字認識512での処理の説明である。CPU206は、この処理を各文字画像に対して行う。CPU206は、入力された文字画像の識別結果(例えば少なくとも1位候補文字種)を出力し、さらに、その文字画像について棄却が判定された場合には、さらに棄却フラグを出力してもよい。
認識結果選定509では、CPU206は、単語辞書等を参照し、各文字に対する認識の類似度(信頼度)を総合的に判断しながら、認識結果候補の中から、最終的な認識結果を選定する。参照する単語辞書は、認識しようとする文書の種類に応じて選択してもよい。例えば、住所認識をしている場合には、予め、住所のリストを保存した辞書等を参照することができる。一般文書の認識の場合には、一般の単語などを保存した辞書が参照される。
以上が、文字切出505から認識結果選定509までの処理である。CPU206は、この処理を各文字列画像に対して行う。
次に、リトライ判定510では、CPU206は、処理を変えて認識の再処理を行うかどうか判断する。再処理は、例えば、文書画像全体を対象とする場合もあるし、文字列画像単位、文字画像単位の場合もある。例えば、文字列認識結果に類似度(尤度、信頼度)が低い文字が存在する場合、単語辞書に合致する結果が得られなかった場合、又は、読みとれなかった文字が存在する場合、などに、CPU206は、再処理を行う。再処理を行う場合には、CPU206は、これ以前のいずれかの処理から処理方式を変える、処理条件を変える、などして、再度認識を試す。例えば、前処理502の二値化又はノイズ除去の方式を変えるなどが行われる。最後に、認識後処理511では、CPU206は、認識結果を記憶装置等に保存する、又はディスプレイに表示する、などの処理を行う。
以上が本発明の関連技術による文字認識装置の処理の流れである。
本発明の文字認識装置では、文字識別506の処理で用いる識別関数の生成方法に特徴がある。以下では、従来技術の方法について説明した後、本発明の方法について説明する。
まず、従来技術の方法について、二つの例を説明する。
図14は、従来の識別関数の生成方法の第1の例の説明図である。この方法は、PC(Polynomial Classifier)と呼ばれる方法で、詳しくは上記の文献「Character Recognition Systems」に記載されている。
この処理は、入力となる学習用文字画像データベース213を用いて、識別関数を生成し、文字識別用辞書214に保存する。この識別関数は、文字認識装置において文字識別506の処理で文字を識別するために用いられる。後述するように、本発明の実施例の文字認識装置201は、図14に示すものとは異なる方法で識別関数を生成するが、ここでは、便宜上、文字認識装置201が図14に示す従来の方法で識別関数を生成するものとしてその詳細な手順を説明する。
まず、特徴抽出1601では、CPU206が、文字識別506の特徴抽出処理と同様の方法を用いて、学習用文字画像データベースの各文字画像をN次元ベクトルに変換する。
次に、次元削減1602では、CPU206が、特徴抽出1601で生成されるベクトルの次元数を削減する。次元削減をh(x)とおくと、hは、N次元ベクトルxを引数にとり、値y=h(x)はM次元ベクトル(MはNより小さい正の整数)である。次元削減1602は、学習用文字画像データベースから生成されたベクトルを用いて、次元削減関数hを生成する。この方法には、主成分分析法(PCA:Principal Component Analysis)または線形判別分析(LDA: Linear Discriminant Analysis)などの方法を用いることができる。主成分分析法または線形判別分析法などを用いた場合には、hは、M×N行列Dによって表わすことができる。Dxを計算することで、M次元ベクトルが得られる。
特徴抽出1601及び次元削減1602の結果、学習用文字画像データベースの各文字画像は、最終的にはM次元ベクトルに変換される。以下では、学習用文字画像データベースのp番目のサンプルから特徴抽出1601によって生成されるベクトルをxp、次元削減1602によって生成されるベクトルをyp=h(xp)とおく。
次に、初期設定1603では、CPU206が識別関数の初期値を決定する。まず、各字種kに対して、M次元ベクトルを引数にとる二次関数
uk(y)=ΣΣwkij×yi×yj+Σwki×yi+wk
を定める。ここで、yはM次元ベクトルで、yの第i次元目の要素をypiなどと置いた。また、和は1からMまでとる。wkij、wki、wkは、学習により後の処理で定めるパラメータである。wkij、wki、wkの初期値は、乱数を生成すること等によって定められる。このとき、字種kの識別関数は、N次元ベクトルを引数にとる
gk(y)=s(uk(y))
によって定める。ここで、y=h(x)である。sはシグモイド関数であり、
s(a)=1/(1+e^(−a))
によって定義される。この関数は0以上1以下の実数値をとり、aの値が小さいほど0近く、aの値が大きいほど1に近い値をとる。
次に、損失関数定義1604では、CPU206が、識別関数による識別によって生じる誤読に係る損失を定義する。ベクトルyを字種kiに所属する文字画像より特徴抽出1601と次元削減1602により生成されたM次元ベクトルであるとすると、ベクトルyの識別による損失関数は、
e(y)=[gki(y)−1]^2+Σ[gkj(y)]^2+(β/P)[Σwkij^2+Σwki^2]
である。ここで第二項目の和は、kiと異なる全ての字種kjについて計算される。また、Σwkij^2の和は全てのk、i、j、について、Σwki^2の和は、すべてのk、iについて計算される。Pは学習用文字画像データベースのサンプルの数であり、βはパラメータである。この損失関数の第一項目と第二項目は、識別関数fkが字種kに所属するベクトルyに対して1に近い値、それ以外のベクトルに対して0に近い値をとるように定義されている場合に、小さい値となる。第三項目は、正則化の項であり、精度向上に効果があることが知られている。この損失関数を用いて、学習用文字画像データベース全体を識別する際の損失は、
E=Σe(yp)
によって定義される。ここで、和は全ての学習用文字画像データベースについて計算される。
サンプル選定1605では、CPU206が、係数修正1606で用いるサンプルを学習用文字画像データベースに基づいて生成されたM次元ベクトルyから選定する。
係数修正1606では、CPU206が、サンプル選定1605により与えられたサンプルに対して、損失関数の値が小さくなるように、係数wkij、wki、wkを修正する。具体的には、係数wを
w ← w−ρ(t)(∂e(y)/∂w)
によって修正する。すなわち、係数wにw−ρ(t)(∂e(y)/∂w)を代入する。ここで、(∂e(y)/∂w)はe(y)のwによる偏微分係数、ρ(t)は修正の大きさを調整する関数である。tはサンプル選定1605から終了判定1607までの繰り返しの回数で、最初はt=0である。ρ(t)は単調減少関数、すなわち少しずつ修正の大きさが小さくなるように設定する。これを全ての係数wkij、wki、wkについて行う。
次に、終了判定1607では、CPU206は、繰り返し回数tが予め指定された回数をこえると終了と判定し、識別関数fk(x)=gk(y)=gk(h(x))を文字識別用辞書214に保存する。そうでない場合には、tを1増加させ、サンプル選定1605で次のサンプルを選定する。サンプル選定1605では、学習用文字画像データベースをランダムに巡回するように選択する。
以上がPCの一つの例の簡単な説明である。このようにして係数を逐次的に修正していくことで、文字識別の誤差による損失が少ない識別関数を生成することができる。
このようにして生成された係数に基づく関数uk(y)は、二次関数であるため、双曲型、放物型、楕円型の型があるが、単に異なる字種を区別するに学習するため、楕円型となる可能性は低く、双曲型または放物型になる可能性が高い。そのため、uk(y)に基づいて定まる識別関数fk(x)の等高線は、次元削減後のM次元空間において、双曲型または放物型となる。
図15は、従来の方法によって生成された識別関数の第1の例の説明図である。
図14に示したPCによれば、M次元空間における識別関数fk(x)の等高線、すなわち、gk(y)の等高線は、図15のように双曲型または放物型になる。この例において、識別関数fk(x)は、文字種“X”の識別関数である。すなわち、字種kは文字種“X”である。等高線の文字種“X”が分布する側の領域でfk(x)の値が高くなり、反対側の領域でfk(x)の値が小さくなる。このように、fk(x)の値の高い領域と低い領域を分ける等高線は、字種k(文字種“X”)とそれ以外の字種を分離するように生成される。
ここで、図15に示すように、fk(x)は字種kが分布する領域のみならず、その背後の幅広い領域において、高い値をとるようになっている。このような状況は、異なる字種を分離する場合には有効であるが、非文字の棄却を行う場合には問題となる。
例えば、図15に示すように、非文字Xは文字ではないために、fkの値の高い領域にある場合がある。このような場合には、非文字は字種kでないにも関わらずfkの値は高くなる。非文字棄却507の処理で説明したように、非文字は最大の値となった識別関数の値が指定された値以下の時に、棄却されるが、このような識別関数では棄却することができないという問題がある。
次に、従来技術の2つ目の例について説明する。
図16は、従来の識別関数の生成方法の第2の例の説明図である。ここで説明する方法は修正二次識別関数(MQDF:Modified Quadratic Discriminant Function)の一例で、詳しくは上記の文献「Character Recognition Systems」に記載されている。以下、図14の例と同様に、便宜上、文字認識装置201がこの方法で識別関数を生成する場合の手順を説明する。
特徴抽出1601及び次元削減1602の処理は、図14に示した第1の例と同様であるため、説明を省略する。
次元削減1602によって学習用文字データベースのp番目のサンプルから生成されたN次元ベクトルをxpとおく。また、次元削減関数をh(x)とおき、yp=h(xp)とする。ypはM次元ベクトルである。
MQDFは、同一文字種に所属する画像から抽出されたM次元ベクトルの分布が、M次元空間上でガウス分布となると仮定し、データベースから抽出されたベクトルの分布に基づいて、ガウス分布のパラメータを推定することで、確率密度関数を定め、その確率値に基づいた値を類似度とする方法である。以下、具体的な計算方法について説明する。
平均ベクトル計算1700では、各字種kのM次元空間上でのベクトルの平均ベクトルmkを求める。mkは、字種kのサンプル数をPkとおくと、
mk=Σyp/Pk
によって与えられる。ここで、和は、字種kに所属する全てのサンプルに対して計算される。
以下、各サンプルのM次元ベクトルypから、字種kの平均ベクトルを引いたものを、zkp=yp−mkとおく。
共分散行列計算1701では、CPU206は、字種kに所属するサンプルのベクトルzkpの全てから共分散行列を計算する。字種kの共分散行列をVkとおく。
次に、固有値計算1702では、CPU206は、共分散行列Vkの固有値と固有ベクトルを計算する。M個の固有値をλk1、λk2、…、λkM、M個の固有ベクトルをφk1、φk2、…、φkMとおく。ここで、固有値λkiは降順、すなわち、λk1≧λk2、…、≧λkMとし、φkiは固有値λkiに対応する固有ベクトルであるとする。
識別関数定義1703では、CPU206は、各字種kの識別関数を定義する。ここで、小さい固有値の推定精度は低いため、固有値の上位L個(LはMより小さい正の整数)を除く、小さい固有値は一定の値δkに固定する。δkは、例えば、認識精度が良くなるように、実験的に決定してもよい。以下では、L+1番目以降の固有値をλkL+1=δk、…、λkM=δk、などのように、改めて置き換える。
これらの固有値、固有ベクトルを用いて、
gk(y)=Σ[(y−mk)・φkj]^2/λkj
とおく。(y−mk)・φkjはベクトル(y−mk)とφkjの内積で、和はjについて1からMまで計算される。これは、マハラノビス距離となる。識別関数は、
fk(x)=gk(h(x))
により定義される。この関数を文字識別用辞書214に保存する。
このようにして生成された関数gk(y)は、二次関数であり、楕円型となる。
図17は、従来の方法によって生成された識別関数の第2の例の説明図である。
具体的には、図17には、図16に示した方法で生成された、M次元空間上における関数gk(y)の等高線の様子を示した。文字種“X”が字種kであるとする。この楕円形の内部がgk(y)の値が高い領域、すなわちfk(x)の値が高い領域で、その外側がgk(y)の低い領域、すなわちfk(x)の値が低い領域である。なお、固有ベクトルが楕円の主軸、対応する固有値が主軸の長さに比例する。
図17に示すように、gk(y)が高い値となる領域は、文字種“X”が分布する近辺に限られ、閉領域となる。したがって、非文字が入力となった場合にも、楕円の外側に位置する確率が高く、非文字の棄却精度が高くなる。
上記で挙げた2つの例には、それぞれ、メリットとデメリットがある。一つ目の例であるPCは、異なる字種を分離できるよう識別関数を学習するため、文字同士の識別精度は高いが、すでに述べたように棄却精度は低い。一方で、二つ目の例であるMQDFでは、字種kの識別関数fkは、字種kのサンプルの分布にのみ依存して決まり、他の字種の分布には関係なく決まる。すなわち、異なる字種を分離するように直接学習する方法ではないため、識別精度はPCに比べて低いが、棄却精度は高い。
このような状況から、識別関数を楕円型に保ちつつ、異なる字種を分離するように学習することができれば、識別精度と棄却精度の双方を高めることができると考えられる。本発明では、このような学習方法を提供する。
図18は、本発明の実施例の文字認識装置による識別関数の作成方法を示すフローチャートである。
特徴抽出1601及び次元削減1602の処理は、図14に示した第1の例と同様であるため、説明を省略する。
二次関数初期設定101では、CPU206は、各字種kに対応するM次元空間上の楕円型の二次関数を識別関数として定義する。楕円型のM個の主軸ベクトルをφk1、…、φkM,各主軸に対応する主軸の長さに比例する値をλk1、…、λkMとおく。ここで、楕円型の二次関数が定義されるので、ベクトルφk1、…、φkMは、正規直行系となる。すなわち、
φki・φkj=1 (i=j)
φki・φkj=0 (i≠j)
となる。ここで、φki・φkjは、φkiとφkjの内積である。さらに、
λki>0
となる。また、楕円型の中心ベクトルを、mkとおく。これらを用いて、M次元空間上の楕円型の二次関数を
gk(y)=Σ[(y−mk)・φkj]^2/λkj
とする。ここで、mk、φkj、λkjは、MQDFによって定めてもよい。例えば、二次関数初期設定101において、CPU206が図15に示す処理を実行し、それによって得られた二次関数のmk、φkj、λkjを初期値として使用してもよい。
本発明では、この二次関数を楕円型に保ったまま、異なる字種のサンプルを識別できるように、パラメータmk、φkj、λkjを修正する。これによって、識別精度と棄却精度の双方が高い識別関数を作成する。そのために、まず、損失関数を定義する。
損失関数定義102では、CPU206は、二次関数初期設定101で定めた二次関数に基づいて得られる字種kの識別関数fk(x)=gk(h(x))を用いて学習用文字画像を識別したときの誤差の程度を測る誤差損失関数を定義する。
ここで、誤差損失関数の例を挙げる。まず、学習用文字画像データベース中のサンプルのM次元ベクトルyに対して、損失関数e(y)を定義する。サンプルyの字種をkiとしたとき、字種kiの識別関数以外の識別関数のうち、識別関数の値が最も大きい識別関数をfkjとする。すなわち、
fkj(y)=max{fk(y)}
ここで、最大値は、k≠kiについてとる。このとき、
μ(y)=fkj(y)−fki(y)
とおくと、μはyを識別関数によって正しく識別できるときには負の値、そうでない場合には、正の値となる。ここで、ξ>0として、
e(y)=1/[1+e(−ξμ(y))]
とおく。eは0以上1以下の値をとり、μが大きいほど1に近づき、μが小さいほど0にちかづく。これを各サンプルの損失関数とする。全体の損失関数は、
E=Σe(yp)
により定義される。ここで、和は、学習用文字データベースの全てのサンプルについて計算される。
なお、e(y)を計算するために使ったμには、yが所属する字種kiの識別関数のパラメータと、kiを除いて最も識別関数の値が大きい字種kjの識別関数のパラメータを含む。このとき、以下では、字種kiを正解クラス、字種kjを近接クラスとよぶことにする。
ここで、損失関数の値が小さくなるように、gkのパラメータmk、φkj、λkjを修正すれば、識別精度を高められると考えられる。そこで、PCの場合のように、wをパラメータとして、各サンプルyに対して、
w ← w−ρ(t)(∂e(y)/∂w)
のように修正して、全てのパラメータmk、φkj、λkjにこの操作をすればよい。しかし、この方法では、初期状態は楕円型であったとしても、パラメータが修正されていく中で、楕円型ではなくなり、PCと同様の結果となる。
そこで、楕円型を維持しつつ、パラメータを修正する必要がある。楕円型を維持するには、ベクトルφk1、…、φkMが正規直行系、すなわち、
φki・φkj=1 (i=j)
φki・φkj=0 (i≠j)
となっており、さらに、
λki>0
となっていればよい。また、このような条件を維持したまま、パラメータを修正することは、各パラメータは、独立に
w ← w−ρ(t)(∂e(y)/∂w)
によって修正されるため、困難である。
そこで、本実施例では、関数のパラメータを直接修正するのではなく、まず、サンプル位置のほうを仮想的に修正する。その修正幅をもって、楕円型を逆に回転、移動、拡大縮小することによって、関数のパラメータを間接的に修正する。
図19は、本発明の実施例の文字認識装置201による識別関数のパラメータの修正を模式的に示した説明図である。
ここで、字種kiのサンプルyが与えられ、この近接クラスkjの関数gkjのパラメータを修正する例を説明する。図19には、図10と同様に各文字画像から抽出されたベクトル点の分布を模式的に示す。図19の例において、文字種kjは文字種“X”として丸印でしめされているように分布している。図19(a)には、パラメータを修正する前の関数gkjの等高線2101を示す。この例において、三角印で示したサンプルyに対して損失関数e(y)を小さくするよう、関数gkjのパラメータを修正したい。このとき、
w ← w−ρ(t)(∂e(y)/∂w)
として、パラメータを修正すると、楕円形の条件が崩れる恐れがある。そのため、本発明では、逆に、サンプルyの位置を仮想的に修正する。すなわち、関数のパラメータの代わりに
y ← y−ρ(t)(∂e(y)/∂y)
とする。修正ベクトルは右辺第二項目の−ρ(t)(∂e(y)/∂y)となる。この修正ベクトルを、図19(a)の三角印につく矢印によって示した。サンプルyは文字種“X”とは異なる字種の文字画像から抽出されたベクトルであるため、関数gkjによってサンプルyが文字種“X”であると判定されにくくなる方向、すなわち、楕円の外側に向けてサンプルyの位置が修正されると想定される。この場合、CPU206は、サンプルyの位置を実際に修正ベクトルに従って修正するのではなく、修正ベクトルと反対の方向に楕円を移動、回転、または拡大縮小させることによって、楕円形を維持したまま関数gkjのパラメータを修正する。ここで修正ベクトルと反対の方向とは、関数gkjによってサンプルyが文字種“X”であると判定されにくくなる方向である。図19(b)には、修正された関数gkjの等高線2102の例を示す。
図19では、近接クラスの関数について楕円型で示し、修正の様子を説明したが、正解クラスの関数でも、同様である。ただし、修正ベクトルの方向は上記と逆になる。例えば、サンプルyが文字種kjのサンプルである場合、関数gkjは近接クラスではなく正解クラスの関数である。この場合、修正ベクトルは、関数gkjによってサンプルyが文字種“X”であると判定されやすくなる方向、すなわち、楕円の内側に向けてサンプルyの位置を修正するように設定される。この場合も、修正ベクトルと反対の方向に楕円を移動、回転、または拡大縮小させることによって、楕円形を維持したまま関数gkjのパラメータが修正される。その結果、関数gkjによってサンプルyが文字種“X”であると判定されやすくなる。
具体的な計算方法を以下で説明する。最初に、CPU206は、修正の回数をカウントするtをt=0に設定する。
サンプル選定103では、CPU206は、学習用文字データベースからひとつのサンプルを選択する。サンプルは、ランダムに選択してもよいし、ある規則を定めて、順番に選択してもよい。
次に、サンプル位置修正幅計算104では、CPU206は、各サンプルyについて、定義された楕円型二次識別関数を用いて識別したときの損失関数e(y)の値が小さくなる方向に、yの位置を移動させるための修正ベクトルを計算する。これは、
y ← y−ρ(t)(∂e(y)/∂y)
のように計算すればよい。ここでρ(t)は単調減少関数で、PCの場合と同じように設定してもよい。ここで、−ρ(t)(∂e(y)/∂y)が修正ベクトルである。
次に、CPU206は、修正ベクトルに基づいて、識別関数の等高線を楕円形に維持したまま、損失関数e(y)の値が小さくなるように、識別関数のパラメータを修正する。具体的には、CPU206は、修正ベクトルと逆の方向に楕円を移動、回転、および拡大縮小することで、識別関数のパラメータを修正する。この処理が、以下に説明する平均移動105、楕円形修正106及び楕円形変形108である。ただし、ここでの処理は、修正ベクトルを計算することであり、サンプルの位置は、実際には動かさない。
平均移動105では、CPU206は、楕円の中心位置を修正する。すでに説明したように、e(y)には正解クラスのパラメータと近接クラスのパラメータが含まれるため、CPU206はこれらのパラメータを修正する。正解クラスをki、近接クラスをkjとする。このとき、正解クラスの楕円の中心mkiと、近接クラスの楕円mkjをサンプル位置の修正幅−ρ(t)(∂e(y)/∂y)とは逆の方向に修正する。すなわち、
mki(t+1)=mki(t)+ρ(t)(∂e(y)/∂y)
mkj(t+1)=mkj(t)+ρ(t)(∂e(y)/∂y)
とする。ここで、t回目のサンプル選定103から終了判定107までのサイクルが始まる時のパラメータをmki(t)及びmkj(t)のように示した。以降、φki(t)、λki(t)も同様にt回目のサイクルにおけるφki及びλkiを示す。これによって、正解クラスの楕円は、サンプルのある方向に移動し、近接クラスの楕円は、サンプルとは逆の方向に移動する。
図20は、本発明の実施例の文字認識装置201による楕円型の識別関数の中心の移動の説明図である。
図20には、上記の近接クラスの楕円の中心の移動の例を示す。例えば、三角印のサンプルyに基づいて、丸印の近接クラスの楕円形の識別関数の中心を移動する場合、楕円形の等高線2201の中心2203が上記のmki(t)に相当し、等高線2202の中心2204がmki(t+1)に相当し、修正ベクトル2205が−ρ(t)(∂e(y)/∂y)に相当し、中心2203から中心2204に至るベクトル2206がρ(t)(∂e(y)/∂y)に相当する。このように、近接クラスの楕円の中心の移動方向を示すベクトル2206の向きは、修正ベクトル2205の向きとは逆になる。丸印が正解クラスの場合には、修正ベクトル2205及びベクトル2206の向きがいずれも図20の例とは逆になる。
次に、楕円形修正106では、CPU206は、正解クラスと近接クラスの平均(すなわち中心)以外のパラメータを修正する。以下、正解クラスkiの関数のパラメータを修正する例を、図21を参照して説明する。
図21は、本発明の実施例の文字認識装置201による楕円型の識別関数の中心以外のパラメータの変更の説明図である。
図21には、図20と同様の近接クラスの楕円形の識別関数の等高線2202及びその中心2204を示す。CPU206は、元のサンプルの位置を正解クラスkiの中心から見たベクトル(すなわち、等高線2202の中心の位置を始点とし、元のサンプルの位置を終点とするベクトル)を
v1=y−mki
とおく。修正後の位置を同様に、正解クラスkiの中心から見たベクトル(すなわち、等高線2202の中心の位置を始点とし、修正後のサンプルの位置を終点とするベクトル)を
v2=y−ρ(t)(∂e(y)/∂y)−mki
とおく。このとき、v1からv2への移動はv1の回転と拡大縮小によって行うことができる。その回転行列をU,拡大縮小のスケールをs>0とおくと、
v2=sUv1
とおくことができる。そこで、CPU206は、関数のパラメータを、楕円を逆回転とsの逆数での拡大縮小を行うことによって、修正する。具体的には、λkiを並べたベクトルを
λki=(λki1、λki2、…、λkiM)
とおくと、CPU206は、回転行列Uとsを用いて、
λki(t+1)←λki(t)U/s
のように修正する。また、φkim・φkinを第(m、n)成分にもつ行列をΦkiとおくと、CPU206は、
Φki(t+1)←U^TΦki(t)^TΦki(t)U
によって行列Φkiの各成分を修正する。ここで、行列Aに対してA^TはAの転置行列である。ここで、λki(t)、Φki(t)は、それぞれ、λki、Φkiの各成分に、サイクル数を示すインデックスtをつけたものである。
これによって、例えばv2がv1を拡大したものである場合(すなわちv2がv1より大きい場合)には楕円形の等高線2202が縮小し、v2がv1を縮小したものである場合には楕円形の等高線2202が拡大するように、楕円型二次識別関数のパラメータが修正される。また、例えば図21に示すようにv2がv1を左回りに回転させたものである場合には、楕円形の等高線2202がその反対方向、すなわち右回りに回転するように、楕円型二次識別関数のパラメータが修正される。
上記の平均移動105は楕円の平行移動、楕円形修正106は、楕円の拡大縮小と回転であるが、楕円形変形108では、CPU206は、楕円軸の大きさを修正する。これによって、結果的に、例えば扁平率によって表される楕円のつぶれ具合が修正される。
平均移動105と楕円形修正106によって得られたクラスkiの楕円形の軸の方向ベクトルは、φkiによって得られる。そこで、CPU206は、クラスkiに所属するサンプルのベクトルのφki方向への射影をとったとき、その射影分布の分散値をvとすると、λki=vとする。ここで、CPU206は、正則化のために、vが所定の閾値以下である場合には、予め定めておいた小さい値σを用いて、λki=σとしてもよい。
ただし、CPU206は、楕円形変形108の処理を省略してもよい。すなわち、CPU206は、楕円形修正106の処理の後、楕円形変形108を実行せずに終了判定107を実行してもよい。例えば、二次関数初期設定101において、ある決まった扁平率の楕円(例えば扁平率0の円)を識別関数の初期値として設定した場合、CPU206は、楕円形変形108を実行することによって、識別関数の楕円のつぶれ具合を学習してもよい。あるいは、二次関数初期設定101において図15に示す方法によって識別関数の初期値を設定した場合、初期状態の識別関数の楕円のつぶれ具合が既に適切であることが期待できるため、CPU206は、楕円形変形108を省略してもよいし、さらに楕円形変形108を実行して学習を行ってもよい。
CPU206は、近接クラスの関数についても同様にしてパラメータを修正する。この修正は、楕円をUと逆の方向に回転し、1/sのスケールで拡大縮小することに相当する。
上記の処理では、選択したサンプルが所属する文字種(正解クラス)のほか、当該サンプルが所属する文字種以外の文字種のうち、当該サンプルを引数としたときの値が最も大きくなる識別関数が設定されている一つの文字種(近接クラス)について識別関数のパラメータが学習されるが、正解クラス以外の複数のクラスについて同様の学習が実行されてもよい。例えば、当該サンプルを引数としたときの値の大きさの順に、所定の数の識別関数のパラメータが学習されてもよい。
以上の処理によって関数のパラメータが修正される。
次に終了判定107では、CPU206は、tが所定の回数を上回っているか判定し、上回っている場合には、各字種kの識別関数fk(x)=gk(h(x))を文字識別用辞書214に保存して終了する。上回っていない場合には、CPU206は、tに1を加え、サンプル選定103において、新たなサンプルを選定する。
上記のように生成され、文字識別用辞書214に保存された識別関数は、例えば、図2に示す文字識別506、非文字棄却507及び曖昧文字棄却508に使用される。
以上のように、誤差損失が小さくなるように楕円のパラメータを変更することによって、楕円型を保ちながら識別関数を学習することができる。これによって、従来のPCと比較して、棄却精度が高い識別関数を生成することができる。さらに、正解クラスの識別関数だけでなく、近接クラスの識別関数についても誤差損失が小さくなるように学習することによって、従来のMQDFより識別精度が高い識別関数を生成することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。例えば、実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
例えば、上記の実施例では、一つの文字認識装置201が、文字識別用辞書214を生成し(図18等)、さらに生成した文字識別用辞書214を用いて文字の識別及び棄却を行う(図2等)例を示した。しかし、実際には、複数の文字認識装置201のいずれかが図18等に示す方法で文字識別用辞書214を生成し、他の文字認識装置201は生成された文字識別用辞書214の複製を保持して、それを用いて文字の識別及び棄却を行ってもよい。その場合、当該他の文字認識装置201は、自ら文字識別用辞書214を生成する必要がないため、学習用文字画像データベース213を保持する必要もない。
上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶装置、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
また、図面には、実施例を説明するために必要と考えられる制御線及び情報線を示しており、必ずしも、本発明が適用された実際の製品に含まれる全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
201 文字認識装置
202 入力装置
203 表示装置
204 イメージ取得装置
205 通信装置
206 演算装置(CPU)
207 外部記憶装置
213 学習用文字画像データベース
214 文字認識用辞書

Claims (14)

  1. プロセッサ及び記憶装置を有する文字認識装置であって、
    前記記憶装置は、複数の文字種の複数の学習用文字画像を保持し、
    前記プロセッサは、
    前記各学習用文字画像を所定の次元数のベクトルに変換する特徴抽出処理と、
    前記文字種ごとに、前記所定の次元数のベクトル空間上の楕円型二次識別関数を定義する二次関数初期設定処理と、
    前記楕円型二次識別関数を用いて前記学習用文字画像を識別したときの誤差の程度を測る損失関数を定義する損失関数定義処理と、
    前記楕円型二次識別関数を用いて、前記複数の学習用文字画像から選択されたサンプルを識別したときの前記損失関数の値が小さくなるように、前記サンプルのベクトルの位置を移動させるための修正ベクトルを計算するサンプル位置修正幅計算処理と、
    前記修正ベクトルに基づいて、前記楕円型二次識別関数のパラメータを、前記楕円型二次識別関数の等高線を楕円形に維持したまま、前記損失関数の値が小さくなるように修正する係数修正処理と、
    前記修正されたパラメータを有する前記楕円型二次識別関数を、入力された文字画像の識別及び棄却に使用する識別関数として前記記憶装置に保存する保存処理と、を実行することを特徴とする文字認識装置。
  2. 請求項1に記載の文字認識装置であって、
    前記プロセッサは、
    前記サンプル位置修正幅計算処理において、前記サンプルが属する文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算し、さらに、前記サンプルが属する文字種以外の文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算し、
    前記係数修正処理において、計算された前記修正ベクトルの各々について、前記楕円型二次識別関数の等高線の楕円形の中心が、前記修正ベクトルの逆方向に移動するように、前記楕円型二次識別関数のパラメータを修正することを特徴とする文字認識装置。
  3. 請求項1に記載の文字認識装置であって、
    前記プロセッサは、
    前記サンプル位置修正幅計算処理において、前記サンプルが属する文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算し、さらに、前記サンプルが属する文字種以外の文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算し、
    前記係数修正処理において、計算された前記修正ベクトルの各々について、前記楕円型二次識別関数の等高線の楕円形の中心の位置を始点とし、移動前の前記サンプルの位置を終点とするベクトルから、前記楕円形の中心の位置を始点とし、移動後の前記サンプルの位置を終点とするベクトルへの変換を、ベクトルの回転及びスケール変換によって表現し、前記楕円形が前記ベクトルの回転方向の逆方向に回転するように、前記楕円型二次識別関数のパラメータを修正することを特徴とする文字認識装置。
  4. 請求項1に記載の文字認識装置であって、
    前記プロセッサは、
    前記サンプル位置修正幅計算処理において、前記サンプルが属する文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算し、さらに、前記サンプルが属する文字種以外の文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算し、
    前記係数修正処理において、計算された前記修正ベクトルの各々について、前記楕円型二次識別関数の等高線の楕円形の中心の位置を始点とし、移動前の前記サンプルの位置を終点とするベクトルから、前記楕円形の中心の位置を始点とし、移動後の前記サンプルの位置を終点とするベクトルへの変換を、ベクトルの回転及びスケール変換によって表現し、前記スケール変換が拡大であれば前記楕円形を縮小し、前記スケール変換が縮小であれば前記楕円形を拡大するように、前記楕円型二次識別関数のパラメータを修正することを特徴とする文字認識装置。
  5. 請求項1に記載の文字認識装置であって、
    前記プロセッサは、
    前記サンプル位置修正幅計算処理において、前記サンプルが属する文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算し、さらに、前記サンプルが属する文字種以外の文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算し、
    前記係数修正処理において、計算された前記修正ベクトルの各々について、前記楕円型二次識別関数の等高線の楕円形の軸への前記サンプルのベクトルの射影の分布の分散値に基づいて、前記楕円型二次識別関数の主軸の大きさを変更するように、前記楕円型二次識別関数のパラメータを修正することを特徴とする文字認識装置。
  6. 請求項1に記載の文字認識装置であって、
    前記プロセッサは、前記二次関数初期設定処理において、前記各文字種の複数の文字画像のベクトルの分布がガウス分布であると仮定してガウス分布のパラメータを推定することによって修正二次識別関数を定義することを特徴とする文字認識装置。
  7. 請求項1に記載の文字認識装置であって、
    前記プロセッサは、入力された文字画像のベクトルを引数として前記各文字種の識別関数の値を計算し、前記入力された文字画像の識別結果として、計算された識別関数の値が最も大きい文字種を出力し、最も大きい識別関数の値が所定の閾値より小さいか、又は、最も大きい識別関数の値と2番目に大きい識別関数の値との差が所定の閾値より小さい場合、前記入力された文字画像に関する棄却フラグを出力することを特徴とする文字認識装置。
  8. プロセッサ及び記憶装置を有する文字認識装置であって、
    前記記憶装置は、複数の文字種の複数の学習用文字画像を所定の次元数のベクトルに変換し、前記文字種ごとに、前記所定の次元数のベクトル空間上の楕円型二次識別関数を定義し、前記楕円型二次識別関数を用いて前記学習用文字画像を識別したときの誤差の程度を測る損失関数を定義し、前記楕円型二次識別関数を用いて、前記複数の学習用文字画像から選択されたサンプルを識別したときの前記損失関数の値が小さくなるように、前記サンプルのベクトルの位置を移動させるための修正ベクトルを計算し、前記修正ベクトルに基づいて、前記楕円型二次識別関数のパラメータを、前記楕円型二次識別関数の等高線を楕円形に維持したまま、前記損失関数の値が小さくなるように修正することによって生成された楕円型二次識別関数を、入力された文字画像の識別及び棄却に使用する識別関数として保持し、
    前記プロセッサは、入力された文字画像のベクトルを引数として前記各文字種の識別関数の値を計算し、前記入力された文字画像の識別結果として、計算された識別関数の値が最も大きい文字種を出力し、最も大きい識別関数の値が所定の閾値より小さいか、又は、最も大きい識別関数の値と2番目に大きい識別関数の値との差が所定の閾値より小さい場合、前記入力された文字画像に関する棄却フラグを出力することを特徴とする文字認識装置。
  9. プロセッサ及び記憶装置を有する文字認識装置が実行する識別関数生成方法であって、
    前記記憶装置は、複数の文字種の複数の学習用文字画像を保持し、
    前記識別関数生成方法は、
    前記各学習用文字画像を所定の次元数のベクトルに変換する特徴抽出手順と、
    前記文字種ごとに、前記所定の次元数のベクトル空間上の楕円型二次識別関数を定義する二次関数初期設定手順と、
    前記楕円型二次識別関数を用いて前記学習用文字画像を識別したときの誤差の程度を測る損失関数を定義する損失関数定義手順と、
    前記楕円型二次識別関数を用いて、前記複数の学習用文字画像から選択されたサンプルを識別したときの前記損失関数の値が小さくなるように、前記サンプルのベクトルの位置を移動させるための修正ベクトルを計算するサンプル位置修正幅計算手順と、
    前記修正ベクトルに基づいて、前記楕円型二次識別関数のパラメータを、前記楕円型二次識別関数の等高線を楕円形に維持したまま、前記損失関数の値が小さくなるように修正する係数修正手順と、
    前記修正されたパラメータを有する前記楕円型二次識別関数を、入力された文字画像の識別及び棄却に使用する識別関数として前記記憶装置に保存する保存手順と、を含むことを特徴とする識別関数生成方法。
  10. 請求項9に記載の識別関数生成方法であって、
    前記サンプル位置修正幅計算手順は、前記サンプルが属する文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算する手順と、前記サンプルが属する文字種以外の文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算する手順と、を含み、
    前記係数修正手順は、計算された前記修正ベクトルの各々について、前記楕円型二次識別関数の等高線の楕円形の中心が、前記修正ベクトルの逆方向に移動するように、前記楕円型二次識別関数のパラメータを修正する手順を含むことを特徴とする識別関数生成方法。
  11. 請求項9に記載の識別関数生成方法であって、
    前記サンプル位置修正幅計算手順は、前記サンプルが属する文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算する手順と、前記サンプルが属する文字種以外の文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算する手順と、を含み、
    前記係数修正手順は、計算された前記修正ベクトルの各々について、前記楕円型二次識別関数の等高線の楕円形の中心の位置を始点とし、移動前の前記サンプルの位置を終点とするベクトルから、前記楕円形の中心の位置を始点とし、移動後の前記サンプルの位置を終点とするベクトルへの変換を、ベクトルの回転及びスケール変換によって表現し、前記楕円形が前記ベクトルの回転方向の逆方向に回転するように、前記楕円型二次識別関数のパラメータを修正する手順を含むことを特徴とする識別関数生成方法。
  12. 請求項9に記載の識別関数生成方法であって、
    前記サンプル位置修正幅計算手順は、前記サンプルが属する文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算する手順と、前記サンプルが属する文字種以外の文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算する手順と、を含み、
    前記係数修正手順は、計算された前記修正ベクトルの各々について、前記楕円型二次識別関数の等高線の楕円形の中心の位置を始点とし、移動前の前記サンプルの位置を終点とするベクトルから、前記楕円形の中心の位置を始点とし、移動後の前記サンプルの位置を終点とするベクトルへの変換を、ベクトルの回転及びスケール変換によって表現し、前記スケール変換が拡大であれば前記楕円形を縮小し、前記スケール変換が縮小であれば前記楕円形を拡大するように、前記楕円型二次識別関数のパラメータを修正する手順を含むことを特徴とする識別関数生成方法。
  13. 請求項9に記載の識別関数生成方法であって、
    前記サンプル位置修正幅計算手順は、前記サンプルが属する文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算する手順と、前記サンプルが属する文字種以外の文字種の前記楕円型二次識別関数を用いて前記サンプルを識別したときの前記損失関数の値が小さくなるように前記修正ベクトルを計算する手順と、を含み、
    前記係数修正手順は、計算された前記修正ベクトルの各々について、前記楕円型二次識別関数の等高線の楕円形の軸への前記サンプルのベクトルの射影の分布の分散値に基づいて、前記楕円型二次識別関数の主軸の大きさを変更するように、前記楕円型二次識別関数のパラメータを修正する手順を含むことを特徴とする識別関数生成方法。
  14. 請求項9に記載の識別関数生成方法であって、
    前記二次関数初期設定手順は、前記各文字種の複数の文字画像のベクトルの分布がガウス分布であると仮定してガウス分布のパラメータを推定することによって修正二次識別関数を定義する手順を含むことを特徴とする識別関数生成方法。
JP2014062641A 2014-03-25 2014-03-25 文字認識装置及び識別関数生成方法 Active JP6170860B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014062641A JP6170860B2 (ja) 2014-03-25 2014-03-25 文字認識装置及び識別関数生成方法
CN201510110197.9A CN104951781B (zh) 2014-03-25 2015-03-13 字符辨识装置以及识别函数生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014062641A JP6170860B2 (ja) 2014-03-25 2014-03-25 文字認識装置及び識別関数生成方法

Publications (2)

Publication Number Publication Date
JP2015185033A JP2015185033A (ja) 2015-10-22
JP6170860B2 true JP6170860B2 (ja) 2017-07-26

Family

ID=54166422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014062641A Active JP6170860B2 (ja) 2014-03-25 2014-03-25 文字認識装置及び識別関数生成方法

Country Status (2)

Country Link
JP (1) JP6170860B2 (ja)
CN (1) CN104951781B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7037875B2 (ja) * 2016-06-20 2022-03-17 日本電信電話株式会社 画像正規化装置、方法、及びコンピュータ読み取り可能な記録媒体
CN106294584B (zh) * 2016-07-28 2019-11-05 北京百度网讯科技有限公司 排序模型的训练方法及装置
CN106778765B (zh) * 2016-11-22 2021-04-23 深圳市捷顺科技实业股份有限公司 一种车牌识别的方法及装置
JP6996413B2 (ja) * 2018-04-27 2022-01-17 トヨタ自動車株式会社 解析装置および解析プログラム
JP6670512B1 (ja) * 2018-11-06 2020-03-25 Necプラットフォームズ株式会社 パターン認識装置、パターン認識方法及びプログラム
CN109902428B (zh) * 2019-03-12 2023-05-02 武汉轻工大学 椭圆锥面方程的模型识别方法、装置、终端设备及可读存储介质
CN110009747B (zh) * 2019-04-11 2023-03-31 武汉轻工大学 单叶双曲面方程识别方法、设备、存储介质及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2906758B2 (ja) * 1991-09-05 1999-06-21 日本電気株式会社 文字読取装置
JPH11345337A (ja) * 1998-05-29 1999-12-14 Ricoh Co Ltd パターン辞書作成装置およびパターン辞書作成方法,並びにパターン辞書作成方法をコンピュータに記録した機械読み取り可能な記録媒体
JP4393720B2 (ja) * 2001-01-31 2010-01-06 富士通株式会社 パターン認識装置および方法
JP2002251592A (ja) * 2001-02-22 2002-09-06 Toshiba Corp パターン認識辞書学習方法
JP5098504B2 (ja) * 2007-08-09 2012-12-12 富士通株式会社 文字認識プログラム、文字認識装置および文字認識方法
JP6078953B2 (ja) * 2012-02-17 2017-02-15 オムロン株式会社 文字認識方法、およびこの方法を用いた文字認識装置およびプログラム
JP5769029B2 (ja) * 2012-03-13 2015-08-26 株式会社日立情報通信エンジニアリング 文字認識装置、認識辞書生成装置及び正規化方法

Also Published As

Publication number Publication date
CN104951781B (zh) 2018-06-08
JP2015185033A (ja) 2015-10-22
CN104951781A (zh) 2015-09-30

Similar Documents

Publication Publication Date Title
JP6170860B2 (ja) 文字認識装置及び識別関数生成方法
US10853638B2 (en) System and method for extracting structured information from image documents
Eskenazi et al. A comprehensive survey of mostly textual document segmentation algorithms since 2008
Djeddi et al. Text-independent writer recognition using multi-script handwritten texts
US9619702B2 (en) System and method for transcribing handwritten records using word grouping with assigned centroids
Bissacco et al. Photoocr: Reading text in uncontrolled conditions
US8509537B2 (en) Learning weights of fonts for typed samples in handwritten keyword spotting
EP0740263B1 (en) Method of training character templates for use in a recognition system
US8224092B2 (en) Word detection method and system
EP2166488B1 (en) Handwritten word spotter using synthesized typed queries
Balaha et al. Automatic recognition of handwritten Arabic characters: a comprehensive review
US7929769B2 (en) Script recognition for ink notes
JP6055297B2 (ja) 文字認識装置及び方法、文字認識プログラム
US10963717B1 (en) Auto-correction of pattern defined strings
Fischer Handwriting recognition in historical documents
CN111523537A (zh) 一种文字识别方法、存储介质及系统
JP6609267B2 (ja) ガボール関数を用いたパターン認識システム及び方法
Pechwitz et al. Handwritten Arabic word recognition using the IFN/ENIT-database
Shanjana et al. Offline recognition of malayalam handwritten text
Ghadhban et al. Segments interpolation extractor for finding the best fit line in Arabic offline handwriting recognition words
Lou et al. Generative shape models: Joint text recognition and segmentation with very little training data
US11756321B2 (en) Information processing apparatus and non-transitory computer readable medium
CN111612045B (zh) 一种获取目标检测数据集的通用方法
US11361529B2 (en) Information processing apparatus and non-transitory computer readable medium
JP5344338B2 (ja) プログラム、情報記憶媒体及び文字列認識装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170613

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: 20170620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170703

R150 Certificate of patent or registration of utility model

Ref document number: 6170860

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250