以下、本発明の実施形態を図面に基づいて説明する。
<1.第1実施形態>
<1−1.構成概要>
図1は、本発明に係る画像形成システム1を示す図である。図1に示すように、画像形成システム1は、画像形成装置10と外部端末50とクラウドサーバ90とを備える。
画像形成装置10と外部端末50とクラウドサーバ90とは、ネットワーク(通信ネットワーク)108を介して互いに接続される。ネットワーク108は、LAN(Local Area Network)およびインターネットなどによって構成される。また、ネットワーク108に対する接続態様は、有線接続であってもよく、或いは無線接続であってもよい。たとえば、画像形成装置10およびクラウドサーバ90はネットワーク108に対して有線接続され、外部端末50はネットワーク108に対して無線接続される。
クラウドサーバ90は、画像形成装置10とも外部端末50とも異なる外部装置(外部サーバ)である。クラウドサーバ90には、アプリケーション120(ここでは、汎用のOCR(Optical Character Recognition)アプリケーション)がインストールされている。クラウドサーバ90は、汎用的なOCR処理サービスをアプリケーション120を用いて提供するサーバである。ただし、このクラウドサーバ90(アプリケーション120)は、サーチャブルPDF(Portable Document Format)の生成処理サービスを提供しない。サーチャブルPDFは、後述するように、外部端末50およびクラウドサーバ90等が協働することによって生成される。
この画像形成システム1においては、原稿のスキャン画像200(図4および図5等参照)が画像形成装置10によって生成され、スキャン画像200が画像形成装置10から外部端末50に送信される。外部端末50は、画像形成装置10から受信したスキャン画像200に基づき、電子文書500(図4および図5等参照)を生成する。当該電子文書500の生成動作は、当該外部端末50にインストールされている電子文書生成アプリケーション110を実行すること等によって実現される。
電子文書生成アプリケーション110では、スキャン画像200から複数の部分領域230が抽出される。そして、クラウドサーバ90のアプリケーション120によって提供されるOCR処理サービスを利用して、当該各部分領域230に対するOCR処理が行われる。電子文書生成アプリケーション110は、各部分領域230に対する各処理結果(テキストデータ)を汎用アプリケーション120から受け取り、当該各処理結果に基づいて電子文書500を生成する。当該電子文書500は、テキストデータ付き電子文書(ここでは、サーチャブルPDF)として生成される。
なお、画像形成システム1は、電子文書を生成するシステムであることから、電子文書生成システムなどとも表現される。同様に、外部端末50は電子文書生成装置であるとも表現される。
<1−2.画像形成装置の構成>
図2は、画像形成装置10の機能ブロックを示す図である。ここでは、画像形成装置10として、MFP(マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral))を例示する。図2においては、MFP10の機能ブロックが示されている。
MFP10は、スキャン機能、コピー機能、ファクシミリ機能およびボックス格納機能などを備える装置(複合機とも称する)である。具体的には、MFP10は、図2の機能ブロック図に示すように、画像読取部2、印刷出力部3、通信部4、格納部5、操作部6およびコントローラ9等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
画像読取部2は、MFP10の所定の位置に載置された原稿を光学的に読み取って(すなわちスキャンして)、当該原稿の画像データ(原稿画像ないしスキャン画像とも称する)を生成する処理部である。この画像読取部2は、スキャン部であるとも称される。
印刷出力部3は、印刷対象に関するデータに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
通信部4は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部4は、ネットワーク108を介したネットワーク通信を行うことも可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、MFP10は、所望の相手先(たとえば、外部端末50)との間で各種のデータを授受することが可能である。通信部4は、各種データを送信する送信部4aと各種データを受信する受信部4bとを有する。
格納部5は、ハードディスクドライブ(HDD)等の記憶装置で構成される。
操作部6は、MFP10に対する操作入力を受け付ける操作入力部6aと、各種情報の表示出力を行う表示部6bとを備えている。
このMFP10においては、略板状の操作パネル部6c(図1参照)が設けられている。また、操作パネル部6cは、その正面側にタッチパネル25(図1参照)を有している。タッチパネル25は、操作入力部6aの一部としても機能するとともに、表示部6bの一部としても機能する。タッチパネル25は、液晶表示パネルに各種センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの各種の操作入力を受け付けることが可能である。
たとえば、タッチパネル25においては、各種の操作画面(メニュー画面等)(ボタン画像等を含む)が表示される。操作者は、タッチパネル25の操作画面内に仮想的に配置されるボタンを押下することによって、MFP10の各種動作内容を設定するとともに動作指示を付与することができる。
コントローラ9は、MFP10に内蔵され、MFP10を統括的に制御する制御装置である。コントローラ9は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ9は、CPUにおいて、ROM(例えば、EEPROM)内に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体、あるいはネットワーク108等を介してMFP10にインストールされてもよい。
具体的には、図2に示すように、コントローラ9は、当該プログラムの実行により、通信制御部11と入力制御部12と表示制御部13と領域判別部15とを含む各種の処理部を実現する。
通信制御部11は、他の装置(外部端末50等)との間の通信動作を通信部4等と協働して制御する処理部である。たとえば、通信制御部11は、スキャン画像等を外部端末50送信する。
入力制御部12は、操作入力部6a(タッチパネル25等)に対する操作入力動作を制御する制御部である。たとえば、入力制御部12は、タッチパネル25に表示された操作画面に対する操作入力を受け付ける動作を制御する。
表示制御部13は、表示部6b(タッチパネル25等)における表示動作を制御する処理部である。表示制御部13は、たとえば、MFP10を操作するための操作画面をタッチパネル25に表示させる。
領域判別部15は、スキャン画像200(図4参照)の領域(領域種別)を判別する処理部である。たとえば、領域判別部15は、スキャン画像200内における文字領域210と非文字領域(図形領域等)220とを区別して判別する。
<1−3.外部端末の構成>
次に外部端末50の構成について説明する。
外部端末50は、MFP10およびクラウドサーバ90との間でのネットワーク通信が可能な情報入出力端末装置(情報端末あるいは通信端末とも称される)である。ここでは、外部端末50として、タブレット型端末を例示する。ただし、これに限定されず、外部端末50は、スマートフォンあるいはパーソナルコンピュータなどであってもよい。また、外部端末は、携帯式の装置(携帯情報端末等)(携帯端末)であってもよく、あるいは、据置型の装置であってもよい。
図3は、外部端末50の概略構成を示す機能ブロック図である。
外部端末50は、図3の機能ブロック図に示すように、通信部54、格納部55、操作部56およびコントローラ59等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
通信部54は、ネットワーク108を介したネットワーク通信を行うことが可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、外部端末50は、所望の相手先(MFP10およびクラウドサーバ90等)との間で各種のデータを授受することが可能である。通信部54は、各種データを送信する送信部54aと各種データを受信する受信部54bとを有する。たとえば、受信部54bは、スキャン画像200を画像形成装置10から受信し、送信部54aは、スキャン画像200における複数の部分領域230(図4参照)の画像データをクラウドサーバ90に送信する。また、受信部54bは、複数の部分領域230に関するOCR処理結果等をクラウドサーバ90から受信する。
格納部55は、不揮発性の半導体メモリ等の記憶装置で構成され、各種の情報を格納する。
操作部56は、外部端末50に対する操作入力を受け付ける操作入力部56aと、各種情報の表示出力を行う表示部56bとを備えている。この外部端末50においては、液晶表示パネルに各種センサ等が埋め込まれて構成されたタッチパネル75(図1参照)が設けられている。具体的には、図1に示すように、略板状の外部端末50の正面側において、その周縁部(枠部)を除くほぼ全面にわたってタッチパネル75が設けられている。このタッチパネル75は、ユーザインターフェイス部として機能する。換言すれば、タッチパネル75は、操作入力部56aの一部としても機能するとともに、表示部56bの一部としても機能する。
図3のコントローラ59は、外部端末50に内蔵され、外部端末50を統括的に制御する制御装置である。コントローラ59は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ59は、CPUにおいて、記憶部(半導体メモリ等)内に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体、あるいはネットワーク108等を介して外部端末50にインストールされるようにしてもよい。
外部端末50には、画像形成装置10との連携処理を制御するアプリケーションプログラム(単に、アプリケーションとも称する)110がインストールされている。当該アプリケーションプログラム110が外部端末50にて実行されることによって、外部端末50は、画像形成装置10にて生成されたスキャン画像を画像形成装置10から受信するとともに、当該スキャン画像を利用して電子文書を生成する処理を実行する。
具体的には、コントローラ59は、当該アプリケーションプログラム110等の実行により、通信制御部61と入力制御部62と表示制御部63と取得部64と抽出部65と検出部66と指示送出部67と受取部68と生成部69とを含む各種の処理部を実現する。
通信制御部61は、通信部54等と協働して、MFP10およびクラウドサーバ90等との通信動作を制御する処理部である。
入力制御部62は、操作入力部56a(タッチパネル75等)に対する操作入力動作を制御する制御部である。たとえば、入力制御部62は、タッチパネル75に表示された操作画面に対するタッチ操作入力を受け付ける動作を制御する。
表示制御部63は、表示部56b(タッチパネル75等)における表示動作を制御する処理部である。表示制御部63は、たとえば、MFP10との連携処理を行うための操作画面をタッチパネル75に表示する。
なお、入力制御部62および表示制御部63は、ユーザインターフェイス制御部とも総称される。
取得部64は、MFP10で生成されたスキャン画像200(図4参照)等を取得する処理部である。取得部64は、通信部54および通信制御部61等と協働して、当該スキャン画像200等をMFP10から受信して取得する。
抽出部65は、スキャン画像200の文字領域から複数の部分領域230(図4参照)を抽出する処理部である。
検出部66は、スキャン画像200内における複数の部分領域230の位置をそれぞれ検出する処理部である。
指示送出部67は、アプリケーションプログラム110から別のアプリケーションプログラム120(後述)に向けて所定の処理実行指示等を送出する処理部である。たとえば、指示送出部67は、スキャン画像200における複数の部分領域230のそれぞれに関して、電子文書生成に関連する少なくとも1つの処理(OCR処理(光学文字認識処理)等を含む)を行うべき旨の指示をクラウドサーバ90に向けて送出する。当該指示は、複数の部分領域230のそれぞれに関する画像データとともに送出される。
受取部68は、各部分領域230に関する少なくとも1つの処理の各処理結果(OCR処理結果等)を、アプリケーションプログラム120から受け取る処理部である。
生成部69は、電子文書500(図4参照)を生成する処理部である。生成部69は、複数の部分領域230のそれぞれについての各処理結果に係るテキスト情報(文字コード群)を、スキャン画像200における当該複数の部分領域230のそれぞれの検出位置に配置して、電子文書500(サーチャーブルPDF等)を生成する。
<1−4.動作>
図4は、電子文書生成システム1における動作の概略を示す図である。また、図5は、外部端末50にて実行される電子文書生成アプリケーション110の動作、およびクラウドサーバ90にて実行されるアプリケーション120の動作の概略を主に示す図である。さらに、図6は、外部端末50(より詳細には電子文書生成アプリケーション110)の動作を示すフローチャートである。以下、これらの図を参照しながら、電子文書生成システム1の動作について説明する。
<スキャン画像生成等>
まず、ユーザは、スキャン対象の原稿をMFP10の原稿台(たとえば、自動給紙装置(ADF:Auto Document Feeder )あるいは原稿載置用ガラス面等)に載置する。
その後、ユーザは、外部端末50を操作することによって、電子文書500の生成指示を外部端末50およびMFP10に対して付与する。
具体的には、まず、外部端末50にインストールされているアプリケーション(電子文書生成アプリケーション)110の操作画面(不図示)において、スキャン処理を実行すべき装置が指定されるとともに、スキャン処理により最終的に生成される電子文書500の形式が指定される。ここでは、スキャン処理を実行すべき装置としてMFP10が指定され、当該電子文書500の形式として、サーチャブルPDF(透明テキスト付きPDF)が指定されるものとする。そして、ユーザは、電子文書生成アプリケーション110の操作画面内に表示された実行開始ボタン(電子文書500の生成処理の実行開始ボタン)を押下することにより、電子文書(ここではサーチャブルPDF)500の生成指示を外部端末50およびMFP10に対して付与する。なお、サーチャブルPDF(透明テキスト付きPDF)は、文字画像を有する画像レイヤと当該文字画像に対する文字認識結果が非表示状態で埋め込まれたテキストレイヤとを有するPDF形式の電子文書である。
外部端末50は、当該生成指示を受け付けるとともに、当該生成指示(詳細には、当該生成指示に基づくスキャン画像生成指示等)をMFP10に転送する。
MFP10は、当該生成指示(スキャン画像生成指示等)を外部端末50から受信するとスキャン動作を開始し、MFP10の原稿台(ADF等)に載置された原稿のスキャン画像200を生成する(図4の左上参照)。
さらに、MFP10は、スキャン画像200内における各種の領域を判別する領域判別処理を行う。具体的には、MFP10の領域判別部15は、スキャン画像200内における文字領域210と非文字領域(図形領域等)220とを判別し、スキャン画像200における文字領域210の範囲(詳細にはその位置および大きさ)と非文字領域220の範囲とを特定する。また、領域判別部15は、当該文字領域210に対して、当該領域が「文字領域」であることを示す特定コード(たとえば「1」)を付与する。同様に、領域判別部15は、非文字領域220に対して、当該領域が「非文字領域」であることを示す領域種別コード(たとえば「2」、「3」等)を付与する。より詳細には、たとえば、非文字領域である「図形領域」に対して「2」が付与され、非文字領域である「写真領域」に対して「3」が付与される。
そして、領域判別部15は、これらの情報に基づいて属性指定データ300を生成する。属性指定データ300は、スキャン画像200内の各画素位置に対して上記の領域種別コードが割り付けられたデータ(スキャン画像200の各画素ごとに領域種別コードが付与されたデータ)として生成される。換言すれば、属性指定データ300は、スキャン画像200における文字領域210および非文字領域220のそれぞれに関する、範囲情報(詳細にはその位置および大きさに関する情報)ならびに領域種別コード等、の情報を含むものとして生成される。
そして、MFP10(通信部4および通信制御部11等)は、スキャン画像(詳細にはその画像データ)200と属性指定データ300とを外部端末50に送信する。
なお、ここでは、外部端末50を操作対象装置として用いて電子文書500の生成指示が付与される場合を例示しているが、これに限定されず、MFP10を操作対象装置として用いて電子文書500の生成指示が付与されるようにしてもよい。たとえば、MFP10のタッチパネル25に表示されたメニューにおいて、スキャン画像200に基づく電子文書500の生成指示が付与されるようにしてもよい。より詳細には、「スキャンto端末」(MFPによりスキャン画像を生成し、当該スキャン画像に関する電子文書を外部端末にて保存すべき旨の指示)が付与されるようにしてもよい。そして、このような指示に応じて、電子文書(サーチャブルPDF等)500が生成され、当該電子文書500が外部端末50(格納部55)内に格納されるようにしてもよい。
<OCR処理および電子文書生成処理等>
その後、外部端末50は、電子文書生成アプリケーション110を実行することによって、図6に示すような処理を実行する。
まず、ステップS11において、外部端末50(詳細には、取得部64等)は、MFP10で生成されたスキャン画像200および属性指定データ300をMFP10から受信して取得する。また、外部端末50(詳細には、生成部69等)は、スキャン画像200を取り込んだPDF文書を電子文書500として仮生成する。当該PDF文書においては、OCR結果に係るテキストデータは未だ埋め込まれていない。
つぎに、ステップS12において、外部端末50(抽出部65等)は、ステップS11で取得したスキャン画像200および属性指定データ300に基づいて、当該スキャン画像200の文字領域210から所定単位の部分領域230を抽出する。この実施形態では、抽出部65は、文字領域210における単一行の文字列に係る領域を、所定単位の部分領域230として抽出する。すなわち、抽出部65は、文字領域210から、1行単位の部分領域230を抽出する。換言すれば、文字領域210における単一行の文字列に係る領域を単位として区分される複数の部分領域230(ここでは、そのうち最初の部分領域230)が抽出される。
具体的には、スキャン画像200と属性指定データ300とに基づき、スキャン画像200における文字領域210が特定される。そして、文字領域210に対する画像処理が行われ、文字領域210内の1行の領域(横方向に配列された文字列の領域)が認識される。図5においては、3つの行で構成される文字領域210のうち、まず、第1行の「Good morning」の文字列に係る領域が部分領域230として抽出される状況が示されている。また、文字領域210における次の「行」(ここでは第2行)の存否も検出(判定)される。なお、当該存否の情報は、ステップS18で利用される。
また、ステップS13において、外部端末50(検出部66等)は、ステップS12で抽出された部分領域230の(スキャン画像200内における)位置(詳細には、その基準位置(先頭位置等))を検出する。検出された位置に関する情報(スキャン画像200における座標位置(X,Y)等)は、格納部55に格納される。
なお、より詳細には、各部分領域230の抽出処理および位置検出処理(ステップS12,S13)においては、第2実施形態にて詳述する処理のうち、特に単一行に係る文字列領域の認識処理ならびに位置検出処理(図9等参照)が行われればよい。さらに、当該認識処理に基づき当該単一行を抽出する抽出処理が行われればよい。これによって、スキャン画像200における1行の文字列の存在領域(たとえば、1行の文字列「Good morning」に関する矩形領域)が認識され抽出されるとともに、当該1行の文字列の存在領域の位置(代表位置)(たとえば、当該矩形領域の左上あるいは左下等の点の位置(先頭位置))も認識される。
次のステップS14においては、外部端末50(指示送出部67等)は、部分領域230に関する処理指示と当該部分領域230に関する画像データとを、電子文書生成アプリケーション110からアプリケーション120に向けて送出(送信)する。
ここでは、部分領域230に関する画像データとして、スキャン画像200から当該部分領域230に対応する部分を抽出した画像(部分画像)の画像データ(部分領域230の画像データとも称する)が送信される。
また、部分領域230に関する処理指示として、OCR処理(光学文字認識処理)を含む少なくとも1つの処理を部分領域230に関して行うべき旨の指示(ここでは、部分領域230に関してOCR処理を行うべき旨の指示)が行われる。なお、アプリケーション120(ここでは、OCR処理を行うOCR処理アプリケーション)は、電子文書生成アプリケーション110とは別のアプリケーションである。ここでは、アプリケーション120は、クラウドサーバ90にインストールされ且つクラウドサーバ90にて実行されるアプリケーションである。
クラウドサーバ90にて実行中のアプリケーション120が、上述の処理指示と部分領域230に関する画像データとを受け取る(受信する)と、クラウドサーバ90(アプリケーション120)は、当該処理指示および画像データに基づいて、OCR処理を実行する。
図5においては、最初の行の「Good morning」の文字列を画像として含む部分領域230に関する画像データが、電子文書生成アプリケーション110からアプリケーション120に受け渡される状況が示されている。アプリケーション120は、受け取った当該部分領域230に関する画像データに対してOCR処理を施し、当該画像データに含まれる文字列「Good morning」を認識して、当該文字列に係るテキストデータ(文字コード群)を生成する。そして、アプリケーション120は、当該文字列に係るテキストデータ(テキスト情報)250をOCR処理の処理結果として電子文書生成アプリケーション110に向けて出力する。換言すれば、クラウドサーバ90(アプリケーション120)から外部端末50(電子文書生成アプリケーション110)に向けて当該処理結果が送出(送信)される。
ステップS15において、外部端末50(受取部68等)は、アプリケーション120からの当該処理結果を受け取る。なお、当該処理結果には、テキストデータが含まれるものの、位置情報は含まれない。
そして、ステップS16にて、外部端末50(生成部69等)は、部分領域230に関する処理結果であるテキストデータを、電子文書500内において、部分領域230の検出位置(ステップS13での検出位置)に配置する(図5も参照)。当該テキストデータは、電子文書500(PDF文書)内に取り込まれたスキャン画像200において、部分領域230の(スキャン画像200における)検出位置(ステップS13での検出位置)に配置される。具体的には、生成部69は、部分領域230に関する処理結果(OCR処理結果)に係るテキストデータを、部分領域230の検出位置に「非表示状態」で埋め込む。換言すれば、部分領域230に関するOCR結果のテキストデータが、サーチャブルPDFのテキストレイヤ(非表示)において、部分領域230の検出位置に配置される。これにより、電子文書(サーチャブルPDF)500の内容が更新される。
ステップS18においては、スキャン画像200の文字領域210の全面(ここでは文字領域210の全ての行(全ての行領域))について処理が終了したか否かが判定される。詳細には、次の行(未処理の行)が存在する旨がステップS12にて検出されている場合には、文字領域210の全面についての処理は未だ終了していない旨がステップS18にて判定される。一方、次の行(未処理の行)が存在しない旨がステップS12にて検出されている場合には、当該処理が終了した旨がステップS18にて判定される。
スキャン画像200の全面について処理が未だ終了していないと判定される場合には、ステップS19を経てステップS12に戻り、次の部分領域230(ここでは、次の行の画像領域)に関してステップS12〜S16の動作が同様に実行される。
一方、スキャン画像200の全面について処理が終了したと判定される場合には、図6のフローチャートの処理を終了する。スキャン画像200の文字領域210内の複数の部分領域230のそれぞれに関してステップS12〜S16の処理が実行されることによって、電子文書500(より詳細には、サーチャブルPDF)が生成される。なお、当該電子文書500は、外部端末50の格納部55に格納される。
図7は、上述の動作によって生成された電子文書500(サーチャブルPDF)の一例を示す図である。図7においては、スキャン画像200の非文字領域220は、OCR処理を経ることなく、電子文書500内の対応領域520にそのまま配置されている。一方、スキャン画像200の文字領域210は、電子文書500内の対応領域510に配置されている。具体的には、当該文字領域210に含まれていた3つの行のそれぞれの部分領域230に対応する各OCR処理結果(テキストデータ)250が、それぞれの位置を元の各行の位置に合わせた状態で配置されている。なお、図7においては、図示の都合上、元の文字領域210の画像が削除された上でOCR処理結果に係る文字列が表示されているが、実際には、このサーチャブルPDFでは、元の文字領域210の画像が削除されずに表示されたまま、OCR処理結果に係る文字列が非表示状態で埋め込まれている。図5等においても同様である。
以上のように、この第1実施形態においては、外部端末50は、当該外部端末50上で実行される電子文書生成アプリケーション110において、画像形成装置10で生成されたスキャン画像200等を取得する。電子文書生成アプリケーション110は、スキャン画像200から複数の部分領域230を抽出するとともに、当該複数の部分領域230のそれぞれの(スキャン画像200内における)位置情報を取得して格納しておく。そして、電子文書生成アプリケーション110は、複数の部分領域230ごとにOCR処理を行うべき旨の指示をアプリケーション120(ここでは汎用OCR処理アプリケーション)に送出する。アプリケーション120はOCR処理結果を電子文書生成アプリケーション110に返信する。電子文書生成アプリケーション110は、返信されてきたOCR処理結果(複数の部分領域230のそれぞれのOCR結果)をスキャン画像200において複数の部分領域のそれぞれの位置に配置した電子文書(サーチャブルPDF)を生成する。
これによれば、或る電子文書生成アプリケーション110から別のアプリケーション120に対してOCR処理を依頼する場合においても、スキャン画像200内の適切な位置にOCR結果(テキストデータ)を配置した電子文書を生成することが可能である。
ここにおいて、仮にスキャン画像200に関するOCR処理指示を、文字領域内の1行単位ではなく一括的に(たとえば文字領域210の全体に対して一括的に)、依頼元装置から別装置(クラウドサーバ)に対して付与する技術(比較例に係る技術とも称する)を想定する(図19参照)。なお、図19は、比較例に係る技術を示す図である。
文字領域210の全体が一括的に送信されている。
このような比較例に係る技術(図19)においては、図5と比較すると判るように、(部分領域230単位のOCR処理指示ではなく)文字領域210の全体に対する一括的なOCR処理指示がクラウドサーバに付与され、当該指示に応答してクラウドサーバがOCR処理を行い、当該クラウドサーバは、当該OCR処理指示に対するOCR結果を一括的に画像形成装置に送信する。ただし、このOCR結果には、各文字の位置情報(ならびに各文字のフォント情報および行間情報等)は含まれない。そのため、図20に示すように、OCR結果であるテキストデータに係る文字列の第2行目以降の各行(たとえば図20の第3行)のY方向位置(縦方向位置)において、スキャン画像200における当該文字列の元の位置(本来の位置)と埋め込み位置との位置ずれΔhが生じ得る。また、OCR結果には3行分のテキストデータが含まれてはいるものの、第2行以後の先頭文字がいずれの文字であるのかは不明である。そのため、OCR結果に係る文字列が元の行(元のスキャン画像200における行)とは異なる行に配置される問題も生じ得る。
一方、上記実施形態のように複数の部分領域230に区分して、部分領域230ごとにOCR処理依頼とその処理結果(テキストデータ)とが授受される場合には、各部分領域230とその処理結果との対応関係が明確であり、各部分領域230の各処理結果を適切な位置に配置することが可能である。その結果、たとえば、図7に示すようなサーチャブルPDFが生成される。したがって、位置ずれを最小限に止めることが可能である。具体的には、上記のような位置ずれΔh(図20参照)の発生を防ぐことが可能である。また、文字列が元の行とは異なる行に配置される問題を解消することも可能である。
また、上記実施形態においては、MFP10の外部の装置(クラウドサーバ90)によって提供されるOCR処理サービスが利用されている。これによれば、OCR処理の依頼元装置(たとえば外部端末50)とは別の装置(クラウドサーバ)でOCR処理を行うことができるので、当該依頼元装置の処理負荷を低減することが可能である。
さらに、上記実施形態においては、スキャン画像200の生成装置であるMFP10とは別の装置(外部端末50)によって、電子文書500の生成処理(各部分領域230の抽出処理および位置検出処理等)が行われているので、MFP10の処理負荷を低減することが可能である。換言すれば、MFP10と外部端末50との間で処理負荷を適宜に分散することが可能である。
なお、上記実施形態では、属性指定データ300がMFP10において生成されて外部端末50に送信されているが、これに限定されず、属性指定データ300が外部端末50において生成されるようにしてもよい。
<2.第2実施形態>
第2実施形態は、第1実施形態の変形例である。以下では、第1実施形態との相違点を中心に説明する。
上記第1実施形態においては、複数の部分領域230が1行単位で抽出されているが、これに限定されず、複数の部分領域(ブロック領域)230が1行内の小領域(サブブロック領域)230単位で抽出されるようにしてもよい。たとえば、1行よりも小さな単位で複数の部分領域230が抽出されるようにしてもよい。詳細には、ステップS12(図6)において、文字領域210における各単一行内の複数の小領域が互いに区別されて複数の部分領域230として抽出されるようにしてもよい。そして、当該複数の部分領域230のそれぞれについて、上記と同様の処理(ステップS13以降の処理)が更に行われればよい。
複数の小領域の抽出手法としては、次のような画像処理手法が例示される。具体的には、1行内の各小領域は、各行における隣接行間間隔yと隣接文字間間隔xとの比率に基づいて、分離されて抽出されればよい。図8および図9は、このような手法について説明する図である。
図8の左側においては、スキャン画像200の文字領域210における2つの行が示されている。また、図9においては、図8の当該2行付近が拡大されて示されている。
ここでは、これらの図に示す状況を想定する。具体的には、文字領域210の第1行に「ABCDEFGHIJKLM」の文字が存在し、文字領域210の第2行に「01234567890123」の文字が存在する。また、第1行内の文字列「ABCDEF」と文字列「GHIJKLM」との間には比較的大きな空白が存在する。
抽出部65は、文字領域210における注目行(たとえば第1行)に関して、当該注目行内における注目文字(たとえば「F」)と当該注目文字の直後の文字(たとえば「G」)との間隔である間隔x(字間間隔とも称する)(たとえば、x6(図9参照))を算出する。また、抽出部65は、当該注目行に隣接する隣接行(文字列「012」で始まる第2行)と当該注目行との間隔である間隔y(行間間隔とも称する)(たとえば、y1(図9参照))をも算出する。各間隔x,yの算出手法については後述する。
そして、字間間隔xが行間間隔yよりも所定程度を超えて大きいと判定される場合には、抽出部65は、当該注目文字と当該注目文字の直後の文字との間に有意な空白領域があると判定し、当該空白領域の両側の2つの小領域を互いに異なる部分領域として抽出する。換言すれば、当該注目文字と当該注目文字の直後の文字とは、互いに異なる部分領域に属すると判定される。
より具体的には、値xの値yに対する比の値(x/y)が所定の閾値TH1(たとえば200%)より大きい場合には、注目文字と当該注目文字の直後の文字との間に有意な空白領域があると判定する。逆に、当該比の値(x/y)が所定の閾値TH1より小さい場合には、注目文字と当該注目文字の直後の文字との間に有意な空白領域は存在せず、当該注目文字と当該注目文字の直後の文字との両文字は、同一の部分領域に属すると判定される。このような処理が、第1行内の複数の文字に関して、一方側(たとえば左側)から他方側(たとえば右側)に向かう順序で順次に実行される。その結果、有意な空白領域が存在する場合には、当該空白領域によって区分される両側の小領域が抽出される。
たとえば、注目文字「A」に関する上記の比の値(比率)(x1/y1)が所定の閾値TH1よりも小さい場合には、当該空白領域の両側の文字(「A」および「B」)は同一の部分領域に属すると判定される。同様の動作が注目文字「B」〜「D」」においても実行される。また、注目文字「E」に関する上記の比の値(x5/y1)が所定の閾値TH1よりも小さい場合には、当該空白領域の両側の文字(「E」および「F」)は同一の部分領域に属すると判定される。これにより、6つの文字「ABCDEF」は同一の部分領域に属すると判定される。
一方、注目文字「F」に関する比の値(x6/y1)が所定の閾値TH1よりも大きい場合には、当該空白領域の両側の2つの小領域が互いに異なる部分領域として抽出される。詳細には、当該注目文字「F」を含む左側の小領域(たとえば「ABCDEF」に対応する領域)と当該注目文字の直後の文字「G」を含む右側の小領域(たとえば「G....」に対応する領域)とが、互いに異なる部分領域として抽出される。換言すれば、同一行内における文字列「ABCDEF」(詳細には、その存在領域)と文字列「G...」の存在領域(詳細には、その存在領域)との両者が当該両者の間の有意な空白によって、2つの小領域に区分される。
なお、抽出部65は、文字認識処理を行わない。抽出部65は、スキャン画像200における各文字の存在領域を画像処理によって求め、上記の各値x,yを、次のようにして算出する。
詳細には、まず、X方向(主走査方向)(水平方向)に伸びる1ライン(水平ライン)(水平方向画素列)あたりの黒画素の数を水平ライン毎に検出する動作を、Y方向(副走査方向)(垂直方向)に移動しつつ繰り返して行い、各水平ラインの黒画素数を取得する。
図9内の左側に配置されたグラフにおいては、Y方向の各位置における黒画素数を模式的に示す曲線L0が示されている。なお、当該グラフにおいては、簡略化のため、所定数以上の黒画素数が一律に同じ画素数で示されている。
文字が存在する位置の水平ラインにおいては、比較的多数の黒画素が存在する。一方、行と行との間の水平ライン(文字が存在しない行間領域の水平ライン)においては、黒画素がほとんど存在しない。
このような特質を利用して、抽出部65は、所定数以上の黒画素数を有する水平ラインが存在する範囲V(Y方向の範囲)を、1行の文字列の範囲(文字列の高さ方向における範囲)として認識する。たとえば、文字列「ABC...」の上端から下端までの範囲が1行の文字列の範囲Vとして認識される。同様に、文字列「012...」の上端から下端までの範囲等も1行の文字列の範囲Vとして認識される。
そして、垂直方向(Y方向)において当該範囲Vに亘り且つ水平方向(X方向)において文字領域210の(当該水平方向の)全範囲に亘る矩形領域が、スキャン画像200における1行の文字列の存在領域として認識される。また、当該矩形領域の左上(あるいは左下等)の点の位置が、当該1行の文字列の存在領域の位置(代表位置)として認識される。たとえば、1行の文字列「ABC...KLM」を含む矩形領域が1行の文字列の存在領域として認識されるとともに、当該矩形領域の左上の点の位置が、当該1行の文字列の存在領域の位置(先頭位置)として認識される。なお、第1実施形態においても、このようにして各行の文字列の存在範囲の認識処理および位置検出処理等が行われる。
さらに、抽出部65は、所定数以上の黒画素数を有しない水平ラインが存在する範囲(Y方向の範囲)を、行間領域の範囲(高さ方向における範囲)として認識する。たとえば、文字列「ABC...」の下端と文字列「012...」の上端との間の空白領域が、第1行と第2行との間の行間領域の範囲として認識される。このような処理により、抽出部65は、或る行とその次の行との間隔(行間領域のY方向の大きさ)を上記の間隔(行間間隔)yとして算出する。
次に、1行の文字列のY方向における存在範囲Vに対応する領域(X方向に伸びる帯状領域(矩形領域))内における、各文字の存在領域(各文字の幅方向における存在範囲W)を求める。今度は、当該帯状領域においてY方向に伸びる1ライン(垂直ライン(縦ライン))あたりの黒画素の数を検出する動作を、X方向に移動しつつ繰り返して行い、各垂直ラインごとの黒画素数を取得する。
図9内の第1行の文字列の上側に配置されたグラフにおいては、第1行の文字列のX方向の各位置における黒画素数を模式的に示す曲線L1が示されている。なお、当該グラフにおいては、簡略化のため、所定数以上の黒画素数が一律に同じ画素数で示されている。
文字が存在する位置の垂直ラインにおいては、比較的多数の黒画素が存在する。一方、文字と文字との間の垂直ライン(文字が存在しない字間領域の垂直ライン)においては、黒画素がほとんど存在しない。
このような特質を利用して、抽出部65は、所定数以上の黒画素数を有する垂直ラインが存在する範囲(X方向の範囲)を、1文字の幅の範囲(幅方向における範囲)Wとして認識する。たとえば、文字「A」の左端から右端までの範囲が或る文字の範囲Wとして認識される。その後の各文字「B」、「C」、「D」、「E」、「F」、「G」、「H」、...についても同様である。また、当該文字とその右隣の文字との間隔(空隙)、詳細には、当該文字の右端と当該文字の右隣の文字の左端との間隔(空隙)が上記の間隔(字間間隔)xとして算出される。
このようにして求められた隣接行間間隔yと隣接文字間間隔xとを用いて、上述のように、両値x,yの比率に基づき1行内の各小領域が分離して抽出される。当該各小領域は、部分領域230として抽出され、当該各部分領域230について上記第1実施形態と同様の動作が行われる。
<第2実施形態の変形例1>
上記第2実施形態においては、隣接行間間隔yと隣接文字間間隔xとの比率に基づいて、1行内の各小領域が、互いに分離されて各部分領域230として抽出される態様が例示されているが、これに限定されない。たとえば、隣接文字間間隔xのみを用いて、1行内の各小領域が、互いに分離されて各部分領域230として抽出されるようにしてもよい。
図10および図11は、このような手法について説明する図である。
図10の左側においては、スキャン画像200の文字領域210における或る1つの行(文字列「ABCDEFGHIJKLM」を有する行)が示されている。また、図11においては、当該行が拡大されて示されている。文字列「ABCDEF」と文字列「GHIJKLM」との間には比較的大きな空白が存在する。
抽出部65は、文字領域における複数行のうちの注目行に関して、注目行内における注目文字と当該注目文字の直前の文字との間隔である前間隔pと、当該注目文字と当該注目文字の直後の文字との間隔である後間隔qとを算出する。なお、隣接文字間間隔p,qは、上記第2実施形態の隣接文字間間隔xと同様にして算出されればよい。
後間隔qが前間隔pよりも所定程度を超えて大きいと判定される場合には、抽出部65は、当該注目文字と当該注目文字の直後の文字との間に有意な空白領域があると判定し、当該空白領域の両側の2つの小領域を互いに異なる部分領域として抽出する。換言すれば、当該注目文字と当該注目文字の直後の文字とは、互いに異なる部分領域に属すると判定される。これにより、注目文字と当該注目文字の直前の文字とを含む小領域と当該注目文字の直後の文字を含む小領域とは、互いに異なる部分領域として抽出される。
より具体的には、値qの値pに対する比の値(q/p)が所定の閾値TH2(たとえば250%)より大きい場合には、注目文字と当該注目文字の直後の文字との間に有意な空白領域があると判定する。逆に、当該比の値(q/p)が所定の閾値TH2より小さい場合には、注目文字と当該注目文字の直後の文字との間に有意な空白領域は存在せず、当該注目文字と当該注目文字の直後の文字との両文字は同一の部分領域に属すると判定される。このような処理が、第1行内の複数の文字に関して、一方側(たとえば左側)から他方側(たとえば右側)に向かう順序で順次に実行される。その結果、有意な空白領域が存在する場合には、当該空白領域によって区分される両側の小領域が抽出される。
たとえば、注目文字「B」に関する上記の比率(q/p=x2/x1)が所定の閾値TH2よりも小さい場合には、当該注目文字「B」とその両側の文字(「A」および「C」)はいずれも同一の部分領域に属すると判定される。同様の動作が注目文字「B」〜「D」においても実行される。また、注目文字「E」に関する上記の比率(q/p=x5/x4)が所定の閾値TH2よりも小さい場合には、当該注目文字「E」とその両側の文字(「D」および「F」)はいずれも同一の部分領域に属すると判定される。これにより、6つの文字「ABCDEF」は同一の部分領域に属すると判定される。
一方、注目文字「F」に関する比率(q/p=x6/x5)が所定の閾値TH2よりも大きい場合には、注目文字「F」と当該注目文字の直前の文字「E」との両文字を含む小領域(たとえば「ABCDEF」に対応する領域)と、当該注目文字の直後の文字(「G」)を含む小領域(たとえば「G....」に対応する領域)とは、互いに異なる部分領域として抽出される。換言すれば、同一行内における文字列「ABCDEF」と文字列「G...」との両者が当該両者の間の有意な空白によって、2つの小領域に区分される。
以上のような変形例に係る動作によっても、1行内の各小領域が、有意な空白部分によって互いに分離され、部分領域230として抽出される、そして、当該各部分領域230について上記第1実施形態と同様の動作が行われればよい。
<第2実施形態の変形例2>
あるいは、1行内の前後の文字のサイズの相違を用いて、1行内の各小領域が互いに分離され各部分領域230として抽出されるようにしてもよい。詳細には、文字領域210における注目行に関して、当該注目行内における注目文字のサイズと当該注目文字の直後の文字のサイズとが所定程度を超えて異なる場合には、注目文字を含む小領域と当該注目文字の直後の文字を含む小領域とが互いに異なる部分領域として抽出されるようにしてもよい。
図12および図13は、このような手法について説明する図である。
図12の左側においては、スキャン画像200の文字領域210における或る1つの行(文字列「ABCDEFGHIJKLM」を有する行)が示されている。また、図13においては、当該行が拡大されて示されている。ここでは、文字列「ABCDEF」のフォントサイズと文字列「GHIJKLM」のフォントサイズとが大きく異なっている状況を想定する。
抽出部65は、文字領域における複数行のうちの注目行に関して、当該注目行内における注目文字のサイズhpと当該注目文字の直後の文字のサイズhqとを算出する。なお、各文字のサイズ(ここでは、文字の高さ方向の大きさ(文字の高さ))の算出手法については、後述する。
注目行内における注目文字のサイズhpと注目文字の直後の文字のサイズhqとが所定程度を超えて異なると判定される場合には、抽出部65は、当該注目文字を含む領域と当該注目文字の直後の文字を含む領域との2つの小領域を互いに異なる部分領域として抽出する。換言すれば、当該注目文字と当該注目文字の直後の文字とは、互いに異なる部分領域に属すると判定される。
より具体的には、値hqの値hpに対する比の値(hq/hp)が所定の閾値TH3(たとえば210%)より大きい場合、あるいは、当該比の値の逆数(hp/hq)が所定の閾値TH3(たとえば210%)より大きい場合には、注目文字のサイズと当該注目文字の直後の文字のサイズとが所定程度を超えて異なっていると判定される。逆に、当該比の値(hq/hp)が所定の閾値TH3より小さく且つ当該比の値の逆数(hp/hq)も所定の閾値TH3より小さい場合には、注目文字のサイズと当該注目文字の直後の文字のサイズとは所定程度を超える程度には異なっていない、と判定される。このような処理が、第1行内の複数の文字に関して、一方側(たとえば左側)から他方側(たとえば右側)に向かう順序で順次に実行される。その結果、フォントサイズの相違が存在する場合には、当該フォントサイズの変更位置で区分される複数の小領域が抽出される。なお、所定の閾値TH3を適宜に定めることにより、同じフォントサイズの「大文字」と「小文字」とを適切に同一フォントサイズの文字として認識しつつ、そのフォントサイズが大きく異なる2つの文字を、異なるフォントサイズの文字として適切に認識することが可能である。
注目文字「A」に関する上記の比率(hq/hp=h2/h1)およびその逆比(hp/hq=h1/h2)の双方が所定の閾値TH3よりも小さい場合には、当該注目文字「A」とその直後の文字「B」とは同一の部分領域に属すると判定される。同様の動作が注目文字「B」〜「E」に関しても実行される。これにより、6つの文字「ABCDEF」は同一の部分領域に属すると判定される。
一方、注目文字「F」に関する比率(hq/hp=h7/h6)が所定の閾値TH3よりも大きい場合、あるいは、その逆比(hp/hq=h6/h7)が所定の閾値TH3よりも大きい場合には、注目文字「F」とその直後の文字「G」との境界で、1行内の領域が区分される。具体的には、注目文字「F」を含む小領域(たとえば「ABCDEF」に対応する領域)と、当該注目文字の直後の文字「G」を含む小領域(たとえば「G....」に対応する領域)とは、互いに異なる部分領域230として抽出される。換言すれば、同一行内における文字列「ABCDEF」と文字列「G...」との両者が当該両者の間の文字サイズの差異によって、2つの小領域に区分される。
以上のような変形例に係る動作によっても、1行内の各小領域が、フォントサイズの相違に応じて互いに分離され、互いに異なる部分領域230として抽出される、そして、当該各部分領域230について上記第1実施形態と同様の動作が行われればよい。
なお、各文字の文字大きさ(高さ方向の大きさ)hは、たとえば次のようにして求められる。
まず、第2実施形態と同様にして、抽出部65は、所定数以上の黒画素数を有する水平ラインが存在する範囲(Y方向の範囲)を、1行の文字列の範囲V(文字列の高さ方向における範囲)として認識する。そして、Y方向における存在範囲Vに対応する矩形領域(X方向に伸びる帯状領域)が1行の文字列の存在領域として認識される。たとえば、図13に示すように、文字列「GHI...」の上端から文字列「ABC...」の下端までのY方向における存在範囲Vに対応する矩形領域(X方向に伸びる帯状領域)が1行の文字列の存在領域として認識される。
次に、第2実施形態と同様に、当該1行の文字列の存在領域(X方向に伸びる帯状領域)内における、各文字の存在領域(各文字の幅方向における存在範囲W)を求める。
そして、1行の文字列のY方向の範囲Vに対応する当該帯状領域において、各文字の幅方向(X方向)における存在範囲Wごとに、各水平ラインの黒画素数を求めることにより、Y方向における文字の存在範囲がさらに検出される。たとえば、存在範囲W内の或る水平ラインの黒画素数が所定数を超える場合には、当該水平ラインは、文字の存在範囲を構成するラインであると判定される。そして、当該存在範囲のY方向の長さ(当該存在範囲を構成する複数の水平ラインのうち最も下側のラインのY方向位置と最も上側のラインのY方向位置との差)が当該文字のサイズ(高さ方向の大きさ)hとして求められる。
図13に示すように、文字「A」の幅方向の存在範囲Wにて水平ラインの黒画素数が所定数を超えるY方向範囲が位置y2から位置y3に至る範囲であるときには、当該範囲が文字「A」の縦方向における存在範囲であると判定される。そして、この存在範囲のY方向の大きさ(位置y2と位置y3との距離)が当該文字「A」のサイズ(高さ方向の大きさ)h1として算出される。その他の文字「B]〜「F」のサイズ(高さ方向の大きさ)h2〜h6についても同様である。
また、文字「G」の幅方向の存在範囲Wにて水平ラインの黒画素数が所定数を超えるY方向範囲が位置y1から位置y3に至る範囲であるときには、当該範囲が文字「G」の縦方向における存在範囲であると判定される。そして、この存在範囲のY方向の大きさ(位置y1と位置y3との距離)が当該文字「G]のサイズ(高さ方向の大きさ)h7として算出される。その他の文字「H]〜「M」のサイズ(高さ方向の大きさ)についても同様である。
なお、ここでは、文字のサイズとして、文字の高さ方向の大きさ(高さ)が考慮されているが、これに限定されず、文字の幅方向の大きさ(幅)が文字のサイズとして考慮されるようにしてもよい。
<第2実施形態の変形例3>
あるいは、1行内の前後の文字のY方向の位置の相違を用いて、1行内の各小領域が、互いに分離されて各部分領域230として抽出されるようにしてもよい。詳細には、文字領域210における注目行に関して、当該注目行内における注目文字の行方向に垂直な方向(Y方向)における位置と当該注目文字の直後の文字のY方向における位置とが所定程度を超えてずれている場合には、当該注目文字を含む小領域と当該注目文字の直後の文字を含む小領域とが、互いに異なる部分領域として抽出されるようにしてもよい。
図14および図15は、このような手法について説明する図である。
図14の左側においては、スキャン画像200の文字領域210内の或る1つの行(文字列「ABCDEFGHIJKLM」を有する行)が示されている。また、図15においては、当該行が拡大されて示されている。ここでは、文字列「ABCDEF」のY方向位置と文字列「GHIJKLM」のY方向位置とがずれている状況を想定する。
抽出部65は、文字領域における複数行のうちの注目行に関して、当該注目行内における注目文字のY方向における位置ypと当該注目文字の直後の文字のY方向における位置yqとを算出する。なお、各文字のY方向における位置yp,yq(たとえば、y13,y14)は、上述の位置y1,y2,y3等と同様にして取得されればよい。
注目行内における注目文字の行方向に垂直な方向(Y方向)における位置ypと当該注目文字の直後の文字のY方向における位置yqとが所定程度を超えてずれている場合には、抽出部65は、当該注目文字を含む小領域と当該注目文字の直後の文字を含む小領域とを、互いに異なる部分領域として抽出する。なお、両位置yp,yqが所定程度を超えて互いにずれているか否かは、たとえば、両位置yp,yqの差異Δy(=|yp−yq|)が所定の閾値TH4よりも大きい(Δy>TH4)か否かに応じて判定されればよい。
注目文字「A」のY方向位置(yp)と当該注目文字の直後の文字「B」のY方向位置(yq)とが所定程度を超える程度にはズレていないと判定される場合(たとえば、yp=yq=y13の場合)には、当該注目文字「A」とその直後の文字「B」とは同一の部分領域に属すると判定される。同様の動作が注目文字「B」〜「E」に関しても実行される。これにより、6つの文字「ABCDEF」は同一の部分領域に属すると判定される。
一方、注目文字「F」のY方向位置(yp=y13)と当該注目文字の直後の文字「G」のY方向位置(yq=y14)とが所定程度を超えてずれている(|y13−y14|=Δy>TH4)と判定される場合には、注目文字「F」を含む小領域(たとえば「ABCDEF」に対応する領域)と、当該注目文字の直後の文字「G」を含む小領域(たとえば「G....」に対応する領域)とは、互いに異なる部分領域として抽出される。換言すれば、同一行内における文字列「ABCDEF」と文字列「G...」との両者が、Y方向位置の相違に基づいて、2つの小領域に区分される。
このようにして、1行内の各小領域が、各文字の当該1行内におけるY方向位置の相違に応じて互いに分離され、互いに異なる部分領域230として抽出される。そして、当該各部分領域230について上記第1実施形態と同様の動作が行われればよい。
なお、上記第1実施形態および第2実施形態ならびにそれらの変形例等における各部分領域230は、その先頭文字よりも前側(左側)の空白領域を除外して抽出されることが好ましい。たとえば、文字列「ABCDEF」に係る部分領域230は、先頭文字「A」よりも前側(左側)の空白領域を除外して抽出されることが好ましい。他の部分領域230についても同様である。これによれば、アプリケーション120に送信する画像データのデータ量を削減すること等が可能である。また、当該各部分領域230は、その後端文字よりも後ろ側(右側)の空白領域を除外して抽出されることが好ましい。
<3.第3実施形態>
上記各実施形態等においては、複数の部分領域230のうち、或る部分領域に関するOCR処理の依頼処理とそのOCR処理結果の受信処理とが終了した後に、次の部分領域に関するOCR処理の依頼処理とそのOCR処理結果の受信処理とが行われる態様が例示されている。
この第3実施形態においては、複数の部分領域230に関するOCR処理の依頼処理等が(複数の部分領域230に関して)並列的に行われる態様について説明する。具体的には、或る部分領域に関するOCR処理の依頼処理等が行われた後に、そのOCR処理結果の受信処理を待たずに、次の部分領域230に関するOCR処理の依頼処理等が行われる態様を例示する。
図16は、第3実施形態に係る動作を示す図である。以下、第1実施形態との相違点を中心に説明する。
図16においては、スキャン画像200の文字領域210における3つの行に関する3つの部分領域230が示されている。ここでは、文字領域210の第1行に文字列「ABCDEF」が存在し、文字領域210の第2行に文字列「GHIJ」が存在し、文字領域210の第3行に文字列「KLMNOPQRST」が存在する状況を想定する。
この第3実施形態においては、外部端末50の電子文書生成アプリケーション110は、原稿のスキャン画像200をMFP10から取得するなどの処理(ステップS11)を行った後、複数の部分領域230に関する処理(ステップS12〜S16(図6参照)の処理)を並列的に実行する。
具体的には、電子文書生成アプリケーション110は、スキャン画像200から所定単位の複数の部分領域230を抽出する(ステップS12参照)。なお、複数の部分領域230は、第1実施形態のように行単位で抽出されてもよく、あるいは、第2実施形態等のように1行内で更に区分された小領域単位で抽出されてもよい。図16では、1行内で更に区分された小領域単位で抽出される様子が示されている。また、図16では、各部分領域230は、その先頭文字よりも前側(左側)の空白領域とその後端文字よりも後ろ側(右側)の空白領域とを除外して抽出される様子が示されている。
また、電子文書生成アプリケーション110は、当該複数の部分領域230のそれぞれの位置を検出して格納部55に格納する(ステップS13参照)。このとき、複数の部分領域230のそれぞれの位置が、各複数の部分領域230の識別情報(ここでは識別コード)とともに格納部55に格納される。すなわち、格納部55において、各部分領域230と当該各部分領域230を互いに識別する識別コードと当該各部分領域230の座標位置(X,Y)とを関連付けた関連付け情報が格納される。
たとえば、電子文書生成アプリケーション110は、最初の部分領域230a(文字列「ABCDEF」に対応する部分画像)に対して識別コード「001」を付与するとともに、当該識別コード「001」に関連付けて当該最初の部分領域230aの位置情報(座標位置(X1,Y1)等)(図16参照)を格納部55に格納する。また、次の部分領域230b(文字列「GHIJ」に対応する部分画像)に対して識別コード「002」が付与されるとともに、当該部分領域230bの位置情報(座標位置(X2,Y2)等)が識別コード「002」に関連付けて格納部55に格納される。同様に、さらに次の部分領域230cに対して識別コード「003」が付与されるとともに、当該部分領域230cの位置情報(座標位置(X3,Y3)等)が識別コード「003」に関連付けて格納部55に格納される。
また、電子文書生成アプリケーション110は、複数の部分領域230に関する画像を複数の部分領域230のそれぞれに対する処理指示(OCR処理指示等)とともに、クラウドサーバ90のアプリケーション120(OCRアプリケーション)に送出する(ステップS14参照)。
このとき、この第3実施形態においては、複数の部分領域230の画像データ(部分画像データとも称する)自体ではなく、複数の拡張部分画像236(次述)の画像データ(拡張部分画像データとも称する)が、複数の部分領域230に関する画像として送出される。複数の拡張部分画像データは、複数の部分領域230の画像データ(部分画像データ)のそれぞれに対して、当該複数の部分領域230を互いに識別する各識別情報(詳細には、識別コード(識別子))を画像化して付加して生成される画像データである。換言すれば、部分領域230の画像(231)と当該部分領域230の識別情報を画像化した識別情報画像(232)との合成画像の画像データが、拡張部分画像236の画像データとして生成される。
たとえば、部分領域230aに関しては、その識別コード(識別子)「001」を可視化した画像232a(文字列「001」を示す画像(文字画像))と当該部分領域230aの画像231a(文字列「ABCDEF」を示す画像(文字画像))との合成画像に係る画像データ(図16参照)が、「拡張部分画像」(236a)の画像データとして生成される。
また、部分領域230bに関しては、その識別コード(識別子)「002」を可視化した画像232b(文字列「002」を示す画像(文字画像))と当該部分領域230bの画像231b(文字列「GHIJ」を示す画像(文字画像))との合成画像に係る画像データが、「拡張部分画像」(236b)の画像データとして生成される。
同様に、部分領域230cに関しては、その識別コード「003」を可視化した画像232c(文字列「003」を示す画像)と当該部分領域230cの画像231c(文字列「KLM...」を示す画像)との合成画像に係る画像データが、「拡張部分画像」(236c)の画像データとして生成される。
なお、ここでは、各部分領域230の各画像232は各画像231に対して左側(前寄り)にずれて配置される。たとえば、部分領域230aの画像232aは、部分領域230aの画像231bに対して左側(前寄り)にずれて配置される。他の部分領域についても同様である。ただし、これに限定されず、たとえば各部分領域230の各画像232は各画像231に対して右側(後ろ寄り)にずれて配置されてもよい。
外部端末50(電子文書生成アプリケーション110)は、このような複数の拡張部分画像236の画像データ(拡張部分画像データ)等を、複数の部分領域230に関する画像として送出する。
クラウドサーバ90(アプリケーション120)は、上述の処理指示と複数の部分領域230に関する画像データとを受け取る(受信する)と、当該処理指示および画像データに基づいてOCR処理を実行する。そして、その処理結果を外部端末50(電子文書生成アプリケーション110)に送信する。
外部端末50(電子文書生成アプリケーション110)は、アプリケーション120からの当該各処理結果を受け取る(ステップS15)と、当該各処理結果からそれぞれ各識別情報を抽出する。そして、抽出された識別情報に基づいて、当該各処理結果が複数の部分領域230のうちのいずれの部分画像データに関する処理結果であるか、が判定される。すなわち、各処理結果に対応する各部分領域が各識別情報に基づいてそれぞれ識別される。
さらに、外部端末50は、各処理結果から各識別情報をそれぞれ除いたテキスト文字列(各部分領域230に含まれていた元の文字列)を、識別された各部分領域の検出位置に配置する(ステップS16参照)。このとき、各部分領域230の識別情報に関連付けて格納部55に格納されていた座標情報(各部分領域230の検出位置(X,Y))が、格納部55から取り出されて利用される。
このように、格納部55に格納されている関連付け情報に基づいて、各処理結果に対応する部分領域(対応部分領域とも称する)の識別処理(特定処理)および位置情報の取得処理等が行われる。
たとえば、外部端末50は、受信した処理結果250a(「001ABCDEF」)に含まれている識別コード「001」を当該処理結果250aから抽出する。そして、抽出された識別情報に基づいて、当該各処理結果が複数の部分領域230のうちのいずれの部分画像データに関する処理結果であるか、が判定される。受信した処理結果「001ABCDEF」に識別コード「001」が含まれている場合には、当該処理結果(OCR処理結果)は、識別コード「001」に対応する部分領域230aに対するものであると判定される。すなわち、当該処理結果の対応部分領域は部分領域230aである旨が判定(識別)される。そして、処理結果の文字列「001ABCDEF」から識別情報「001」を除いたテキスト文字列「ABCDEF」が、識別された部分領域230aの検出位置(X1,Y1)に配置される。このとき、識別コード「001」に関連付けて格納部55に格納されていた座標情報(X1,Y1)が、部分領域230aの検出位置として、格納部55(関連付け情報)から取り出されて利用される。
また、外部端末50は、受信した処理結果250b(「002GHIJ」)に含まれている識別コード「002」を当該処理結果250bから抽出する。受信した処理結果「002GHIJ」に識別コード「002」が含まれている場合には、当該処理結果(OCR処理結果)は、識別コード「002」に対応する部分領域230bに対するものであると判定される。そして、処理結果の文字列「002GHIJ」から識別情報「002」を除いたテキスト文字列「GHIJ」が、識別された部分領域230bの検出位置(X2,Y2)に配置される。このとき、識別コード「002」に関連付けて格納部55に格納されていた座標情報(X2,Y2)が、部分領域230bの検出位置として、格納部55から取り出されて利用される。
このような動作が複数の部分領域230(230a,230b,230c)について行われることによって、電子文書500(ここではサーチャブルPDF)が生成される。
以上の動作によれば、第1実施形態等と同様の効果を得ることが可能である。
また、この第3実施形態においては、複数の部分領域230に対する識別情報が利用されるので、複数の部分領域230に関する処理結果を良好に互いに識別することが可能である。特に、複数の部分領域230に対するOCRの依頼処理等および当該依頼処理等に対する処理結果の送受信動作が、複数の230に関して並列的に行われる場合であっても、複数の部分領域230に関する処理結果を良好に互いに識別することが可能である。また、複数の部分領域230に関するOCR処理をアプリケーション120により並列的に行うことによって、高速化を図ることも可能である。
<4.第4実施形態>
第4実施形態は、第3実施形態の変形例である。以下、第3実施形態との相違点を中心に説明する。
上記第3実施形態においては、各部分領域230の識別情報(識別コード)が画像化されてアプリケーション120に送信される態様が例示されている。一方、この第4実施形態においては、各部分領域230の識別情報(識別コード)がファイル名として付加されてアプリケーション120に送信される態様が例示される。なお、第4実施形態においても、第3実施形態と同様に、複数の部分領域230に対するOCRの依頼処理等および当該依頼処理等に対する処理結果の送受信動作が、複数の部分領域230に関して並列的に行われる。
図17は、第4実施形態に係る動作を示す図である。
図17においても、図16と同様、スキャン画像200の文字領域210における3つの行に関する3つの部分領域230が示されている。
この第4実施形態においても、外部端末50の電子文書生成アプリケーション110は、原稿のスキャン画像200をMFP10から取得した後、複数の部分領域230に関する処理(ステップS12〜S16(図6参照)の処理)を並列的に実行する。
複数の部分領域230の抽出処理(ステップS12参照)、および当該複数の部分領域230のそれぞれの位置を検出して格納部55に格納する処理(ステップS13参照)は、第3実施形態と同様である。なお、上述のように、複数の部分領域230は、行単位で抽出されてもよく、あるいは、1行内で更に区分された小領域単位で抽出されてもよい。図17では、1行内で更に区分された小領域単位で抽出される様子が示されている。また、図17では、各部分領域230は、その先頭文字よりも前側(左側)の空白領域とその後端文字よりも後ろ側(右側)の空白領域とを除外して抽出される様子が示されている。
また、電子文書生成アプリケーション110は、複数の部分領域230に関する画像を複数の部分領域230のそれぞれに対する処理指示(OCR処理指示等)とともに、クラウドサーバ90のアプリケーション120(OCRアプリケーション)に送出する(ステップS14参照)。
このとき、第4実施形態においては、第1実施形態と同様に、複数の部分領域230の画像231を示す画像データ(部分画像データとも称する)自体が、複数の部分領域230に関する画像データとして送出される。ただし、この第4実施形態においては、各画像データは、固有のファイル名が付されたデータファイルとしてそれぞれ送出される。当該固有のファイル名としては、互いに異なる識別情報(識別コード)を含む名称(たとえば、「001.pdf 」、「002.pdf 」等)が付される。
なお、この第4実施形態においても、第3実施形態と同様に、前の部分領域230に関する処理結果の受信を待たずに、次の部分領域230の処理依頼がその画像データ(データファイル)とともに随時送信される。
クラウドサーバ90(アプリケーション120)は、複数の部分領域230に関する複数のデータファイルを受信すると、当該複数のデータファイル(画像データ)に対するOCR処理を行う。そして、アプリケーション120は、それぞれの処理結果(OCR結果)を含む複数の新たなデータファイル(返信用データファイルとも称する)を、電子文書生成アプリケーション110に送信する。各返信用データファイルには、電子文書生成アプリケーション110から処理依頼とともに受信した各画像データファイルに付されていた識別情報を含むファイル名称が付される。換言すれば、各返信用データファイルのファイル名は、元の複数のデータファイルのうち、対応するデータファイルのファイル名に付されていた識別情報をその一部に有している。
たとえば、電子文書生成アプリケーション110から受信した元のデータファイル「001.pdf」に対する返信用データファイルにおいては、当該返信用データファイルのファイル名として、「001out.txt」が付される。ファイル名「001out.txt」は、複数の返信用データファイルに共通の付加要素「out」と元の各データファイルに固有の識別情報「001」とを有し且つそのファイル拡張子を「txt」に変更した名称である。同様に、元のデータファイル「002.pdf 」に対する返信用データファイルにおいては、当該返信用データファイルのファイル名として、「002out.txt」が付される。
電子文書生成アプリケーション110は、このようなファイル名称を有する各返信用データファイル(処理結果)をアプリケーション120から受け取る(受信する)(ステップS15参照)と、当該各返信用データファイルに含まれている各識別情報を抽出する。そして、各処理結果に対応する各部分領域230が、各識別情報に基づいてそれぞれ識別される。その後、外部端末50は、各データファイルに含まれるテキスト文字列(各部分領域230に含まれていた元の文字列の認識結果)を、識別された各部分領域230の検出位置に配置する。
たとえば、電子文書生成アプリケーション110は、ファイル名「001out.txt」を有する返信用データファイルを受信すると、当該ファイル名から、共通付加要素「out」とファイル拡張子「txt」と区切り記号「.」とを除いた元の識別コード「001」を抽出する。そして、格納部55に格納されている関連付け情報(特に、識別コード「001」と部分領域230aとその座標位置(X1,Y1)とを関連付けて格納されている情報)に基づいて、抽出された識別コード「001」に部分領域230aが対応することが判定される。すなわち、ファイル名「001out.txt」の処理結果(返信用データファイル)は、部分領域230aに対する処理結果である旨が識別される。また、当該返信用データファイルに含まれるテキストデータ(テキスト文字列「ABCDEF」)が、格納部55内の上記情報に基づき、(識別結果である)部分領域230aの検出位置(X1,Y1)に配置される。
他の部分領域230b,230cについても同様の処理が行われる。これにより、電子文書500(ここではサーチャブルPDF)が生成される。
以上のような動作によっても、第3実施形態と同様の効果を得ることが可能である。
<5.変形例等>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
たとえば、上記各実施形態等においては、スキャン対象の原稿として、横書き文書が例示されているが、これに限定されず、縦書き文書であってもよい。換言すれば、文書内の各行は、横方向に伸びるものであってもよく、縦方向に伸びるものであってもよい。
また、上記各実施形態等においては、透明テキスト付きPDF(元の文字画像に重畳して、OCR結果の文字列が非表示状態で埋め込まれているPDF形式のファイル)(サーチャブルPDF等)が電子文書500として生成されているが、本発明はこれに限定されず、次のような電子文書500が生成されてもよい。
具体的には、最終的な電子文書500において、元の文字画像(文字領域210の画像)が削除されるとともに、OCR結果のテキストデータが可視化された状態で当該元の文字画像の代わりに表示されてもよい。
より詳細には、スキャン画像200における文字領域210の各部分領域230に係る画像が削除され、当該各部分領域230の画像に代えて、各部分領域230についての処理結果に係るテキスト情報(テキスト文字列)が当該各部分領域230のそれぞれの検出位置に「表示状態」で埋め込まれることによって、電子文書500が生成されるようにしてもよい。すなわち、文字画像に代えてテキスト文字列を有する電子文書500が生成されるようにしてもよい。
また、上記各実施形態等においては、依頼元装置から別装置に対して(換言すれば、依頼元装置で実行されるアプリケーションから別装置で実行される別のアプリケーションに対して)OCR処理が依頼され、当該OCR処理結果等を用いてテキストデータ付き電子文書が生成される態様が例示されている。換言すれば、上記各実施形態等においては、アプリケーション120は、OCR処理を行うOCR処理アプリケーションである態様が例示されている。
しかしながら、本発明はこれに限定されず、OCR処理結果に基づく「翻訳処理」が更に行われ、その翻訳処理結果を用いてテキストデータ付き電子文書が生成されるようにしてもよい。換言すれば、アプリケーション120は、OCR処理と当該OCR処理の結果に対する翻訳処理とを含む複数の処理を行う複合的なアプリケーションであってもよい(図18参照)。
より詳細には、電子文書生成アプリケーション110とは別のアプリケーション120において、OCR処理と当該OCR処理の結果に対する翻訳処理とを含む複数の処理が行われ、当該各複数の処理に関する処理結果が電子文書500に反映されるようにしてもよい。このとき、最終的な処理結果(すなわち翻訳結果)は、たとえば、上記のように各部分領域230における文字画像に代えて表示されればよい。換言すれば、各部分領域230における文字画像が削除された上で、当該各部分領域230に関する翻訳結果に係るテキスト文字列が、当該各部分領域230の検出位置に「表示状態」で埋め込まれるようにすればよい。
図18は、このような変形例を示す図である。図18においては、部分領域230内の「Good Morning」の文字画像に対するOCR処理がアプリケーション120で行われてその処理結果(テキスト文字列「Good Morning」)が認識され、更にその和訳処理が行われている。そして、和訳処理結果(「おはよう」)に係るテキストデータ(テキスト情報)250が、アプリケーション120から電子文書生成アプリケーション110へと返信され、当該テキストデータ250が元の部分領域230の位置に配置されて電子文書500が生成されている。このような処理が行われるようにしてもよい。
なお、これに限定されず、各部分領域230における文字画像(原語による文字画像)(「Good Morning」)を残したまま、当該各部分領域230に関する翻訳結果に係るテキスト文字列(「おはよう」)が、当該各部分領域230の検出位置に「非」表示状態で埋め込まれる(配置される)ようにしてもよい。
また、図18に示す変形例では、OCR処理と翻訳処理とがアプリケーション120によって実行されているが、本発明はこれに限定されない。たとえば、OCR処理が電子文書生成アプリケーション110によって実行され、翻訳処理がアプリケーション120によって実行されるようにしてもよい。
また、上記各実施形態等においては、PDF形式の電子文書が例示されているが、本発明はこれに限定されず、他の各種の形式(XPS形式等)の電子文書が生成されるようにしてもよい。
また、上記各実施形態等においては、文字領域210において1行単位もしくはそれよりも小さな単位で複数の部分画像230が抽出され送信される態様が例示されているが、これに限定されない。たとえば、複数行に跨がる領域単位(2行単位等)で複数の部分画像230が抽出されて送信されるようにしてもよい。換言すれば、文字領域210における複数行の文字列に係る領域を単位として複数の部分領域230が抽出され送信されるようにしてもよい。このように、複数の部分領域230は、文字領域における所定数行(単一行あるいは複数行)の文字列に係る領域を単位として抽出され得る。
あるいは、スキャン画像200内に含まれる文章が複数の段落に跨がる場合において、スキャン画像200の文字領域210における単一の段落に係る領域を単位として複数の部分画像230が抽出され送信されるようにしてもよい。換言すれば、文字領域の段落ごとに区分された複数の部分領域が(段落単位で)抽出され送信されるようにしてもよい。これによれば、スキャン画像における各段落の位置とテキストデータの各段落(特に第2段落以降の各段落)の埋め込み位置とがずれることを抑制ないし回避することが可能である。
また、上記各実施形態等においては、電子文書生成アプリケーション110とアプリケーション120との間で直接的にデータの授受が行われているが、これに限定されず、更に別のアプリケーションを経由して電子文書生成アプリケーション110とアプリケーション120との間でのデータの授受が行われるようにしてもよい。たとえば、外部端末50にて実行されるインターフェイスアプリケーション130(不図示)を経由して、電子文書生成アプリケーション110とアプリケーション120との間で各種のデータ(スキャン画像およびOCR処理結果等)が授受されるようにしてもよい。
また、上記各実施形態等においては、OCR処理等を行うアプリケーション120は、外部端末50の外部のサーバであるクラウドサーバ90にインストールされているが、これに限定されない。たとえば、アプリケーション120は、外部端末50にインストールされるようにしてもよい。換言すれば、アプリケーション120は、電子文書生成アプリケーション110とともに外部端末50にインストールされてもよい。そして、同じ外部端末50にインストールされた2つのアプリケーション110,120の相互間において、上記各実施形態等と同様の動作が行われるようにしてもよい。
また、上記各実施形態等においては、電子文書生成アプリケーション110は、外部端末50にインストールされているが、これに限定されない。たとえば、電子文書生成アプリケーション110は、MFP10にインストールされるようにしてもよい。そして、MFP10にインストールされた電子文書生成アプリケーション110とクラウドサーバ90にインストールされた汎用アプリケーション120との間で、上記各実施形態等における処理(具体的には、外部端末50にインストールされた電子文書生成アプリケーション110とクラウドサーバ90にインストールされた汎用アプリケーション120との間での処理)等と同様の処理が、行われるようにしてもよい。すなわち、外部端末50を用いずに、MFP10とクラウドサーバ90との間で直接、複数の部分領域230に関するOCR処理依頼および処理結果の送受信動作等が行われ、MFP10によって電子文書500が生成されるようにしてもよい。