(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-08
(45)【発行日】2023-05-16
(54)【発明の名称】プログラム及び文字認識方法
(51)【国際特許分類】
G06V 30/24 20220101AFI20230509BHJP
G06V 30/242 20220101ALI20230509BHJP
【FI】
G06V30/24 620B
G06V30/249
(21)【出願番号】P 2019057218
(22)【出願日】2019-03-25
【審査請求日】2021-11-01
(73)【特許権者】
【識別番号】000003562
【氏名又は名称】東芝テック株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100179062
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100162570
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】高良 周作
【審査官】佐田 宏史
(56)【参考文献】
【文献】特開2013-164728(JP,A)
【文献】特開2016-224602(JP,A)
【文献】特開2004-046315(JP,A)
【文献】特開2009-181465(JP,A)
【文献】特開2018-116372(JP,A)
【文献】特開2007-086954(JP,A)
【文献】特開2010-217996(JP,A)
【文献】永崎 健、外2名,“印刷活字帳票における低品質文字列読取方法”,電子情報通信学会2003年総合大会講演論文集,日本,社団法人電子情報通信学会,2003年03月03日,p.197
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/24-30/242
(57)【特許請求の範囲】
【請求項1】
通信装置を備える第1の装置が備えるプロセッサーを、
画像データに対する第2の装置による文字認識の結果を示す第1のデータを取得し、 前記第1のデータに基づき、前記文字認識の認識率を判定し、
前記認識率が閾値未満かつ別の閾値以上である場合、前記第1のデータに基づき、前記画像データのうち誤認識である範囲を判定し、
前記第2の装置から送信された前記範囲を含む部分画像データを取得し、
前記部分画像データに対して文字認識を実行し、
前記認識率が前記別の閾値未満である場合、前記第2の装置から送信された前記画像データを取得し、
前記画像データに対して文字認識を実行する、処理部
として機能させるためのプログラム。
【請求項2】
前記処理部は、
前記認識率がさらに別の閾値未満かつ前記閾値以上である場合、前記第1のデータに基づき、前記文字認識の結果に誤認識が含まれると判定した場合、前記画像データに含まれる文字の文字種を判別し、
前記文字認識の精度を向上させるための、前記文字種に応じた第2のデータを前記第2の装置に送信するように前記通信装置を制御して、前記第2の装置に、前記画像データに対して前記第2のデータを用いた文字認識を実行させるように指示する、
請求項1に記載のプログラム。
【請求項3】
第2の装置は、画像データに対する文字認識を実行し、前記文字認識の結果を示す第1のデータを生成し、
第1の装置は、
前記第1のデータに基づき、前記文字認識の認識率を判定し、
前記認識率が閾値未満かつ別の閾値以上である場合、前記第1のデータに基づき、前記画像データのうち誤認識である範囲を判定し、
前記第2の装置から送信された前記範囲を含む部分画像データを取得し、
前記部分画像データに対して文字認識を実行し、
前記認識率が前記別の閾値未満である場合、前記第2の装置から送信された前記画像データを取得し、
前記画像データに対して文字認識を実行する、文字認識方法。
【請求項4】
第1の装置は、
前記認識率がさらに別の閾値未満かつ前記閾値以上である場合、前記第1のデータに基づき、前記文字認識の結果に誤認識が含まれると判定した場合、前記画像データに含まれる文字の文字種を判別し、
前記文字認識の精度を向上させるための、前記文字種に応じた第2のデータを前記第2の装置に送信するように通信装置を制御して、前記第2の装置に、前記画像データに対して前記第2のデータを用いた文字認識を実行させるように指示する、
請求項
3に記載の文字認識方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、プログラム及び文字認識方法に関する。
【背景技術】
【0002】
光学文字認識(OCR(optical character recognition))(以下「光学文字認識」を「文字認識」という。)の精度向上が望まれている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施形態が解決しようとする課題は、文字認識の精度を向上することができるプログラム及び文字認識方法を提供することである。
【課題を解決するための手段】
【0005】
実施形態のプログラムは、通信装置を備える第1の装置が備えるプロセッサーを処理部として機能させる。処理部は、画像データに対する第2の装置による文字認識の結果を示す第1のデータを取得する。処理部は、前記第1のデータに基づき、前記文字認識の結果に誤認識が含まれると判定した場合、前記画像データに含まれる文字の文字種を判別する。処理部は、前記文字認識の精度を向上させるための、前記文字種に応じた第2のデータを前記第2の装置に送信するように前記通信装置を制御して、前記第2の装置に、前記画像データに対して前記第2のデータを用いた文字認識を実行させるように指示する。
【図面の簡単な説明】
【0006】
【
図1】実施形態に係る文字認識システム及び当該文字認識システムに含まれる構成要素についての要部回路構成の一例を示すブロック図。
【
図2】
図1中の端末装置のプロセッサーによる処理の一例を示すフローチャート。
【
図3】
図1中の端末装置のプロセッサーによる処理の一例を示すフローチャート。
【
図4】
図1中のサーバー装置のプロセッサーによる処理の一例を示すフローチャート。
【
図5】
図1中のサーバー装置のプロセッサーによる処理の一例を示すフローチャート。
【発明を実施するための形態】
【0007】
以下、実施形態に係る文字認識システムについて図面を用いて説明する。なお、以下の実施形態の説明に用いる各図面は、説明のため、構成を省略して示している場合がある。また、各図面及び以下の説明において、同一の符号は同一の要素を示す
図1は、実施形態に係る文字認識システム1及び文字認識システム1に含まれる構成要素についての要部回路構成の一例を示すブロック図である。文字認識システム1は、一例として、サーバー装置10及び端末装置20を含む。なお、
図1には、サーバー装置10及び端末装置20をそれぞれ1つずつ示している。しかしながら、サーバー装置10及び端末装置20のそれぞれの数は限定しない。以下の説明では、サーバー装置10と端末装置20がそれぞれ1つずつある場合を例に説明する。
【0008】
サーバー装置10及び端末装置20は、ネットワークNWに接続する。ネットワークNWは、典型的にはイントラネットなどのプライベートネットワークを含む通信網である。ネットワークNWは、典型的にはLAN(local area network)を含む通信網である。ネットワークNWは、インターネットを含む通信網であっても良い。ネットワークNWは、WAN(wide area network)を含む通信網であっても良い。また、ネットワークNWは、無線回線でも良いし有線回線でも良く、無線回線と有線回線とが混在していても良い。また、ネットワークNWは、専用線又は公衆携帯電話網などを含む通信網であっても良い。
【0009】
サーバー装置10は、端末装置20よりも高精度な文字認識が可能な装置である。サーバー装置10は、一例として、プロセッサー11、ROM(read-only memory)12、RAM(random-access memory)13、補助記憶デバイス14及び通信インターフェース15を含む。そして、バス16などが、これら各部を接続する。サーバー装置10は、第1の装置の一例である。
【0010】
プロセッサー11は、サーバー装置10の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー11は、ROM12又は補助記憶デバイス14などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、サーバー装置10の各種の機能を実現するべく各部を制御する。なお、当該プログラムの一部又は全部は、プロセッサー11の回路内に組み込まれていても良い。プロセッサー11は、例えば、CPU(central processing unit)、MPU(micro processing unit)、SoC(system on a chip)、DSP(digital signal processor)、GPU(graphics processing unit)、ASIC(application specific integrated circuit)、PLD(programmable logic device)又はFPGA(field-programmable gate array)などである。あるいは、プロセッサー11は、これらのうちの複数を組み合わせたものである。プロセッサー11は、上記のプログラムを実行することで処理部の一例として機能する。
【0011】
ROM12は、プロセッサー11を中枢とするコンピューターの主記憶装置に相当する。ROM12は、専らデータの読み出しに用いられる不揮発性メモリである。ROM12は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM12は、プロセッサー11が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
【0012】
RAM13は、プロセッサー11を中枢とするコンピューターの主記憶装置に相当する。RAM13は、データの読み書きに用いられるメモリである。RAM13は、プロセッサー11が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。RAM13は、例えば揮発性メモリである。
【0013】
補助記憶デバイス14は、プロセッサー11を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス14は、例えばEEPROM(electric erasable programmable read-only memory)、HDD(hard disk drive)、SSD(solid state drive)又はeMMC(embedded MultiMediaCard)などである。補助記憶デバイス14は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶デバイス14は、プロセッサー11が各種の処理を行う上で使用するデータ、プロセッサー11での処理によって生成されたデータ又は各種の設定値などを保存する。
【0014】
ROM12又は補助記憶デバイス14に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、サーバー装置10は、当該プログラムがROM12又は補助記憶デバイス14に記憶された状態でサーバー装置10の管理者などへと譲渡される。しかしながら、サーバー装置10は、当該プログラムがROM12又は補助記憶デバイス14に記憶されない状態で当該管理者などに譲渡されても良い。また、サーバー装置10は、当該プログラムとは別のプログラムがROM12又は補助記憶デバイス14に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にROM12又は補助記憶デバイス14へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークNWなどを介したダウンロードにより実現できる。
【0015】
通信インターフェース15は、サーバー装置10がネットワークNWなどを介して通信するためのインターフェースである。通信インターフェース15は、通信装置の一例である。
【0016】
バス16は、コントロールバス、アドレスバス及びデータバスなどを含み、サーバー装置10の各部で授受される信号を伝送する。
【0017】
端末装置20は、例えば、PC(personal computer)、タブレットPC、スマートホン、サーバー装置、又はMFP(multifunction peripheral)若しくはコピー機などの画像形成装置である。端末装置20は、一例として、プロセッサー21、ROM22、RAM23、補助記憶デバイス24、通信インターフェース25、入力デバイス26、表示デバイス27及び読取デバイス28を含む。そして、バス29などが、これら各部を接続する。端末装置20は、第2の装置の一例である。
【0018】
プロセッサー21は、端末装置20の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー21は、ROM22又は補助記憶デバイス24などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、端末装置20の各種の機能を実現するべく各部を制御する。なお、当該プログラムの一部又は全部は、プロセッサー21の回路内に組み込まれていても良い。プロセッサー21は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー21は、これらのうちの複数を組み合わせたものである。
【0019】
ROM22は、プロセッサー21を中枢とするコンピューターの主記憶装置に相当する。ROM22は、専らデータの読み出しに用いられる不揮発性メモリである。ROM22は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM22は、プロセッサー21が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
【0020】
RAM23は、プロセッサー21を中枢とするコンピューターの主記憶装置に相当する。RAM23は、データの読み書きに用いられるメモリである。RAM23は、プロセッサー21が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。RAM23は、例えば揮発性メモリである。
【0021】
補助記憶デバイス24は、プロセッサー21を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス24は、例えばEEPROM、HDD、SSD又はeMMCなどである。補助記憶デバイス24は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。補助記憶デバイス24は、アプリケーションソフトウェアとして例えば文字認識ソフトウェアを記憶する。文字認識ソフトウェアは、文字認識機能を有する。また、文字認識ソフトウェアは、複数の文字認識エンジンを備える。複数の文字認識エンジンは、特定の文字種に対する文字認識に特化した性能を有する文字認識エンジンを含む。
また、補助記憶デバイス24は、プロセッサー21が各種の処理を行う上で使用するデータ、プロセッサー21での処理によって生成されたデータ又は各種の設定値などを保存する。
【0022】
また、端末装置20は、補助記憶デバイス24として、メモリカード又はUSB(universal serial bus)メモリなどの記憶媒体を挿入可能なインターフェースを備えていてもよい。当該インターフェースは、当該記憶媒体に対して情報の読み書きを行う。
【0023】
ROM22又は補助記憶デバイス24に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、端末装置20は、当該プログラムがROM22又は補助記憶デバイス24に記憶された状態で端末装置20の管理者などへと譲渡される。しかしながら、端末装置20は、当該プログラムがROM22又は補助記憶デバイス24に記憶されない状態で当該管理者などに譲渡されても良い。また、端末装置20は、当該プログラムとは別のプログラムがROM22又は補助記憶デバイス24に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にROM22又は補助記憶デバイス24へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークNWなどを介したダウンロードにより実現できる。
【0024】
通信インターフェース25は、端末装置20がネットワークNWなどを介して通信するためのインターフェースである。
【0025】
入力デバイス26は、端末装置20の操作者による操作を受け付ける。入力デバイス26は、例えば、キーボード、キーパッド、タッチパッド又はマウスなどである。
【0026】
表示デバイス27は、端末装置20の操作者に各種情報を通知するための画面を表示する。表示デバイス27は、例えば、液晶ディスプレイ又は有機EL(electro-luminescence)ディスプレイなどのディスプレイである。また、入力デバイス26及び表示デバイス27としては、タッチパネルを用いることもできる。すなわち、タッチパネルが備える表示パネルを表示デバイス27として、タッチパネルが備えるタッチパッドを入力デバイス26として用いることができる。
【0027】
読取デバイス28は、画像を撮像する。読取デバイス28は、例えば、スキャナー又はカメラなどである。
【0028】
バス29は、コントロールバス、アドレスバス及びデータバスなどを含み、端末装置20の各部で授受される信号を伝送する。
【0029】
以下、実施形態に係る文字認識システム1の動作を
図2~
図5などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
図2及び
図3は、端末装置20のプロセッサー21による処理の一例を示すフローチャートである。プロセッサー21は、例えば、ROM22又は補助記憶デバイス24などに記憶されたプログラムに基づいてこの処理を実行する。プロセッサー21は、例えば、文字認識ソフトウェアの起動にともなって
図2及び
図3のフローチャートに示す処理を開始する。あるいは、プロセッサー21は、端末装置20の起動にともなって
図2及び
図3のフローチャートに示す処理を開始する。
図4及び
図5は、サーバー装置10のプロセッサー11による処理の一例を示すフローチャートである。プロセッサー11は、例えば、ROM12又は補助記憶デバイス14などに記憶されたプログラムに基づいてこの処理を実行する。プロセッサー11は、例えば、サーバー装置の起動にともなって
図4及び
図5のフローチャートに示す処理を開始する。なお、プロセッサー11又はプロセッサー21がACTn(nは、自然数。)の処理の後にACT(n+1)へと進む場合、このことを説明する記載を省略する場合がある。
【0030】
図2のAct11において端末装置20のプロセッサー21は、文字認識の対象となる画像が入力されるのを待ち受ける。当該画像は、例えば、読取デバイス28によって読み取られた画像である。あるいは、当該画像は、補助記憶デバイス24に記憶された画像である。なお、当該画像は、複数枚の画像からなる画像であっても良い。プロセッサー21は、文字認識の対象となる画像が入力されたならば、Act11においてYesと判定してAct12へと進む。
【0031】
Act12においてプロセッサー21は、文字認識の開始を指示する入力が行われるのを待ち受ける。当該入力は、例えば、入力デバイス26に対する文字認識の開始を端末装置20に指示する操作入力である。あるいは、当該入力は、通信インターフェース25によって、文字認識の開始を端末装置20に指示するコマンドが受信されることなどであっても良い。プロセッサー21は、文字認識の開始を指示する入力が行われたならば、Act12においてYesと判定してAct13へと進む。
【0032】
Act13においてプロセッサー21は、Act11で入力された画像(以下「対象画像」という。)に対して、文字認識ソフトウェアを用いて文字認識を実行する。
【0033】
Act14においてプロセッサー21は、第1の結果情報を生成する。第1の結果情報は、Act13において行われた文字認識の結果を含むデータである。第1の結果情報は、対象画像から文字認識によって読み取られた文字及び当該各文字が対象画像のどの位置にあるかを示すデータを含む。プロセッサー21は、第1の結果情報を生成した後、当該第1の結果情報をサーバー装置10に送信するように通信インターフェース25に対して指示する。この指示を受けて通信インターフェース25は、当該第1の結果情報をサーバー装置10に送信する。送信された当該第1の結果情報は、サーバー装置10の通信インターフェース15によって受信される。第1の結果情報は、文字認識の結果を示す第1のデータの一例である。
【0034】
一方、
図4のAct31においてサーバー装置10のプロセッサー11は、通信インターフェース15によって結果情報が受信されるのを待ち受けている。プロセッサー11は、第1の結果情報又は第2の結果情報などの結果情報が受信されたならば、Act31においてYesと判定してAct32へと進む。なお、第2の結果情報については後述する。
【0035】
Act32においてプロセッサー11は、Act31で受信された結果情報から、端末装置20で対象画像に対して行われた文字認識の認識率を求める。例えば、プロセッサー11は、特定の範囲にどのような文字種又は内容が記載されているはずであるかを判定して、文字認識の結果が当該文字種又は内容と合致している度合いにより認識率を求める。
【0036】
文字種は、例えば、数字、ラテン文字などのアルファベット、ひらがな、カタカナ若しくは漢字又はこれらのうちの複数の組み合わせなどである。あるいは、文字種は、英語又は日本語などのように言語であっても良い。また、文字種は、大文字又は小文字及び半角又は全角などであっても良い。また、文字種は、フォントの種類であっても良い。また、文字種は、文字の色、文字の大きさ又は文字の向きなどであっても良い。あるいは、文字種は上記したものの組み合わせである。
【0037】
プロセッサー11は、例えば、文字種又は内容を近傍の文字列に基づいて特定する。例えば、プロセッサー11は、「口座番号」という文字列の右又は下などにある文字列は数字であると特定する。あるいは、プロセッサー11は、帳票データを用いて文字種又は内容を特定する。帳票データとは、画像のどこにどのような内容又は文字種の文字列があるかを示すデータである。例えば、帳票データは、範囲AR11にタイトル、範囲AR12に氏名、範囲AR13にID(identifier)、範囲AR14に住所、範囲AR15に自由記入欄、…などのように内容及びその位置を特定する。あるいは、帳票データは、範囲AR21に英語、範囲AR22に日本語、範囲AR23にラテン文字、範囲AR24にカタカナ…のように文字種及びその位置を特定する。
【0038】
あるいは、プロセッサー11は、AI(artificial intelligence)などを用いて文字種又は内容と判定及びその位置を特定しても良い。例えば、当該AIは、パターンマッチングなどにより文字種及びその位置を特定する。当該AIは、例えば、深層学習などの機械学習によりパターンマッチングを学習する。
【0039】
Act33においてプロセッサー11は、Act32で求めた認識率が閾値T1以上であるか否かを判定する。プロセッサー11は、Act32で求めた認識率が閾値T1以上であるならば、Act33においてYesと判定してAct34へと進む。
【0040】
Act34においてプロセッサー11は、第1の結果情報又は第1の結果情報に含まれる文字認識の結果を補助記憶デバイス14などに記憶する。
【0041】
Act35においてプロセッサー11は、通知情報を生成する。通知情報は、認識率が高いため、文字認識を再度行う必要がないことを示す情報を含むデータである。プロセッサー11は、通知情報を生成した後、当該通知情報を、結果情報の送信元である端末装置20に送信するように通信インターフェース15に対して指示する。この指示を受けて通信インターフェース15は、当該通知情報を端末装置20に送信する。送信された当該通知情報は、端末装置20の通信インターフェース25によって受信される。プロセッサー11は、Act35の処理の後、Act31へと戻る。
【0042】
一方、
図2のAct15において端末装置20のプロセッサー21は、通信インターフェース25によって、サーバー装置10から送信されるデータが受信されるのを待ち受けている。プロセッサー21は、通知情報などのデータが受信されたならば、Act15においてYesと判定してAct16へと進む。
【0043】
Act16においてプロセッサー21は、対象画像に対する文字認識を終了して結果を確定するか否かを判定する。プロセッサー21は、例えば、通知情報が受信されたことに応じて、対象画像に対する文字認識を終了して結果を確定すると判定する。プロセッサー21は、通知情報が受信されたならば、Act16においてYesと判定してAct17へと進む。
【0044】
Act17においてプロセッサー21は、文字認識の結果を補助記憶デバイス24などに記憶する。なお、プロセッサー21は、Act16からAct17に進んだ場合、Act17で記憶する文字認識の結果は、Act13の文字認識の結果である。
【0045】
Act18においてプロセッサー21は、Act13で記憶した文字認識の結果を端末装置20の操作者などに報知する。プロセッサー21は、当該報知として、当該結果を示す文字列又は画像などを表示デバイス27などに表示させる。あるいは、プロセッサー21は、当該報知として、当該結果を示す音声をスピーカーなどから出力させる。プロセッサー21は、Act18の処理の後、当該表示の終了とともにAct11へと戻る。
【0046】
一方、サーバー装置10のプロセッサー11は、
図4のAct32で求めた認識率が閾値T1未満であるならば、Act33においてNoと判定してAct36へと進む。
Act36においてプロセッサー11は、文字種を特定済みであるか否かを判定する。プロセッサー11は、例えば、Act31で受信された結果情報が第1の結果情報であるならば文字種を特定済みでないと判定する。そして、プロセッサー11は、例えば、Act31で受信された結果情報が第2の結果情報であるならば文字種を特定済みであると判定する。プロセッサー11は、文字種を特定済みでないと判定するならば、Act36においてNoと判定してAct37へと進む。なお、文字種の特定については後述する。
【0047】
Act37においてプロセッサー11は、Act32で求めた認識率が閾値T2以上であるか否かを判定する。プロセッサー11は、Act32で求めた認識率が閾値T2以上でないならば、Act37においてNoと判定してAct38へと進む。なお、閾値T2は、閾値T1よりも小さい値である。
【0048】
Act38においてプロセッサー11は、第1の結果情報を用いて、対象画像に含まれる文字の文字種を特定する。プロセッサー11は、文字種の特定とともに、各文字種が対象画像のどの位置にあるかを特定する。なお、当該位置は、点を示すものであっても範囲を示すものであっても良い。例えば、プロセッサー11は、範囲AR31には数字、範囲AR32にはラテン文字、範囲AR33にはひらがな、カタカナ及び漢字の組み合わせ、範囲AR34には大文字のラテン文字、…のように文字種及びその位置を特定する。
なお、プロセッサー11は、例えば、文字種を帳票データ又はAIなどを用いて特定する。
【0049】
Act39においてプロセッサー11は、Act38の処理によって文字種の特定に成功したか否かを判定する。プロセッサー11は、文字種の特定に成功したならば、Act39においてYesと判定してAct40へと進む。なお、ここで、文字種の特定に成功したとは、文字種の特定が実際に合っている必要なく、文字種の特定ができたとプロセッサー11が判定できれば十分である。
【0050】
Act40においてプロセッサー11は、文字種情報を生成する。文字種情報は、Act38の処理によって特定された文字種(以下「特定文字種」という。)に適した方法で文字認識を実行するように端末装置20に指示するデータである。また、文字種情報は、1以上の指示情報を含む。そして、文字種情報は、指示情報を用いて文字認識を実行するように端末装置20に指示するデータである。
【0051】
指示情報は、例えば、対象画像上の位置を示す位置情報と、当該位置の特定文字種に適したパラメーターとを含む情報である。当該パラメーターは、特定文字種の認識率を上げることができるように文字認識ソフトウェアの設定を変更するための設定値などである。あるいは、当該パラメーターは、該位置の特定文字種の認識率が高い文字認識エンジンを使用するように指定するための設定値などである。指示情報は、文字認識の精度を向上させるための、文字種に応じた第2のデータの一例である。指示情報に含まれるパラメーターは、第2のデータの一例である。
【0052】
プロセッサー11は、文字種情報を生成した後、当該文字種情報を第1の結果情報の送信元である端末装置20に送信するように通信インターフェース15に対して指示する。この指示を受けて通信インターフェース15は、当該文字種情報を端末装置20に送信する。送信された当該文字種情報は、端末装置20の通信インターフェース25によって受信される。
【0053】
一方、端末装置20のプロセッサー21は、通信インターフェース25によって文字種情報が受信されたならば、
図2のAct15においてYesと判定してAct16へと進む。そして、プロセッサー21は、Act16においてNoと判定してAct19へと進む。
Act19においてプロセッサー21は、文字認識を再度実行するか否かを判定する。例えば、プロセッサー21は、文字種情報が受信されたならば、文字認識を再度実行すると判定する。プロセッサー21は、文字種情報が受信されたならば、Act19においてYesと判定してAct20へと進む。
【0054】
Act20においてプロセッサー21は、文字種情報に含まれる各指示情報に従って、対象画像に対して文字認識を実行する。すなわち、プロセッサー21は、文字認識ソフトウェアの設定を指示情報に含まれるパラメーターに応じて変更する。そして、設定変更後の文字認識ソフトウェアによって対象画像の、当該指示情報に含まれる位置情報で特定される位置に対して文字認識を実行する。プロセッサー21は、文字種情報に含まれる指示情報それぞれについて、同様にして文字認識を実行する。
【0055】
Act21においてプロセッサー21は、第2の結果情報を生成する。第2の結果情報は、Act20において行われた文字認識の結果を含むデータである。第2の結果情報は、対象画像から文字認識によって読み取られた文字及び当該各文字が対象画像のどの位置にあるかを示すデータを含む。第2の結果情報は、文字種を特定済みであることを示すデータを含む。プロセッサー21は、結果情報を生成した後、当該結果情報をサーバー装置10に送信するように通信インターフェース25に対して指示する。この指示を受けて通信インターフェース25は、当該結果情報をサーバー装置10に送信する。送信された当該結果情報は、サーバー装置10の通信インターフェース15によって受信される。プロセッサー21は、Act21の処理の後、Act15へと戻る。
【0056】
一方、サーバー装置10のプロセッサー11は、文字種の特定に成功していないならば、
図4のAct39においてNoと判定してAct41へと進む。また、プロセッサー11は、第2の結果情報が受信されたことにより文字種を特定済みであると判定するならば、Act36においてYesと判定してAct41へと進む。また、プロセッサー11は、Act32で求めた認識率が閾値T2以上であるならば、Act37においてYesと判定してAct41へと進む。
【0057】
Act41においてプロセッサー11は、Act32で求めた認識率が閾値T3以上であるか否かを判定する。プロセッサー11は、Act32で求めた認識率が閾値T3以上であるならば、Act41においてYesと判定してAct42へと進む。なお、閾値T3は、閾値T2よりも低い値である。
【0058】
Act42においてプロセッサー11は、Act31で受信された結果情報から、文字認識が不正確である範囲(以下「誤認識範囲」という。)を決定する。なお、プロセッサー11は、文字種又は内容が想定されるものとは異なっている範囲を誤認識範囲であると判定する。
【0059】
Act43においてプロセッサー11は、範囲要求を生成する。範囲要求は、誤認識範囲を含む画像データを送信するように端末装置20に要求するデータである。範囲要求は、誤認識範囲を示すデータを含む。プロセッサー11は、範囲要求を生成した後、当該範囲要求を端末装置20に送信するように通信インターフェース15に対して指示する。この指示を受けて通信インターフェース15は、当該範囲要求を端末装置20に送信する。送信された当該範囲要求は、端末装置20の通信インターフェース25によって受信される。
【0060】
一方、端末装置20のプロセッサー21は、通信インターフェース25によって範囲要求が受信されたならば、
図2のAct15においてYesと判定してAct16へと進む。そして、プロセッサー21は、Act16においてNoと判定してAct19へと進む。さらに、プロセッサー21は、Act19においてNoと判定して
図3のAct22へと進む。
Act22においてプロセッサー21は、受信されたデータが範囲要求であるか否かを判定する。プロセッサー21は、受信されたデータが範囲要求であるならば、Act22においてYesと判定してAct23へと進む。
【0061】
Act23においてプロセッサー21は、対象画像から誤認識範囲を含む範囲を切り抜く。切り抜き範囲は、例えば、誤認識範囲内の文字を過不足なく含む範囲である。また、切り抜き範囲は、狭い方が良い。切り抜き範囲が狭いほど切り抜かれた画像のデータ量が小さくなるためである。ただし、切り抜き範囲は、これより広い範囲であっても良い。プロセッサー21は、切り抜いた画像(以下「切り抜き画像」という。)をRAM13又は補助記憶デバイス14などに記憶する。なお、プロセッサー21は、対象画像が複数の画像からなる画像である場合、複数の画像の中から誤認識範囲を含む画像を選択して、当該画像を切り抜き画像と同様に扱っても良い。切り抜き画像は、部分画像の一例である。
【0062】
Act24においてプロセッサー21は、切り抜き画像をサーバー装置10に送信するように通信インターフェース25に対して指示する。この指示を受けて通信インターフェース25は、当該切り抜き画像をサーバー装置10に送信する。送信された当該切り抜き画像は、サーバー装置10の通信インターフェース15によって受信される。
【0063】
一方、
図4のAct44においてサーバー装置10のプロセッサー11は、通信インターフェース15によって切り抜き画像が受信されるのを待ち受けている。プロセッサー11は、切り抜き画像が受信されたならば、Act44においてYesと判定してAct45へと進む。
【0064】
Act45においてプロセッサー11は、Act44において受信された切り抜き画像に対して文字認識を実行する。
【0065】
Act46においてプロセッサー11は、Act45の文字認識の結果を補助記憶デバイス14などに記憶する。
【0066】
Act47においてプロセッサー11は、第1の結果通知を生成する。第1の結果通知は、Act45の文字認識の結果を示すデータを含むデータである。プロセッサー11は、第1の結果通知を生成した後、当該第1の結果通知を端末装置20に送信するように通信インターフェース15に対して指示する。この指示を受けて通信インターフェース15は、当該第1の結果通知を端末装置20に送信する。送信された当該第1の結果通知は、端末装置20の通信インターフェース25によって受信される。プロセッサー11は、Act47の処理の後、
図4のAct31へと戻る。
【0067】
一方、
図3のAct25において端末装置20のプロセッサー21は、通信インターフェース25によって第1の結果通知が受信されるのを待ち受けている。プロセッサー21は、第1の結果通知が受信されたならば、Act25においてYesと判定して
図2のAct17へと進む。
【0068】
プロセッサー21は、Act25からAct17に進んだ場合、Act17で記憶する文字認識の結果は、Act13の文字認識の結果に第1の結果通知に含まれる文字認識の結果を適用したものである。すなわち、プロセッサー21は、Act13の文字認識の結果と第1の結果通知に含まれる文字認識の結果のうち、同じ範囲の文字認識については、第1の結果通知に含まれる文字認識の結果を採用する。そして、プロセッサー21は、それ以外の部分については、Act13の文字認識の結果を採用する。
【0069】
一方、サーバー装置10のプロセッサー11は、
図4のAct32で求めた認識率が閾値T3以上でないならば、
図5のAct41においてNoと判定してAct48へと進む。
【0070】
Act48においてプロセッサー11は、画像要求を生成する。画像要求は、対象画像の画像データを送信するように端末装置20の要求するデータである。プロセッサー11は、画像要求を生成した後、当該画像要求を端末装置20に送信するように通信インターフェース15に対して指示する。この指示を受けて通信インターフェース15は、当該画像要求を端末装置20に送信する。送信された当該画像要求は、端末装置20の通信インターフェース25によって受信される。
【0071】
一方、端末装置20のプロセッサー21は、通信インターフェース25によって画像要求が受信されたならば、
図2のAct15においてYesと判定してAct16へと進む。そして、プロセッサー21は、Act16においてNoと判定してAct19へと進む。さらに、プロセッサー21は、Act19においてNoと判定して
図3のAct22へと進む。そして、プロセッサー21は、Act22においてNoと判定してAct26へと進む。
【0072】
Act26においてプロセッサー21は、対象画像をサーバー装置10に送信するように通信インターフェース25に対して指示する。この指示を受けて通信インターフェース25は、対象画像をサーバー装置10に送信する。送信された対象画像は、サーバー装置10の通信インターフェース15によって受信される。
【0073】
一方、
図5のAct49においてサーバー装置10のプロセッサー11は、通信インターフェース15によって対象画像が受信されるのを待ち受けている。プロセッサー11は、対象画像が受信されたならば、Act49においてYesと判定してAct50へと進む。
【0074】
Act50においてプロセッサー11は、Act49において受信された対象画像に対して文字認識を実行する。
【0075】
Act51においてプロセッサー11は、Act49の文字認識の結果を補助記憶デバイス14などに記憶する。
【0076】
Act53においてプロセッサー11は、第2の結果通知を生成する。第2の結果通知は、Act49の文字認識の結果を示すデータを含むデータである。プロセッサー11は、第2の結果通知を生成した後、当該第2の結果通知を端末装置20に送信するように通信インターフェース15に対して指示する。この指示を受けて通信インターフェース15は、当該第2の結果通知を端末装置20に送信する。送信された当該第2の結果通知は、端末装置20の通信インターフェース25によって受信される。プロセッサー11は、Act53の処理の後、
図4のAct31へと戻る。
【0077】
一方、
図3のAct27において端末装置20のプロセッサー21は、通信インターフェース25によって第2の結果通知が受信されるのを待ち受けている。プロセッサー21は、第2の結果通知が受信されたならば、Act27においてYesと判定して
図2のAct17へと進む。
【0078】
プロセッサー21は、Act27からAct17に進んだ場合、Act17で記憶する文字認識の結果は、第2の結果通知に含まれる文字認識の結果である。
【0079】
以上のように、サーバー装置10は、端末装置20が行った文字認識の認識率に応じて以下の(A)~(C)のいずれかの処理を行う。サーバー装置10は、閾値T1未満閾値T2以上である場合、以下の(A)の処理を行う。サーバー装置10は、閾値T2未満閾値T3以上である場合、以下の(B)の処理を行う。サーバー装置10は、閾値T3未満である場合、以下の(C)の処理を行う。
(A)サーバー装置10は、対象画像の文字種及びその位置を特定する。そして、サーバー装置10は、当該文字種に適した方法で端末装置20に文字認識を再実行させる。
(B)サーバー装置10は、誤認識範囲を決定する。そして、サーバー装置10は、対象画像のうち誤認識範囲を含む画像を端末装置20から取得する。さらに、サーバー装置10は、取得した画像に対して文字認識を実行する。
(C)サーバー装置10は、対象画像を端末装置20から取得する。そして、サーバー装置10は、取得した画像に対して文字認識を実行する。
【0080】
以上より、例えば、(A)の処理は、第1の方法に係る処理であり、(B)の処理は、第2の方法に係る処理である。あるいは、(A)の処理は、第1の方法に係る処理であり、(C)の処理は、第2の方法に係る処理である。あるいは、(B)の処理は、第1の方法に係る処理であり、(C)の処理は、第2の方法に係る処理である。
以上より、例えば、閾値T1は、第1の閾値であり、閾値T2は、第2の閾値である。あるいは、閾値T1は、第1の閾値であり、閾値T3は、第2の閾値である。あるいは、閾値T2は、第1の閾値であり、閾値T3は、第2の閾値である。
【0081】
実施形態の文字認識システム1によれば、端末装置20が行った文字認識の認識率が閾値T1未満であるならば、サーバー装置10は、上記の(A)~(C)のいずれかの処理を行う。
サーバー装置10は、(A)~(C)のいずれかの処理を行うことで、文字認識の認識率を、端末装置20だけで文字認識をした場合よりも向上させることができる。
【0082】
また、実施形態の文字認識システム1によれば、サーバー装置10は、閾値T1未満閾値T2以上であるならば(A)の処理を行う。そして、サーバー装置10は、閾値T2未満閾値T3以上であるならば(B)の処理を行う。そして、サーバー装置10は、閾値T3未満であるならば(C)の処理を行う。このように、サーバー装置10は、認識率に応じて異なる処理を行う。これにより、サーバー装置10は、認識率ごとに適した処理を行うことができる。
【0083】
また、実施形態の文字認識システム1によれば、サーバー装置10は、(B)の処理を行う場合、(C)の処理を行うよりも端末装置20から取得する画像データのデータ容量が小さい。このため、実施形態のサーバー装置10は、(B)の処理を行うことで(C)の処理を行うよりもデータ通信量を減らすことができる。
また、実施形態の文字認識システム1によれば、サーバー装置10は、(B)の処理において文字認識を行う画像の範囲は、(C)の処理において文字認識を行う画像の一部である。このため、実施形態のサーバー装置10は、(B)の処理を行うことで(C)の処理を行うよりも文字認識にかかる処理の負荷を減らすことができる。
【0084】
また、実施形態の文字認識システム1によれば、サーバー装置10は、文字認識の結果を記憶する。これにより、サーバー装置10は、文字認識の結果を様々な処理に利用することができる。
また、実施形態の文字認識システム1によれば、端末装置20は、文字認識の結果を記憶する。これにより、端末装置20は、文字認識の結果を様々な処理に利用することができる。
【0085】
上記の実施形態は、以下のような変形も可能である。
上記の実施形態では、サーバー装置10は、認識率に応じて3種類の処理から選択した処理を実行する。しかしながら、サーバー装置10は、認識率に応じて2種類又は4種類以上の処理から選択した処理を実行しても良い。なお、認識率に応じて選択される複数処理のうちのいずれか2種類の処理は、第1の方法及び第2の方法の例である。
【0086】
端末装置20は、切り抜き画像又は対象画像をサーバー装置10に送信することに代えて、切り抜き画像又は対象画像を示すURLなどのアドレスをサーバー装置10に送信しても良い。この場合、サーバー装置10は、当該アドレスから切り抜き画像又は対象画像を取得する。
【0087】
プロセッサー11又はプロセッサー21は、上記実施形態においてプログラムによって実現する処理の一部又は全部を、回路のハードウェア構成によって実現するものであっても良い。
【0088】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0089】
1……文字認識システム、10……サーバー装置、11,21……プロセッサー、12,22……ROM、13,23……RAM、14,24……補助記憶デバイス、15,25……通信インターフェース、16,29……バス、20……端末装置、26……入力デバイス、27……表示デバイス、28……読取デバイス