(57)【要約】【課題】ＰＤＬデータ中のテキストオブジェクトから文字コードを抽出するだけでは、有効な検索インデックスを付与することができないことがあった。【解決手段】画像読み取り装置で読み取られた画像データ、および、ホストから送信されたＰＤＬデータをレンダリングした画像データに対し、関連するメタデータを付与して格納する画像処理装置において、ＰＤＬデータをレンダリングした後の画像データに対して、画像データ中のオブジェクト毎にそれを含むように領域分割を行う分割手段と、分割手段により分割された領域の中から文字オブジェクトを判別する判別手段と、判別手段により判別された文字オブジェクトに対して文字認識処理を施して文字コード情報を抽出する文字認識手段と、文字認識手段により抽出された文字コード情報を含むメタデータを前記画像データ付与するメタデータ付与手段とを備える。【選択図】図４
2010020468.tif 000002
【特許請求の範囲】
【請求項１】
画像読み取り装置で読み取られた画像データ、および、ホストコンピュータから送信されたＰＤＬデータをレンダリングした画像データに対し、関連するメタデータを付与して格納する画像処理装置において、
ＰＤＬデータをレンダリングした後の画像データに対して、
前記画像データ中のオブジェクト毎にそれを含むように領域分割を行う分割手段と、
前記分割手段により分割された領域の中から文字オブジェクトを判別する判別手段と、
前記判別手段により判別された文字オブジェクトに対して文字認識処理を施して文字コード情報を抽出する文字認識手段と、
前記文字認識手段により抽出された文字コード情報を含むメタデータを前記画像データに付与するメタデータ付与手段と
を備えることを特徴とする画像処理装置。
【請求項２】
通常のレンダリング処理に用いるレンダリングバッファとは別のレンダリングバッファと、
前記別のレンダリングバッファに格納された画像データに対して文字認識処理を行い、通常のレンダリング処理でレンダリングされた画像データにメタデータを付与するように制御する手段と、
前記別のレンダリングバッファへのレンダリング処理の際に、レンダリングされるＰＤＬデータのテキスト情報を変換する手段とを更に備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記テキスト情報を変換する手段は、テキストオブジェクトのフォント情報を所定のものに置き換える手段であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
文字認識処理の結果である文字コード列とＰＤＬデータから抽出された文字コード列の対応関係の照合を行い、さらに自然さの判定の結果、より自然なほうの文字コード列をメタデータとして採用することを特徴とする、請求項１から３にいずれかに記載の画像処理装置。
【請求項５】
前記自然さの判定は、形態素解析による文字コード情報の抽出を行い、不明な語がより少ないものをより自然であると判定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
請求項１から請求項５のいずれかに記載の画像処理装置と、アプリケーションから描画情報を受け取って該描画情報に基づいて変換したＰＤＬデータを前記画像処理装置に対して送信する機能を持つプリンタドライバを含むホストコンピュータとがネットワークを介して接続した画像処理システムであって、
前記プリンタドライバは、前記アプリケーションから受け取った描画情報をＰＤＬデータに変換する際に、テキストオブジェクトのフォント情報を所定のフォント情報に置き換えるとともに、文字修飾情報を破棄するテキストオブジェクト変換手段を備えることを特徴とする画像処理システム。
【請求項７】
画像読み取り装置で読み取られた画像データ、および、ホストコンピュータから送信されたＰＤＬデータをレンダリングした画像データに対し、関連するメタデータを付与して格納する画像処理装置における画像処理方法であって、
ＰＤＬデータをレンダリングした後の画像データに対して、
前記画像データ中のオブジェクト毎にそれを含むように領域分割を行う分割ステップと、
前記分割ステップにおいて分割された領域の中から文字オブジェクトを判別する判別ステップと、
前記判別ステップにおいて判別された文字オブジェクトに対して文字認識処理を施して文字コード情報を抽出する文字認識ステップと、
前記文字認識ステップにおいて抽出された文字コード情報を含むメタデータを前記画像データに付与するメタデータ付与ステップと
を含むことを特徴とする画像処理方法。
【請求項８】
請求項７に記載の画像処理方法をコンピュータに実行させるためのプログラム。
【請求項９】
請求項８に記載のプログラムを記憶させたコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関し、特に、画像データを描画要素（オブジェクト）に分割し、分割された描画要素からテキスト情報を中心としたメタデータを抽出して、これを対応する描画要素と関連付けて格納する画像処理装置に関する。
【背景技術】
【０００２】
近年、デジタル複合機（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：以下、ＭＦＰと略す）は、大容量のＨＤＤを搭載可能になってきている。従来より、ＭＦＰには、コピー機能、ＰＤＬプリント機能、ＦＡＸ機能、スキャン画像送信機能などの機能を備えているが、大容量のＨＤＤを搭載することで、これらの機能に加えて、いわゆるＢＯＸ機能を提供できるようになってきている。ＢＯＸ機能とは、原稿をスキャンして得られた画像データやプリントのためにレンダリングされた画像データを、ＭＦＰ内部のＨＤＤに格納し、あたかも画像ファイリング装置のように使用可能な機能である。
【０００３】
ユーザーは、このＢＯＸ機能を用いて格納した画像データを、送信したり、プリントしたり、また、他の画像と合成して出力するといった様々な操作を行うことが可能となる。この際、ユーザーの利便性のためには、目的とする画像データを効率よく検索できることが必要である。このため、画像データに対して、画像データ中から抽出したテキスト情報を検索のための検索インデックスとし、検索性の向上に役立てる技術が開発されている。
【０００４】
上記の先行技術は、主にスキャンされた画像データを対象としている。その処理フローとしては、まず、原稿をスキャンすることによって得られた画像データから、文字ブロックと考えられる部分を文字領域として切り出す。こうして得られた文字領域内の画像データに対して、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ）処理を行う。このＯＣＲ処理（文字認識処理）によって得られた文字コードが検索のためのテキスト情報として、元の画像とともに保存される。
【０００５】
一方、コンピュータ上のアプリケーションで作成されたドキュメントをファイリング装置に保存するような先行技術がある。特許文献１では、ドキュメントをプリンタドライバを介してＰＤＬデータに変換し、ＰＤＬデータ中のテキストオブジェクトから文字コードを取り出して、レンダリングされた画像データとともに、テキスト情報として保存する技術が開示されている。
【０００６】
【特許文献１】特開平８−１４７４４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
一方、アプリケーションの種類によっては、テキストオブジェクトを文字コードで出力しないものなども存在する。すなわち、アプリケーション上でユーザーが文字として描画したものが、ＰＤＬデータに変換された際にテキストオブジェクトにならない例や、文字コードを取り出せても検索インデックスとして使用しがたいテキストオブジェクトになる例が存在する。このようなケースでは、ＰＤＬデータ中のテキストオブジェクトから文字コードを抽出するだけでは、有効な検索インデックスを付与することができない。
【０００８】
以下に、そのようなケースを例示する。
１．大きいサイズのフォントの文字は、アプリケーション、ドライバ、あるいはＰＤＬ上で、線分の集まりであるＰａｔｈデータとして表現され扱われる場合がある。
２．プリンタ側に指定のフォントが無い場合やグラデーションなどを多用した修飾文字の場合は、アプリケーションやドライバ上で文字がイメージデータとして扱われＰＤＬデータとされる場合がある。 
３．文字コードだけでは視覚化されるものが何か分からない場合がある（フォントの種類によって視覚化されるものが異なる）。
４．元のテキストの文字列が一文字一文字に分割されて描画コマンドになっている場合には、１文字ずつ別々のテキストデータとして得られてしまい、有意なテキストデータが得られない。
【０００９】
さらに言えば、上記のような問題が生じやすい飾り文字や大サイズの文字は、重要な意味をもつ場合が多く、これらのテキストの文字情報が失われるのは有効なメタデータ付与を妨げる要因となる。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、画像読み取り装置で読み取られた画像データ、および、ホストコンピュータから送信されたＰＤＬデータをレンダリングした画像データに対し、関連するメタデータを付与して格納する画像処理装置において、ＰＤＬデータをレンダリングした後の画像データに対して、前記画像データ中のオブジェクト毎にそれを含むように領域分割を行う分割手段と、前記分割手段により分割された領域の中から文字オブジェクトを判別する判別手段と、前記判別手段により判別された文字オブジェクトに対して文字認識処理を施して文字コード情報を抽出する文字認識手段と、前記文字認識手段により抽出された文字コード情報を含むメタデータを前記画像データに付与するメタデータ付与手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明に拠れば、ＰＤＬデータ中のテキストオブジェクトから文字コードを抽出するよりも信頼性の高い文字コード列を抽出でき、より有効な検索インデックスを付与した文書保存を行うことができる。また、スキャン画像からの検索インデックス付き文書フォーマットによる文書保存との統一を図りつつ、ＰＤＬデータの文書保存が可能である。
【発明を実施するための最良の形態】
【００１２】
＜第１の実施形態＞
本発明による画像処理装置およびシステムの好適な実施の形態について、以下、図面に基づいて説明する。
【００１３】
［画像処理システム］
はじめに、本発明の一実施形態に係る画像処理システムについて、図１を用いて説明する。図１は、当該画像処理システムの概略構成を示すブロック図である。
【００１４】
本実施形態の画像処理システムは、ＬＡＮ１０１上にＭＦＰ１００、および単数または複数のクライアントＰＣ１０２−１〜ｎ（ホストコンピュータ）を接続した形態をとる。ＭＦＰ１００とクライアントＰＣ１０２に加えて、本システムは文書管理サーバ１０３およびこのサーバに接続されて使用されるデータベース１０４も備えている。
【００１５】
本実施形態において、ＭＦＰ１００は紙の原稿をスキャンすることによってその原稿の画像データを生成する。また、クライアントＰＣ１０２が生成するＰＤＬデータを受信して、ＰＤＬデータの解釈やレンダリングを行う。また、画像データを、画像記録装置（プリンタ）１１３によって紙媒体上に記録したり、ネットワーク上に送信したり、あるいは、ＭＦＰ１００自身が持つ二次記憶装置からなる記憶部１１５に画像データを格納・記憶したりする。画像データを格納する手段は、ネットワーク上のデータベース１０４であっても構わない。その際には、ＭＦＰ１００は文書管理サーバ１０３と通信を行い、データベース１０４に画像データが格納されるように適宜制御する。
【００１６】
［ＭＦＰ（画像処理装置）］
続いて、本発明の一実施形態であるＭＦＰ１００の構成について、図２を用いて説明する。
【００１７】
図２は、ＭＦＰ１００の構成を示すブロック図である。
【００１８】
ＭＦＰ１００は、図示しないＡｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ（以下、ＡＤＦ）を有する画像読み取り装置１１０を備える。この画像読み取り部装置１１０は束状の或いは１枚の原稿の画像を光源で照射し、反射画像をレンズを介して固体撮像素子上に結像する。固体撮像素子は所定解像度（例えば６００ｄｐｉ）および所定輝度レベル（例えば８ビット階調）の画像読み取り信号を生成し、この画像読み取り信号から、ラスターデータよりなる画像データが構成される。画像読み取り装置１１０で読み取られた画像データは、読み取り画像処理部１１１によってＭＦＰ１００内部で処理しやすい画像データに補正処理される。具体的には、読み取り画像処理部１１１は、ノイズ除去処理、ガンマ補正処理、色再現補正処理、フィルタ処理などを行う。
【００１９】
ＭＦＰ１００は、記憶部１１５および画像記録装置１１３を有し、通常の複写機能を実行する際には、読み取り画像処理部１１１で処理された画像データに対し、さらに出力画像処理部１１２によって画像記録装置用の画像処理を行って、記録信号に変換する。複数枚複写する場合には、１頁分の記録信号を一旦記憶部１１５に記憶保持した後、画像記録装置１１３に順次出力して、記録紙上に記録画像を形成する。
【００２０】
ＭＦＰ１００は、ＬＡＮ１０１との接続のためのネットワークＩ／Ｆ１１４を有し、クライアントＰＣ１０２からプリンタドライバを利用して出力するＰＤＬデータを、画像記録装置１１３によって記録する機能を持つ。クライアントＰＣ１０２からプリンタドライバを経由して出力されるＰＤＬデータは、ＬＡＮ１０１からネットワークＩ／Ｆ１１４を経て記憶部１１５の一部に保存される。保存されたＰＤＬデータは取り出されて、ＲＯＭ１２０あるいは記憶部１１５からＲＡＭ１１９にロードされたプログラムをＣＰＵ１１８が実行することによって実現される後述のＰＤＬ処理およびレンダリング処理によって、Ｂｉｔｍａｐデータとして展開される。そして、このＢｉｔｍａｐデータに対し出力画像処理部１１２で、画像記録装置用の画像処理を行って記録可能な記録信号に変換する。この記録信号は、画像記録装置１１３に送出されて、記録紙上に記録画像として記録される。
【００２１】
また、記憶部１１５は、画像読み取り装置１１０からのデータやクライアントＰＣ１０２からプリンタドライバを経由して出力される、ＰＤＬデータをレンダリングしたデータを保存できる機能（以下、この機能をＢＯＸ機能と称す）を有している。
【００２２】
ＭＦＰ１００は、ＭＦＰ１００を操作するためのユーザーインターフェースとして、入力装置１１６と表示装置１１７を備えている。表示装置１１７上には、ＭＦＰ１００の状態を表す情報やＢＯＸ機能により保存した画像データが表示される。また、表示装置１１７はタッチパネルを備え、表示装置１１７上に表示されたボタンをユーザーが触れることでユーザーの操作による指定入力を行うことができる。このほかのユーザー入力を受け付ける装置として、入力装置１１６は数値の入力を行うためのキーを備えている。
【００２３】
ＭＦＰ１００の上記構成要素は、ＣＰＵ１１８で動作するＲＡＭ１１９上のプログラムによって、内部バス１２１を介して制御される。
【００２４】
［ＭＦＰの各機能の動作］
次に、本実施形態におけるＭＦＰの持つ機能について、図３〜６を用いて説明する。図３は、ＭＦＰ１００のコピー機能・スキャン送信機能・ＢＯＸ機能を実現する各処理ブロックによる処理の流れを示す図である。図４は、ＰＤＬデータに対するＰＤＬ処理機能・ＢＯＸ機能について各処理ブロックによる処理の流れを示している。これらの機能は、一例として図５に示すＵＩ画面５００からのユーザー指示によって処理が開始される。
【００２５】
図５において、上部に位置するコピータブ５０４、送信ＦＡＸタブ５０３、ＢＯＸタブ５０１といった各機能別のタブによって、ＭＦＰ１００にどの機能を働かせるかをユーザーに選択させる。図面上では、ＢＯＸタブ５０１が選択されているので、この時に読み込みスタートボタン５０２を押下すると、ＭＦＰ１００はＢＯＸ格納を行うように制御する。他のタブにも５０２と同様にその機能を働かせるスタートボタンがあり、ＢＯＸ機能の開始の場合と同様に、ボタン押下で該当する機能の処理をスタートするようにする。
【００２６】
ＭＦＰ１００は、コピー機能・スキャン送信機能・ＢＯＸ機能のいずれの場合においても、画像読み取り装置１１０で紙の原稿を読み取り、画像データを得るように制御する。その次に読み取り画像処理部１１１でスキャン画像用の画像処理を行い、記憶部１１５の一部を用いて実現する一時的な画像データ保存領域であるＢｉｔｍａｐスプール（レンダリングバッファ）２０１にＢｉｔｍａｐデータを保存する。
【００２７】
コピー機能使用時は、Ｂｉｔｍａｐスプール２０１から取り出したＢｉｔａｍｐデータを出力画像処理部１１２で画像処理を行って記録信号に変換してから、画像記録装置１１３に出力するように制御する。
【００２８】
スキャン送信機能においては、ＣＰＵ１１８上で動作するプログラムによって実現される画像送信処理部２０２により、ネットワークＩ／Ｆ１１４を介して、ＵＩ上で指定されたＩＰアドレスを持つＰＣ等の機器に対して、画像データを送るように制御する。
【００２９】
最後にＢＯＸ機能においては、Ｂｉｔｍａｐスプール２０１から取り出したＢｉｔｍａｐデータを、ＣＰＵ上で動作するプログラムによって実現される画像格納処理部２００で処理したあと、記憶部１１５に記憶するようにする。ここで述べた画像格納処理については、後ほど詳細に説明を加える。
【００３０】
ＭＦＰ１００が持つＰＤＬ処理機能は、ユーザーがクライアントＰＣ上のアプリケーション３０１でプリント指示を行うところから処理が始まる。図４に示すように、クライアントＰＣ１０２上で動作するアプリケーション３０１から、プリンタドライバ３０２にアプリケーションデータが描画情報として渡される。このデータは、プリンタドライバ３０２でＰｏｓｔＳｃｒｉｐｔやＬＩＰＳなどのＰＤＬ言語に従うデータ（ＰＤＬデータ）に変換されて、クライアントＰＣ１０２のネットワークＩ／Ｆ（不図示）を介してネットワーク送信される。
【００３１】
ＭＦＰ１００はネットワークＩ／Ｆ１１４で受信したＰＤＬデータを、ＰＤＬデータの一時保存領域であるＰＤＬデータスプール３０３に保存する。いったんスプールされたＰＤＬデータは取り出された後に、ＰＤＬ処理部３０４によって言語解釈されて、レンダラ３０５が処理できる中間的なデータ構造であるＤｉｓｐｌａｙＬｉｓｔを生成する。レンダラ３０５は生成されたＤｉｓｐｌａｙＬｉｓｔをＢｉｔｍａｐデータに展開して、Ｂｉｔｍａｐスプール２０１に一時保存する。
【００３２】
ＭＦＰ１００は、プリンタドライバ３０２の指示が印刷であれば、Ｂｉｔｍａｐスプール２０１から画像データを取り出した後に、出力画像処理部１１２による画像処理を行い、画像記録装置１１３に記録信号を送出して処理を終える。プリンタドライバの指示が画像データの保存である場合には、後述の画像格納処理２００を行った後に、記憶部１１５に画像データを格納するようにする。
【００３３】
プリンタドライバの指示については、図６に示すように、保存を指定するＵＩ項目６０２と印刷を指定するＵＩ項目６０１によって、保存指示か、印刷指示かをユーザーに選択させる。
【００３４】
［画像格納処理］
次に、画像格納処理について図７を用いて説明する。
【００３５】
図７は、画像格納処理部２００の構成を示すブロック図である。
【００３６】
ＭＦＰ１００におけるＵＩ５００あるいはドライバＵＩ６００によって、文書の保存が指示された場合に、Ｂｉｔｍａｐスプール２０１から取り出した画像データをＢＯＸに保存するために行う画像格納処理部の処理の流れの一例を図７に示す。
【００３７】
ＭＦＰ１００は、Ｂｉｔｍａｐスプール２０１から取り出した画像データを、まず、オブジェクト分割処理部７０１によって、オブジェクトを含む領域毎に領域分割することによりオブジェクト分割を行う。
【００３８】
オブジェクト分割後のオブジェクトの種類は、文字、写真、グラフィック（図面、線画、表）、背景、である。このオブジェクト分割処理においては、ビットマップデータのままで、オブジェクト毎にそれを含むように画像領域分割を行い、分割された各々の画像領域に対して、周知の手法でオブジェクトの種類（文字、写真、グラフィック、背景）を判別する。
【００３９】
判別対象の画像領域が写真オブジェクトと判別された場合、この領域は、ＪＰＥＧ圧縮処理部７０２において、ＪＰＥＧ圧縮される。また、背景の場合も同様に、ＪＰＥＧ圧縮される。一方、オブジェクト判別の結果が、グラフィックの場合、ベクトル化処理部７０３において、ベクトル化処理され、パス化されたデータに変換される。また、オブジェクト判別の結果が、文字の場合には、ベクトル化処理部７０３において、グラフィックと同様にベクトル化処理され、パス化されたデータに変換される。それとともに、文字の場合には、ＯＣＲ処理部７０４にも当該分割領域のＢｉｔｍａｐデータが送られ、そのデータに対しＯＣＲ処理が施され、文字コード化されたデータが抽出される。これらの全てのオブジェクトデータと、文字コード化されたデータが一つのファイルとしてまとめられる。
【００４０】
最後に、メタデータ付与処理部７０５において、各オブジェクトに対して、生成されたメタデータが付与される。このメタデータが付与された各々のオブジェクトデータは、ＭＦＰ１００に内蔵されているＢＯＸ１１５に保存される。ここで保存されたデータは、ＵＩ画面に表示するようにしてもよい。
【００４１】
以下では、メタデータ付与処理、オブジェクト分割処理、ベクトル化処理について、さらに詳細に説明する。
【００４２】
［メタデータ付与処理］
まず、メタデータ付与処理について、図８を用いて説明する。
【００４３】
図８は、メタデータ付与処理部７０５で行うメタデータ付与処理のフローチャートである。
【００４４】
まず、ステップＳ８０１において、メタデータを付与するオブジェクトの周囲で一番近くに存在する文字オブジェクトを選択する。
【００４５】
次に、ステップＳ８０２において、ステップＳ８０１で選択された文字オブジェクトに対して、形態素解析を行う。
【００４６】
次いで、ステップＳ８０３において、ステップＳ８０２における形態素解析により抽出された単語をメタデータとして、これを対象のオブジェクトに付加する。なお、メタデータ付与対象のオブジェクトが文字オブジェクトの場合もあり、このときの、周囲で一番近くにあるオブジェクトは、この文字オブジェクト自身をも含む。すなわち、この場合、文字オブジェクトから抽出した単語がその文字オブジェクトのメタデータとして付与されることとなる。
【００４７】
また、メタデータの作成には、形態素解析によって抽出した単語だけではなく、そのオブジェクトから抽出した色ヒストグラムなどの画像特徴量や、形態素解析だけでなく、より高度な構文解析等により得られる文章要約情報なども含めることが可能である。
【００４８】
このようにして得られたメタデータは、オブジェクトの各々に対して記述されて、オブジェクトの画像データ（ベクトル化またはＪＰＥＧ圧縮されたデータ）とともに、ＢＯＸに保存される。
【００４９】
［ベクトル化結果のデータフォーマット］
次に、ベクトル化処理部７０３でベクトル化されたデータのフォーマットについて、図９を用いて説明する。
【００５０】
図９は、ベクトル化処理部７０３でベクトル化されたデータのフォーマットの一例を示す図である。本実施形態では、ベクトル化処理部７０３でベクトル化されたデータをＳＶＧ形式で表記しているが、これに限定されるものではない。
【００５１】
図９では説明のために、オブジェクトの表記を枠で囲っている。枠：９０１はイメージ属性を示し、そこには、イメージオブジェクトの領域の示す領域情報とビットマップ情報が示されている。枠：９０２はテキストオブジェクトの情報が示されており、枠：９０３では、枠：９０２で示した内容、すなわちテキストオブジェクトの情報をベクターオブジェクトとして表現している。枠：９０４は、表オブジェクトなどのラインアートを表す。
【００５２】
メタデータ付与処理部７０５で付与されるメタデータは、例えば、それが“山田  太郎”である場合、各ブロックの末尾に、以下の、
<metadata>
<text_index>山田  太郎</text_index>
</metadata>
のように付与すればよい。
【００５３】
［オブジェクト分割処理］
次に、オブジェクト分割処理について、図１０、１１を用いて説明する。
【００５４】
図１０は、オブジェクト分割処理による画像データのオブジェクト分割結果の一例を示す図である。また、図１１は、オブジェクト分割したときの各属性のブロック情報および入力ファイル情報の例を示す図である。
【００５５】
オブジェクト分割処理部７０１は、図１０右側の画像１００２に示すように、入力画像１００１（図１０左側）を属性ごとに矩形ブロックに分割する。前述のように、本実施形態においては、矩形ブロックの属性としては、文字、写真、グラフィック（図面、線画、表など）とするが、もちろん、これに限られるものではなく、色文字や黒文字、あるいは自然画像やＣＧ画像などに細分化することも可能である。
【００５６】
オブジェクト分割処理においては、まず、Ｂｉｔｍａｐスプール２０１から取り出されてＲＡＭ上に格納されたイメージデータを白黒に２値化し、黒画素からなる輪郭で囲まれる画素塊を抽出する。
【００５７】
さらに、このように抽出された画素塊のうち黒画素塊の大きさを評価し、大きさが所定値以上の黒画素塊の内部にある白画素塊に対する輪郭追跡を行う。さらに、白画素塊に対する大きさ評価、およびその内部の黒画素塊の追跡というように、内部の画素塊の大きさが所定値以上である限り、再帰的に内部の画素塊の抽出、および輪郭追跡を行う。なお、画素塊の大きさは、例えば画素塊の面積によって評価される。
【００５８】
このようにして得られた画素塊に外接する矩形ブロックを生成し、矩形ブロックの大きさ、および形状に基づき属性を判定する。
【００５９】
例えば、縦横比が１に近く、大きさが一定の範囲の矩形ブロックは文字領域矩形ブロックの可能性がある文字相当ブロックとする。そして、近接する文字相当ブロックが規則正しく整列しているときに、これら文字相当ブロックを纏めた新たな矩形ブロックを生成し、この新たな矩形ブロックを文字領域矩形ブロックとする。
【００６０】
また扁平な画素塊、もしくは、一定大きさ以上でかつ四角形の白画素塊を整列した状態で内包する黒画素塊をグラフィック領域矩形ブロック、それ以外の不定形の画素塊を写真領域矩形ブロックとする。
【００６１】
オブジェクト分割処理では、このようにして生成された矩形ブロックのそれぞれについて、図１１に示す、属性等のブロック情報および入力ファイル情報を生成する。
【００６２】
図１１において、同図に示すブロック情報には、各ブロックの属性、その位置の座標Ｘ、座標Ｙ、幅Ｗ、高さＨ、ＯＣＲ情報が含まれる。属性は１〜３の数値で与えられ、ここで１は文字領域矩形ブロック、２は写真領域矩形ブロック、３はグラフィック領域矩形ブロックを示す。座標Ｘ、座標Ｙは入力画像における各矩形ブロックの始点のＸ、Ｙ座標（左上角の座標）である。幅Ｗ、高さＨは、それぞれ矩形ブロックのＸ座標方向の幅、Ｙ座標方向の高さである。ＯＣＲ情報は、各ブロックのメタデータとして使用可能なＯＣＲ結果があるか否かを示す。さらに入力ファイル情報として矩形ブロックの個数を示すブロック総数Ｎが含まれる。
【００６３】
これらの矩形ブロックごとのブロック情報は、特定領域でのベクトル化に利用される。またブロック情報によって、特定領域とその他の領域を合成する際の相対位置関係を特定でき、入力画像のレイアウトを損なわずにベクトル化領域とラスターデータ領域を合成することが可能となる。
【００６４】
［ベクトル化処理］
次に、ベクトル化処理部７０３の処理について、図１２を用いて説明する。
【００６５】
図１２は、ベクトル化処理部７０３における処理の流れを示すフローチャートである。
【００６６】
はじめに、ステップＳ１２０１で、処理の対象となる特定領域が文字領域矩形ブロックであるか否かを判断する。このとき、特定領域が文字領域矩形ブロックであればステップＳ１２０２以下のステップに進み、以下に説明するようにパターンマッチングの一手法を用いて文字認識を行い、対応する文字コードを得る。一方、特定領域が文字領域矩形ブロックでない場合は、ステップＳ１２１２に移行する。
【００６７】
ステップＳ１２０２では、特定領域に対し横書き、縦書きの判定（組み方向判定）をおこなうために、特定領域内で画素値に対する水平・垂直の射影を取る。
【００６８】
次いで、ステップＳ１２０３で、ステップＳ１２０２の射影の分散を評価する。水平射影の分散が大きい場合は横書き、垂直射影の分散が大きい場合は縦書きと判断する。
【００６９】
次に、ステップＳ１２０４で、ステップＳ１２０３での評価結果に基づき、組み方向を判定し、組み方向に応じた行の切り出しを行う。さらに、切出した行から文字を切り出して文字画像を得る。文字列および文字への分解は、横書きならば水平方向の射影を利用して行を切り出し、切り出された行に対する垂直方向の射影を基に、文字を切り出す。縦書きの文字領域に対しては、水平方向と垂直方向について、逆の処理を行う。ここでの行、文字の切り出しに際して、文字のサイズも検出し得る。
【００７０】
次に、ステップＳ１２０５では、ステップＳ１２０４で切り出された各文字について、文字画像から得られる特徴量を数十次元の数値列に変換した特徴ベクトル（ここでは、観測特徴ベクトルと称す）を生成する。この観測特徴ベクトルの抽出には種々の公知手法があり、例えば、文字をメッシュ状に分割し、各メッシュ内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴ベクトルとする方法がある。上記観測特徴ベクトルは、このような周知の手法を用いて生成可能である。
【００７１】
次に、ステップＳ１２０６で、ステップＳ１２０５で得られた観測特徴ベクトルと、あらかじめフォントの種類ごとに求められている辞書特徴ベクトルとを比較し、観測特徴ベクトルと辞書特徴ベクトルとの距離を算出する。
【００７２】
次いで、ステップＳ１２０７において、ステップＳ１２０６で算出された距離を評価し、最も距離の近いフォントの種類を、その文字の認識結果とする。
【００７３】
次に、ステップＳ１２０８では、ステップＳ１２０７における距離評価において、最短距離が所定値よりも大きいか否かにより、類似度を判断する。最短距離が所定値以上の場合は、辞書特徴ベクトルにおいて、形状が類似する他の文字に誤認識している可能性が高い。そこで上記最短距離が所定値以上の場合は、ステップＳ１２０７の認識結果を採用せず、ステップＳ１２１１の処理に進む。一方、上記最短距離が所定値より低い（小さい）ときは、ステップＳ１２０７の認識結果を採用し、ステップ１２０９に進む。
【００７４】
ステップＳ１２０９（フォント認識ステップ）では、文字フォントの認識処理を行う。本実施形態では、文字認識の際に用いる、フォントの種類数分の辞書特徴ベクトルを、文字形状種すなわちフォント種に対して複数用意しておく。そして、パターンマッチングの際に、文字コードとともにフォント情報としてマッチするフォント種を出力することで、文字フォントを認識し得る。
【００７５】
次いでステップＳ１２１０では、上記文字認識およびフォント認識よって得られた文字コードおよびフォント情報と、あらかじめ用意された対応するアウトラインデータを用いて、各文字をベクトルデータに変換する。なお、入力画像がカラーの場合は、カラー画像から各文字の色を抽出して、得られた色情報をベクトルデータとともに記録する。
【００７６】
ステップＳ１２１１では、文字を一般的なグラフィックと同様に扱い、該当文字をアウトライン化する。すなわち誤認識を起こす可能性の高い文字については、可視的にイメージデータに忠実なアウトラインのベクトルデータを生成する。
【００７７】
ステップＳ１２１２では、特定領域が文字領域矩形ブロックでないとき、画像の輪郭に基づいてベクトル化の処理を実行する。
【００７８】
以上の処理により、文字領域矩形ブロックに属するイメージ情報を、形状、大きさ、色についてほぼ忠実なベクトルデータに変換出来る。
【００７９】
［グラフィック領域のベクトル化］
次に、グラフィック領域のベクトル化について、図１３、１４を用いて説明する。
【００８０】
図１３は、ベクトル化の処理における角抽出の処理を説明するための図であり、図１４は、ベクトル化の処理における輪郭線まとめの処理を説明するための図である。
【００８１】
オブジェクト分割処理において、特定領域が、文字領域矩形ブロック以外の領域、すなわちグラフィック領域矩形ブロックと判断されたときは、特定領域内で抽出された黒画素塊の輪郭をベクトルデータに変換する。
【００８２】
文字領域以外の領域のベクトル化においては、まず線画等を直線および／または曲線の組み合わせとして表現するために、曲線を複数の区間（画素列）に区切る「角」を検出する。「角」とは曲率が極大となる点である。例えば、図１３の曲線上の画素Ｐｉが「角」か否かの判断は以下のように行う。
【００８３】
すなわち、Ｐｉを起点とし、曲線に沿ってＰｉから両方向に所定画素（ｋ個とする）ずつ離れた画素Ｐｉ−ｋ、Ｐｉ＋ｋを線分Ｌで結ぶ。画素Ｐｉ−ｋ、Ｐｉ＋ｋ間の距離をｄ１、線分Ｌと画素Ｐｉとの距離をｄ２、曲線の画素Ｐｉ−ｋ、Ｐｉ＋ｋ間の弧の長さをＡとする。ｄ２が極大となるとき、あるいは比（ｄ１／Ａ）が閾値以下となるときに画素Ｐｉを「角」と判断する。
【００８４】
「角」によって分割された画素列を、直線あるいは曲線で近似する。直線への近似は最小二乗法等により実行し、曲線への近似は３次スプライン関数などを用いる。画素列を分割する「角」の画素は近似直線あるいは近似直線における、始端または終端となる。
【００８５】
さらにベクトル化された輪郭内に白画素塊の内輪郭が存在するか否かを判断し、内輪郭が存在するときはその輪郭をベクトル化し、その内輪郭の内輪郭というように、再帰的に反転画素の内輪郭をベクトル化する。
【００８６】
以上のように、輪郭の区分線近似を用いれば、任意形状の図形のアウトラインをベクトル化することができる。元原稿がカラーの場合は、カラー画像から図形の色を抽出して、得られた色情報をベクトルデータとともに記録する。
【００８７】
図１４に示すように、ある注目区間で外輪郭ＰＲｊと、内輪郭ＰＲｊ＋１あるいは別の外輪郭が近接している場合、２つあるいは複数の輪郭線をひとまとめにし、太さを持った線として表現することができる。例えば、輪郭ＰＲｊ＋１の各画素Ｐｉから輪郭ＰＲｊ上で最短距離となる画素Ｑｉまでの距離ＰＱｉを算出し、ＰＱｉのばらつきがわずかである場合には、注目区間を画素Ｐｉ、Ｑｉの中点Ｍｉの点列に沿った直線または曲線で近似し得る。近似直線、近似曲線の太さは、例えば距離ＰＱｉの平均値とする。線や線の集合体である表罫線は、太さを持つ線の集合とすることにより、効率よくベクトル表現することができる。
【００８８】
輪郭線まとめの処理の後、ベクトル化全体の処理を終了する。なお写真領域矩形ブロックについては、ベクトル化せず、イメージデータのままとする。
【００８９】
［ベクトルデータのグループ化］
次に、ベクトルデータのグループ化について、図１５を用いて説明する。
【００９０】
図１５は、図１２を用いて説明したベクトル化処理により生成されたベクトルデータのグループ化の処理を示すフローチャートである。
【００９１】
ベクトル化処理により線図形等のアウトラインをベクトル化した後、ベクトル化された区分線を図形オブジェクトごとにグループ化する。
【００９２】
はじめに、ステップＳ１５０１で、各ベクトルデータの始点、終点を算出する。
【００９３】
次いで、ステップＳ１５０２（図形要素検出）において、ステップＳ１２０１で求められた始点、終点情報を用いて、図形要素を検出する。ここで図形要素とは、区分線が構成している閉図形であり、検出に際しては、始点、終端となっている共通の「角」の画素においてベクトルを連結する。すなわち、閉形状を構成する各ベクトルはその両端にそれぞれ連結するベクトルを有しているという原理を応用する。
【００９４】
次いで、ステップＳ１５０３において、次に図形要素内に存在する他の図形要素、もしくは区分線をグループ化し、一つの図形オブジェクトとする。また、図形要素内に他の図形要素、区分線が存在しない場合はその図形要素自体を図形オブジェクトとする。
【００９５】
［図形要素の検出］
次に図形要素の検出処理について、図１６を用いて説明する。
【００９６】
図１６は、図１５を用いて説明したベクトルデータのグループ化の処理でグループ化されたベクトルデータに対する図形要素検出の処理を示すフローチャートである。
【００９７】
前述のステップＳ１５０２（図形要素検出）の処理は、図１６の各ステップによって実行される。
【００９８】
はじめに、ステップＳ１６０１において、ベクトルデータから両端に連結していない不要なベクトルを除去し、閉図形を構成するベクトルを抽出する。
【００９９】
次に、ステップＳ１６０２で、閉図形を構成するベクトルについて、いずれかのベクトルの端点（始点または終点）を開始点とし、一定方向、例えば時計回りに、順にベクトルを探索する。すなわち、他端点において他のベクトルの端点を探索し、所定距離内の最近接端点を連結ベクトルの端点とする。閉図形を構成するベクトルを１まわりして開始点に戻ったとき、通過したベクトルを全て一つの図形要素を構成する閉図形としてグループ化する。また、閉図形内部にある閉図形構成ベクトルも全てグループ化する。さらにまだグループ化されていないベクトルの始点を開始点とし、同様の処理を繰り返す。
【０１００】
最後に、ステップＳ１６０３において、ステップＳ１６０１で除去された不要ベクトルのうち、ステップＳ１６０２で閉図形としてグループ化されたベクトルに端点が近接しているベクトルを検出し、これも一つの図形要素としてグループ化する。
【０１０１】
以上の処理によって図形要素を、再利用可能な個別の図形オブジェクトとして扱う事が可能になる。
【０１０２】
［表示方法］
ＭＦＰ１００は、ＢＯＸに保存した文書を、その確認のため、あるいは、検索などの操作のために、表示装置１１７により表示し、入力装置１１６などによって操作することができる。以下、このような操作のためのＵＩ表示に関して図１７〜２１を用いて詳細な説明を行う。
【０１０３】
図１７〜２１は、それぞれ、本実施形態におけるユーザーインターフェースの一表示形態を示す図である。
【０１０４】
図１７は、特に、ＢＯＸ内に保存されているデータの一覧（ＢＯＸ文章一覧１７０１）をＵＩ上に表示したものを示している。同図１７０２に示すように一つ一つの文章に名前がついており、入力された時間などの情報も表示される。オブジェクト分割表示を行う場合には、１７０１のＢＯＸ文章一覧で所望の文章を選択して、オブジェクト表示ボタン１７０３を押すことで表示が変わり、オブジェクト分割表示を行うことができる。これに関しては、後述する。また、１７０１のＢＯＸ文章一覧で原稿を選択して、ページ表示ボタン１７０４を押すことで表示を変えることができるが、これに関しても後述する。
【０１０５】
図１８は、特に、保存された原稿のデータに基づいて原稿の画像をＵＩ上のページ表示画面１８０１に表示したものを示している。ここでは、原稿のラスタ画像を縮小した画像を表示することや、前述したＳＶＧを使って表示をさせる事も可能である。つまり、前述してきたデータを基にページ全体を表示していれば良い。１８０２は、ＭＦＰ１００がもつ機能を選択するためのタブで、コピーや送信（ＦＡＸ）、リモート操作、ブラウジング、ＢＯＸといったＭＦＰ１００が持っている機能を選択できるものである。これ以外の機能に対しても同様の表示を行うことが出来ることは示すまでもない。
【０１０６】
同図の１８０３により、原稿を読み取る場合の各種原稿モードを選択することが出来る。これは原稿タイプによって、画像処理を切り替えるために選択をするものであり、ここに示した以外のモードも同様に表示選択をする事が出来る。１８０４に示す読み込みスタートボタンにより、スキャナーが動作して、原稿の画像を読み込むことになる。この例では、読込みスタートボタンをＵＩの画面内に設けているが、別途設けられたスタートボタンの押下によって原稿読み込みを開始してもよい。
【０１０７】
図１９は、オブジェクト分割した結果が分かるように原稿内の各オブジェクトに枠を付けて表示させるようにしたものである。同図１９０１のオブジェクト表示ボタンを押すことにより、ページ表示画面１９０２に対してそれぞれオブジェクトの枠が表示される。このとき、枠に色付けをすることにより、オブジェクトの違いを分かるように表示することや、線の太さ、あるいは、点線、破線の違いなどにより、オブジェクトの違いを分かるように表示を行う。ここでオブジェクトの種類としては、前述したように文字、図面、線画、表、写真等である。
【０１０８】
同図の１９０３は検索を行うための文字を入力する表示部分である。ここに検索文字列を入力して、検索を行うことで、検索対象のオブジェクトあるいはオブジェクトが含まれるページが検索される。検索方法に関しては、前述したオブジェクトに付与されたメタデータを利用し、周知の検索手法を用いることで、オブジェクトあるいはページの検索を行うことができる。また、検索されたオブジェクトあるいはページは、ＵＩ上に表示される。
【０１０９】
図２０は、オブジェクト表示ボタン２００２を押すことによりページ内のオブジェクトが表示されるものである。ここでのオブジェクトの表示は、ページという概念ではなく、２００１に示されるように一つ一つのオブジェクトが部品として表示される。また、ページ表示ボタン２００４を押すことで１ページの画像として見えるように表示することもできる。
【０１１０】
同図の２００３は検索を行うための検索文字列を入力する表示部分である。ここに検索文字列を入力して、検索を行うことで、検索対象のオブジェクトあるいはオブジェクトが含まれるページが検索される。検索方法に関しては、前述したオブジェクトに付与されたメタデータを利用し、周知の検索手法を用いることで、オブジェクトあるいはページの検索を行うことができる。また検索されたオブジェクトあるいはページは、ＵＩ上に表示される。
【０１１１】
図２１は、オブジェクトのメタデータをＵＩ上に表示する例である。ある一つのオブジェクトを選択すると、２１０１に示すように、そのオブジェクトの画像２１０３と前述したメタデータ２１０２が表示される。ここで表示されるメタデータには、エリアの情報、幅、高さ、ユーザー情報、ＭＦＰ１００の設置場所の情報、入力した時間などの情報が含まれている。
【０１１２】
この例では、選択されたオブジェクトがｐｉｃｔｕｒｅ（写真）属性のオブジェクトであり、このオブジェクトの近くにあった文字オブジェクトの文字認識結果から形態素解析を用いて名詞のみを取り出して表示を行っている。それが図示したＴＥＸＴという文字列にあたる。また、メタデータに対しては、２１０４に示すように、ボタン操作により、編集や追加、削除を行うことを可能としている。
【０１１３】
同図に示す２１０５は検索を行うための文字を入力する表示部分である。ここに検索文字列を入力して、検索を行うことで、検索対象のオブジェクトあるいはオブジェクトが含まれるページが検索される。検索方法に関しては、前述したオブジェクトに付与されたメタデータを利用し、周知の検索手法を用いることで、オブジェクトあるいはページの検索を行うことができる。また検索されたオブジェクトあるいはページは、ＵＩ上に表示される。
【０１１４】
以上、述べてきたように、画像読み取り装置で読み取った画像データだけでなく、ＰＤＬデータをラスタライズした画像データも同様に、オブジェクト分割処理とベクトル化処理およびＯＣＲ処理を行っている。これにより、ＯＣＲ処理結果をもとにしたメタデータを生成するので、保存する文書データのフォーマットが統一できる。また同時に、ＰＤＬデータ中のテキストオブジェクトから文字コードを抽出してメタデータとして使用しようとする場合に生じる、以下の問題を解決することができる。すなわち、
・見た目はテキストデータであるにも係わらず、内部で保持しているデータとしては、Ｐａｔｈデータやイメージデータである場合に文字コードが得られない、
・文字コードだけでは意味が不明なものが得られてしまう、
・もとのテキストの文字列が一文字一文字に分割されて描画コマンドになっている場合には、文字認識後の形態素解析で有意なテキストデータが得られない、
といった問題を解決することができる。
【０１１５】
＜第二の実施形態＞
上述の第一の実施形態では、ＰＤＬデータがＢＯＸに保存される際に、通常のレンダリングが行われて、そのレンダリング結果をＯＣＲ処理する例を説明した。
【０１１６】
この処理の際、文字データに対して、特別な文字修飾や特別なフォントが使用されていた場合には、ＯＣＲ処理の文字認識精度が不充分となる場合が考えられる。そこで本実施形態においては、特にＰＤＬデータのＢＯＸ保存に関して、さらにＯＣＲ処理の精度を高めるために、ＯＣＲ処理専用のレンダリングを行う例を説明する。
【０１１７】
本実施形態においては、ＭＦＰ１００はドライバＵＩ６００でＰＤＬデータに対するＢＯＸ保存を指示された際に図２２に示す各処理ブロックによる処理の流れに従って動作するようにする。
【０１１８】
図２２に示すように、ＰＤＬ処理部３０４は、テキストオブジェクト変換処理部２２０１をさらに備えている。レンダラ３０５は、通常のレンダリングを行ってＢｉｔｍａｐスプール２０１に画像を保存するパスとともに、ＯＣＲ処理専用のレンダリングを行ってＯＣＲ専用Ｂｉｔｍａｐスプール２２０２に画像データを保存する構成をさらに備える。その他の処理ブロックは第一の実施形態において図４を用いて説明したとおりである。ただし、本実施形態においては、画像格納処理部２００の構成、および、全体の処理フローが前述の第一の実施形態とは異なっている。
【０１１９】
以下、図２３と図２４を用いて、本実施形態における画像格納処理部２００の詳細な構成と、画像データ格納処理における処理フローについて説明する。
【０１２０】
図２３は、本実施形態における画像格納処理部２００の構成を示すブロック図であり、図２４は、ＰＤＬデータ保存処理の処理フローを示すフローチャートである。
【０１２１】
画像格納処理部２００において、図２３に示すように、７０６のオブジェクト分割処理２部は、ＯＣＲ専用Ｂｉｔｍａｐスプール２２０２からの出力を直接受けつける。ここでの処理は、オブジェクト分割処理部７０１と同様の処理を行えばよいが、特に、文字画像ブロックのみを抽出する処理を行う。オブジェクト分割処理２部７０６で判別された文字画像ブロックは、ＯＣＲ処理部７０４において、第一の実施形態の場合と同様の処理を行い、文字コード情報を抽出する。
【０１２２】
オブジェクト分割処理部７０１でも、第一の実施形態と同様にオブジェクト分割を行うが、本実施形態においては、文字ブロックの情報および画像データは、ベクトル化処理部７０３でのみ処理されるものとなる。各オブジェクトごとに、ＪＰＥＧ圧縮処理部７０２、ベクトル化処理部７０３、ＯＣＲ処理部７０４による処理が行われた結果は統合されて、メタデータ付与処理部７０５に入力されメタデータが付与されて、ＢＯＸ保存される。
【０１２３】
続いて、これら処理ブロックによって、ＢＯＸ保存を行う際の処理フローの例を図２４のフローチャートに示し、さらに詳細を説明する。
【０１２４】
ＭＦＰ１００はクライアントＰＣ１０２上で、ドライバＵＩ６００の指示に従って、ＰＤＬデータのＢＯＸ保存指示を受けて処理を開始する（Ｓ２４００）。
【０１２５】
ステップＳ２４０１でＰＤＬデータをネットワークＩ／Ｆ１１４を介して受信して、ＰＤＬデータスプール３０３にデータを保存する。
【０１２６】
続いて、保存したデータを取り出して、ステップＳ２４０２においてＰＤＬ処理部３０４およびレンダリング部３０５の処理ブロックによる処理を行う。
【０１２７】
続いて、ステップＳ２４０３において、処理後のＢｉｔｍａｐデータをＢｉｔｍａｐスプール２０１に保存する。この後、画像格納処理部２００に処理を移す。すなわち、ステップＳ２４０４において、Ｂｉｔｍａｐデータを７０１のオブジェクト分割処理部により、オブジェクト分割する。
【０１２８】
さらに、ステップＳ２４０５において、Ｂｉｔｍａｐデータのイメージ部分をＪＰＥＧ圧縮すると同時に、ステップＳ３２０６で、グラフィックス部分および文字部分に対するベクトル化処理部７０３による処理を実行させる。
【０１２９】
他方において、ＰＤＬデータに対してテキストオブジェクト変換処理部２２０１による処理を実行させる。本実施形態において、テキストオブジェクトは図２５に示すような表現がなされており、オブジェクトの座標・サイズ、文字コード列、フォント情報、および、文字修飾情報からなっている。
【０１３０】
テキストオブジェクト変換処理部２２０１では、フォント情報すなわちフォント種別とフォントサイズをＯＣＲ処理が得意とするものに統一化して置き換える処理を行う。このことにより、ＯＣＲ処理が扱わなければならない多種のフォントを一つに統一し、従って、フォントが多種であることによって低下する可能性のあるＯＣＲ処理精度を高めることができる。また、テキストオブジェクト変換処理部２２０１は、イタリック体やボールド体のような文字修飾情報を全て破棄するように動作する。このことによって、ＯＣＲ処理が多種の字体修飾を処理しなければならないことによるＯＣＲ認識精度の低下を防ぐことが可能となる。
【０１３１】
さらに付け加えれば、テキストオブジェクト変換処理部２２０１で変換されたＰＤＬデータはＯＣＲ処理のためだけに使用され、画像記録装置１１３により記録される画像やＵＩ画面に表示される画像には影響を与えない。従って、これらの出力は、図２６に示すように、変換前の全く見え方の異なる文字要素となる。２６０１のようにサイズが大きすぎてＯＣＲによる文字認識が成功しにくいもの、あるいは、パスデータとして処理してしまう可能性のあるものは、予め文字のサイズを小さくすることにより、ＯＣＲ処理の文字認識率を向上させることができる。
【０１３２】
また、２６０２のように、フォントや文字修飾や回転がかかっていてＯＣＲ処理により文字認識が成功しにくいものや、あるいは、イメージデータとして処理してしまう可能性のあるものが存在する。このような文字に対しては、予め文字修飾情報を破棄したり、フォントの文字種およびサイズを統一化することでＯＣＲ処理の文字認識率を向上させることができる。
【０１３３】
また、２６０３のように、文字コードとフォントの組み合わせでレンダリングされて初めて意味のある視覚情報となるようなオブジェクトは、フォントを統一することで、文字コードが言語情報として意味のないものであることが分かることになる。このようにすれば、ＯＣＲ処理結果をもとにメタデータ付与する際の形態素解析において、不明語として処理されることにより、意味のないメタデータが付与されることを防ぐことができる。
【０１３４】
以上のようにして変換されたＰＤＬデータは、ステップＳ２４０８でＰＤＬ処理およびレンダリングがなされる。
【０１３５】
そして、生成されたＢｉｔｍａｐデータを、ステップＳ２４０９において、ＯＣＲ専用Ｂｉｔｍａｐスプール２２０２に保存する。
【０１３６】
ステップＳ２４１１において、ＯＣＲ処理部７０４はＯＣＲ専用Ｂｉｔｍａｐスプール２２０２からデータを取り出してＯＣＲ処理を行い、文字コードを出力する。
【０１３７】
ステップＳ２４１２では文字コード情報とベクトル化されたデータの統合を行う。そして、ステップＳ３２１３においてメタデータ付与処理を行ってＢＯＸへの保存を行う。
【０１３８】
以上の処理を行って、全体の処理を終える（Ｓ２４１４）。
【０１３９】
通常ＢｉｔｍａｐのレンダリングとＯＣＲ専用Ｂｉｔｍａｐのレンダリングの実行タイミングについては、本実施形態での処理フローではほぼ同時であるものとする。しかし、２つのＢｉｔｍａｐスプールにそれぞれ画像データを保持することができるので、このタイミングは同時でなくてもかまわない。例えば、ＯＣＲ専用Ｂｉｔｍａｐデータをレンダリングにより作成し保存しておき、ＭＦＰ１００のＣＰＵによる処理が空いた時間帯にそのＯＣＲ処理および画像格納処理を行うように待機させる制御を行っても構わない。
【０１４０】
＜第三の実施形態＞
前述の第一の実施形態および第二の実施形態においては、文字コード情報としてＯＣＲ処理の結果から得られるものを使用してメタデータの付与を行う例を説明した。特に第二の実施形態においては文字認識精度を高めるべく、ＯＣＲ専用のＢｉｔｍａｐデータを生成する構成を説明した。本実施形態においては、ＯＣＲ処理によって得られた文字コード情報と、ＰＤＬデータからそのまま抽出される文字コード情報を併用して文字コード情報の信頼性を高める例を図２７から２９を用いて説明する。
【０１４１】
図２７は、本実施形態におけるＰＤＬデータに対するＢＯＸ保存処理の際の各処理ブロックによる処理の流れを示す図である。図２８は、同実施形態における画像格納処理部２００の構成を示す図であり、図２９は、文字コード情報統合処理部７０７が行う処理フローの例を示すフローチャートである。
【０１４２】
本実施形態においては、図２７に示すように、レンダラ３０５に渡されるディスプレイリスト（Ｄｉｓｐｌａｙ  Ｌｉｓｔ）情報から、文字コードを抽出する処理を行う文字コード情報抽出処理部２７０１を追加する。本実施形態の文字コード情報抽出処理部２７０１は、図２５に示したテキストオブジェクト情報から座標・サイズ情報と文字コード情報を抽出し、画像格納処理部２００に渡すように処理を行う。図２７に示すその他の処理ブロックは、第二の実施形態で説明に用いた図２２に示した対応する処理ブロックと同様のものとするが、第一の実施形態で説明に用いた図７に示した対応する処理ブロックと同様のものとしてもかまわない。
【０１４３】
画像格納処理部２００は、図２８に示すように、文字コード情報２を直接受け取り、文字コード情報２とＯＣＲ処理部７０４の処理によって得られた文字コード情報との統合を行う文字コード統合処理部７０７をさらに備えている。
【０１４４】
ここで、文字コード情報統合処理部７０７が行う処理の詳細を、図２９を用いて説明する。
【０１４５】
文字コード情報統合処理が開始されると（Ｓ２９００）、ステップＳ２９０１において、ＯＣＲ処理部７０４の処理によって得られた文字コード情報と文字コード情報抽出処理部２７０１で抽出された文字コード情報２の対応関係の照合を行う。
【０１４６】
次に、ステップＳ２９０２において、位置・サイズが概略同じ文字コード情報を抽出する。
【０１４７】
次いで、ステップＳ２９０３でそれぞれの文字コード情報に含まれる文字コード列の形態素解析を行う。
【０１４８】
そして、ステップＳ２９０４の形態素解析で得られた結果に不明語が少ないほうの文字コード情報を採用してこれを出力し、全体の処理を終える（Ｓ２９０４）。
【０１４９】
以上の処理により、得られる文字コード情報の信頼性を向上することが可能となる。
【０１５０】
どちらの文字コードを出力するかを決定するルールとしては、以下のようなものを考えることもできる。すなわち、テキストオブジェクトが一文字一文字ばらばらに分解されＰＤＬデータとして送られてくる場合には、文字コード情報２は一文字のものばかりを含んでしまい、形態素解析の結果はほとんど意味のないものとなる。従って、文字コード列が長い方を採用するというルール付けをおこなってもよい。
【０１５１】
＜第四の実施形態＞
前述の第三の実施形態でＭＦＰ１００側に導入したテキストオブジェクト変換処理部２２０１による処理は、プリンタドライバ側で行ってもよい。
【０１５２】
図３０は、クライアントＰＣ１０２側の構成としてテキストオブジェクト変換処理２部３００１を追加した例を示している。テキストオブジェクト変換処理２部３００１の処理内容は、テキストオブジェクト変換処理部２２０１と同様の処理を行う。
【０１５３】
ドライバＵＩ６００でＰＤＬデータのＢＯＸ保存の指定がなされた際には、プリンタドライバ３０２からのＰＤＬデータ送信は、テキストオブジェクト変換を行わない通常のＰＤＬデータの送信となる。次に、ＯＣＲ専用のレンダリングを行う指定とともに、テキストオブジェクト変換処理がなされたＰＤＬデータを送信する。
【０１５４】
ＭＦＰ１００側では、プリンタドライバ３０２からの一回目のＰＤＬデータ受信の際には、通常のＢｉｔｍａｐスプール２０１に画像データが展開されるように制御する。そして、２回目のＰＤＬデータ受信の際には、ＯＣＲ専用Ｂｉｔｍａｐスプール２２０２にＰＤＬデータが展開されるように制御する。
【０１５５】
通常のＢｉｔｍａｐスプール２０１とＯＣＲ専用Ｂｉｔｍａｐスプール２２０２へ画像データの展開がなされた後の処理については、前述の第二あるいは第三の実施形態で説明した処理と同様に処理を行えばよい。
【０１５６】
また、本実施形態においては、ＰＤＬ処理部３０４に接続されるテキストオブジェクト変換処理部２２０１は必ずしも必要ではなくなる。
【０１５７】
本実施形態の構成によれば、クライアントＰＣ１０２側でアプリケーションとプリンタドライバの処理によって、もともとテキストデータであったものが、イメージデータになったりＰａｔｈデータになったりするケースを低減させることができる。このため、「見た目はテキストデータであるにも係わらず、内部で保持しているデータとしては、Ｐａｔｈデータやイメージデータである場合に文字コードが得られない」という問題の解決にさらに寄与できる。
【０１５８】
＜その他の実施の形態＞
前述の第一から第四の実施形態においては、ＰＤＬデータがＢＯＸに保存される際には、ＰＤＬデータがレンダリングされた画像データをオブジェクト分割して、ベクトル化処理、ＪＰＥＧ圧縮処理、ＯＣＲ処理がされるものとして説明してきた。しかし、図３１に示すように、ＰＤＬ処理部３０４で生成されたＤｉｓｐｌａｙＬｉｓｔ情報をそのまま画像格納処理部２００に渡すようにしてもよい。
【０１５９】
このとき、ＭＦＰ１００は、テキストオブジェクト変換処理されていないＰＤＬデータから生成されたＤｉｓｐｌａｙＬｉｓｔをそのまま画像格納処理部２００に渡すように制御する。そして、テキストオブジェクト変換処理を施したＰＤＬデータはレンダラ３０５でＯＣＲ専用Ｂｉｔｍａｐデータとしてレンダリングされるように制御する。
【０１６０】
図３２に示すように、画像格納処理部２００は、入力されたＤｉｓｐｌａｙＬｉｓｔが、３２０１においてＳＶＧデータに直接変換されるように制御する。もともと、ＤｉｓｐｌａｙＬｉｓｔ上では、Ｉｍａｇｅオブジェクト、Ｇｒａｐｈｉｃｓオブジェクト、Ｔｅｘｔオブジェクトはオブジェクト分割されており、Ｇｒａｐｈｉｃｓオブジェクトはベクトル表現であるため、ある程度の直接変換が可能である。
【０１６１】
一方、これとは別に、ＯＣＲ専用Ｂｉｔｍａｐデータから、オブジェクト分割処理２部７０６によって得られた文字画像領域に対してＯＣＲ処理部７０４による処理を施す。そして文字コード情報を抽出し、第一から第四の実施形態で説明してきたようにメタデータ付与処理を行う。
【０１６２】
以上、説明してきたように、本実施形態においても、ＰＤＬデータ中の文字オブジェクトから文字コードを取り出して、それを検索のためのインデックスとする際の問題点を効果的に解決し、信頼性のある文書格納を行う画像処理装置を提供することが可能である。
【０１６３】
以上、本発明の諸実施形態について説明した。
【０１６４】
なお、本発明の目的は、上述した実施形態で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）がそのプログラムコードを読出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が、コンピュータに、上述した実施形態の機能を実現させることになる。そのため、このプログラムコード及びプログラムコードを記憶／記録したコンピュータ読み取り可能な記憶媒体も本発明の一つを構成することになる。
【０１６５】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１６６】
また、前述した実施形態の機能は、コンピュータが、読み出したプログラムを実行することによって実現される。また、このプログラムの実行とは、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行う場合も含まれる。
【０１６７】
さらに、前述した実施形態の機能は、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットによっても実現することもできる。この場合、まず、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行う。こうした機能拡張ボードや機能拡張ユニットによる処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１６８】
【図１】本発明に係る画像処理システムの概略構成を示すブロック図である。
【図２】本発明の一実施形態であるＭＦＰの構成の例を示すブロック図である。
【図３】画像読み取りの際の、同ＭＦＰのコピー機能・スキャン送信機能・ＢＯＸ機能を実現する各処理ブロックによる処理の流れを示す図である。
【図４】同ＭＦＰのＰＤＬデータに対するＰＤＬ処理機能・ＢＯＸ機能を実現する各処理ブロックによる処理の流れを示す図である。
【図５】同実施形態におけるコピー・スキャン送信・ＢＯＸ保存等の機能を利用する際のＵＩの例を示す図である。
【図６】同実施形態におけるドライバＵＩの例を示す図である。
【図７】画像格納処理部２００の構成を示すブロック図である。
【図８】メタデータ付与処理のフローチャートである。
【図９】ベクトル化処理部７０３でベクトル化されたデータのフォーマットの一例である。
【図１０】オブジェクト分割処理による画像データのオブジェクト分割結果の一例を示す図である。
【図１１】オブジェクト分割したときの各属性のブロック情報および入力ファイル情報の例を示す図である。
【図１２】ベクトル化処理部７０３における処理の流れを示すフローチャートである。
【図１３】ベクトル化の処理における角抽出の処理を説明するための図である。
【図１４】ベクトル化の処理における輪郭線まとめの処理を説明するための図である。
【図１５】図１２で生成されたベクトルデータのグループ化の処理を示すフローチャートである。
【図１６】図１５の処理でグループ化されたベクトルデータに対する図形要素検出の処理を示すフローチャートである。
【図１７】同実施形態におけるＢＯＸ保存時のＵＩ表示の一例を示した図である。
【図１８】同実施形態におけるＢＯＸ保存時のＵＩ表示の例を示した図である。
【図１９】同実施形態におけるＢＯＸ保存時のＵＩ表示の一例を示した図である。
【図２０】同実施形態におけるＢＯＸ保存時のＵＩ表示の一例を示した図である。
【図２１】同実施形態におけるＢＯＸ保存時のＵＩ表示のオブジェクトとメタ情報を表示される例を示した図である。
【図２２】第二の実施形態におけるＰＤＬデータに対するＢＯＸ保存処理の際の各処理ブロックによる処理の流れを示す図である。
【図２３】同実施形態における画像格納処理部の構成を示すブロック図である。
【図２４】同実施形態におけるＢＯＸ保存処理の処理フローを示すフローチャートである。
【図２５】同実施形態におけるテキストオブジェクトの表現例を示す図である。
【図２６】同実施形態におけるテキストオブジェクト変換処理を説明する図である。
【０１６９】
【図２７】第三の実施形態におけるＰＤＬデータに対するＢＯＸ保存処理の際の各処理ブロックによる処理の流れを示す図である。
【図２８】同実施形態における画像格納処理部２００の構成を示す図である。
【図２９】同実施形態における文字コード情報統合処理部７０７が行う処理フローの例を示すフローチャートである。
【図３０】第四の実施形態におけるテキストオブジェクト変換処理ための構成例を示す図である。
【図３１】その他の実施形態におけるＰＤＬデータに対するＢＯＸ保存処理の際の各処理ブロックによる処理の流れを示す図である。
【図３２】同実施形態における画像格納処理部２００の構成を示す図である。
【符号の説明】
【０１７０】
１００  ＭＦＰ
１０１  ＬＡＮ
１０２  クライアントＰＣ
１０３  文書管理サーバ
１０４  データベース
１１０  画像読み取り装置
１１１  読み取り画像処理部
１１２  出力画像処理部
１１３  画像記録装置
１１４  ネットワークＩ／Ｆ
１１５  記憶部
１１６  入力装置
１１７  表示装置
１１８  ＣＰＵ
１１９  ＲＡＭ
１２０  ＲＯＭ
２００  画像格納処理部
２０１  Ｂｉｔｍａｐスプール
２０２  画像送信処理部
３０１  アプリ（アプリケーション）
３０２  プリンタドライバ
３０３  ＰＤＬデータスプール
３０４  ＰＤＬ処理部
３０５  レンダラ
７０１  オブジェクト分割処理部
７０２  ＪＰＥＧ圧縮処理部
７０３  ベクトル化処理部
７０４  ＯＣＲ処理部
７０５  メタデータ付与部
７０６  オブジェクト分割処理２部
７０７  文字コード統合処理部
２２０１  テキストオブジェクト変換処理部
２２０２  ＯＣＲ専用Ｂｉｔｍａｐスプール
２７０１  文字コード情報抽出処理部
３０００  テキストオブジェクト変換処理２部
３２０１  ＤｉｓｐｌａｙＬｉｓｔ→ベクトル化データ変換部
【図１】
2010020468.tif 000003
【図２】
2010020468.tif 000004
【図３】
2010020468.tif 000005
【図４】
2010020468.tif 000006
【図５】
2010020468.tif 000007
【図６】
2010020468.tif 000008
【図７】
2010020468.tif 000009
【図８】
2010020468.tif 000010
【図９】
2010020468.tif 000011
【図１０】
2010020468.tif 000012
【図１１】
2010020468.tif 000013
【図１２】
2010020468.tif 000014
【図１３】
2010020468.tif 000015
【図１４】
2010020468.tif 000016
【図１５】
2010020468.tif 000017
【図１６】
2010020468.tif 000018
【図１７】
2010020468.tif 000019
【図１８】
2010020468.tif 000020
【図１９】
2010020468.tif 000021
【図２０】
2010020468.tif 000022
【図２１】
2010020468.tif 000023
【図２２】
2010020468.tif 000024
【図２３】
2010020468.tif 000025
【図２４】
2010020468.tif 000026
【図２５】
2010020468.tif 000027
【図２６】
2010020468.tif 000028
【図２７】
2010020468.tif 000029
【図２８】
2010020468.tif 000030
【図２９】
2010020468.tif 000031
【図３０】
2010020468.tif 000032
【図３１】
2010020468.tif 000033
【図３２】
2010020468.tif 000034