IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立情報通信エンジニアリングの特許一覧

特開2024-139561文字認識装置、方法、およびプログラム
<>
  • 特開-文字認識装置、方法、およびプログラム 図1
  • 特開-文字認識装置、方法、およびプログラム 図2
  • 特開-文字認識装置、方法、およびプログラム 図3
  • 特開-文字認識装置、方法、およびプログラム 図4
  • 特開-文字認識装置、方法、およびプログラム 図5
  • 特開-文字認識装置、方法、およびプログラム 図6
  • 特開-文字認識装置、方法、およびプログラム 図7
  • 特開-文字認識装置、方法、およびプログラム 図8
  • 特開-文字認識装置、方法、およびプログラム 図9
  • 特開-文字認識装置、方法、およびプログラム 図10
  • 特開-文字認識装置、方法、およびプログラム 図11
  • 特開-文字認識装置、方法、およびプログラム 図12
  • 特開-文字認識装置、方法、およびプログラム 図13
  • 特開-文字認識装置、方法、およびプログラム 図14
  • 特開-文字認識装置、方法、およびプログラム 図15
  • 特開-文字認識装置、方法、およびプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024139561
(43)【公開日】2024-10-09
(54)【発明の名称】文字認識装置、方法、およびプログラム
(51)【国際特許分類】
   G06V 30/12 20220101AFI20241002BHJP
   G06V 30/196 20220101ALI20241002BHJP
【FI】
G06V30/12 Z
G06V30/196 G
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023050559
(22)【出願日】2023-03-27
(71)【出願人】
【識別番号】000233295
【氏名又は名称】株式会社日立情報通信エンジニアリング
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】堤 庸昂
(72)【発明者】
【氏名】橋本 博幸
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064AA01
5B064AB03
5B064AB16
5B064BA01
5B064EA07
5B064EA10
5B064EA26
5B064FA10
(57)【要約】
【課題】文字認識技術に関して、棄却を含む文字認識の精度や効率等を向上できる技術を提供する。
【解決手段】文字認識装置は、画像からの文字認識の結果の文字である認識文字について、妥当性の判断に基づいて、当該認識文字を「不読」状態として棄却する棄却機能を有し、認識文字について、文字認識の際に着目した度合いを表す画像情報であるヒートマップを計算し、認識文字のヒートマップを、予め登録されている、文字ごとのヒートマップパターンを有するヒートマップパターンテーブルと比較して、該当するかどうかを判定し、ヒートマップパターンテーブルにおいて、該当しない場合に、認識文字を「不読」状態として棄却する。
【選択図】図2
【特許請求の範囲】
【請求項1】
画像から文字を認識する文字認識装置であって、
前記画像からの文字認識の結果の文字である認識文字について、妥当性の判断に基づいて、当該認識文字を「不読」状態として棄却する棄却機能を有し、
前記認識文字について、前記文字認識の際に着目した度合いを表す画像情報であるヒートマップを計算し、
前記認識文字の前記ヒートマップを、予め登録されている、文字ごとのヒートマップパターンを有するヒートマップパターンテーブルと比較して、該当するかどうかを判定し、
前記ヒートマップパターンテーブルにおいて、該当しない場合に、前記認識文字を「不読」状態として棄却する、
文字認識装置。
【請求項2】
請求項1記載の文字認識装置において、
前記認識文字を、予め登録されている、文字ごとの字形の情報を有する類似字形分類テーブルと比較して、該当するかどうかを判定し、
前記認識文字として複数の認識文字が並んだ文字列の位置関係情報に基づいて、前後の認識文字が、前記類似字形分類テーブルにおいて、前記字形に該当する場合に、前記前後の認識文字を「不読」状態として棄却する、
文字認識装置。
【請求項3】
請求項1記載の文字認識装置において、
前記ヒートマップと比較して判定する処理は、前記認識文字の前記ヒートマップと、前記ヒートマップパターンテーブルのヒートマップパターンとの重なり度合いを計算し、前記重なり度合いが閾値よりも小さい場合には、前記該当しないと判定する処理、を含む、
文字認識装置。
【請求項4】
請求項2記載の文字認識装置において、
前記類似字形分類と比較して判定する処理は、前記前後の認識文字を、n番目の認識文字、n+1番目の認識文字とした場合に、前記類似字形分類テーブルの前記字形における前側の一部に前記n番目の認識文字が含まれ、かつ、後側の一部に前記n+1番目の認識文字が含まれるという前記字形に該当するかを判断する処理、を含む、
文字認識装置。
【請求項5】
画像から文字を認識する文字認識装置によって実行される文字認識方法であって、
前記文字認識装置は、前記画像からの文字認識の結果の文字である認識文字について、妥当性の判断に基づいて、当該認識文字を「不読」状態として棄却する棄却機能を有し、
前記文字認識装置が実行するステップとして、
前記認識文字について、前記文字認識の際に着目した度合いを表す画像情報であるヒートマップを計算するステップと、
前記認識文字の前記ヒートマップを、予め登録されている、文字ごとのヒートマップパターンを有するヒートマップパターンテーブルと比較して、該当するかどうかを判定するステップと、
前記ヒートマップパターンテーブルにおいて、該当しない場合に、前記認識文字を「不読」状態として棄却するステップと、
を有する、文字認識方法。
【請求項6】
画像から文字を認識する文字認識装置に処理を実行させる文字認識プログラムであって、
前記文字認識装置は、前記画像からの文字認識の結果の文字である認識文字について、妥当性の判断に基づいて、当該認識文字を「不読」状態として棄却する棄却機能を有し、
前記文字認識装置に実行させる処理として、
前記認識文字について、前記文字認識の際に着目した度合いを表す画像情報であるヒートマップを計算するヒートマップ計算処理と、
前記認識文字の前記ヒートマップを、予め登録されている、文字ごとのヒートマップパターンを有するヒートマップパターンテーブルと比較して、該当するかどうかを判定するヒートマップ比較判定処理と、
前記ヒートマップパターンテーブルにおいて、該当しない場合に、前記認識文字を「不読」状態として棄却する処理と、
を有する、文字認識プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、文字認識技術に関する。
【背景技術】
【0002】
従来、光学文字認識/光学文字読み取り(OCRと記載する場合がある)等の文字認識技術がある。OCRは、帳票等の用紙をスキャナ等で採取した画像から文字や図形等の情報を読み取る。読み取り結果(認識結果や識別結果などと記載する場合もある)の文字には、判別困難な曖昧な文字、非文字、形が崩れた文字、かすれ、つぶれ等が混入する場合がある。
【0003】
一般に、OCRでは、文字認識の精度などの基本性能に関して、正しい文字を正しく文字認識することの他に、文字認識結果が正しいかどうか疑わしい場合にその文字認識結果が正しいかどうか疑わしいということを結果出力すること、が必要である。
【0004】
OCR技術では、まず文字認識した後に、文字認識結果について、棄却の判断の処理を行う場合がある。棄却の処理では、文字認識結果が正しいかどうか疑わしいと判定した場合に、その文字認識結果が正しいかどうか疑わしいということ、言い換えると、その文字を正しく読み取りできないということを、「不読」(unreadable)という結果として出力する。「不読」状態となった文字については、例えばユーザが目視確認して対処する。
【0005】
先行技術例として、特開2021-96378号公報(特許文献1)が挙げられる。特許文献1には、系列単位での認識処理において、系列内の部分のみをリジェクトすることができる情報処理装置等を提供する旨が記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2021-96378号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1では、文字クラスに加えてリジェクトクラスを設定し、尤度に応じた結果を出力する機能に関する記載がある。
【0008】
従来のOCR技術では、コンピュータは、文字認識のステップで、統計手法あるいは構造解析手法を用いて、文字画像ごとに文字認識を行う。次に、コンピュータは、棄却の機能を備える場合、文字認識結果の文字について、棄却のステップで、文字認識結果が正しいかどうか、すなわち「不読」にするかどうかの判定を含む、棄却の処理を行う。
【0009】
従来の棄却の処理は、例えば、文字認識のステップで得られる文字の尤度などのスコア(言い換えると評価値)を用いて、閾値との比較で「不読」の判定を行う処理が挙げられる。そのような棄却の技術の場合は、精度や効率等の観点で改善余地がある。
【0010】
本開示の目的は、上記OCR等の文字認識技術に関して、棄却を含む文字認識の精度や効率等を向上できる技術を提供することである。
【課題を解決するための手段】
【0011】
本開示のうち代表的な実施の形態は以下に示す構成を有する。実施の形態の文字認識装置は、画像から文字を認識する文字認識装置であって、前記画像からの文字認識の結果の文字である認識文字について、妥当性の判断に基づいて、当該認識文字を「不読」状態として棄却する棄却機能を有し、前記認識文字について、前記文字認識の際に着目した度合いを表す画像情報であるヒートマップを計算し、前記認識文字の前記ヒートマップを、予め登録されている、文字ごとのヒートマップパターンを有するヒートマップパターンテーブルと比較して、該当するかどうかを判定し、前記ヒートマップパターンテーブルにおいて、該当しない場合に、前記認識文字を「不読」状態として棄却する。
【発明の効果】
【0012】
本開示のうち代表的な実施の形態によれば、上記OCR等の文字認識技術に関して、棄却を含む文字認識の精度や効率等を向上できる。上記した以外の課題、構成および効果等については、発明を実施するための形態において示される。
【図面の簡単な説明】
【0013】
図1】実施の形態1の文字認識装置を含むシステムの構成を示す図。
図2】実施の形態1における棄却を含む文字認識処理の構成を示す図。
図3】実施の形態1における棄却を含む文字認識処理のフローを示す図。
図4】実施の形態1におけるヒートマップ計算の具体例を示す図。
図5】実施の形態1におけるヒートマップ比較の具体例を示す図。
図6】実施の形態1におけるヒートマップ比較判定手法の例を示す図。
図7】実施の形態1におけるヒートマップ比較判定手法の例における重なり度合いの判断を示す図。
図8】実施の形態1における棄却を含む文字認識処理の具体例(誤読の第2例)を示す図。
図9】実施の形態1におけるヒートマップ比較の具体例を示す図。
図10】実施の形態1における類似字形分類比較の具体例を示す図。
図11】実施の形態1における類似字形分類テーブルの構成を示す図。
図12】実施の形態1における類似字形分類比較処理のフローを示す図。
図13】比較例における棄却を含む文字認識処理の構成を示す図。
図14】比較例および実施の形態1における棄却を含む文字認識処理の具体例(誤読の第1例)を示す図。
図15】比較例における識別結果の具体例を示す図。
図16】実施の形態1におけるGUI画面例を示す図。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら本開示の実施の形態を詳細に説明する。図面において、同一部には原則として同一符号を付し、繰り返しの説明を省略する。図面において、構成要素の表現は、発明の理解を容易にするために、実際の位置、大きさ、形状、範囲等を表していない場合がある。
【0015】
説明上、プログラムによる処理について説明する場合に、プログラムや機能や処理部等を主体として説明する場合があるが、それらについてのハードウェアとしての主体は、プロセッサ、あるいはそのプロセッサ等で構成されるコントローラ、装置、計算機、システム等である。計算機は、プロセッサによって、適宜にメモリや通信インタフェース等の資源を用いながら、メモリ上に読み出されたプログラムに従った処理を実行する。これにより、所定の機能や処理部等が実現される。プロセッサは、例えばCPU/MPUやGPU等の半導体デバイス等で構成される。処理は、ソフトウェアプログラム処理に限らず、専用回路でも実装可能である。専用回路は、FPGA、ASIC、CPLD等が適用可能である。
【0016】
プログラムは、対象計算機に予めデータとしてインストールされていてもよいし、プログラムソースから対象計算機にデータとして配布されてもよい。プログラムソースは、通信網上のプログラム配布サーバでもよいし、非一過性のコンピュータ読み取り可能な記憶媒体、例えばメモリカードやディスクでもよい。プログラムは、複数のモジュールから構成されてもよい。コンピュータシステムは、複数台の装置によって構成されてもよい。コンピュータシステムは、クライアント・サーバシステム、クラウドコンピューティングシステム、IoTシステム等で構成されてもよい。各種のデータや情報は、例えばテーブルやリスト等の構造で構成されるが、これに限定されない。識別情報、識別子、ID、名前、番号等の表現は互いに置換可能である。
【0017】
[比較例]
図13は、比較例の文字認識装置および方法における、棄却を含む文字認識処理のフローを示す。図13に対応した文字認識処理例の流れ・概要は、以下の通りである。
【0018】
(1)画像入力部201での画像入力・画像処理。
(2)文字切り出し部202での文字行検出処理および一文字検出処理、言い換えると文字切り出し処理。
(3)特徴抽出部203での特徴抽出処理。
(4)文字認識部204(言い換えると識別部)での一文字認識処理、言い換えると文字認識処理、識別処理。
(5)棄却部205での棄却処理。
(6)結果出力部206での結果出力処理。
【0019】
文字認識部204は、文字切り出し部202により検出された一文字ごとに、特徴抽出部203により抽出された文字特徴について、識別用辞書211を用いて、文字を認識する。文字認識部204は、この文字認識処理の際に、文字の尤度を算出する。尤度をdとする。
【0020】
棄却部205は、文字認識部204による文字認識結果の文字について、その文字の尤度dの情報を用いて、尤度dに基づいて、棄却判断に関する所定の基準(例えば棄却用閾値など)を満たすかどうかを判断する。棄却部205は、例えば、文字の尤度dを棄却用閾値と比較する。棄却部205は、基準を満たさない場合(例えばdが閾値未満の場合)には、その文字を、「不読」として棄却すると判定する、言い換えると、不読化する。
【0021】
結果出力部206は、棄却を含む文字認識の結果をユーザに対し出力する。例えば、ユーザは、表示画面で、棄却の判定結果を見て確認する。ユーザは、すべての文字を確認・チェックする必要は無く、「不読」部分のみを確認・チェックすればよい。
【0022】
高精度の棄却を含む文字認識を実現するためには、判定基準の明確化が必要である。例えば、従来一般的な例では、棄却の判断の際に、上記のように、文字認識での尤度の情報が利用されており、例えば尤度に関する閾値(言い換えると棄却用閾値)が用いられている。
【0023】
しかしながら、文字認識での尤度の算出根拠、出力基準等が不明である場合が多い。その場合に、棄却機能では、棄却基準としての好適な閾値の設定が難しい。図13の例では、棄却用閾値として例えば尤度dに関する閾値を設定するが、上述のように、文字認識部204の内部の尤度dの算出根拠が不明である場合には、好適な値の設定が難しい。
【0024】
棄却機能に関する好適な閾値を設定するためには、文字認識処理の内部の識別器・アルゴリズム等の参照や解析が必要となり、人の手間が大きい。例えば尤度の基準を人が目視確認する必要があり、OCRの実装・運用までに多くの時間を要する。あるいは、文字認識処理の識別器等の解析が困難な場合は、対応が困難となる。
【0025】
図14は、比較例および実施の形態に関する、棄却を含む文字認識の具体例を示す。文字認識装置であるコンピュータ(図13での画像入力部201)は、用紙1401から画像を入力する。本例では、用紙1401のうち住所を表す文字画像である画像1402が入力されたとする。コンピュータ(図13での文字切り出し部202)は、画像1402から文字切り出し処理を行う。この結果、例えば画像1403のような切り出し文字画像、言い換えると一文字ずつの文字画像が得られる。本例では、画像1403は、5個の文字画像として切り出されている。
【0026】
コンピュータ(図13での特徴抽出部203および識別部204)は、画像1403の各文字画像から、特徴に基づいた識別、言い換えると文字認識を行う。この結果、例えば識別文字1404(言い換えると文字認識結果文字、読み取り結果文字)が得られる。本例では、識別文字1404は、「田」「川」「群」「細」「町」といった5個の文字が得られている。本例では、これらのうち、文字「細」1408は、誤り(「誤読」と記載する場合がある)であり、正しい文字は、「糸」「田」の2文字である。
【0027】
棄却機能が無い場合には、このような文字認識結果をユーザが全文字チェックする必要があり、手間が大きい。
【0028】
棄却機能が有る場合、コンピュータ(図13での棄却部205)は、識別部204の文字認識結果である識別文字1404について、棄却処理を行う。この結果として、棄却結果を含む識別結果1405が得られる。この棄却結果を含む識別結果1405では、棄却機能が正常に働いた場合、上記誤読文字である「細」1408の部分が、「不読」を表す所定の記号「?」に変換されて出力される。
【0029】
コンピュータ(図13での結果出力部206)は、棄却結果を含む識別結果1405に対応する出力1406をユーザに対し出力する。例えばユーザは表示画面で棄却結果を含む出力1406を見て確認する。この際、ユーザは、「不読」を表す「?」部分のみを確認・チェックすればよい。例えば、ユーザは、「糸」「田」の2文字の部分が正しく読み取りできなかったとわかり、この部分の修正作業をすればよい。このように、棄却機能がある場合には、OCR作業を効率化できる。
【0030】
図15は、比較例における文字認識部204による識別結果の具体例を示す。図15の表において、切り出し文字画像は、図14の画像1403と対応している。表では、それぞれの切り出し文字画像ごとに、文字認識の候補となる文字(候補文字)を、スコアの高い順に、1位文字、2位文字、3位文字等として、各行で示している。ここでのスコアは、文字認識での尤度dを用いている。このうち文字画像「細」1407は、図14の通り、2文字が誤って1文字として読み取られた誤読文字に対応している。
【0031】
棄却機能における棄却部205の棄却手法は、例えば、統計手法、構造解析手法がある。統計手法は、尤度dの大きさや差で判断する手法である。例えば、文字画像「細」1407について、候補文字としては、1位候補が文字「細」であり、尤度d=85である。尤度dは、ここでは0~100のスコアとする。例えば尤度dの大きさ(絶対値)で判断する手法の場合、文字「細」の尤度d=85が、尤度閾値と比較される。尤度閾値が例えば90であるとする。文字画像「細」1407以外の各文字画像では、1位候補の尤度dが90以上あるため、1位候補の文字が識別結果となる(言い換えると棄却はされない)。それに対し、文字画像「細」1407では、文字「細」の尤度d=85が90未満である。そのため、候補文字「細」1408は、「不読」として棄却されると判定される。
【0032】
他の手法として尤度dの差で判断する場合では、例えば、1位候補の文字、例えば、「田」の尤度d=93と、「川」の尤度d=92と、「群」の尤度d=95と、「細」の尤度d=85と、「町」の尤度d=92との間で、尤度dの差が判断される。例えば、「細」の尤度d=85と、他の文字の尤度との差が相対的に大きい。そのため、この文字「細」は、「不読」として棄却されると判定される。
【0033】
構造解析手法の場合、切り出し文字画像ごとに、画像解析処理に基づいて、文字の成分の長さ、角度、端点数などによって、識別結果が正しいか疑わしいかが判断される。
【0034】
しかしながら、統計手法では、尤度dの算出の根拠が不明な場合、好適な尤度閾値の設定が難しい。また、構造解析手法では、多数の文字に関する棄却判断のために、構造解析処理の膨大なルールを規定して積み上げる必要があり、手間が大きい。
【0035】
[実施の形態の概要]
実施の形態の文字認識装置および方法は、特に、文字認識ステップの後の棄却ステップ、言い換えると文字認識機能のうちの棄却機能に関する工夫を有する。
【0036】
実施の形態1では、第1の特長として、ヒートマップ比較判定を行う機能(第1の機能とも記載する)を有する。実施の形態1では、文字認識処理のうちの棄却処理において、文字認識結果の文字についてのヒートマップを計算するヒートマップ計算部と、そのヒートマップを辞書データベースのヒートマップパターンと比較照合して棄却に関する判定を行うヒートマップ比較部とを有する。辞書データベース(言い換えると棄却用辞書)には、予めヒートマップパターンの情報が登録・保持されている。
【0037】
文字認識結果の文字についてのヒートマップは、識別文字の特徴を表しており、文字認識の識別器が識別時に重視した箇所を表す情報である。当該ヒートマップは、文字認識での文字の尤度の算出に関する根拠を視覚化して表す画像情報であり、言い換えると、識別器の判断根拠や文字特徴を可視化する画像情報である。そのため、実施の形態では、文字認識ステップの文字認識処理の内部のアルゴリズム等を参照・解析する必要無く、ヒートマップを用いて棄却処理が可能である。実施の形態では、文字認識ステップで算出する尤度に依存した閾値の設定が不要となる。
【0038】
実施の形態では、第1の特長として、上記ヒートマップを用いて、識別の妥当性、言い換えると、棄却の妥当性を判断するものである。実施の形態1では、このような棄却機能を備えるので、高精度・高効率の棄却を含む文字認識が実現できる。
【0039】
実施の形態1では、第2の特長として、類似字形分類比較を行う機能(第2の機能とも記載する)を有する。この機能は、識別文字の文字列の並び、進行方向、位置関係と、字形、例えば偏と旁の構成などの字形分類とを考慮して、識別の妥当性、言い換えると、棄却の妥当性を判断するものである。この第2の機能では、前後の識別文字のまとまりについて、辞書データベースに予め登録されている類似字形分類情報との比較で、位置関係と字形とを考慮した総合的な判断で、棄却すべきかを判定するものである。
【0040】
実施の形態1では、上記第1の機能と第2の機能との両方を備えるが、これに限定されず、一方の機能のみを備える実施例も可能である。
【0041】
<実施の形態1>
図1図15を用いて、実施の形態1の文字認識装置および方法について説明する。実施の形態1の文字認識方法は、棄却ステップを有する方法である。実施の形態1の文字認識装置は、棄却機能を備える装置である。実施の形態1の文字認識方法は、実施の形態1の文字認識装置によって実行される。
【0042】
実施の形態1は、文字認識ステップの後の棄却ステップで、文字認識ステップでの文字認識の情報(例えば尤度)を必要としない場合を説明する。すなわち、棄却ステップでは、尤度を用いずに棄却の判定を行うものであり、尤度に関する閾値の設定も不要である。
【0043】
[文字認識装置を含むシステム]
図1は、実施の形態1の文字認識装置を含む、システムの構成例を示す。実施の形態1の文字認識装置である文字認識装置1は、言い換えるとOCR装置であり、コンピュータによって構成されている。図1のシステムは、文字認識装置1とスキャナ装置2とがLAN等の通信手段で接続されているシステムである。ユーザU1は、文字認識装置1やスキャナ装置2を操作する。ユーザU1は、帳票3(言い換えると用紙)を、スキャナ装置2で読み取らせ、読み取りによって得られた画像に対応する帳票画像ファイル4を、文字認識装置1で処理させて、文字認識結果等を得る。
【0044】
スキャナ装置2は、セットされた帳票3等の紙面を光学的に走査して画像を読み取る装置である。スキャナ装置2は、読み取りの結果として、帳票画像ファイル4を出力する。帳票画像ファイル4は、LANを通じて、文字認識装置1に転送される。文字認識装置1は、通信インタフェース装置103によって帳票画像ファイル4を受信・入力し、記憶装置102内に読取画像データ122として格納する。なお、スキャナ装置2は、スキャナ機能およびプリンタ機能等を持つ複合機等としてもよい。
【0045】
文字認識装置1は、文字認識ソフトウェア(プログラムおよびデータベース等を含む)が実装されているコンピュータである。実施の形態1のプログラムは、実施の形態1の文字認識方法に対応する処理をコンピュータである文字認識装置1に実行させるコンピュータプログラムである。実施の形態1のプログラムは、制御プログラム121に含まれている。実施の形態1のプログラムは、メモリカード等の記憶媒体に格納された態様で提供されてもよいし、通信網上のサーバ等からダウンロードされてもよい。
【0046】
文字認識装置1は、例えばPCおよびそれに搭載されるソフトウェアで構成されるが、これに限定されず、OCRや複合機等の専用装置として構成されてもよい。また、本例では、文字認識装置1とスキャナ装置2とに分かれている構成であるが、これに限らず、画像処理装置1とスキャナ装置2とが一体である構成でもよい。
【0047】
文字認識装置1は、入力の帳票画像ファイル4に対応した読取画像データ122に対し、文字認識処理であるOCR処理を行う。このOCR処理は、後述の棄却処理を含む。この文字認識装置1は、棄却処理を行う棄却機能を備える。文字認識装置1は、読取画像データ122に対し、文字認識処理を行い、処理結果出力として、文字認識結果データ123を得る。文字認識結果データ123の中には棄却処理結果情報を含む。
【0048】
文字認識装置1は、演算装置101(プロセッサ等を含む)、記憶装置102(メモリ等を含む)、通信インタフェース装置103、入出力インタフェース装置104、入力装置105、出力装置106、および外部記憶装置107等を備え、これらはバス等のアーキテクチャを介して相互に接続され通信可能である。
【0049】
演算装置101は、例えばCPU/GPU、ROM、RAM等により構成され、装置全体および各部を制御するコントローラに相当する。演算装置101は、ソフトウェアプログラム処理により実現される機能ブロックとして、帳票処理部11、OCR処理部12、表示処理部13、設定部14を有する。
【0050】
演算装置101は、記憶装置102の制御プログラム121をメモリ上に読み出してその制御プログラム121に従った処理を実行することにより、各機能ブロックを実現する。OCR処理部12は、実施の形態1のプログラムに基づいて実現され、言い換えると、文字認識処理部である。
【0051】
記憶装置102は、不揮発性記憶装置等で構成され、演算装置101等が扱う各種のデータや情報が記憶されている。記憶装置102には、制御プログラム121、読取画像データ122、文字認識結果データ123、および辞書データ124等が記憶される。図示しないが、制御プログラム121には、プログラムやユーザの設定情報も伴う。設定情報は、例えば、棄却機能を含む文字認識機能に関する設定情報、例えば閾値設定情報などが挙げられる。文字認識結果データ123は、文字認識処理の結果として得られる、認識文字や、棄却結果等を含んだデータである。辞書データ124は、後述するが、文字認識処理に用いるために予め登録されているデータである。なお、文字認識装置1の外部のDBサーバやストレージ装置等に各種のデータや情報が格納されてもよい。
【0052】
通信インタフェース装置103は、スキャナ装置2等の外部装置との間で所定の通信インタフェースで通信処理を行う部分である。文字認識装置1は、スキャナ装置2に限らず、外部のサーバやストレージ装置等との間でデータ・情報を授受してもよい。
【0053】
入出力インタフェース装置104には、入力装置105、出力装置106、および外部記憶装置107等が接続されている。入力装置105は、例えばキーボードやマウスや操作パネルやマイクが挙げられる。ユーザは、入力装置105を通じて指示等を入力する。出力装置106は、ディスプレイやプリンタやスピーカ等が挙げられる。入力装置105および出力装置106は、タッチパネルとしてもよい。ディスプレイの画面には、所定のグラフィカル・ユーザ・インタフェース(GUI)を伴う画面が表示される。この画面は、OCR機能に係わる設定や確認等を可能とする画面である。ユーザU1は、その画面を通じて、OCR機能に係わる作業が可能である。
【0054】
外部記憶装置107は、例えばディスク装置やメモリカード装置等が挙げられる。外部記憶装置107には、演算装置101からの制御に基づいて、画像ファイル等の保存が可能である。文字認識装置1は、外部記憶装置107に格納されている画像ファイル等を入力してもよいし、外部記憶装置107に文字認識結果データ123などを格納してもよい。
【0055】
帳票処理部11は、スキャナ装置2からの帳票画像ファイル4を読取画像データ122として入力・記憶する。帳票処理部11は、読取画像データ122に対し、OCR以外の所定の帳票処理を行ってもよい。
【0056】
OCR処理部12は、対象の読取画像データ122に対し、文字認識処理(OCR処理)を行って、認識文字等の情報を含む文字認識結果データ123を作成し、記憶装置102に格納する。
【0057】
表示処理部13は、文字認識結果データ123に基づいた文字認識結果情報を、出力装置106のディスプレイの画面に、所定のGUIとともに表示する。文字認識結果情報には、後述の棄却結果情報を含む。表示処理部13は、棄却機能を含むOCR機能に係わる画面(例えばWebページ形式でもよい)を作成する。
【0058】
ユーザU1は、ディスプレイの画面で、文字認識結果情報を見て、確認・チェックや修正などの作業を行うことができる。
【0059】
設定部14は、画面のGUIを通じて、OCR機能に関するユーザ設定を受け付け、設定情報として記憶する。設定部14は、例えば棄却機能に関する閾値を設定可能とする。
【0060】
なお、図1のシステム構成に限らず可能であり、例えばクライアント・サーバシステム構成としてもよい。その場合、文字認識装置1がサーバ装置として構成され、そのサーバに対し、通信網を介して、ユーザU1が使用するクライアント端末が接続される。クライアント端末は、サーバにアクセスし、サーバである文字認識装置1は、GUI画面をクライアント端末に送信し、クライアント端末は、GUI画面を表示する。ユーザU1は、クライアント端末のGUI画面で、OCR結果などを確認できる。
【0061】
文字認識装置1は少なくとも1つのプロセッサおよびメモリを有し、そのプロセッサおよびメモリによって所定の機能の処理を実現するが、これに限定されない。例えば、文字認識装置1は、通信網上のサーバ等のプロセッサと連携することで機能を実現してもよい。例えば、通信網上のサーバが、多くの計算資源を必要とする機械学習等の処理を行ってもよい。文字認識装置1は、その機械学習等により得られたモデルやデータベースを利用してもよい。文字認識ソフトウェア等を提供する事業者と、機械学習を行う事業者とが別の主体であってもよい。
【0062】
[文字認識装置]
図2は、実施の形態1の文字認識方法および装置における、棄却を含む文字認識処理の構成を示す。図2の構成は、図13の比較例の構成に対し、主に異なる構成点としては、棄却部205に関する構成である。図2の棄却部205は、図13の棄却部205とは異なる。図2の構成は、図1のコンピュータである文字認識装置1による処理として実現される。
【0063】
棄却部205は、文字認識部204の文字認識結果について、棄却用辞書212を用いて、棄却処理を行い、結果を記憶および出力する。棄却用辞書212は、ヒートマップパターンテーブルT1と、類似字形分類テーブルT2とを含んでいる。
【0064】
棄却部205は、第1の機能に関して、文字認識部204の識別文字について、画像処理に基づいて、ヒートマップを計算し、ヒートマップパターンテーブルT1のパターンとの比較で、「不読」として棄却するかどうかの判定を行う。また、棄却部205は、第2の機能に関して、文字認識部204の識別文字について、類似字形分類テーブルT2の類似字形分類との比較で、「不読」として棄却するかどうかの判定を行う。
【0065】
実施の形態1で、文字認識部204は、比較例と同様に、識別文字の尤度dを算出しているが、棄却部205は、ヒートマップを用いるので、その尤度dを利用する必要は無い。なお、変形例では、棄却部205は、その尤度dをさらに利用してもよい。
【0066】
棄却部205は、より詳しい機能ブロックとしては、ヒートマップ計算部207、ヒートマップ比較部208、および類似字形分類比較部209を有する。
【0067】
[文字認識処理全体フロー]
図3は、実施の形態1における文字認識処理全体のフローを示す。図3のフローは、ステップS1~S6を有する。
【0068】
ステップS1は、画像入力・画像処理である。ステップS1で、文字認識装置1であるコンピュータの画像入力部201(図2)は、図14の例のように、対象となる画像を入力する。
【0069】
ステップS2は、文字行抽出および一文字検出、言い換えると文字切り出し処理である。コンピュータの文字切り出し部202(図2)は、対象画像である入力画像から、図14の例のように、文字列画像を切り出し、一文字ごとの文字画像を切り出す。
【0070】
ステップS3は、特徴抽出である。コンピュータの特徴抽出部203(図2)は、切り出し文字画像から、文字画像ごとに、特徴を抽出する。
【0071】
ステップS4は、文字認識(言い換えると識別)である。コンピュータの文字認識部204(図2)は、識別用辞書211およびステップS3で抽出した特徴を用いて、切り出し文字画像から文字を認識する。
【0072】
ステップS5は、棄却処理、言い換えると不読判定処理であり、後述する。
【0073】
ステップS6は、棄却結果出力を含む文字認識結果出力である。コンピュータの結果出力部206(図2)は、ステップS5の棄却結果を含む、ステップS4の文字認識結果を、ユーザに対し出力する。例えば、コンピュータは、図1の出力装置106のうちの表示装置の表示画面に、棄却結果出力を含む文字認識結果出力を、GUIとともに表示する。ユーザは、その画面を見て、棄却結果などを確認でき、修正作業を行うことができる。GUI画面の例は、図14の出力1406と同様となる。
【0074】
ステップS5は、詳しいフローとしては、ステップS51~S57を有する。ステップS51は、図2のヒートマップ計算部207によるヒートマップ計算処理である。ヒートマップ計算部207は、ステップS4の文字認識結果の識別文字(言い換えると対象文字)について、それに対応する文字画像を用いて、ヒートマップを計算する。なお、このヒートマップ計算が、ステップS4の識別処理の際に同時に行われてもよい。
【0075】
ステップS52は、図2のヒートマップ比較部208によるヒートマップ比較処理である。ヒートマップ比較部208は、ステップS51で得た対象文字のヒートマップを、ヒートマップパターンテーブルT1に登録されているヒートマップパターンと比較照合し、該当するパターンが有るかどうかを判断する。
【0076】
ステップS53は、ヒートマップ比較結果判断であり、該当パターン有無の判断である。コンピュータは、該当パターンが無いと判断した場合(S53-Y)、言い換えると、妥当性が低いと判断した場合、ステップS54に進み、ステップS54で、対象文字を「不読」にして棄却する。コンピュータは、該当パターンが有ると判断した場合(S53-N)、言い換えると、妥当性が高いと判断した場合、ステップS55に進む。
【0077】
ステップS55は、図2の類似字形分類比較部209による、類似字形分類比較処理である。類似字形分類比較部209は、対象文字について、類似字形分類テーブルT2に登録されている類似字形分類と比較照合し、該当するかどうかを判断する。
【0078】
ステップS56は、類似字形分類比較結果判断であり、該当有無の判断である。コンピュータは、該当が有ると判断した場合(S56-Y)、ステップS57に進み、ステップS57で、対象文字を「不読」にして棄却する。コンピュータは、該当が無いと判断した場合(S56-N)、棄却の判断ができない結果とし、ステップS58に進む。
【0079】
ステップS58は、ステップS5、特にステップS56-Nの結果を含む結果出力である。コンピュータは、ユーザに対し、対象文字について、棄却の判断ができない結果である旨を出力する。ユーザは、例えば表示画面でその結果を確認し、自分で確認・チェックを行う。
【0080】
[文字認識ステップ]
実施の形態1で、ステップS4の文字認識ステップで適用する文字認識手法(アルゴリズム等)は、特に限定しない。文字認識手法としては、公知の統計手法、例えば機械学習による手法を適用してもよいし、構造解析手法を適用してもよい。手法は、システムや方法やプログラム等を含む総称とする。
【0081】
[誤読の第1例]
図3のステップS4で文字認識ソフトウェアが文字認識を誤る場合がある。このことを前述のように誤読と記載する場合がある。誤読にはいくつかのパターンがある。
【0082】
誤読の第1例として、入力元の文字列における前後に隣接する2つの文字(文字A,文字Bとする)を、誤って1つの文字(文字Cとする)として認識する場合が挙げられる。図14の例では、画像1402における文字列「田川群糸田町」の並びは横(X方向)であり、特に進行方向(言い換えると読み方向)は左から右への方向である。隣接する2つの文字「糸」「田」は左右に並んでいる。しかしながら、図14の例では、正しい2つの文字「糸」「田」が、誤読として1つの文字「細」として識別されている。
【0083】
このような誤読された文字認識結果の1つの文字「細」については、棄却機能によって「不読」として判定・出力することが好ましい。
【0084】
実施の形態1では、上記誤読の第1例のような場合については、第1の機能を用いて、図3のフローのステップS54に至る第1棄却処理の流れによって、対処することができる。
【0085】
[ヒートマップ計算]
図4は、図3のステップS51のヒートマップ計算についての具体例を示す。画像401は、切り出し文字画像の例であり、図14の画像1403と同様である。画像401は、図示の5個の文字「田」「川」「群」「細」「町」の文字画像cg1~cg5を有する。画像402は、切り出し文字画像+ヒートマップを示す。画像402は、画像401の文字画像に、ステップS51で計算されたヒートマップが重畳されている。画像403は、ヒートマップである。画像403は、文字画像ごとのヒートマップhm1~hm5を有する。
【0086】
このようなヒートマップによって、識別器の判断基準が可視化される。実施の形態1は、このような生成したヒートマップを、ヒートマップパターンと比較照合して、識別および棄却の妥当性を判断するものである。また、ヒートマップとして可視化されるため、棄却に関する閾値の設定も従来よりも容易となる。
【0087】
[ヒートマップ]
ヒートマップ(言い換えると顕著性マップ)とは、公知の概念に基づいており、文字認識の識別器が文字画像のどの箇所を重視したかを可視化して表す画像情報である。実施の形態におけるヒートマップは、文字認識の識別器(言い換えるとモデル)が入力画像(言い換えると文字パターン)のどの領域(言い換えると特徴)から出力結果を推定したのかを表すマップである。ヒートマップは、文字の字形の特徴を表している。ヒートマップにおける画像情報は、画素ごとに、識別器が着目・重視した度合いを表す値を有している。ヒートマップにおける色の濃さは、識別器が強く重要と判断した確率を表している。ヒートマップのX軸,Y軸のパラメータ値は、確率に応じた画素値である。図示の例では、ヒートマップの画素値は、グラデーションを有する輝度・色として表しており、相対的に濃い色の画素は、その着目・重視した度合いが大きいことを意味している。
【0088】
実施の形態1では、ステップS51のヒートマップ計算自体は、既存技術も適用可能である。実施の形態1では、例えば以下を適用できる。まず、ステップS4の文字認識の識別器の内部の情報(例えば尤度d)を考慮して棄却を行う場合には、ヒートマップ計算に、Grad-CAM(Salvaraju 2017)を適用できる。また、ステップS4の文字認識の識別器の内部の情報(例えば尤度d)を考慮せずに棄却を行う場合には、ヒートマップ計算に、LIME(Ribeiro 2016)、SHAP(Lundberg 2017)、または、RISE(Petsiuk 2017)を適用できる。
【0089】
特に、実施の形態1の構成例では、ステップS4での識別器の内部の情報や処理過程を考慮する必要無く、ヒートマップを生成し、棄却を行う。そのため、実施の形態1では、LIME、SHAP、RISEのいずれかを適用する。変形例として、識別器の内部情報や処理過程を考慮してヒートマップを生成して棄却を行う場合には、Grad-CAMを適用する。
【0090】
[漢字について]
実施の形態1では、OCRの対象文字/文字列において漢字を含む場合を説明しているが、これに限定されず、他の種類の文字にも同様に適用可能である。
【0091】
本発明者による実験では、漢字の文字を対象としてヒートマップ計算を適用したところ、例えば概略的に図4のようなヒートマップが得られることを確認した。
【0092】
特に、漢字は、ある1つの文字/字形が、例えば「偏(へん)」や「旁(つくり)」、「冠(かんむり)」や「脚(あし)」等の部首、あるいは小領域やブロック等に分割・分類できる特性がある。本発明者は、少なくとも、このような特性を有する漢字を対象とする場合に、ヒートマップを用いた棄却の判定が有効であることを確認した。
【0093】
[ヒートマップ比較]
図5は、ステップS52のヒートマップ比較についての具体例を示す。ここでは誤読の第1例を用いている。文字501は、正しい2文字「糸」「田」である。画像502は、文字501から切り出された結果である、切り出し文字画像の例として、前述の文字画像「細」cg4である。この文字画像「細」cg4である字形は、2文字が誤って1文字として読み取りされているという誤読のパターンである。
【0094】
識別文字503は、上記誤読による読み取り結果文字としての文字「細」である。対応するヒートマップ504は、画像502(cg4)から計算された前述のヒートマップhm4である。
【0095】
コンピュータのヒートマップ比較部208は、この識別文字503(文字「細」cg4)およびヒートマップ504(hm4)を、ヒートマップパターンテーブルT1と比較照合し、妥当性を判断する。
【0096】
図5でのヒートマップパターンテーブルT1は、「文字」列、「ヒートマップパターン」列を有する。「文字」列には、識別結果になり得る文字(例えば文字コード)が登録されている。「ヒートマップパターン」列は、「文字」列の文字に対応する「ヒートマップパターン」が登録されている。「ヒートマップパターン」は、多数の同じ文字を対象に予め学習した結果である。
【0097】
コンピュータは、例えば、識別文字503「細」をキーとして、ヒートマップパターンテーブルT1を検索する。すると、文字「細」を含む行505が該当する。この行505には、文字「細」のヒートマップパターンhp4を有する。
【0098】
コンピュータは、対象のヒートマップhm4を、該当したヒートマップパターンhp4と比較し、該当するかどうかを判断する。例えば、コンピュータは、ヒートマップhm4とヒートマップパターンhp4との類似の度合い(言い換えると一致の度合い)を判断する。
【0099】
上記比較・判断の際の処理の詳細については限定しない。ヒートマップ比較判定の手法としては、例えば、パターンマッチング手法、ピーク数・位置を用いた手法などが挙げられる。
【0100】
上記比較・判断の結果、本例では、コンピュータは、対象のヒートマップhm4が、ヒートマップパターンhp4に対し、非類似/不一致であり、識別の妥当性が低い、該当パターンが無い、と判定する。これにより、図3のフローでは、ステップS53-Yとなり、ステップS54で、対象の識別文字503「細」は、「不読」として棄却される。
【0101】
上記のように、実施の形態1の第1の機能により、字形の特徴を表すヒートマップを用いて棄却の判定を行うので、判定基準を明確化し、高精度の棄却が実現できる。なお、実施の形態1では、図2図3等のように、識別部204とその前段の文字切り出し部202および特徴抽出部203とを分けて説明しているが、これらをまとめて文字認識部および文字認識処理と捉えてもよい。これらを分けた構成、一体とした構成のいずれであっても、実施の形態1での棄却部205は、それらの文字認識処理に関する正誤の結果に関して高精度な棄却を実現できる。
【0102】
[ヒートマップ比較判定手法]
図6は、図5のヒートマップ比較判定に適用する手法の具体例を示す。本実施例では、ヒートマップ比較判定の手法の具体例として、パターンマッチングの一例を用いる。
【0103】
上側図601には、切り出し文字画像502(文字画像「細」cg4)のヒートマップhm4についての処理を示す。下側図602には、ヒートマップパターンテーブルT1に登録されている文字「細」のヒートマップパターンhp4についての処理を示す。
【0104】
(1)まず、上側図601で、コンピュータは、文字「細」のヒートマップhm4から、画像を構成する直交する2つの方向であるX軸方向およびY軸方向に関して、各方向のヒストグラムを生成する。コンピュータは、ヒートマップhm4から、X軸方向ヒストグラム611と、Y軸方向ヒストグラム612とを計算する。ヒストグラムの横軸(X,Y)は画素、縦軸は頻度である。
【0105】
本例ではヒストグラムを用いているが、これに限定されず、他の処理例としては、ヒートマップ生成時に中間生成されるガウス分布や正規分布を用いてもよい。
【0106】
(2)また、下側図602で、コンピュータは、文字「細」のヒートマップパターンhp4から、同様に、X軸方向およびY軸方向に関して、各方向のヒストグラムを生成する。コンピュータは、ヒートマップパターンhp4から、X軸方向ヒストグラム621と、Y軸方向ヒストグラム622とを計算する。なお、予めヒストグラムについても計算しておいてヒートマップパターンテーブルT1に登録しておいてもよい。
【0107】
(3)次に、コンピュータは、上記(1)で得たヒートマップhm4のX軸方向ヒストグラム611およびY軸方向ヒストグラム612と、上記(2)で得たヒートマップパターンhp4のX軸方向ヒストグラム621およびY軸方向ヒストグラム622とにおける、重なり度合いを計算・判断する。
【0108】
本例では、重なり度合いの判断の処理例として、図7に示すように、コンピュータは、ヒストグラム同士の重なり率(Rとする)を計算する。重なり率Rは、X軸方向での重なり率をRXとし、Y軸方向での重なり率をRYとする。X軸方向での重なり率RXは、X軸方向ヒストグラム611とX軸方向ヒストグラム621との重なり率である。Y軸方向での重なり率RYは、Y軸方向ヒストグラム612とY軸方向ヒストグラム622との重なり率である。
【0109】
本例では、このような重なり率の計算に、ヒストグラムの面積を用いる。図6で、X軸方向ヒストグラム611の面積をSX1とし、Y軸方向ヒストグラム612の面積をSY1とする。X軸方向ヒストグラム621の面積をSX2とし、Y軸方向ヒストグラム622の面積をSY2とする。図7で、コンピュータは、軸を揃えて各軸のヒストグラムを重ねる。左側図はX軸方向ヒストグラム(611,621)の重なりを示し、右側図はY軸方向ヒストグラム(612,622)の重なりを示す。面積SX3は、2つのX軸方向ヒストグラム(611,621)が重なっている部分(言い換えると共通部分)の面積である。面積SY3は、2つのY軸方向ヒストグラム(612,622)が重なっている部分(言い換えると共通部分)の面積である。
【0110】
重なり率RX,RYは、例えば以下の式で計算できる。
RX=RX3/(RX1+RX2-RX3)
RY=RY3/(RY1+RY2-RY3)
【0111】
コンピュータは、計算して得た重なり率R(RX,RY)を用いて、棄却の判定を行う。コンピュータは、重なり率Rが十分に大きい場合には該当パターン有りと判断し、重なり率Rが小さい場合(例えば一定の閾値以下の場合)には該当パターン無しと判断する。例えば、コンピュータは、重なり率RXを、設定された閾値TXと比較し、重なり率RYを、設定された閾値TYと比較する。コンピュータは、判定例として、X軸、Y軸のいずれかの重なり率が閾値以下の場合には、対象の識別文字を「不読」として棄却する。すなわち、コンピュータは、RX≦TX、または(OR)、RY≦TY、である場合には、対象の識別文字を「不読」として棄却する。
【0112】
上述のように、誤読の第1例のような場合には、ヒートマップを用いた第1の機能までを使用するだけで、好適な棄却が可能である。
【0113】
次に、以下では、第1の機能のみでは好適な棄却ができない文字列の事例について説明する。
【0114】
[誤読の第2例]
誤読の第2例として、図8に示すように、入力元の1つの文字(文字Dとする)を、誤って隣接する2つの文字(文字E,文字Fとする)として認識する場合が挙げられる。この誤読された文字認識結果の2つの文字についても、棄却機能によって「不読」として判定・出力できることが好ましい。
【0115】
図8は、誤読の第2例を示している。画像802は、画像入力による画像の例である。本例では正しい文字が「動物」であるとする。画像803は、画像802からの文字切り出しにより得られた画像である切り出し文字画像である。本例では、コンピュータ(図2の文字切り出し部202)は、四角で示す3つの部分p1,p2,p3を切り出している。
【0116】
識別文字804は、画像803からの文字認識結果の文字を示す。本例では、3つの部分p1,p2,p3に対応して、3つの文字「重」「力」「物」として識別されている。これらを文字「重」c1、文字「力」c2、文字「物」c3とする。これらは、正しい文字が「動」「物」であるのに対し、1文字「動」については誤って2文字「重」「力」として誤読した事例である。
【0117】
このような場合に、棄却機能としては、誤読文字である「重」「力」を、「不読」として判定・出力できることが好ましい。それができる場合、棄却処理の結果では、棄却結果を含む識別結果805に示すように、誤読文字「重」「力」部分を、「不読」を表す記号「?」に変換する。そして、結果出力806では「?物」として表示される。ユーザは、「不読」箇所のみを確認・チェックすればよい。
【0118】
上記誤読の第2例における対象字形は、1文字が誤って隣接する2文字として読み取られたパターンである。実施の形態1では、上記誤読の第2例のような場合については、第1の機能および第2の機能を用いて、図3のフローのステップS57に至る第2棄却処理の流れによって、対処することができる。以下に具体例を用いて説明する。
【0119】
[ヒートマップ比較および類似字形分類比較]
図9は、ヒートマップ比較および類似字形分類比較を用いた判定の具体例を示す。本例では、図8のような誤読の第2例を用いる。図9では、まず、ヒートマップ比較までの処理例を示している。
【0120】
正しい文字901は「動」「物」である。切り出し文字画像902は、前述の3つの部分p1,p2,p3である。正しい1文字「動」に対し、誤りとして2文字の部分p1,p2が切り出されている。識別文字903は、3つの部分p1,p2,p3からのそれぞれの読み取り結果の文字「重」「力」「物」(c1,c2,c3)である。対応して、ヒートマップ904は、切り出し文字画像902の各部分から得られたヒートマップhm1,hm2,hm3である。
【0121】
また、コンピュータは、文字切り出し処理の際に、対象文字列の位置関係情報900を把握している。第2の機能は、後述するが、このような位置関係情報900を用いて処理を行う機能である。位置関係情報900は、対象文字列(例えば「動物」)の識別結果文字列の並び、進行方向、各文字の位置関係などを表す情報である。例えば、文字列「動物」については、並びは横方向(X方向)で、特に、進行方向(読み方向)が左から右への方向である。
【0122】
コンピュータのヒートマップ比較部208は、対象の識別文字903のヒートマップ904を、ヒートマップパターンテーブルT1に登録されているパターンと比較照合する。本例では、まず、部分p1に対応する識別文字「重」c1から、ヒートマップパターンテーブルT1の文字「重」の行905が該当する。コンピュータは、部分p1に対応するヒートマップhm1を、文字「重」の行905のヒートマップパターンhp1と比較して、類似度合いを判断する。その結果、類似であり、妥当性が高い、該当パターン有り、と判断される。
【0123】
よって、第1の機能のみを用いる形態の場合(図3でステップS54までしか無い形態の場合)、ここまでの処理結果では、図3のフローでステップS53-Nとなる。よって、このような誤読の第2例について、具体例では文字「重」c1について、適切な棄却ができないことになってしまう。
【0124】
そこで、実施の形態1では、さらに、類似字形分類比較を用いた第2の機能を用いて、図3でのステップS55以降の流れを用いて、誤読の第2例のような場合についても、棄却を実現する。
【0125】
[類似字形分類比較]
図10は、図9に続く、類似字形分類比較の処理例を示す。コンピュータの図2の類似字形分類比較部209は、図9の結果に対応して、図3のステップS53-NからステップS55に進み、図10のような処理を行う。図10では、文字「動」の部分に着目して説明する。切り出し文字画像1001は、文字画像「動」のうちの2つの部分p1,p2である。識別文字1002は、部分p1の識別文字「重」c1、および、部分p2の識別文字「力」c2である。文字切り出し時の位置関係情報900は、前述の通り、例えば文字列「動物」の進行方向(例えば左から右への方向)等の情報である。
【0126】
コンピュータの類似字形分類比較部209は、処理上着目する文字部分をn番目とし、位置関係情報900に基づいた文字列の並びにおいて次に着目する文字部分をn+1番目とする。本例では文字「重」c1がn番目、文字「力」c2がn+1番目である。類似字形分類比較部209は、このように、対象の文字列について、1文字のみではなく、並びにおいて隣接する2文字以上をまとまりとして判断する。
【0127】
コンピュータの類似字形分類比較部209は、まず、n番目の文字「重」c1を、類似字形分類テーブルT2と比較照合する。この処理は、詳しくは、以下のようなステップS21~S24を有する。
【0128】
図10での類似字形分類テーブルT2は、「文字(識別結果)」列、「部首構成字種」列、「部首構成字形(着目位置)」列、および「隣接する識別文字」列を有する。詳しくは図11で説明する。
【0129】
ステップS21で、コンピュータは、n番目の文字「重」c1をキーとして、類似字形分類テーブルT2を検索する。すると、検索結果として、文字「重」を含む行1010が該当し、抽出される。
【0130】
ステップS22で、コンピュータは、その行1010において、n番目の文字「重」c1が、文字列の進行方向(本例では左から右への方向)の逆方向に対応した左側に存在する「部首構成字形」を含む行を抽出する。この結果、本例では、部首構成字種「動」の行1021、および部首構成字種「勲」の行1022が抽出される。
【0131】
ステップS23で、コンピュータは、その抽出された行1021,1022において、「隣接する識別文字」に、n+1番目の文字「力」c2を含む行を抽出する。この結果、本例では、部首構成字種「動」の行1021、および部首構成字種「勲」の行1022が抽出される。
【0132】
ステップS24で、コンピュータは、上記抽出の結果、絞り込まれた行として1つ以上の行がある場合、対象の文字を棄却する。本例では、行1021,1022が存在するので、コンピュータは、n番目の文字「重」c1とそれに隣接するn+1番目の文字「力」c2との2つのまとまりを、「不読」として棄却する。
【0133】
本例では、部首構成字種「動」の行1021は、部首構成字形において、左側の位置(左部)に偏/部分としての「重」があり、右側の位置(右部)に旁/部分としての「力」がある。この部首構成字種「動」は、切り出し文字画像1001の正しい文字「動」と対応している。
【0134】
なお、本例では、行1022も抽出されている。この行1022での部首構成字種「勲」は、正しい文字「動」とは異なり、下部に部首「れっか」を含む字種であるが、左部(詳しくは左上部)に「重」、右部(詳しくは右上部)に「力」を含んでいるため、抽出されている。実施の形態1では、棄却機能は、識別文字を棄却すべきかどうか判断する処理を行う機能であるため、このように疑わしい場合を含めて抽出しておく。
【0135】
上述のように、第2の機能では、文字列の並びで前後に隣接する文字のまとまりで、字形・字種を考慮して、棄却すべきかの判断を行うものである。
【0136】
図11は、類似字形分類テーブルT2を示す。「部首構成字種」列は、識別文字(例えば「重」)を部首または一部として含んだ字種を網羅的に各行で格納している。本例では6つの字種「動」「種」「腫」「働」「薫」「勲」のみを図示している。「隣接する識別結果」列は、文字列の進行方向に隣接する字形と対応する文字である。例えば、字種「動」については、進行方向である右方向に対応した右部に、部首「力」が含まれている。
【0137】
「部首構成字形(着目位置)」列は、「部首構成字種」に対応した字形の情報が格納されている。本例では、字形の情報を、図示のように、四角形のブロックで表現している。四角形のブロックは、部首などの構成に対応して、より小さい四角形のブロックに区切られて構成されている。字形の四角形のブロックのうち、グレーで示す部分が、着目位置・部分である。例えば、字種「動」の行における字形1101は、左部1111と右部1112との各ブロックを有する。左部1111は、着目位置であり、n番目の識別文字が存在する位置に対応し、右部1112は、n番目の識別文字に対し進行方向に隣接するn+1番目の識別文字が存在する位置に対応する。左部1111は例えば偏に対応し、右部1112は例えば旁に対応する。
【0138】
字種「動」の例では、部首構成字形1101は、言い換えると、字形「重」が偏または左部として構成されるグループに相当する。他の例として、字種「種」の例では、対応する部首構成字形は、字形「重」が旁または右部として構成されるグループに相当する。
【0139】
本例では文字列の並びが横である場合を用いて棄却機能を説明したが、これに限らず、棄却機能は、文字列の並びが縦である場合にも同様に適用可能である。
【0140】
[類似字形分類比較処理フロー]
図12は、上記のような類似字形分類比較処理について整理した処理フローを示す。図12は、ステップS201~S204を有する。
【0141】
コンピュータは、まず、ループ1の処理を行う。ステップS201で、コンピュータは、対象の文字列における、n番目の識別文字が、類似字形分類テーブルT2の「文字」列に存在するか、検索する。存在する場合(S201-Y)、ループ2の処理に移行する。
【0142】
コンピュータは、ステップS202で、ステップS201の抽出行について、位置関係情報900におけるn番目の識別文字とn+1番目の識別文字との位置関係に基づいて、類似字形分類テーブルT2に、その位置関係に合致するようなパターンが、「部首構成字形」列に存在するか、検索する。この位置関係に合致するパターンは、前述(図10)のように、文字列の進行方向におけるn番目の識別文字(言い換えると字形)とn+1番目の識別文字(言い換えると字形)との位置関係(例えば左部と右部)に対応する形状や配置を持つような「部首構成字形」のブロックを指している。
【0143】
当該パターンが存在する場合、すなわち当該「部首構成字形」に該当する行が1つ以上ある場合(S202-Y)、ループ3の処理に移行する。コンピュータは、ステップS203で、ステップS202の抽出行において、n+1番目の識別文字(文字コード)と同じ文字(文字コード)が、「隣接する識別結果」列に存在するか、検索する。このステップS203の条件は、言い換えると、n番目の識別文字(言い換えると字形)とn+1番目の識別文字(言い換えると字形)とが、それらの位置関係を持って、「部首構成字形」の中にそれぞれ部首または一部として含まれているかどうかを指している。言い換えると、この条件は、進行方向に隣接する2つの識別文字/字形によって1つの文字/字形が構成されるかどうかを指している。
【0144】
ステップS203の条件を満たす場合、すなわち当該条件を満たす該当する行が1つ以上ある場合(S203-Y)、ステップS204に移行する。ステップS204で、コンピュータは、対象の識別文字であるn番目とn+1番目の識別文字を、「不読」として棄却する。
【0145】
[GUI画面例]
図16は、実施の形態1に関するGUI画面例を示す。コンピュータは、図14の出力1406や図8の出力806のような結果出力を行う以外にも、画面に以下を表示してもよい。コンピュータは、画面に、図示のように、文字画像のヒートマップを表示してもよい。コンピュータは、画面に、前述のヒートマップパターンテーブルT1や類似字形分類テーブルT2を表示してもよい。コンピュータは、画面に、図示のように、前述のヒートマップ比較判定のための閾値を表示し、ユーザによる設定を可能としてもよい。
【0146】
[実施の形態1の効果等]
実施の形態1によれば、棄却機能を高精度・高効率に実現できる。実施の形態1によれば、棄却機能によって文字認識結果が正しいかどうか疑わしいこと(言い換えると、正しい識別ができていない可能性が高いこと、正しい識別ができなかったこと)を「不読」という結果として出力する際の精度や効率を高めることができる。また、実施の形態1によれば、棄却ステップで、文字認識の際の情報、例えば尤度を用いた、閾値の設定や閾値比較判定処理が不要となる。よって、文字認識処理の内部のアルゴリズム等の参照や解析が不要となり、人による閾値設定作業などを低減できる。棄却ステップでは、ヒートマップを用いて判定するので、ヒートマップによる判定基準の可視化が実現でき、閾値の設定も容易になる。実施の形態1によれば、OCRを利用する顧客の環境に適したOCRをセットアップする際の作業を低減し、リードタイムを短縮できる。
【0147】
実施の形態1では、図3のステップS5の棄却ステップで、ヒートマップを用いた手法を適用したが、これに限定されず、ヒートマップ以外の類似の手法として機械学習を用いた手法などを適用してもよい。
【0148】
実施の形態1では、図3のステップS5の棄却ステップで、まず第1の機能によるヒートマップ比較判定を行い、次に、第2の機能による類似字形分類比較判定を行う場合を説明したが、これに限定されない。変形例としては、棄却ステップで、ヒートマップ比較判定を行う前に、図8のような第2の機能による類似字形分類比較判定を行うことも可能である。
【0149】
以上、本開示の実施の形態について具体的に説明したが、前述の実施の形態に限定されず、要旨を逸脱しない範囲で種々変更可能である。各実施の形態は、必須構成要素を除き、構成要素の追加・削除・置換などが可能である。特に限定しない場合、各構成要素は、単数でも複数でもよい。各実施の形態や変形例を組み合わせた形態も可能である。
【符号の説明】
【0150】
1…文字認識装置(コンピュータ)、204…識別部、205…棄却部、207…ヒートマップ計算部、208…ヒートマップ比較部、209…類似字形分類比較部、211…識別用辞書、212…棄却用辞書、T1…ヒートマップパターンテーブル、T2…類似字形分類テーブル。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16