以下、添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
<図1の説明>
図1は、本実施形態に係るシステムの構成例を示す図である。
図1に示すように、情報処理装置100と情報処理装置200と複合機(画像処理装置)300は、ネットワーク400を介して相互に通信可能に接続されている。
複合機300は、スキャナ機能や印刷機能等を備えたいわゆるMFP(Multifunction Peripheral)などの画像処理装置であって、情報処理装置からの要求に応じて印刷処理を実行することや、帳票(紙)などを読み取って(スキャンして)生成した電子化したデータ(電子データ)を情報処理装置に送信することが可能である。
情報処理装置は、ネットワーク400を介して複合機300に帳票などの印刷要求を行うことが可能である。また、情報処理装置は、帳票などのテンプレート(フォームデータ)を作成、編集する機能や、テンプレートを作成する際に入力するフォームの属性情報(フォーム定義テーブル(図7)内のデータであるフォーム定義情報)やオブジェクトの属性情報(オブジェクト定義テーブル(図8)内のデータであるオブジェクト定義情報)から、OCRするために設定するOCR定義情報(図10内のデータ)を生成する機能などを備えている。
また、複合機から送信される、ユーザにより記載された帳票の電子データを表示する機能も備えている。図13は、複合機300により読み取られた、ユーザにより記載された帳票のOCR処理対象の領域を示す表示画面の一例を示す図である。図13に示すように、1302、1303、1304、1305、1306、1307、1308の領域は、OCR処理対象の領域を示している。
<図2の説明> 以下、図2を用いて、図1に示した情報処理装置100及び200のハードウェア構成について説明する。
図2は、図1に示した情報処理装置100及び200のハードウェア構成を示すブロック図である。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PC(情報処理装置)の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、CRTディスプレイ(CRT)210等の表示器(表示部)への表示を制御する。なお、図2では、CRT210と記載しているが、表示器はCRTだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク400を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられるファイル及び各種テーブル等も、外部メモリ211に格納されている。
<図3の説明> 図3は、図1に示した情報処理装置のソフトウェア構成の一例を示したブロック図である。
外部メモリ211には、フォームエディタソフトウェアプログラム301と、OCRソフトウェアプログラム318と、フォーム定義テーブル(図7)と、オブジェクト定義テーブル(図8)と、下書きとなるイメージデータ312と、フォームのOCR定義テーブル(図9)と、オブジェクトのOCR定義テーブル(図10)と、辞書テーブル(図17)と、OCR処理するために用いる各種辞書(316)と、OCRエンジンによる認識処理結果が出力された出力結果317と、出力データ(図11)とが記憶される。
フォームエディタソフトウェアプログラム301(以下、フォームエディタソフトとも言う)は、帳票などのフォームのテンプレートを作成又は編集するために用いられるソフトウェアである。
フォームエディタソフト301は、ユーザからの指示に応じて、帳票などのフォームのテンプレートのデータや、当該テンプレートの各種属性情報を入力するフォームデータ・属性入力部302と(図5)、テンプレート内に配置する各種オブジェクトのデータや当該オブジェクトの各種属性情報を入力するオブジェクトデータ入力・属性入力部303と(図6)、302や303で入力されたデータを用いてOCR定義情報(図10)を生成するOCR定義情報生成部304と、テンプレートの下書きとなるイメージデータ(テンプレートとオーバーレイするデータ)を生成するイメージデータ生成部305と、OCR定義情報生成部304で生成されたOCR定義情報をOCRエンジンに設定するためにOCRソフトウェアが読み込む所定の記憶領域に当該OCR定義情報を記憶するOCR定義情報設定部306と、OCR処理(文字認識処理)を実行した結果(認識結果)を出力する出力部307と、を備えている。なお、イメージデータ生成部305で生成されたイメージデータは、記憶部308に記憶される。
ここで、302で入力されるテンプレート(フォーム)のデータや、当該テンプレートの各種属性情報はフォーム定義テーブル(図7)310に記憶され、303で入力される各種オブジェクトのデータや当該オブジェクトの各種属性情報は、オブジェクト定義テーブル(図8)311に記憶される。このフォーム定義テーブル310とオブジェクト定義テーブル311内のデータは、テンプレートとなるフォーム(様式)を構成(定義)するためのデータ309である。
OCR定義情報生成部304は、このように記憶部308に記憶されたフォーム定義テーブル(図7)やオブジェクト定義テーブル(図8)内のデータからOCR定義情報を生成する。
そして、OCR定義情報設定部306は、生成されたOCR定義情報を、記憶部308に記憶されたオブジェクトのOCR定義テーブル315に記憶する。
これらフォームのOCR定義テーブル314及びオブジェクトのOCR定義テーブル315は、OCR処理(文字認識処理)を実行するために用いられるデータ313である。
記憶部308は、外部メモリ211等の記憶手段であり、OCR処理で用いる各種辞書316が記憶されている。
OCRソフトウェアプログラム318(OCRソフトウェアとも言う)は、記憶部308に記憶されたフォームのOCR定義テーブル314とオブジェクトのOCR定義テーブル315内のOCR定義情報を読み込む読込部319と、読込部319で読み込んだデータ(OCR定義情報)を用いて文字認識処理を行う文字認識処理部320(OCRエンジン)と、文字認識処理部320で認識された結果を記憶部308に記憶させるべく出力する出力部321とを備えている。
ここで、出力部321は、文字認識処理部320での認識結果を、CRT210などの表示部に表示するために出力することや、また、複合機300に印刷させるべく出力することが可能である。
<図14の説明> 次に、図14のフローチャートを参照して、フォームエディタソフトウェア301が実行する処理を説明する。
図14は、本発明のシステムにおける第1の制御処理手順の一例を示すフローチャートであり、図3に示すフォームエディタソフトウェア301による処理に対応する。すなわち、情報処理装置100のCPU201がROM202又は外部メモリ211からRAM203に読み出したプログラムを実行することにより実現される。また、図中、S1401〜S1406は各ステップを示す。
まず、情報処理装置100のCPU201は、フォームエディタソフトウェアプログラムを実行すると、図4に示すフォームエディター画面400を表示部210に表示する。 図4は、フォームエディター画面400の一例である。
次に、情報処理装置100のCPU201は、ユーザから帳票などのフォームの入力を受け付ける。具体的には、情報処理装置100のCPU201は、ユーザにより設定ボタンが押下されたことを検知すると、図5に示す帳票フォームのプロパティ画面が表示される。
図5は、フォームの属性情報を入力するための帳票フォームのプロパティ画面500の一例である。
図5に示す帳票フォームのプロパティ画面500は、帳票のフォーム名(名称)を入力する部501と、出力する用紙の大きさ(サイズ)を入力する部503と、印刷の向きを入力する部507と、グリッドの間隔を入力する部509と、余白を入力する部512と、レイアウトの単位を入力する部517と、OCR処理を行うかを入力する部518とから構成される。この帳票フォームのプロパティ画面500の各部で入力される情報のそれぞれをフォーム(テンプレート)の属性情報として説明する。
ここで、帳票フォームのプロパティ画面500について詳しく説明する。
502は、ユーザによる帳票のフォーム名(名称)の入力を受け付けるテキストボックスである。
また、504は、用紙サイズ(A4など)を選択することができるプルダウンであり、505は、用紙の幅を入力することができるテキストボックスであり、506は、用紙の高さを入力することができるテキストボックスである。 また、508は、印刷の向き(縦か横)を入力することができるプルダウンである。
また、510はグリッドの間隔(高さ)を、511はグリッドの間隔(横)を入力できるテキストボックスである。513、514、515、516は、テンプレートの余白を入力するテキストボックスであり、それぞれテンプレートの上側、下側、左側、右側の余白を入力することができる。
また、517は、レイアウトの単位を入力できるプルダウンであり、たとえば、ミリメートル(mm)などを入力することが可能である。
また、519は、図4に表示されているフォームに対してOCR処理を実行する設定を入力することができるチェックボックスであり、ここにチェックされている場合はOCR処理を実行する設定が入力されることとなる。520は、図4に表示されているフォームに対してOCR処理を実行しない設定を入力することができるチェックボックスである。ここにチェックされている場合はOCR処理を実行しない設定が入力されることとなる。
ここで説明した帳票フォームのプロパティ画面500の各部
に入力された属性情報は、グリッドの間隔や余白などの、フォームを定義するためのデータである。
情報処理装置100のCPU201は、ユーザにより帳票フォームのプロパティ画面500の各部で属性情報が入力され、OKボタン521が押下されると、入力された属性情報はフォーム定義テーブル(図7)に記憶される(ステップS1401)。また、キャンセル522ボタンが押下されると、帳票フォームのプロパティ画面500を閉じる。 図7は、フォームを定義するためのデータが記憶されるフォーム定義テーブルの一例である。
次に、情報処理装置100のCPU201は、フォームエディター画面400に表示されるテンプレート(フォーム)401に、ユーザの指示に応じてオブジェクトを配置して表示する。
具体的には、表示ボタン416がユーザにより押下されると、フィールド一覧画面417を表示する。
この画面には、固定フィールド418や、可変フィールド419などのオブジェクトを配置するためのオブジェクトが表示されている。
ここで、固定フィールドとは、固定の(変更のない)データを出力する領域であり、可変フィールドとは、可変のデータを出力する領域である。ユーザにより固定フィールド418をドラッグアンドドロップしてテンプレート401上に配置すると、たとえば、413のような出力領域をテンプレート上に設定することができる。可変フィールドの設定も固定フィールドと同様に、可変フィールド419をドラッグアンドドロップしてテンプレート401上に配置することで、可変フィールドをテンプレート上に設定することができる。
また、フィールド一覧画面417のOLEフィールド420は、QRコードなどの二次元コードの出力を設定できるオブジェクトであり、可変フィールドと同様、OLEフィールド420をドラッグアンドドロップすることにより、テンプレート401上に配置される。たとえば、414のような出力領域をテンプレート上に設定することができる。ここで、414は、QRコードを出力するための領域として設定された例を示している。
また、ユーザにより、421のオブジェクトが押下され、KB209から文字が入力されることにより、テンプレート401上に文字を直接入力することもできる。 たとえば、403や404、406、407、408、409、410、411は、このようにして文字が入力されている。
405は、チェックボックスのオブジェクトが入力されたものである。405は、ユーザによりオブジェクト422が押下され、テンプレート401が指定されることにより、情報処理装置100のCPU201は、テンプレート401上に405を入力する。また、412に示す「はしご枠」のオブジェクトもこれと同様に入力することが可能である。
次に、情報処理装置100のCPU201は、入力されたオブジェクトがユーザの指示により選択され、ユーザの指示に応じて、選択されたオブジェクトのプロパティ画面600(図6)を表示する。たとえば、ユーザがオブジェクトを選択し、選択された状態で右クリックすることにより表示される「プロパティ」(不図示)が選択されることで、選択されたオブジェクトのプロパティ画面600(図6)が表示される。
そして、表示されたプロパティ画面600(図6)から、ユーザの指示により、当該オブジェクトに対して、オブジェクトの定義を示すデータを入力することが可能である。
図6は、オブジェクトの属性(定義)を入力するためのプロパティ画面の一例である。
図6に示すオブジェクトのプロパティ画面600は、オブジェクトの名称とその種別(種類)を入力する部601と、OCR処理を行うかを入力する部604と、オブジェクトの配置位置とそのサイズを入力する部607,619と、線の属性を入力する部610と、文字の属性を入力する部614と、文字(列)の組み方向が横か縦か、また文字が全角か半角かを入力する出力定義部620と、文字枠が設定されている場合に、その文字枠の行数と桁数とを入力する部623とから構成される。
ここで、オブジェクトのプロパティ画面600について詳しく説明する。
602は、フィールド図形名(名称)を入力するテキストボックスであり、603は、その種別を選択入力できるプルダウンである。ここで種別とは、一例として、図形(四角)、文字、図形(チェックボックス)、文字(丸囲み)、図形(はしご枠)、出力領域(文字)、出力領域(QRコード)などを選択することができる。
図形(四角)とは、たとえば、図4の402にしめすような、テンプレートを四角の図形(線)で囲まれたオブジェクトである。また、文字とは、たとえば、図4の403、404、406、408、410、411に入力されている文字のオブジェクトである。また、図形(チェックボックス)とは、たとえば、図4の405に示すような、チェックボックスとして用いるオブジェクトである。また、文字(丸囲み)とは、たとえば、図4の407や409に示すような、ユーザにより丸囲みされるオブジェクトである。また、図形(はしご枠)とは、たとえば、図4の412に示すような、ユーザにより文字などを入力(記入)されるオブジェクトである。
また、出力領域(文字)とは、たとえば、図4の413に示すような、文字が出力されるオブジェクトである。なお、このオブジェクトに出力される文字は、ユーザの指示により予め、例えば出力データ(図11)として記憶されている。
図11は、出力データの一例を示す図である。
図11には、図4の413の領域(文字エリア)に出力するデータとして「※電子クーポンはこちらからアクセスしてね」という文字データと、図4の414の領域(QRコードを出力するための領域)に出力するデータとして、QRコードのデータ「ABC・・・・jpee3dw」とを示している。
図4のテンプレートの印刷を行う際に、出力データ(図11)のデータを413、414の領域に出力して印刷を行う。そして、印刷した結果を図12に示す。
図12は、テンプレートのOCR領域の表示画面の一例である。
オブジェクトのプロパティ画面600の説明に戻る。 出力領域(QRコード)とは、たとえば、図4の414に示すような二次元コードを出力するためのオブジェクトである。
605は、選択されたオブジェクトに対してOCR処理を実行する設定を入力することができるチェックボックスであり、ここにチェックされている場合は、選択されたオブジェクトに対してOCR処理を実行する設定が入力されることとなる。606は、選択されたオブジェクトに対してOCR処理を実行しない設定を入力することができるチェックボックスである。ここにチェックされている場合は、選択されたオブジェクトに対してOCR処理を実行しない設定が入力されることとなる。
608は、オブジェクトの配置位置の基準位置としての、テンプレートの最も左側からの距離を入力できるテキストボックスであり、609は、テンプレートの最も上側からの距離を入力できるテキストボックスである。
611は、オブジェクトの実線や点線などの線種を選択することができるプルダウンである。また、612は、オブジェクトの線の幅を選択入力することができるプルダウンである。また、613は、オブジェクトの線の色を選択入力することができるプルダウンである。
615は、オブジェクトの文字のフォント(ゴシック体や明朝体など)を入力することができるプルダウンである。また、616は、オブジェクトの文字のスタイル(細字、標準、太文字など)を入力することができるプルダウンである。また、617は、オブジェクトの文字のサイズ(ポイント)を入力することができるプルダウンである。また、618は、オブジェクトの文字の色を入力することができるプルダウンである。
619は、オブジェクトのサイズ(大きさ)を入力することができるテキストボックスである。ここでは、オブジェクトの幅と高さを入力することが可能である。
621は、オブジェクトの文字組みの方向を選択入力できるプルダウンである。また、622は、オブジェクトの文字の出力サイズ(全角、半角など)を選択入力できるプルダウンである。 624、625は、それぞれ文字枠の行数、桁数を選択入力できるプルダウンである。
プロパティ画面600(図6)を介して、オブジェクトの定義を示すデータの入力がなされ、OKボタンがユーザにより押下されると、情報処理装置100のCPU201は、入力されたオブジェクトの定義を示すデータを図8に示すオブジェクト定義テーブルに記憶する。ユーザは、各オブジェクトに対してこの操作を行う。
以上の通り、ステップS1402では、情報処理装置100のCPU201は、上述した表示されたプロパティ画面600(図6)から、ユーザの指示により、各オブジェクトに対して、オブジェクトの定義を示すデータの入力を受け付ける。そして、入力されたデータをオブジェクト定義テーブル(図8)に記憶させる。 図8は、オブジェクト(フィールド)の定義(属性)(フィールドの属性情報)するデータが記憶されるオブジェクト定義テーブルの一例である。
図8に示すオブジェクト定義テーブルは、「オブジェクト番号」、「種別」、「種別内連番」、「名称」、「OCR利用区分」、「左」、「上」、「幅」、「高さ」、「行数」、「桁数」、「線種」、「線幅」、「線色」、「フォント」、「スタイル」、「サイズ」、「色」、「組方向」、「文字出力サイズ」の項目から構成される。
「オブジェクト番号」はオブジェクトを識別する番号であり、図4の符号に括弧で示す番号に対応している。すなわち、オブジェクト番号<1>は、図4の402の枠を示している。また、「種別」は、オブジェクトの種別(種類)を示す情報である。また、「種別内連番」は、同一種別のオブジェクトを識別するために付与される連続した番号である。また、「名称」は、オブジェクトの名称である。また、「OCR利用区分」は、OCRを利用するか否かを示す情報が記憶される。OCRをするオブジェクトの場合は“する”が記憶され、OCRをしないオブジェクトの場合は“しない”が記憶される。また、「左」には、オブジェクトの配置位置の基準位置を特定する、テンプレートの最左からの位置を示す情報が記憶される。また、「上」には、オブジェクトの配置位置の基準位置を特定する、テンプレートの最上からの位置を示す情報が記憶される。また、「幅」には、オブジェクトの幅が記憶される。また、「高さ」には、オブジェクトの高さが記憶される。また、「行数」は、はしご枠などの文字の入力領域の行数である。また、「桁数」は、はしご枠などの文字の入力領域の桁数である。また、「線種」は、実線や点線などの情報である。また、「線幅」は、線の幅である。また、「線色」は、線の色である。また、「フォント」は、文字のフォントである。また、「スタイル」は、文字のスタイルである。また、「サイズ」は、文字のサイズである。また、「色」は、文字の色である。また、「組方向」は、文字(列)の組方向である。また、「文字出力サイズ」は、全角・半角などの文字出力サイズである。
次に、情報処理装置100のCPU201は、ステップS1401で入力され記憶されたフォーム定義テーブル(図7)の「OCR利用」が“する”なのか否かを判定する(ステップS1403)。
すなわち、フォームのプロパティ画面500の519がチェックされたか否かを判定する。519がチェックされた場合(フォーム定義テーブル(図7)の「OCR利用」が“する”の場合)(ステップS1403:YES)、記憶部に記憶されたオブジェクト定義テ
ーブルから、OCR処理の実行に用いるOCR定義情報を生成する(ステップS1404)。一方、519がチェックされず、520がチェックされた場合(フォーム定義テーブル(図7)の「OCR利用」が“しない”の場合)(ステップS1403:NO)は、OCR定義情報を生成することなく処理を終了する。
ステップS1404の詳細処理については、図15を用いて後述する。
次に、情報処理装置100のCPU201は、ステップS1404でOCR定義情報を生成すると、予め記憶されたフォームのOCR定義テーブル(図9)のスキャン時解像度(dpi)や印刷の向きなどを取得し、例えば以下の式を用いてイメージデータのサイズ(左上のX座標:0,左上のY座標:0,右下のX座標:以下の式で算出される値,右下のY座標:以下の式で算出される値)を決定し、テンプレートの下書きとなるイメージデータを生成する(ステップS1405)。ここで生成されるイメージデータをOCR定義情報の下書きとすることで、テンプレート内のどの領域を、OCR処理を行う領域とするかを特定することができる。
図12は、このようにして特定された、フォーム(テンプレート)のOCR処理対象の領域を示す表示画面1200の一例を示す図である。図12は、出力データ(図11)を出力領域に出力した帳票に、OCR処理対象の領域を表示した画面である。図12では、OCR処理対象の領域として、1202、1203、1204、1205、1206、1207、1208が定義されている。なお、このOCR処理対象の領域のサイズは、ユーザの指示により補正することができる。
(式)・右下のX座標=サイズ(幅)(mm)×スキャン時の解像度(dpi)÷25.4(mm)・右下のY座標=サイズ(高さ)(mm)×スキャン時の解像度(dpi)÷25.4(mm)
例えば、印刷の向きが縦のA4の用紙(幅が210mmで高さが297mm)のスキャン時の解像度が300dpiである場合、上記式に、これらの値を代入すると、右下のX座標は、210(mm)×300(dpi)÷25.4(mm)=2480.349・・・となり、約2480の値となる。また、右下のY座標も、これと同様に代入すると、297(mm)×300(dpi)÷25.4(mm)=3507.87・・・となり、約3507の値となる。
このようにして、ここで生成されるイメージデータのサイズを決定し、そのサイズのイメージデータ(画像)を生成する(ステップS1405)。
次に、情報処理装置100のCPU201は、ステップS1404で生成したOCR定義情報を、OCRソフトウェアが読み込む記憶部に記憶することにより、当該OCR定義情報をOCRソフトウェアに設定する(ステップS1406)。
ここで、図9について説明する。 図9は、フォームのOCR定義テーブルの一例を示す図である。
フォームのOCR定義テーブルは、「帳票フォーム名」、「OCR利用」、「印刷時解像度」、「スキャン時解像度」、「イメージファイル名」、「クリアエリア初期値」とから構成されている。
「帳票フォーム名」は、フォーム定義テーブル(図7)の「帳票フォーム名」に対応したデータであり、OCR定義情報生成部304でコピーされることにより記憶(生成)される。
「OCR利用」は、フォーム定義テーブル(図7)の「OCR利用」に対応したデータであり、OCR定義情報生成部304でコピーされることにより記憶(生成)される。
「印刷時解像度」は、ユーザの指示に応じて予め記憶される値であり、印刷時にどの解像度で印刷するかを規定したものである。したがって、フォームエディタソフト301で生成されたフォームデータはここで設定された解像度で印刷指示される。
「スキャン時解像度」は、ユーザの指示に応じて予め記憶される値であり、スキャン時にどの解像度で読み取るかを規定したものである。したがって、フォームエディタソフト301で生成されたフォームデータはここで設定された解像度で読み取られる。
「イメージファイル名」は、ステップS1405で生成されるイメージデータのファイル名であり、イメージデータが生成される際に、フォーム定義テーブル(図9)の帳票フォーム名をコピーすることで生成される。
「クリアエリア初期値」は、ユーザの指示に応じて予め記憶される値であり、図23に示すように、オブジェクトの配置領域2301からOCR処理を行う領域2302までの幅の長さ2303である。
図23は、オブジェクトの配置領域2301と、OCR処理を行う領域(OCR処理の対象領域2302)と、クリアエリア2303の関係を説明するための概念図である。
<図15の説明> 次に、図15のフローチャートを参照して、フォームエディタソフトウェア301が実行する処理を説明する。
図15は、図14に示すステップS1404の詳細処理の一例を示すフローチャートであり、図3に示すフォームエディタソフトウェア301による処理に対応する。すなわち、情報処理装置100のCPU201がROM202又は外部メモリ211からRAM203に読み出したプログラムを実行することにより実現される。また、図中、S1501〜S1511は各ステップを示す。
情報処理装置100のCPU201は、後述するステップS1502からステップS1511までの処理を、オブジェクト定義テーブル(図8)に記憶されている全てのオブジェクト定義情報に対して繰り返し実行する。ここで、オブジェクト定義情報(フォームのフィールドの属性情報)とは、図8に示すレコードの情報のデータを示す。
情報処理装置100のCPU201は、まず、オブジェクト定義テーブル(図8)のオブジェクト定義情報を読み込む(ステップS1502)。例えば、ここでは、オブジェクト番号が<1>のオブジェクト定義情報を読み込む。
そして、情報処理装置100のCPU201は、「OCR利用区分」が“する”と定義されているか否かを判定する(ステップS1503)。すなわち、オブジェクトのプロパティ画面(図6)の605がチェックされたのか、それとも606がチェックされたのかを判定する。
ここで、オブジェクト定義テーブル(図8)には、605がチェックされた場合は「OCR利用区分」が“する”と記憶され、606がチェックされた場合は「OCR利用区分」が“しない”と記憶されている。
情報処理装置100のCPU201は、ステップS1503で「OCR利用区分」が“する”と定義されていると判定した場合は(ステップS1503:YES)、処理をステップS1504に移行し、一方、「OCR利用区分」が“しない”と定義されていると判定した場合は(ステップS1503:NO)、処理対象をオブジェクト定義テーブルの次のレコードにして、ステップS1502に戻る。またこのとき、全てのオブジェクト定義情報に対して処理を実行し、処理対象がなくなった場合は処理を終了する。
次に、情報処理装置100のCPU201は、「OCR利用区分」が“する”と定義されていると判定した場合は(ステップS1503:YES)、オブジェクト定義情報に含まれるオブジェクトの種別が、「文字」又は「図形(はしご枠)」又は「出力領域(文字)」であるか否かを判定する(ステップS1504)。
そして、情報処理装置100のCPU201は、オブジェクトの種別が、「文字」又は「図形(はしご枠)」又は「出力領域(文字)」であると判定した場合は(ステップS1504:YES)、ステップS1508に処理を移行して文字認識設定処理(図16)を実行する。一方、オブジェクトの種別が、「文字」又は「図形(はしご枠)」又は「出力領域(文字)」ではないと判定した場合は(ステップS1504:NO)、オブジェクトの種別が「図形(チェックボックス)」であるか否かを判定する(ステップS1505)。
そして、情報処理装置100のCPU201は、オブジェクトの種別が「図形(チェックボックス)」であると判定した場合は(ステップS1505:YES)、処理をステップS1509に移行してチェックボックス認識設定処理(図19)を実行する。一方、オブジェクトの種別が、「図形(チェックボックス)」ではないと判定した場合は(ステップS1505:NO)、オブジェクトの種別が「文字(丸囲み)」であるか否かを判定する(ステップS1506)。
そして、情報処理装置100のCPU201は、オブジェクトの種別が「文字(丸囲み)」であると判定した場合は(ステップS1506:YES)、処理をステップS1510に移行して、丸囲み数字認識設定処理(図20)を実行する。一方、オブジェクトの種別が「文字(丸囲み)」ではないと判定した場合は(ステップS1506:NO)、オブジェクトの種別が「出力領域(QRコード)」であるか否かを判定する(ステップS1507)。
そして、情報処理装置100のCPU201は、オブジェクトの種別が「出力領域(QRコード)」であると判定した場合は(ステップS1507:YES)、処理をステップS1511に移行してQRコード認識設定処理(図21)を実行する。
情報処理装置100のCPU201は、ステップS1507でオブジェクトの種別が「出力領域(QRコード)」ではないと判定された場合、及び、ステップS1508、ステップS1509、ステップS1510、ステップS1511の処理を実行後は、ステップS1503でNOと判定した場合と同様に、処理対象をオブジェクト定義テーブルの次のレコードにして、ステップS1502に戻る。またこのとき、全てのオブジェクト定義情報に対して処理を実行し、処理対象がなくなった場合は処理を終了する。
このようにして、オブジェクト定義テーブルに記憶されている全てのオブジェクト定義情報に対して、ステップS1502からステップS1511までの処理を実行する。
<図16の説明> 次に、図16のフローチャートを参照して、フォームエディタソフトウェア301が実行する処理を説明する。
図16は、図15に示すステップS1508の詳細処理の一例を示すフローチャートであり、図3に示すフォームエディタソフトウェア301による処理に対応する。すなわち、情報処理装置100のCPU201がROM202又は外部メモリ211からRAM203に読み出したプログラムを実行することにより実現される。また、図中、S1601〜S1615は各ステップを示す。
情報処理装置100のCPU201は、まず、認識する種別(種類)として、文字を認識する文字認識処理を実行することを示すデータ(ここでは“OCR”)を生成する(ステップS1601)。ここで生成されたデータは、図10に示すオブジェクトのOCR定義テーブル(OCRテンプレート)に記憶される。ここで、OCRテンプレートとは、図10に示す各オブジェクトのOCR定義情報の集合である。
図10は、オブジェクトのOCR定義テーブルの一例を示す図である。OCR定義テーブルには、OCRするために用いられる各種データが記憶される。
図10の示すオブジェクトのOCR定義テーブルは、「No」、「領域名(名称)」、「オブジェクト番号」、「認識種別」、オブジェクトの配置領域(認識領域)の左上座標のX座標が記憶される「X」、オブジェクトの配置領域(認識領域)の左上座標のY座標が記憶される「Y」、オブジェクトの配置領域(認識領域)の右下座標のX座標が記憶される「X」、オブジェクトの配置領域(認識領域)の右下座標のY座標が記憶される「Y」、「使用辞書」、「組方向」、「文字枠」、「桁数」、「行数」、「文字出力サイズ」などから構成される。
「No」は、レコードを識別するための番号であり、このレコード内の一部又は全ての情報をOCR定義情報という。また、「領域名(名称)」は、OCRを行う対象のオブジェクト(OCR対象オブジェクト)の名称(領域名)である。また、「オブジェクト番号」は、図8のオブジェクト定義テーブルのオブジェクト番号に対応した番号である。また、「認識種別」は、OCRソフト318が行う認識処理の種別(種類)である。また、「使用辞書」は、OCRソフト318が行う認識処理の際に用いる辞書を示している。また、「組方向」は、文字(列)が縦方向か横方向かを示している。また、「文字枠」は、はしご枠かなどの文字枠がどのような枠であるかを示している。また、「桁数」は、文字枠の桁数を示している。また、「行数」は、文字枠の行数を示している。また、「文字出力サイズ」は、半角か全角かを示している。
次に、情報処理装置100のCPU201は、共通情報生成処理を実行することにより(ステップS1602)、オブジェクト定義情報から、オブジェクトのOCR定義情報テーブルのOCR対象オブジェクト(オブジェクトの領域名など)と認識領域(Pixel)(オブジェクトの配置位置(座標))とを生成する。そして、ここで生成されたOCR対象オブジェクト(オブジェクトの領域名など)と認識領域(Pixel)(オブジェクトの配置位置(座標))は、オブジェクトのOCR定義テーブルに記憶される。ステップS1602の詳細処理は、図18を用いて後で説明する。
次に、情報処理装置100のCPU201は、共通情報生成処理を実行した後、オブジェクト定義情報の「フォント」にフォント名が記憶されているかを判定する(ステップS1603)。そして、フォント名が記憶されていると判定した場合は(ステップS1603:YES)、当該フォントに対応する辞書を辞書テーブル(図17)の中から検索する(ステップS1604)。
図17は、辞書テーブルの一例である。図17は、文字のフォントに対して、OCRするのに好適な辞書が記憶されていることを示している。なお、辞書テーブルは、記憶部に記憶されている。
次に、情報処理装置100のCPU201は、ステップS1604でフォントに対応する辞書が検索されたか否かを判定する(ステップS1605)。そして、フォントに対応する辞書が検索されたと判定された場合は(ステップS1605:YES)、検索された辞書を使用する辞書と設定するために、オブジェクトのOCR定義テーブル(図10)の「使用辞書」に検索された辞書名を記憶(生成)する。一方、フォントに対応する辞書が検索されなかったと判定された場合は(ステップS1605:NO)、(予め設定された)既定の辞書を使用する辞書として設定するために、オブジェクトのOCR定義テーブル(図10)の「使用辞書」に、該既定の辞書の辞書名を記憶(生成)する(ステップS1607)。
ステップS1603で、オブジェクト定義情報の「フォント」にフォント名が記憶されていないと判定された場合、つまり、フォントの情報が無い場合も、ステップS1607の処理を実行する。すなわち、オブジェクトのOCR定義テーブル(図10)の「使用辞書」に、既定の辞書の辞書名を記憶(生成)する。
次に、情報処理装置100のCPU201は、ステップS1607又は、ステップS1606の処理を実行した後、現在、処理対象のオブジェクト定義テーブル(図8)の1レコード(オブジェクト定義情報)の「組方向」と「文字出力サイズ」とをオブジェクトのOCR定義テーブル(図10)の「組方向」と「文字出力サイズ」にそれぞれ記憶(生成)させる。
そして、情報処理装置100のCPU201は、現在、処理対象のオブジェクト定義情報の「枠」に数値が設定されているか否かを判定することにより、文字枠のオブジェクトであるか否かを判定する(ステップS1609)。そして、情報処理装置100のCPU201は、文字枠のオブジェクトであると判定された場合は(ステップS1609:YES)、文字枠が複数に分割されているか否かを判定する(ステップS1610)。すなわち、処理対象のオブジェクト定義情報の「枠」に設定された値(少なくとも行数、桁数のいずれか1つの値)が2以上の数値であるか否かを判定することにより、「はしご枠」であるのか、それとも「フィールド枠」であるのかを判定する(ステップS1610)。
そして、「はしご枠」であると判定された場合(「枠」に設定された、少なくとも行数、桁数のいずれかの値が2以上の数値であると判定された場合)は(ステップS1610:YES)、オブジェクトのOCR定義テーブル(図10)の「文字枠」に、はしご枠であることを示すデータとして“はしご”を記憶(生成)する(ステップS1611)。一方、「フィールド枠」であると判定された場合(「枠」に設定された行数、桁数のいずれの値も1の数値であると判定された場合)は(ステップS1610:NO)、オブジェクトのOCR定義テーブル(図10)の「文字枠」に、フィールド枠であることを示すデータとして“フィールド”を記憶(生成)する(ステップS1613)。
また、ステップS1609において、現在、処理対象のオブジェクト定義情報の「枠」に数値が設定されていないと判定(文字枠のオブジェクトではないと判定)された場合(ステップS1609:NO)、オブジェクトのOCR定義テーブル(図10)の「文字枠」に、枠がないことを示すデータとして“―”を記憶(生成)する(ステップS1604)。
次に、情報処理装置100のCPU201は、オブジェクトの定義テーブル(図8)の「枠」の“行数”、“桁数”の値を、文字認識すべき対象の文字数の最大値として、オブジェクトのOCR定義テーブル(図10)の「行数」、「桁数」にそれぞれ記憶(生成)する(ステップS1612)。
また、情報処理装置100のCPU201は、ステップS1604またはステップS1613の処理を実行した後、OCRソフトウェアが、文字認識すべき対象の文字数を自動的に認識させる設定情報として、“0(ゼロ)”を、オブジェクトのOCR定義テーブル(図10)の「行数」、「桁数」に記憶(生成)する(ステップS1615)。
以上、ステップS1615又はステップS1612の処理を実行すると、ステップS1508に示す文字認識設定処理は終了し、ステップS1502で次の処理対象のオブジェクトの定義情報を読み込む。
<図18の説明> 次に、図18のフローチャートを参照して、フォームエディタソフトウェア301が実行する処理を説明する。
図18は、図16のステップS1602、図19のステップS1902、図20のステップS2002、図21のステップS2102の処理の詳細処理の一例を示すフローチャートである。なお、図18は、図3に示すフォームエディタソフトウェア301による処理に対応する。
すなわち、情報処理装置100のCPU201がROM202又は外部メモリ211からRAM203に読み出したプログラムを実行することにより実現される。また、図中、S1801〜S1804は各ステップを示す。
情報処理装置100のCPU201は、OCR対象オブジェクトの名称(領域名)を生成する(ステップS1801)。
具体的には、オブジェクト定義テーブル(図8)の「名称」にオブジェクトの名称が入力されている場合は、その名称をOCR対象オブジェクトの名称(領域名)として、オブジェクトのOCR定義テーブル(図10)の「領域名(名称)」に記憶(生成)する。また、オブジェクト定義テーブル(図8)の「名称」にオブジェクトの名称が入力されていない場合は、オブジェクトの「種別」と「種別内連番」からOCR対象オブジェクトの名称(領域名)を生成して、オブジェクトのOCR定義テーブル(図10)の「領域名(名称)」に記憶(生成)する。
例えば、オブジェクト番号<4>のオブジェクトは、チェックボックスなので、領域名(名称)にチェックボックスを示す「CHK」と、「種別内連番」の「001」とを繋げて「CHK001」というOCR対象オブジェクトの名称(領域名)を生成し、オブジェクトのOCR定義テーブル(図10)の「領域名(名称)」に記憶している。
次に、情報処理装置100のCPU201は、オブジェクト定義テーブル(図8)の「配置」の情報から、認識領域の座標を算出し、オブジェクトのOCR定義テーブルの「認識領域(pixel)」に算出結果を記憶(生成)する(ステップS1802)。 具体的には、例えば、認識領域の左上座標及び右下座標は、以下の式を用いて算出することができる。
(式)・「認識領域の左上のX座標」=(基準位置(左)―クリアエリアの初期値)×スキャン時解像度(dpi)÷25.4(mm)・「認識領域の左上のY座標」=(基準位置(上)―クリアエリアの初期値)×スキャン時解像度(dpi)÷25.4(mm)・「認識領域の右下のX座標」=(基準位置(左)+サイズ(幅)+クリアエリアの初期値)×スキャン時解像度(dpi)÷25.4(mm)・「認識領域の右下のY座標」=(基準位置(上)+サイズ(高さ)+クリアエリアの初期値)×スキャン時解像度(dpi)÷25.4(mm)
ここで、クリアエリアとは、図23に示すように、オブジェクトの配置領域2301からOCR処理を行う領域2302までの幅の長さ2303であり、ユーザの指示により予め設定され記憶部に記憶されている。ここでは、ユーザの指示により予め設定されたクリアエリアの値をクリアエリアの初期値として記載している。
また、スキャン解像度は、ユーザの指示により予め設定され、記憶部のフォームのOCR定義テーブル(図9)に記憶されている。また、基準位置(左)、基準位置(上)、サイズ(幅)、サイズ(高さ)は、それぞれ、オブジェクト定義テーブル(図8)の項目「左」、「上」、「幅」、「高さ」に記憶されている値である。
ステップS1802では、これらの情報を取得して上述した式に代入することにより、認識領域の座標を算出することができる。
次に、情報処理装置100のCPU201は、ステップS1802で算出された座標により決定される認識領域がテンプレート(帳票)の領域内に収まるか否かを判定する(ステップS1803)。
具体的には、ステップS1802で算出して得られた認識領域の座標が、ステップS1405でイメージデータを生成する際に決定した当該イメージデータのサイズの座標を超えているか否かを判定する。
そして、認識領域がテンプレートの領域内に収まる(ステップS1802で算出して得られた認識領域の座標が、ステップS1405でイメージデータを生成する際に決定した当該イメージデータのサイズの座標を超えていない)と判定された場合は、図18に示す処理を終了し、一方、収まらない(ステップS1802で算出して得られた認識領域の座標が、ステップS1405でイメージデータを生成する際に決定した当該イメージデータのサイズの座標を超える)と判定された場合は、テンプレートの領域内に収まるように認識領域の各座標を補正する(ステップS1804)。
具体的には、超えていると判定された、ステップS1802で算出して得られた認識領域の座標を、ステップS1405でイメージデータを生成する際に決定した当該イメージデータのサイズの座標に設定することで補正することができる。
<図19の説明> 次に、図19のフローチャートを参照して、フォームエディタソフトウェア301が実行する処理を説明する。
図19は、図15のステップS1509の処理の詳細処理の一例を示すフローチャートである。なお、図19は、図3に示すフォームエディタソフトウェ
ア301による処理に対応する。
すなわち、情報処理装置100のCPU201がROM202又は外部メモリ211からRAM203に読み出したプログラムを実行することにより実現される。また、図中、S1901〜S1902は各ステップを示す。
情報処理装置100のCPU201は、まず、認識する種別(種類)として、チェックボックスを認識する文字認識処理を実行することを示すデータ(ここでは“チェックボックス”)を生成する(ステップS1901)。ここで生成されたデータは、図10に示すオブジェクトのOCR定義テーブルに記憶される。
次に、情報処理装置100のCPU201は、図18に示す共通情報生成処理を実行し(ステップS1902)、ステップS1509の処理を終了する。
<図20の説明> 次に、図20のフローチャートを参照して、フォームエディタソフトウェア301が実行する処理を説明する。
図20は、図15のステップS1510の処理の詳細処理の一例を示すフローチャートである。なお、図20は、図3に示すフォームエディタソフトウェア301による処理に対応する。
すなわち、情報処理装置100のCPU201がROM202又は外部メモリ211からRAM203に読み出したプログラムを実行することにより実現される。また、図中、S2001〜S2002は各ステップを示す。
情報処理装置100のCPU201は、まず、認識する種別(種類)として、丸囲み文字を認識する文字認識処理を実行することを示すデータ(ここでは“丸囲み”)を生成する(ステップS2001)。ここで生成されたデータは、図10に示すオブジェクトのOCR定義テーブルに記憶される。 次に、情報処理装置100のCPU201は、図18に示す共通情報生成処理を実行し(ステップS2002)、ステップS1510の処理を終了する。
<図21の説明> 次に、図21のフローチャートを参照して、フォームエディタソフトウェア301が実行する処理を説明する。
図21は、図15のステップS1511の処理の詳細処理の一例を示すフローチャートである。なお、図21は、図3に示すフォームエディタソフトウェア301による処理に対応する。
すなわち、情報処理装置100のCPU201がROM202又は外部メモリ211からRAM203に読み出したプログラムを実行することにより実現される。また、図中、S2101〜S2102は各ステップを示す。
情報処理装置100のCPU201は、まず、認識する種別(種類)として、二次元コードを認識する文字認識処理を実行することを示すデータ(ここでは“QRコード”)を生成する(ステップS2101)。ここで生成されたデータは、図10に示すオブジェクトのOCR定義テーブルに記憶される。 次に、情報処理装置100のCPU201は、図18に示す共通情報生成処理を実行し(ステップS2102)、ステップS1511の処理を終了する。
<図22の説明> 次に、図22のフローチャートを参照して、OCRソフトウェア315が実行する処理を説明する。
図21は、本発明のシステムにおける第2の制御処理手順の一例を示すフローチャートであり、図3に示すOCRソフトウェア315による処理に対応する。すなわち、情報処理装置100のCPU201がROM202又は外部メモリ211からRAM203に読み出したプログラムを実行することにより実現される。また、図中、S2201〜S2204は各ステップを示す。
情報処理装置100のCPU201は、フォームのOCR定義テーブル(図9)と、オブジェクトのOCR定義テーブル(図10)とを記憶部308から読み込み(ステップS2201)、読み込んだフォームのOCR定義テーブル(図9)と、オブジェクトのOCR定義テーブル(図10)内のデータを、OCRするために設定する(ステップS2202)。
そして、ステップS2202で設定されたデータを用いてOCRを実行し(ステップS2203)、その認識結果を記憶部に記憶させるべく出力して(ステップS2204)処理を終了する。そして、フォームエディタソフトウェアは、記憶された認識結果を読み込み出力(表示や印刷など)する。
以上説明したように、本実施の形態によれば、テンプレートデータを作成するために入力されるオブジェクトの属性情報に従って、OCR処理を実行する対象領域に対する属性情報を生成することにより、ユーザによる当該属性情報の入力作業を軽減させることができる。
以上、本発明の一実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。