(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/413 20220101ALI20240312BHJP
【FI】
G06V30/24
G06V30/164
G06V30/413
(21)【出願番号】P 2020021691
(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)
【文献】丹羽 寿男,パターンと記号の統合化処理による文字認識,電子情報通信学会論文誌 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年,P.254-257,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=395737
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/24
G06V 30/164
G06V 30/413
(57)【特許請求の範囲】
【請求項1】
プロセッサを有し、
前記プロセッサは、
取得した画像データに対して前処理を実行し、
前処理後の前記画像データを処理する後段側の処理から、当該画像データに対応する画像のうち少なくとも1つの部分領域を特定する情報を受け付ける場合、特定された部分領域を対象として特定の前処理を実行する、
情報処理装置であり、
前記プロセッサは、部分領域を特定する前記情報に、部分領域を対象とする処理の結果の精度が予め定めた閾値よりも低いことを示す情報が含まれる場合、部分領域を特定する前記情報により特定された部分領域に対し、前回までとは異なる内容の前処理を実行し、
前記プロセッサは、前記画像データに類似する他の画像データに対する前処理の履歴に基づいて原因を推定する
、情報処理装置。
【請求項2】
プロセッサを有し、
前記プロセッサは、
取得した画像データに対して前処理を実行し、
前処理後の前記画像データを処理する後段側の処理から、当該画像データに対応する画像のうち少なくとも1つの部分領域を特定する情報を受け付ける場合、特定された部分領域を対象として特定の前処理を実行する、
情報処理装置であり、
前記プロセッサは、部分領域を特定する前記情報に、部分領域を対象とする処理の結果の精度が予め定めた閾値よりも低いことを示す情報が含まれる場合、部分領域を特定する前記情報により特定された部分領域に対し、前回までとは異なる内容の前処理を実行し、
前記プロセッサは、同種の部分領域間における精度の違いに基づいて原因を推定する
、情報処理装置。
【請求項3】
コンピュータに、
取得した画像データに対して前処理を実行し、
前処理後の前記画像データを処理する後段側の処理から、当該画像データに対応する画像のうち少なくとも1つの部分領域を特定する情報を受け付ける場合、特定された部分領域を対象として特定の前処理を実行する機能と、
部分領域を特定する前記情報に、部分領域を対象とする処理の結果の精度が予め定めた閾値よりも低いことを示す情報が含まれる場合、部分領域を特定する前記情報により特定された部分領域に対し、前回までとは異なる内容の前処理を実行する機能と、
前記画像データに類似する他の画像データに対する前処理の履歴に基づいて原因を推定する機能と、
を実現させるためのプログラム。
【請求項4】
コンピュータに、
取得した画像データに対して前処理を実行し、
前処理後の前記画像データを処理する後段側の処理から、当該画像データに対応する画像のうち少なくとも1つの部分領域を特定する情報を受け付ける場合、特定された部分領域を対象として特定の前処理を実行する機能と、
部分領域を特定する前記情報に、部分領域を対象とする処理の結果の精度が予め定めた閾値よりも低いことを示す情報が含まれる場合、部分領域を特定する前記情報により特定された部分領域に対し、前回までとは異なる内容の前処理を実行する機能と、
同種の部分領域間における精度の違いに基づいて原因を推定する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
印刷物に印刷された文字や手書きされた文字の画像を、コンピュータで利用が可能な文字コードに変換する技術が知られている。この技術は、OCR(=Optical Character Recognition)処理と呼ばれる。文字を含む文書に対応する画像の取得には、いわゆるスキャナやデジタルカメラが使用される。
スキャナやデジタルカメラで撮像された画像データをOCR処理に直接出力することも可能であるが、OCR処理による文字の認識の結果の確からしさを示す値(以下「確信度」という)を上げるためには、事前に処理を加えることがある。例えばOCR処理の前に、画像に含まれるノイズや地紋等を除去するクレンジング処理を実行することがある。この他、取得時における画像の解像度を高く設定することがある。以下では、OCR処理の前に実行される処理を前処理と呼ぶ。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
現在、OCR処理の確信度は、処理の対象である画像の全体又はデータファイルの全体を単位として算出されている。このため、OCR処理の確信度が低下する領域が含まれる場合でも、全体としての確信度が高いと、確信度が低い領域が含まれることに前処理は気づかない。
【0005】
本発明は、後段側の処理で得られた部分領域に関する情報を前段側の処理に通知しない場合に比して、後段側の処理で得られる結果の精度を部分領域単位で向上させることを目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載の発明は、プロセッサを有し、前記プロセッサは、取得した画像データに対して前処理を実行し、前処理後の前記画像データを処理する後段側の処理から、当該画像データに対応する画像のうち少なくとも1つの部分領域を特定する情報を受け付ける場合、特定された部分領域を対象として特定の前処理を実行する、情報処理装置であり、前記プロセッサは、部分領域を特定する前記情報に、部分領域を対象とする処理の結果の精度が予め定めた閾値よりも低いことを示す情報が含まれる場合、部分領域を特定する前記情報により特定された部分領域に対し、前回までとは異なる内容の前処理を実行し、前記プロセッサは、前記画像データに類似する他の画像データに対する前処理の履歴に基づいて原因を推定する、情報処理装置である。
請求項2に記載の発明は、プロセッサを有し、前記プロセッサは、取得した画像データに対して前処理を実行し、前処理後の前記画像データを処理する後段側の処理から、当該画像データに対応する画像のうち少なくとも1つの部分領域を特定する情報を受け付ける場合、特定された部分領域を対象として特定の前処理を実行する、情報処理装置であり、前記プロセッサは、部分領域を特定する前記情報に、部分領域を対象とする処理の結果の精度が予め定めた閾値よりも低いことを示す情報が含まれる場合、部分領域を特定する前記情報により特定された部分領域に対し、前回までとは異なる内容の前処理を実行し、前記プロセッサは、同種の部分領域間における精度の違いに基づいて原因を推定する、情報処理装置である。
請求項3に記載の発明は、コンピュータに、取得した画像データに対して前処理を実行し、前処理後の前記画像データを処理する後段側の処理から、当該画像データに対応する画像のうち少なくとも1つの部分領域を特定する情報を受け付ける場合、特定された部分領域を対象として特定の前処理を実行する機能と、部分領域を特定する前記情報に、部分領域を対象とする処理の結果の精度が予め定めた閾値よりも低いことを示す情報が含まれる場合、部分領域を特定する前記情報により特定された部分領域に対し、前回までとは異なる内容の前処理を実行する機能と、前記画像データに類似する他の画像データに対する前処理の履歴に基づいて原因を推定する機能と、を実現させるためのプログラムである。
請求項4に記載の発明は、コンピュータに、取得した画像データに対して前処理を実行し、前処理後の前記画像データを処理する後段側の処理から、当該画像データに対応する画像のうち少なくとも1つの部分領域を特定する情報を受け付ける場合、特定された部分領域を対象として特定の前処理を実行する機能と、部分領域を特定する前記情報に、部分領域を対象とする処理の結果の精度が予め定めた閾値よりも低いことを示す情報が含まれる場合、部分領域を特定する前記情報により特定された部分領域に対し、前回までとは異なる内容の前処理を実行する機能と、同種の部分領域間における精度の違いに基づいて原因を推定する機能と、を実現させるためのプログラムである。
【発明の効果】
【0007】
請求項1記載の発明によれば、後段における処理の結果の精度を効率的に向上できる。
請求項2記載の発明によれば、後段における処理の結果の精度を効率的に向上できる。
請求項3記載の発明によれば、後段における処理の結果の精度を効率的に向上できる。
請求項4記載の発明によれば、後段における処理の結果の精度を効率的に向上できる。
【図面の簡単な説明】
【0008】
【
図1】実施の形態で使用する情報処理システムの構成例を示す図である。
【
図2】実施の形態1で使用する画像処理装置のハードウェア構成の一例を説明する図である。
【
図3】実施の形態1で実行される処理の概要を説明する図である。
【
図4】実施の形態1における画像処理装置が実行する処理の一例を説明するフローチャートである。
【
図5】読み取りの対象とする原稿の一例を説明する図である。
【
図6】画像データから分離されるオブジェクトの例を説明する図である。
【
図7】実施の形態1のステップ11で実行される処理の一例を説明するフローチャートである。
【
図8】実施の形態2で実行される処理の概要を説明する図である。
【
図9】実施の形態2における画像処理装置が実行する処理の一例を説明するフローチャートである。
【
図10】実施の形態2のステップ21で実行される処理の一例を説明するフローチャートである。
【
図11】実施の形態3で実行される処理の概要を説明する図である。
【
図12】実施の形態3における画像処理装置が実行する処理の一例を説明するフローチャートである。
【
図13】実施の形態3のステップ32で実行される処理の一例を説明するフローチャートである。
【
図14】実施の形態3のステップ32で実行される処理の他の例を説明するフローチャートである。
【
図15】対象データが表領域の場合に推定される原因の例を説明する図である。(A)は1つの表領域についてフィードバックされた確信度の組み合わせを示し、(B)は推定された原因を示す。
【
図16】実施の形態4で実行される処理の概要を説明する図である。
【
図17】実施の形態4における画像処理装置が実行する処理の一例を説明するフローチャートである。
【
図18】実施の形態4のステップ42で実行される処理の一例を説明するフローチャートである。
【
図19】通知される原因の一例を説明する図である。
【
図20】実施の形態5で実行される処理の概要を説明する図である。
【
図21】実施の形態5における画像処理装置が実行する処理の一例を説明するフローチャートである。
【
図22】実施の形態6で実行される処理の概要を説明する図である。
【
図23】実施の形態6における画像処理装置が実行する処理の一例を説明するフローチャートである。
【
図24】実施の形態7における画像処理装置が実行する処理の一例を説明するフローチャートである。
【
図25】実施の形態8で実行される処理の概要を説明する図である。
【発明を実施するための形態】
【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は、受信したテキストデータに対して後処理を実行する。後処理には、例えば言語処理、テキストデータを管理上の正しい位置に紐付ける処理、テキストデータに関連する文書の検索、物品の配達に用いる経路の検索がある。なお、後処理の内容は、読み取る原稿の内容や求められる処理の内容に応じて設計される。
この他、本実施の形態におけるOCR処理サーバ20には、OCR処理の結果の確信度に関する情報を部分領域毎に前処理にフィードバックする機能も設けられている。この機能は、OCR処理により得られる文字の認識の結果の確からしさを高める、又は、後処理の結果の品質や精度を高めるために設けられている。
【0013】
ところで、本実施の形態における画像処理装置10の運用者とOCR処理サーバ20の運用者は同じでもよいし、異なってもよい。
本実施の形態では、OCR処理に特化したOCR処理サーバ20を用いているが、複数の機能に対応する汎用型のサーバを用いてもよい。なお、OCR処理を実行するコンピュータはサーバに限らない。OCR処理を実行するコンピュータは、例えばデスクトップ型のコンピュータやノート型のコンピュータでもよく、スマートフォンやタブレット型の端末でもよい。
【0014】
図1の場合、OCR処理サーバ20は1台であるが、情報処理システム1を構成するOCR処理サーバ20は複数台でよい。複数台のOCR処理サーバ20が1つの画像データを分散的に処理してもよい。本実施の形態におけるOCR処理サーバ20は、後段側の処理を実行する装置の一例である。
本実施の形態の場合、画像処理装置10とOCR処理サーバ20との通信にクラウドネットワーク30を用いているが、クラウドネットワーク30経由の通信に限らない。例えば画像処理装置10とOCR処理サーバ20の通信には、LAN(=Local Area Network)、4Gや5Gと略称される移動通信システムを用いてもよい。
【0015】
<画像処理装置の構成>
図2は、実施の形態1で使用する画像処理装置10のハードウェア構成の一例を説明する図である。
図2に示す画像処理装置10は、装置の全体を制御する制御ユニット11と、画像データ等を記憶する記憶装置12と、原稿を光学的に読み取って画像データを生成する画像読取ユニット13と、階調を変換する処理や色を補正する処理等を画像データに加える画像処理ユニット14と、画像データに応じた画像を用紙に形成する画像形成ユニット15と、ユーザの操作を受け付ける操作受付ユニット16と、ユーザインタフェース画面等が表示される表示ユニット17と、外部との通信に用いられる通信装置18とを有している。制御ユニット11と各部は、バス19や不図示の信号線を通じて接続されている。
【0016】
本実施の形態における制御ユニット11は、プロセッサ11Aと、ファームウェアやBIOS(=Basic Input Output System)等が記憶された不図示のROM(=Read Only Memory)と、ワークエリアとして用いられる不図示のRAM(=Random Access Memory)とを有している。制御ユニット11は、いわゆるコンピュータとして機能する。前述した前処理や後処理は、プロセッサ11Aによるプログラムの実行を通じて実現される。
記憶装置12は、ハードディスク装置や不揮発性の書き換え可能な半導体メモリ等により構成される。記憶装置12には、例えば画像読取ユニット13で読み取られた画像データ等が記憶される。記憶装置12には、アプリケーションプログラムが格納されてもよい。
【0017】
画像読取ユニット13は、例えばCIS(=Contact Image Sensor)センサを備えている。CISセンサは、照明光を射出するLED(=Light Emitting Diode)と、原稿で反射された光を受光するフォトセンサと、原稿で反射した光をフォトセンサに集光する光学系を含んでいる。
ADFにより原稿を読み取り位置に搬送しながら画像を読み取るモードの場合、CISセンサは、読み取り位置に固定された状態で使用される。光が透過するガラス面に原稿を配置した状態で画像を読み取るモードの場合、CISセンサは、原稿に対して相対的に移動するよう制御される。
画像処理ユニット14は、階調を変換する処理や色を補正する処理等を実行するGPU(=Graphics Processing Unit)やFPGA(=Field Programmable Gate Array)等で構成される。
【0018】
画像形成ユニット15は、紙に転写されたトナーを熱で定着することにより画像データに応じた画像を紙面上に形成する電子写真方式や液滴を用紙に射出することにより画像データに応じた画像を紙面上に形成するインクジェット方式に応じた機構を有している。
操作受付ユニット16は、表示ユニット17の表示面に配置されるタッチセンサ、物理的なスイッチやボタン等で構成される。
表示ユニット17は、例えば液晶ディスプレイや有機ELディスプレイで構成される。操作受付ユニット16と表示ユニット17を一体化したデバイスは、タッチパネルとも呼ばれる。タッチパネルは、ソフトウェア的に表示されたキー(以下「ソフトキー」とも呼ぶ)に対するユーザの操作の受け付けに使用される。
通信装置18は、有線や無線による通信規格に準拠したモジュールで構成される。通信装置18には、例えばイーサネット(登録商標)モジュール、USB(=Universal Serial Bus)、無線LAN、ファクシミリ用のモデムその他が用いられる。
【0019】
<処理の内容>
以下では、画像処理装置10とOCR処理サーバ20の連携により実行される処理について説明する。
<処理の概要>
図3は、実施の形態1で実行される処理の概要を説明する図である。本実施の形態における処理は、5つの処理で構成される。5つの処理は、原稿の画像データを取得する処理と、取得された画像データに対する前処理と、前処理後の画像データに対するOCR処理と、OCR処理の結果であるテキストデータを処理する後処理と、後処理の結果を記憶装置12(
図2参照)に格納する処理である。
本実施の形態の場合、OCR処理をOCR処理サーバ20(
図1参照)が実行し、その他の4つの処理は画像処理装置10(
図1参照)が実行する。
【0020】
本実施の形態の場合、前処理として、ノイズや地紋等を除去するクレンジング処理やオブジェクトに分離する処理が実行される。一方、後処理として、キー(=key)と対応する値(=value)の組み合わせが登録された辞書を参照してキーに対応する値又は値に対応するキーを抽出する処理が実行される。本実施の形態におけるキー及び値は、文字又は画像が対応する。例えばキーが名前の場合、値には富士太郎が対応する。換言すると、キーは項目を示す文字又は図形であり、値は項目に対応する具体的な内容を示す文字又は図形である。
本実施の形態の場合、前処理とOCR処理との間で処理の対象を特定する情報が前処理からOCR処理に通知される。
図3の場合は、処理の対象を特定する情報としてファイル名が、前処理後の画像データに付属するデータとして通知されている。本実施の形態の場合、ファイル名は、読み取りの日時や読み取り作業を行ったユーザ名、読み取りに用いた画像処理装置10を区別する情報等で構成される。もっとも、ファイル名を特定する情報は、これらに限らない。
【0021】
一方のOCR処理は、前処理への情報のフィードバックに際し、例えばファイル名を用いて処理の対象を明示する。このファイル名の通知により、前処理とOCR処理との連携が可能になる。例えば前処理やOCR処理が並列して複数の画像データを処理している場合には、ファイル名を用いることで、処理の対象の区別が可能になる。なお、処理の対象の特定が可能であればよいので、前処理からOCR処理に通知される情報はファイル名に限らない。
【0022】
本実施の形態の場合、前処理において、画像データを複数のオブジェクトに分離する処理も実行される。
本実施の形態の場合、オブジェクトとして、文字の領域(以下「文字領域」という)、表の領域(以下「表領域」という)、グラフィックスの領域(以下「グラフィックス領域」という)、図の領域(以下「図領域」という)の4つを使用する。
例えば原稿のタイトル、文字、数値が含まれる領域は、文字領域として切り出される。表そのものや表に付属する題名は表領域として切り出される。社名などを図案化した領域は、グラフィックス領域や図領域として切り出される。その他の領域は背景である。個々のオブジェクトは部分領域の一例である。
【0023】
なお、背景、グラフィックス領域、図領域はOCR処理の対象から除外される。このため、文字領域と表領域に対応する画像データが、対象データとして、画像処理装置10からOCR処理サーバ20に送信される。なお、各対象データには、個々の部分領域を識別する情報が付与されている。
本実施の形態の場合、前処理からOCR処理には、部分領域単位で前処理後の画像データが送信される。
この他、前処理からOCR処理には、実行された前処理の内容を特定する情報を通知してもよい。前処理の内容は、OCR処理の側で確信度が低い原因を推定する場合に利用が可能である。
【0024】
本実施の形態の場合、OCR処理から前処理には、部分領域単位で要求する前処理の内容がフィードバックされる、又は、OCR処理した結果の確信度が低いことを示す情報がフィードバックされる。確信度は、精度に関する情報の一例である。
本実施の形態の場合、部分領域は、オブジェクトとして切り出された個々の領域の意味で使用する。換言すると、文字領域が複数ある場合には、文字領域毎に異なる情報がフィードバックされる可能性がある。表領域についても同様である。なお、表領域については、行や列単位で異なる情報がフィードバックされる可能性もある。
本実施の形態の場合、前処理からOCR処理には、個々の部分領域を識別する情報が通知されている。従って、OCR処理から前処理へのフィードバックには、個々の部分領域を識別する情報が含まれる。もっとも、OCR処理は、オブジェクトの種類が同じ複数の部分領域を1つの部分領域とみなして確信度を算出し、その確信度が低いことを示す情報を、確信度を算出した複数の部分領域を識別する情報と一緒にフィードバックすることも可能である。
【0025】
本実施の形態の場合、確信度が予め定めた閾値を上回る部分領域についてのフィードバックは実行されない。従って、全ての部分領域について、個々の確信度が予め定めた閾値を越えている場合、OCR処理から前処理へのフィードバックは実行されない。確信度の高いテキストデータが得られているためである。
本実施の形態では、部分領域の確信度を、対応する部分領域から抽出された個々の文字について算出される確信度の平均値として求める。ここでの文字には数字や記号も含まれる。平均値は、部分領域毎に異なる重み付けを用いて算出してもよい。例えば文字領域の場合と表領域の場合では異なる重みを用いてもよい。また、同種の部分領域でも、タイトル部分と本文とでは異なる重みを用いてもよい。
部分領域の確信度の評価に使用する閾値は、部分領域が対応するオブジェクトの種類毎に異なっても良いし、同じでもよい。例えば文字領域と表領域では異なる重みを用いて確信度を算出してもよい。
【0026】
なお、OCR処理から前処理へのフィードバックは、部分領域を指定しないフィードバックも可能である。この場合でも、OCR処理は、どの部分領域の確信度が高くどの部分領域の確信度が低いかを認識している。
従って、OCR処理は、新たな前処理が加えられた画像データの中から前回のOCR処理で確信度が低かった部分領域だけを選択して確信度の変化を確認することが可能である。また、OCR処理は、閾値より高い確信度が得られたテキストデータだけを選択的に後処理に出力することも可能である。
【0027】
<画像処理装置が実行する処理>
図4は、実施の形態1における画像処理装置10が実行する処理の一例を説明するフローチャートである。図中に示す記号のSはステップを意味する。
図4に示す処理は、プロセッサ11A(
図2参照)が実行する。
図4に示す処理は、OCR処理を伴う原稿の読み取りの指示を受け付けることで開始される。画像処理装置10に対する読み取りの指示には、例えばスタートボタンの操作が用いられる。
読み取りの指示では、読み取りの条件又は前提の設定が可能である。例えば読み取りの対象である原稿の種類の指定が可能である。原稿の種類が指定されている場合、原稿の種類に応じて用意されている前処理の内容が、プロセッサ11Aにより選択される。なお、機械学習により原稿の種類と高い確信度が得られる前処理の内容との関係が学習されている場合、プロセッサ11Aは、指定された原稿の種類に対応する前処理の内容を選択する。
もっとも、読み取りの条件又は前提を設定しない読み取りの指示も可能である。この場合には、読み取りにより推定された原稿の種類や原稿の特徴に応じた内容の前処理がプロセッサ11Aにより選択される。また、原稿のタイトルの読み取りが画像処理装置10により可能な場合、読み取られたタイトルに応じた内容の前処理が、プロセッサ11Aにより選択される。
【0028】
さて、OCR処理を伴う原稿の読み取りの指示を受け付けると、プロセッサ11Aは、原稿の画像データを取得する(ステップ1)。画像データは、例えばPDF(=Portable Document Format)その他の予め定めた形式で出力される。
図5は、読み取りの対象である原稿の一例を説明する図である。
図5に示す原稿のタイトルは見積書であり、用紙の全体に地紋が付けられている。
図5に示す見積書は、2つの表を含む。上段は表Aであり、下段は表Bである。
図5に示す表Aと表Bはいずれも3行で構成されている。表Aと表Bの表題が記載される項目名は、いずれも黒色の背景に文字が白抜きで印刷されている。表Aの2行目と3行目は、白色の背景に黒文字が印刷されている。表Bの2行目と3行目は、色付きの背景に文字が印刷されている。文字は、黒文字、白抜き文字、色付き文字のいずれでもよい。なお、背景が網掛けである場合も想定される。
【0029】
図4の説明に戻る。
続いて、プロセッサ11Aは、取得した画像データに対して前処理を実行する(ステップ2)。本実施の形態の場合、前処理では、オブジェクトの分離が実行される。オブジェクトの分離には、既知の技術が用いられる。また、予め選択された又は初期設定で定められているクレンジング処理も実行される。
図6は、画像データから分離されるオブジェクトの例を説明する図である。
図6の場合、「見積書」、「ABC工業様」、「XYZ商会」、「合計金額 16,000円」の文字列を含む領域が文字領域として画像データから分離される。また、表Aの文字と対応する表、表Bの文字と対応する表を含む領域が表領域として画像データから分離される。また、画像データの右下に配置されたロゴがグラフィックス領域又は図領域として画像データから分離される。
前処理は、オブジェクトの分離の前でも後でもよい。本実施の形態では、前処理の実行後にオブジェクトの分離が実行される。
【0030】
図4の説明に戻る。
次に、プロセッサ11Aは、OCR処理サーバ20に対象データを送信する(ステップ3)。本実施の形態の場合、対象データは、文字領域と表領域に対応する画像データである。すなわち、グラフィックス領域及び図領域と判定された部分の画像データは、OCR処理サーバ20に送信されない。
この後、プロセッサ11Aは、OCR処理サーバ20から情報のフィードバックがあるか否かを判定する(ステップ4)。
例えば予め定めた時間内に情報のフィードバックがなかった場合、プロセッサ11Aは、ステップ4で否定結果を得る。本実施の形態の場合、情報のフィードバックがないことは、OCR処理の結果の確信度が全ての部分領域について高いことを意味する。前述したように、本実施の形態では、部分領域を単位として確信度が算出されている。なお、表の全体を単位として確信度を算出してもよいし、表を構成する行や列を単位として確信度を算出してもよい。
【0031】
ステップ4で否定結果が得られた場合、プロセッサ11Aは、記憶装置12(
図2参照)から、ステップ1で取得した画像データを消去する(ステップ5)。対象とする画像データについて再度の前処理を実行する必要がないためである。ここでの消去は、前処理用としての画像データの消去である。従って、他の用途用に画像データを保存することは可能である。
次に、プロセッサ11Aは、OCR処理サーバ20から取得したテキストデータを後処理する(ステップ6)。この後、プロセッサ11Aは、記憶装置12に対し、処理結果を格納する(ステップ7)。なお、ステップ5は、ステップ6やステップ7の後に実行してもよい。
本実施の形態の場合、ステップ5~ステップ7の実行中に又はこれらの処理の実行後に、プロセッサ11Aは、画像データの全体又は特定の部分領域に対して直前回に実行した前処理の内容で高い確信度が得られたことを学習する。学習の単位は、後述する確信度が低い場合と同様である。
【0032】
ステップ4で肯定結果が得られた場合、プロセッサ11Aは、フィードバックの対象データを特定する(ステップ8)。本実施の形態の場合、確信度が予め定めた閾値を超えない部分領域が存在するとき、OCR処理サーバ20から画像処理装置10にフィードバックがある。本実施の形態の場合、OCR処理サーバ20からフィードバックされる情報には、対象とする部分領域を識別する情報が含まれている。部分領域を識別する情報には、例えば原稿を撮像した画像データ内の位置を示す座標や通し番号が用いられる。座標は、例えば領域の外縁を規定する1つ又は複数の座標点で与えられる。部分領域が矩形形状の場合、部分領域の例えば左上隅の座標点を使用する。部分領域を識別する情報は、ステップ3でOCR処理サーバ20に送信された対象データに含まれている。対象データが特定されると、対象とする画像データやオブジェクトの種類も特定される。
【0033】
次に、プロセッサ11Aは、フィードバックされた情報に前処理の内容に対する指示が含まれるか否かを判定する(ステップ9)。
図3で説明したように、本実施の形態におけるOCR処理サーバ20には、確信度が閾値より低いことを示す情報や前処理に要求する処理の内容を、画像処理装置10の前処理にフィードバックする機能が設けられている。
要求する処理の内容には、例えばクレンジング処理の種類、クレンジング処理の強度、クレンジング処理で使用するパラメータ値が含まれる。クレンジング処理の種類には、例えば地紋や網掛けを除去する処理、汚れを除去する処理、背景の色を除去して白抜き文字や色付き文字を黒色の文字に変換する処理がある。
なお、地紋や網掛け等の除去には、例えば敵対的生成ネットワーク(GAN: Generative Adversarial Networks)と呼ばれる手法を活用する。GANを用いてノイズ等を除去する技術は、既に実用化されているので詳細な説明は省略する。
【0034】
ステップ9で肯定結果が得られた場合、プロセッサ11Aは、指示された前処理の内容を実行する(ステップ10)。本実施の形態の場合、ステップ8で特定された対象データに対してのみ、新しい前処理を実行する。もっとも、新しい内容の前処理の対象を原稿の画像データの全体としてもよい。
ステップ10の実行後、プロセッサ11Aは、ステップ3に戻る。本実施の形態の場合、プロセッサ11Aは、ステップ8で特定された部分領域についてのみ前処理後の画像データを対象データとしてOCR処理サーバ20に送信する。このとき、プロセッサ11Aは、再度の前処理が実行された部分領域を特定する情報をOCR処理サーバ20に通知する。
なお、ステップ3でOCR処理サーバ20に送信する対象データには、ステップ8で特定された対象データ以外の他の対象データを含めることも可能である。他の対象データが含まれていても、OCR処理サーバ20は、確信度が低い部分領域に対応する対象データを選択的に抽出することが可能である。
【0035】
ステップ9で否定結果が得られた場合、プロセッサ11Aは、実行すべき前処理の内容を特定して実行する(ステップ11)。
図7は、実施の形態1のステップ11で実行される処理の一例を説明するフローチャートである。図中に示す記号のSはステップを意味する。
ステップ11を開始したプロセッサ11Aは、特定された対象データについて実行済みの前処理の内容を特定する(ステップ111)。同一の原稿の同一の対象データについて既に複数回の前処理が実行されている場合、プロセッサ11Aは、複数回分の前処理の内容を特定する。
次に、プロセッサ11Aは、対象データについて前回までとは異なる内容の前処理を選択する(ステップ112)。本実施の形態の場合、OCR処理サーバ20からは、確信度が閾値よりも低いことを示す情報しかフィードバックされていないためである。
【0036】
続いて、プロセッサ11Aは、選択された内容の前処理を対象データについて実行する(ステップ113)。異なる内容の前処理を実行することで、OCR処理サーバ20における確信度が閾値を越える可能性が生じる。もっとも、確信度が低い原因が不明なままであるので、確信度がかえって低下する可能性もある。
なお、ステップ113では、画像データの全体にステップ112で選択された前処理を実行することも可能である。
次に、プロセッサ11Aは、対象データについて直前回に実行した前処理の内容と確信度に関する情報とを使用して、部分領域と前処理の内容との関係を学習する(ステップ114)。ここでの確信度に関する情報とは、確信度が低いことを示す情報である。
【0037】
本実施の形態の場合、部分領域に対して直前回に実行された前処理の内容が教師データとして機械学習される。学習の単位は、部分領域に限らず、オブジェクトの種類単位でも、原稿の種類単位でも、類似する画像単位でもよい。なお、オブジェクトの種類は同じでも、
図6における表Aと表Bのように、背景や文字の組み合わせが異なれば、確信度の向上に寄与する前処理の内容は異なる。このため、本実施の形態では、部分領域を単位として機械学習している。
【0038】
本実施の形態では、機械学習に強化学習を採用する。強化学習では、報酬が大きくなるように学習が進行する。このため、閾値より低い確信度しか得られなかった前処理の内容には、報酬が与えられないか低い報酬しか付与されない。一方、ステップ4で否定結果が得られた場合のように閾値より高い確信度が得られた場合の前処理の内容には高い報酬が与えられる。
機械学習の成果は、次回以降に実行される前処理の内容の決定に使用される。次回以降に実行される前処理には、フィードバックに伴う前処理の再実行も、新たに読み取った原稿の画像データに対する前処理も含まれる。
強化学習された学習済みモデルに部分領域に対応する画像データが与えられると、ステップ2で使用する前処理の内容が出力される。強化学習の精度が上がることで、やり直しの回数も低減される。また、機械学習された学習済みモデルは、ステップ112における前処理の内容の選択にも応用が可能である。ランダムに前処理の内容を選択する場合に比して、確信度が閾値より高くなる可能性を高めることが可能になる。
【0039】
ステップ114の後、プロセッサ11Aは、通知された全ての対象データについて処理が終了したか否かを判定する(ステップ115)。
ステップ115で否定結果が得られた場合、プロセッサ11Aは、ステップ111に戻り、別の部分領域に対応する対象データについて一連の処理を繰り返す。
一方、ステップ115で肯定結果が得られた場合、プロセッサ11Aは、ステップ3に戻る。
以上の処理は、ステップ10又はステップ11の実行後に実行されるステップ4で否定結果が得られるまで繰り返される。結果的に、画像処理装置10が実行する後処理には、確信度が閾値よりも高いテキストデータが与えられることになり、後処理の結果に対する精度や信頼性の向上が実現される。また、認識されたテキストデータの人手による確認や人手による修正の手間の削減が実現される。
【0040】
<実施の形態2>
前述の実施の形態では、OCR処理サーバ20から画像処理装置10に対し、要求する前処理の内容が具体的にフィードバックされる場合について説明した。ただし、前処理の内容を具体的に特定するには、OCR処理サーバ20に確信度が低い原因を推定する処理や、推定された原因を解消する処理の内容を特定する処理等に対応する機能が、OCR処理サーバ20側に用意されている必要がある。しかし、OCR処理サーバ20に、同機能が常に備わるとは限らない。
【0041】
図8は、実施の形態2で実行される処理の概要を説明する図である。
図8には、
図3との対応部分に対応する符号を付して示している。
図8に示す処理の場合、OCR処理から前処理にフィードバックされる情報が、実施の形態1と異なっている。
本実施の形態の場合、前処理の内容の変更を要求する情報がフィードバックされている。すなわち、前処理に要求する具体的な処理の内容はフィードバックされていない。
前処理の内容の変更の要求は、確信度が低い部分領域が存在することをトリガーとして出力が可能であり、前述した推定等の処理を必要としない。
【0042】
図9は、実施の形態2における画像処理装置10が実行する処理の一例を説明するフローチャートである。
図9には、
図4との対応部分に対応する符号を付して示す。
本実施の形態の場合、OCR処理サーバ20から画像処理装置10には、前処理の内容の変更を要求する情報しかフィードバックされない。
このため、プロセッサ11Aは、ステップ8の実行後、特定された対象データについて実行すべき前処理の内容を特定して実行する(ステップ21)。
図10は、実施の形態2のステップ21で実行される処理の一例を説明するフローチャートである。
図10には、
図7との対応部分に対応する符号を付して示す。図中に示す記号のSはステップを意味する。
【0043】
ステップ21を開始したプロセッサ11Aは、特定された対象データについて実行済みの前処理の内容を特定する(ステップ111)。
次に、プロセッサ11Aは、確信度を低下させている原因を推定する(ステップ211)。プロセッサ11Aは、例えばステップ111で取得された実行済みの前処理の内容の履歴を参考に原因を推定する。
なお、画像処理装置10には、処理の対象であるオリジナルの画像データが記憶されている。従って、プロセッサ11Aは、地紋の有無、背景の有無、フォントのサイズ、汚れの有無、折れ筋の有無、背景と文字の色の関係、原稿の種類等の情報を画像データから読み取り、原因の推定に利用する。
【0044】
この他、原因の推定には、画像データ全体の確信度を参照することも可能である。画像データ全体の確信度は、画像処理装置10において算出が可能である。
画像データ全体の確信度は、例えばステップ3で対象データとして送信された各部分領域の原稿上における面積の割合と各部分領域に対する確信度の高低に基づいて算出が可能である。例えば閾値より高い確信度が得られた部分領域の面積には重みとして「1」を乗算した値と、閾値より低い確信度が得られた部分領域の面積には重みとして「0」を乗算した値の和を算出する。その後、算出された値を、OCR処理の対象になった部分領域の面積の総和で除算して正規化し、正規化された値と閾値の比較により確信度を算出する。例えば正規化した値が閾値より高ければ画像データ全体の確信度が高いと判定し、正規化した値が閾値より低ければ画像データ全体の確信度が低いと判定する。
なお、前処理の内容の変更が求められていない部分領域は確信度が高く、前処理の内容の変更が求められている部分領域は確信度が低いとみなす。
【0045】
例えば画像データ全体の確信度が高い一方で、特定の部分領域の確信度だけが低い場合には、特定の部分領域に固有の原因が考えられる。他方、特定の部分領域だけでなく画像データの全体としての確信度も低い場合には、オブジェクトの種類の違いによらない共通の原因が推定される。例えば汚れや折り筋が原因である可能性が推定される。
また、類似する又は同種の部分領域について使用された前処理の内容とその確信度に関する情報の履歴が存在する場合には、高い確信度が得られたときの前処理の内容により原因を推定することも可能である。ここで、部分領域が類似する又は同種であるとは、部分領域に対応する画像データの内容が類似する又は同種であることを意味する。もっとも、この場合には、原因を推定する必要自体がなく、高い確信度が得られたときの前処理の内容をステップ212に与えることも可能である。
【0046】
ステップ211の推定には、例えば事前に用意された対応関係のテーブル、機械学習により更新される学習済みモデル、判定プログラムを使用する。
対応関係のテーブルには、画像データの全体から抽出される特徴や部分領域の特徴の組み合わせと、確信度が低い場合に想定される原因とが記憶されている。もっとも、組み合わせ毎に推奨される前処理の内容が記憶されていてもよい。
また、学習済みモデルを用いる場合、部分領域に対応する画像データを学習済みモデルに対して入力すると、原因が出力される。もっとも、部分領域に対応する画像データを学習済みモデルに対して入力すると、推奨される前処理の内容が出力されるようにしてもよい。
また、判定プログラムを用いる場合、個別の判定による分岐を1又は複数回繰り返すことで、確信度を低下させていると考えられる原因が出力される。この場合も、原因ではなく、推奨される前処理の内容が出力されてもよい。
【0047】
ステップ211で原因が推定されると、プロセッサ11Aは、推定された原因を解消する内容の前処理を、対象データについて実行する(ステップ212)。推定された原因と、その解消に効果がある前処理の内容との関係は例えば記憶装置12に記憶されている。なお、前述したように、原因の推定をスキップして、確信度を低下させる原因を解消する前処理の内容が特定される場合には、特定された前処理の内容が実行される。
次に、プロセッサ11Aは、対象データについて直前回に実行した前処理の内容と確信度に関する情報とを使用して、部分領域と前処理の内容との関係を学習する(ステップ213)。
本実施の形態の場合、確信度に関する情報は、OCR処理サーバ20から直接的には通知されない。このため、プロセッサ11Aが確信度に関する情報を部分領域毎に判断する。前述したように、前処理の内容の変更が求められていない部分領域の確信度は高いと判断される一方、前処理の内容の変更が求められている部分領域の確信度は低いと判断される。
【0048】
ステップ213の後、プロセッサ11Aは、通知された全ての対象データについて処理が終了したか否かを判定する(ステップ115)。
ステップ115で否定結果が得られた場合、プロセッサ11Aは、ステップ111に戻り、別の部分領域に対応する対象データについて一連の処理を繰り返す。
一方、ステップ115で肯定結果が得られた場合、プロセッサ11Aは、ステップ3に戻る。
以上の処理は、ステップ4で否定結果が得られるまで繰り返される。結果的に、画像処理装置10が実行する後処理には、確信度が閾値よりも高いテキストデータが与えられることになり、後処理の結果に対する精度や信頼性の向上が実現される。また、認識されたテキストデータの人手による確認や人手による修正の手間の削減が実現される。
【0049】
なお、
図10に示すフローチャートでは、確信度を低下させている原因を解消する内容の前処理を対象データについて実行しているが、原因を推定することなく、同一の画像データにおける同一の部分領域について実行されていない内容の前処理の1つを選択して実行してもよい。
この場合には、確信度を低下させている原因が解消するとは限らないが、前処理の内容の変更を繰り返すうちに確信度の低下の解消が期待される。なお、プロセス上の繰り返し回数は
図10に示す処理に比して増えても、推定等の処理が不要になる分、計算資源に対する負荷は少なく済む。
【0050】
<実施の形態3>
図11は、実施の形態3で実行される処理の概要を説明する図である。
図11には、
図8との対応部分に対応する符号を付して示している。
本実施の形態の場合、OCR処理から前処理にフィードバックされる情報の一部が、実施の形態1と異なっている。具体的には、OCR処理した結果の確信度そのものがフィードバックされている。確信度の送信は、確信度が低い場合と確信度が高い場合の両方で実行される。
図12は、実施の形態3における画像処理装置10が実行する処理の一例を説明するフローチャートである。
図12には、
図9との対応部分に対応する符号を付して示す。図中に示す記号のSはステップを意味する。
【0051】
本実施の形態の場合、OCR処理サーバ20から画像処理装置10には、OCR処理の結果の確信度が毎回フィードバックされる。
このため、プロセッサ11Aは、ステップ3の実行後に、確信度はいずれも閾値以上であるか否かを判定する(ステップ31)。ここでの閾値は、オブジェクトの違いによらず同じ値でもよいし、オブジェクト毎に異なる値でもよい。
ステップ31で肯定結果が得られた場合、プロセッサ11Aは、ステップ5に移行する。OCR処理サーバ20に送信した対象データの全てについて閾値よりも高い確信度が得られた場合には、前処理をやり直す必要が無いためである。
【0052】
ステップ31で否定結果が得られた場合、プロセッサ11Aは、実行すべき前処理の内容を特定して実行する(ステップ32)。
図13は、実施の形態3のステップ32で実行される処理の一例を説明するフローチャートである。
まず、プロセッサ11Aは、確信度が低い対象データについて実行済みの前処理の内容を特定する(ステップ321)。
次に、プロセッサ11Aは、確信度が低い対象データについて前回までとは異なる内容の前処理を選択する(ステップ322)。もっとも、実施の形態2の場合と同様に、確信度を低下させている原因を推定し、推定された原因を解消する内容の前処理を選択してもよい。この例については後述する。
【0053】
次に、プロセッサ11Aは、選択された内容の前処理を対象データについて実行する(ステップ323)。
続いて、プロセッサ11Aは、対象データについて直前回に実行した前処理の内容と確信度に関する情報とを使用して、部分領域と前処理の内容との関係を学習する(ステップ324)。本実施の形態の場合、確信度が低い場合だけでなく、確信度が高いと判定された対象データについても、部分領域と前処理の内容との関係が学習される。もっとも、いずれか一方だけを学習することも可能である。
処理が終了すると、プロセッサ11Aは、ステップ3に戻る。以上の処理は、ステップ31で肯定結果が得られるまで繰り返される。
結果的に、画像処理装置10が実行する後処理には、確信度が閾値よりも高いテキストデータが与えられることになり、後処理の結果に対する精度や信頼性の向上が実現される。また、認識されたテキストデータの人手による確認や人手による修正の手間の削減が実現される。
【0054】
図14は、実施の形態3のステップ32で実行される処理の他の例を説明するフローチャートである。
図14には、
図13との対応部分に対応する符号を付して示す。
図14に示す処理では、複数の確信度の組み合わせを使用する。
まず、プロセッサ11Aは、確信度の組み合わせを使用し、確信度を低下させている原因を推定する(ステップ325)。確信度の組み合わせは、オブジェクトの種類が共通する複数の部分領域について取得された複数の確信度の組み合わせでもよいし、部分領域を構成する行又は列単位の確信度の組み合わせでもよい。また、処理の対象である画像データを単位として統合された複数の確信度の組み合わせでもよい。
【0055】
図15は、対象データが表領域の場合に推定される原因の例を説明する図である。(A)は1つの表領域についてフィードバックされた確信度の組み合わせを示し、(B)は推定された原因を示す。なお、
図15の例では、行ごとに確信度が算出されてフィードバックされる場合の例である。表領域の全体を単位として確信度がフィードバックされる場合には、
図15に示すような詳細な原因の推定は困難になる。
図15に示す例は、
図5における表A又は表Bを想定している。このため、行数は3行である。
図15の場合、1つの表領域についての確信度の組み合わせは8個である。
図15では、これらを、組み合わせ1~8で表している。組み合わせの数は、表領域を構成する行数や1つの表領域について通知される確信度の数に依存する。
なお、
図15の組み合わせ1~8に対応する各行の背景色のように、表Aや表Bの背景色が偶数行と奇数行とで異なる場合には、行数が増えても奇数行と偶数行を単位として確信度を算出してもよい。
【0056】
組み合わせ1は、1行目~3行目に対応する各確信度が閾値よりも高い場合である。この場合は、直前回に実行された前処理の内容で問題がないため、確信度が低い原因の推定は不要である。
組み合わせ2は、1行目と2行目に対応する各確信度が閾値より高いが、3行目に対応する確信度が閾値よりも低い場合である。この場合、確信度を低下させる原因として、値のセルが色背景であることが推定される。
組み合わせ3は、1行目と3行目に対応する各確信度が閾値より高いが、2行目に対応する確信度が閾値よりも低い場合である。この場合も、確信度を低下させる原因として、値のセルが色背景であることが推定される。
【0057】
組み合わせ4は、1行目に対応する確信度が閾値より高いが、2行目と3行目に対応する各確信度が閾値よりも低い場合である。この場合、確信度を低下させる原因として、値のセルのみ網掛けであることが推定される。ここでの網掛けには地紋も含まれる。
組み合わせ5は、2行目と3行目に対応する各確信度が閾値より高いが、1行目に対応する確信度が閾値よりも低い場合である。この場合、確信度を低下させる原因として、項目名のセルが白抜き文字であることが推定される。
組み合わせ6は、2行目に対応する確信度が閾値より高いが、1行目と3行目に対応する各確信度が閾値よりも低い場合である。この場合、確信度を低下させる原因として、項目名のセルが白抜き文字であり、かつ、値のセルが色背景であることが推定される。
【0058】
組み合わせ7は、3行目に対応する確信度が閾値より高いが、1行目と2行目に対応する各確信度が閾値よりも低い場合である。この場合も、確信度を低下させる原因として、項目名のセルが白抜き文字であり、かつ、値のセルが色背景であることが推定される。
組み合わせ8は、1行目~3行目に対応する各確信度が閾値より低い場合である。この場合、確信度を低下させる原因として、全面が地紋又は全面が色背景であり、かつ、各文字が色文字等であることが推定される。
なお、以上の推定は、原稿本来の画像上の特徴に着目している。このため、汚れや折り筋等の影響による確信度の低下の推定には、別の情報も必要になる。例えば原稿単位での確信度やオリジナルの画像データの情報が必要である。
【0059】
図14の説明に戻る。
ステップ325で原因が推定されると、プロセッサ11Aは、推定された原因を解消する内容の前処理を、対象データについて実行する(ステップ326)。
次に、プロセッサ11Aは、対象データについて直前回に実行した前処理の内容と確信度に関する情報とを使用して、部分領域と前処理の内容との関係を学習する(ステップ324)。本実施の形態の場合、確信度が低い対象データと実行された前処理の内容との関係と、確信度が高い対象データと実行された前処理の内容との関係の両方が学習される。もっとも、いずれか一方だけを学習することも可能である。
処理が終了した以降の処理の内容は、
図12について説明した通りである。
【0060】
<実施の形態4>
図16は、実施の形態4で実行される処理の概要を説明する図である。
図16には、
図11との対応部分に対応する符号を付して示している。
本実施の形態の場合、確信度ではなく推定された原因が、OCR処理から前処理にフィードバックされる。この場合、実施の形態3で実行された推定がOCR処理サーバ20側で実行される。
図17は、実施の形態4における画像処理装置10が実行する処理の一例を説明するフローチャートである。
図17には、
図12との対応部分に対応する符号を付して示す。図中に示す記号のSはステップを意味する。
【0061】
本実施の形態の場合、プロセッサ11Aは、OCR処理サーバ20に対象データを送信すると(ステップ3)、原因がフィードバックされたか否かを判定する(ステップ41)。
原因がフィードバックされるのは、対象データ中に確信度が低い部分領域が存在する場合に限られる。このため、ステップ41で否定結果が得られた場合、プロセッサ11Aは、ステップ5に移行し、以下、
図12の場合と同様の処理を実行する。
これに対し、ステップ41で肯定結果が得られた場合、プロセッサ11Aは、実行すべき前処理の内容を特定して実行する(ステップ42)。
【0062】
図18は、実施の形態4のステップ42で実行される処理の一例を説明するフローチャートである。
まず、プロセッサ11Aは、通知された原因を解消する内容の前処理を、対象データについて実行する(ステップ421)。
図19は、通知される原因の一例を説明する図である。
図19に示す原因1~原因5は、
図15に示す原因に対応している。原因1は、値のセルが色背景であることを示す。原因2は、値のセルが色背景であることを示す。原因3は、項目名のセルが白抜き文字であることを示す。原因4は、項目名のセルが白抜き文字であり、かつ、値のセルが色背景であることを示す。原因5は、全面が地紋又は全面が色背景であり、かつ、各文字が色文字等であることを示す。なお、汚れや折れ筋等が原因として通知される可能性もある。
【0063】
図18の説明に戻る。
原因に応じた前処理が対象データについて実行されると、プロセッサ11Aは、対象データについて直前回に実行した前処理の内容と確信度に関する情報とを使用して、部分領域と前処理の内容との関係を学習する(ステップ422)。
因みに、原因が通知されたということは、対応する部分領域の確信度が閾値よりも低いことを意味し、反対に原因が通知されないということは、対応する部分領域の確信度が閾値よりも高いことを意味する。そこで、プロセッサ11Aは、原因が通知されたか否かにより確信度の高低を特定する。
処理が終了した以降の処理の内容は、
図12について説明した通りである。
【0064】
<実施の形態5>
図20は、実施の形態5で実行される処理の概要を説明する図である。
図20には、
図3との対応部分に対応する符号を付して示している。
本実施の形態の場合、後処理から前処理への後処理の完了のフィードバックが追加される点で実施の形態1と相違する。
図21は、実施の形態5における画像処理装置10が実行する処理の一例を説明するフローチャートである。
図21には、
図4との対応部分に対応する符号を付して示す。
本実施の形態の場合、ステップ4で否定結果が得られた場合、プロセッサ11Aは、ステップ5ではなく、ステップ6及び7を順番に実行する。すなわち、ステップ4で否定結果が得られた場合には、プロセッサ11Aは、OCR処理サーバ20から取得されるテキストデータに基づいて後処理を実行し、その処理結果を記憶装置12に格納する。
本実施の形態では、ステップ7の実行後に、後処理の完了の通知を受信する(ステップ51)。この通知の受信後に、プロセッサ11Aは、画像データを消去する(ステップ5)。後処理の完了の通知を確認した後に画像データを消去するので、画像データの消去後に画像データが要求されることがない。
なお、本実施の形態では、後処理の完了のフィードバックを実施の形態1に追加しているが、実施の形態2~4のいずれに追加してもよい。
【0065】
<実施の形態6>
図22は、実施の形態6で実行される処理の概要を説明する図である。
図22には、
図3との対応部分に対応する符号を付して示している。
本実施の形態の場合、格納の完了が前処理にフィードバックされる機能が追加される点で実施の形態1と相違する。
図23は、実施の形態6における画像処理装置10が実行する処理の一例を説明するフローチャートである。
図23には、
図4との対応部分に対応する符号を付して示す。
本実施の形態の場合、ステップ4で否定結果が得られた場合、プロセッサ11Aは、ステップ5ではなく、ステップ6及び7を順番に実行する。すなわち、ステップ4で否定結果が得られた場合には、プロセッサ11Aは、OCR処理サーバ20から取得されるテキストデータに基づいて後処理を実行し、その処理結果を記憶装置12に格納する。
本実施の形態では、ステップ7の実行後に、処理結果の格納の完了の通知を受信する(ステップ61)。この通知の受信後に、プロセッサ11Aは、画像データを消去する(ステップ5)。処理結果の格納後に画像データを消去するので、画像データの消去後に画像データが要求されることがない。
なお、本実施の形態では、処理結果の格納の完了のフィードバックを実施の形態1に追加しているが、実施の形態2~4のいずれに追加してもよい。
【0066】
<実施の形態7>
図24は、実施の形態7における画像処理装置10が実行する処理の一例を説明するフローチャートである。
図24には、
図4との対応部分に対応する符号を付して示す。
図4に示すフローチャートの場合には、ステップ10又はステップ11において、前処理の内容だけをやり直す場合について説明した。
しかし、
図24に示すように、再度の前処理の実行時にはオブジェクトの分離からやり直してもよい。
図24では、オブジェクトの分離のやり直しを含むステップ10及び11をステップ10A及び11Aと示している。
なお、前述した他の実施の形態においても、再度の前処理の実行の際にオブジェクトの分離をやり直してもよい。
【0067】
<実施の形態8>
図25は、実施の形態8で実行される処理の概要を説明する図である。
図25には、
図3との対応部分に対応する符号を付して示している。
前述の実施の形態の場合には、OCR処理が前処理に対してフィードバックを実行しているが、本実施の形態の場合、OCR処理が原稿の画像データを取得する処理にフィードバックを実行する。
例えば原稿に印字された又は記入された文字のサイズに対して画像データの取得時に使用した解像度が小さい場合、OCR処理の結果の確信度は低下する可能性がある。解像度の不一致が確信度の低下の原因である場合、前処理の内容を変更しても確信度は改善しない。
そこで、本実施の形態では、OCR処理の対象である画像データに含まれるフォントのサイズが確信度の低い原因と考えられる場合、画像データの解像度の変更が原稿の画像データを取得する処理にフィードバックされる。
図25の例では、200dpiから600dpiへの変更が指示されている。なお、フォントサイズの大きさを検知する技術は既知である。
本実施の形態で説明したフィードバックは、前述した実施の形態のいずれとも組み合わせが可能である。
【0068】
<他の実施の形態>
以上、本発明の実施の形態について説明したが、本発明の技術的範囲は前述した実施の形態に記載の範囲に限定されない。前述した実施の形態に、種々の変更又は改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
【0069】
(1)例えば前述の実施の形態においては、前処理後の画像データを処理する後段側の処理の一例としてOCR処理を想定しているが、後段側の処理はOCR処理に限らない。例えば前述の実施の形態7で説明した後処理や実施の形態8で説明した格納の処理も後段側の処理に含まれる。
また、前処理とその後段側の処理の組み合わせは、クレンジング処理とOCR処理の組み合わせに限らない。例えば前処理は顔認識のための特徴量の抽出であり、後段側の処理は抽出された特徴量を使用した顔認識であってもよい。この場合、確信度は、顔認識された結果の精度を表す情報等となる。このように、前述の実施の形態では、OCR処理の実行を前提として前処理の内容を説明しているが、前処理とその後段側の処理の組み合わせは任意で良い。
【0070】
(2)前述の実施の形態の場合には、
図5に示す原稿を前提として表を構成する行単位で確信度を算出しているが、列単位で確信度を算出する場合にも応用が可能である。
(3)前述の実施の形態においては、OCR処理サーバ20に与える画像データに前処理を加える装置の一例として、原稿を光学的に読み取って画像データを生成する機能その他を含む画像処理装置10を例示したが、画像処理装置10として、原稿に対応する画像データの取り込みに特化したイメージスキャナを用いてもよい。イメージスキャナには、ADF(=Auto Document Feeder)が設けられていてもよい。
また、OCR処理サーバ20に与える画像データに前処理を加える装置には、原稿の撮像に用いるスマートフォンやデジタルカメラの他、外部から原稿を撮像した画像データを取得するコンピュータを用いてもよい。ここでのコンピュータは、前処理とOCR処理後のデータの後処理等に用いられ、原稿の画像を撮像する機能や原稿の情報を光学的に読み取る機能は有しなくてもよい。
【0071】
(4)前述の実施の形態においては、画像処理装置10とOCR処理サーバ20が独立した装置として構成される場合について説明したが、OCR処理の機能が画像処理装置10に内蔵されていてもよい。この場合には、画像処理装置10の内部で、前処理、OCR処理、後処理の全てが実行される。
【0072】
(5)前述の実施の形態においては、画像データに対応する画像の領域をオブジェクト毎に分離する処理を画像処理装置10において実行する場合について説明したが、OCR処理サーバ20で実行してもよい。
(6)前述の実施の形態においては、OCR処理により得られたテキストデータを処理する後処理を、前処理を実行した画像処理装置10が引き継ぐ場合を説明したが、OCR処理により得られたテキストデータを、前処理を実行した画像処理装置10とは異なる処理装置に出力してもよい。
【0073】
(7)前述した各実施の形態におけるプロセッサは、広義的な意味でのプロセッサを指し、汎用的なプロセッサ(例えばCPU(=Central Processing Unit)等)の他、専用的なプロセッサ(例えばGPU、ASIC(=Application Specific Integrated Circuit)、FPGA、プログラム論理デバイス等)を含む。
また、前述した各実施の形態におけるプロセッサの動作は、1つのプロセッサが単独で実行してもよいが、物理的に離れた位置に存在する複数のプロセッサが協働して実行してもよい。また、プロセッサにおける各動作の実行の順序は、前述した各実施の形態に記載した順序のみに限定されるものでなく、個別に変更してもよい。
【符号の説明】
【0074】
1…情報処理システム、10…画像処理装置、11…制御ユニット、11A…プロセッサ、12…記憶装置、13…画像読取ユニット、14…画像処理ユニット、15…画像形成ユニット、16…操作受付ユニット、17…表示ユニット、18…通信装置、20…OCR処理サーバ、30…クラウドネットワーク