(57)【要約】【課題】互いに向きによって同一文字に見える関係を有する２つの文字の少なくとも一方を含む入力画像に対する文字認識の際、回転なしの入力画像と回転ありの入力画像とをそれぞれ個別に２回以上文字認識する事なく迅速に文字認識し、認識精度の向上を図る。【解決手段】文字認識装置は、互いに所定の向きによって同一文字に見える関係を有する第１の文字および第２の文字のうち少なくとも一方を含む入力画像を入力する画像入力部と、第１の文字の画像および第２の文字の画像の認識パターンを学習する学習処理部と、認識パターンの学習結果を用いて、入力画像に対する文字の認識を行う文字認識部と、文字の認識結果に基づいて、第１の文字を第１の文字もしくは第２の文字として出力し、または第２の文字を第２の文字もしくは第１の文字として出力する出力処理部と、を備える。【選択図】図１Ｂ
2020123141.tif 000002
【特許請求の範囲】
【請求項１】
互いに所定の向きによって同一文字に見える関係を有する第１の文字および第２の文字のうち少なくとも一方を含む入力画像を入力する画像入力部と、
前記第１の文字の画像および前記第２の文字の画像の認識パターンを学習する学習処理部と、
前記認識パターンの学習結果を用いて、前記入力画像に対する文字の認識を行う文字認識部と、
前記文字の認識結果に基づいて、前記第１の文字を前記第１の文字もしくは前記第２の文字として出力し、または前記第２の文字を前記第２の文字もしくは前記第１の文字として出力する出力処理部と、を備える、
文字認識装置。
【請求項２】
前記学習処理部は、回転されていない方向を示す正方向を基準として、
前記第１の文字の前記正方向の画像を前記第１の文字と認識するよう学習し、
前記第２の文字の前記正方向の画像を前記第２の文字と認識するよう学習し、
前記第１の文字の前記正方向の画像を前記所定の向きに対応する一定の回転角だけ回転させた文字を前記第２の文字として認識するよう学習し、
前記第２の文字の前記正方向の画像を前記一定の回転角だけ回転させた文字を前記第１の文字として認識するよう学習する、
請求項１に記載の文字認識装置。
【請求項３】
前記文字の認識結果に基づいて、回転されていない方向を示す正方向を基準として、前記入力画像が前記所定の向きに対応する一定の回転角だけ前記正方向の状態から回転されているか否かを判定する回転判定部と、
前記入力画像が前記所定の向きに対応する一定の回転角だけ前記正方向の状態から回転されているとの判定に従って、前記第１の文字を前記第２の文字として修正し、または前記第２の文字を前記第１の文字として修正する認識結果修正部と、を更に備え、
前記出力処理部は、前記認識結果修正部からの出力結果を出力する、
請求項１に記載の文字認識装置。
【請求項４】
前記出力処理部は、前記第１の文字または前記第２の文字の認識結果を出力部に出力する、
請求項１〜３のうちいずれか一項に記載の文字認識装置。
【請求項５】
前記第１の文字と前記第２の文字とは、互いに１８０度回転させると同一文字に見える上下逆さまの関係を有する、
請求項１に記載の文字認識装置。
【請求項６】
前記第１の文字と前記第２の文字とは、前記第１の文字を右方向に９０度回転させると前記第２の文字に見える関係を有する、
請求項１に記載の文字認識装置。
【請求項７】
前記第１の文字と前記第２の文字とは、前記第１の文字を左方向に９０度回転させると前記第２の文字に見える関係を有する、
請求項１に記載の文字認識装置。
【請求項８】
前記入力画像は、前記第１の文字および前記第２の文字の少なくとも一方を含む文字列の画像であり、
前記学習処理部は、
前記文字列の画像に対する文字の認識を行い、
前記文字列に含まれる、前記第１の文字および前記第２の文字を一定の回転角だけ回転した回転文字列を作成し、
前記一定の回転角だけ回転した前記文字列の画像を前記回転文字列として認識するように学習する、
請求項３に記載の文字認識装置。
【請求項９】
前記回転判定部は、前記文字列の画像に対する文字の認識の結果、認識された文字列に含まれる、前記第１の文字および前記第２の文字以外の文字の位置関係を基に、前記入力画像が前記正方向の状態から回転されているか否かを判定する、
請求項８に記載の文字認識装置。
【請求項１０】
文字認識装置により実行される文字認識方法であって、
互いに所定の向きによって同一文字に見える関係を有する第１の文字および第２の文字を含む第１の文字の画像および第２の文字の画像の認識パターンを学習するステップと、
前記第１の文字および前記第２の文字のうち少なくとも一方を含む入力画像を入力するステップと、
前記認識パターンの学習結果を用いて、前記入力画像に対する文字の認識を行うステップと、
前記文字の認識結果に基づいて、前記第１の文字を前記第１の文字もしくは前記第２の文字として出力し、または前記第２の文字を前記第２の文字もしくは前記第１の文字として出力するステップと、を有する、
文字認識方法。
【請求項１１】
互いに所定の向きによって同一文字に見える関係を有する第１の文字および第２の文字を含む入力画像に対して認識された第１の文字の画像および第２の文字の画像をそれぞれ受け取る入力部と、
回転されていない方向を示す正方向を基準として、
前記第１の文字の前記正方向の画像を前記第１の文字と認識するよう学習し、
前記第２の文字の前記正方向の画像を前記第２の文字と認識するよう学習し、
前記第１の文字の前記正方向の画像を前記所定の向きに対応する一定の回転角だけ回転させた文字を前記第２の文字として認識するよう学習し、
前記第２の文字の前記正方向の画像を前記一定の回転角だけ回転させた文字を前記第１の文字として認識するよう学習する学習処理部と、を備える、
文字認識パターン学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、文字認識装置、文字認識方法および文字認識パターン学習装置に関する。
【背景技術】
【０００２】
特許文献１には、入力層と中間層と出力層と教師信号（特に、字種識別部と属性識別部とを含む）とを用いたニューラルネットワークによって、入力された文字パターンの文字認識を行う文字認識装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−５４１９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、上述した従来の状況に鑑みて案出され、互いに向きによって同一文字に見える関係を有する２つの文字の少なくとも一方を含む入力画像に対する文字認識の際、回転なしの入力画像と回転ありの入力画像とをそれぞれ個別に２回以上文字認識する事なく迅速に文字認識し、認識精度の向上を図る文字認識装置、文字認識方法および文字認識パターン学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本開示は、互いに所定の向きによって同一文字に見える関係を有する第１の文字および第２の文字のうち少なくとも一方を含む入力画像を入力する画像入力部と、前記第１の文字の画像および前記第２の文字の画像の認識パターンを学習する学習処理部と、前記認識パターンの学習結果を用いて、前記入力画像に対する文字の認識を行う文字認識部と、前記文字の認識結果に基づいて、前記第１の文字を前記第１の文字もしくは前記第２の文字として出力し、または前記第２の文字を前記第２の文字もしくは前記第１の文字として出力する出力処理部と、を備える、文字認識装置を提供する。
【０００６】
また、本開示は、文字認識装置により実行される文字認識方法であって、互いに所定の向きによって同一文字に見える関係を有する第１の文字および第２の文字を含む第１の文字の画像および第２の文字の画像の認識パターンを学習するステップと、前記第１の文字および前記第２の文字のうち少なくとも一方を含む入力画像を入力するステップと、前記認識パターンの学習結果を用いて、前記入力画像に対する文字の認識を行うステップと、前記文字の認識結果に基づいて、前記第１の文字を前記第１の文字もしくは前記第２の文字として出力し、または前記第２の文字を前記第２の文字もしくは前記第１の文字として出力するステップと、を有する、文字認識方法を提供する。
【０００７】
本開示は、互いに所定の向きによって同一文字に見える関係を有する第１の文字および第２の文字を含む入力画像に対して認識された第１の文字の画像および第２の文字の画像をそれぞれ受け取る入力部と、回転されていない方向を示す正方向を基準として、前記第１の文字の前記正方向の画像を前記第１の文字と認識するよう学習し、前記第２の文字の前記正方向の画像を前記第２の文字と認識するよう学習し、前記第１の文字の前記正方向の画像を前記所定の向きに対応する一定の回転角だけ回転させた文字を前記第２の文字として認識するよう学習し、前記第２の文字の前記正方向の画像を前記一定の回転角だけ回転させた文字を前記第１の文字として認識するよう学習する学習処理部と、を備える、文字認識パターン学習装置を提供する。
【発明の効果】
【０００８】
本開示によれば、互いに向きによって同一文字に見える関係を有する２つの文字の少なくとも一方を含む入力画像に対する文字認識の際、回転なしの入力画像と回転ありの入力画像とをそれぞれ個別に２回以上文字認識する事なく迅速に文字認識でき、認識精度の向上を図れる。
【図面の簡単な説明】
【０００９】
【図１Ａ】本実施の形態に係る文字認識装置の内部構成の一例を示す図
【図１Ｂ】文字認識装置による学習処理および評価処理の一例を示す図
【図２】対象文字テーブルの登録内容の一例を示す図
【図３】文字認識装置における学習用正解値データの作成手順例を示すフローチャート
【図４】文字認識装置における文字認識の学習手順例を示すフローチャート
【図５】文字認識装置における文字認識の評価手順例を示すフローチャート
【図６】文字認識装置における文字認識結果の修正手順例を示すフローチャート
【図７】修正後の文字認識結果文字列データが表示されるモニタの画面の一例を示す図
【発明を実施するための形態】
【００１０】
（実施の形態の内容に至る経緯）
特許文献１において、字種識別部は、入力された文字パターンの文字の種別を示す。属性識別部は、文字（例えばひらがな）を４直角方向の角度（例えば０度、９０度、１８０度、２７０度）のいずれに回転したかを示す。しかし、この特許文献１の構成では、例えば「６」と１８０度回転された「６」（つまり「９」）はともに「６」として学習される。このため、学習処理後の文字認識の際、文字認識された結果として「６」が得られた場合、回転されていない（いわゆる正方向の）「６」なのか、あるいは１８０度回転された「９」なのかの区別が困難であった。従って、「６」は結局のところ１８０度回転された「９」と同じランク（例えば畳み込みニューラルネットワークからの出力を示す確率）となるため、正方向の「６」と判定される確率は高々約５０％であった。このため、仮に文字認識の対象となる文字が人の手により手書きされた文字であって「６」や「９」以外の他の文字候補のランクが５０％以上となった場合、「６」でも１８０度回転された「９」でもなく他の文字が文字認識の結果として選択されるという誤認識が生じる可能性があった。
【００１１】
以下の実施の形態では、互いに向きによって同一文字に見える関係を有する２つの文字の少なくとも一方を含む入力画像に対する文字認識の際、回転なしの入力画像と回転ありの入力画像とをそれぞれ個別に２回以上文字認識する事なく迅速に文字認識し、認識精度の向上を図る文字認識装置の例を説明する。
【００１２】
以下、適宜図面を参照しながら、本開示に係る文字認識装置、文字認識方法および文字認識パターン学習装置の構成および作用を具体的に開示した実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、添付図面及び以下の説明は、当業者が本開示を十分に理解するために提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【００１３】
図１Ａは、本実施の形態に係る文字認識装置１０の内部構成の一例を示す図である。図１Ｂは、文字認識装置１０による学習処理および評価処理の一例を示す図である。文字認識装置１０は、カメラ等の外部機器（図示略）から入力された入力画像データに対して所定の文字認識用解析処理（以下、「文字認識」）を実行し、入力画像データに含まれる文字あるいは文字列を認識する。なお、外部装置としては、カメラの代わりにスキャナが用いて接続されてもよいし、カメラおよびスキャナの両方が使用されて文字認識装置１０に接続されてもよい。また、文字認識装置１０は、カメラが組み込まれた装置であってもよい。また、文字認識装置１０は、広域ネットワーク網（図示略）に接続可能な通信インターフェース回路部（図示略）を有し、その広域ネットワーク網に接続されたクラウドサーバ（図示略）から入力画像データを常時あるいは定期的に取得可能であってもよい。
【００１４】
文字認識装置１０は、プロセッサ１１と、メモリ１２と、画像入力部１３と、操作部１４と、出力部１５とを含む構成である。画像入力部１３は、プロセッサ１１内に設けられても構わない。
【００１５】
プロセッサ１１は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、あるいはＧＰＵ（Ｇｒａｐｈｉｃａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて構成される。プロセッサ１１は、動作を司るコントローラとして機能し、文字認識装置１０の各部の動作を全体的に統括するための制御処理、文字認識装置１０の各部との間のデータの入出力処理、データの演算（計算）処理およびデータの記憶処理を行う。プロセッサ１１は、メモリ１２に記憶されたプログラムおよびデータに従って動作する。プロセッサ１１は、動作時にメモリ１２を使用し、プロセッサ１１により生成されたデータをメモリ１２に保存する。
【００１６】
メモリ１２は、プロセッサ１１により実行される制御用のプログラムおよびデータを記憶する。また、メモリ１２は、画像入力部１３から入力された学習用画像データｌｄ１、回転学習用画像データｒｄ１、正解値データｃｄ１、回転正解値データｗｄ１、学習済みモデルｍｄ１および認識結果データｅｄ１を記憶する。メモリ１２は、例えば一次記憶装置（例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を含む。また、メモリ１２は、二次記憶装置（例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、三次記憶装置（例えば光ディスク、ＳＤカード）を含んでよい。メモリ１２は、その他の記憶装置を含んでよい。
【００１７】
画像入力部１３は、カメラあるいはスキャナ等の外部機器（図示略）から入力画像データを入力するためのインターフェース回路を用いて構成され、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）である。なお、画像入力部１３は、例えば広域ネットワーク網（上述参照）に接続されたクラウドサーバから入力画像データをダウンロードする場合、その広域ネットワーク網に接続可能なネットワーク通信用のインターフェース回路により構成されてよい。
【００１８】
操作部１４は、例えば文字認識装置１０を使用するユーザの入力操作を受け付けるユーザインターフェース（ＵＩ：Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を構成し、入力画像データの入力操作、入力画像データに対する文字認識の実行、文字認識結果の出力等をプロセッサ１１に指示する。操作部１４は、ユーザの入力操作を受け付けるハードウェア機構として、例えばマウス、キーボード、タッチパッド、タッチパネル、マイクロホン、またはその他の入力デバイスでよい。
【００１９】
出力部１５は、プロセッサ１１により生成される文字認識結果を出力する。出力部１５は、例えば文字認識結果を表示可能なモニタ、文字認識結果を音声で出力するスピーカ、文字認識結果を記憶する記憶装置、外部の機器を制御する信号を出力するコントローラ等であってもよい。本実施の形態では、出力部１５がモニタである場合を例示して説明する。
【００２０】
文字認識装置１０において、ソフトウェア的な機能構成として、学習用回転画像生成部２１と、間違い込み学習部２２と、評価部２３と、回転判定部２４と、認識結果修正部２５と、認識結果出力部２６とがプロセッサ１１により構成されて実行される。
【００２１】
学習用回転画像生成部２１は、画像入力部１３から学習用画像データｌｄ１を入力し、学習用画像データｌｄ１を一定の回転角だけ回転させ、回転学習用画像データｒｄ１を生成する。学習用回転画像生成部２１は、生成された回転学習用画像データｒｄ１を間違い込み学習部２２に出力する。一定の回転角は、例えば回転されていない方向（つまり０度方向）を基準となる正方向として、右方向に１８０度（以下、「右１８０度」と略記）、右方向に９０度（以下、「右９０度」と略記）、左方向に９０度（以下、「左９０度」と略記）である。
【００２２】
図１Ｂに示すように、学習用画像データｌｄ１の一例として、「９分４６秒」の入力画像データを例示している。この学習用画像データｌｄ１に対して生成される回転学習用画像データｒｄ１は、例えば「９分４６秒」の入力画像データを逆さまにした（１８０度回転させた）画像データとなる（図１Ｂ参照）。
【００２３】
文字認識パターン学習装置あるいは学習処理部の一例としての間違い込み学習部２２は、入力された画像データ（例えば学習用画像データｌｄ１、回転学習用画像データｒｄ１）を用いて、その画像データ中の文字あるいは文字列を認識し、その認識結果に対する学習処理を実行する。間違い込み学習部２２は、学習処理の一例としてディープラーニング等の機械学習を行うために、それぞれ複数のニューロンからなる入力層、中間層および出力層を含む畳み込みニューラルネットワークを用いた学習モデル（以下、「学習済みモデル」と称する場合がある）を使用する。間違い込み学習部２２は、畳み込みニューラルネットワークを構成する入力層内、中間層内および出力層内のそれぞれのニューロンに学習パラメータ（例えば重み付け係数）が設定された状態で使用可能となっている。間違い込み学習部２２は、学習用画像データｌｄ１を入力するとともに、畳み込みニューラルネットワークを用いて文字認識された学習用画像データｌｄ１の認識パターン（つまり文字認識結果）を正解値データｃｄ１として認識するように学習する。同様に、間違い込み学習部２２は、回転学習用画像データｒｄ１を入力するとともに、畳み込みニューラルネットワークを用いて文字認識された回転学習用画像データｒｄ１の認識パターン（つまり文字認識結果）を回転正解値データｗｄ１として認識するように学習する。
【００２４】
図１Ｂに示すように、正解値データｃｄ１は、例えば「９分４６秒」の文字列が含まれる学習用画像データｌｄ１が文字認識された結果として得られた「９分４６秒」の文字列データである。また、回転正解値データｗｄ１は、回転学習用画像データｒｄ１が文字認識された結果として得られた「秒９４分６」の文字列データである。
【００２５】
ここで、回転正解値データｗｄ１は、対象文字（後述参照）である「９」と「６」とが上下逆さまであるので、本来正しい「６」と「９」との文字列データではなく間違った文字列データである。しかし、本実施の形態では、文字認識装置１０は、学習用画像データｌｄ１を文字認識した結果として正解値データｃｄ１を生成し、正解値データｃｄ１に含まれる、「９」と「６」を入れ替えることで回転正解値データｗｄ１を生成する。正解値データｃｄ１と回転正解値データｗｄ１は、学習データである。また、上述した対象文字とは、互いに所定の向き（例えば１８０度、９０度）によって同一文字あるいは実質的に同一である類似文字（以下、「同一類似文字」）に見える関係を有する、ペアを構成する２つの文字であり、このペアは１種類に限定されるものではなく、所定の向きに応じて複数種類が存在する（詳細は後述参照）。
【００２６】
間違い込み学習部２２は、多くの学習データを用いて機械学習を行い、文字認識を行うための学習モデルが用いる学習パラメータ（例えば上述した各層のニューロン間の重み付け係数）を更新することで学習済みモデルｍｄ１を生成あるいは更新する。間違い込み学習部２２は、学習済みモデルｍｄ１をメモリ１２に保存する。
【００２７】
文字認識部の一例としての評価部２３は、画像入力部１３に入力された評価用画像データｏｄ１を入力し、学習パラメータが更新済みである（言い換えると、学習処理が終了している）学習済みモデルｍｄ１を用いて評価用画像データｏｄ１に対する文字認識を行う。
【００２８】
図１Ｂに示すように、評価用画像データｏｄ１は、例えば学習用画像データｌｄ１に含まれる文字列と同一の文字列「９分４６秒」が含まれる画像データを上下逆さまにした（１８０度回転させた）画像データである場合を示す。なお、評価用画像データｏｄ１は、学習用画像データｌｄ１に含まれる文字列と同一の文字列が含まれなくてもよい。評価部２３は、評価用画像データｏｄ１（例えば「９分４６秒」の画像データ）を学習済みモデルｍｄ１に入力し、認識結果データｅｄ１として、「秒９４分６」の文字列データ（認識結果データｅｄ１）を得る（図１Ｂ参照）。評価部２３は、この文字認識結果、認識結果データｅｄ１を回転判定部２４に出力する。
【００２９】
回転判定部２４は、評価部２３からの認識結果データｅｄ１に基づいて、この認識結果データｅｄ１に対応する評価用画像データｏｄ１に含まれる文字列が基準となる正方向（上述参照）から見て右方向あるいは左方向に回転された状態で認識されたか否かを判定する。回転判定部２４は、例えば認識結果データｅｄ１中に含まれる特定文字の位置関係を基に、評価用画像データｏｄ１の回転の有無を判定する。一例として認識結果データｅｄ１が「秒９４分６」とすると（図１Ｂ参照）、文字列中の「分」と「秒」の前後の位置関係が逆である場合、回転判定部２４は、１８０度回転有りと判定する。回転判定部２４は、回転判定の結果、回転（例えば１８０度回転有り）が検出された場合、認識結果データｅｄ１と回転判定結果（例えば１８０度回転有りの旨の通知）とを認識結果修正部２５に出力する。一方、回転判定部２４は、回転判定の結果、回転が検出されなかった場合、認識結果出力部２６に認識結果データｅｄ１をそのまま出力する。
【００３０】
認識結果修正部２５は、回転判定部２４からの回転判定結果を受け取り、回転判定の結果が回転有りである場合、対象文字テーブルＴｂ１（図２参照）を参照し、回転判定部２４からの認識結果データｅｄ１の少なくとも一部分の文字列を修正する。ここでは、一例として、認識結果修正部２５は、認識結果データｅｄ１に含まれる対象文字「６」と「９」に対応する変換対象角度としてそれぞれ１８０度回転させた、「９」と「６」に置き換える。認識結果修正部２５は、修正された修正済認識結果データｔｄ１を認識結果出力部２６に出力する。なお、認識結果修正部２５は、修正済認識結果データｔｄ１に含まれる特定文字（例えば「秒」、「分」）の位置関係に応じて並び替えた文字列（例えば「９分４６秒」）を、修正済認識結果データｔｄ１として出力してもよい。
【００３１】
出力処理部の一例としての認識結果出力部２６は、回転判定部２４からの文字認識結果、または認識結果修正部２５からの修正済みである文字認識結果を出力部１５に出力する。
【００３２】
図２は、対象文字テーブルＴｂ１の登録内容の一例を示す図である。対象文字テーブルＴｂ１には、上述した対象文字（つまり、例えば１８０度回転させると互いに同一あるいは似た形状となる）文字の組み合わせと、その組み合わせに対応する変換対象角度とが対応付けられて登録されている。対象文字テーブルＴｂ１のデータは、例えばメモリ１２に保存されている。
【００３３】
図２では、本実施の形態の説明を分かり易くするために、一例として、対象文字が「６」および「９」のペアであり、「６」および「９」のペアに対応する変換対象角度は１８０度である場合が示されている。ここで、変換対象角度とは、文字認識装置１０における学習処理時あるいは認識結果の修正時に、文字の特性（例えば上述した同一類似文字に見える関係参照）に応じて、認識された結果である文字あるいは文字列が回転される角度を示している。その他、変換対象角度が１８０度である対象文字の組み合わせ例として、「７」と「Ｌ」、「３」と「Ｅ」、「Ｗ」と「Ｍ」、「ｄ」と「ｐ」、「ｂ」と「ｑ」、「ｕ」と「ｎ」、「ｈ」と「ｙ」等が挙げられる。ここでは、数字とアルファベット、アルファベットとアルファベットの組み合わせを例示したが、アルファベットと漢字、例えば「Ｙ」と「人」等、任意の文字種の文字の組み合わせであってもよい。
【００３４】
また、図２では変換対象角度が１８０度である対象文字の組み合わせを示したが、例えば右９０度回転させると同一となるあるいは実質的に同一となる同一類似文字の組み合わせでもよい。例えば、「Ｎ」を右９０度回転させると、「ｚ」に似た形状となる「Ｎ」と「ｚ」の組み合わせの他、「３」と「ω」の組み合わせ、「３」と「Ｗ」の組み合わせ等が挙げられる。
【００３５】
また同様に、例えば左９０度回転させると同一となるあるいは実質的に同一となる同一類似文字の組み合わせでもよい。例えば、「３」を左９０度回転させると、「ｍ」に似た形状となる「３」と「ｍ」の組み合わせの他、「Ｈ」と「エ」の組み合わせ、「川」と「三」の組み合わせ等が挙げられる。
【００３６】
次に、本実施の形態に係る文字認識装置１０の動作を説明する。
【００３７】
先ず始めに、入力画像に含まれる文字を認識するための学習処理を示す。次に、この学習結果を基に、評価処理時の入力画像に含まれる文字を認識するための評価処理を示す。
【００３８】
（文字認識の学習）
図３は、文字認識装置１０における学習用正解値データの作成手順例を示すフローチャートである。ここで、学習用正解値データは、正解値データｃｄ１と回転正解値データｗｄ１とを含む。
【００３９】
図３において、画像入力部１３は、入力画像データとしての学習用画像データｌｄ１を入力する（Ｓ１）。学習用画像データｌｄ１は、一例として「９分４６秒」の文字が含まれた画像データである。
【００４０】
プロセッサ１１は、学習用画像データｌｄ１に含まれる文字を認識する文字認識処理を実行する（Ｓ２）。ステップＳ２の文字認識処理の結果、正解値データｃｄ１が得られる。正解値データｃｄ１は、「９分４６秒」の文字列データである（図１Ｂ参照）。さらに、プロセッサ１１は、正解値データｃｄ１の中に対象文字を含むか否かを判別する（Ｓ３）。対象文字は、一例として、「６」と「９」の組み合わせの少なくとも一方である。
【００４１】
対象文字を含む場合（Ｓ３、ＹＥＳ）、プロセッサ１１は、例えばメモリ１２に保存されている対象文字テーブルＴｂ１を参照し、対象文字の変換対象角度が登録されているか否かを判別する（Ｓ４）。例えば正解値データｃｄ１の中に「６」と「９」の組み合わせが存在する場合、対象文字テーブルＴｂ１によると、変換対象角度は１８０度である。対象文字の変換対象角度が登録されている場合（Ｓ４、ＹＥＳ）、学習用回転画像生成部２１は、学習用画像データを変換対象角度（一定の回転角の一例）だけ回転させて回転学習用画像データｒｄ１を得る。
【００４２】
プロセッサ１１は、回転学習用画像データｒｄ１に対し、文字認識処理を行い、回転した正解データを得る。回転した正解データは、「秒６４分９」の文字列データである（図１Ｂ参照）。プロセッサ１１は、この回転した正解データに含まれる対象文字「６」を「９」に変換し、「９」を「６」に変換し（Ｓ５）、回転正解値データｗｄ１を生成する。回転正解値データｗｄ１は、「秒９４分６」の文字列データであり、間違い学習データである。
【００４３】
プロセッサ１１は、学習用正解値データを作成する（Ｓ６）。学習用正解値データは、「９分４６秒」の文字列を含む正解値データｃｄ１と、「秒９４分６」の文字列を含む回転正解値データｗｄ１とを含む。プロセッサ１１は、学習用正解値データを間違い込み学習部２２に出力する（Ｓ７）。この後、プロセッサ１１は、図３に示す一連の処理を終了する。
【００４４】
図４は、文字認識装置１０における文字認識の学習手順例を示すフローチャートである。間違い込み学習部２２は、学習用画像データｌｄ１、回転学習用画像データｒｄ１、正解値データｃｄ１および回転正解値データｗｄ１を基に、畳み込みニューラルネットワークを用いて機械学習を行い、学習済みモデルｍｄ１を生成する。この機械学習では、ディープラーニングによる教師有り強化学習が行われる。この機械学習において、誤差逆伝搬法（バックプロパゲーション）により各層のニューロン間の重み付け係数が更新される。重み付け係数の更新結果、学習済みモデルｍｄ１が生成される。このディープラーニングでは、畳み込みおよびプーリングを２回繰り返した後、３つの全結合を順に行い、数字０〜９に対応する１０個の候補値を出力する、ＬｅＮｅｔの畳み込みニューラルネットワークが用いられる。なお、畳み込みニューラルネットワークは、ＬｅＮｅｔに限定されず、ＶＧＧ等の他のアーキテクチャを用いてもよい。
【００４５】
ここでは、一例として、間違い込み学習部２２は、「９分４６秒」の学習用画像データｌｄ１の認識パターンを、「９分４６秒」の文字列を含む正解値データｃｄ１として認識するように学習する。また、間違い込み学習部２２は、「９分４６秒」の学習用画像データｌｄ１を１８０度回転させた回転学習用画像データｒｄ１の認識パターンを「秒９４分６」の文字列を含む回転正解値データｗｄ１（間違いテータ）として認識するように学習する。
【００４６】
図４において、間違い込み学習部２２は、学習用の画像データとして、回転学習用画像データｒｄ１または学習用画像データｌｄ１を入力する（Ｓ１１）。ここでは、回転学習用画像データｒｄ１の文字認識結果を学習させる手順について説明するが、学習用画像データｌｄ１の文字認識結果を学習させる手順についても同様である。回転学習用画像データｒｄ１は、例えば、３２×３２画素の入力画像である。
【００４７】
間違い込み学習部２２は、所定サイズのフィルタを用いて、回転学習用画像データｒｄ１の畳み込み処理を行い、複数枚の特徴マップ（以下、「フューチャーマップ」とも称する）を生成する（Ｓ１２）。特徴マップは、回転学習用画像データｒｄ１の文字の特徴を表す部分である。畳み込み処理の結果、例えば２８×２８画素のフューチャーマップが６枚得られる。
【００４８】
間違い込み学習部２２は、ロバスト性を高めるために、６枚のフューチャーマップのそれぞれに対し、プーリング処理を行う（Ｓ１３）。このプーリング処理では、間違い込み学習部２２は、２×２画素の中で最大値を選択する。プーリング処理の結果、例えば１４×１４画素のフューチャーマップが６枚得られる。
【００４９】
間違い込み学習部２２は、ステップＳ１２，Ｓ１３と同様に、例えば１４×１４画素のフューチャーマップのそれぞれに対し、畳み込み処理とプーリンク処理を繰り返す（Ｓ１４，Ｓ１５）。ステップＳ１４の畳み込み処理では、１６枚の５×５画素の特徴マップが出力される。ステップＳ１５のプーリング処理では、ステップＳ１３と同様、間違い込み学習部２２は、２×２画素の中で最大値を選択する。これにより、例えば５×５画素のフューチャーマップが１６枚得られる。
【００５０】
間違い込み学習部２２は、５×５画素の１６枚のフューチャーマップを用いて、全結合を行い、１２０個の中間値を出力する（Ｓ１６）。さらに、間違い込み学習部２２は、１２０個の中間値を用いて全結合を行い、８４個の中間値を出力する（Ｓ１７）。さらに、間違い込み学習部２２は、８４個の中間値を用いて全結合を行い、出力層で１０個の候補値（数字０〜９）の確率を出力する（Ｓ１８）。間違い込み学習部２２は、確率が最も高い候補値を認識結果として出力する（Ｓ１９）。
【００５１】
間違い込み学習部２２は、出力結果（確率が最も高い候補値）と正解値の誤差を算出する（Ｓ２０）。間違い込み学習部２２は、この誤差を基に、各層のニューロン間の重み付け係数を更新する（Ｓ２１）。間違い込み学習部２２は、重み付け係数が更新された学習モデルである、学習済みモデルｍｄ１を生成し、メモリ１２に保存する（Ｓ２２）。なお、図４では、学習手順に対応する一連の学習処理（ステップＳ１１〜ステップＳ２２）は、ステップＳ１１〜Ｓ２２からなる処理単位を１回として数えた場合に、一度だけ実行されるものではなく所定の条件（例えば学習回数あるいは認識率）が満たされるまで複数回以上繰り返して実行される。学習済みモデルｍｄ１は、学習処理により生成された重み付け係数等のパラメータである。学習済みモデルｍｄ１は、評価部２３が文字認識を実行する際に使用される。
【００５２】
（文字認識の評価）
図５は、文字認識装置１０における文字認識の評価手順例を示すフローチャートである。図４に示す学習処理と同様な処理の説明は簡略化あるいは省略する。
【００５３】
図５において、評価部２３は、画像入力部１３を介して、評価用画像データｏｄ１を入力する（Ｓ３１）。評価用画像データｏｄ１は、例えば、３２×３２画素の入力画像のデータである。入力画像は、一例として、「９分４６秒」の画像を１８０度回転させた（つまり上下逆さまの）画像である。評価部２３は、メモリ１２に保存された学習済みモデルｍｄ１を用いて、入力画像に対して文字認識処理を行う。
【００５４】
評価部２３は、６枚の特徴マップを用いて、評価用画像データｏｄ１の畳み込み処理を行う（Ｓ３２）。特徴マップは、評価用画像データｏｄ１の文字の特徴を表す部分である。畳み込み処理の結果、例えば２８×２８画素のフューチャーマップが６枚得られる。
【００５５】
評価部２３は、ロバスト性を高めるために、６枚のフューチャーマップに対し、プーリング処理を行う（Ｓ３３）。このプーリング処理では、評価部２３は、２×２画素の中で最大値を選択する。プーリング処理の結果、例えば１４×１４画素のフューチャーマップが６枚得られる。
【００５６】
評価部２３は、ステップＳ３２，Ｓ３３と同様、例えば１４×１４画素のフューチャーマップに対し、畳み込み処理とプーリンク処理を繰り返す（Ｓ３４，Ｓ３５）。ステップＳ３４の畳み込み処理では、例えば１６枚の５×５画素の特徴マップが生成される。ステップＳ３５のプーリング処理では、Ｓ３３と同様、評価部２３は、２×２画素の中で最大値を選択する。これにより、例えば５×５画素のフューチャーマップが１６枚得られる。
【００５７】
評価部２３は、５×５画素の１６枚のフューチャーマップを用いて、全結合を行い、１２０個の中間値を出力する（Ｓ３６）。評価部２３は、１２０個の中間値を用いて全結合を行い、８４個の中間値を出力する（Ｓ３７）。評価部２３は、８４個の中間値を用いて全結合を行い、出力層で１０個の候補値（数字０〜９）の確率を出力する（Ｓ３８）。評価部２３は、確率が最も高い候補値を認識結果として出力する（Ｓ３９）。「９分４６秒」の画像を１８０度回転させた（逆さまの）画像が入力画像である場合、この認識結果として、「秒９４分６」の文字列データが得られる。
【００５８】
図６は、文字認識装置１０における文字認識結果の修正手順例を示すフローチャートである。
【００５９】
図６において、回転判定部２４は、評価部２３による文字認識結果の文字列データを入力する（Ｓ４１）。回転判定部２４は、文字認識結果の文字列データの中から特定の文字（つまり回転判定用のキーワード）を抽出する（Ｓ４２）。例えば、文字認識結果が「秒９４分６」の文字列データである場合、回転判定用のキーワードは、「分」と「秒」である。このような回転判定用のキーワードは、例えばメモリ１２において予め登録されていることが好ましい。
【００６０】
回転判定部２４は、変換対象角度があるか否か（つまり文字認識結果の文字列データの回転角度が何度であるか）を判別する（Ｓ４３）。例えば、変換対象である「秒９４分６」の文字列に含まれる、「分」と「秒」の順方向の位置が逆転していた場合、つまり「秒」が先で「分」が後である場合、回転判定部２４は、上下逆さまの評価用画像データｏｄ１に対して文字認識が行われたとして、変換対象の回転角度があると判断する。
【００６１】
回転判定部２４は、文字認識結果の文字列データに対象文字があるか否かを判別する（Ｓ４４）。例えば、「秒９４分６」の文字列に「６」と「９」が含まれるので、回転判定部２４は、対象文字があると判断する。
【００６２】
認識結果修正部２５は、文字認識結果の文字列データに含まれる対象文字を修正する（Ｓ４５）。例えば、認識結果修正部２５は、対象文字「６」を「９」に修正し、「９」を「６」に修正する。
【００６３】
認識結果出力部２６は、認識結果修正部２５による修正結果を含む、修正後の文字認識結果文字列データを作成する（Ｓ４６）。例えば、認識結果出力部２６は、修正後の文字認識結果文字列データとして、「秒６４分９」の文字列データを作成する。認識結果出力部２６は、作成した修正後の文字認識結果文字列データを出力部１５に出力する（Ｓ４７）。出力部１５は、例えばモニタ１５ｚを有する場合、修正後の文字認識結果文字列データをモニタ１５ｚの画面に表示する。なお、ステップＳ４３で変換対象の回転角度が無い場合、またはステップＳ４４で対象文字が無い場合、回転判定部２４は、ステップＳ４６で認識結果の文字列データを認識結果出力部２６に出力する。認識結果出力部２６は、文字認識結果の文字列データを出力部１５に出力する。
【００６４】
図７は、修正後の文字認識結果文字列データが表示されるモニタ１５ｚの画面を示す図である。モニタ１５ｚの画面には、「文字認識結果は次の通りです」および「秒６４分９」が表示される。なお、認識結果出力部２６は、修正後の文字認識結果文字列データとして、「９分４６秒」の文字列データを作成してもよい。この場合、モニタ１５ｚの画面には、「文字認識結果は次の通りです」および「９分４６秒」が表示される。
【００６５】
一方、ステップＳ４３で回転角度が無い場合、または、ステップＳ４４で対象文字が無い場合、回転判定部２４は、文字認識結果文字列データをそのまま出力部１５に出力する。
【００６６】
このように、文字認識装置１０は、正方向の入力画像の文字認識と、一定の回転角回転させた入力画像の文字認識との、２回の文字認識を行うことなく、１回の文字認識で一定の回転角回転した入力画像の文字認識を行うことができる。したがって、例えば上下逆さまの文字列が含まれる入力画像であっても、文字認識の処理時間を短縮できる。
【００６７】
以上により、本実施の形態の文字認識装置１０は、互いに所定の向きによって同一文字に見える関係を有する第１の文字（例えば「６」）および第２の文字（例えば「９」）のうち少なくとも一方を含む入力画像を入力する画像入力部１３と、例えば「６」の第１の文字の画像および例えば「９」の第２の文字の画像の認識パターンを学習する間違い込み学習部２２と、認識パターンの学習結果を用いて入力画像に対する文字の認識を行う評価部２３と、文字の認識結果に基づいて、第１の文字を第１の文字もしくは第２の文字として出力し、または第２の文字を第２の文字もしく第１の文字として出力する認識結果出力部２６と、を備える。
【００６８】
これにより、文字認識装置１０は、互いに向きによって同一文字に見える関係を有する２つの文字を含む入力画像に対する文字認識の際に、回転なしの入力画像と回転ありの入力画像との両方を分けて２回以上それぞれ個別に認識する必要がなく迅速な文字認識を実行できる。したがって、文字認識装置１０によれば、文字認識の処理時間を短縮でき、かつ認識精度の向上が図れる。
【００６９】
また、間違い込み学習部２２は、回転されていない方向を示す正方向を基準として、第１の文字の正方向の画像を第１の文字と認識するよう学習し、第２の文字の正方向の画像を第２の文字と認識するよう学習する。間違い込み学習部２２は、第１の文字の正方向の画像を所定の向きに対応する一定の回転角だけ回転させた文字を第２の文字として認識するよう学習し、第２の文字の正方向の画像を一定の回転角だけ回転させた文字を第１の文字として認識するよう学習する。これにより、文字認識装置１０は、第１の文字を含む、一定の回転角回転した入力画像が入力されても、正方向の文字である第２の文字を認識できる。同様に、文字認識装置１０は、第２の文字を含む、一定の回転角回転した入力画像が入力されても、正方向の文字である第１の文字を認識できる。
【００７０】
また、文字認識装置１０は、文字の認識結果に基づいて、回転されていない方向を示す正方向を基準として、入力画像が所定の向きに対応する一定の回転角だけ正方向の状態から回転されているか否かを判定する回転判定部２４と、入力画像が所定の向きに対応する一定の回転角だけ正方向の状態から回転されているとの判定に従って、第１の文字を第２の文字として修正し、または第２の文字を第１の文字として修正する認識結果修正部２５と、を更に備える。認識結果出力部２６は、認識結果修正部２５からの出力結果を出力する。これにより、文字認識装置１０は、入力画像が回転した状態で入力された場合でも、正方向を基準とする、修正された文字を出力できる。
【００７１】
また、認識結果出力部２６は、第１の文字または第２の文字の認識結果を出力部１５に出力する。これにより、文字認識装置１０は、出力部１５に出力された正しく認識された文字を用いて、必要に応じて更なる処理を実行できる。
【００７２】
また、第１の文字と第２の文字とは、互いに１８０度回転させると同一文字に見える上下逆さまの関係を有する。これにより、上下逆さまの関係を有する第１の文字および第２の文字のうち、第１の文字を含む入力画像が一定の回転角だけ回転して入力されても、文字認識装置１０は、第２の文字を認識できる。
【００７３】
また、第１の文字と第２の文字とは、第１の文字を右方向に９０度回転させると第２の文字に見える関係を有する。これにより、第１の文字を右９０度回転させて第２の文字になる場合、第１の文字を含む入力画像が一定の回転角だけ回転して入力されても、文字認識装置１０は、第２の文字を認識できる。
【００７４】
また、第１の文字と第２の文字とは、第１の文字を左方向に９０度回転させると第２の文字に見える関係を有する。これにより、第１の文字を左９０度回転させて第２の文字になる場合、第１の文字を含む入力画像が一定の回転角だけ回転して入力されても、文字認識装置１０は、第２の文字を認識できる。
【００７５】
また、入力画像は、第１の文字および第２の文字の少なくとも一方を含む文字列の画像である。間違い込み学習部２２は、文字列の画像に対する文字の認識を行い、文字列に含まれる、第１の文字および第２の文字を一定の回転角だけ回転した回転正解値データｗｄ１（回転文字列の一例）を作成する。間違い込み学習部２２は、一定の回転角だけ回転した回転学習用画像データｒｄ１（文字列の画像の一例）を回転正解値データｗｄ１として認識するように学習する。これにより、入力画像が評価用画像データｏｄ１である場合、文字認識装置１０は、評価用画像データｏｄ１に含まれる文字列を正しく認識できる。
【００７６】
また、回転判定部２４は、文字列の画像に対する文字の認識の結果、認識された文字列に含まれる、第１の文字および第２の文字以外の文字、例えば「秒」と「分」の位置関係を基に、入力画像が正方向の状態から回転されているか否かを判定する。これにより、文字認識装置１０は、評価用画像データｏｄ１が一定の回転角だけ回転して入力されても、文字列を正しく認識できる。
【００７７】
以上、図面を参照しながら各種の実施の形態について説明したが、本開示はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。
【００７８】
例えば、上記実施の形態では、一定の回転角として、入力画像が１８０度回転している場合を示したが、左９０度、右９０度の他、右斜め４５度、左斜め４５度等、任意の角度で回転している場合も、本開示は、同様に適用可能である。これらの場合、任意の角度回転させた場合に似た形状となる文字（対象文字）の組み合わせが対象文字テーブルＴｂ１に登録される。
【００７９】
また、回転判定部２４は、２つ以上の文字の位置関係だけで１８０度回転の有無を判定することに限定されず、他に、特徴的な特定の文字あるいはマークの有無に基づいて、１８０度回転の有無を判定してもよい。即ち、回転判定部２４は、特徴的な特定の文字あるいはマークを正方向のものと１８０度回転のものとをそれぞれメモリ１２に保持させておき、１８０度回転の有無を判定する際にメモリ１２から読み出して判別してもよい。これにより、回転判定部２４は、例えば１８０度回転の有無をより高精度に判別できる。
【００８０】
また、間違い込み学習部２２は、人の手書きにより斜めに記載される場合に限らず、例えば印刷装置によって斜めに印刷（印字）される可能性があることも加味して学習してもよい。例えば、間違い込み学習部２２は、印刷された文字（例えば数字の「６」）が−９０度から＋９０度の回転がなされている（つまり斜めに印字されている）場合に「６」と学習し、−９０度から＋９０度の範囲外の回転がなされている場合に「９」と学習してよい。
【産業上の利用可能性】
【００８１】
本開示は、互いに向きによって同一文字に見える関係を有する２つの文字の少なくとも一方を含む入力画像に対する文字認識の際、回転なしの入力画像と回転ありの入力画像とをそれぞれ個別に２回以上文字認識する事なく迅速に文字認識を実行し、認識精度の向上を図れる文字認識装置、文字認識方法および文字認識パターン学習装置として有用である。
【符号の説明】
【００８２】
１０  文字認識装置
１１  プロセッサ
１２  メモリ
１３  画像入力部
１４  操作部
１５  出力部
２１  学習用回転画像生成部
２２  間違い込み学習部
２３  評価部
２４  回転判定部
２５  認識結果修正部
２６  認識結果出力部
【図１Ａ】
2020123141.tif 000003
【図１Ｂ】
2020123141.tif 000004
【図２】
2020123141.tif 000005
【図３】
2020123141.tif 000006
【図４】
2020123141.tif 000007
【図５】
2020123141.tif 000008
【図６】
2020123141.tif 000009
【図７】
2020123141.tif 000010