(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
G06V 30/24 20220101AFI20240312BHJP
G06V 30/164 20220101ALI20240312BHJP
G06V 30/12 20220101ALI20240312BHJP
【FI】
G06V30/24
G06V30/164
G06V30/12
(21)【出願番号】P 2020021692
(22)【出願日】2020-02-12
【審査請求日】2023-01-20
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【代理人】
【識別番号】100125346
【氏名又は名称】尾形 文雄
(74)【代理人】
【識別番号】100166981
【氏名又は名称】砂田 岳彦
(72)【発明者】
【氏名】上條 裕義
(72)【発明者】
【氏名】山中 優輝
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2007-086954(JP,A)
【文献】国際公開第2017/141802(WO,A1)
【文献】特開2013-073439(JP,A)
【文献】特開平10-240868(JP,A)
【文献】特開2010-123090(JP,A)
【文献】特開2000-293626(JP,A)
【文献】特開2006-011967(JP,A)
【文献】丹羽 寿男,パターンと記号の統合化処理による文字認識,電子情報通信学会論文誌 D-II,日本,社団法人電子情報通信学会,1995年02月25日,Vol.J78-D-II No.2,P.263-271
【文献】Keiji YAMADA,Feedback Pattern Recognition by Inverse Recall Neural Network Model,Proceedings of 2nd International Conference on Document Analysis and Recognition (ICDAR '93),IEEE,1993年,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=395737
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/24
G06V 30/164
G06V 30/12
(57)【特許請求の範囲】
【請求項1】
プロセッサを有し
前記プロセッサは、
OCR処理に先立って実行される前処理
の結果として、処理対象とする画像から切り出された部分領域単位の画像データ
と各部分領域を識別する情報とを取得し、
取得された前記画像データに対応する画像
毎に
OCR処理の結果の精度に関する情報を算出し、
算出された前記精度に関する情報を
、対応する部分領域を
識別する
前記情報と共に
、当該情報で特定される部分領域に対する前記前処理に通知する、
情報処理装置。
【請求項2】
前記プロセッサは、部分領域を更に分割する複数の小領域毎に
OCR処理の結果の前記精度に関する情報を算出し、
複数の小領域毎に算出された
OCR処理の結果の精度を一括的に、又は、個別に前記前処理に通知する、請求項1に記載の情報処理装置。
【請求項3】
前記精度に関する情報は、
OCR処理の結果の精度が予め定めた閾値よりも低いことを示す、請求項1又は2に記載の情報処理装置。
【請求項4】
前記プロセッサは、
OCR処理の結果の精度が予め定めた閾値より低い原因を推定し、
推定された原因を前記精度に関する情報として前記前処理に通知する、
請求項1に記載の情報処理装置。
【請求項5】
前記原因に関する情報は、部分領域に含まれる文字又は背景に関する情報である、請求項4に記載の情報処理装置。
【請求項6】
前記プロセッサは、
処理対象とする前記画像から切り出された全ての部分領域に対応する前記画像データ
を対象とする
OCR処理の結果の精度を含めて前記原因を推定する、請求項4に記載の情報処理装置。
【請求項7】
前記プロセッサは、前記前処理から与えられた処理の内容の情報に基づいて原因を推定する、請求項4に記載の情報処理装置。
【請求項8】
前記プロセッサは、前記前処理に内容の変更を指示する前記情報を当該前処理に通知する、請求項1に記載の情報処理装置。
【請求項9】
前記プロセッサは、前記前処理に要求する処理の内容を指示する情報を当該前処理に通知する、請求項1に記載の情報処理装置。
【請求項10】
前記前処理の内容を指示する情報は、当該前処理で用いるパラメータの値を指示する情報を含む、請求項
9に記載の情報処理装置。
【請求項11】
前記プロセッサは、
部分領域単位の前記画像データに類似する他の画像データに対する指示の履歴に基づいて前記前処理に要求する処理の内容を推定する、請求項
9に記載の情報処理装置。
【請求項12】
前記プロセッサは、異なる前処理が新たに実行された前記画像データが再度取得された場合に、当該画像データに対応する各部分領域の処理の結果がいずれも予め定めた閾値より高いとき、再度取得された当該画像データを
OCR処理した結果を出力する、請求項1に記載の情報処理装置。
【請求項13】
前記プロセッサは、予め定めた閾値よりも低い精度が得られた部分領域について異なる内容の前処理が実行された画像データが再度取得され、その
OCR処理の結果が当該閾値より高い場合、当該部分領域の
OCR処理の結果を前回の
OCR処理で当該閾値より高い精度が得られた他の部分領域に対する
OCR処理の結果と組み合わせて出力する、請求項1に記載の情報処理装置。
【請求項14】
前記プロセッサは、
処理対象とする前記画像
を取得する前記前処理に対し、解像度の上昇を指示する、請求項1に記載の情報処理装置。
【請求項15】
前記プロセッサは、全ての部分領域について、
OCR処理の結果の精度が予め定めた閾値を超えた場合、処理の終了を前記前処理に通知する、請求項1に記載の情報処理装置。
【請求項16】
コンピュータに、
OCR処理に先立って実行される前処理
の結果として、処理対象とする画像から切り出された部分領域単位の画像データ
と各部分領域を識別する情報とを取得する機能と、
取得された前記画像データに対応する画像の部分領域毎に
OCR処理の結果の精度に関する情報を算出する機能と、
算出された前記精度に関する情報を
、対応する部分領域を
識別する
前記情報と共に
、当該情報で特定される部分領域に対する前記前処理に通知する機能と
を実現させる
ためのプログラム。
【請求項17】
プロセッサを有し、
前記プロセッサは、
前処理から画像データを取得し、
取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出し、
算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知し、
処理の結果の精度が予め定めた閾値より低い原因を推定し、
推定された原因を前記精度に関する情報として前記前処理に通知する、
情報処理装置であり、
前記プロセッサは、前記画像データに類似する他の画像データについて推定された原因の履歴に基づいて原因を推定する
、情報処理装置。
【請求項18】
プロセッサを有し、
前記プロセッサは、
前処理から画像データを取得し、
取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出し、
算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知し、
処理の結果の精度が予め定めた閾値より低い原因を推定し、
推定された原因を前記精度に関する情報として前記前処理に通知する、
情報処理装置であり、
前記プロセッサは、同種の部分領域間における精度の違いに基づいて原因を推定する
、情報処理装置。
【請求項19】
プロセッサを有し、
前記プロセッサは、
前処理から画像データを取得し、
取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出し、
算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知し、
前記前処理に要求する処理の内容を指示する情報を当該前処理に通知し、
前記画像データに類似する他の画像データについて前記前処理に通知
された
指示の内容と、通知後に再度取得した部分領域を処理した結果の精度とを教師データとして学習し
た学習済みモデルに基づいて、前記前処理に要求する処理の内容を推定する
、情報処理装置。
【請求項20】
コンピュータに、
前処理から画像データを取得する機能と、
取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出する機能と、
算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知する機能と
処理の結果の精度が予め定めた閾値より低い原因を推定する機能と、
推定された原因を前記精度に関する情報として前記前処理に通知する機能と、
前記画像データに類似する他の画像データについて推定された原因の履歴に基づいて原因を推定する機能と、
を実現させるためのプログラム。
【請求項21】
コンピュータに、
前処理から画像データを取得する機能と、
取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出する機能と、
算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知する機能と
処理の結果の精度が予め定めた閾値より低い原因を推定する機能と、
推定された原因を前記精度に関する情報として前記前処理に通知する機能と、
同種の部分領域間における精度の違いに基づいて原因を推定する機能と、
を実現させるためのプログラム。
【請求項22】
コンピュータに、
前処理から画像データを取得する機能と、
取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出する機能と、
算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知する機能と、
前記前処理に要求する処理の内容を指示する情報を当該前処理に通知する機能と、
前記画像データに類似する他の画像データについて前記前処理に通知された指示の内容と、通知後に再度取得した部分領域を処理した結果の精度とを教師データとして学習した学習済みモデルに基づいて、前記前処理に要求する処理の内容を推定する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
印刷物に印刷された文字や手書きされた文字の画像を、コンピュータで利用が可能な文字コードに変換する技術が知られている。この技術は、OCR(=Optical Character Recognition)処理と呼ばれる。文字を含む文書に対応する画像の取得には、いわゆるスキャナやデジタルカメラが使用される。
スキャナやデジタルカメラで撮像された画像データをOCR処理に直接出力することも可能であるが、OCR処理による文字の認識の結果の確からしさを示す値(以下「確信度」という)を上げるためには、事前に処理を加えることがある。例えばOCR処理の前に、画像に含まれるノイズや地紋等を除去するクレンジング処理を実行することがある。この他、取得時における画像の解像度を高く設定することがある。以下では、OCR処理の前に実行される処理を前処理と呼ぶ。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
現在、クレンジング処理は、画像の全体を単位として実行される。同様に、OCR処理の確信度も、処理の対象である画像の全体又はデータファイルの全体を単位として算出されている。このため、OCR処理の確信度が低下する領域が含まれる場合でも、全体としての確信度が高いと、確信度が低い領域を含む処理の結果がそのまま更に下流の処理に渡されることになる。このため、確信度が低い領域に重要な情報が含まれていると、下流の処理の精度が低下する影響が及ぶ可能性がある。
【0005】
本発明は、部分領域に関する処理の結果に関する情報を前段側の処理に通知しない場合に比して、処理の結果に対する修正の手間を削減することを目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載の発明は、プロセッサを有し前記プロセッサは、OCR処理に先立って実行される前処理の結果として、処理対象とする画像から切り出された部分領域単位の画像データと各部分領域を識別する情報とを取得し、取得された前記画像データに対応する画像毎にOCR処理の結果の精度に関する情報を算出し、算出された前記精度に関する情報を、対応する部分領域を識別する前記情報と共に、当該情報で特定される部分領域に対する前記前処理に通知する、情報処理装置である。
請求項2に記載の発明は、前記プロセッサは、部分領域を更に分割する複数の小領域毎にOCR処理の結果の前記精度に関する情報を算出し、複数の小領域毎に算出されたOCR処理の結果の精度を一括的に、又は、個別に前記前処理に通知する、請求項1に記載の情報処理装置である。
請求項3に記載の発明は、前記精度に関する情報は、OCR処理の結果の精度が予め定めた閾値よりも低いことを示す、請求項1又は2に記載の情報処理装置である。
請求項4に記載の発明は、前記プロセッサは、OCR処理の結果の精度が予め定めた閾値より低い原因を推定し、推定された原因を前記精度に関する情報として前記前処理に通知する、請求項1に記載の情報処理装置である。
請求項5に記載の発明は、前記原因に関する情報は、部分領域に含まれる文字又は背景に関する情報である、請求項4に記載の情報処理装置である。
請求項6に記載の発明は、前記プロセッサは、処理対象とする前記画像から切り出された全ての部分領域に対応する前記画像データを対象とするOCR処理の結果の精度を含めて前記原因を推定する、請求項4に記載の情報処理装置である。
請求項7に記載の発明は、前記プロセッサは、前記前処理から与えられた処理の内容の情報に基づいて原因を推定する、請求項4に記載の情報処理装置である。
請求項8に記載の発明は、前記プロセッサは、前記前処理に内容の変更を指示する前記情報を当該前処理に通知する、請求項1に記載の情報処理装置である。
請求項9に記載の発明は、前記プロセッサは、前記前処理に要求する処理の内容を指示する情報を当該前処理に通知する、請求項1に記載の情報処理装置である。
請求項10に記載の発明は、前記前処理の内容を指示する情報は、当該前処理で用いるパラメータの値を指示する情報を含む、請求項9に記載の情報処理装置である。
請求項11に記載の発明は、前記プロセッサは、部分領域単位の前記画像データに類似する他の画像データに対する指示の履歴に基づいて前記前処理に要求する処理の内容を推定する、請求項9に記載の情報処理装置である。
請求項12に記載の発明は、前記プロセッサは、異なる前処理が新たに実行された前記画像データが再度取得された場合に、当該画像データに対応する各部分領域の処理の結果がいずれも予め定めた閾値より高いとき、再度取得された当該画像データをOCR処理した結果を出力する、請求項1に記載の情報処理装置である。
請求項13に記載の発明は、前記プロセッサは、予め定めた閾値よりも低い精度が得られた部分領域について異なる内容の前処理が実行された画像データが再度取得され、そのOCR処理の結果が当該閾値より高い場合、当該部分領域のOCR処理の結果を前回のOCR処理で当該閾値より高い精度が得られた他の部分領域に対するOCR処理の結果と組み合わせて出力する、請求項1に記載の情報処理装置である。
請求項14に記載の発明は、前記プロセッサは、処理対象とする前記画像を取得する前記前処理に対し、解像度の上昇を指示する、請求項1に記載の情報処理装置である。
請求項15に記載の発明は、前記プロセッサは、全ての部分領域について、OCR処理の結果の精度が予め定めた閾値を超えた場合、処理の終了を前記前処理に通知する、請求項1に記載の情報処理装置である。
請求項16に記載の発明は、コンピュータに、OCR処理に先立って実行される前処理の結果として、処理対象とする画像から切り出された部分領域単位の画像データと各部分領域を識別する情報とを取得する機能と、取得された前記画像データに対応する画像の部分領域毎にOCR処理の結果の精度に関する情報を算出する機能と、算出された前記精度に関する情報を、対応する部分領域を識別する前記情報と共に、当該情報で特定される部分領域に対する前記前処理に通知する機能とを実現させるためのプログラムである。
請求項17に記載の発明は、プロセッサを有し、前記プロセッサは、前処理から画像データを取得し、取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出し、算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知し、処理の結果の精度が予め定めた閾値より低い原因を推定し、推定された原因を前記精度に関する情報として前記前処理に通知する、情報処理装置であり、前記プロセッサは、前記画像データに類似する他の画像データについて推定された原因の履歴に基づいて原因を推定する、情報処理装置である。
請求項18に記載の発明は、プロセッサを有し、前記プロセッサは、前処理から画像データを取得し、取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出し、算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知し、処理の結果の精度が予め定めた閾値より低い原因を推定し、推定された原因を前記精度に関する情報として前記前処理に通知する、情報処理装置であり、前記プロセッサは、同種の部分領域間における精度の違いに基づいて原因を推定する、情報処理装置である。
請求項19に記載の発明は、プロセッサを有し、前記プロセッサは、前処理から画像データを取得し、取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出し、算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知し、前記前処理に要求する処理の内容を指示する情報を当該前処理に通知し、前記画像データに類似する他の画像データについて前記前処理に通知された指示の内容と、通知後に再度取得した部分領域を処理した結果の精度とを教師データとして学習した学習済みモデルに基づいて、前記前処理に要求する処理の内容を推定する、情報処理装置である。
請求項20に記載の発明は、コンピュータに、前処理から画像データを取得する機能と、取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出する機能と、算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知する機能と、処理の結果の精度が予め定めた閾値より低い原因を推定する機能と、推定された原因を前記精度に関する情報として前記前処理に通知する機能と、前記画像データに類似する他の画像データについて推定された原因の履歴に基づいて原因を推定する機能と、を実現させるためのプログラムである。
請求項21に記載の発明は、コンピュータに、前処理から画像データを取得する機能と、取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出する機能と、算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知する機能と、処理の結果の精度が予め定めた閾値より低い原因を推定する機能と、推定された原因を前記精度に関する情報として前記前処理に通知する機能と、同種の部分領域間における精度の違いに基づいて原因を推定する機能と、を実現させるためのプログラムである。
請求項22に記載の発明は、コンピュータに、前処理から画像データを取得する機能と、取得された前記画像データに対応する画像の部分領域毎に処理の結果の精度に関する情報を算出する機能と、算出された前記精度に関する情報を対応する部分領域を特定する情報と共に前記前処理に通知する機能と、前記前処理に要求する処理の内容を指示する情報を当該前処理に通知する機能と、前記画像データに類似する他の画像データについて前記前処理に通知された指示の内容と、通知後に再度取得した部分領域を処理した結果の精度とを教師データとして学習した学習済みモデルに基づいて、前記前処理に要求する処理の内容を推定する機能と、を実現させるためのプログラムである。
【発明の効果】
【0007】
請求項1記載の発明によれば、部分領域に関する処理の結果に関する情報を前段側の処理に通知しない場合に比して、処理の結果に対する修正の手間を削減できる。
請求項2記載の発明によれば、部分領域も更に小さい領域単位で精度を通知できる。
請求項3記載の発明によれば、前処理の内容の変更が必要な領域を選択的に通知できる。
請求項4記載の発明によれば、前処理側における前処理の内容の変更を効率化できる。
請求項5記載の発明によれば、前処理側における前処理の内容の変更を効率化できる。
請求項6記載の発明によれば、画像の全体を対象とする前処理に起因する原因を特定できる。
請求項7記載の発明によれば、原因の推定の精度を高めることができる。
請求項8記載の発明によれば、後処理の結果の精度に変化を与えることができる。
請求項9記載の発明によれば、前処理側における前処理の内容の変更を効率化できる。
請求項10記載の発明によれば、前処理側における前処理の内容の変更を効率化できる。
請求項11記載の発明によれば、前処理に通知する指示の精度を上げることができる。
請求項12記載の発明によれば、処理の結果に対する修正を不要にできる。
請求項13記載の発明によれば、効率的に処理の結果を得ることができる。
請求項14記載の発明によれば、後段における処理の結果の精度を効率的に向上できる。
請求項15記載の発明によれば、画像データの消去が可能になったことを前処理に知らせることができる。
請求項16記載の発明によれば、部分領域に関する処理の結果に関する情報を前段側の処理に通知しない場合に比して、処理の結果に対する修正の手間を削減できる。
請求項17記載の発明によれば、原因の推定の精度を高めることができる。
請求項18記載の発明によれば、原因の推定の精度を高めることができる。
請求項19記載の発明によれば、前処理に通知する指示の精度を上げることができる。
請求項20記載の発明によれば、原因の推定の精度を高めることができる。
請求項21記載の発明によれば、原因の推定の精度を高めることができる。
請求項22記載の発明によれば、前処理に通知する指示の精度を上げることができる。
【図面の簡単な説明】
【0008】
【
図1】実施の形態で使用する情報処理システムの構成例を示す図である。
【
図2】実施の形態1で使用するOCR処理サーバのハードウェア構成の一例を説明する図である。
【
図3】実施の形態1で実行される処理の概要を説明する図である。
【
図4】実施の形態1におけるOCR処理サーバが実行する処理の一例を説明するフローチャートである。
【
図5】画像処理装置が読み取りの対象とする原稿の一例を説明する図である。
【
図6】画像データから分離されるオブジェクトの例を説明する図である。
【
図7】1つの表領域について算出された確信度と閾値の関係を説明する図である。
【
図8】実施の形態2で実行される処理の概要を説明する図である。
【
図9】実施の形態2におけるOCR処理サーバが実行する処理の一例を説明するフローチャートである。
【
図10】実施の形態3で実行される処理の概要を説明する図である。
【
図11】実施の形態3におけるOCR処理サーバが実行する処理の一例を説明するフローチャートである。
【
図12】実施の形態4で実行される処理の概要を説明する図である。
【
図13】実施の形態4におけるOCR処理サーバが実行する処理の一例を説明するフローチャートである。
【
図14】対象データが表領域の場合に推定される原因の例を説明する図である。
【
図15】実施の形態5で実行される処理の概要を説明する図である。
【
図16】実施の形態5におけるOCR処理サーバが実行する処理の一例を説明するフローチャートである。
【
図17】実施の形態6におけるOCR処理サーバが実行する処理の一例を説明するフローチャートである。
【
図18】実施の形態7で実行される処理の概要を説明する図である。
【
図19】実施の形態8で実行される処理の概要を説明する図である。
【
図20】実施の形態8におけるOCR処理サーバが実行する処理の一例を説明するフローチャートである。
【
図21】実施の形態9で実行される処理の概要を説明する図である。
【発明を実施するための形態】
【0009】
以下、図面を参照して、本発明の実施の形態を説明する。
<実施の形態>
<システム構成>
図1は、実施の形態で使用する情報処理システム1の構成例を示す図である。
図1に示す情報処理システム1は、画像処理装置10と、画像処理装置10から与えられる画像データに含まれる文字を認識するOCR処理サーバ20と、ネットワーク環境としてのクラウドネットワーク30とを有している。
【0010】
本実施の形態における画像処理装置10は、原稿の複製物を生成する機能、用紙に文書や画像を印刷する機能、原稿を光学的に読み取り画像データを生成する機能、ファクシミリを送受信する機能等を備える。
図1に示す画像処理装置10の本体上部には、光学的に情報を読み取る位置に原稿を1枚ずつ搬送する機構が備え付けられている。この種の機構は、例えばADF(=Auto Document Feeder)と呼ばれる。ADFは、複製する原稿の読み取りやファクシミリ送信する原稿の読み取りに使用される。
複製物の生成には、用紙に文書や画像を印刷する機能も使用される。文書や画像のデータは、画像処理装置10において光学的に読み取られる他、本体に接続された記録媒体や外部の情報端末から与えられる。
画像処理装置10に設ける機能は、前述した機能に限らない。もっとも、本実施の形態の場合、画像処理装置10には、原稿の情報を光学的に読み取って画像データを生成する機能が設けられていれば、他の機能は任意である。
【0011】
本実施の形態における原稿は、文字や画像が印刷された用紙の他、手書きで文字が記入された文書や画像でもよい。手書きによる文字の記入は、文書や画像の一部分で構わない。すなわち、文書内の文字は、全てが手書きである必要はない。
本実施の形態では、手書きの文書として、例えば申込書、請求書、納品書、伝票等の手書き帳票を想定する。手書き帳票では、事前に印刷された枠内に文字が記入される。手書きの文書は、帳票の類いに限らず、連絡用のメモ、回覧用の文書、はがき、封書等でもよい。
本実施の形態における画像処理装置10には、原稿から読み取った画像からノイズや地紋等を除去する機能も用意されている。本実施の形態の場合、ノイズ等を除去した後の画像データがOCR処理サーバ20に送信される。
図1には画像処理装置10を1台のみ表しているが、情報処理システム1を構成する画像処理装置10は複数台でもよい。本実施の形態における画像処理装置10は、外部の装置の一例である。
【0012】
本実施の形態におけるOCR処理サーバ20は、画像処理装置10から与えられる画像データをOCR処理し、処理の結果であるテキストデータを画像処理装置10に引き継ぐよう設計されている。テキストデータを引き継いだ画像処理装置10は、受信したテキストデータに対して後処理を実行する。後処理には、例えば言語処理、テキストデータを管理上の正しい位置に紐付ける処理、テキストデータに関連する文書の検索、物品の配達に用いる経路の検索がある。なお、後処理の内容は、読み取る原稿の内容や求められる処理の内容に応じて設計される。
【0013】
この他、本実施の形態におけるOCR処理サーバ20には、OCR処理の結果の確信度に関する情報を部分領域毎に前処理にフィードバックする機能も設けられている。この機能は、OCR処理により得られる文字の認識の結果の確からしさを高める、又は、後処理の結果の品質や精度を高めるために設けられている。
本実施の形態におけるOCR処理サーバ20は、情報処理装置の一例である。
【0014】
ところで、本実施の形態における画像処理装置10の運用者とOCR処理サーバ20の運用者は同じでもよいし、異なってもよい。
本実施の形態では、OCR処理に特化したOCR処理サーバ20を用いているが、複数の機能に対応する汎用型のサーバを用いてもよい。なお、OCR処理を実行するコンピュータはサーバに限らない。OCR処理を実行するコンピュータは、例えばデスクトップ型のコンピュータやノート型のコンピュータでもよく、スマートフォンやタブレット型の端末でもよい。
【0015】
図1の場合、OCR処理サーバ20は1台であるが、情報処理システム1を構成するOCR処理サーバ20は複数台でよい。複数台のOCR処理サーバ20が1つの画像データを分散的に処理してもよい。
本実施の形態の場合、画像処理装置10とOCR処理サーバ20との通信にクラウドネットワーク30を用いているが、クラウドネットワーク30経由の通信に限らない。例えば画像処理装置10とOCR処理サーバ20の通信には、LAN(=Local Area Network)、4Gや5Gと略称される移動通信システムを用いてもよい。
【0016】
<OCR処理装置の構成>
図2は、実施の形態1で使用するOCR処理サーバ20のハードウェア構成の一例を説明する図である。
図2に示すOCR処理サーバ20は、OCR処理を実行する演算ユニット21と、画像処理装置10から取得される画像データ等を記憶する記憶装置22と、外部との通信に用いられる通信装置23とを有している。なお、OCR処理サーバ20には、ユーザの指示を受け付ける受付装置や情報をユーザに提示する表示装置が接続されていてもよい。演算ユニット21と各部は、バス24や不図示の信号線を通じて接続されている。
【0017】
本実施の形態における演算ユニット21は、プロセッサ21Aと、基本ソフトウェアやBIOS(=Basic Input Output System)等が記憶された不図示のROM(=Read Only Memory)と、ワークエリアとして用いられる不図示のRAM(=Random Access Memory)とを有している。演算ユニット21は、いわゆるコンピュータとして機能する。前述したOCR処理は、プロセッサ21Aによるプログラムの実行を通じて実現される。
記憶装置22は、ハードディスク装置や不揮発性の書き換え可能な半導体メモリ等により構成される。記憶装置22には、例えば画像処理装置10から取得された画像データやOCR処理で得られたテキストデータ等が記憶される。記憶装置22には、アプリケーションプログラムが格納されてもよい。
通信装置23は、有線や無線による通信規格に準拠したモジュールで構成される。通信装置23には、例えばイーサネット(登録商標)モジュール、USB(=Universal Serial Bus)、無線LAN、ファクシミリ用のモデムその他が用いられる。
【0018】
<処理の内容>
以下では、画像処理装置10とOCR処理サーバ20の連携により実行される処理について説明する。
<処理の概要>
図3は、実施の形態1で実行される処理の概要を説明する図である。本実施の形態における処理は、5つの処理で構成される。5つの処理は、原稿の画像データを取得する処理と、取得された画像データに対する前処理と、前処理後の画像データに対するOCR処理と、OCR処理の結果であるテキストデータを処理する後処理と、後処理の結果を記憶装置22(
図2参照)に格納する処理である。
本実施の形態の場合、OCR処理をOCR処理サーバ20(
図1参照)が実行し、その他の4つの処理は画像処理装置10(
図1参照)が実行する。
【0019】
本実施の形態の場合、前処理として、ノイズや地紋等を除去するクレンジング処理やオブジェクトに分離する処理が実行される。一方、後処理として、キー(=key)と対応する値(=value)の組み合わせが登録された辞書を参照してキーに対応する値又は値に対応するキーを抽出する処理が実行される。本実施の形態におけるキー及び値は、文字又は画像が対応する。例えばキーが名前の場合、値には富士太郎が対応する。換言すると、キーは項目を示す文字又は図形であり、値は項目に対応する具体的な内容を示す文字又は図形である。
本実施の形態の場合、前処理とOCR処理との間で処理の対象を特定する情報が前処理からOCR処理に通知される。
図3の場合は、処理の対象を特定する情報としてファイル名が、前処理後の画像データに付属するデータとして通知されている。本実施の形態の場合、ファイル名は、読み取りの日時や読み取り作業を行ったユーザ名、読み取りに用いた画像処理装置10を区別する情報等で構成される。もっとも、ファイル名を特定する情報は、これらに限らない。
【0020】
一方のOCR処理は、前処理への情報のフィードバックに際し、例えばファイル名を用いて処理の対象を明示する。このファイル名の通知により、前処理とOCR処理との連携が可能になる。例えば前処理やOCR処理が並列して複数の画像データを処理している場合には、ファイル名を用いることで、処理の対象の区別が可能になる。なお、処理の対象の特定が可能であればよいので、前処理からOCR処理に通知される情報はファイル名に限らない。
【0021】
本実施の形態の場合、前処理において、画像データを複数のオブジェクトに分離する処理も実行される。
本実施の形態の場合、オブジェクトとして、文字の領域(以下「文字領域」という)、表の領域(以下「表領域」という)、グラフィックスの領域(以下「グラフィックス領域」という)、図の領域(以下「図領域」という)の4つを使用する。
例えば原稿のタイトル、文字、数値が含まれる領域は、文字領域として切り出される。表そのものや表に付属する題名は表領域として切り出される。社名などを図案化した領域は、グラフィックス領域や図領域として切り出される。その他の領域は背景である。個々のオブジェクトは部分領域の一例である。
【0022】
なお、背景、グラフィックス領域、図領域はOCR処理の対象から除外される。このため、文字領域と表領域に対応する画像データが、対象データとして、画像処理装置10からOCR処理サーバ20に送信される。なお、各対象データには、個々の部分領域を識別する情報が付与されている。
部分領域を識別する情報には、例えば原稿を撮像した画像データ内の位置を示す座標や通し番号が用いられる。座標は、例えば領域の外縁を規定する1つ又は複数の座標点で与えられる。部分領域が矩形形状の場合、部分領域の例えば左上隅の座標点を使用する。
本実施の形態の場合、前処理からOCR処理には、部分領域単位で前処理後の画像データが送信される。
この他、前処理からOCR処理には、実行された前処理の内容を特定する情報を通知してもよい。前処理の内容は、OCR処理の側で確信度が低い原因を推定するのに用いることが可能である。
【0023】
本実施の形態の場合、OCR処理から前処理には、OCR処理した結果の確信度が低いことを示す情報がフィードバックされる。確信度は、精度に関する情報の一例である。
本実施の形態の場合、部分領域は、オブジェクトとして切り出された個々の領域の意味で使用する。換言すると、文字領域が複数ある場合には、文字領域毎に異なる情報がフィードバックされる可能性がある。表領域についても同様である。なお、表領域については、行や列単位で異なる情報がフィードバックされる可能性もある。
本実施の形態の場合、前処理からOCR処理には、個々の部分領域を識別する情報が通知されている。従って、OCR処理から前処理へのフィードバックには、個々の部分領域を識別する情報が含まれる。もっとも、OCR処理は、オブジェクトの種類が同じ複数の部分領域を1つの部分領域とみなして確信度を算出し、その確信度が低いことを示す情報を、確信度を算出した複数の部分領域を識別する情報と一緒にフィードバックすることも可能である。
【0024】
本実施の形態の場合、確信度が予め定めた閾値を上回る部分領域についてのフィードバックは実行されない。従って、全ての部分領域について、個々の確信度が予め定めた閾値を越えている場合、OCR処理から前処理へのフィードバックは実行されない。確信度の高いテキストデータが得られているためである。
本実施の形態では、部分領域の確信度を、対応する部分領域から抽出された個々の文字について算出される確信度の平均値として求める。ここでの文字には数字や記号も含まれる。平均値は、部分領域毎に異なる重み付けを用いて算出してもよい。例えば文字領域の場合と表領域の場合では異なる重みを用いてもよい。
【0025】
また、部分領域の確信度の評価に使用する閾値は、部分領域が対応するオブジェクトの種類毎に異なっても良いし、同じでもよい。例えば文字領域と表領域では異なる重みを用いて確信度を算出してもよい。また、同種の部分領域でも、タイトル部分と本文とでは異なる重みを用いてもよい。
部分領域の確信度の評価に使用する閾値は、部分領域が対応するオブジェクトの種類毎に異なっても良いし、同じでもよい。例えば文字領域と表領域では異なる重みを用いて確信度を算出してもよい。
【0026】
なお、OCR処理から前処理へのフィードバックは、部分領域を指定しないフィードバックも可能である。この場合でも、OCR処理は、どの部分領域の確信度が高くどの部分領域の確信度が低いかを認識している。
従って、OCR処理は、新たな前処理が加えられた画像データの中から前回のOCR処理で確信度が低かった部分領域だけを選択して確信度の変化を確認することが可能である。また、OCR処理は、閾値より高い確信度が得られたテキストデータだけを選択的に後処理に出力することも可能である。
【0027】
<OCR処理サーバが実行する処理>
図4は、実施の形態1におけるOCR処理サーバ20が実行する処理の一例を説明するフローチャートである。図中に示す記号のSはステップを意味する。
図4に示す処理は、プロセッサ21A(
図2参照)が実行する。
本実施の形態の場合、
図4に示す処理は、OCR処理を伴う原稿の読み取りの指示を受けた画像処理装置10から、前処理済みの画像データを受信することで開始される。なお、個々の画像データは、文字領域又は表領域と判定された個々の部分領域に対応する。個々の画像データには、部分領域を識別する情報が付与されている。
【0028】
まず、OCR処理サーバ20が処理対象とする画像データの元になる原稿について説明する。
図5は、画像処理装置10が読み取りの対象とする原稿の一例を説明する図である。
図5に示す原稿のタイトルは見積書であり、用紙の全体に地紋が付けられている。
図5に示す見積書は、2つの表を含む。上段は表Aであり、下段は表Bである。
図5に示す表Aと表Bはいずれも3行で構成されている。表Aと表Bの表題が記載される項目名は、いずれも黒色の背景に文字が白抜きで印刷されている。一方、表Aの2行目と3行目は、白色の背景に黒文字が印刷されている。表Bの2行目と3行目は、色付きの背景に文字が印刷されている。文字は、黒文字、白抜き文字、色付き文字のいずれでもよい。なお、背景が網掛けである場合も想定される。
【0029】
図6は、画像データから分離されるオブジェクトの例を説明する図である。
図6の場合、「見積書」、「ABC工業様」、「XYZ商会」、「合計金額 16,000円」の文字列を含む領域が文字領域として画像データから分離される。また、表Aの文字と対応する表、表Bの文字と対応する表を含む領域が表領域として画像データから分離される。また、画像データの右下に配置されたロゴがグラフィックス領域又は図領域として画像データから分離される。
前処理は、オブジェクトの分離の前でも後でもよい。本実施の形態では、前処理の実行後にオブジェクトの分離が実行される。
【0030】
図4の説明に戻る。
文字領域又は表領域と判定された個々の部分領域に対応する画像データを受信したプロセッサ21Aは、個々の部分領域に対応する画像データ毎にOCR処理する(ステップ1)。OCR処理により、個々の画像データからテキストデータが抽出される。
本実施の形態の場合、OCR処理の対象である画像データには、ノイズや地紋等を除去するクレンジング処理が前処理で実行済みである。ただし、クレンジング処理の内容が実際の部分領域の内容に合致している保証はない。
また、各部分領域には、各領域を識別する情報が付されている。この部分領域を識別する情報は、抽出されたテキストデータにも紐付けられる。
【0031】
次に、プロセッサ21Aは、部分領域毎に確信度を算出する(ステップ2)。例えば文字領域に対応する個々の部分領域や表領域に対応する個々の部分領域を単位として確信度が算出される。もっとも、部分領域内を更に分割した領域単位で確信度を算出してもよい。例えば行単位や列単位で確信度を算出してもよい。
続いて、プロセッサ21Aは、算出された確信度はいずれも閾値以上か否かを判定する(ステップ3)。ここでの閾値は、前述したように、部分領域が対応するオブジェクトの種類毎に異なってもよいし、同じでもよい。
【0032】
図7は、1つの表領域について算出された確信度と閾値の関係を説明する図である。
図7に示す例は、表を構成する行ごとに確信度が算出されている。勿論、行を区別すること無く算出された1つの確信度と閾値を比較することも可能である。
図7に示す例は、
図5における表A又は表Bを想定している。このため、行数は3行である。
図7の場合、1つの表領域についての確信度の組み合わせは8個である。
図7では、これらを、組み合わせ1~8で表している。組み合わせの数は、表領域を構成する行数や1つの表領域について通知される確信度の数に依存する。
なお、
図7の組み合わせ1~8に対応する各行の背景色のように、表Aや表Bの背景色が偶数行と奇数行とで異なる場合には、行数が増えても奇数行と偶数行を単位として確信度を算出してもよい。
【0033】
組み合わせ1は、1行目~3行目に対応する各確信度が閾値よりも高い場合である。
組み合わせ2は、1行目と2行目に対応する各確信度が閾値より高いが、3行目に対応する確信度が閾値よりも低い場合である。
組み合わせ3は、1行目と3行目に対応する各確信度が閾値より高いが、2行目に対応する確信度が閾値よりも低い場合である。
組み合わせ4は、1行目に対応する確信度が閾値より高いが、2行目と3行目に対応する各確信度が閾値よりも低い場合である。
組み合わせ5は、2行目と3行目に対応する各確信度が閾値より高いが、1行目に対応する確信度が閾値よりも低い場合である。
組み合わせ6は、2行目に対応する確信度が閾値より高いが、1行目と3行目に対応する各確信度が閾値よりも低い場合である。
組み合わせ7は、3行目に対応する確信度が閾値より高いが、1行目と2行目に対応する各確信度が閾値よりも低い場合である。
組み合わせ8は、1行目~3行目に対応する各確信度が閾値より低い場合である。
【0034】
図4の説明に戻る。
ステップ3で肯定結果が得られた場合、プロセッサ21Aは、OCR処理の結果を画像処理装置10の後処理に出力する(ステップ4)。ステップ3で肯定結果が得られる場合は、全ての領域の確信度が閾値よりも高く、前処理のやり直しを必要としないためである。
一方、ステップ3で否定結果が得られた場合、プロセッサ21Aは、特定の領域に関するOCR処理の結果の確信度が低いことを示す情報を画像処理装置10の前処理にフィードバックする(ステップ5)。確信度が低いとは、確信度が閾値よりも低いことを意味する。
ここでのフィードバックには、確信度が低い部分領域を識別する情報も含まれる。部分領域を識別する情報は、前処理の再実行を、該当する特定の部分領域に限定する場合に必要になる。
【0035】
前処理へのフィードバックでは、表領域の全体としての確信度が低いことを示す情報がフィードバックされてもよいが、
図7で例示したように、表領域を構成する行を指定して確信度が低いことを示す情報がフィードバックされてもよい。確信度が低い領域として、部分領域よりも狭い範囲が指定されることで、OCR処理の結果の確信度が低下する原因を推定する場合の精度が向上される。
なお、確信度が低い部分領域を示す情報しかフィードバックしなくても、前処理の側は、通知されない他の領域についての確信度は高いことの推定が可能である。
【0036】
ステップ5の実行後、プロセッサ21Aは、ステップ1に戻る。具体的には、前処理が再実行された画像データの受信を待ち受ける状態になる。なお、前述した処理は、ステップ3で肯定結果が得られるまで繰り返される。
このように、本実施の形態では、算出された確信度が予め定めた閾値よりも低い部分領域が含まれる間は、その旨が前処理にフィードバックされる。また、確信度が低いことを示す情報のフィードバックを受け付けた前処理は、前回までとは異なる内容の前処理を選択的に実行し、新たに得られた画像データをOCR処理に再び与えることが可能になる。前処理の内容が変更されることにより、閾値より高い確信度が得られる可能性が高まる。
【0037】
もっとも、本実施の形態の場合には、低い確信度が得られた事実しかフィードバックされない。このため、別の内容の前処理が実行された後の画像データをOCR処理した結果の確信度が必ず閾値を越えるとは限らない。むしろ、前回よりも確信度が下がる可能性もある。
しかしながら、確信度が低いことを示す情報のフィードバックが繰り返されることで、全ての部分領域について高い確信度が得られる可能性が高くなる。結果的に、画像処理装置10が実行する後処理には、確信度が閾値よりも高いテキストデータが与えられることになり、後処理の結果に対する精度や信頼性の向上が実現される。また、認識されたテキストデータの人手による確認や人手による修正の手間の削減が実現される。
なお、本実施の形態では、確信度が低い情報のみがフィードバックされているが、確信度が高い部分領域を示す情報を一緒にフィードバックしてもよい。
【0038】
<実施の形態2>
図8は、実施の形態2で実行される処理の概要を説明する図である。
図8には、
図3との対応部分に対応する符号を付して示している。
本実施の形態の場合、OCR処理から前処理には、部分領域毎に算出された確信度がフィードバックされる。
図9は、実施の形態2におけるOCR処理サーバ20が実行する処理の一例を説明するフローチャートである。
図9には、
図4との対応部分に対応する符号を付して示している。
図9の場合、ステップ3で否定結果が得られた場合に実行されるステップ5Aの内容が実施の形態1と異なっている。実施の形態1の場合には、特定の領域に関するOCR処理の結果の確信度が低いことを示す情報がフィードバックされていたが、本実施の形態の場合には、確信度そのものがフィードバックされる。
確信度そのものがフィードバックされるので、前処理の側でも確信度が閾値よりも高いか否かの判定が実行される。
【0039】
<実施の形態3>
図10は、実施の形態3で実行される処理の概要を説明する図である。
図10には、
図3との対応部分に対応する符号を付して示している。
本実施の形態の場合、OCR処理から前処理には、特定の部分領域について前処理の内容の変更を要求する情報がフィードバックされる。
図11は、実施の形態3におけるOCR処理サーバ20が実行する処理の一例を説明するフローチャートである。
図11には、
図4との対応部分に対応する符号を付して示している。
【0040】
図11の場合、ステップ3で否定結果が得られた場合に実行されるステップ5Bの内容が実施の形態1と異なっている。実施の形態1の場合には、特定の領域に関するOCR処理の結果の確信度が低いことを示す情報がフィードバックされていたが、本実施の形態の場合には、前処理の内容の変更を要求する情報がフィードバックされている。前述した実施の形態1及び2の場合には、OCR処理の結果を評価した情報がフィードバックされていたが、実施の形態では、前処理への要求がフィードバックされる。
【0041】
<実施の形態4>
図12は、実施の形態4で実行される処理の概要を説明する図である。
図12には、
図3との対応部分に対応する符号を付して示している。
本実施の形態の場合、OCR処理から前処理には、確信度を低下させる原因がフィードバックされる。
図13は、実施の形態4におけるOCR処理サーバ20が実行する処理の一例を説明するフローチャートである。
図13には、
図4との対応部分に対応する符号を付して示している。
【0042】
図13の場合、ステップ3で否定結果が得られた場合に実行されるステップ5Cの内容が実施の形態1と異なっている。
本実施の形態の場合におけるプロセッサ21Aは、ステップ3で否定結果が得られた場合、対応する領域について確信度が低下した原因を推定し、推定された原因を画像処理装置10の前処理にフィードバックする。
プロセッサ21Aは、例えば地紋の有無、背景の有無、フォントのサイズ、汚れの有無、折れ筋の有無、背景と文字の色の関係、原稿の種類等の情報を画像データから読み取り、原因の推定に利用する。
【0043】
ステップ5Cにおける推定には、例えば事前に用意された対応関係のテーブル、機械学習により更新される学習済みモデル、判定プログラムの使用も可能である。
対応関係のテーブルには、部分領域の画像データから取得される特徴の組み合わせと、確信度が低い場合に想定される原因とが記憶されている。もっとも、組み合わせ毎に推奨される前処理の内容が記憶されていてもよい。
また、学習済みモデルを用いる場合、部分領域に対応する画像データを学習済みモデルに対して入力すると、原因が出力される。もっとも、部分領域に対応する画像データを学習済みモデルに対して入力すると、推奨される前処理の内容が出力されるようにしてもよい。
また、判定プログラムを用いる場合、個別の判定による分岐を1又は複数回繰り返すことで、確信度を低下させていると考えられる原因が出力される。この場合も、原因ではなく、推奨される前処理の内容が出力されてもよい。
【0044】
本実施の形態の場合、確信度が低いと判定された部分領域の画像データと、該当する画像データについて推定された直前回の原因とが教師データとして機械学習される。
学習の単位は、部分領域に限らず、オブジェクトの種類単位でも、原稿の種類単位でも、類似する画像単位でもよい。
なお、オブジェクトの種類は同じでも、
図5における表Aと表Bのように、背景や文字の組み合わせが異なれば、確信度の向上に寄与する前処理の内容は異なる可能性がある。このため、本実施の形態では、部分領域を単位として機械学習を行っている。
【0045】
本実施の形態では、機械学習に強化学習を採用する。強化学習では、報酬が大きくなるように学習が進行する。このため、閾値より低い確信度しか得られなかった前処理の内容には、報酬が与えられないか低い報酬しか付与されない。一方、ステップ3で肯定結果が得られた場合のように閾値より高い確信度が得られた場合の前処理の内容には高い報酬が与えられる。
機械学習の成果は、次回以降における確信度が低い原因の推定に使用される。強化学習された学習済みモデルに部分領域に対応する画像データが与えられると、該当する部分領域の確信度が低い原因が出力される。強化学習の精度が上がることで、フィードバックの回数も低減される。ランダムに前処理の内容の変更を要求する場合に比して、確信度が閾値より高くなる可能性を高めることが可能になる。ここでの学習は部分領域単位でも、オブジェクト単位でも、画像データが対応する原稿の種類別でも構わない。
【0046】
この他、原因の推定には、画像データ全体の確信度を参照することも可能である。画像データ全体の確信度は、同じページについて受信された全ての部分領域を対象として算出される。同じページであることは、前処理から通知される情報に含まれている。
画像データ全体の確信度は、例えば同じページについて受信された全ての部分領域から抽出されたテキストの総数を分母とし、文字毎に算出される確信度のうち確信度が低いテキストの数を分子とすることで算出が可能である。
例えば画像データ全体の確信度が高い一方で、特定の部分領域の確信度だけが低い場合には、特定の部分領域に固有の原因が考えられる。他方、特定の部分領域だけでなく画像データの全体としての確信度も低い場合には、オブジェクトの種類の違いによらない共通の原因が推定される。例えば汚れや折り筋が原因である可能性が推定される。
【0047】
また、類似する又は同種の部分領域について使用された前処理の内容とその確信度に関する情報の履歴が存在する場合には、高い確信度が得られたときの前処理の内容により原因を推定することも可能である。もっとも、前処理の内容が前処理側からOCR処理側に通知されること、これらの情報が部分領域に対応する画像データに紐づけて記憶されていることが必要である。ここで、部分領域が類似する又は同種であるとは、部分領域に対応する画像データの内容が類似する又は同種であることを意味する。
規則化されていなくても、推定された原因と対応する確信度の組み合わせの履歴が記憶されている場合には、高い確信度が得られたときの原因を用いることも可能である。なお、前処理の内容と対応する確信度の組み合わせの履歴が記憶されている場合には、高い確信度が得られたときの前処理の内容から、前提とする原因の推定も可能である。
この他、類似する又は同種の部分領域について推定された原因の履歴が存在する場合には、今回の処理対象である画像データと類似する又は同種の部分領域についての履歴を参考に原因を推定することも可能である。
【0048】
図14は、対象データが表領域の場合に推定される原因の例を説明する図である。(A)は1つの表領域について算出された確信度の組み合わせを示し、(B)は推定された原因を示す。なお、
図14の例では、行ごとに確信度が算出される例である。表領域の全体を単位として確信度が算出される場合には、
図14に示すような詳細な原因の推定は困難になる。(A)に示す表は、
図7と同じである。
組み合わせ1は、1行目~3行目に対応する各確信度が閾値よりも高い場合である。この場合は、直前回に実行された前処理の内容で問題がないため、確信度が低い原因の推定は不要である。
組み合わせ2は、1行目と2行目に対応する各確信度が閾値より高いが、3行目に対応する確信度が閾値よりも低い場合である。この場合、確信度を低下させる原因として、値のセルが色背景であることが推定される。
組み合わせ3は、1行目と3行目に対応する各確信度が閾値より高いが、2行目に対応する確信度が閾値よりも低い場合である。この場合も、確信度を低下させる原因として、値のセルが色背景であることが推定される。
【0049】
組み合わせ4は、1行目に対応する確信度が閾値より高いが、2行目と3行目に対応する各確信度が閾値よりも低い場合である。この場合、確信度を低下させる原因として、値のセルのみ網掛けであることが推定される。ここでの網掛けには地紋も含まれる。
組み合わせ5は、2行目と3行目に対応する各確信度が閾値より高いが、1行目に対応する確信度が閾値よりも低い場合である。この場合、確信度を低下させる原因として、項目名のセルが白抜き文字であることが推定される。
組み合わせ6は、2行目に対応する確信度が閾値より高いが、1行目と3行目に対応する各確信度が閾値よりも低い場合である。この場合、確信度を低下させる原因として、項目名のセルが白抜き文字であり、かつ、値のセルが色背景であることが推定される。
【0050】
組み合わせ7は、3行目に対応する確信度が閾値より高いが、1行目と2行目に対応する各確信度が閾値よりも低い場合である。この場合も、確信度を低下させる原因として、項目名のセルが白抜き文字であり、かつ、値のセルが色背景であることが推定される。
組み合わせ8は、1行目~3行目に対応する各確信度が閾値より低い場合である。この場合、確信度を低下させる原因として、全面が地紋又は全面が色背景であり、かつ、各文字が色文字等であることが推定される。
なお、以上の推定は、原稿本来の画像上の特徴に着目している。このため、汚れや折り筋等の影響による確信度の低下の推定には、別の情報も必要になる。例えばページ単位での確信度やオリジナルの画像データの情報が必要である。
【0051】
<実施の形態5>
図15は、実施の形態5で実行される処理の概要を説明する図である。
図15には、
図3との対応部分に対応する符号を付して示している。
本実施の形態の場合、OCR処理から前処理には、特定の部分領域について要求する前処理の内容がフィードバックされる。
図16は、実施の形態5におけるOCR処理サーバ20が実行する処理の一例を説明するフローチャートである。
図16には、
図4との対応部分に対応する符号を付して示している。
【0052】
図16の場合、ステップ3で否定結果が得られた場合に実行される処理の内容が実施の形態1と異なっている。
本実施の形態におけるプロセッサ21Aは、ステップ3で否定結果が得られると、対応する領域について確信度が低下した原因を推定する(ステップ6)。推定の内容は、実施の形態4で説明したので説明を省略する。
次に、プロセッサ21Aは、推定された原因を解消する前処理の内容を画像処理装置10の前処理にフィードバックする(ステップ7)。
【0053】
要求する処理の内容には、例えばクレンジング処理の種類、クレンジング処理の強度、クレンジング処理で使用するパラメータ値が含まれる。クレンジング処理の種類には、例えば地紋や網掛けを除去する処理、汚れを除去する処理、背景の色を除去して白抜き文字や色付き文字を黒色の文字に変換する処理がある。
ここで、フィードバックする前処理の内容の決定には、例えば事前に用意された対応関係のテーブル、機械学習により更新される学習済みモデル、判定プログラムの使用も可能である。
対応関係のテーブルには、推定された原因と、原因を解消する前処理の内容が対応付けて記憶されている。もっとも、ステップ6とステップ7の処理を一体化し、部分領域に対応する画像データに類似する画像の分類について、推奨される前処理の内容が対応付けて記憶されていてもよい。
【0054】
また、学習済みモデルを用いる場合、推定された原因を学習済みモデルに対して入力すると、原因を解消する前処理の内容が出力される。この場合も、ステップ6とステップ7の処理を一体化し、部分領域に対応する画像データを学習済みモデルに対して入力すると、推奨される前処理の内容が出力されるようにしてもよい。
また、判定プログラムを用いる場合、個別の判定による分岐を1回又は複数回繰り返すことで、確信度を低下させていると考えられる原因を解消する前処理の内容が出力される。この場合も、ステップ6とステップ7の処理を一体化し、部分領域に対応する画像データから抽出される特徴に応じた判定を繰り返すことにより、推奨される前処理の内容が出力されるようにしてもよい。
【0055】
本実施の形態の場合、直前回で推定された原因と前処理に要求された前処理の内容とが教師データとして機械学習される。学習の単位は、部分領域に限らず、オブジェクトの種類単位でも、原稿の種類単位でも、類似する画像単位でもよい。なお、オブジェクトの種類は同じでも、
図5における表Aと表Bのように、背景や文字の組み合わせが異なれば、確信度の向上に寄与する前処理の内容は異なる可能性がある。このため、本実施の形態では、部分領域を単位として機械学習している。
【0056】
本実施の形態では、機械学習に強化学習を採用する。強化学習では、報酬が大きくなるように学習が進行する。このため、閾値より低い確信度しか得られなかった前処理の内容には、報酬が与えられないか低い報酬しか付与されない。一方、ステップ3で肯定結果が得られた場合のように閾値より高い確信度が得られた場合の前処理の内容には高い報酬が与えられる。
機械学習の成果は、次回以降における前処理の内容の決定に使用される。次回以降における前処理には、フィードバックに伴う前処理の再実行だけでなく、新たに読み取った原稿の画像データに対する前処理も含まれる。
【0057】
強化学習された学習済みモデルに推定された原因が与えられると、その原因の解消に要求される前処理の内容が出力される。強化学習の精度が上がることで、フィードバックの回数も低減される。ランダムに前処理の内容を選択する場合に比して、確信度が閾値より高くなる可能性を高めることが可能になる。
【0058】
ステップ7の実行後、プロセッサ21Aは、ステップ1に戻り、要求した前処理の内容で処理された画像データの受信を待機する。結果的に、画像処理装置10が実行する後処理には、確信度が閾値よりも高いテキストデータが与えられることになり、後処理の結果に対する精度や信頼性の向上が実現される。また、人手による認識されたテキストデータの確認や修正の手間の削減が実現される。
【0059】
<実施の形態6>
ここでは、OCR処理サーバ20で実行される他の処理について説明する。
前述の実施の形態では、全ての部分領域の確信度がいずれも閾値以上になった後に、OCR処理の結果が一括して画像処理装置10の後処理に出力されている。すなわち、前述した実施の形態では、各部分領域について最終的に高い確信度が得られた段階のCOR処理の結果だけがまとめられ、画像処理装置10の後処理に出力される。
【0060】
本実施の形態の場合、閾値より高い確信度が得られた部分領域毎に個別にOCR処理の結果であるテキストデータが画像処理装置10の後処理に出力される。
図17は、実施の形態6におけるOCR処理サーバ20が実行する処理の一例を説明するフローチャートである。
図17には、
図4との対応部分に対応する符号を付して示している。
図17の場合、プロセッサ21Aは、ステップ2の実行後に、部分領域毎に確信度は閾値以上か否かを判定する(ステップ3A)。因みに、前述した他の実施の形態の場合には、全ての部分領域のいずれについても確信度が閾値以上か否かが判定されていた。
【0061】
ステップ3Aにおいて否定結果が得られた部分領域について、プロセッサ21Aは、ステップ5の処理を実行する。具体的には、プロセッサ21Aは、否定結果が得られた特定の領域に関するOCR処理の結果の確信度が低いことを示す情報を画像処理装置10の前処理にフィードバックする。
なお、前述した実施の形態2のように確信度そのものをフィードバックしてもよいし、実施の形態3のように前処理の内容の変更を要求する情報をフィードバックしてもよいし、実施の形態4のように確信度を低下させる原因をフィードバックしてもよいし、実施の形態5のように画像処理装置10に要求する前処理の内容をフィードバックしてもよい。
【0062】
一方、ステップ3Aで肯定結果が得られた部分領域について、プロセッサ21Aは、OCR処理の結果を画像処理装置10の後処理に出力する処理を実行する(ステップ4)。ただし、ここでの出力は、確信度が閾値以上であることが確認される度に部分領域毎に実行される。
ステップ4の実行後、プロセッサ21Aは、全ての部分領域で確信度が閾値以上になったか否かを判定する(ステップ8)。
【0063】
ステップ8で否定結果が得られた場合、プロセッサ21Aは、ステップ1に戻る。この場合は、OCR処理の対象である部分領域のうち確信度が低い部分領域が残っていることを意味する。
ステップ8で肯定結果が得られた場合、プロセッサ21Aは、処理対象である原稿に対するOCR処理を終了する。
本実施の形態の場合には、確信度が閾値より高くなった部分領域から順番にOCR処理により得られたテキストデータを後処理に対して逐次出力しているが、一旦全てのテキストデータを後処理に出力し、事後的に高い確信度が得られた部分領域について得られたテキストデータだけを差し替え用又は上書き用として後処理に出力してもよい。
【0064】
<実施の形態7>
前述の実施の形態の場合、画像処理装置10が画像データをオブジェクトに分離しているが、画像データをオブジェクトに分離する処理は、OCR処理サーバ20の側で実行してもよい。
図18は、実施の形態7で実行される処理の概要を説明する図である。
図18には、
図3との対応部分に対応する符号を付して示している。
図18の場合、前処理からOCR処理には、処理の対象の区別に使用するファイル名と前処理後の画像データが送信されている。ここでの画像データは、原稿から読み取られた画像データの全体に対応する。オブジェクトに分離する処理が実行されていないためである。
【0065】
一方、OCR処理から前処理へのフィードバックには、OCRの結果の確信度が低いことを示す情報が部分領域単位でフィードバックされる。また、フィードバックには、部分領域を識別する情報も含まれる。
本実施の形態の場合、画像処理装置10は、個々の部分領域の範囲を知らない。このため、矩形形状の部分領域を識別する情報には、例えば領域の外縁を規定する対角位置の2つ座標点が含まれてもよい。また例えば矩形形状の部分領域を識別する情報には、領域の1つの角を与える座標点と、同座標点を起点とする2辺の方向と長さを含んでもよい。部分領域を識別する情報は、フィードバックの対象である部分領域の特定が可能であれば、前述した2例に限らない。
なお、実施の形態2~6のいずれの場合にも、オブジェクトに分離する処理をOCR処理で実行することが可能である。
【0066】
<実施の形態8>
前述の実施の形態の場合、確信度が閾値以上となった文字領域又は表領域から抽出されたテキストデータが後処理に出力されると、処理の対象である原稿に対するOCR処理が終了する。
これらの場合、OCR処理から後処理へのテキストデータの出力を前処理で検知することにより、又は、後処理によるテキストデータの受信を前処理で検知することにより、OCR処理の終了を前処理において検知することが可能である。
【0067】
ただし、前処理の側で、OCR処理の終了を確実に知りたい場合がある。例えば前処理の可能性が無くなった段階で画像データを削除する場合である。また、前処理を実行する画像処理装置10と後処理を実行する画像処理装置10が異なる場合には、OCR処理から後処理へのテキストデータの出力や後処理によるテキストデータの受信を知り得ない可能性もある。
そこで、本実施の形態では、OCR処理の終了を前処理に通知する機能をOCR処理に用意する。
【0068】
図19は、実施の形態8で実行される処理の概要を説明する図である。
図19には、
図3との対応部分に対応する符号を付して示している。
図19の場合、確信度が低い部分領域が含まれる間、OCR処理から前処理に対して、OCR処理した結果の確信度が低いことを示す情報がフィードバックされる一方、確信度が低い部分領域が無くなると、OCR処理の終了が通知されている。
図20は、実施の形態8におけるOCR処理サーバ20が実行する処理の一例を説明するフローチャートである。
図20には、
図4との対応部分に対応する符号を付して示している。
【0069】
図20の場合、プロセッサ21Aは、ステップ4の実行後に、OCR処理の終了を画像処理装置10の前処理に通知する(ステップ9)。前処理の終了を受信した前処理は、通知の対象である原稿の画像データを前処理に使う必要が無くなったことを意味する。このため、前処理の側では、対象とする画像データを安心して削除することが可能になる。
なお、OCR処理の終了を通知する機能は、前述した実施の形態のいずれにも組み合わせが可能である。
【0070】
<実施の形態9>
図21は、実施の形態9で実行される処理の概要を説明する図である。
図21には、
図3との対応部分に対応する符号を付して示している。
前述の実施の形態では、情報のフィードバック先が前処理だけであったが、本実施の形態では、原稿の画像データを取得する処理にも情報をフィードバックする。
例えば原稿に印字された又は記入された文字のサイズに対して画像データの取得時に使用した解像度が小さい場合、OCR処理の結果の確信度は低下する可能性がある。解像度の不一致が確信度の低下の原因である場合、前処理の内容を変更しても確信度は改善しない。
【0071】
そこで、本実施の形態では、OCR処理の対象である画像データに含まれるフォントのサイズが確信度の低い原因と考えられる場合、画像データの解像度の変更が原稿の画像データを取得する処理へのフィードバックが実行される。
図21の例では、200dpiから600dpiへの変更が指示されている。なお、フォントサイズの大きさを検知する技術は既知である。
本実施の形態で説明したフィードバックは、前述した実施の形態のいずれとも組み合わせが可能である。
【0072】
<他の実施の形態>
以上、本発明の実施の形態について説明したが、本発明の技術的範囲は前述した実施の形態に記載の範囲に限定されない。前述した実施の形態に、種々の変更又は改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
【0073】
(1)例えば前述の実施の形態においては、前処理とその後段側の処理の組み合わせがクレンジング処理とOCR処理の組み合わせの場合について説明した。しかし、前処理と後段側の処理との関係は、他の場合にも考えられる。例えば前処理は顔認識のための特徴量の抽出であり、後段側の処理は抽出された特徴量を使用した顔認識であってもよい。この場合、確信度は、顔認識された結果の精度を表す情報等となる。このように、前述の実施の形態では、後段側の処理がOCR処理であることを前提としているが、前処理とその後段側の処理の組み合わせは任意で良い。
【0074】
(2)前述の実施の形態の場合には、
図5に示す原稿を前提として表を構成する行単位で確信度を算出しているが、列単位で確信度を算出する場合にも応用が可能である。
(3)前述の実施の形態においては、OCR処理サーバ20に与える画像データに前処理を加える装置の一例として、原稿を光学的に読み取って画像データを生成する機能その他を含む画像処理装置10を例示したが、画像処理装置10として、原稿に対応する画像データの取り込みに特化したイメージスキャナを用いてもよい。イメージスキャナには、ADF(=Auto Document Feeder)が設けられていてもよい。
また、OCR処理サーバ20に与える画像データに前処理を加える装置には、原稿の撮像に用いるスマートフォンやデジタルカメラの他、外部から原稿を撮像した画像データを取得するコンピュータを用いてもよい。ここでのコンピュータは、前処理とOCR処理後のデータの後処理等に用いられ、原稿の画像を撮像する機能や原稿の情報を光学的に読み取る機能は有しなくてもよい。
【0075】
(4)前述の実施の形態においては、画像処理装置10とOCR処理サーバ20が独立した装置として構成される場合について説明したが、画像処理装置10においてOCR処理が実行されてもよい。この場合には、画像処理装置10の内部で、前処理、OCR処理、後処理の全てが実行される。
【0076】
(5)前述の実施の形態においては、OCR処理により得られたテキストデータを処理する後処理を、前処理を実行した画像処理装置10が引き継ぐ場合を説明したが、OCR処理により得られたテキストデータを、前処理を実行した画像処理装置10とは異なる処理装置に出力してもよい。
【0077】
(6)前述した各実施の形態におけるプロセッサは、広義的な意味でのプロセッサを指し、汎用的なプロセッサ(例えばCPU(=Central Processing Unit)等)の他、専用的なプロセッサ(例えばGPU、ASIC(=Application Specific Integrated Circuit)、FPGA、プログラム論理デバイス等)を含む。
また、前述した各実施の形態におけるプロセッサの動作は、1つのプロセッサが単独で実行してもよいが、物理的に離れた位置に存在する複数のプロセッサが協働して実行してもよい。また、プロセッサにおける各動作の実行の順序は、前述した各実施の形態に記載した順序のみに限定されるものでなく、個別に変更してもよい。
【符号の説明】
【0078】
1…情報処理システム、10…画像処理装置、20…OCR処理サーバ、21…演算ユニット、21A…プロセッサ、22…記憶装置、23…通信装置、30…クラウドネットワーク