(58)【調査した分野】(Int.Cl.,DB名)
前記複数の行領域を表示し、前記第1の受付手段で指定されたキー文字列のある行領域と、前記第2の受付手段で指定された値を取得する行領域とを識別可能に表示する表示手段を更に備えることを特徴とする請求項2に記載の情報処理装置。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態を、図面を参照して詳細に説明する。
図1は、本発明の実施形態に係る画像処理方法が適用された画像処理システムの構成例を示す図である。
【0013】
図1において、画像処理システムは、例えば、情報処理装置としてのパーソナルコンピュータ(PC)201と、画像読取装置としてのスキャナ202と、印刷装置としてのプリンタ203とを備え、これらがネットワーク204を介して互いに接続されている。
【0014】
スキャナ202は、紙文書を光学的に読み取って電子化し、その画像データをPC201に送ることができる。PC201は、受信した画像データに対して所定の画像処理を実行する。その際、オペレータがキーボードやマウス等を操作して処理結果の確認および修正を行うことができる。プリンタ203は、所定の画像処理が行われた画像データをPC201から受信して印刷を行う。
【0015】
ネットワーク204は、インターネット、LANやWAN、電話回線、専用デジタル回線、ATMやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれか、またはこれらの組み合わせにより実現される、いわゆる通信ネットワークであり、データの送受信が可能であればよい。
【0016】
なお、本発明の実施形態に係る画像処理方法を図示の画像処理システムに適用した形態について説明するが、これに限定されず、スキャナやプリンタが一体的に構成された複合機に適用した形態であってもよい。また、PC201は、スキャナ202から入力された画像データに限らず、デジタルカメラ等で撮影された文書画像データに対して本発明の画像処理方法を実行してもよく、画像データの入力先や入力方法を限定するものではない。
【0017】
図2は、
図1のPC201の概略構成を示すブロック図である。
【0018】
PC201において、CPU101は、ROM102に格納されている制御プログラムに従って装置全体の制御を行う。ROM102は、CPU101が実行する後述する処理等の制御プログラムを含む各種プログラムや各種パラメータデータを格納する。RAM103は、記憶装置104からロードされたプログラムを一時的に記憶したり、エリア画像や各種データを記憶する。また、RAM103は、データの作業領域や一時待避領域として機能する。
【0019】
記憶装置104は、例えば、ハードディスクやCD−ROM等で構成され、画像データを管理するデータベースを含む各種データを記憶する。ディスプレイ105は、例えば、LCDやCRTで構成される。入力装置106は、例えば、マウスやキーボード、ペンタブレット等で構成される。
【0020】
ネットワークインターフェース(I/F)109は、ネットワーク204上に接続されている外部装置(スキャナ202やプリンタ203に限らず、不図示のサーバや外部記憶装置等)と通信し、プログラムやデータを読み込んだり、書き込んだりする。
【0021】
図3は、
図1の画像処理システムにて実行される画像処理の概略を示すフローチャートである。本処理は、PC201内の画像処理プログラムに基づいてCPU101により実行される処理である。なお、
図3の詳細な処理を示すフローチャートは、
図4と
図5を用いて説明する。
【0022】
まず、ステップS301では、PC201は、スキャナ202を制御して紙文書の画像を読み取らせて、その画像データを取得する。次に、PC201は、画像に対してブロックセレクション処理を行って、画像から表、文字、絵や図、枠、線の各領域を抽出する。
【0023】
ブロックセレクション処理とは、
図9のように読み取った一頁のイメージデータをオブジェクト毎の塊として認識し、該ブロック各々を文字/ 図画/ 写真/線/表等の属性に判定し、異なる属性を持つ領域に分割する処理である。
【0024】
具体的には、先ず、入力画像を白黒に二値化し、輪郭線追跡をおこなって黒画素輪郭で囲まれる画素の塊を抽出する。面積の大きい黒画素の塊については、内部にある白画素に対しても輪郭線追跡をおこない白画素の塊を抽出、さらに一定面積以上の白画素の塊の内部からは再帰的に黒画素の塊を抽出する。
【0025】
このようにして得られた黒画素の塊を、大きさおよび形状で分類し、異なる属性を持つ領域へ分類していく。たとえば、縦横比が1に近く、大きさが一定の範囲のものを文字相当の画素塊とし、さらに近接する文字が整列良くグループ化可能な部分を文字領域、扁平な画素塊を線領域、一定大きさ以上でかつ四角系の白画素塊を整列よく内包する黒画素塊の占める範囲を表領域、不定形の画素塊が散在している領域を写真領域、それ以外の任意形状の画素塊を図画領域、などとする。
【0026】
ブロックセレクション処理で得られた各ブロックに対するブロック情報を
図6に示す。
図6に示すブロック情報に対応する画像の例が
図10である。なお、各ブロック情報は画面上で表示されないが、説明のために
図10で各ブロックを示すものとする。
【0027】
このブロックセレクション処理で得られたブロックのうち、テキスト属性(種別)を持つブロックを取得し、このブロックについて文字認識処理を行う。文字認識技術については既知の技術であるため説明を省略する。
【0028】
文字認識をした結果得られた文字列から、複数行にわたる領域かを判定し、複数行にわたる場合には、各行に分割して、領域として登録する。1行はそのままの領域として登録する。文字認識した場合に得られた領域(座標)も取得できるため、その座標を登録する。領域として登録されたデータの例が
図7である。
図6のブロック4が5つの領域として分割され、登録されている(701)。
なお、文字認識の結果によっては、行が分かれる「個人番号」「123456789012」場合は、702のように、わかれて登録される。
【0029】
この登録された領域を用いて、設定画面上(
図13)で、ユーザにより選択し、値取得領域を特定するための条件(設定条件)を作成する。作成された設定条件を、設定ファイル(
図8)に保存して、記憶装置104に記憶する。
【0030】
ステップS302では、PC201は、実際に値を取得したい画像を読み込み、ステップS301で作成した設定条件に従って、値を取得する領域を特定する。この特定は、ステップS301で説明した処理と同様に、ブロックセレクションにより得られたブロックに対して文字認識処理を行い、行分割して、領域を登録する。この領域から、設定条件のキー領域の検索文字列(例えば、通知カード)を基に、キー領域を検索して、このキー領域から、条件(例えば、下、1)を用いて、キー領域の下の1つ目の領域を値取得領域として特定する。
【0031】
ステップS303では、PC201は、値取得領域として特定された領域に登録されている文字列(数字)を取得して、ディスプレイ105に表示する。ディスプレイへの表示例は、
図14である。また、ユーザからの出力指示によりCSVファイル等に取得した値のデータ群をエクスポートして出力する。
【0032】
次に
図4〜
図5を用いて、本実施形態における詳細処理について説明する。なお、
図4〜
図5は、
図1の画像処理システムにて実行される画像処理の詳細を示すフローチャートである。本処理は、PC201内の画像処理プログラムに基づいてCPU101により実行される処理である。
図4は、設定条件(設定ファイル)作成処理のフローチャートであり、
図5は、設定条件による値取得処理のフローチャートである。
まず、
図4のフローチャートを用いて説明する。
【0033】
ステップS401では、PC201は、ユーザの操作により、画像処理プログラムを実行させ、不図示のメニューから設定条件作成機能が選択されたか。値取得機能が選択されたかを判定する。設定条件作成機能が選択された場合にはステップS402へ処理を移す。値取得機能が選択された場合には、
図5へ処理を移す。
【0034】
ステップS402では、PC201はスキャナから取り込まれた画像、或いは所定のフォルダに格納されている画像を読み込む。読み込まれた画像の例が、
図8である。
【0035】
ステップS403では、PC201は、読み込まれた画像を用いて、ブロックセレクション処理を実行する。なお、ブロックセレクション処理については、ステップS301の通りである。このブロックセレクションは、ブロックセレクションライブラリを用いて実行する。ブロックセレクションで得られるブロック情報は
図6である。
【0036】
ここで、
図6を説明する。ブロックID、種別(テキスト、図、表・・・)領域情報(座標X、座標Y、幅、高さ)を有している。これらのブロック情報は、ブロックセレクションライブラリが生成するものである。
【0037】
ステップS404では、PC201は、ブロックセレクションライブラリからテキスト種別、表種別を有するブロック情報を取得する。
【0038】
ステップS405では、PC201は、取得したブロックに対して、文字認識処理を行う。文字認識処理は既知の技術であり説明を省略するが、例えば、パターンマッチングを用いて、記入文字と文字のテンプレートを照合して、文字候補を抽出する技術がある。
【0039】
文字認識処理により、文字列(数字含む)と、その文字列の領域情報(座標)が取得できる。領域情報は、文字列を囲む枠を示す領域である。文字認識した結果は、ブロックごとにメモリで管理されるものとする。
【0040】
ステップS405では、すべてのブロックに対して、まず文字認識を実行し、ステップS408の処理へ移行するようにしているが、1ブロックごとに、文字認識を行い、S408の判定を行ってもよい。すなわち、すべてのブロックに対して文字認識を実行したあとに、ステップS408の判定を実行する手順に限定されるものではない。
【0041】
ステップS406では、PC201は、すべてのブロックに対して、処理を実行したか否かを判定する。すべてのブロックに対して処理が行われていない場合、次に処理するブロックの文字列を取得するべくステップS407へ処理を移す。すべてのブロックに対して処理を実行した場合には、ステップS411へ処理を移す。
【0042】
ステップS407では、PC201は、処理対象のブロックの文字認識結果(文字列)をメモリから取得する。
【0043】
ステップS408では、PC201は、取得した文字列が複数行の文字列かを判定する。
図10を参照し、ブロック4を例にとると、5行にわたる文字列が取得できるため、ステップS410へ処理を移す。また、ブロック1を例にとると、1行の文字列が取得できるため、ステップS409へ処理を移す。
【0044】
ステップS409では、PC201は、文字認識結果を、
図7の文字認識領域情報に登録する。
図7では、領域IDと、文字認識結果から得られる文字列と、文字列がある位置を示す領域情報(座標)を登録する。
【0045】
ステップS410では、PC201は、行ごとに分割して、文字認識領域情報に登録する。
図7の701に示す通り、ブロック4の文字列が、5つの領域に分けて登録される。なお、領域情報(座標)は、それぞれの行の文字列のある位置の座標が登録される。
なお、この
図7に登録された領域が、後述する設定画面で選択可能な選択領域となる。
【0046】
ステップS411では、PC201は、
図7の文字認識領域情報の座標を用いて、選択領域を表示する。選択領域を表示した例が、
図11であり、選択領域は、破線で示されている。すなわち、設定情報を生成すべく、文字認識処理により得られた文字認識領域を表示する表示処理の一例を示すステップである。
【0047】
ステップS412では、PC201は、選択領域を表示する際に、設定画面を合わせて表示する。設定画面の例が、
図12である。なお、設定画面の表示は、S402の画面を読み込む際に事前に表示されている構成であってもよく、手順を限定するものではない。
【0048】
ステップS413では、PC201は、ユーザの操作により、キー領域とする領域の選択を受ける。
図12の例を基に詳述すると、1200にフォーカスがある状態で、1201の領域を選択すると、1200に選択された領域名がインプットされる。領域名は、
図7の文字列から取得して表示する。何文字目までを領域名とするか、スペースなどの区切りまでを領域名とするかは予め設定されているものとする。
すなわち、キーとなる領域を、表示された文字認識領域から選択する第1の選択処理の一例を示すステップである。
【0049】
1201と1202は、実線で示されている通り、キー領域として選択されたことを示している。また、未選択の領域と識別できるように表示する。これにより、キー領域としてどの領域を選択しているのかを把握しやすくなる。
【0050】
条件(and、or)については、ユーザが任意に選択するものとする。位置については、後述するが、値取得領域として領域が選択された場合に、表示される。
【0051】
ステップS414では、PC201は、上述したように選択した領域の領域名を設定画面に表示する。複数のキー領域を選択する場合には、次の領域を繰り返し選択する。
【0052】
ステップS415では、PC201は、値取得領域とする領域の選択を受け付ける。
図13の例を基に詳述すると、1300にフォーカスがある状態で、1301の領域を選択すると、1300に選択された領域名がインプットされる。領域名は、
図7の文字列から取得して表示する。何文字目までを領域名とするか、スペースなどの区切りまでを領域名とするかは予め設定されているものとする。
すなわち、値取得領域となる領域を、表示された文字認識領域から選択する第2の選択処理の一例を示すステップである。
【0053】
1301は、斜め線で網掛け表示されている通り、値取得領域として選択されたことを示している。また、未選択の領域、キー領域と識別できるように表示する。これにより、キー領域として、また値取得領域としてどの領域を選択しているのかを把握しやすくなり、設定作業が容易になる。
【0054】
すなわち、第1の選択処理で選択されたキーとなる領域と、第2の選択処理で選択された値取得領域となる領域とを識別可能に表示する識別表示処理の一例を示すステップものである。
【0055】
ステップS416では、PC201は、上述したように選択した領域(値取得領域)の領域名を設定画面に表示する。
【0056】
ステップS417では、PC201は、キー領域と値取得領域の関係(位置)取得する。具体的には、キー領域として選択した領域の領域情報(座標)と、値取得領域として選択した領域の領域情報(座標)から位置関係を算出する。例えば、値取得領域がキー領域の下に位置すると判定された場合には、キー領域から下方向で、何個目の領域かを決定する。
図13の例では、1301は、通知カードの領域の下にある領域と判定され、1個目の領域と決定される。この位置の決定を、選択されたキー領域ごとに行い、関係の位置情報を取得する。
【0057】
すなわち、第1の選択処理により選択されたキーとなる領域の領域情報と第2の選択処理により選択された値取得領域の領域情報に従って、キーとなる領域に対応する値取得領域の位置を特定する特定処理の一例を示すステップである。
【0058】
ステップS418では、PC201は、ステップS417で取得した位置情報を1302に条件として設定して、表示する。
ステップS419では、PC201は、その他の条件設定の入力を受け付ける。例えば、取得値属性、桁数などである。
【0059】
なお、ステップS413〜ステップS419の処理に対応する操作は、ユーザが任意の順番で入力操作ができるため、フローチャートに記載の手順に限定されるものではない。
【0060】
ステップS420では、PC201は、ユーザの操作により登録ボタンが押下されると、設定画面で入力された条件(設定情報)を設定ファイルに保存する。すなわち、特定処理により特定された位置を位置条件として設定し、第1の選択処理で選択されたキーとなる領域の文字列をキー文字列として設定する処理の一例を示すステップである。なお、
図13の設定画面での各項目へインプットも設定処理の一例である。
【0061】
設定ファイルの保存例は、
図8である。801は、701のように領域が登録された場合の例であり、802は、702のように個人番号と、数字の領域が別の行として認識され、領域が登録された場合の例である。そして、キー領域として、通知カード、個人番号が選択された場合の例である。
【0062】
なお、
図8の設定ファイルの設定情報は、キーとなる領域を特定するためのキー文字列(例えば、キー領域の検索文字列:通知カード)と、キーとなる領域に基づき文字列を取得する領域を特定するための位置条件(条件:下、1)を含む設定情報と言い換えることが可能である。
【0063】
続いて、
図5を用いて、設定条件による値取得処理のフローチャートについて説明する。
【0064】
ステップS501では、PC201は、設定ファイルから設定情報を読み込む。利用する設定ファイルは、ユーザが任意に選択して読み込んでもよい。
ステップS502では、PC201は、PC201はスキャナから取り込まれた画像、或いは所定のフォルダに格納されている画像を読み込む。
【0065】
ステップS503では、PC201は、PC201は、読み込まれた画像を用いて、ブロックセレクション処理を実行する。このブロックセレクションは、ブロックセレクションライブラリを用いて実行する。なお、ブロックセレクション処理については、ステップS301の通りである。また、ブロック情報は
図6と同様である。さらに、ブロックセレクションライブラリで文字認識処理を実行してもよい。
【0066】
ステップS504では、PC201は、ブロックセレクションライブラリからテキスト種別、表種別を有するブロック情報を取得する。
【0067】
ステップS505では、PC201は、取得したブロックに対して、文字認識処理を行う。文字認識処理は既知の技術であり説明を省略するが、例えば、パターンマッチングを用いて、記入文字と文字のテンプレートを照合して、文字候補を抽出する技術がある。
【0068】
文字認識処理により、文字列(数字含む)と、その文字列の領域情報(座標)が取得できる。領域情報は、文字列を囲む枠を示す領域である。文字認識した結果は、ブロックごとにメモリで管理されるものとする。
【0069】
ステップS505では、すべてのブロックに対して、まず文字認識を実行し、ステップS508の処理へ移行するようにしているが、1ブロックごとに、文字認識を行い、S508の判定を行ってもよい。すなわち、すべてのブロックに対して文字認識を実行したあとに、ステップS508の判定を実行する手順に限定されるものではない。
【0070】
ステップS506では、PC201は、すべてのブロックに対して、処理を実行したか否かを判定する。すべてのブロックに対して処理が行われていない場合、次に処理するブロックの文字列を取得するべくステップS507へ処理を移す。すべてのブロックに対して処理を実行した場合には、ステップS509へ処理を移す。
【0071】
ステップS507では、PC201は、処理対象のブロックの文字認識結果(文字列)をメモリから取得する。すなわち、所定の領域の画像に対する文字認識結果(ブロックの文字認識の結果)により得られる文字列を取得する取得処理の一例を示すステップである。所定の領域とは、例えば、ブロックセレクションにより得られた領域である。
【0072】
ステップS508では、PC201は、取得した文字列が複数行の文字列かを判定する。ステップS408の処理と同様のため、
図10を参照し説明する。ブロック4を例にとると、5行にわたる文字列が取得できるため、ステップS510へ処理を移す。また、ブロック1を例にとると、1行の文字列が取得できるため、ステップS509へ処理を移す。すなわち、ステップS508は、取得処理により取得された文字列が複数行の文字列か否かを判定する複数行判定処理の一例を示すステップである。
【0073】
ステップS509では、PC201は、文字認識結果をメモリに記憶する。なお、ステップS409の処理と同様のため、
図7を用いて説明する。文字認識結果は
図7の文字認識領域情報に登録される。
図7では、領域IDと、文字認識結果から得られる文字列と、文字列がある位置を示す領域情報(座標)を登録する。
【0074】
ステップS510では、PC201は、行ごとに領域を分割して、文字認識領域情報を生成し、登録する。
図7の701に示す通り、ブロック4の文字列が、5つの領域に分けて登録される。なお、領域情報(座標)は、それぞれの行の文字列のある位置の座標が登録される。
【0075】
なお、
図7の文字認識領域情報は、文字認識処理により得られた文字認識領域と言い換えることが可能である。また、ステップS510は、複数行判定処理により複数行と判定された場合に、行ごとの文字認識領域を生成する生成処理の一例を示すステップである。
【0076】
ステップS511では、PC201は、読み込まれた設定情報のキー領域の検索文字列(
図8参照)を取得して、文字認識領域情報を検索する。キー領域の検索文字列に従って、文字認識領域情報の文字列で一致する領域を特定する。これにより、一致した領域がキー検索領域となる。すなわち、キー文字列に従って、文字認識処理により得られた文字認識領域から、キーとなる領域を特定するキー領域特定処理の一例を示すステップである。また、詳細には、生成処理により生成された文字認識領域から、キーとなる領域を特定する処理の一例を示すステップである。
【0077】
ステップS512では、PC201は、キー領域と、設定情報の条件(例えば、「下、1」)を取得して、キー領域から1つ下の領域を特定する。キー領域の座標を基に、文字認識領域情報(例えば、
図7)を参照して下方向の座標を有する領域を検索し、特定する。この特定した領域が値取得領域となる。なお、下方向の座標を有する領域のうち、一番近い座標を持つ領域から順に1つ目の領域、2つ目の領域とする。
キー領域が複数ある場合には、キー領域の条件「and、or」に従って、値取得領域を特定する。
【0078】
すなわち、特定されたキーとなる領域と設定情報の位置条件に従って、文字認識領域から値取得領域を特定する値取得領域特定処理の一例を示すステップである。
【0079】
ステップS512で値取得領域が特定できた場合には、画像上に値取得箇所を示すように、値取得領域の座標に従って、枠等の識別表示を行う。なお、識別表示した例が、
図14の1401である。
図14は、
図9の帳票とは異なる個人を例にした帳票の画像(文書画像)で、値取得表示と、識別表示をしている。
【0080】
ステップS511とステップS512により、キー領域を特定したうえで、キー領域から位置条件(例えば、下、1)にある領域を特定して値を取得するため、誤った位置の値を取得することがなくなる。文字認識定義のあるテンプレートを用いた場合には、ユーザによる貼り付け誤差によって、適切な値が取得できないが、本処理を用いることにより貼り付け誤差があっても取得したい箇所の値を取得することが可能となる。
【0081】
ステップS513では、PC201は、ステップS512で特定した値取得領域の文字列を取得する。文字列の取得は、文字認識領域情報(例えば、
図7)の文字列から取得する。この時、出力条件(例えば「数字、12ケタ」)に従って、必要な文字列を取得する。
【0082】
ステップS514では、PC201は、取得した文字列(値)を認識結果画面1402に表示する。すなわち、特定された値取得領域の文字列を出力する表示出力処理の一例を示すステップである。
【0083】
なお、ステップS513で出力条件に合致する値が取得できない場合にはエラーを通知する。認識結果に誤りがあった場合には、ユーザにより、修正入力エリアに修正値を入力させることが可能である。修正入力エリアに入力された場合には、入力値が登録される値となる。
【0084】
ステップS515では、PC201は、認識結果をCSVファイルに出力する。なお、複数の画像が読み込まれた場合には、すべての画像に対して、値取得を実行し、
図14の登録ボタンで値を登録して、最後の画像に対する値を登録すると、CSVファイルにて値を出力する。出力するファイルの形式は一例であり、限定されるものではない。
【0085】
また、ファイルの出力先を任意に指定する、出力する際には、不図示の出力ボタンを押下することで、所定の出力先に認識結果(値)を出力することが可能であることは言うまでもない。
出力する値としては、「987654321098」だけでもよいし、987654321098の領域名(個人番号)と合わせて出力してもよい。
【0086】
以上、本実施形態によれば、文書画像から所望の箇所の値を容易に取得できる。
【0087】
特に、煩雑な設定が必要な文字認識領域を設定したテンプレートを用いることなく、容易に値取得する条件を設定することができる。また、ブロックセレクションにより複数行にわたる文字列が取得できる場合においても、所定の位置にある値を容易かつ精度よく取得させることが可能となる。
【0088】
例えば、テンプレートと用いる文字認識技術を用いた場合に、申請書に貼り付け書類があると、貼付け位置がずれてしまうと認識領域がずれてしまい、誤った値が取得されるという技術的な課題がある。本実施形態では、貼付け位置が上下左右にずれたとしても、ブロックセレクションを用いて、キー領域を特定したうえで、キー領域から位置条件にある領域を特定して値を取得するため、誤った位置の値を取得することがなくなるという効果を得ることできる。
【0089】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。例えば、本実施形態では、値取得領域を特定する条件として、「1つ」下の領域という形で領域単位で条件を持たせるようにしたが、キー領域からの相対的な位置を持たせるようにしてもよい。すなわち、値取得領域を特定するためのキー領域からの位置条件を持たせる構成であればよい。
【0090】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。例えば、クラウド環境で実現する構成であってもよい。その場合、クラウド環境上のサーバで、設定ファイル作成ツールが実行される。
【0091】
また、本発明におけるプログラムは、
図3〜
図5に示すフローチャートの処理方法をコンピュータが実行可能なプログラムである。なお、記憶媒体に
図3〜
図5の処理方法をコンピュータが実行可能なプログラムが記憶される構成であってもよい。なお、本発明におけるプログラムは
図3〜
図5の各装置の処理方法ごとのプログラムであってもよい。
【0092】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0093】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【0094】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【0095】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0096】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0097】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0098】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。