(57)【特許請求の範囲】
【請求項１】
ドキュメントにおけるテキストを文字認識処理するのに適切な第１の解像度で該ドキュメントの画像を取得する取得手段と、
前記取得手段で取得したドキュメント画像内のテキスト画像を文字認識処理して、文字認識結果のテキストデータを得る文字認識手段と、
前記取得手段で取得したドキュメント画像の解像度を低下させて、視覚もしくは画像再生するのに適切な第２の解像度のドキュメント画像に変換する解像度変換手段と、
前記ドキュメント画像がテキストデータのサーチに基づいて検索されるように、前記解像度変換手段で解像度を低下させたドキュメント画像を、前記文字認識手段で得たテキストデータと関連付けて格納する格納手段と
を備えることを特徴とするドキュメント格納装置。
【請求項２】
前記格納手段は、前記解像度を低下させたドキュメント画像と前記テキストデータとを、ネットワークを介してアクセス可能な記憶媒体に格納することを特徴とする請求項１に記載のドキュメント格納装置。
【請求項３】
サーチの照会に基づいて、前記格納手段により格納されたテキストデータをサーチするサーチ手段と、
前記サーチ手段でサーチされたテキストデータに関連付けられている、前記解像度を低下させたドキュメント画像を検索して出力する出力手段とを更に備えることを特徴とする請求項１に記載のドキュメント格納装置。
【請求項４】
前記格納手段は、前記解像度を低下させたドキュメント画像を圧縮し、前記テキストデータと関連付けて格納し、
前記出力手段は、前記圧縮されて格納されているドキュメント画像を伸張して出力することを特徴とする請求項３に記載のドキュメント格納装置。
【請求項５】
前記ドキュメント画像は多値画像であることを特徴とする請求項１に記載のドキュメント格納装置。
【請求項６】
画像を格納し、前記画像を処理するインストラクションシーケンスを格納するメモリと、
前記格納されたインストラクションシーケンスを実行するプロセッサとを備えるドキュメント格納装置であって、
前記格納されたインストラクションシーケンスは、前記プロセッサに（ａ）ドキュメントにおけるテキストを文字認識処理するのに適切な第１の解像度で該ドキュメントの画像を取得するように制御する取得ステップと、（ｂ）前記取得ステップで取得したドキュメント画像内のテキスト画像を文字認識処理して、文字認識結果のテキストデータを得る文字認識ステップと、（ｃ）前記取得ステップで取得したドキュメント画像の解像度を低下させて、視覚もしくは画像再生するのに適切な第２の解像度のドキュメント画像に変換する解像度変換ステップと、（ｄ）前記ドキュメント画像がテキストデータのサーチに基づいて検索されるように、前記解像度変換ステップで解像度を低下させたドキュメント画像を、前記文字認識ステップで得たテキストデータと関連付けて格納する格納ステップと、を実行させるためのインストラクションシーケンスを含むことを特徴とするドキュメント格納装置。
【請求項７】
ドキュメントにおけるテキストを文字認識処理するのに適切な第１の解像度で該ドキュメントの画像を取得するように制御する取得ステップと、
前記取得ステップで取得したドキュメント画像内のテキスト画像を文字認識処理して、文字認識結果のテキストデータを得る文字認識ステップと、
前記取得ステップで取得したドキュメント画像の解像度を低下させて、視覚もしくは画像再生するのに適切な第２の解像度のドキュメント画像に変換する解像度変換ステップと、
前記ドキュメント画像がテキストデータのサーチに基づいて検索されるように、前記解像度変換ステップで解像度を低下させたドキュメント画像を、前記文字認識ステップで得たテキストデータと関連付けて格納するように制御する格納ステップと
を備えることを特徴とするドキュメント格納方法。
【請求項８】
前記格納ステップでは、前記解像度を低下させたドキュメント画像と前記テキストデータとを、ネットワークを介してアクセス可能な記憶媒体に格納することを特徴とする請求項７に記載のドキュメント格納方法。
【請求項９】
サーチの照会に基づいて、前記格納ステップにより格納されたテキストデータをサーチするサーチステップと、
前記サーチステップでサーチされたテキストデータに関連付けられている、前記解像度を低下させたドキュメント画像を検索して出力する出力ステップとを更に備えることを特徴とする請求項７に記載のドキュメント格納方法。
【請求項１０】
前記格納ステップでは、前記解像度を低下させたドキュメント画像を圧縮し、前記テキストデータと関連付けて格納するように制御し、
前記出力ステップでは、前記圧縮されて格納されているドキュメント画像を伸張して出力することを特徴とする請求項９に記載のドキュメント格納方法。
【請求項１１】
前記ドキュメント画像は多値画像であることを特徴とする請求項７に記載のドキュメント格納方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は光学文字認識システムに関し、特にドキュメント画像（images of documents）を走査してコンピュータへ格納する方法及び装置であって、ドキュメント画像をテキストブロック及び非テキストブロックに区分し、テキストブロックにおける文字の識別（identity）を決定する方法及び装置に関するものである。
【０００２】
【従来の技術】
近年、書類になったドキュメントを走査してコンピュータ化画像を形成し、テキスト領域内の画像を分析して、テキストデータ内の個々の文字を認識し、認識された文字に対応する、コンピュータによる読み取りが可能な文字コードのファイルを形成することができるようになった。そうしたファイルはワードプロセッシング、データ圧縮、または他の情報処理プログラムで操作することが可能であり、また、照会ベース（query-based）のテキストデータのサーチに応じたドキュメント画像の検索にも使用することが可能である。これよりそうしたシステムを「文字認識システム」と称するが、これらのシステムは、タイプの打ち直しや、書類になったドキュメントからテキストデータを再入力する必要をなくすことができるので有益である。例えば、ファクシミリにより送信されたり、マイクロフィルムから、または写真複写により再生されたドキュメントに認識処理を行ない、文字の文字コード（例えば、ＡＳＣＩＩ文字コード）やドキュメントの数字を含むコンピュータテキストファイルを形成することが可能である。
【０００３】
従来の文字認識システムは書類になっているドキュメントを走査してドキュメントの２値画像を形成する。「２値画像」とは、画像の各画素が２値のゼロ、つまりドキュメントの白領域を表す画素であるか、２値の１、つまり黒領域を表す画素のどちらかである画像である。そして、２値画像（または「白黒画像（black-and-white image）」）  に対し、認識処理を行ない、ドキュメントのテキスト領域内の文字の識別を決定する。
【０００４】
最近、書類形態のドキュメントを走査してドキュメントのグレイスケール画像を形成すれば、認識精度が大幅に向上することが判明している。「グレイスケール」とは、ドキュメントの各画素が、２値のゼロでも２値の１でもなく、２つ以上の強度レベルのうちの１つ、例えば４レベル、１６レベル、２５６レベルなどの強度レベルのうちの１つにより表される画像のことである。そうしたシステムは、本出願人による米国特許出願第０８／１１２、１３３号「遷移グラウンドデータに基づくＯＣＲ分類（OCR Classification Based On Transition Group Data）」（１９９３年８月２６日出願）に記載されており、その全内容は参照により本願に含まれているものとする。幾つかの例では、２値画像よりもグレイスケール画像を用いた方が認識精度が向上しており、ドキュメントの１ページに付き１つのエラーが５００ページに付き１以下のエラーと減少している。
【０００５】
図１は２値画像とグレイスケール画像の相違を表しており、上述のような認識精度がいかにして得られるかを理解するための図である。図１（ａ）は、文字「ａ」の上に画素解像度を表すグリッド１が重ねられた状態を表している。文字「ａ」は、グリッド１を用い、ＣＣＤ列など感光性の素子で走査される。例えば、グリッド１は４００ドット・パー・インチ（dot per inch） （dpi）の解像度を表している。図１（ｂ）に示されるように、各画素について、文字「ａ」がその画素を有効にする（activate）のに十分な程度にその画素に対応する感光性素子を暗くしているかどうかに基づいて、各画素に２値の１または２値のゼロを割り当てることにより、文字「ａ」の２値画像が形成される。こうして、図１（ａ）の画素２ａは文字「ａ」である黒い領域内に完全に存在しているので、図１（ｂ）の黒画素２ｂとなる。一方、画素３ａは文字領域から完全にはずれており、白画素３ｂとなる。画素４ａは部分的に文字領域内であるが有効な文字部分の画素としては不十分に文字領域にかかっているため、白画素４ｂとなる。一方、画素５ａは文字部分の画素として有効な画素になるのに十分に文字領域内に含まれており、黒画素５ｂとなる。
【０００６】
図１（ｃ）は同一の文字「ａ」のグレイスケール画像を表している。図１（ｃ）に示されるように、完全に文字領域内の画素（２ａ）や完全に文字領域外の画素（３ａ）は、図１（ｂ）と同様の完全な黒や白のグレイスケールレベルの画素である。一方、部分的に文字領域内であった画素は領域範囲内に相当する量を表すグレイレベルを割り当てられる。こうして、４レベルのグレイスケール画像を表す図１（ｃ）において、画素４ｃ及び５ｃは、夫々の領域内の量に基づいて、画素４ｃは低グレイスケール値を与えられ、画素５ｃはより高いグレイスケール値を与えられている。こうして、走査プロセスの所産により、図１（ａ）に示されるような本来白黒のドキュメントを走査し、基本的には文字エッジに、文字領域内の量に依存して割り当てられたグレイスケール値を持つ、図１（ｃ）のようなグレイスケール画像とすることが出来る。
【０００７】
図１（ｂ）、１（ｃ）を比較すると、図１（ｃ）には付加的な細かい部分が、特に文字エッジに存在することがわかる。この付加部分は基本的には認識精度を向上させるためのものである。
【０００８】
しかし、個々のグレイスケール文字画像を認識処理に送るために、個々の文字のグレイスケール画像をどのようにドキュメントのグレイスケール画像から抽出するかという点に問題がある。さらに詳しくは、認識精度は、１文字が始まる場所と、次の１文字が終わる場所を決定する能力に多いに依存しているため、文字のグループよりも単一の文字に対して認識処理を行なっている。
【０００９】
図２はこの状況を表すもので、代表的なドキュメントの１ページを示している。図２において、ドキュメント１０は２欄形式になっている。ドキュメントは、タイトルに適切な大きいフォントサイズの情報を含む、タイトルブロック１２と、カラーまたは中間調の絵を含むピクチャーブロック１３と、個々の文字の行のテキスト情報を含むテキストブロック１４と、非テキストであるグラフィック画像を含むグラフィックブロック１５と、テーブルのテキストまたは非テキストのボーダー（borders）またはフレームに囲まれた数値情報を含むテーブルブロック１６と、説明分（キャプション）に適切な小さいフォントサイズの情報であって、通常グラフィックまたはテーブル情報のブロックに関連している、キャプションブロック１７から成っている。
【００１０】
認識処理に先立ち、ドキュメントのグレイスケール画像を形成するために、ドキュメント１０を走査する際、グレイスケール画像のどの領域がテキスト領域で、どの領域が非テキスト領域であるかを決めることと、さらに、テキスト領域に対して、どこに個々の文字が位置しているかを決めることが必要である。以降この処理を「セグメンテーション処理（segmentation processing）」と称する。セグメンテーション処理により位置付けられた後に、個々の文字に認識処理を行ない、文字を識別して文字のテキストファイルを形成することができる。
【００１１】
従来の２値画像に対するセグメンテーション処理技術は、一般に正確にテキストを非テキスト領域から分離できず、テキスト領域内の個々の文字の位置を正確に識別できないという点において不十分であった。さらに、グレイスケール画像に対しては、現在のところセグメンテーション処理技術は知られていない。
【００１２】
【発明が解決しようとする課題】
一般に、文字認識処理をより正確に行うにはより高解像度の画像データが必要であるが、多くの画像を格納するデータベース等の構築においては、記憶容量が膨大となり、格納できる画像データの数が限られてしまう。また、検索処理等においても、画像データの多大なデータ量はその処理速度に影響を及ぼす。
【００１３】
本発明は上記の問題点に鑑みてなされたものであり、認識処理時においてはより高解像度の画像データを用いて認識率を向上すると共に、格納時には視覚に影響しない程度に解像度を落として画像データを格納することを可能とし、文字認識率を保ちつつより多くの画像データを格納するドキュメント格納検索装置を提供することを目的とする。
【００１４】
また、本発明の他の目的は、文字認識の結果得られたテキストデータと低解像度の画像データとを対応させて格納することにより、より高速な画像データ検索を可能とすることにある。
【００１５】
また、本発明の他の目的は、低解像度の画像データを用いることによりネットワーク上のデータ転送量を低減し、ネットワークに好適な画像格納検索システムを提供可能とすることにある。
【００１６】
また、本発明の他の目的は、低解像度の画像データを更に圧縮して格納し、より多くの画像データを格納することを可能とすることにある。
【００１７】
【課題を解決するための手段】
及び
【作用】
上記の目的を達成するための本発明のドキュメント格納装置は、以下の構成を備える。即ち、
ドキュメントにおけるテキストを文字認識処理するのに適切な第１の解像度で該ドキュメントの画像を取得する取得手段と、
前記取得手段で取得したドキュメント画像内のテキスト画像を文字認識処理して、文字認識結果のテキストデータを得る文字認識手段と、
前記取得手段で取得したドキュメント画像の解像度を低下させて、視覚もしくは画像再生するのに適切な第２の解像度のドキュメント画像に変換する解像度変換手段と、
前記ドキュメント画像がテキストデータのサーチに基づいて検索されるように、前記解像度変換手段で解像度を低下させたドキュメント画像を、前記文字認識手段で得たテキストデータと関連付けて格納する格納手段とを備える。
また、上記の目的を達成する本発明のドキュメント格納方法は、
ドキュメントにおけるテキストを文字認識処理するのに適切な第１の解像度で該ドキュメントの画像を取得するように制御する取得ステップと、
前記取得ステップで取得したドキュメント画像内のテキスト画像を文字認識処理して、文字認識結果のテキストデータを得る文字認識ステップと、
前記取得ステップで取得したドキュメント画像の解像度を低下させて、視覚もしくは画像再生するのに適切な第２の解像度のドキュメント画像に変換する解像度変換ステップと、
前記ドキュメント画像がテキストデータのサーチに基づいて検索されるように、前記解像度変換ステップで解像度を低下させたドキュメント画像を、前記文字認識ステップで得たテキストデータと関連付けて格納するように制御する格納ステップとを備える。
【００１８】
また、好ましくは、前記格納手段は前記解像度を低下させた画像と前記コンピュータ読み取り可能なテキストファイルをコンピュータ化したローカルエリアネットワーク上に格納する。解像度を低下させた画像データはデータ量が少なく、ネットワーク上を転送するのに適しており、ネットワークを用いたドキュメント格納検索装置を提供できるからである。
【００１９】
また、好ましくは、サーチの照会に基づいて複数のコンピュータ読み取り可能なテキストファイルをサーチするサーチ手段と、前記サーチの照会に一致するコンピュータ読み取り可能なテキストファイルを検索する第１の検索手段と、検索されたコンピュータ読み取り可能なテキストファイルに関連する解像度を低下させた画像を検索する第２の検索手段とを更に備える。テキストファイルに基づいて画像検索を行うので、より高速な検索が可能となる。
【００２０】
また、好ましくは、前記格納手段は解像度を低下させた画像を圧縮された形で格納し、検索された解像度を低下させた画像を伸張する伸張手段をさらに備える。画像データを圧縮することで更に多くの画像データを格納できる。
【００２１】
また、本発明の好ましい一態様は、セグメンテーション処理技術を含む、向上されたグレイスケール文字認識システムを提供することを目的とする。
【００２２】
本発明によれば、グレイスケール画像を閾値処理することによって２値画像を得て、得られた２値画像内の個々の文字の位置、個々の文字の形状を決定するためにセグメンテーション処理を行ない、２値画像の位置と形状を用いて、各文字のグレイスケール画像をグレイスケール画像から抽出することにより、ドキュメントのグレイスケール画像における個々の文字を抽出し、認識処理を行う。そして、抽出された各文字のグレイスケール画像に認識処理を行なう。
【００２３】
このように、本発明の文字認識システムは、ドキュメントを走査してそのドキュメントのグレイスケール画像を得て、グレイスケール画像と閾値とを比較してグレイスケール画像から２値画像を生成することにより、文字が形成されているドキュメントにおける、それらの文字を識別する。２値画像をセグメンテーションによって分割し、２値画像内の個々の文字の位置と、個々の文字の形状を決定する。２値画像における文字の位置と形状に基づいて、個々の文字に対するグレイスケール画像情報をグレイスケール画像から抽出する。そして、抽出されたグレイスケール画像に対して認識処理を行ない、文字の識別を決定し、その文字の識別をコンピュータに読み取れるファイルに格納する。
【００２４】
上述のように文字のグレイスケール画像を認識処理するだけではなく、さらに文字の２値画像を認識処理することによっても、認識精度を向上することが可能である。グレイスケール画像及び２値画像の夫々から決定された識別の不一致は、文字の２値画像のアスペクト比や画素密度など実際の画像属性に基づいて解決する（または「明確にする（disambiguated）」）。
【００２５】
文字のフォント特性（font characteristics）、例えば、文字のスペースが均一であるか、プロポーショナルであるか、サンセリフ（sans-serif）（セリフという文字のヒゲ飾りがない活字書体）であるか、を決定することでも、さらに認識精度を上げることができる。フォント特性に基づいて、複数の認識処理技術から１つを選択し、各文字が抽出される毎に、上述のように選択された認識処理技術に従って認識処理をおこなう。
【００２６】
ドキュメント内の１つのテキストを識別してコンピュータ読み取り可能なファイルとして格納してしまうと、そのテキストファイルはドキュメント画像を検索するのに使用される。例えば照会ベースのサーチを用いて対応するドキュメント画像を検索するのに使用される。
【００２７】
認識処理技術は普通の人間の知覚に必要な解像度よりもかなり高い解像度を必要とするため、本発明の１態様は、ドキュメント格納及び検索システムであって、従来のシステムと比較して、必要な格納容量を縮小できるシステムに向けられている。この発明の１態様によれば、ドキュメント格納及び検索システムは、ドキュメントのテキストを認識処理するのに適切な第１の解像度でドキュメントを走査してドキュメントのグレイスケール画像を形成する。そしてドキュメントのテキストに認識処理を行ない、テキストのコンピュータ読み取り可能なファイルを作成し、グレイスケール画像の解像度を低下させて、第１の解像度より低い、視覚や画像再生に適切な第２の解像度にする。この低下した解像度の画像のみをコンピュータ読み取り可能なファイルと関連させて格納して、後で照会ベースのサーチを用いて画像が検索されるようにする。
【００２８】
以上の構成により、低解像度の画像のみを格納するので、メモリの記憶容量を縮小することができ、より多くの画像を格納することができる。さらに、画像データ量がより小さいので処理速度を上げることが可能である。また画像データを移動したり、圧縮または伸張したり、その他の処理をさらに高速に行なうことが可能である。
【００２９】
上述の簡潔な要約は本発明の本質を迅速に理解するためのものである。添付の図面に係わる以下の好適な実施例の説明を参照すれば、発明のより完全な理解が得られるであろう。
【００３０】
【実施例】
本発明の代表的な１実施例の構成は図３、４、５に示され、この代表的な実施例の動作は残りの図面に説明される通りである。本実施例は「パーソナル画像処理コンピュータシステム（personal imaging computer system）」すなわちドキュメントの走査、格納及び処理の装置を含む単一のスタンドアロン装置であって、コンピュータ化したローカルエリアネットワークまたはワイドエリアネットワークと接続可能な装置である。相当する汎用構成要素は以下に説明される装置で代用することができる。例えば、汎用のプログラム可能なコンピュータを、適切な周辺機器で代用することが可能である。
【００３１】
[１．１  パーソナル画像処理コンピュータシステム]
図３は本実施例に係わるグレイスケール文字認識システムを含むパーソナル画像処理システム（「ＰＩＣＳ」）の外観の部分切取図である。図３に示すように、ＰＩＣＳ装置２０は、１つのハウジング内に、積み重なった書類であるドキュメントが載置され１シートづつドキュメントスキャナ部２２を通るように供給されるドキュメント供給部２１を備えている。ドキュメントスキャナ部２２は、好ましくはデュアルサイドスキャナから成り、ＣＣＤラインセンサ列を用いて各ドキュメントページを走査し、ドキュメントのグレイスケール画像を生成する。走査の後に、ドキュメントページは排紙トレー２３へ排出され、トレー上に積み重ねられる。同様にペーパー格納トレー２５内の（または不図示のペーパーカートリッジ）空白のドキュメントシートがＰＩＣＳ装置２０によりプリンタ部２６へ供給される。プリンタ部２６は空白のシート上にトナー像を形成し、新しくプリントされたドキュメントを排紙トレー２７へ排出する。
【００３２】
ＰＩＣＳ装置２０はさらにファクシミリ／モデムインターフェイス（図５）を備えており、このインターフェイスによりＰＩＣＳ装置２０は通常の音声／データ電話回線と接続して、遠隔のコンピュータとデータ通信やファクシミリ通信を行ない、オペレータはハンドセット３０を介して通常の音声通信を行なうことができる。ローカルエリアネットワーク３１及びワイドエリアネットワーク３２にもインターフェイスが設けられており、ユーザがそれらのネットワークを介して遠隔のワークステーションと通信できるようになっている。
【００３３】
コントロールパネル３４ではオペレータによる制御と、表示が行なわれる。コントロールパネル３４は、ＶＧＡ液晶表示パネルなどのフラットパネル表示スクリーン３５を備えている。オペレータが表示スクリーン３５に表示されたカーソルを操作できるように、また表示スクリーン上のオブジェクトを選択できるように、トラックボール３６が設けられている。３３の位置に通常の電話キーが設けられ、３７の位置に、従来のファクシミリ制御ボタンが設けられ、３８の位置にスタート／ストップボタンが設けられている。３９の位置にプログラム可能な機能キーが設けられており、オペレータがＰＩＣＳ装置２０の様々な画像処理動作を制御できるようになっている。
【００３４】
ＰＩＣＳ装置２０は汎用コンピュータ（図５に詳細を示す）を備えており、このコンピュータにより、オペレータはドキュメントを走査し、ドキュメントにセグメンテーション処理や認識処理を行なってドキュメントのテキスト領域に対応するテキストファイルを作成し、ドキュメント画像をプリントし、トラックボール３６と表示スクリーン３５を介してドキュメント画像やテキストファイルを操作したり、ドキュメントや画像をファクシミリによって送受信する。
【００３５】
ワードプロセッシング、画像処理、スプレッドシート処理などの他の情報処理技術は、ＰＩＣＳ装置２０にロードされているソフトウェアに従って、オペレータが実行する。このように、ＰＩＣＳ装置２０はオペレータに、他の情報処理プロジェクトのための汎用コンピュータシステムも備えた強力なパーソナル画像処理コンピュータシステムを提供する。
【００３６】
[１．２  コンピュータ化したネットワーク接続]
ローカルエリアネットワーク３１及び／またはワイドエリアネットワーク３２と接続すると、ＰＩＣＳ装置２０はコンピュータ化したネットワークのユーザに上述の機能（capabilities）を提供する。さらに詳しくは、図４に示すように、ＰＩＣＳ装置２０はローカルエリアネットワーク３１に接続することができる。ワークステーション４０などの複数のワークステーションは、同様にローカルエリアネットワーク３１に接続されており、ネットワークオペレーティングシステムの制御により、ＰＩＣＳ装置２０の画像処理機能にアクセスすることができる。ワークステーションの１つ、例えばワークステーション４３を、ネットワーク管理者が使用するように指定することができる。ローカルエリアネットワーク３１にはファイルサーバー４１が接続され、ネットワークディスク４２に格納されているファイルのアクセスを管理している。プリントサーバー４４は、プリンタ群４５にプリントサービスを供給する。他の不図示の周辺機器はローカルエリアネットワーク３１に接続されている。この構成により、ワークステーション４０の内の１つのオペレータは、ＰＩＣＳ装置２０を用いてドキュメントを走査し、ドキュメント画像にセグメンテーション処理及び認識処理を行なってドキュメントのテキスト領域に対応するテキストファイルを得て、ドキュメント画像とそれに関連するテキストファイルをネットワークディスク４２に格納し、ドキュメント画像及びそのテキストファイルを検索して、必要であればワークステーション４０で操作し、原稿の、あるいは操作されたドキュメント画像及びテキストファイルをプリンタ４５の内の１つでプリントアウトすることができる。
【００３７】
典型的な例では、３１のようなローカルエリアネットワークは、建物内の１つの階または隣接する複数の階において完全にローカル化されたユーザのグループに使用される。別の建物や別の州に分かれるなど、ユーザが互いに離れると、ワイドエリアネットワークを作ってもよい。このネットワークは主として幾つかのローカルエリアネットワークの集合であり、全てのローカルエリアネットワークは高速ＩＳＤＮ電話回線などの高速ディジタル回線により接続されている。こうして、図４に示すように、ローカルエリアネットワーク３１、４６、４８は、モデム／トランスポンダ４９及びバックボーン５０を介してワイドエリアネットワークを形成している。各ローカルエリアネットワークはそれぞれのワークステーションを有し、通常必要でなくともそれぞれファイルサーバとプリントサーバを有している。このように、図４に示すように、ローカルエリアネットワーク４６は複数のワークステーション５１、ファイルサーバ５２、ネットワークディスク５４、プリントサーバ５５、及び複数のプリンタ５６を有している。一方ローカルエリアネットワーク４８は、複数のワークステーション５７のみを有している。ワイドエリアネットワーク接続により、ローカルエリアネットワーク３１、４６、４８のいずれの装置も他のローカルエリアネットワークの装置の機能にアクセスすることができる。こうして、例えば、複数のワークステーション５７の１つが、バックボーン５０とモデム／トランスポンダ４９を介してＰＩＣＳ装置２０の画像処理機能にアクセスすることができる。同様に、複数のワークステーション５１の１つがネットワークワークディスク４２からドキュメント画像を検索して、その画像に対しＰＩＣＳ装置２０上でセグメンテーション及び認識処理を行ない、処理結果をワークステーション５１で受信したり操作を行なって、複数のプリンタ５６の１つでドキュメントのプリントアウトを行なうことができる。勿論他の組み合わせも可能であり、上述の例に限定されるものではない。
【００３８】
[１．３  内部構成]
図５は本発明に従った好適な実施例であるＰＩＣＳ装置２０の内部構成と接続を示す詳細ブロック図である。図５に示すように、ＰＩＣＳ装置２０は、コンピュータバス６１とインタフェースされたインテル社の８０４８６ＤＸ（商標）や縮小インストラクションセットコンピュータ（ＲＩＳＣ）などの中央処理部（ＣＰＵ）６０を備えている。また、ローカルエリアネットワーク３１とのインタフェースのためのイーサネットインタフェース６２、ワイドエリアネットワーク３２とのインタフェースのためのＩＳＤＮインタフェース６４、電話回線２９との適当なモデム／ファクシミリ／音声電話インタフェースのためのモデム／ファクシミリ／音声電話インタフェース６５、プリンタ２６とのインタフェースのためのプリンタインタフェースフェース６６、そしてドキュメントトレー２１からスキャナ２２を通じて排紙トレー２３へペーパーを搬送したり、ペーパー格納トレー２５からプリンタ部２６を通じて排紙トレー２７へとペーパー搬送を行なうための適当なペーパー供給コマンドを供給する、トレー／ペーパー供給インタフェース６７が、コンピュータバス６１とインタフェース接続されている。
【００３９】
ディスプレイインタフェース６９はディスプレイ３５とコンピュータバス６１間のインタフェースを行ない、トラックボール／キーボードインタフェース７０はコンピュータバス６１、トラックボール３６、キー３９間のインタフェースを行なう。
【００４０】
コンピュータバス６１は、スキャナインタフェース７１及びオンザフライＪＰＥＧ（Joint Photographic Expert Group）プロセッサ７２を介してスキャナ２２と接続される。さらに詳しくは、スキャナ２２がドキュメントを走査してスキャナインタフェース７１によって画素データが収集されると、スキャナインタフェース７１は画素データをＪＰＥＧプロセッサ７２へ送り、ＪＰＥＧ圧縮方式で画素データを圧縮させる。圧縮された画素データはコンピュータバス６１へ供給される。こうして、ドキュメントを走査する際にオンザフライＪＰＥＧ圧縮を行なうことで装置の動作の高速化が達成される。
【００４１】
圧縮プロセッサ７２はＪＰＥＧ圧縮を行なうことが好ましいが、それはＪＰＥＧ圧縮は周知であり、本発明を実施する際容易に用いることができるからである。しかしながら、ＪＰＥＧのようなデータ量の減少のある（lossy）圧縮が望ましいが、他のタイプの圧縮を行なってもよい。
【００４２】
さらに、ＪＰＥＧプロセッサ７２は、バス６１上のコマンドを介し、ＪＰＥＧ圧縮されたファイルをビットマップ画素データに伸張するような構成を有してもよい。伸張されたビットマップ画素データは不図示の直接接続部（direct connection）を通じてプリンタインタフェース６６へ供給される。プリントステーション２６がグレイスケール画素を直接プリントすることができない場合は、ソフトウェアによる設定可能な閾値比較器をその直接接続部へ設けて、何らかの選択可能な閾値レベルでグレイスケール画素データを２値の画素データへ変換できるようにしてもよい。この構成により、ＪＰＥＧプロセッサ７２を通じて、必要であれば２値の閾値処理を行なって、直接プリントインタフェース６６へファイルを読み出すことによって、ソフトウェアによるデータ伸張を必要とせずに、ＪＰＥＧ圧縮された画像ファイルを迅速にプリントすることが可能となる。
【００４３】
１．２ギガバイトのハードディスクなどのディスク７５は、ＳＣＳＩ（「Small Computer Systems interface」）インタフェース７６を介してコンピュータバス６１に接続される。ディスクには、２値、グレイスケール、カラーの画像データファイルとテキストデータファイルとが、ＣＰＵ６０がそれらのデータファイルを操作したり作成したりするのに用いるプログラムインストラクションシーケンスと共に格納されている。詳しくは、ディスク７５はドキュメントのグレイスケール画像をセグメンテーション処理して、ドキュメント画像のテキストと非テキスト領域に分離し、テキスト領域から個々の文字を抽出するためのプログラムインストラクションシーケンスと、文字の画像を認識処理して文字の識別を決定するためのプログラムインストラクションシーケンスとを格納している。適切な認識処理技術には、以下のシステムに限られるものではなく、文字画像からフィーチャ（feature）及び／またはストローク（stroke）を抽出してそうした情報の辞書との比較を行なうフィーチャ及び／またはストローク抽出システム、人間の神経の相互連絡を模倣して文字画像を識別するニューラルネットワーク認識システム、フィーチャ／ストローク認識システムとニューラルネットワーク認識システムの両方の態様を持つハイブリッドシステムが含まれる。
【００４４】
読み取り専用メモリ（ＲＯＭ）７７はコンピュータバス６１とインタフェース接続し、ＣＰＵ６０にスタートアッププログラムやＢＩＯＳプログラムなどの特殊化された不変の機能を提供する。メインランダムアクセスメモリ（ＲＡＭ）７９はＣＰＵ６０に必要なデータ及びインストラクションシーケンスのためのメモリ記憶領域を提供する。詳しくは、セグメンテーションプログラムまたは文字認識プログラムなどのプログラムインストラクションシーケンスを実行する時、ＣＰＵ６０は通常それらのインストラクションシーケンスをディスク７５から（あるいは、ネットワークアクセスの場合は他のプログラム格納媒体から）ＲＡＭ７９へロードして、これら格納されたプログラムインストラクションシーケンスをＲＡＭから実行する。図５に示すように、データ操作のためのワーキング格納領域もＲＡＭに設けられており、そこにはグレイスケール画像、２値画像、連続成分、テキストファイルのためのワーキング領域も含まれている。
【００４５】
[２．０  動作]
上述の本発明の代表的な実施例の動作を、図６〜２２を参照して説明する。一般に、オペレータの命令（通常キーボード／トラックボールインタフェース７０を介し受信されるが、他の供給源、例えばローカルエリアネットワーク３１またはワイドエリアネットワーク３２、またはモデムまたはＤＴＭＦコマンドにより電話回線２９を介して受信される）に従って格納されたアプリケーションプログラムを選択し、データの処理や操作をするように選択したアプリケーションを起動する。例えば、セグメンテーション処理プログラム、認識処理プログラム、ワードプロセッシングプログラム、画像編集プログラム、スプレッドシートプログラム及び同様の情報処理プログラムなどの様々なアプリケーションプログラムがオペレータに提供され、オペレータはそれらを選択したり使用することができる。こうして、セグメンテーションプロセッシングプログラムを起動して、スキャナ２２によりドキュメントを走査して、ドキュメントのグレイスケール画像をＲＡＭ７９に格納する。格納されたプログラムインストラクションに従ってグレイスケール画像をセグメンテーション処理して、ドキュメントのテキスト領域と非テキスト領域を識別し、テキスト領域の個々の文字を抽出する。その後、認識処理プログラムを起動して、抽出された文字画像を認識処理し、文字を識別してテキストファイルの形で格納することもできる。得られたテキストファイルをオペレータに提供して、オペレータがそれを検討したり、ワードプロセッシングプログラムなど他のアプリケーションプログラムを使用して操作するようにしてもよいし、ディスクへ格納したり、ローカルエリアネットワーク３１、ワイドエリアネットワーク３２または電話回線２９上へ出力することもできる。
【００４６】
[２．１  プログラム可能な機能キー]
図６、７はプログラム可能な機能キー３９の使用及びプログラミングに関するコントロールパネル３４の拡大図である。
【００４７】
上述のように、ＰＩＣＳ装置２０はネットワーク化可能な装置であり、通常ＰＩＣＳ装置２０から遠隔の様々なネットワークユーザの誰かにより使用される。従って、ＰＩＣＳ装置２０によってドキュメントを処理する必要がある場合、普通ユーザはドキュメントを自分のワークステーションからＰＩＣＳ装置２０へ移動させる。ユーザが、自分のワークステーションからＰＩＣＳ装置２０により実行させるドキュメント処理機能をプログラムして、ユーザが実際にＰＩＣＳ装置２０の所にいる時に最小の労力でそれらの機能が実行されるようにできる事は、ユーザにとり好都合である。ところで、ユーザがＰＩＣＳ装置２０により実行される画像処理タスクを規定してから実際にＰＩＣＳ装置２０の所へ行ってそれらの画像処理タスクを実行するまでに時間が経過してしまう。その間他のユーザはＰＩＣＳ装置２０を使用することができない。
【００４８】
ここに述べるように、ＰＩＣＳ装置２０は好ましくはプログラム可能な機能キー３９を備え、これらのキーはネットワークユーザにより自分達のワークステーションからプログラムされ、ユーザが実際にＰＩＣＳ装置２０の所で画像処理を行なう時に選択することができる。画像処理タスクには、ＰＩＣＳ装置２０のスキャナ２２による新しいドキュメントの走査、様々なネットワーク格納媒体からの現在のドキュメント画像の検索、テキストファイルを作成するためのドキュメント画像の認識処理、様々なネットワーク格納媒体へのテキストファイルの格納が含まれ、格納されたテキストファイルを用いるスプレッドシートまたはリポート作成ワードプロセッシングプログラムなど、他の情報処理プログラムなどの関連したタスクも含まれている。これらの画像処理タスクの幾つかまたは全てを連続して、機能キー３９の１つに触れるだけで一連の画像処理または関連のタスクが実行されるようにマクロ的なの機能を提供するように、機能キー３９をプログラムすることができる。
【００４９】
好ましくは、プログラム可能な機能キー３９は２つのグループに別れる。１つのグループはネットワーク管理装置４３によってのみプログラム可能であり、もう１つのグループはいずれかのＬANユーザによりプログラム可能である。キーのいずれかにより実行される詳細な画像処理機能は、必要であればディスプレイ３５に表示することができる。
【００５０】
簡潔に述べると、図６、７はローカルエリアネットワークに接続可能で、ドキュメント画像における文字を識別するためのドキュメント画像の認識処理を行なうパーソナル画像処理コンピュータシステム（ＰＩＣＳ）を説明する図である。複数のプログラム可能な機能キーはパーソナル画像処理コンピュータに設けられ、各機能キーは、画像処理コンピュータシステムがあらかじめプログラムされた画像処理タスクを実行するように、オペレータにより操作される。複数のプログラム可能な機能キーは少なくとも２つのグループに区分されるが、第１のグループはＬＡＮのネットワーク管理者だけがプログラム可能であり、第２のグループはＬＡＮのいずれのユーザでもプログラム可能である。複数の機能キーの画像を表示する表示手段が設けられている。複数の機能キーの１つの画像をオペレータが選択するのに応じて、表示手段はそのキーにより実行される機能を表示する。
【００５１】
さらに詳しくは、図６に示すように、プログラム可能キー３９の画像が表示手段により表示される。さらに図６に示すように、画像は２グループに別れている。ネットワーク管理者の装置４３だけがプログラムできるように限定された機能キーの第１のグループ１７６と、いずれのＬＡＮユーザもプログラムできる、限定されていない機能キーの第２のグループ７７である。図６には示していないが、１７５の各機能キーの表示においては、現在そのキーをプログラムしたユーザの識別の表示を含むことが好ましい。
操作においては、ワークステーション４０の所にいるユーザは、ＰＩＣＳ装置２０に実行させたい画像処理タスクを指定し、グループ７７のプログラム可能キーの１つを選択し、ローカルエリアネットワーク３１を介してその機能キーをプログラムする。そして、ユーザは、ＰＩＣＳ装置２０で処理するドキュメントをＰＩＣＳ装置２０の実際の場所まで運ぶ。ＰＩＣＳ装置２０の所へ着くと、ユーザは図６に示す表示を出して、ユーザ識別を参照してプログラムしたキー位置を突き止める。
【００５２】
ユーザはトラックボール３６を使用して、ネットワーク管理者装置４３によりプログラムされるキーと他のいずれのＬＡＮユーザによってもプログラムできるキーとを含む、表示されたキーの１つを選択する。図７の７８に示すように、表示されたキーの選択をする際には、そのキーに関連した現在の機能が表示される。実際に機能キー３９を操作することにより、ＰＩＣＳ装置２０は自動的に指示された機能を実行する。
【００５３】
[２．２  画像解像度調整]
図８はＰＩＣＳ装置２０の動作を示すフローチャートであり、装置２０は、ドキュメントを第１の解像度で走査してドキュメントのグレイスケール画像を形成する。この第１の解像度はドキュメントのテキストを認識処理するのに適切な解像度である。そしてグレイスケール画像における文字画像を認識処理してコンピュータ読取可能なテキストのファイルを得る。そしてグレイスケール画像の解像度を第１の解像度よりも低く、目視や画像再生に適切な第２の解像度に変える。それから第２の解像度の画像をコンピュータ読取可能なテキストファイルと関連付けて格納する。添付の図面の残りのフローチャートと同様に、図８における処理ステップは格納されたプログラムインストラクションステップに従ってＣＰＵ６０により実行される。プログラムインストラクションステップは、コンピュータディスク７５（または他の媒体）に格納されており、ＲＡＭ７９へ転送されて、そこからＣＰＵ６０によって実行される。
【００５４】
さらに詳しくは、ステップＳ８０１では、ドキュメント供給トレー２１上のドキュメントをスキャナ２２を通るように供給する。スキャナ２２はドキュメントを走査してドキュメントの画像を作成する。好ましくは、ドキュメントを走査する解像度は、４００ｄｐｉなどの認識処理に適切な解像度である。オンザフライＪＰＥＧプロセッサ７２は画像が走査入力される際に圧縮を行ない、圧縮された画像はディスク７５またはＲＡＭ７９に格納される。
【００５５】
ステップＳ８０２では、ドキュメント画像を光学文字認識処理して、ドキュメントのテキスト領域に対するテキストファイルを作成する。光学文字認識処理については後述の２．３章の図９Ａ、９Ｂ、９Ｃを参照して詳細に説明する。
【００５６】
ステップＳ８０３では、ドキュメント画像の解像度を下げて、ドキュメント画像の格納容量が減少するようにする。好ましくは、ドキュメント画像の解像度は、人間であるオペレータに知覚されるのに十分であり、コンピュータの画面に表示したり紙面に印刷するのに適当な程度に下げられる。現在のところ７０ｄｐｉが望ましい解像度である。画像解像度を低下させる技術は公知であり、原稿の画像におけるいずれの色、またはグレイスケールのいずれのレベルも可能な程度に保持する技術を選択することが望ましい。また、好ましい技術としては、バークス（Burkes）またはスタッキー（Stucki）法などの誤差拡散技術を用いて低解像度画像の見た目を向上する（enhance）ものがよい。
【００５７】
ステップＳ８０４では、必要に応じて圧縮した、あるいは未圧縮の低解像度の画像を、ステップＳ８０２で作成したテキストファイルと関連付けて格納する。ディスク７５への格納が可能であるが、ドキュメント画像とその関連のテキストファイルとをサーチ可能なデータベースの一部として、ネットワークディスク４２または５２の１つに格納する方がより好ましい。
【００５８】
こうして、ステップＳ８０５に示すように、ドキュメント画像を、例えばテキストファイルの照会ベースのサーチに応じて検索することができる。さらに詳しくは、オペレータの照会に応じたキーワードサーチや他のサーチに基づいて、データベースのテキストファイルがサーチされて、オペレータが入力した照会に見合うテキストファイルを識別する。そうしたテキストファイルが識別されると、関連したドキュメント画像が検索されて、ドキュメント画像は、表示やプリントなど所望の形でオペレータに提示される。
【００５９】
ドキュメントは認識処理に適切な解像度で走査されるが、その後走査時の解像度より低い解像度で関連するテキストファイルと共に格納されるので、そうしたドキュメントの大規模なデータベースを格納するのに必要な格納容量が大幅に縮小できる。
【００６０】
[２．３‐‐光学文字認識処理‐‐概要]
図９Ａ、９Ｂ、９Ｃは上述のステップＳ８０２のようにドキュメントを識別するための光学文字認識処理の概略を示している。簡潔に述べると、図９Ａ〜９Ｃのいずれかによると、ドキュメントを走査してドキュメントのグレイスケール画像を得て、そのグレイスケール画像と閾値とを比較することによって、グレイスケール画像から２値画像を生成する。その２値画像をセグメンテーション処理して２値画像内の個々の文字の位置を決定して、個々の文字の形状を決定し、その２値画像における文字の位置と形状をテンプレートとして用いて、各文字に対するグレイスケール画像情報をグレイスケール画像から抽出する。そして抽出したグレイスケール画像情報を認識処理して、文字を識別し、その文字の識別結果を格納する。
【００６１】
まず、図９ＡのステップＳ９０１に示すように、ドキュメントのグレイスケール画像を入力する。好ましくは、ドキュメントのグレイスケール画像を入力するために、ドキュメントをスキャナ２２で走査するが、例えば、ドキュメントを遠隔に走査して電話回線２９、ローカルエリアネットワーク３１、またはワイドエリアネットワーク３２を介してＰＩＣＳ装置２０へ送信するなど他の方法で生成したドキュメント画像を入力することも可能である。
【００６２】
ステップＳ９０２では、走査入力した画像の歪み補正を行なう。画像の歪みは、例えばドキュメントを曲がった状態でスキャナ２２を通過させてしまうなどの不適当なドキュメントの走査から、あるいは別の原稿のドキュメントを位置のずれた状態で複写して得られたドキュメント書類を走査することから生じる。発生源が何であれ、歪みは文字認識においてエラーを引き起こすので、２．４章で図１０、１１に関連して詳細に後述するようにステップＳ９０２で現在の歪みを補正する。この点において、ステップＳ９０２で行なう歪み補正を格納して、画像の認識処理の後や画像格納の準備の際に「解除（un-done）」する（元の歪んだ状態に戻す）ことが可能である。しかし、通常は歪んだ画像は単に廃棄して、歪み補正した画像のみを保存する。
【００６３】
ステップＳ９０３では、グレイスケール画像のコピーをＲＡＭ７９で保持し、後でその画像からグレイスケール文字画像を抽出して認識処理できるようにする（ステップＳ９０７、Ｓ９０８参照）。
【００６４】
ステップＳ９０４では、グレイスケール画像と閾値とを比較することによって、グレイスケール画像から２値画像を生成する。閾値処理は２．５章の図１２、１３を参照して詳細に後述する。このようにして得た２値画像をＲＡＭ７９へ格納する。
【００６５】
ステップＳ９０５では、２値画像をセグメンテーション処理してドキュメントのテキスト領域と非テキスト領域に分離し、ドキュメントのテキスト領域内の個々の文字の位置を決定する。セグメンテーション処理は図１４に関連して２．６章で後述する。さらに２値画像内の個々の文字位置に基づいて、２値の文字画像の形状から文字テンプレートを得る（ステップＳ９０６）。
【００６６】
ステップＳ９０７では、ステップＳ９０６で生成したテンプレートを用いて、ステップＳ９０３で格納したグレイスケール画像からグレイスケール文字画像を抽出する。そして抽出したグレイスケール文字画像を認識処理して（ステップＳ９０８）ドキュメントのテキスト領域内の個々の文字を識別する。
【００６７】
ステップＳ９１５では、文字の識別を、ＡＳＣＩＩ形式などのコンピュータ読取可能なテキストファイルの形で格納する。ここでは、テキストファイルの読み込み順序が原稿ドキュメントの読み込み順序を反映するように、原稿ページの再構成を行なう。例えば、図２に戻ると、左側の欄のテキストの１行の後に、右側の欄のテキストの相当する位置の行が続くのではなく、左側の欄のテキストの全ての行の後に右側の欄の全ての行が続くべきであるということがわかる。ステップＳ９１５では、このページ再構成を遂行してテキストファイルに対する正しい読み込み順序を得る。
【００６８】
ステップＳ９１６では、ディスク７５またはネットワークディスク４２、５４へ出力するなどしてテキストファイルを出力する。ステップＳ８０４で上述したように、テキストファイルは、そのドキュメントファイルと関連付けて格納して、ドキュメントの検索に利用できるようにする。
【００６９】
図９Ｂは文字認識処理システムのフローチャートであり、この処理ではドキュメントのテキスト領域内の文字のフォント特性に従って、複数の認識処理技術から１つを選択する。選択された認識処理技術はフォント特性に対応するようにする。例えばフォント特性が均一ピッチのフォントが使われていることを示している場合には、均一ピッチフォントの認識処理技術を選択し、一方フォント特性がサンセリフフォントが使われていることを示している場合には、サンセリフ認識処理技術を選択するようにする。
【００７０】
こうして、文字の画像から文字の識別を決定する図９Ｂの文字認識システムによると、テキスト領域を含むドキュメントの画像を処理して、文字の行の位置を決定し、各行のフォント特性を決定し、決定したフォント特性に基づいて複数の認識処理技術から１つを選択する。個々の文字画像を各行から抽出し、選択した認識処理技術に従って、各抽出された文字画像を認識処理する。
【００７１】
さらに詳しくは、図９Ａについて説明したように、ステップＳ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０４、Ｓ９０５、Ｓ９０６、Ｓ９０７では、グレイスケール画像を入力し、そのグレイスケール画像に対し歪み補正を行ない、歪み補正された画像のコピーを保存し、全体的な閾値処理により２値画像を生成する。その２値画像をセグメンテーション処理して文字画像の位置を決定し、２値画像の形状から文字テンプレートを得て、テンプレートを用いてグレイスケール画像から文字を抽出する。
【００７２】
ステップＳ９０９では、１行の文字のフォント特性を決定する。この決定は、セグメンテーション処理の間に決定した文字属性に基づいてなされる。あるいは、この決定は２値またはグレイスケール画像から抽出した文字に基づいてなされる。「フォント特性」には、サンセリフまたはセリフフォント、イタリック体、太字などのフォント形状に加え、均一またはプロポーショナルなどの文字スペースが含まれている。
【００７３】
ステップＳ９１０では、ステップＳ９０９で決定した特定のフォント特性に合うように、複数の認識処理技術の１つを選択する。さらに詳しくは、あるフォントが例えばサンセリフフォントのユニバース（Universe）である場合、特にサンセリフフォントに向けた認識処理技術を使用することができる。そうした認識処理技術はサンセリフ文字の認識処理に特に適切である。それは、例えばサンセリフフォントにはセリフフォントよりも互いに接触する文字が少ないことが知られているからである。同様に、ステップＳ９０９ではそのフォントがクーリエ（Courier）のような均一スペースのフォントかどうかを決定し、そのフォントに特に合わせた均一スペースの認識処理技術を選択する。
【００７４】
ステップＳ９１１では、選択した認識技術を用いて抽出したグレイスケール文字画像を認識処理する。そして、ステップＳ９１５、Ｓ９１６では、図９Ａに関して上述したように、ページ再構成を行なって、識別された文字の順序を正しい順序に変えて、生成されたテキストファイルを出力する。
【００７５】
図９Ｃは本実施例による選択的な処理を示している。これにより、特にイタリック体や相対的なスペースのフォントなど認識が困難なフォントを処理する際に、認識精度を向上することができる。図９Ｃに示す文字認識システムでは、ドキュメントのグレイスケール画像を閾値処理して２値画像を得て、２値画像をセグメンテーション処理して文字の２値画像の位置を決定して文字の２値画像の属性を決定して、ドキュメントにおける文字の識別を決定する。セグメンテーション処理された２値画像における文字の形状に基づいて文字のグレイスケール画像を抽出し、グレイスケール文字画像と２値の文字画像の両方に対して認識処理を行ない、文字の識別を決定する。そして、セグメンテーション処理中に決定された文字属性に基づいて、グレイスケール文字画像の認識処理結果と２値文字画像の認識処理結果の不一致を解決する。
【００７６】
さらに詳しくは、ステップＳ９０１からＳ９０８では、図９Ａで上述したように、グレイスケール画像を入力し、グレイスケール画像の歪みを補正し、閾値処理により２値画像を得る。そして２値画像をセグメンテーション処理して文字画像の位置を決定し、２値画像の形状から文字テンプレートを得る。テンプレートを用いてグレイスケール文字画像を抽出し、抽出したグレイスケール文字画像を認識処理する。
【００７７】
ステップＳ９１３では、ステップＳ９０５でセグメンテーション処理中に抽出された２値の文字画像を認識処理して２値の文字画像の識別を決定する。ステップＳ９１４では、ステップＳ９０５のセグメンテーション処理中に得られた文字画像の実際の画像特性に基づいて、グレイスケール文字画像の認識処理結果（ステップＳ９０８）と２値文字画像の認識処理結果（ステップＳ９１３）のいかなる不一致も解決する。例えば、「L」の小文字活字ケース（「l」）、数字の「いち」（「１」）、角括弧（「[」または「]」）を区別するのは困難である。ステップＳ９０８、Ｓ９１３における認識処理の違いにより、これらの文字のいずれか１つについて異なる識別が決定される可能性がある。そうした場合、ステップＳ９０５のセグメンテーション処理中に得られた物理的属性を参照して、不一致を解決する。さらに詳しくは、そして図１４について後述するように、セグメンテーション処理の間に、各文字画像について（さらに詳しくは、下記に説明するように、画像中の各連続成分について）画素密度やアスペクト比などの物理的属性を決定する。これらの物理的属性に基づいて、ステップＳ９０８、Ｓ９１３の認識処理結果を明確にする。
【００７８】
ステップＳ９１５、Ｓ９１６では、図９Ａに関して上述したように、ページ再構成とテキスト出力を行なう。
【００７９】
[２．４  歪み補正]
図１０Ａ、１０Ｂ及び図１１Ａから１１Ｃは本実施例による歪み補正処理を説明する図である。これらの図に示すように、画像の歪みを決定しし、歪みが±１０°など所定の限度より大きい場合には数学的回転変換により歪み補正し、歪みが所定の限度より小さい場合には画素データを垂直移動することにより歪みを補正することにより、歪みの補正を行なう。大抵の場合、画素データの数学的変換を行なう必要はないので、この技術による歪み補正によって相当な時間を節約することができる。数学的変換は、特にグレイスケール画素データが含まれている場合には、プロセッサの処理時間に換算すると不経済である。それは、歪み補正される画像の各画素が、歪んだ画像の幾つかの画素の数学的な組合わせから得られるからである。さらに、歪み補正される画素の値は数学的に算出されるので、一般的に述べると、１つの歪み補正される画素の値と最初に走査された画像における画素の値とが等しくはならず、不正確な認識（例えばそれぞれ値が「１」及び「２」である画素を、それらの平均値（１．５）に置換して、その結果それらの画素の値は元の原稿の画像のどこにも存在しないものとなる）を増加させることになる。一方、歪んだ画像を単純に移動して歪み補正された画像とすると、そうした数学的組み合わせは含まず、さらに、最初に走査された画像からの画素値をそのまま有している。勿論、画像の歪みが大きすぎる場合は垂直移動により、いくらかの画像の変歪が生じるため、そうした変歪を起こさない数学的変換を避けることはできない。
【００８０】
さらに詳しくは、図１０Ａに示すように、ステップＳ１００１からＳ１００４では、画像の画素データのベースライン分析によって画像の歪みを判定する。これは、ハインズ他の「ランレングス符号化及びハフ変換を用いたドキュメントの歪み検出方法」（Hinds, et al., "A Document Skew Detection Method Using Run Length Encoding And The Hough Transform", IEEE 10th International Conference On Pattern Recognition, June, 1990, page 464）に記載されているような修正ハフ変換（modified Hough transform）の適用により行なう。より詳しくは、ステップＳ１００１で画像にサブサンプリングを行なって処理が必要なデータの量を減らす。好ましくは、画像のサブサンプリングは、正確な歪み検出に十分な約１００ｄｐｉの解像度で画像を得るようにする。歪み補正すべき画像を４００ｄｐｉの解像度で入力した場合、１：４の比でサブサンプリングを行なうので、原稿の画像の４番目の画素毎にサブサンプリングを行ない、１００ｄｐｉの画像を形成することになる。サブサンプリング比は異なる入力解像度についても、同様に選択する。例えば、６００ｄｐｉ画像に対しては１：６のように選択する。
【００８１】
ステップＳ１００２では、任意の閾値を用いて、または図１２、１３（後述）の説明で計算される閾値を用いて、サブサンプリングした画像を２値化する。
【００８２】
ステップＳ１００３では、サブサンプリング、そして２値化を行なったデータに粗いハフ変換を行なって原稿の画像における歪み角度を凡その程度で決定する。さらに詳しくは、例えば１°毎といった単純な角度の解像度で±２０°など所定の制限間にハフ変換を適用する。必要であれば、ハフ変換に先立ち、画像のベースライン（活字の並び線）の感度（sensitivity）を増幅することができる。これは、画素データの各垂直ラン（run）について、夫々の垂直ランの数を各垂直ランの底部に位置させたものに交換し、像や線を表す画素データを省略することにより行なう。
【００８３】
ステップＳ１００４では、サブサンプリングおよび２値化を行なった画像に、ステップＳ１００３で得られた凡その歪み情報を用いて、精密なハフ変換を適用する。より詳しくは、ステップＳ１００３で決定した凡その歪み角度の±１°前後において、０．１°などの精密な角度の解像度で精密なハフ変換を適用する。
【００８４】
ステップＳ１００５では、ステップＳ１００４で決定した歪み角度を±１０°などの所定の限度と比較する。歪みが所定の限度より大きい場合、ステップＳ１００６へ進んで、数学的変換により画像の歪み補正を行なう。一方、歪みが所定限度より小さければ、ステップＳ１００７へ進んで、歪みに基づいて垂直移動ファクター（factor）を決定する。より詳しくは、図１１Ａに示すように、ステップＳ１００１からＳ１００４で上述したように、まず、歪み角度シータ（θ）を計算する。それから、歪み角度θから、歪み角度θをゼロへ減少させる垂直移動ファクターを算出する。図１１Ａの例では、垂直移動ファクターは、歪み角度４．４度に対応して、横の１３画素毎に下方向の１画素となる。そして、図１１Ｂに示すように、左から右へ処理を行なうと、移動ファクターに基づいて、画像の全列が連続して上方向または下方向に移動する。移動の後には、歪み角度θがゼロに減少しているのがわかる。
【００８５】
図１０Ａに戻り、ステップＳ１００６の数学的変換またはステップＳ１００８の画素移動に従って画像を歪み補正すると、その歪み補正された画像を出力する（ステップＳ１００９）。
【００８６】
画素移動にる歪み補正は、処理時間の節約の点では有利であるが、幾つかの状況では文字の画像を変形させてしまう。例えば、図１１Ｂでは、文字「ａ」の各画像が、これらの文字の中央で下方向の移動が起こったために崩れてしまっている。図１０Ｂはこの種の変形を防ぐ処理を示している。
【００８７】
図１０Ｂにおいて、ステップＳ１００１からＳ１００７は図１０Ａと同様である。ステップＳ１０１０では、移動ファクターに従って画像の列を上または下方向に移動する時点であれば、ＣＰＵ６０はその画像が文字間の空白部分にあるかどうかを判断する。その画像が文字間にあると判断すると、ステップＳ１０１１へ進んで、移動ファクターに従って、前に移動した列に相対的に画像の全列を上または下方向へ連続的に移動する。一方、文字間にない場合は、移動は行なわず、移動ファクターを単に蓄積する（ステップＳ１０１２）。ステップＳ１０１０へ戻り、文字間についてのみ移動を行なう。こうして、図１１Ｃに示すように、２つの文字「ａ」の間のみ移動が行なわれ、この場合の蓄積された移動ファクターは、「DOWN 2」である。処理は前述のように進んで、ステップＳ１０１３で歪み補正された画像を出力する。
【００８８】
図１０Ｂに従って処理を行なうことにより、画素移動が文字間のみで行なわれて文字の中央で行なわれないため、各文字の変形を防ぐことができる。
【００８９】
[２．５  閾値処理]
図１２はステップＳ９０４で説明した閾値処理を詳細に示すフローチャートである。図１２に示す閾値処理手順に従って、グレイスケール画像から２値画像を形成する。つまり、グレイスケール画像の画素の明暗度のヒストグラムを形成し、少なくとも１つのヒストグラムグループ離れたヒストグラムのトップの２グループを識別し、これらの２つのトップグループの間の距離の半分を計算してこれを全体的な閾値とし、グレイスケール画像の各画素をこの全体的な閾値と比較して各画素を２値化し、グレイスケール画像に対応する２値画像を出力する。
【００９０】
ステップＳ１２０１では、グレイスケール画像について、画素強度における画素のヒストグラムを形成する。図１３（ａ）に示すように、ヒストグラムは複数の画素強度のグループを有しており、各グループの高さはグループ内に入るグレイスケール画像の画素の数に基づいて決定されている。図１３（ａ）では、０から２５５のグレイスケール画像の明暗度に基づいて、（１）から（８）までの８つのグループが指定されている。他のグループ分けも可能であるが、実施が容易な図１３（ａ）のグループ分けを用いることが好ましい。
【００９１】
ステップＳ１２０２では、ヒストグラムを調べて、グレイスケール画像が「反転ビデオ」画像かどうか、つまり画像が従来の画像のように白地に黒ではなくて、黒地に白の画像であるかどうかを判定する。ヒストグラムがグレイスケール画像が反転ビデオ画像であることを示している場合は、グレイスケールを反転して（ステップＳ１２０３）画像を従来の白地に黒の画像に変換する。
【００９２】
ステップＳ１２０４では、各ヒストグラムグループの高さに基づいてヒストグラムグループを降順に格納する。図１３（ａ）の例では、最も高い数値を有するグループ（８）が最初のグループであり、最も低い数値を有するグループ（５）が最後のグループである。このようにして、図１３（ｂ）に示すように図１３（ａ）のヒストグラムグループを格納する。
【００９３】
ステップＳ１２０５では、少なくとも１グループ離れたトップの２グループを選択する。こうして、図１３（ｂ）に示すように、トップの２グループであるグループ（８）、（７）を最初に比較する。しかし、これらは少なくとも１グループ離れていないため（つまり、数値的に、グループ（８）はグループ（７）の直接の隣接グループである）、グループ（８）および（７）は選択しない。その代わりに、次のトップの２グループであるグループ（７）、（２）を比較する。グループ（７）、（２）は少なくとも１グループ離れているため（この例では数値的に４グループ離れている）、ステップＳ９０５でグループ（７）、（２）を選択する。
【００９４】
ステップＳ１２０６では、ステップＳ１２０５で選択した２グループ間の距離の半分で全体的な閾値（global threshold）を計算する。図１３（ａ）に示すように、グループ（２）、（７）は１６０（つまり１９２‐３２）の距離だけ離れている。従ってこの代表的なグレイスケール画像の全体的な閾値は、ＴＨ＝１６０÷２＝８０となる。
【００９５】
ステップＳ１２０７では、グレイスケール画像の各画素の明暗度を、ステップＳ１２０６で算出した全体的な閾値と比較して、グレイスケール画像を２値化する。図１２に示すように、比較を行なった結果の画素の明暗度が全体的な閾値より低い場合は、その画素を、白を表す２値の「０」にセットする（ステップＳ１２０８）。一方、画素の明暗度が全体的な閾値より高い場合は、その画素を、黒を表す２値の「１」にセットする（ステップＳ１２０９）。
【００９６】
グレイスケール画像の全画素と全体的な閾値との比較を終了すると、２値画像を出力する（ステップＳ１２１０）。
【００９７】
[２．６  セグメンテーション処理]
図１４はステップＳ９０５で上述したセグメンテーション処理を示すフローチャートである。この処理により、ドキュメント画像のテキストおよび非テキスト領域を識別して、テキスト領域の個々の文字を抽出する。図１４の処理は、ステップＳ９０４で生成した２値画像の連続成分（connected component）を分析することにより行なうものである。「連続成分」とは、連続する黒画素のグループで、全体を白画素で囲まれたものをいう。本願の印刷書類におけるページのように、通常の印刷ページにおいて、連続成分は通常ある文字か、文字の分離した一部であるが、下線を引いた文字または筆記体の原稿では、連続成分は連続した文字のグループである可能性もある。
【００９８】
図１４に示すように、テキスト領域と非テキスト領域の両方を含むドキュメント画像において、ドキュメン画像における連続成分を識別し、各連続成分の画素密度やアスペクト比などの画像属性を得て、その画像属性に基づいて各連続成分をフィルタリングして、非テキスト領域を表す連続成分からテキスト領域を表す連続成分を分離することによりテキスト領域の位置を決定する。フィルタリングは、未知のタイプの連続成分がテキストか非テキストかが決定できるまで、複数セットのルールを連続的に未知の連続成分の画像属性に適用することで行なう。
【００９９】
さらに詳しくは、ステップＳ１４０１では、セグメンテーション処理する画像を入力する。好ましくは、この画像はステップＳ９０４で閾値処理して生成した２値画像であるが、一般に、セグメンテーション処理が必要ないずれの画像でもよい。例えば、入力する画像は画像再生の準備としてディジタル複写機により走査されて得られた画像でもよい。この場合は、画像のどの領域がテキストでどの領域が非テキストかを決定して、その決定に基づく文字再生を制御するためにセグメンテーション処理が必要である。こうして、ここで説明するセグメンテーション処理は、画像のどの領域がテキストかを決定して、それらの領域を黒いトナーのみを用いてディジタル複写により再生したり、どの領域が非テキストかを決定して、それらの領域をシアン、マジェンタ、イエロー、ブラックのトナーを組み合わせて用いて、ディジタル複写により再生するように使用される。
【０１００】
ステップＳ１４０２では、画像における下線部を検出して除去する。下線部が引かれた文字は、幾つかの別々な連続成分ではなく、むしろ単一の連続成分として識別されやすく、こうして連続成分の分析が損なわれることになる。下線部除去は２．６．１章で図１８、１９を参照して詳細に説明する。
【０１０１】
ステップＳ１４０３では、画像を分析して全ての連続成分を識別する。上述のように、「連続成分」は連続した黒画素のグループであって、全体を白画素で囲まれたものである。図１５は、単語「finally」の画像を形成する画素を示すが、同図に示されるように、連続成分は画像の各画素の８方向分析により検出できる。さらに詳しくは、図１５の画像における最も右下の黒画素である画素８０などの最初の画素から始まって、黒画素を取り囲む画素を、星状方向８１に示すように８方向に調べて、隣接する黒画素が存在するかどうかを判定する。画素８２はそうした黒画素で、更に画素８２から８方向の処理を始めて、矢印８４で示すように連続成分の周囲をたどる。
【０１０２】
この画像における各画素を図１５で説明したように分析して、テーブルのフレーム内の個々の項目のような内部的連続成分を含む、画像における各連続成分の位置を識別して決定する。この実施例では、図１５の四角形８５のように、文字を取り囲む四角形の位置を決定することによって、各連続成分の位置を規定する。
【０１０３】
図１５に示す８方向処理は連続成分を正確に識別できるが、ＣＰＵの処理時間やメモリ格納領域の観点からは不経済な処理である。というのは、通常全体の画像を一度にメモリへ格納しなければならないからである。図２０、２１を参照して２．６．２章で説明する連続成分処理は連続成分を検出するためのより効率的な技術であり、従ってこのステップＳ１４０３にとっては好ましい方法である。
【０１０４】
ステップＳ１４０４では、各連続成分について物理的な画像属性を得る。こうして、図１６に示すように、各連続成分について、アスペクト比、画素カウント（画素数）、密度、周囲、周囲／幅の比、（周囲の二乗）／領域の比などの画像属性の全てを得る。さらに、「タイプ」属性も各連続成分に関連する。最初に、タイプ属性は「未知」と設定されるが、さらなる処理に従って、究極的には各連続成分のタイプが「テキスト」または「非テキスト」と設定される。このステップＳ１４０４で得た物理的画像属性は図９ＣのステップＳ９１４における多義性の解決に使用される。
【０１０５】
ステップＳ１４０５では、連続成分を検討して画像の方向がポートレート（縦長）またはランドスケープ（横長）であるかを判断する。より詳しくは、大抵の画像はポートレート方向の画像として走査されるので、ここで説明する処理はポートレート方向の画像のみを扱うことにする。従って、ステップＳ１４０５でランドスケープの方向が検出された場合は、ステップＳ１４０６へ進んで、画像を９０°回転してポートレート方向の画像を得る。そしてステップＳ１４０４へ戻って、各連続成分の属性を得る。
【０１０６】
ポートレート方向の画像を得ると、ステップＳ１４０７へ進み、各「未知」のタイプの連続成分について、複数のルールを適用して、連続成分がテキストであるかまたは非テキストであるかを判定する。連続成分ルールについては図２２を参照して詳細に説明するが、一般に、ルールは連続成分自体にではなくステップＳ１４０４で決定された属性に適用される。さらに、好ましくは、最初の段階で適用するルールは時間をほとんど掛けずに計算を行ない、早い段階で非テキスト連続成分から識別し易いテキスト連続成分を分離することのできる単純なルールである。後の段階で適用するルールは、非テキスト連続成分から識別し難いテキスト連続成分を分離する、より複雑で時間の掛かるルールである。しかし、この後期の処理段階では「未知」のタイプの連続成分はさらに少なくなっているため、後半のルールは前半のルールよりも適用頻度が低い。
【０１０７】
ステップＳ１４０８では、「テキストタイプ」の連続成分を分析してテキストのラインを識別する。テキストのラインの分析は、ステップＳ９１５のページ再構成で利用される。さらに、テキストのラインを識別することによって、連続成分の分析により分離された文字の部分を再接続することができる。例えば、図１５からわかるように、「ｉ」の上の点８６は連続成分の分析によって「ｉ」の文字本体から分離されていた。ステップＳ１４０８に示すように、テキストのラインを識別することにより、ステップＳ１４１１で後述するように文字をテキストのラインから順次切り離す時に、完全な文字「ｉ」を形成するように連続成分を再接続することが可能である。
【０１０８】
ステップＳ１４０９で、もしテキストのラインの接触があれば、ステップＳ１４１０で分離する。そして、ステップＳ１４１１で、さらなる処理のために個々の文字をテキストのラインから切り離す。例えば、図９Ａから９Ｃを参照すると、テキストのラインから切り離された個々の文字を、ステップＳ９０６でテンプレートとして使用して、ステップＳ９０７で文字のグレイスケール画像から文字を抽出する。さらに、ステップＳ９１３では、このステップＳ１４１１で切り離した文字自体を認識処理する。
【０１０９】
図１７は上述の処理が下線付きの単語「finally」に与える効果を示している。図１７に示すように、ステップＳ９０１に従って、印刷された下線付きの単語「finally」を含むドキュメント９０を画素解像度９１で走査して、下線付きの単語「finally」のグレイスケール画像９２を入力する。歪み補正（ステップＳ９０２）の後、ステップＳ９０３に従って、グレイスケール画像のコピーを９３として保存する。そして、ステップＳ９０４に従い、グレイスケール画像を閾値処理して２値画像９４を作成する。
【０１１０】
そしてステップＳ９０５で上述したように２値画像をセグメンテーション処理する。さらに詳しくは、図１４を参照して説明すると、下線を除去して（ステップＳ１４０２）画像９５を生成する。連続成分の分析（ステップＳ１４０３からＳ１４１２）を通して、文字９６を画像９５から切り離す。そして、テンプレート９７を得て（ステップＳ９０６）、テンプレートをグレイスケール画像のコピー９３に適用し、グレイスケール文字画像９８を抽出する（ステップＳ９０７）。なお、テンプレートは、関係する全画素がグレイスケール画像から適切に抽出されたかどうかを確認するために、約２画素程度拡大することが可能である。さらに、グレイスケール画像９３をもとのままの下線が付いた状態で保存するため、グレイスケール文字画像を取り出す際、下線部の残りを小量含むことになる。しかし、これらの小量の下線の残余は、認識処理を妨げるものではない。そこで抽出されたグレイスケール文字画像に認識処理を行ない、抽出された文字画像を識別する。この例では、文字「f」に関しては、認識処理によりＡＳＣＩＩコードの「６６ｈｅｘ」が得られるが、このコードは文字「f」に対するＡＳＣＩＩコードの１６進数値である。
【０１１１】
[２．６．１  下線除去]
図１８Ａ、ＢはステップＳ１４０２に従って行なう下線部の除去を説明するためのフローチャートである。これは下線部を文字通り取り除くわけではなく、下線部分の文字を下線から分離するものである。連続成分の分析により分離された下線のセグメント（segment）は「非テキスト」であると判断され、後続の認識処理ではそれらは無視される。
【０１１２】
下線部分における下線の文字からの分離は次のように行なう。つまり、画像を上から下に向かって、画素行毎に横断走査して、画像の水平画素ランの各行のランレングスを計算し、各画素行のランレングスを前画素行のランレングスと比較して、現在の画素行のランレングスが前画素行のランレングスより所定値を越えて大きくなった時に、画像を水平に分割する。次に、分割された画像を下から上に向かって画素行毎に横断走査して、現在の画素行のランレングスを計算して前画素行のランレングスと比較し、現在の行のランレングスが画像の水平分割が行なわれたのと同一領域内において前画素行のランレングスより所定値を越えて増加した時に、画像を垂直に分割して前の水平分割部分を再結合する。さらに、どこで前の水平分割が行なわれたかを検出する、つまり、分割が文字の中央付近か、それとも文字のエッジ近辺で行なわれたかを検出することにより、上記の２回目のの分割を垂直に行なう必要はなく、「j」または「g」などの幾つかの文字の形状を保存するように斜めに分割してもよい。
【０１１３】
さらに詳細を図１８Ａ、Ｂ、図１９により説明する。ステップＳ１８０１に示すように、最初にドキュメント画像の最大の文字幅「MAX」を概算する。図１８に示す下線除去技術の適切な動作のためには最大文字幅の正確な概算は必要ではなく、最大文字幅の簡単な概算があればよい。従って、最大文字幅を任意の固定値、例えばＭＡＸ＝５０画素に設定してもよいし、また概算された平均文字幅の約３倍に設定してもよい。この実施例では、概算された平均文字幅を、１６で割った凡その画像解像度として計算し、最大文字幅ＭＡＸをその値の３倍に設定する。こうして、４００ｄｐｉの画像に対し、ＭＡＸ＝３×４００／１６＝７５画素である。
【０１１４】
ステップＳ１８０２では、ドキュメント画像を上から下へ向けて画素行毎に横断走査する。そして、ステップＳ１８０３では、水平画素ランのランレングスを計算する。より詳しくは、例えば図１９（ａ）に示すように、下線付きの文字列「Qqpygj」を形成する画素から成るドキュメント画像１０１を用いて説明する。画像の画素の任意の画素行１０２について、画素の各水平ランの水平ランレングスを計算する。このように、１０４に示すように、文字「Q」の最も左のエッジを構成する画素の水平ランレングスを計算する。行１０２の画素の各水平ランレングスについても同様にランレングスを計算する。
【０１１５】
ステップＳ１８０４では、現在の画素行の水平ランレングスを前画素行の水平ランレングスと比較する。現在の画素行の水平ランレングスが前画素行の水平ランレングスよりＭＡＸを越えて増加していない場合、特別な処理は行なわず、ドキュメント画像の次の画素行を選択して処理し（ステップＳ１８０５）、全画素行が上から下まで横断走査処理されるまで処理を続ける（ステップＳ１８０６）。一方、ステップＳ１８０４の計算で、現在の行のランレングスが前行のランレングスと比較してＭＡＸを越えて増加していることがわかった場合、その行で画像を水平に分割する。図１９（ｂ）はこの処理を表している。
【０１１６】
さらに詳しくは、図１９（ｂ）に示すように、下線１０３が存在するために現在の画素行の水平ランレングスが前画素行の水平ランレングスよりＭＡＸを越えて増加していると判断するまで処理は進む。従って、その行の全画素を１０５の所で水平に分割する。処理は全画素行が上から下まで横断処理されるまで次の行および後続の行へと続く（ステップＳ１８０５、Ｓ１８０６）。
【０１１７】
そして、ステップＳ１８０８へ進み、分割された画像を下から上へ向かって画素行毎に横断する。ステップＳ１８０９では、現在の画素行の水平画素ランのランレングスを計算し、ステップＳ１８１０で現在の画素行のランレングスを前画素行のランレングスと比較する。前述のように、現在の画素行のランレングスが前画素行のランレングスよりＭＡＸを越えて増加していない場合は、特別な処理を行なわずに、次の行を選択し、分割された画像の全行が下から上へ向かって横断されるまで処理を続ける。
【０１１８】
一方、ステップＳ１８１０で、現在の画素行のランレングスが前画素行のランレングスよりＭＡＸを越えて増加していると判断した場合は、ステップＳ１８１３で隣接する領域に以前に行なわれた水平分割（ステップＳ１８０７より）があるかどうかを判断する。ステップＳ１８１３で以前に行なわれた水平分割はないと判断すると、前述のように、特別な処理を行なわずに、ステップＳ１８１１へ戻り、画像の全行が下から上へ横断されるまで処理を続ける。
【０１１９】
一方、隣接する領域に以前行なわれた水平分割があれば、ステップＳ１８１４からＳ１８１９に示すように、水平分割を再結合（または閉じる）して、１対の垂直または斜めの分割部分と置換する。さらに詳しくは、ステップＳ１８１４で、図１９（ｃ）の「ｑ」、「ｐ」、「ｙ」などの文字の中央付近で小さいサイズの水平分割が行なわれていると判断した場合、ステップＳ１８１５へ進んで、水平分割を再結合して、１対の垂直分割部分を挿入する。特に図１９（ｃ）に示すように、前の水平分割が文字「ｑ」、「ｐ」、「ｙ」の中央付近で行なわれているので、水平分割を閉じて、１０６に示すような垂直分割と置換する。
【０１２０】
ステップＳ１８１６で、文字エッジ近辺で小さい水平分割があった場合は、ステップＳ１８１７へ進み、水平分割を再結合して１対の斜の分割部分に置換する。さらに詳しくは、図１９（ｄ）に示すように、文字「ｇ」と「ｊ」の文字エッジで水平分割が検出されているので、水平分割を閉じて１対の斜めの分割１０８と置換する。
【０１２１】
ステップＳ１８１８で大きい水平分割があったと判断した場合は、ステップＳ１８１９へ進んで、水平分割を再結合して、ステップＳ１８１７で挿入したよりも広いスペースで１対の斜めの分割を挿入する。
【０１２２】
[２．６．２  連続成分分析]
図２０は連続成分（ステップＳ１４０３）を得るための好適な技術を示すフローチャートである。２．６章で上述した連続成分分析はＣＰＵの処理時間やメモリの記憶容量の観点からは不経済である。それは、ＣＰＵは画像データの個々の画素ビットを何度も比較しなければならず、また画像全体を同時にメモリに格納する必要があるからである。ここで図２０に基づいて説明する技術では、メモリには１度に画像の２画素行が存在していればよい。また、ＣＰＵは個々の画素ビットや画像データに何度もアクセスする必要はなく、水平画素セグメントを得るために画素データに１度アクセスすればよい。その後、ＣＰＵは水平画素セグメントの位置で動作するだけである。
【０１２３】
簡潔に述べると、図２０に関して説明する技術によると、画素画像データにおける連続成分を得る方法は、最初は連続成分を含まない連続成分のリストを開き、画像を画素行毎に下から上へ向かって横断走査して適切なシーケンスの連続成分を出力し、画像データの現在の画素行における全ての水平画素セグメントを識別し、現在の行の水平セグメントを前行の水平セグメントと比較して、以下４つの異なるケースの全てまたはいずれかが存在するかどうかを判断する。第１のケースは現在の画素行のセグメントが前画素行の開いた領域（オープン領域）に隣接している場合である。第２のケースは現在の画素行の水平セグメントが前画素行の水平セグメントに隣接している場合である。第３のケースは現在の画素行のセグメントが連続成分のリストにおいて少なくとも２つの連続成分をまたいでいる（bridges）場合である。第４のケースは現在の画素行の水平セグメントが現在の画素行のオープン領域に隣接している場合である。第１のケースが存在する場合、リストで新しい連続成分をスタートする（started in the list）。第２のケースが存在する場合、水平セグメントの現在の連続成分のトレース（trace）を更新する。第３のケースが存在する場合、水平セグメントがまたがっている２つの連続成分を合併する。最後に、第４のケースが存在する場合、連続成分のリスト内の連続成分のトレースを閉じる（closed out）。画像の全行を横断すると、さらなる処理のために連続成分のリストを出力する。
【０１２４】
より詳しくは、ステップＳ２００１に示すように、コンピュータ化した連続成分のリストを開く。リストは連続成分を含まないように初期化されているが、最終的には画像の全ての連続成分を含むようになる。
【０１２５】
ステップＳ２００２では、画像を画素行ごとに、好ましくは画像の下から上へ向かって横断走査する。こうすると連続成分のリスト内の連続成分が正しいシーケンスの順序に並ぶため、この順序が好ましい。
【０１２６】
ステップＳ２００３では、画像の現在の画素行における全ての水平画素セグメントを識別する。さらに詳しくは、図２１に単語「UNION」の任意の画像１２０について示すように、画素行１２１には水平画素セグメントが存在しない。一方、画素行１２２には領域１２２ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈで認識される８つの画素セグメントが存在する。これらの８つの水平画素セグメントの各々をステップＳ２００３で識別する。
【０１２７】
ステップＳ２００４へ進んで、ステップＳ２００３で識別された水平画素セグメントが画像の前画素行における水平セグメントに隣接するかどうかを判定する。現在の画素行の水平セグメントが前画素行の水平セグメントに隣接していない場合は、新たな水平セグメントを識別しており、ステップＳ２００５へ進んで新たな連続成分を連続成分のリスト上でスタートする。こうして、例えば、図２１の８つの水平セグメント１２２ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈについて新しい連続成分がスタートする。
【０１２８】
一方、ステップＳ２００４で、現在の画素行の水平セグメントが前画素行の水平セグメントに隣接している場合は、ステップＳ２００６で水平セグメントに相当する現在の連続成分のトレースを単純に更新する。さらに詳しくは、図２１に戻って、行１２３に対しては、１２３ａから１２３ｌまでの各水平セグメントは前行の水平セグメントに隣接している。従って、これらの水平セグメントに相当する連続成分のトレースを単純に更新する。この点において、水平セグメント１２３ｃおよび１２３ｅは同一の連続成分に含まれている。これらの水平画素行セグメントは両方とも単一の行セグメント、つまり水平画素セグメント１２２ｃで始まっているからである。同様に、水平画素セグメント１２３ｈおよび１２３ｉは共に水平画素セグメント（１２２ｆ）から始まり、同一の連続成分に含まれている。
【０１２９】
ステップＳ２００７では水平画素セグメントが２つまたはそれ以上の連続成分にまたがっているかどうかを判定する。水平画素セグメントが２またはそれ以上の連続成分にまたがっている場合は、それらの連続成分のトレースを合併する（ステップＳ２００８）。さらに詳しくは、図２１の行１２４について示すように、水平画素セグメント１２４ａは水平セグメント１２２ａおよび１２２ｂから始まる２つの連続成分にまたがっている。従って、これらの２つの連続成分を合併する。同様に、水平セグメント１２４ｃは水平セグメント１２２ｃおよび１２２ｄから始まる２つの連続成分にまたがっている。従って、これらの２つの連続成分を合併する。なお、水平画素セグメント１２４ｅは２つの異なる連続成分にまたがってはいない。これは単一の連続成分が１２２ｆで始まっているからである。
【０１３０】
ステップＳ１７０９では前画素行における水平画素セグメントが現在の画素行における開いたセグメントに隣接するかどうかを判定する。前画素行の水平セグメントが開いたセグメントに隣接している場合は、連続成分は完成しており、相当する連続成分を閉じる（ステップＳ２０１０）。
【０１３１】
いずれの場合も、ステップＳ２０１１へ進んで画像の次の画素行を処理し、画像の全画素行の処理が完了するまで（ステップＳ２０１２）処理を続ける。画像全体を処理すると、連続成分のリストを閉じて、リストを出力し（ステップＳ２０１３）、連続成分属性の計算を行なう（ステップＳ１４０４参照）。
【０１３２】
[２．６．３  非テキストからテキストを区分するためのルール]
図２２Ａ〜図２２Ｆは連続成分属性に適用してテキストエレメントか非テキストエレメントかを判定するための複数セットのルールを示すフローチャートである。ルールは適切な動作のためにフォントサイズまたは他のサイズ情報または分析されるドキュメントの予備的な知識には依存しない、スケール不変のものである。
【０１３３】
迅速な処理が可能で、テキストおよび非テキスト連続成分間において容易な区分判定ができるルールを最初に適用し、より難しく、テキストおよび非テキスト連続成分間において困難な区分判定を行なうルールを後に適用する。これらのルールは「未知の」タイプの連続成分に適用されるが、始めの方で適用されるルールによりすでにテキスト、非テキストの判定がされてしまうため後半のルールはたまにしか適用されない。
【０１３４】
ステップＳ２２０１では、連続成分の平均の高さを決定して連続成分属性と比較するためのスケール不変のパラメータを計算する。そして、ステップＳ２２０２では、連続成分の平均の高さに基づいてパラメータを計算する。幾つかのパラメータは本質的にスケール不変であり連続成分の平均の高さに基づく計算を必要としない。例えば、アスペクト比は高さ対幅の比であるので、すでにスケール不変である。しかし、最小の高さなど他のパラメータはスケール不変ではないのでステップＳ２２０２で決定する。
【０１３５】
そして、図２２Ａ〜Ｆの残りの部分に説明するように、「未知」のタイプのままの各連続成分に複数セットのルールを適用する。まず、ルール１に従って、高さ、アスペクト比、密度、（周囲の二乗）／領域の比、周囲／幅の比を全て検討して連続成分がテキスト連続成分の高さ、アスペクト比、密度、パラメータをほぼ有しているかどうかを判定する。それらを有する場合は、連続成分の高さ、アスペクト比、密度についてさらにテストを加えて、テキストか非テキストかを決定して、それに従い連続成分のタイプを分類する。
【０１３６】
ルール１に該当せず連続成分が「未知」のままである場合は、ルール２を用い、画素数、周囲、アスペクト比、高さを検討して連続成分が「．」より小さいまたは細いかどうかを判定する。そうである場合は、連続成分を「非テキスト」に設定する。
【０１３７】
ルール２に該当せず連続成分が「未知」のままである場合は、ルール３を用い、連続成分の高さ、アスペクト比、密度を検討して、連続成分がスラッシュ（「／」）であるかどうかを判定する。スラッシュである場合は、連続成分を「テキスト」に設定する。
【０１３８】
ルール３に該当せず連続成分が「未知」のままである場合は、ルール４を用い、連続成分のアスペクト比、高さ、密度を検討して、連続成分が「１」、「ｌ」などの単一の小さく細い文字であるかどうかを判定する。そうした文字である場合は、連続成分を「テキスト」に設定する。
【０１３９】
ルール４に該当せず連続成分が「未知」のままである場合は、ルール５を用い、連続成分のアスペクト比、高さ、密度、（周囲の二乗）／領域の比を検討して、連続成分が「-」、「_」、「-」などの単一の短い文字か、「＝」や「％」の各部分であるかどうかを判定する。そうした文字や文字部分である場合は、連続成分を「テキスト」に設定する。
【０１４０】
ルール５に該当せず連続成分が「未知」のままである場合は、ルール６を用い、アスペクト比、高さ、密度を検討して、連続成分が「.」、「,」などの小さい文字か、「：」や「；」の各部分であるかどうかを判定する。そうした文字や文字部分である場合は、連続成分を「テキスト」に設定する。
【０１４１】
ルール６に該当せず連続成分が「未知」のままである場合は、ルール７を用い、連続成分のアスペクト比、高さ、密度を検討して、連続成分が「>」、「<」、「^」、「u」、「v」などの高さおよび密度の低い文字であるかどうかを判定する。そうした文字である場合は、連続成分を「テキスト」に設定する。
【０１４２】
ルール７に該当せず連続成分が「未知」のままである場合は、ルール８を用い、連続成分の高さ、アスペクト比、密度、（周囲の二乗）／領域の比、周囲／幅の比を検討して、連続成分が行において連続した文字のように幅が広く短いものであるかどうかを判定する。そうである場合は、線のように周囲／幅の比が低いかまたは密度が高ければ、連続成分のタイプを「非テキスト」に設定する。周囲／幅の比が高く密度が低ければ、連続成分を「テキスト」に設定する。
【０１４３】
ルール８に該当せず連続成分が「未知」のままである場合は、ルール９を用い、連続成分のアスペクト比、密度を検討して、連続成分が「｜」のような高い垂直な線であるかどうかを判定する。そうした線である場合は、連続成分を「非テキスト」に設定する。
【０１４４】
ルール９に該当せず連続成分が「未知」のままである場合は、ルール１０を用い、連続成分のアスペクト比、密度を検討して、連続成分が長い水平の線のストロークであるかどうかを判定する。そうである場合は、連続成分のタイプを「非テキスト」に設定する。
【０１４５】
ルール１０に該当せず連続成分が「未知」のままである場合は、ルール１１を用い、連続成分の高さを検討して、連続成分がルール９ではピックアップできない高い非テキスト領域であるかどうかを判定する。そうである場合は、連続成分のタイプを「非テキスト」に設定する。
【０１４６】
ルール１１に該当せず連続成分が「未知」のままである場合は、ルール１２を用い、連続成分の高さ、密度を検討して、連続成分がまだピックアップされていないボーダーラインテキスト（borderline text）成分であるかどうかを判定する。そうである場合は、連続成分のタイプを「テキスト」に設定する。
【０１４７】
ルール１２に該当せず連続成分が「未知」のままである場合は、ルール１３を用い、連続成分のアスペクト比、高さ、密度、（周囲の二乗）／領域の比、周囲／幅の比を検討して、連続成分がまだルール８でピックアップされていない、「an」、「the」、「was」などの一連の短い単語の列であるかどうかを判定する。そうである場合は、連続成分を「テキスト」に設定する。
【０１４８】
ルール１３に該当せず連続成分が「未知」のままである場合は、ルール１４を用い、連続成分のアスペクト比、密度を検討して、連続成分が非テキストであるしみ（blotch）であるかどうかを判定する。そうしたしみである場合は、連続成分を「非テキスト」に設定する。
【０１４９】
ルール１４に該当せず連続成分が「未知」のままである場合は、ルール１５を用い、連続成分の密度を検討して、連続成分が、例えば詳細なグラフィックに見られるような非常に高密度な非テキストブロックのしみか、あるいはテーブルに見られるテキストを囲むフレームなどのような、非常に低密度の非テキストのしみであるかどうかを判定する。そうである場合は、連続成分を「非テキスト」に設定する。
【０１５０】
ルール１５に該当せず連続成分が「未知」のままである場合は、ルール１６を用い、連続成分の高さ、密度、アスペクト比、（周囲の二乗）／領域の比、周囲／幅の比を検討して、連続成分が通常タイトルや見だしに見られる大きいフォントの単語であるかどうかを判定する。そうである場合は、連続成分を「テキスト」に設定する。
【０１５１】
ルール１６に該当せず連続成分が「未知」のままである場合は、ルール１７を用い、連続成分の高さ、密度、アスペクト比、（周囲の二乗）／領域の比、周囲／幅の比を検討して、連続成分が、大きいフォントの単語に似ているが周囲の値が低く、従って非テキストであるエレメントであるかどうかを判定する。そうした場合は、連続成分を「非テキスト」に設定する。
【０１５２】
ルール１７に該当せず連続成分が「未知」のままである場合は、ルール１８を用い、連続成分の高さ、密度を検討して、連続成分がルール１２でピックアップされていないボーダーラインテキストブロック（borderline text block）であるかどうかを判定する。そうである場合は、連続成分を「テキスト」に設定する。
【０１５３】
ルール１８に該当せず連続成分が「未知」のままである場合は、ルール１９を用い、連続成分の（周囲の二乗）／領域の比、周囲／幅の比、密度を検討して、連続成分が残りの判定困難なテキスト連続成分であるかどうかを判定する。そうである場合は、連続成分を「テキスト」に設定する。
【０１５４】
ルール１９に該当せず連続成分が「未知」のままである場合は、ルール２０を用い、連続成分の（周囲の二乗）／領域の比、周囲／幅の比、密度を検討して、連続成分がルール１８でピックアップされていない残りの判定困難な非テキストエレメントであるかどうかを判定する。そうである場合は、連続成分を「非テキスト」に設定する。
【０１５５】
ルール２０に該当せず連続成分が「未知」のままである場合は、ルール２１を用い、連続成分の密度、アスペクト比、（周囲の二乗）／領域の比を検討して、ルール１９でピックアップされていない残りの判定困難なテキストタイプの連続成分を検出する。連続成分が残りの判定困難なテキストタイプの連続成分の１つである場合は、連続成分を「テキスト」に設定する。
【０１５６】
ルール２１に該当せず連続成分が「未知」のままである場合は、ルール２２を用い、連続成分の高さ、周囲／幅の比、アスペクト比、（周囲の二乗）／領域の比を全て検討して、連続成分が雑誌記事における最初の大きいフォント文字のような孤立した大きいフォントの文字であるかどうかを判定する。そうである場合は、連続成分を「テキスト」に設定する。
【０１５７】
ルール２２に該当せず連続成分が「未知」のままである場合は、ルール２３を用い、連続成分の高さ、周囲／幅の比、アスペクト比を検討して、連続成分が見出しやタイトルのフォントのような大きいフォントの文字に似ているが、非テキストである、孤立した非テキストエレメントであるかどうかを判定する。そうである場合は、連続成分を「非テキスト」に設定する。
【０１５８】
ルール２３に該当せず連続成分が「未知」のままである場合は、ルール２４を用い、連続成分の（周囲の二乗）／領域の比、周囲／幅の比を検討して、連続成分が非常に長い単語または連続した単語のセットであるかどうかを判定する。フィルタリングのルールのこの時点においては、そうした一連の単語が「テキスト」であると正しく指定できるもの以外は滅多に検出することはない。このルールの基準に合うならば、連続成分を「テキスト」に設定する。
【０１５９】
ルール２４に該当せず連続成分が「未知」のままである場合は、ルール２５を用い、残りの連続成分を「非テキスト」に設定する。
【０１６０】
ルール２６では各テキストの連続成分を検討して、連続成分が他のテキスト連続成分から孤立している場合は、その連続成分を「非テキスト」に設定する。これは、無意識に鉛筆を動かして付けた印や紙の透かし模様（water marks）などページに孤立して付いた印が誤ってテキストとして解釈されないことを保証するものである。
【０１６１】
尚、本発明は、複数の機器から構成されるシステムに適用しても１つの機器からなる装置に適用しても良い。また、本発明はシステム或いは装置に本発明により規定される処理を実行させるプログラムを供給することによって達成される場合にも適用できることはいうまでもない。
【０１６２】
【発明の効果】
以上説明したように本発明によれば、認識処理時においてはより高解像度の画像データを用いて認識率を向上すると共に、格納時には視覚に影響しない程度に解像度を落として画像データを格納することを可能とし、文字認識率を保ちつつより多くの画像データを格納することが可能となる。
【０１６３】
また、本発明によれば、文字認識の結果得られたテキストデータと低解像度の画像データとを対応させて格納することにより、より高速な画像データ検索が可能となる。
【０１６４】
また、本発明によれば、低解像度の画像データを用いることによりネットワーク上のデータ転送量を低減し、ネットワークに好適な画像格納検索装置を提供可能となる。
【０１６５】
また、本発明によれば、低解像度の画像データを更に圧縮して格納し、より多くの画像データを格納することが可能となる。
【０１６６】
【図面の簡単な説明】
【図１】２値画像とグレイスケール画像の相違を説明するための図である。
【図２】代表的なドキュメントページを表す図である。
【図３】本実施例に係わるパーソナル画像処理コンピュータシステムの外観を表す部分切取図である。
【図４】図３の装置のネットワーク接続を説明する図である。
【図５】図３の装置の内部構成を示す詳細ブロック図である。
【図６】図３の装置のコントロールパネルの拡大図である。
【図７】図３の装置のコントロールパネルの拡大図である。
【図８】ドキュメント格納及び検索を説明するためのフローチャートである。
【図９Ａ】本実施例に係わる光学文字認識を説明するためのフローチャートである。
【図９Ｂ】本実施例に係わる光学文字認識を説明するためのフローチャートである。
【図９Ｃ】本実施例に係わる光学文字認識を説明するためのフローチャートである。
【図１０Ａ】画像の歪み補正（de-skew）を説明するためのフローチャートである。
【図１０Ｂ】画像の歪み補正（de-skew）を説明するためのフローチャートである。
【図１１Ａ】代表的な歪んだ（skewed）画素とその補正（de-skew）を表す図である。
【図１１Ｂ】代表的な歪んだ（skewed）画素とその補正（de-skew）を表す図である。
【図１１Ｃ】代表的な歪んだ（skewed）画素とその補正（de-skew）を表す図である。
【図１２】閾値処理による、グレイスケール画像からの２値画像処理を説明するためのフローチャートである。
【図１３】グレイスケール画像の代表的なヒストグラムである。
【図１４】本実施例に係わるセグメンテーション処理を説明するためのフローチャートである。
【図１５】画像内の連続成分（connected components）の検出（derivation）を説明するための図である。
【図１６】各連続成分に対して格納される画像属性を示す図である。
【図１７】下線付きの単語「finally」の画像に対する画像処理の効果を説明する図である。
【図１８Ａ】下線除去を説明するためのフローチャートである。
【図１８Ｂ】下線除去を説明するためのフローチャートである。
【図１９】下線除去の連続的な処理段階と、これら処理段階における、下線部付きの文字の画像に対する効果を示す図である。
【図２０】連続成分の分析を説明するためのフローチャートである。
【図２１】単語「UNION」の画像から連続成分が誘導される様子を示す図である。
【図２２Ａ】連続成分のルールベースの処理を示すフローチャートである。
【図２２Ｂ】連続成分のルールベースの処理を示すフローチャートである。
【図２２Ｃ】連続成分のルールベースの処理を示すフローチャートである。
【図２２Ｄ】連続成分のルールベースの処理を示すフローチャートである。
【図２２Ｅ】連続成分のルールベースの処理を示すフローチャートである。
【図２２Ｆ】連続成分のルールベースの処理を示すフローチャートである。
【符号の説明】
【図１】
0003696920.tif 000002
【図２】
0003696920.tif 000003
【図３】
0003696920.tif 000004
【図４】
0003696920.tif 000005
【図５】
0003696920.tif 000006
【図６】
0003696920.tif 000007
【図７】
0003696920.tif 000008
【図８】
0003696920.tif 000009
【図９Ａ】
0003696920.tif 000010
【図９Ｂ】
0003696920.tif 000011
【図９Ｃ】
0003696920.tif 000012
【図１０Ａ】
0003696920.tif 000013
【図１０Ｂ】
0003696920.tif 000014
【図１１Ａ】
0003696920.tif 000015
【図１１Ｂ】
0003696920.tif 000016
【図１１Ｃ】
0003696920.tif 000017
【図１２】
0003696920.tif 000018
【図１３】
0003696920.tif 000019
【図１４】
0003696920.tif 000020
【図１５】
0003696920.tif 000021
【図１６】
0003696920.tif 000022
【図１７】
0003696920.tif 000023
【図１８Ａ】
0003696920.tif 000024
【図１８Ｂ】
0003696920.tif 000025
【図１９】
0003696920.tif 000026
【図２０】
0003696920.tif 000027
【図２１】
0003696920.tif 000028
【図２２Ａ】
0003696920.tif 000029
【図２２Ｂ】
0003696920.tif 000030
【図２２Ｃ】
0003696920.tif 000031
【図２２Ｄ】
0003696920.tif 000032
【図２２Ｅ】
0003696920.tif 000033
【図２２Ｆ】
0003696920.tif 000034