以下、本発明の実施の形態について図面を用いて詳細に説明する。
<実施形態1>
図1は本発明の実施形態1の画像処理システムの構成を示すブロック図である。
この画像処理システムは、オフィス10及びオフィス20とをインターネット等のネットワーク104で接続された環境で実現する。
オフィス10内に構築されたLAN107には、複数種類の機能(複写機能、印刷機能、送信機能等)を実現する複合機であるMFP(Multi Function Peripheral)100、MFP100を制御するマネージメントPC101、MFP100を利用するクライアントPC102、文書管理サーバ106及びそのデータベース105、及びプロキシサーバ103が接続されている。
オフィス20内に構築されたLAN108には、プロキシサーバ103、文書管理サーバ106及びそのデータベース105が接続されている。
オフィス10内のLAN107及びオフィス20内のLAN108は、それぞれのオフィスのプロキシサーバ103を介してネットワーク104に接続されている。
MFP100は、特に、原稿である紙文書を電子的に読み取る画像読取部と、画像読取部から得られる画像信号に対する画像処理を実行する画像処理部を有し、この画像信号はLAN109を介してマネージメントPC101に送信することができる。
マネージメントPC101は、通常のPC(パーソナルコンピュータ)であり、内部に画像記憶部、画像処理部、表示部、入力部等の各種構成要素を有するが、その構成要素の一部はMFP100に一体化して構成されている。
尚、図1の構成は一例であり、文書管理サーバ106を有するオフィス20がなくても、あるいはもっと複数存在してもよいし、あるいはオフィス10、オフィス20とが同一LAN上で接続されていても良い。
また、ネットワーク104は、典型的にはインターネットやLANやWANや電話回線、専用デジタル回線、ATMやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれか、またはこれらの組み合わせにより実現されるいわゆる通信ネットワークであり、データの送受信が可能であれば良い。
また、マネージメントPC101、クライアントPC102、文書管理サーバ106等の各種端末はそれぞれ、汎用コンピュータに搭載される標準的な構成要素(例えば、CPU、RAM、ROM、ハードディスク、外部記憶装置、ネットワークインタフェース、ディスプレイ、キーボード、マウス等)を有している。
次に、MFP100の詳細構成について、図2を用いて説明する。
図2は本発明の実施形態1のMFPの詳細構成を示すブロック図である。
図2において、オートドキュメントフィーダ(ADF)を含む画像読取部110は、束状のあるいは1枚の原稿画像を光源(不図示)で照射し、原稿反射像をレンズで固体撮像素子上に結像し、固体撮像素子からラスタ状の画像読取信号を所定密度(600DPI等の)のラスター画像として得る。
また、MFP100は、画像読取信号に対応する画像を印刷部112で記録媒体に印刷する複写機能を有し、原稿画像を1つ複写する場合には、この画像読取信号をデータ処理部115で画像処理して記録信号を生成し、これを印刷部112によって記録媒体上に印刷させる。一方、原稿画像を複数複写する場合には、記憶部111に一旦一ページ分の記録信号を記憶保持させた後、これを印刷部112に順次出力して記録媒体上に印刷させる。
また、ネットワークI/F114を介する送信機能においては、画像読取部110から得られるラスター画像を、TIFFやJPEG等の圧縮画像ファイル形式、あるいはPDF等のベクトルデータファイル形式の画像ファイルへと変換し、ネットワークIF114から出力する。出力された画像ファイルは、LAN11を介して文書管理サーバ106へ送信されたり、更にネットワーク104経由で別の文書管理サーバ106やクライアントPC102に転送されたりする。
また、印刷部112による印刷機能においては、例えば、クライアントPC102から出力された印刷データをネットワークIF114経由でデータ処理部115が受信し、データ処理装置115は、その印刷データを印刷部112で印刷可能なラスターデータに変換した後、印刷部112によって印刷媒体上に画像を形成する。
MFP100への操作者の指示は、MFP100に装備されたキー操作部とマネージメントPC101に接続されたキーボード及びマウスからなる入力部113から行われ、これら一連の動作はデータ処理部115内の制御部(不図示)で制御される。また、操作入力の状態表示及び処理中の画像データの表示は、表示部116で行われる。
記憶部111は、マネージメントPC101からも制御され、MFP100とマネージメントPC101とのデータの送受信及び制御は、ネットワークIF117及びLAN13を介して行われる。
これらMFP100とマネージメントPC101とのデータの授受及び制御は、LAN109が構成されている場合には、ネットワークI/F117を介してMFP100とマネージメントPC101を直結して実現するが、LAN109が構成されていない場合には、ネットワークI/F114に接続されるLAN102を介して実現する。
[処理概要]
次に、実施形態1の画像処理システムで実行する処理全体の概要を、図3を用いて説明する。
図3は本発明の実施形態1の画像処理システムで実行する処理全体の概要を示すフローチャートである。
まず、ステップS120で、MFP100の画像読取部110で、その原稿をラスタ状に走査して読み取り、例えば、600DPI−8ビットの画像信号を得る。この画像信号をデータ処理部115で前処理を施し、記憶部111に1ページ分の画像データ(イメージデータ)として保存する。
次に、ステップS121で、データ処理部115において、ブロックセレクション(BS)処理を行う。この処理は、マネージメントPC101の制御によって実行する。
具体的には、マネージメントPC101のCPUは、記憶部111に格納された処理対象の画像信号を、まず、文字/線画部分とハーフトーン画像部分とに領域分割し、文字/線画部分は更に段落で塊として纏まっているブロック毎に、あるいは線で構成された表、図形毎に分割する。
一方、ハーフトーン画像部分は、矩形に分離されたブロックの画像部分、背景部分等の、所謂ブロック毎に独立したオブジェクト(ブロック)に分割する。
また、詳細は後述するが、このBS処理によって生成された各ブロックには、それぞれのブロックに関する情報であるブロック情報が生成される。
次に、ステップS122で、原稿画像中に付加情報として記録された2次元バーコード、あるいはURL(あるいはURI(Uniform Resource Identifier))に該当するオブジェクト(ブロック)を検出する。付加情報がURL画像である場合は、そのURL画像をOCRで文字認識する。一方、付加情報が2次元バーコード画像である場合、その2次元バーコード画像をOMR(Optical Mark Recognition)でマーク解読を行う。
尚、ステップS122では、ステップS121のBS処理で得られた文字ブロックをOCRで文字認識する。
次に、ステップS123で、ステップS122の処理結果に基づいて、読取原稿画像のオリジナル電子ファイルが格納されている格納先を示すポインター情報を検出する。
次に、ステップS124で、ポインター情報の検出の有無を判定する。ポインター情報が検出されない場合(ステップS124でNO)、ステップS126に進む。一方、ポインター情報が検出された場合(ステップS124でYES)、ステップS125に進み、ポインター情報が示す格納先にオリジナル電子ファイルが存在するか否かを判定する。
尚、オリジナル電子ファイルは、例えば、図1のクライアントPC102内のハードディスク内、データベース105内、あるいはMFP100自体が有する記憶部111のいずれかに格納されており、ステップS123で検出したポインター情報に従って、これらの記憶装置内を検索する。
ステップS125において、オリジナル電子ファイルが検索されない場合(ステップS125でNO)、ステップS126に進む。一方、オリジナル電子ファイルが検索された場合(ステップS125でYES)、ステップS133に進む。
尚、ステップS125において、オリジナル電子ファイルが検索された場合でも、そのオリジナル電子ファイルが、PDFあるいはTIFFに代表されるイメージデータである場合は、ステップS126に進む。逆に、オリジナル電子ファイルが、以前に、本処理によって生成されたベクトルデータである場合には、ステップS133に進む。
ステップS126で、ステップS120で入力した読取原稿画像に基づいて、それに類似する電子ファイルを検索するファイル検索処理を実行する。
このファイル検索処理では、ステップS122で各文字ブロックに対して行ったOCR結果から単語を抽出して、その単語を有する電子ファイルを検索する全文検索を行う。あるいは、画像信号中の各ブロックの配列と各ブロックの属性(画像、文字等)で特定されるレイアウトを有する(あるいは類似する)電子ファイルを検索するレイアウト検索を行う。
次に、ステップS127で、ファイル検索処理の検索結果として得られる電子ファイル(群)を、読取原稿画像に対応する電子ファイル(あるいはそのサムネール画像(代表画像))の候補として表示部116に表示し、その候補から処理対象の電子ファイルの選択を受け付ける。
尚、候補が1つの場合、自動的に、ステップS128からステップS133に進む。
ステップS128で、表示部116に表示した電子ファイルの候補の中から電子ファイルが選択されたか否かを判定する。電子ファイルが選択された場合(ステップS128でYES)、ステップS133に進む。一方、電子ファイルが選択されない場合(ステップS128でNO)、ステップS129に進む。
尚、ステップS128において、電子ファイルが選択された場合でも、その電子ファイルが、PDFあるいはTIFFに代表されるイメージデータである場合は、ステップS129に進む。
ステップS129で、イメージデータ(ステップS120で入力された読取原稿画像(イメージデータ)あるいはステップS127で選択されたイメージデータの電子ファイル)をベクトルデータに変換するベクトル化処理を実行する。
このベクトル化処理では、まず、ステップS122でOCR処理された文字ブロックに対して、更に、文字のサイズ、スタイル、字体(フォント)を認識し、原稿を走査して得られる文字と可視的に忠実なフォントデータに変換する。一方、線で構成される表、図形ブロックに対しては、アウトライン化する。また、画像ブロックに対しては、イメージデータとして個別のJPEGファイルに変換する。
これらの各種ブロックに対するベクトル化処理は、各ブロック毎にそのブロック情報に基づいて行い、更に各ブロックのレイアウト情報を保存する。
次に、ステップS130で、ステップS129で得られたベクトルデータを、文書作成アプリケーションによって処理することが可能な、所定形式(例えば、rtf形式)のアプリケーションデータ(アプリデータ)に変換するアプリデータ変換処理を実行する。そして、ステップS131で、その生成されたアプリデータを、ステップS120で入力されたイメージデータに対応する電子ファイルとして、記憶部111あるいは文書管理サーバ106等に格納する。
次に、ステップS132で、以降、同様の処理を行う際に、読取原稿画像から直接、それに対応する電子ファイルとして検索できるようにするために、電子ファイルの検索用のインデックス情報を生成するインデックス生成処理を実行する。そして、生成されたインデックス情報は、例えば、記憶部111で管理されている検索用インデックスファイルに追加される。
ステップS133で、ステップS125で検索されたオリジナル電子ファイルの格納アドレス、あるいはステップS128で選択された電子ファイルの格納アドレス、あるいはステップS131で格納された電子ファイルの格納アドレスを、表示部111に通知する。
ステップS134で、入力部113からの操作指示が、読取原稿画像の登録指示であるか否かを判定する。登録指示でない場合(ステップS134でNO)、ステップS136に進む。一方、登録指示である場合(ステップS134でYES)、ステップS135に進む。
尚、ステップS134の処理は、ポインター情報が存在しない読取原稿画像を当該画像処理システムで再利用するために、その読取原稿画像のイメージ情報/ベクトルデータ/ステップS128で選択された電子ファイルをオリジナル電子ファイルとしてユーザが登録したい場合の登録操作の実行指示の有無を判定するものである。
そのため、ポインター情報が存在する読取原稿画像の場合は、通常、この登録操作が実行されないことが想定される。但し、ポインター情報が存在していて、読取原稿画像に対応するオリジナル電子ファイルが既に存在している場合でも、用途や目的によっては、改めてこの読取原稿画像を登録したい場合が存在するので、この登録操作は、ポインター情報が存在しない読取原稿画像に対して実行するとは限らない。
また、登録操作ではなく、読取原稿画像の複写操作(印刷装置)が指示された場合には、オリジナル電子ファイルの登録を行うとともに、そのオリジナル電子ファイルを読取原稿画像に対する印刷物として複写(印刷)するようにしても良い。
ステップS135で、登録対象の読取原稿画像に対するポインター情報を生成して、その読取原稿画像に対応するオリジナル電子ファイルにイメージデータとして付加するポインター情報付加処理を実行する。そして、このポインター情報が付加されたオリジナル電子ファイルは、例えば、図1のクライアントPC102内のハードディスク内、データベース105内、あるいはMFP100自体が有する記憶部111のいずれかに格納される。また、この格納に併せて、そのオリジナル電子ファイルを印刷部112から印刷するようにしても良い。
ステップS136で、読取原稿画像に対応するオリジナル電子ファイルに対する各種処理(編集/蓄積/伝送(FAX送信、Eメール送信、ファイル送信)/印刷等)を実行するための、操作画面を表示部116に提示し、その操作画面を介して、オリジナル電子ファイルに対する各種処理を実行することができる。
ここで、各種処理として、例えば、印刷(複写)の場合には、各オブジェクトに最適な色処理、空間周波数補正等の画像処理が施された後、印刷部112より印刷される。また、蓄積の場合には、記憶部111に記憶保持される。また、伝送(ファイル送信)の場合には、汎用のファイル形式として、例えば、RTF(Rich Text Format)形式に変換したり、SVG形式に変換したりして、ファイル送信先で再利用可能なファイル形式にして変換して、ネットワークI/F114を介してファイル送信先(例えば、クライアントPC102)へファイル送信する。
このように、本画像処理システムでは、通常、読取原稿画像に対応するオリジナル電子ファイルとしてベクトルデータが管理され、そのベクトルデータを用いた各種処理を実行することができるので、処理対象のデータの情報量を削減でき、かつ蓄積効率が高まり、伝送時間を短縮でき、かつ出力(表示/印刷)する際には高品位な画像で出力することができる。
[各処理の詳細]
以下、各処理の詳細について説明する。
[ブロックセレクション処理]
まず、ステップS121のBS処理の詳細について説明する。
BS処理とは、例えば、図4(a)のラスター画像を、図4(b)のように、意味のあるブロック毎の塊として認識し、該ブロック各々の属性(文字(TEXT)/図画(PICTURE)/写真(PHOTO)/線(LINE)/表(TABLE)等)を判定し、異なる属性を持つブロックに分割する処理である。
BS処理の実施形態を以下に説明する。
まず、入力画像を白黒に二値化し、輪郭線追跡を行って黒画素輪郭で囲まれる画素の塊を抽出する。面積の大きい黒画素の塊については、内部にある白画素に対しても輪郭線追跡を行って白画素の塊を抽出、さらに一定面積以上の白画素の塊の内部からは再帰的に黒画素の塊を抽出する。
このようにして得られた黒画素の塊を、大きさ及び形状で分類し、異なる属性を持つブロックへ分類していく。例えば、縦横比が1に近く、大きさが一定の範囲のブロックは文字相当の画素塊とし、さらに近接する文字が整列良くグループ化可能な部分を文字ブロック、扁平な画素塊を線ブロック、一定大きさ以上でかつ矩形の白画素塊を整列よく内包する黒画素塊の占める範囲を表ブロック、不定形の画素塊が散在している領域を写真ブロック、それ以外の任意形状の画素塊を図画ブロックとする。
そして、BS処理では、各ブロックを特定するブロックIDを発行し、各ブロックの属性(画像、文字等)、サイズやオリジナル文書内の位置(座標)と各ブロックを関連付けて記憶部111にブロック情報として記憶する。また、これらのブロック情報は、以降に詳細を説明するステップS129のベクトル化処理や、ステップS132のインデックス生成処理で利用される。
ここで、ブロック情報の一例について、図5を用いて説明する。
図5は本発明の実施形態1のブロック情報の一例を示す図である。
図5に示すように、ブロック情報は、各ブロックの属性を示すブロック属性(1:テキスト、2:図画、3:表、4:線、5:写真)、ブロックの位置座標(X,Y)、ブロックの幅W及び高さH、ブロックのOCR情報(テキストデータ)の有無で構成されている。
ここで、ブロックの位置座標(X,Y)とは、例えば、原稿画像の左上角を原点(0,0)とした場合の位置座標である。また、幅W及び高さHは、例えば、画素数で表現される。また、このブロック情報に加えて、BS処理では、原稿画像(入力ファイル)に存在するブロック数Nを示す入力ファイル情報を生成する。図5の例の場合、入力ファイル情報はN=6となる。
[OCR/OMR処理(ポインター情報検出処理)]
次に、図3のステップS122の処理の詳細について、図6を用いて説明する。
図6は本発明の実施形態1のステップS122の処理の詳細を示すフローチャートである。
尚、図6では、例えば、図7に示すような原稿画像310中に付加された2次元バーコード(例えば、QRコードシンボル)311を復号して、データ文字列を出力する処理について説明する。
まず、ステップS300で、データ処理部115内のページメモリに格納された原稿画像310を表すイメージ画像をCPU(不図示)で走査して、上述のBS処理の処理結果に基づいて、所定の2次元バーコードシンボル311(ブロック)の位置を検出する。
特に、実施形態1の場合、2次元バーコードシンボル311であるQRコードの位置検出パターンは、2次元バーコードシンボル311の4隅の内の3隅に配置される同一の位置検出パターンから構成される。そのため、実施形態1では、この位置検出パターンを検出することで、2次元バーコードシンボル311の位置を検出する。
次に、ステップS301で、位置検出パターンに隣接する形式情報を復元し、シンボルに適用されている誤り訂正レベル及びマスクパターンを取得する。
次に、ステップS302で、2次元バーコードシンボル311を特定する型番を決定する。その後、ステップS303で、形式情報で取得されたマスクパターンを使って、符号化領域ビットパターンをXOR演算することによってマスク処理を解除する。
次に、ステップS304で、モデルに対応する配置規則に従い、シンボルキャラクタを読み取り、2次元バーコードシンボル311のデータコード語及び誤り訂正コード語を復元する。
次に、ステップS305で、復元された誤り訂正コード語上に、誤りがあるか否かを判定する。誤りがない場合(ステップS305でNO)、ステップS307に進む。一方、誤りがある場合(ステップS305でYES)、ステップS306に進み、誤りを訂正する。
ステップS307で、誤り訂正されたデータより、モード指示子および文字数指示子に基づいて、データコード語をセグメントに分割する。
最後に、ステップS308で、使用モードに基づいてデータ文字を復号し、その復号結果を出力する。
尚、2次元バーコード内に組み込まれた情報は、対応する電子ファイルのアドレス情報(ポインター情報)を示している。ここで、アドレス情報とは、URL(URI)や、サーバ名とディレクトリ、ファイル名からなる電子ファイルの格納先を示すフルパス情報である。
また、実施形態1では、ポインター情報が2次元バーコードとして付加された原稿画像310の例について説明したが、ポインター情報を直接文字列として原稿画像310に印刷するようにしても良い。この場合は、所定のルールに従った文字ブロックを、先のBS処理で検出し、ポインター情報を示す文字画像の各文字を文字認識することで、直接オリジナル電子ファイルのアドレス情報を得ることが可能である。
また、図7の原稿画像310の文字ブロック312、あるいは文字ブロック313に対して隣接する文字と文字の文字間隔に視認し難い程度の変調を加え、この文字間隔に情報を埋め込むことで、ポインター情報を原稿310に埋め込むようにしても良い。この場合、後述する文字認識処理を行う際に各文字の文字間隔を検出することで、ポインター情報を得ることが可能である。更には、自然画314の中に、電子透かし情報として、ポインター情報を付加することも可能である。
[検索処理]
次に、図3のステップS125における、ポインター情報によるオリジナル電子ファイルの検索処理について、図8のフローチャートを使用して説明する。
図8は本発明の実施形態1のオリジナル電子ファイルの検索処理を示すフローチャートである。
まず、ステップS400で、MFP100は、ポインター情報に含まれるアドレス情報に基づいて、電子ファイルの格納先となるファイルサーバを特定する。
ここで、ファイルサーバとは、クライアントPC102や、データベース105を管理する文書管理サーバ106、あるいは記憶部111を内蔵するMFP100自身を指すものである。
次に、ステップS401で、MFP100は、特定したファイルサーバに対してアドレス情報を転送する。
ステップS402で、ファイルサーバは、アドレス情報を受信すると、そのアドレス情報に対応するオリジナル電子ファイルを検索する。ステップS403で、オリジナル電子ファイルが存在するか否かを判定する。オリジナル電子ファイルが存在しない場合(ステップS403でNO)には、MFP100に対して、その旨を通知する。
一方、オリジナル電子ファイルが存在する場合(ステップS403でYES)、ステップS408に進み、オリジナル電子ファイルのアドレスを通知すると共に、そのオリジナル電子ファイルをMFP100に転送する。
尚、図8の処理において、よりセキュリティ性を向上させたい場合には、例えば、図9に示すように、オリジナル電子ファイルを要求するユーザの認証を行うようにしても良い。つまり、処理対象のオリジナル電子ファイルの中には、第3者による再利用を制限したいものがあり、図8の処理では、ファイルサーバに蓄積されたオリジナル電子ファイルは全て自由にアクセスでき、オリジナル電子ファイル全体、或いはその一部のオブジェクトは全て再利用が可能なことを前提にしている。
そこで、オリジナル電子ファイルへのアクセスをユーザ別に制限する場合の処理について、図9を用いて説明する。
図9は本発明の実施形態1のオリジナル電子ファイルの検索処理の応用例を示すフローチャートである。
尚、図9の処理において、図8の処理と同一の処理には、同一のステップS番号を付加して、その説明は省略する。
図9では、ステップS403で、オリジナル電子ファイルが存在する場合、ステップS404で、そのオリジナル電子ファイルにアクセス制限があるか否かを判定する。アクセス制限がない場合(ステップS404でNO)、ステップS408に進む。一方、アクセス制限がある場合(ステップS404でYES)、ステップS405に進み、MFP100は、表示部116に、パスワード入力画面を提示し、MFP100を操作するユーザにパスワードの入力を要求する。
ステップS406で、MFP100は、パスワードが入力されると、それをファイルサーバへ転送する。ステップS407で、パスワードに基づくファイルサーバによる認証が成功したか否かを判定する。認証が失敗した場合(ステップS407でNO)、ステップS405に戻る。一方、認証が成功した場合(ステップS407でYES)、ステップS408に進む。
尚、ステップS407において、認証が失敗した場合には、再度、パスワードの入力を要求する構成となっているが、その認証の失敗回数が所定回数を越えた場合には、不正なユーザによる操作と判断して、処理そのものを中止するようにしても良い。
また、ステップS407での認証方法は、パスワードを用いた認証方法に限定されず、例えば、指紋認証等の一般に広く用いられている生体認証、カードによる認証等のあらゆる全ての認証方法を用いて実現することができる。
また、この認証については、以下のファイル検索処理においても適用することが可能である。
更に、ファイルサーバ内からオリジナル電子ファイルを検索できない場合、即ち、図3のステップS129〜ステップS132の一連の処理に対しても、同様の認証を適用することが可能である。即ち、読取原稿画像に対してのアクセス権の制限の存在を検出した場合には、そのアクセス権の認証が成功した場合にのみ、ステップS129以降の処理を実行することで、ユーザ別や読取原稿画像別に画像処理システムで実現できる処理を制限でき、より機密性を高めることができる。
[ファイル検索処理]
次に、図3のステップS126の処理の詳細について、図5及び図10を用いて説明する。
図10は本発明の実施形態1のステップS126の処理の詳細を示すフローチャートである。
尚、ステップS126の処理は、ステップS124で読取原稿画像(入力ファイル)にポインター情報が存在しなかった場合、または、ポインター情報は存在するがオリジナル電子ファイルが見つからなかった場合、あるいはオリジナル電子ファイルがイメージファイルである場合に実行される。
また、ステップS126の処理は、ステップS122の処理によって得られたブロック情報及び入力ファイル情報を利用することになるが、ここでは、その具体例として、図5に示したブロック情報及び入力ファイル情報を用いて説明する。また、図5のブロック情報において、各ブロックは、X座標の小さい順、即ち、X1<X2<X3<X4<X5<X6に、ブロック1、ブロック2、ブロック3、ブロック4、ブロック5、ブロック6が管理されているとする。
以下、これらのブロック情報及び入力ファイル情報を使用して、ファイルサーバが管理するデータベース内から、入力ファイルに類似した電子ファイルを、レイアウト検索処理で検索する処理について、図10を用いて説明する。ここで、データベースで管理されている各電子ファイルには、図5と同様のファイル情報及びブロック情報が付与されていることを前提とする。また、レイアウト検索処理は、入力ファイルとデータベース中の電子ファイルを順次比較して実行される。
まず、ステップS510で、後述する類似率等を算出するための各種初期値の設定を行う。次に、ステップS511で、ブロック総数の比較を行う。ここで、入力ファイルの総ブロック数をn、データベース中の比較対象の電子ファイルの総ブロック数をN、誤差ΔNとすると、ここでの比較は、条件式N−ΔN<n<N+ΔNを満足するか否かを判定する。
ステップS511において、条件式を満足しない場合(ステップS511でNO)、ステップS526に進み、処理対象の電子ファイルを次の電子ファイルに設定して、ステップS510に戻る。一方、条件式を満足する場合(ステップS511でYES)、ステップS512以降の処理で、入力ファイルと比較対象の電子ファイル内のブロック情報に基づく比較を実行する。
まず、ステップS512で、ブロック情報に基づいて、入力ファイルと比較対象の電子ファイルそれぞれの処理対象のブロックのブロック属性を比較する。ブロック属性が不一致である場合、ステップS521に進み、比較対象の電子ファイルの総ブロック数N≧入力ファイルのブロック数nである場合には、処理対象のブロックとして、入力ファイルの次のブロックに設定する。一方、比較対象の電子ファイルの総ブロック数N<入力ファイルのブロック数nである場合には、処理対象のブロックとして、比較対象の電子ファイルの次のブロックに設定する。
一方、ステップS512において、ブロック属性が一致する場合、ステップS513に進み、属性類似率を算出して、その値を更新する。
ステップS514で、ブロック情報に基づいて、入力ファイルと比較対象の電子ファイルそれぞれの処理対象のブロックのサイズ(幅及び高さ)を比較する。ここで、入力ファイル中の処理対象のブロックの幅をw、高さをh、比較対象の電子ファイル中の処理対象のブロックの幅をW、その誤差ΔW、高さをH、その誤差ΔHとすると、ここでの比較は、条件式W−ΔW<w<W+ΔW及びH−ΔH<h<H+ΔHを満足するか否かを判定する。
尚、この条件式に加えて、ブロックの位置(X,Y)による比較を行うようにしても良い。
ステップS514において、条件式を満足しない場合(ステップS514でNO)、ステップS521に進む。一方、条件式を満足する場合(ステップS514でYES)、ステップS515に進み、サイズ類似率を算出して、その値を更新する。
ステップS516で、ブロック情報に基づいて、入力ファイルと比較対象の電子ファイルそれぞれの処理対象のブロックのOCR情報の有無を判定する。OCR情報がない場合(ステップS516でNO)、ステップS521に進む。一方、OCR情報がある場合(ステップS516でYES)、ステップS517に進み、OCR情報を比較する。
ステップS518で、OCR類似率を算出して、その値を更新する。ステップS519で、入力ファイルの中の全ブロックに対する比較処理が終了したか否かを判定する。比較処理が終了していない場合(ステップS519でNO)、ステップS520に進み、比較対象の電子ファイルの総ブロック数N≦入力ファイルのブロック数nである場合には、処理対象のブロックとして、入力ファイルの次のブロックに設定する。一方、比較対象の電子ファイルの総ブロック数N>入力ファイルのブロック数nである場合には、処理対象のブロックとして、比較対象の電子ファイルの次のブロックに設定する。
一方、ステップS519において、比較処理が終了している場合(ステップS519でYES)、ステップS522に進む。
ステップS522で、ステップS513、ステップS515、ステップS518で算出した各種類似率に基づいて、総合類似率を算出する。
尚、ステップS513、ステップS515、ステップS518の各種類似率の算出方法については、従来よりの公知の技術を用いて算出できるので、ここでは、その算出方法の詳細については省略する。
ステップS523で、総合類似率が所定閾値Thより大きいか否かを判定する。総合類似率が所定閾値Th未満である場合(ステップS523でNO)、ステップS526に進む。一方、総合類似率が所定閾値Thより大きい場合(ステップS523でYES)、ステップS524に進み、その電子ファイルを入力ファイルの類似候補として保存する。
次に、ステップS525で、データベース中の全電子ファイルに対する比較処理が終了したか否かを判定する。比較処理が終了していない場合(ステップS525でNO)、ステップS526に進む。一方、比較処理が終了している場合(ステップS525でYES)、処理を終了する。
以上の処理によって、総合類似度が閾値THより大きい電子ファイルが存在する場合、その電子ファイルは入力ファイルに類似する電子ファイル候補として確定する。そして、この電子ファイル候補を、図3のステップS127で出力することで、ユーザは所望する電子ファイルの選択を行うことができる。
[ベクトル化処理]
次に、図3のステップS129のベクトル化処理の詳細について説明する。
ベクトル化処理では、文字ブロックに対しては、まず、各文字に対して文字認識処理を行う。
この文字認識処理では、文字ブロックから文字単位で切り出された文字画像に対し、パターンマッチの一手法を用いて文字認識を行い、対応する文字コードを取得する。特に、この文字認識処理は、文字画像から得られる特徴を数十次元の数値列に変換した観測特徴ベクトルと、あらかじめ字種毎に求められている辞書特徴ベクトルとを比較し、最も距離の近い字種を認識結果とするものである。
特徴ベクトルの抽出には種々の公知手法があり、例えば、文字をメッシュ状に分割し、各メッシュブロック内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴とする方法がある。
そして、文字ブロックに対して文字認識処理を行う場合は、まず、該当文字ブロックに対し横書き/縦書きの判定を行い、各々対応する方向に文字列を切り出し、その後、文字列から文字を切り出して文字画像を取得する。
横書き/縦書きの判定は、該当文字ブロック内で画素値に対する水平/垂直の射影を取り、水平射影の分散が大きい場合は横書き、垂直射影の分散が大きい場合は縦書きと判定する。文字列及び文字への分解は、横書きの文字ブロックである場合には、その水平方向の射影を利用して行を切り出し、さらに切り出された行に対する垂直方向の射影から、文字を切り出すことで行う。一方、縦書きの文字ブロックに対しては、水平と垂直を逆にすれば良い。
尚、この文字認識処理によって、文字のサイズを検出することができる。
加えて、文字認識処理の際に用いる、字種数分の辞書特徴ベクトルを、文字形状種、即ち、フォント種に対して複数用意し、マッチングの際に文字コードとともにフォント種を出力することで、文字のフォントを認識することができる。
以上の文字認識処理によって得られた、文字コードおよびフォント情報を用いて、各々あらかじめ用意されたアウトラインデータを用いて、文字部分の情報をベクトルデータに変換する。尚、原稿画像がカラー画像の場合は、そのカラー画像から各文字の色を抽出してベクトルデータとともに記録する。
以上の処理により、文字ブロックに属するイメージ情報を、ほぼ形状、大きさ、色が忠実なベクトルデータに変換できる。
次に、文字ブロック以外の図画あるいは線、表ブロックについては、そのブロック中で抽出された画素塊の輪郭をベクトルデータに変換する。
具体的には、輪郭をなす画素の点列を角と看倣される点で区切って、各区間を部分的な直線あるいは曲線で近似する。角とは曲率が極大となる点であり、曲率が極大となる点は、図11に示すように、任意点Piに対し左右k個の離れた点Pi−k、Pi+kの間に弦を引いたとき、この弦とPIの距離が極大となる点として求められる。
また、Pi−k、Pi+k間の弦の長さ/弧の長さをRとし、Rの値が閾値以下である点を角とみなすことができる。角によって分割された後の各区間は、直線は点列に対する最小二乗法等の計算式を用いて、また、曲線は3次スプライン関数等の関数を用いてベクトル化することができる。
また、対象が内輪郭を持つ場合、BS処理で抽出した白画素輪郭の点列を用いて、同様に部分的直線あるいは曲線で近似する。
以上のように、輪郭の区分線近似を用いれば、任意形状の図形のアウトラインをベクトル化することができる。尚、原稿画像がカラー画像の場合は、そのカラー画像から図形の色を抽出してベクトルデータとともに記録する。
また、図12に示すように、ある区間で外輪郭と、内輪郭あるいは別の外輪郭が近接している場合、2つの輪郭線をひとまとめにし、太さを持った線として表現することができる。
具体的には、ある輪郭の各点Piから別輪郭上で最短距離となる点Qiまで線を引き、各距離PQiが平均的に一定長以下の場合、注目区間はPQi中点を点列として直線あるいは曲線で近似し、その太さはPQiの平均値とする。線や線の集合体である表罫線は、このような太さを持つ線の集合として効率よくベクトル表現することができる。
尚、先に文字ブロックに対する文字認識処理を用いたベクトル化を説明したが、該文字認識処理の結果、辞書からの距離が最も近い文字を認識結果として用いるが、この距離が所定値以上の場合は、必ずしも本来の文字に一致せず、形状が類似する文字に誤認識している場合が多い。
従って、本発明では、このような文字ブロックに対しては、一般的な線画と同じに扱い、その文字ブロックをアウトライン化する。即ち、従来の文字認識処理で誤認識を起こす文字に対しても誤った文字にベクトル化されず、可視的にイメージデータに忠実なアウトライン化によるベクトル化が行える。
また、写真ブロックに対しては、そのままイメージデータとして、ベクトル化は実行しない。
次に、ベクトル化処理によって得られたベクトルデータを図形ブロック毎にグループ化するグループ化処理について、図13を用いて説明する。
図13は本発明の実施形態1のベクトルデータのグループ化処理を示すフローチャートである。
特に、図13では、ベクトルデータを図形ブロック毎にグループ化する処理について説明する。
まず、ステップS700で、各ベクトルデータの始点、終点を算出する。次に、ステップS701で、各ベクトルデータの始点、終点情報を用いて、図形要素を検出する。
ここで、図形要素の検出とは、区分線が構成している閉図形を検出することである。検出に際しては、閉形状を構成する各ベクトルはその両端にそれぞれ連結するベクトルを有しているという原理を応用し、検出を行う。
次に、ステップS702で、図形要素内に存在する他の図形要素、もしくは区分線をグループ化し、一つの図形オブジェクトとする。また、図形要素内に他の図形要素、区分線が存在しない場合は図形要素を図形オブジェクトとする。
次に、図13のステップS701の処理の詳細について、図14を用いて説明する。
図14は本発明の実施形態1のステップS701の処理の詳細を示すフローチャートである。
まず、ステップS710で、ベクトルデータより両端に連結していない不要なベクトルを除去し、閉図形構成ベクトルを抽出する。
次に、ステップS711で、閉図形構成ベクトルの中から該ベクトルの始点を開始点とし、時計回りに順にベクトルを追跡する。そして、この追跡を、開始点に戻るまで行い、通過したベクトルを全て一つの図形要素を構成する閉図形としてグループ化する。また、閉図形内部にある閉図形構成ベクトルも全てグループ化する。さらにまだグループ化されていないベクトルの始点を開始点とし、同様の処理を繰り返す。
最後に、ステップS712で、ステップS710で除去された不要ベクトルの内、ステップS711で閉図形としてグループ化されたベクトルに接合しているもの(閉図形連結ベクトル)を検出し、一つの図形要素としてグループ化する。
以上の処理によって、図形ブロックを個別に再利用可能な個別の図形オブジェクトとして扱うことが可能になる。
[アプリデータ変換処理]
次に、図3のステップS130のアプリデータ変換処理の詳細について説明する。
ここで、図3のステップS121のBS処理と、ステップS129のベクトル化処理の処理結果は、図15に示すような、中間データ形式のファイルとして変換されているが、このようなデータ形式は、ドキュメント・アナリシス・アウトプット・フォーマット(DAOF)と呼ばれる。
ここで、DAOFのデータ構造について、図15を用いて説明する。
図15は本発明の実施形態1のDAOFのデータ構造を示す図である。
図15において、Header791では、処理対象の原稿画像に関する情報が保持される。レイアウト記述データ部792では、原稿画像中のTEXT(文字)、TITLE(タイトル)、CAPTION(キャプション)、LINEART(線画)、PICTURE(自然画)、FRAME(枠)、TABLE(表)等の属性毎に認識された各ブロックの属性情報とその矩形アドレス情報を保持する。
文字認識記述データ部793では、TEXT、TITLE、CAPTION等のTEXTブロックを文字認識して得られる文字認識結果を保持する。
表記述データ部794では、TABLEブロックの構造の詳細を格納する。画像記述データ部795は、PICTUREやLINEART等のブロックのイメージデータを文書画像データから切り出して保持する。
このようなDAOFは、中間データとしてのみならず、それ自体がファイル化されて保存される場合もあるが、このファイルの状態では、所謂一般の文書作成アプリケーションで個々のオブジェクト(ブロック)を再利用することはできない。
そこで、実施形態1では、このDAOFから、文書作成アプリケーションで利用可能なアプリデータに変換するアプリデータ変換処理(ステップS130)の詳細について、図16を用いて説明する。
図16は本発明の実施形態1のステップS130の処理の詳細を示すフローチャートである。
まず、ステップS8000で、DAOFデータの入力を行う。次に、ステップS8002で、アプリデータの元となる文書構造ツリーを生成する。そして、ステップS8004で、文書構造ツリーを元に、DAOF内の実データを流し込み、実際のアプリデータを生成する。
次に、図16のステップS8002の処理の詳細について、図17を用いて説明する。
図17は本発明の実施形態1のステップS8002の処理の詳細を示すフローチャートである。また、図18は本発明の実施形態1の文書構造ツリーの説明図である。
尚、図17の処理において、全体制御の基本ルールとして、処理の流れは、ミクロブロック(単一ブロック)からマクロブロック(ブロックの集合体)へ移行する。
以後、ブロックとは、ミクロブロック及びマクロブロック全体を指す。
まず、ステップS8100で、ブロック単位で縦方向の関連性を元に再グループ化する。スタート直後は、ミクロブロック単位での判定となる。
ここで、関連性とは、距離が近い、ブロック幅(横方向の場合は高さ)がほぼ同一であることなどで定義することができる。また、距離、幅、高さなどの情報はDAOFを参照し、抽出する。
例えば、図18(a)は実際の原稿画像のページ構成、図18(b)はその文書構造ツリーである。ステップS8100の処理によって、ブロックT3、T4、T5が一つのグループV1、ブロックT6、T7が一つのグループV2が同階層グループとして、まず生成される。
ステップS8102で、縦方向のセパレータの有無をチェックする。セパレータとは、例えば、物理的にはDAOF中で線の属性を持つブロックである。また、論理的な意味としては、文書作成アプリケーション中で明示的にブロックを分割する要素である。ここでセパレータを検出した場合は、同じ階層で再分割する。
ステップS8104で、分割がこれ以上存在し得ないか否かを縦方向のグループ長を利用して判定する。具体的には、縦方向のグループ長が原稿画像のページ高さであるか否かを判定する。縦方向のグループ長がページ高さである場合(ステップS8104でYES)、処理を終了する。一方、縦方向のグループ長がページ高さでない場合(ステップS8104でNO)、ステップS8106に進む。
図18(a)の原稿画像の場合は、セパレータもなく、グループ長はページ高さではないので、ステップS8106に進む。
ステップS8106で、ブロック単位で横方向の関連性を元に再グループ化する。ここもスタート直後の第一回目はミクロブロック単位で判定を行うことになる。また、関連性、及びその判定情報の定義は、縦方向の場合と同じである。
図18(a)の原稿画像の場合は、ブロックT1、T2でグループH1、グループV1、V2でグループH2、グループV1、V2の階層の1つ上の同階層グループとして生成される。
ステップS8108で、横方向セパレータの有無をチェックする。図18(a)では、S1が横方向セパレータとなっているので、これを文書構造ツリーに登録し、H1、S1、H2という階層が生成される。
ステップS8110で、分割がこれ以上存在し得ないか否かを横方向のグループ長を利用して判定する。具体的には、横方向のグループ長がページ幅であるか否かを判定する。横方向のグループ長がページ幅である場合(ステップS8110でYES)、処理を終了する。一方、横方向のグループ長がページ幅でない場合(ステップS8110でNO)、ステップS8102に戻り、再びもう一段上の階層で、ステップS8100以降の処理を実行する。
図18の場合は、横方向のグループ長がページ幅となるので、ステップS8110で処理を終了し、最後に、ページ全体を表す最上位階層のV0が文書構造ツリーに付加される。
文書構造ツリーが完成した後、その文書構造ツリーに基づいて、図16のステップS8004で、アプリデータの生成を行う。
図18の場合は、具体的には、以下のようにして、アプリデータを生成する。
即ち、H1は横方向に2つのブロックT1とT2があるので、2カラムとして出力し、ブロックT1の内部情報(DAOFを参照、文字認識結果の文章、画像など)を出力し、その後、カラムを変え、ブロックT2の内部情報を出力、その後、S1を出力する。
次に、H2は横方向に2つのブロックV1とV2があるので、2カラムとして出力し、ブロックV1はT3、T4、T5の順にその内部情報を出力し、その後、カラムを変え、ブロックV2のT6、T7の内部情報を出力する。
以上のようにして、DAOFからアプリデータへの変換処理を実行する。
[ポインター情報付加処理]
次に、図3のステップS135の処理の詳細について、図19を用いて説明する。
図19は本発明の実施形態1のステップS135の処理の詳細を示すフローチャートである。
尚、図19では、例えば、ポインター情報としてのデータ文字列を、2次元バーコード(QRコードシンボル:JIS X0510)311にて符号化して、画像中に付加する処理について説明する。
また、2次元バーコード内に組み込むデータは、対応する電子ファイルのアドレス情報を表しており、例えば、ファイルサーバ名およびファイル名からなるパス情報で構成される。あるいは、対応する電子ファイルへのURL(URI)や、対応する電子ファイルの格納されているデータベース105内あるいはMFP100自体が有する記憶部111内で管理されるファイルID等で構成される。
まず、ステップS900で、符号化する種種の異なる文字を識別するため、入力データ列を分析する。また、誤り検出及び誤り訂正レベルを選択し、入力データが収容できる最小型番を選択する。
ステップS901で、入力データ列を所定のビット列に変換し、必要に応じてデータのモード(数字、英数字、8ビットバイト、漢字等)を表す指示子や、終端パターンを付加する。また、所定のビットコード語に変換する。
この時、誤り訂正を行うため、ステップS902で、コード語列を型番及び誤り訂正レベルに応じて所定のブロック数に分割し、各ブロック毎に誤り訂正コード語を生成し、データコード語列の後に付加する。
ステップS903で、ステップS902で得られた各ブロックのデータコード語を接続し、各ブロックの誤り訂正コード語、必要に応じて剰余コード語を後続する。
ステップS904で、マトリクスに位置検出パターン、分離パターン、タイミングパターン及び位置合わせパターン等とともにコード語モジュールを配置する。
ステップS905で、シンボルの符号化領域に対して最適なマスクパターンを選択して、マスク処理パターンをステップS904で得られたモジュールにXOR演算により変換するマスク処理を実行する。
ステップS906で、ステップS905で得られたモジュールに形式情報及び型番情報を生成して、2次元コードシンボルを完成する。
以上の処理によって、アドレス情報が組み込まれた2次元バーコードは、例えば、クライアントPC102から対応する電子ファイルをプリントデータとして印刷部112で印刷する場合に、データ処理部115内で記録可能なラスターデータに変換された後に、その電子ファイルのラスターデータ上の所定の個所に付加されて印刷される。ここで、2次元バーコード(ポインター情報)が印刷された印刷物(原稿)を、画像読取部110で読み取ることにより、そのポインター情報で特定されるオリジナル電子ファイルの格納場所を検出することができる。
尚、同様の目的で、ポインター情報を2次元バーコードで表現する以外に、例えば、直接文字列で電子ファイルに付加する方法、電子ファイル上の文字列、特に、文字と文字の間隔を変調して情報を埋め込む方法、電子ファイル中の中間調画像(サムネール画像)中に埋め込む方法等、一般に電子透かしと呼ばれる方法を適用することができる。
[電子ファイル検索に関する応用例]
実施形態1では、読取原稿画像に対応するオリジナル電子ファイル(電子ファイル)の検索は、その読取原稿画像中のポインター情報あるいは読取原稿画像中の各オブジェクトに関するオブジェクト情報(属性情報、レイアウト、OCR情報等)に基づいて実行する構成としているが、より正確にオリジナル電子ファイルを検索する場合には、ポインター情報とオブジェクト情報の両者に基づいて実行する構成としても良い。
即ち、読取原稿画像中のポインター情報からオリジナル電子ファイルが検索できたとしても、更に、読取原稿画像中のオブジェクト情報に基づく検索(例えば、レイアウトに従うレイアウト検索、OCR情報による全文検索等)を、ポインター情報から検索されたオリジナル電子ファイルに対して行い、高い一致率が得られた場合に、そのオリジナル電子ファイルを、正式なオリジナル電子ファイルとして特定する。
特に、このような構成とすることで、例えば、ポインター情報の検出精度が曖昧で複数のオリジナル電子ファイル候補が検索された場合に対して、オブジェクト情報に基づく検索を行うことで、オリジナル電子ファイル候補を更に絞り込んで、オリジナル電子ファイルを特定することができるため、より高速でかつ精度の高い特定を実現することできる。 [ベクトル化処理の応用例]
実施形態1では、読取原稿画像に対応するオリジナル電子ファイルあるいは電子ファイルを特定できない場合、その読取原稿画像全体に対してベクトル化処理を行う構成としているが、例えば、処理対象の読取原稿画像には、その画像中のオブジェクト全てが新規に作成されたものでなく、一部のオブジェクトは、既存の他の電子ファイルから流用して作成されている場合がある。
例えば、背景オブジェクト(壁紙)は、文書作成アプリケーションで幾つかのパターンを予め用意してあり、その中から選択して用いるのが通常である。従って、このような背景オブジェクトは、ファイルサーバ中の既存の電子ファイル中に存在している可能性が高く、また、再利用可能なベクトルデータとして存在する可能性が高い。
従って、図3のステップS129のベクトル化処理の別実施形態として、ブロックセレクション処理で個別のオブジェクトに分割された各オブジェクトに対して、該オブジェクト単位でファイルサーバ中から処理対象のオブジェクトを含む電子ファイルを検索し、検索された場合には、そのオブジェクトに対して、個別に検索された電子ファイルからオブジェクト単位でベクトルデータを取得するようにしても良い。
このように構成することで、読取原稿画像全体に対してベクトル化処理を実行する必要がなくなり、ベクトル化処理をより高速に実行することができるとともに、ベクトル化処理よる画質劣化を防止することができる。
一方、図3のステップS126のファイル検索処理によって検索された電子ファイルがPDFファイルである場合、そのPDFファイル中の文字オブジェクトに対して既に文字認識された文字コードを付加ファイルとして有している場合がある。そして、このようなPDFファイルに対して、ベクトル化処理を適用する場合には、その付加ファイル(文字コードファイル)を用いれば、ステップS129の処理の一部として実行する文字認識処理を省略することができ、ベクトル化処理をより高速に実行することができる。
次に、データ処理部115の詳細構成について、図20を用いて説明する。
図20は本発明の実施形態1のデータ処理部の詳細構成を示す図である。
データ処理部115は、CPU2601を有し、ROM2602に格納されるプログラムに従って動作する。2603はDRAMであり、CPU2601がプログラムを動作させるために必要なワークメモリや画像を格納するための画像メモリとして使用する。2604はSRAMであり、バックアップ対象のデータを格納する。
2605は多値→2値変換及び2値→多値変換を行う画像変換処理部であり、DRAM2603からデータバス2616を経由して画像データを入力し、変換処理後の画像データをDRAM2603に書き戻す。
2606は画像の回転を行う回転処理処理部である。2607は画像の変倍を行う変倍処理部である。2608は画像の色空間を変換する色空間変換処理部である。2609及び2611はそれぞれネットワークI/Fであり、それぞれネットワークI/F114及び117(図2)に接続される。
2611は表示部I/Fであり、表示部116(図2)に接続される。2612は入力部I/Fであり、入力部113(図2)に接続される。2613は画像読取部I/Fであり、画像読取部110(図2)に接続される。2614は印刷部I/Fであり、印刷部112(図2)に接続される。2615は記憶部I/Fであり、記憶部111(図2)に接続される。
画像読取部110で読み取った画像は、画像読取部I/F2614を介してDRAM2603に蓄積される。画像変換処理部2605、回転処理部2606、変倍処理部2607、色空間変換処理部2608及びCPU2601を使用して、DRAM2603上の画像を入力部113で指示された、処理モードに従って画像処理を実行し、ネットワークI/F2609を介してネットワークI/F114から送信もしくは印刷部I/F2614を介して印刷部112から印刷を行う。
次に、操作部113と表示部116によって構成される操作画面の一例について、図21を用いて説明する。
特に、実施形態1では、例えば、ある組織において、複数種類の部門が存在する場合に、その部門毎にMFP100の操作を管理するための操作画面について説明する。
尚、以下の説明では、管理単位をある組織内の部門としているが、これ以外にも、組織内の課単位、事業所単位、営業所単位、年齢層単位、性別、職位単位等の組織内で分類することができる任意の項目を管理単位とすることができる。
図21は本発明の実施形態1の操作画面の一例を示す図である。
操作画面2000において、部門IDボタン2001を押下すると、部門を一意に特定する部門情報である部門IDをテンキー2005から入力することができる。テンキー2005から入力された部門IDは、部門ID表示領域2002に表示される。
また、暗証番号ボタン2003を押下すると、ユーザに対してあらかじめ設定されている暗証番号を、テンキー2005から入力することができる。テンキー2005から入力された暗証番号は、暗証番号表示領域2004に、入力数分の「*」表示がなされる。
これらの部門ID及び暗証番号の入力が終了したら、IDキー2006を押下することで、MFPの各種機能(例えば、コピー機能やスキャン機能)を使用するための操作画面に遷移する。
このように、図21では、操作画面2000によって、部門毎に、MFP100の使用管理を実現することができる。
この使用管理は、図21の操作画面2000に限定されず、ユーザが所有するIDカード等のコントロールカードを操作画面と併用して実現するようにしても良い。
この場合の操作画面の一例について、図22を用いて説明する。
図22は本発明の実施形態1の操作画面の別の一例を示す図である。
操作画面2102では、コントロールカードのセットを促すメッセージを表示する。これにより、ユーザは、カードリーダ2101にコントロールカード2103を挿入する。MFP100は、カードリーダ2101から得られるカード情報に基づいて、ユーザが所属する部門を判定し、その判定した部門に基づいて、MFPの各種機能(例えば、コピー機能やスキャン機能)を使用するための操作画面に遷移する。
次に、MFP100の使用を部門毎に管理するための管理画面について、図23を用いて説明する。
図23は本発明の実施形態1の管理画面の一例を示す図である。
特に、図23では、スキャン機能において、その使用制限を設定するための画面について説明する。
管理画面2201は、部門として、例えば、「開発部門A」のスキャン機能の使用制限に関する設定を行うための画面である。管理画面2201では、スキャン機能に対する使用制限を設定するための画面として、カラースキャンに対する使用制限を設定するための設定領域2202、白黒スキャンに対する制限を設定するための設定領域2203が構成されている。
このように、管理画面2201では、カラー原稿及び白黒原稿に対するスキャン機能の使用を独立に管理することが可能である。
尚、図23の例では、設定内容は、カラースキャン及び白黒スキャンともに共通であるためここでは、カラースキャン機能に対する使用制限の設定について説明する。
カラースキャン機能の使用制限の設定方法には、2種類の方法があり、原稿単位での使用制限(以下、面数制限)と、スキャン機能によって生成可能な原稿中のオブジェクト単位での使用制限(以下、オブジェクト数制限)がある。
面数制限設定領域2204では、面数制限の実行のON/OFFを設定可能である。また、オブジェクト数設定領域2212では、オブジェクト制限の実行のON/OFFを設定可能である。
ここで、面数制限とオブジェクト数制限は、同時にONに設定することも可能であるが、その場合には、どちらかの上限値に達した時点で、カラースキャン機能の使用が禁止される。
オブジェクト数設定領域2212で、オブジェクト数制限をONにした場合、各オブジェクトに対する制限の実行のON/OFFが設定可能になる。各オブジェクトに対する制限の実行のON/OFFは、Text数設定領域2205、Picture数設定領域2208、Table数設定領域2209、Line数設定領域2210、Photo数設定領域2211によって行う。
例えば、文字(Text)オブジェクトの使用制限を行いたい場合は、Text数設定領域2205をONにし、ボタン2206を押下することで、上限数入力領域2207に、テンキーを使用して、所望の数値を入力することができる。図23では、上限数入力領域2207に5000が入力された例を示しており、この場合、5000個の文字オブジェクトまでをカラースキャンすることができる。
同様に、図画(Picture)、表(Table)、線(Line)、写真(Photo)オブジェクトについても、使用制限数となる任意の数値を設定可能である。
尚、図23で示すオブジェクトの種類は一例であり、用途や目的に応じて、これ以外の種類のオブジェクトや、複数種類のオブジェクトからなる組に対して使用制限数を設定する構成にすることも可能である。
また、図23の管理画面における設定値は、例えば、記憶部111(SRAM2604)の設定値管理テーブルで管理されることになる。
そこで、この設定値管理テーブルの一例について、図24を用いて説明する。
図24は本発明の実施形態1の設定値管理テーブルの一例を示す図である。
設定値管理テーブル2301は、部門として、「開発部門A」に対する設定値管理テーブルを示している。設定値管理テーブル2301では、各オブジェクト(Text, Picture, Table, Line, Photo)毎に白黒スキャン機能及びカラースキャン機能の使用上限値と、実際のスキャン動作によって生成された累積オブジェクト数(使用量)を管理している。また、オブジェクト数制限の実行のON/OFF情報も保持している。
尚、使用上限値及びON/OFF情報は、図23の管理画面を介して入力された設定値に基づいて設定される。また、累積オブジェクト数は、MFPに搭載されるカウンタによるカウント値によって設定される。このカウンタは、部門毎に、かつ使用する機能毎、更には、各機能によって生成されるオブジェクトの種類毎に構成されている。
次に、MFP100の機能の使用制限を実行する場合の処理について、図25を用いて説明する。
図25は本発明の実施形態1の画像処理システムの使用制限を実行する場合の処理を示すフローチャートである。
尚、図25では、スキャン機能によって読取原稿画像中のオブジェクトをベクトル化して保存する(以下、ベクトルスキャン)場合の処理について説明する。
まず、ステップS2401で、図21や図22の操作画面を介して、ユーザが所属する部門の部門情報を入力する。
ステップS2402で、スキャン機能を開始する。ステップS2403で、設定値管理テーブルを参照して、入力された部門情報に対応する、白黒スキャン機能及びカラースキャン機能ともにオブジェクト毎の使用上限値に達しているか否かを判定する。
使用上限値に達している場合(ステップS2403でYES)、これ以上のスキャン機能の使用を禁止するため、ステップS2404に進み、スキャン機能の使用不可を示すメッセージを表示部116に表示する。一方、使用上限値に達していない場合(ステップS2403でNO)、ステップS2405に進み、原稿1ページ分のスキャン動作を実行する。
ステップS2406で、スキャン動作によって得られた原稿画像に対して、ベクトル化処理を実行する。ステップS2407で、ベクトル化処理によって得られたオブジェクト毎にその生成数をカウントする。
ステップS2408で、使用制限対象のオブジェクトのいずれかにおいて、カウント後の累積オブジェクト数が使用上限値に達しているか否かを判定する。使用上限値に達している場合(ステップS2408でYES)、ステップS2410に進み、これ以上のスキャン機能の使用を禁止するため、スキャン機能の使用不可を示すメッセージを表示部116に表示する。
尚、複数枚の原稿に対してスキャン動作を実行している場合には、直前に処理した原稿画像から得られたオブジェクトを含むベクトルデータが記憶部111に蓄積されることになる。また、使用上限値を越える要因となった原稿画像から生成されたベクトルデータは破棄される。
一方、使用上限値に達していない場合(ステップS2408でNO)、カウント後の累積オブジェクト数で設定値管理テーブルを更新し、ベクトル化処理によって得られるオブジェクトを含むベクトルデータを生成する。
ステップS2412で、処理対象の原稿が最終ページであるか否かを判定する。最終ページでない場合(ステップS2412でNO)、ステップS2405に戻る。一方、最終ページである場合(ステップS2412でYES)、生成したベクトルデータを記憶部111に蓄積する。
尚、これ以降の処理は、図3のステップS130の処理を実行しても良いし、用途や目的に応じて、図25と図3の処理を複合的に実行する処理を実行するようにしても良い。また、図25では、スキャン機能に係る使用制限について説明したが、MFP100の他の機能(印刷機能、送信機能等)についても同様の使用制限を実現できることは言うまでもない。
以上説明したように、実施形態1によれば、部門毎かつオブジェクト毎に、MFP100の機能の使用を制限する構成を構築することで、よりきめの細かい、かつ実用的な装置の使用管理を実現することができる。
<実施形態2>
実施形態1では、部門毎に、かつオブジェクト毎にMFP100の各機能についての使用制限を実現する構成について説明したが、この使用制限を実現するために構成される設定値管理テーブルを用いて、部門毎かつオブジェクト毎のMFP100の各機能の使用内容に応じて、課金を行う課金システムを構築することも可能である。
このような課金システムを構築する場合には、例えば、実施形態1の図23の管理画面の代りに、課金用管理画面を構成する。
以下、この課金用管理画面について、図26を用いて説明する。
図26は本発明の実施形態2の課金用管理画面の一例を示す図である。
この図26の課金用管理画面は、実施形態1の図23の管理画面の構成に加えて、課金を行うために必要な入力領域が構成されている。
特に、課金用管理画面では、オブジェクトを生成した場合の対価の総額に上限値を設定して、オブジェクトの使用制限を実行するために、オブジェクト毎にそのオブジェクト生成時に課金する単価入力領域2502を構成している。
単価を入力する場合には、ボタン2501を押下することで、単価入力領域2502に、テンキーを使用して、所望の数値を入力することができる。図26では、単価入力領域2502に0.100が入力された例を示しており、この場合、文字(Text)オブジェクトあたりの課金額は、0.100円となる。
2503は、使用制限値となる上限総金額を入力する上限総金額入力領域である。この例では、上限総金額が50000円となっている。
尚、白黒スキャン機能とカラースキャン機能の設定を同一にしたい場合は、オブジェクト毎に用意された共通化ボタンを指定することで、白黒スキャン機能に対する設定領域内の設定値とカラースキャン機能に対する設定領域の設定値を同一にすることができる。例えば、文字(Text)オブジェクトに対する共通化ボタン2504を指定すると、文字(Text)オブジェクトに対する単価が白黒スキャン機能とカラースキャン機能とで同一に設定される。
また、共通化ボタンが指定された場合には、誤操作防止のために、白黒スキャン機能の設定領域中の指定された共通化ボタンに対応するオブジェクトに対する単価入力領域が入力不可となる。
また、この課金用管理画面における設定値は、実施形態1の図24の設定値管理テーブルに相当する課金用設定値管理テーブルで管理されることになる。この場合、図23の設定値管理テーブルで管理される設定値に加えて、設定値として、オブジェクト毎の単価や累積課金額や上限総金額が管理されることになる。
次に、この課金用設定値管理テーブルを使用する場合の具体例について説明する。
例えば、カラースキャン機能によって、文字オブジェクトが1000個、図形オブジェクトが100個、表オブジェクトが200個、線オブジェクトが2000本、写真オブジェクトが300個が生成されたとし、かつ図26の課金用管理画面の内容が課金用設定値管理テーブルで管理されているとすると、この時の総課金額は、
(1000x0.100円)+(100x0.300円)+(200x0.200円)+(2000x0.100円)+(300x1.00円)=670円
となる。
ここで、課金用設定値管理テーブルで管理される累積課金額に670円を加算した額が、上限総金額50000円に達していない場合は、そのまま生成されたオブジェクトを含むベクトルデータが記憶部111に蓄積されることになる。
尚、実施形態2の処理は、実施形態1の図25の処理において、ステップS2403及びステップS2408の判定が、累積課金額と上限総金額との比較の判定を実行することで実現することができる。
以上説明したように、実施形態2によれば、実施形態1の構成に加えて、装置の使用内容に応じて、部門毎、かつオブジェクト毎に課金を行う課金システムを構築することができる。
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。