以下、本発明の実施形態について、図面を参照して説明する。
本発明は、一段組のビジネスレターから多段組・多記事の新聞まで多様な文書から高精度に、テキスト、写真・絵、図形(グラフ、図、化学式)、表(罫線あり、なし)、フィールドセパレータ、数式などの領域を抽出し、テキスト領域からは、カラム、タイトル、ヘッダ、フッタ、キャプション、本文などの領域を抽出し、本文からは段落、リスト、プログラム、文章、単語、文字を抽出し、各領域にはその論理属性、読み順、他の領域との関係(例えば、親子関係、参照関係など)を付与することができるものである。この他に、文書クラスやページ属性なども抽出することができるものである。抽出された情報は構造化され、色々なアプリケーションソフトウェアへの入力・応用を可能とする。
初めに、本発明の概要を説明する。
(概要)印刷文書は、知識表現の一つの形態とみなすことができる。しかし、(i) 内容へのアクセスが簡単ではないこと(ii) 内容の変更・修正にコストがかかること(iii) 配布にコストがかかること(iv) 蓄積に物理的スペースを要し、整理に手間がかかることなどの理由から、ディジタル表現への変換が望まれている。ディジタル表現形式に変換すれば、表計算、イメージファイリング、文書管理システム、ワープロ、機械翻訳、音声読み上げ、グループウェア、ワークフロー、秘書エージェントなどの多様な計算機アプリケーションを通じて、所望の情報が所望の形態で簡単に入手できるようになるからである。
そこで、印刷文書をイメージスキャナやコピー機を用いて読み取り、画像データ(文書画像)に変換して、この文書画像から上記アプリケーションの処理対象となるいろいろな情報を抽出し、数値化・コード化する方法・装置について以下で提案する。
具体的には、印刷文書をスキャニングして得られたページ単位の文書画像から、レイアウトオブジェクトおよびレイアウト構造として、“テキスト”からは、「カラム(段組)構造」
「文字行」
「文字」
「階層構造(カラム構造−部分領域−行−文字)」
「図形(グラフ、図形、化学式など)」
「絵、写真」
「表、フォーム(罫線のあるもの、罫線のないもの)」
「フィールドセパレータ」
「数式」
などの領域情報を抽出し、さらにテキスト領域からは、“タイポグラフィー情報”として、「字下げ」
「センタリング」
「揃え」
「ハードリターン」
などを抽出し、また“論理オブジェクト・論理構造”として、「文書クラス(新聞、論文、明細書などの文書種別)
「ページ属性(フロントページ、最終ページ、奥付けページ、目次ページなど)」
「論理属性(タイトル、著者名、アブストラクト、ヘッダ、フッタ、ページ番号など)」
「章節構造(複数ページに亙る)」
「リスト(箇条書きなど)構造」
「親子関係(コンテンツの階層構造)」
「参照関係(参考文献、注釈への参照、本文からの非テキスト領域への参照、非テキスト領域とそのキャプション間の参照、タイトルへの参照など)」
「ハイパーテキスト関係」
「順序(読み順)」
「言語」
「話題(タイトル、見出しとその本文の組合せ)」
「段落」
「文章(読点で区切られている単位)」
「単語(インデキシングにより得られるキーワードなどを含む)」
「文字」
などの情報を抽出し、構造化する。
すなわち、印刷文書を“レイアウト構造”と“論理構造”の観点から見て、様々な粒度で解体したあと、その要素を抽出して、いろいろな形に構造化することを実現する。さらに、文書の二次情報として、“書誌情報”や“メタデータ”も自動的に抽出する。
このようにして得られた情報は、種々のアプリケーションソフトを通じて、ユーザから要求があった時点で、あらゆるオブジェクトが動的に、全体的あるいは部分的に構造化、順序付けされて、アプリケーションのインタフェースを通じてユーザに提供されるようになっていても良い。このとき、処理結果として複数の可能な候補がアプリケーションに供給されたり、アプリケーションから出力されるようになっていてもよい。
また、文書処理装置のGUIで、同様にあらゆるオブジェクトが、動的に構造化あるいは順序付けされて表示されるようになっていても良い。
さらに、構造化された情報は、アプリケーションに応じて、プレーンテキスト、SGML、HTML、XML、RTF、PDF、CSV等の書式記述言語形式、その他ワープロフォーマットに変換されるようになっていても良い。
ページ単位に構造化された情報は、文書ごとに編集されて、文書単位の構造化情報が生成されるようにしてもよい。
次に、全体システムの構成について説明する。
[システム構成例]文書処理システムは、例えば図1(a)に示すように、レイアウト解析処理部1、文字切りだし/認識処理部2、タイポグラフィック解析処理部3、論理構造抽出処理部4、読み順決定処理部5、文書構造認識処理部6より、あるいは図1(b)に示すように、レイアウト解析処理部1、文字切りだし/認識処理部2、タイポグラフィック解析処理部3、論理構造抽出処理部4、読み順決定処理部5、文書構造認識処理部6および共有メモリ7とより、構成されている。
この場合、全体システムは、それぞれ独立した、以下に示す複数の処理モジュールで構成されている(詳細については後述)。
<レイアウト解析部1>ここでは、レイアウト解析処理を行うが、これは主に印刷媒体を構成する「テキスト」、「図形」、「写真」、「表」、「フィールドセパレータ」などのレイアウトオブジェクトとその幾何的階層構造と配置関係を抽出すると云った処理を行う。
<文字切り出し/認識処理部2>文字切り出し/認識処理部2は、文字の切り出し/認識処理を行うものであるが、ここでは、文字切り出し/認識の処理内容は、具体的にはテキストオブジェクトを文字行単位にコード化するというものである。この文字切り出し/認識処理部2としてのモジュールは、文献「石谷:“創発的計算に基づく文書画像レイアウト解析”画像の認識・理解シンポジウムMIRU96,pp.343−348,1996」に示されるように、レイアウト解析モジュールに内蔵されていてもよい。以下では内蔵されている場合について説明する。
<タイポグラフィック解析処理部3>タイポグラフィック解析処理部3は論理オブジェクト抽出処理を行うもので、「字下げ」、「ハードリターン」、「揃え」、「センタリング」などのタイポグラフィーに基づいて、「段落」、「リスト」、「数式」、「プログラム」、「注釈」などを抽出する。
<論理構造抽出部4>論理構造抽出部4はモデルベース論理構造抽出を行うものであるが、これはあらかじめユーザが定義した文書モデルに従って論理オブジェクトの属性、階層構造、関係構造を獲得すると云った処理である。
<読み順決定処理部5>読み順決定処理部5は読み順を決定する処理を行うものであって、ここでの処理は、論理オブジェクトの相対的な配置関係などから読み順を決定すると云ったことを行う。
<文書構造認識処理部6>文書構造認識処理部6は文書構造を認識する処理を行うものであって、具体的には、この文書構造認識処理は、複数ページに亙る処理結果を統合、解釈して「文書クラス」、「ページクラス」、「章節構造」、「参照関係」などを抽出するといった処理である。
上述した図1(a)の構成の場合での本システムは、モジュール間で一方向あるいは双方向に情報通信可能である。また図1(b)の構成の場合では、各モジュールは共有メモリ7に何度でもアクセスでき、各々が必要とする情報がメモリ上で揃った時点で動作を開始し、メモリ上のデータを各々変更、更新するようになっている。
すべてのモジュールでは、処理に必要なパラメータをスケーラブルに設定・変化でき、それにより処理対象に応じて推定できるようになっている。また、モジュールごとに、共有メモリ上のデータを、内部で必要とするデータ構造に変換することができる。さらに、対象の状況や近い将来の処理手順などを推定できるようになっている。
本システムでは、処理対象のバリエーションを増やしたり、処理精度を向上するために、新たに別の処理モジュール追加する場合には、人間の脳のように新しい機能(モジュール)を古い機能の上に積み上げていったり、共有メモリにアクセス可能なモジュールとして追加することで、システム全体の性能を進歩させることができるのである。
[動作概要]:次に、このような構成の本システムの動作を説明する。
例えば、ある文書の論理オブジェクトの属性を認識する場合、それが前の段落やページからの続きであるかどうか既知でなければ認識不能である場合がある。また、ある領域や論理オブジェクトの読み順は、その論理属性と周囲の属性が分からなければ決定できない場合がある。すなわち、各モジュールは、他のモジュールの処理結果が分かって初めて、正しい動作を決定することができる。
さらに、各モジュールは処理誤りを犯す可能性があり、それらが段階的に蓄積されると正しい結果が得られない場合がある。
このような文書認識における曖昧性に対応するために本方式では、システムの制御を中央集権的に固定するのではなく、処理の進行状況や対象の文書構造に応じて各モジュールが動作するようにしている。
つまり、処理手順および制御は、固定されておらず、モジュールが並列に動作することによって、ダイナミックなモジュール間相互作用が生じる。そうすることで、あるモジュールが他のモジュールへの手がかりを与えるように、互いに影響を及ぼし合うことで、全体として正しい処理が行われる方向に引き込まれるように動作する。
この結果、単独モジュールで処理できない複雑なケースに対して、複数のモジュールが協調して対応できるようになっている。さらに、モジュールは入力として受け取る他のモジュールの処理結果を変更することができ、これにより処理誤りの救済を可能としている。
本システムでの処理は[前処理],[レイアウト解析],[論理オブジェクトおよび論理構造の抽出],[文章および単語情報の抽出],[読み順決定],[話題抽出],[モデル照合に基づく論理構造抽出]といったことを行うが、その詳細を次に説明する。
[前処理]ここでは、提案するシステムへ入力される情報の概要について説明する。システムには、イメージスキャナが接続されており、印刷媒体をこのイメージスキャナでスキャニングすることで得られるページ単位の画像(文書画像)が順次入力される。
このとき、イメージスキャナからは、2値画像,濃淡画像,カラー処理画像などのかたちで画像データが供給される。いずれの画像で供給されるかは、使用するイメージスキャナの仕様によって決まっているものであるが、例えば、濃淡画像やカラー画像に対しては、従来方式を用いて、領域分割を行い、領域別に適当なしきい値で2値画像に変換してもよい。以下の説明では、主に2値画像に対する処理について述べているが、濃淡やカラー画像に対してもこのような前処理を適用すれば、同様のことが成り立つ。以下では、“2値画像”=“ページ単位の2値文書画像”を意味するものとして説明する。
得られた2値画像は、従来方式により、雑音除去や、傾き補正、歪み補正などの整形処理によりさらに品質のよい2値画像に変換されてもよい。なお、ここでは、傾きのない正立した画像を対象として説明する。また、この前処理段階において、得られた2値画像は、個別の文字の領域が検知され、パターン認識により文字認識が成されて、文字コード化される、といった処理も含む。
[レイアウト解析]ここでは、上述の前処理にて得られた2値画像(文書画像)について、レイアウトオブジェクトおよびレイアウト構造の抽出を行う。それには、得られた文書画像から、テキスト領域、図形領域、写真領域、表領域、フィールドセパレータなどの領域をレイアウトオブジェクトとして抽出した後、それらの配置関係に基づいて、幾何的階層構造をレイアウト構造として抽出する。
レイアウトオブジェクトの抽出は次のようにして行う。
まず、2値画像(文書画像)に対して、『文献「石谷:“創発的計算に基づく文書画像レイアウト解析”画像の認識・理解シンポジウムMIRU96,pp.343−348,1996」(図2参照)』あるいは『文献「石谷:“多階層構造と階層間相互作用に基づく文書構造解析”,電子通信学会技報PRMU96-169,pp69-76 1997」(図3参照)』による処理を適用すれば、「テキスト」、「表」、「図形」、「写真」、「フィールドセパレータ」などの領域の幾何情報(大きさ、位置座標など)が抽出される。この位置座標は、内容物に外接する矩形(左上端、右下端の座標値で表現可能、以下外接矩形と呼ぶ)により表現されてもよい。
このとき、テキスト領域は、「タイトル」、「本文」、「ヘッダ」、「フッタ」、「キャプション」などの論理属性に対応したまとまりとして抽出されている(ただし、この時点では、各領域には論理属性は付与されてない)。各テキスト領域では、文字列方向が判別され、それに基づいて文字行が抽出されている。テキスト領域はすべての文字行を内包する外接矩形として表現されている。また、上記手法によると、同時に文字認識処理も実施され、文字パターンの外接矩形と、その文字コード情報も得られている。
この結果、「2次元的なテキスト領域」、「1次元的な文字列」、「0次元的な文字」という、階層構造が得られる。しかし、「字下げ」、「センタリング」、「揃え」、「ハードリターン」などのタイポグラフィー情報と、「話題」、「段落」、「リスト」、「数式」、「プログラム」、「注釈」、「文章」、「単語」などの論理情報は得られていない。
罫線で文字領域が構成されている表(フォーム)領域では、さらに文献「Y.Ishitani: Model Matching Based on Association Graph for Form Image Understanding, Proc. ICDAR95, Vol.1, pp.287-292, 1995」、もしくは文献「石谷:“モデルマッチングによる表形式文書の理解”、電子通信学会技報PRU94-34,pp57-64, 1994-9」の手法を適用することにより、罫線抽出および構造化処理が実施され、ページ画像が複数の表(文献ではサブフォームと呼ばれている)で構成されている場合には個別表領域が抽出される。
それに対して、文献「石谷他:“階層的モデルあてはめによるフォーム読み取りシステム”、電子通信学会ソサイエティ大会、D-350, 1996」に基づく方式を適用することにより、罫線で囲まれる文字枠(フィールドまたはセルともいう)を検出し、その内部の文字列を抽出、順序付けした後、認識するようにしても良い。もちろん、認識した後、順序付けしてもよい。
図形領域では、グラフ、図形、化学式などが、単独の領域として抽出されている。このあと、さらに従来方式により、ベクトル化処理や、グラフ認識、化学式認識がなされて、数値情報やコード情報に変換されてもよい。
写真領域では、絵、網点写真、べた塗り領域などが単独の領域として抽出されている。このあと、これらの領域は、上述した2値化処理を施す前の濃淡情報やカラー情報が追加される、もしくは変更されるようになっていてもよい。
以上が文書画像からレイアウトオブジェクトを抽出するの抽出処理の詳細であった。次にレイアウト構造の抽出について説明する。
レイアウト構造の抽出は、レイアウトオブジェクト間の配置関係、階層構造を、木構造で表現したり、グラフ構造で表現したり、ネットワーク構造で表現することにより得る。
すなわち、まず、レイアウトオブジェクト間の配置関係、階層構造を、例えば、文献「 S.Tsujimoto: Major Components of a Complete Text Reading System, Proceedings of THE IEEE, Vol.80, No.7, July, 1992」のように木構造で表現したり、グラフ構造で表現したり、ネットワーク構造で表現することによりレイアウト構造が抽出される(これらは意味的には等価)。
レイアウト解析では、この他に、文書の全体的性質を表すと見做すことができる、以下の情報、すなわち、「文書文字列方向」情報、「カラム構造」情報、「文書構造」情報を大域的文書構造として抽出してもよい。
・「文書文字列方向」情報文書が縦書きか横書きかを判断する必要があるが、これは次のようにする。
文献「石谷:“文書構造解析のための前処理”,信学技法,PRU92−32,pp57−64,1992」による手法を用いて、文書全体の文字列方向を文書文字列方向として決定してもよい。また、以下の式に基づいて文字列方向を判断してもよい。
と判断する。ここで、hs:横書き領域の総面積、vs:縦書き領域の総面積とする。
・「カラム構造」情報カラム構造は、次のようにして判断する。文献「石谷:“創発的計算に基づく文書画像レイアウト解析”画像の認識・理解シンポジウムMIRU96,pp.343−348,1996」の方式によると処理結果として得られるテキスト領域は、「高秩序領域:文字行数がしきい値th5以上であり、文字行方向の領域の幅がしきい値th6以上のもの」と「低秩序領域:上記条件を満たさないもの」に分類されている。例えば、高秩序領域が図8のように、文字列方向に並列している場合には、この文書はマルチカラム構造を持つと見なし、そうでない場合には、この文書はシングルカラム構造を持つとみなしてもよい。
・「文書構造」情報マルチカラム文書と、高秩序領域を含むシングルカラム文書を構造化文書と定義し、そうでない文書(すなわち、低秩序領域のみで構成されるシングルカラム文書)未構造化文書と定義して、抽出してもよい。この情報は、文書に章節構造や参照構造があるかどうかを判定する場合に、有用である。つまり、考えられるもののうち、どの論理構造を抽出可能であるか手がかりとなる。
[論理オブジェクトおよび論理構造の抽出]次に、論理オブジェクトおよび論理構造の抽出について説明する。これは上記レイアウト解析で得られた種々のレイアウトオブジェクトに対して、論理構造抽出処理部4のモジュールが以下に述べる方法により処理して抽出する。
まず、ヒューリスティック処理に基づく論理属性付与を行う。これは以下に述べる簡単なルールに基づいて、各テキスト領域に仮の論理属性を付与することで行う。
尚、以後の処理はこの仮論理属性をベースにして実施されても良く、また、以下のルールは、あらかじめ設計者によって作成・内部埋め込みされていてもよいし、ユーザが、所望のパラメータをシステム外部から設定することで、既存のルールを変更したり、新しいルールを作成・追加できるようになっていてもよい。各テキスト領域は、レイアウト解析処理により、低秩序領域と高秩序領域に分類されている。
[ルール1]: 表領域の上部にある低秩序領域、および図形領域と写真領域の下部または両側にある低秩序領域の論理属性を「キャプション」とする。
但し、このルールにおいて、非テキスト領域に対するキャプションの位置(上下左右)と、両者間の距離などをシステムの外部からユーザが設定する構成としてあってもよい。
[ルール2]: キャプション以外で、文書の最上部にある、文字行数がしきい値th7(外部設定可能としてもよい)以下の低秩序領域の論理属性を「ヘッダ」とする。
[ルール3]: キャプション、ヘッダ以外で、文書の最下部にある、文字行数がしきい値th7以下の低秩序領域の論理属性を「フッタ」とする。
[ルール4]:キャプション、ヘッダ、フッタ以外の低秩序領域の論理属性を「タイトル」とする。このルールにおいて、文字行数、文字列幅、文字列高さなどをタイトルと判断するためのしきい値として、ユーザが外部から設定できるようになっていてもよい。
[ルール5]:キャプション、ヘッダ、フッタ、タイトル以外の領域の論理属性を「本文」とする。
このようなルールに則り、ヒューリスティック処理に基づく論理属性付与を行う。
[タイポグラフィック解析による論理オブジェクトの抽出]これは文書画像から、一まとまりの論理オブジェクトとしてテキスト領域を抽出するに当たり、必要な解析処理であり、ここで説明するタイポグラフィック解析による論理オブジェクトの抽出処理は、本発明の特徴部分の一つである。
レイアウト解析では、字間と行間がほぼ均一なテキスト領域が、一まとまりのレイアウトオブジェクトとして抽出される。この場合、行間値が均一であると見なされているなため、「タイトル」、「段落」、「リスト構造」など本来、論理属性の異なっているものがまとまって抽出されることがある。そこで、「字下げ」、「センタリング」、「揃え」、「ハードリターン」などのタイポグラフィー情報を抽出し(タイポグラフィック解析)、それに基づいてレイアウトオブジェクトを行方向に分割することで、「タイトル(明示的に孤立して配置されてないもの、サブタイトルに多い)」
「数式(英数字、記号、ギリシャ文字で構成される)」
「プログラム」
「リスト(箇条書きなど)」
「注釈(ヘッダを除いたものの中でページ最下端に位置し、上方にフィールドセパレータと隣接している)」
「段落(数式、プログラム、リスト以外のテキスト領域で、字下げ行で始まり、通常行が続き、最後にハードリターン行あるいは通常行で構成されるもので、パラグラフともいう)」
などの論理オブジェクトを抽出する。
以下では、論理オブジェクトおよび論理構造の抽出処理により、得られた論理属性が「本文」となっている領域から、これらの論理オブジェクトを抽出する手順を示す。
<「本文」領域から論理オブジェクトを抽出する手順>[手順S1] 領域内のテキストの順序付け:横(縦)書きのテキスト領域の場合、文字行の外接矩形の左上端または右下端のy(x)座標値をソートすることで文字列の順序付けを行う。この順序は読み順に相当する。
[手順S2] 幾何パラメータの設定:各テキスト領域で、先端位置と末尾位置を検出し(例えば横(縦)書きであれば先頭位置:teはテキストの外接矩形の左(上)端、末尾位置:teはテキストの外接矩形の右(下)端とする)、内部の各文字行で、先頭位置から行頭:lsまでの距離:diff(ts,ls)と、行末:leから末尾位置までの距離:diff(te,le)を測定し、その距離値を文字数分に換算して、保持する。また、各行で上方と下方に順番に沿って連続して探索し、行頭が互いに揃っている場合の数と、行末が互いに揃っている場合の数を各行で保持する。
[手順S3]文字行の分類:テキスト領域を構成する文字行を以下のようにして、「通常行」、「字下げ行」、「ハードリターン行」、「センタリング行」に分類する。ここで、上記文字行の分類に用いるしきい値をth1とする。このとき、例えば、図9のように領域が入り組んで配置されている場合には、各行ごとにtsとteが定義されていてもよい。すなわち、領域の外接矩形が互いに交差している箇所を検出し、その重なり部分に近接する文字行群を検出する。その文字行群の中から先頭位置の場合には最小値を、末尾位置の場合には最大値を選択して、各文字行に設定してもよい。
<通常行の抽出>:行の先頭位置:lsが、ls < (te + th1)を満たし、かつ、末尾位置:leがle > (te - th1)を満たす場合、当該文字行を「通常行」と定義し、抽出する。
<ハードリターン行の抽出>:行の先頭位置:lsが、ls < (te + th1)を満たし、かつ、末尾位置:leがle ≦ (te - th1)を満たす場合、当該文字行を「ハードリターン行」と定義し、抽出する。
<センタリング行の抽出>:行の先頭位置:lsが、ls ≧ (te + th1)を満たし、かつ、末尾位置:leがle ≦ (te - th1)を満たす場合、当該文字行を「センタリング行」と定義し、抽出する。
<字下げ行の抽出>:行の先頭位置:lsが、ls ≧ (te + th1)を満たし、かつ、末尾位置:leがle > (te - th1)を満たす場合、当該文字行を「字下げ行」と定義し、抽出する。このような分類の他に、各行に設定されている“文字数分で設定されている領域の先端から行頭までの距離値”“文字数分で設定されている領域の末尾から行末までの距離値”を用いて同様に分類処理をしてもよい。
[手順S4]単独領域の認識:〔手順S4-1〕 プログラム領域の認識:当該テキスト領域で、文字行の先頭位置を順番に調べていく。テキストの先端から先頭位置までの距離が文字数分として換算されていれば、これを順番に一次元に並べて、パージングすることにより、行頭位置が入れ子構造をなしているかどうか判定でき、入れ子構造となっている単独領域をプログラム領域として抽出する。
この判定処理は、文字行数がしきい値(内部埋め込みされていてもよいし、ユーザが外部設定できるようになっていてもよい)を超えているものに対して選択的に働くようになっていてもよい。この他に、行数がしきい値th_srtnum以上で、行頭位置の隣接行間の差分がしきい値th_diff以下で、行頭の揃いの最大値がしきい値th_ratioより小さく、センタリングされている文字行がしきい値th_cnumより多い領域をプログラム領域と見なしてもよい。
〔手順S4-2〕 数式領域の認識:未確定領域における字下げ行あるいはセンタリング行が以下の条件{条件1}文字認識結果がよくない{条件2}文字認識結果が英数字、記号、ギリシャ文字でほぼ構成されているいずれかを満たす行を、「数式行」と定義し、抽出する。数式行のみで構成されている単独領域を数式領域とする。この場合、各行で文字認識結果の平均値が計算されており、条件1で用いられてもよい。
〔手順S4-3〕 リスト構造の認識:先頭行が通常行あるいはハードリターン行であり、かつ先頭文字が記号か英数字で構成されており、先頭行の後に行頭の揃っている字下げ行あるいはセンタリング行が連続する二行以上の複数行で構成される単独領域と、それが複数回繰り返されている単独の領域をリスト構造として抽出する。
〔手順S4-4〕 注釈領域の認識:フッタを除いたなかでページの最下位に位置し、上方にフィールドセパレータが隣接している領域を注釈領域として抽出する。
〔手順S4-5〕 段落の認識:未確定領域のうち、字下げ行もしくは通常行で始まり、2行目以降に通常行が連続し、最後にハードリターン行あるいは通常行で構成される単独の領域、あるいは、1行目が字下げ行で2行目がハードリターン行である2行で構成されている領域を段落として抽出する。この場合、行頭は2行目から最終行まで揃っており、行末は、先頭行から最終行一つ手前まで揃っているという条件を必ず満たしている必要がある。
〔手順S4-6〕 タイトルの認識:先頭から数文字が、予め指定してある章節番号の記述に適合し、文字行数が予め定めてあるしきい値:th8以下である場合、当該領域を単独タイトル領域として抽出する。
[手順S5] 複合領域の分割:上記の単独領域認識処理で同定されなかった領域は、プログラム、数式、リスト、段落など複数の論理オブジェクトで構成されている複合領域と考えることができる。そこで、上記手順1で抽出された文字行のタイポグラフィー情報に基づいて、当該領域を文字行方向に分割する。分割位置検出のためのルールを以下に示す。
{ルール1}ハードリターン行の直後で分割する。
{ルール2}字下げ行の直前で分割する。
{ルール3}センタリング行の直前で分割する。
{ルール4}センタリング行の直後で分割する。
[手順S6] 繰り返し処理:上記[手順S5]で生じた新しい領域に対して、[手順S4]を繰り返す。
[手順S7] 領域統合処理:上記[手順S5]で分割された領域が、[手順S4]で同定されなかった場合には、その分割は以下のルールに基づいて無効と判定され、領域の統合処理が行われる。
{ルール11}:単一行で構成される領域の下部が未確定の複数行である場合、その分割を無効として、領域を統合する。
{ルール12}:単一行で構成される領域の下部も同様であり、さらに両者の行頭が揃っている場合、その分割を無効として、領域を統合する。
{ルール13}:数式領域の上部が段落で、その最終行が通常行である場合、その分割を無効として、領域を統合する。
{ルール14}:数式領域の下部が段落で、その先頭行が通常行である場合、その分割を無効として、領域を統合する。
{ルール15}:数式領域の上部が単一行で構成される未確定領域である場合、その分割を無効として、領域を統合する。
{ルール16}:数式領域どうしが隣接している場合には、その間の分割を無効として、それらを統合する。
{ルール17}:リスト領域の下部に未確定領域があり、リスト内部の行と未確定領域の行で、行頭が揃っていれば、その分割を無効として、領域を統合する。
[手順S8] 繰り返し処理:上記[手順S7]の統合処理により生じた新たな領域に対して、[手順S4]と[手順S7]を繰り返す。
[手順S9] 領域間のすりあわせ処理:ここでは、以下の処理を繰り返し適用して、未確定領域を解消する。
隣接する確定領域間で行配置を考慮して、隣接行を移動させることで正確な領域を形成する。
確定領域に隣接する未確定領域を推定する。例えば、リスト領域の上(下)の未確定領域との間で、リスト領域の先頭行(非先頭行)の行頭と、未確定領域の先頭行(非先頭行)の行頭が揃っている場合には、未確定領域をリスト領域と認識する。
隣接する未確定領域間で類似性を考慮して、統合する。例えば、領域間で、行頭が揃っている場合には、それらを統合する。数式領域の上部の未確定領域を統合する。
[手順S10]未確定領域の認識:この時点で未確定とされている領域に対して、まず隣接しているものを統合し、すべてのものを段落と見なす。
このような、処理手続きは、さらに図4に示す以下の処理形態に変更してもよい。この場合システムは、「前処理モジュール41([手順S1]〜[手順S3]で構成)」
「領域認識モジュール42([手順S4]に相当)」
「領域分割モジュール43([手順S5]に相当)」
「領域統合モジュール44([手順S7]に相当)」
「領域変更モジュール45([手順S9]に相当)」
で構成され、それぞれ独立した処理モジュールとして設計されている。各モジュールの動作は、基本的には上述通りであるとする。また、以下のモジュール間では双方向に通信可能とする。
「領域認識モジュール42と領域分割モジュール43の間」
「領域認識モジュール42と領域統合モジュール44の間」
「領域統合モジュール44と領域変更モジュール45の間」
まず、レイアウトオブジェクトOBJは前処理モジュール41に入力され、その処理結果は、次いで領域認識モジュール42に供給される。
各レイアウトオブジェクトOBJを表すデータ構造は、各モジュールが共有するメモリ(以後共有メモリと呼ぶ)に格納されており、どのモジュールからも同一のデータを参照可能であるとする。各レイアウトオブジェクトOBJには処理状況を表すフラグが設定されており、領域認識モジュール42に入力当初には未処理、当該モジュールで認識されれば確定、認識できなかったときには保留(上記未確定と同じ)に相当する情報が設定される。他のモジュールは、未処理のフラグが設定されているレイアウトオブジェクトには処理できないこととする。
領域認識モジュール42で保留となったレイアウトオブジェクトOBJに対して領域分割モジュール43が機能することにより、部分領域に分割される。このとき、分割されたレイアウトオブジェクトOBJには分割済のフラグが設定され、そうでないものには未分割のフラグが設定される。このモジュールは、未分割のレイアウトオブジェクトのみ分割するようになっている。このように分割されたレイアウトオブジェクトは再び領域認識モジュール42で認識される。
この後、レイアウトオブジェクトは領域統合モジュール44に供給され、保留となっているものを対象として、内部のルールに基づいて統合処理が実施される。統合により新たな領域が生じたならば、その領域には未処理のフラグが設定され、再度領域認識が実施される。
このような領域間の相互作用により、隣接した領域間の性質が考慮されて、徐々に適切な論理オブジェクトが抽出されてくる。
ある程度、処理結果が得られてくると、レイアウトオブジェクトは領域変更モジュール45に供給され、隣接する領域間で情報交換をして(内容は[手順S9]と同様)、認識結果や内部の文字行などを変更して、その際、どの領域と統合可能かという情報も設定される。この情報に基づいて、領域統合モジュール44では新たな領域を生成し、これに未処理のフラグを設定し、当該領域を領域認識モジュール42に供給する。
このようにして、領域認識、統合、変更の各モジュール間で相互作用を行うことにより、処理結果を更新していき、最終的に正しい論理オブジェクトが得られるようにしている。
また、これまでに述べてきた処理は読み順が考慮されてないので、複数のレイアウトオブジェクトに跨る論理オブジェクトが正しく抽出されないのと、ページ単位の処理であるので、ページ間に跨る論理オブジェクトが正しく抽出されない。このような場合には、さらに読み順決定処理を行うモジュールと、ページ間編集をするモジュールとの協調により論理オブジェクトを抽出するようにしてもよい。
[文章および単語情報の抽出]ここでは、文章および単語情報の抽出処理を行う。文章および単語情報の抽出は、文字列上に存在する句点(“。”や“.”など)を探索し、その位置情報に基づいて文章を抽出したり、形態素解析のような言語処理を実施して行う。
尚、テキスト領域では、さらに、文字認識結果を用いて句点(“。”や“.”など)を探索し、その位置情報に基づいて文章を抽出してもよいし、また、テキスト全体に対して従来方式である形態素解析のような言語処理を実施して、単語情報を抽出してもよい。以上の処理により、イメージスキャナなどにより得られた読み取り対象の文書の2値画像から、テキスト領域として、「タイトル」、「ヘッダ」、「フッタ」、「キャプション」、「本文などの論理属性に応じた領域の幾何情報(ただし、この時点では各々の領域の属性は不明)」、「段落」、「リスト」、「文字行」、「文章(句点で区切られている)」、「単語」、「文字」などの詳細な構成要素の幾何情報およびコード情報」が得られる。
これらに対して、「領域」−「段落」−「文章」−「単語」−「文字」の階層構造を抽出し、階層間で参照およびアクセス可能としてもよい。
[読み順決定処理]この読み順決定処理も、本発明の特徴部分の一つであり、読み順決定処理部5により実施される。読み順決定処理にあたり、ここでは、上記レイアウト解析処理部1によるレイアウト解析、タイポグラフィック解析処理部3によるタイポグラフィック解析で得られた領域の順序付けについて説明する。ここで提案する方式は、<1> 関連のあるタイトル領域と、それにぶら下がっている本文領域群、および関連する図、写真、表をグループ化(リンク付け)する<2> 囲み記事や飾り記事を検出してその内部をグループ化するフィールドセパレータ、飾り線、囲み枠を検出し、それらで囲まれる領域を抽出し、その内部をグループ化するなどのグループ化処理を行うことで、関連の深いレイアウトオブジェクトを結び付けて、それらの上位概念である「個別話題(記事)」を同時に抽出すると云う点を大きな特徴としている。
そして、「話題間の順序付け」と「話題内部の順序付け」という階層的な順序付けを行うことにより、順序付与における多義性の解消を図ることを目指す。
本方式では、さらに、<i> 縦書き/横書き混在文書への順序付け<ii> 非テキスト領域の順序付け<iii> 複数のレイアウト変換を考慮した、順序の複数出力などを可能とする。
このような順序付けの結果、領域間では順序方向に向きをもつ一つのリンクが張られるようになり、グループという概念においては環状リンクが形成されるようになっている。最終的には、リンクを辿ると、それが読み順となることを目指す。
以下に、具体的に“読み順決定処理”の手順を示す。
[手順51]フィールドセパレータ、飾り線、囲み枠などに基づくグループ化:[手順51-1]:文書画像から、フィールドセパレータ(水平、垂直)、飾り線、囲み枠を抽出する。囲み枠は図12に示すように、2本〜4本の線分に囲まれているものとする。また、飾り線をフィールドセパレータとみなす。そして、各フィールドセパレータが他のフィールドセパレータ、囲み枠、非テキスト成分と接触するまで、その先端と終端をそれぞれ延長する。
[手順51-2]:囲み枠内部の領域を抽出する。
[手順51-3]: (1)水平フィールドセパレータと垂直フィールドセパレータで囲まれる領域、(2)フィールドセパレータと文書画像の縁の四辺で囲まれる領域(フィールドセパレータがない場合は、縁の四辺で囲まれた領域)を抽出する。これらの領域を話題エリアと呼び、以後、順序付けの際の基準とする。[手順52]領域統合に基づくグループ化:ここでは、以下のルールに基づいて、関連の深い複数の領域を一つに統合してグループを形成する。グループは、内部の複数の領域を外接する矩形として表現されていてもよい。
[領域統合処理1] タイポグラフィック解析による論理構造抽出処理で分割された段落、リスト構造などを、元のテキスト領域にまとめて、本文と内部の段落の集合という階層関係をつくる。
[領域統合処理2] テキスト領域において、文字行方向に重なりが大きく、文字行の幾何構造が類似している本文領域を統合する。
[領域統合処理3] 写真、図形、表などの非テキスト領域とそのキャプションをリンクして、まとめる。
[領域統合処理4] ヘッダ(フッタ)の属性を持ち、図10のように重なりをもつ場合、それらをまとめる。
これらの統合処理は、[手順51]で抽出した話題エリア内で実施されるものとする。また、統合時に、隣接する2者の間でリンクをはることにする。この時点のリンクは、文書全体の読み順という観点から見て正しくなくてもよい。このリンクが後段の処理で逐次変更され、最終的には読み順と等価となることを目指す。
[手順53]タイトル−本文関係に基づく話題の抽出:隣接および近接する“タイトルどうし”および“タイトルとサブタイトル”が以下の条件1と2の両方を満たしている場合、それらにリンクを張って統合する。
[条件1]タイトル間が作るエリア(図11参照)に他の領域が存在しない[条件2]タイトル間距離(図11参照)がしきい値th3以下である次いで、まとめられたタイトル群に対して、以下の条件を満たす上記グループ化された本文領域も一緒にまとめて、一つの“話題”とする。この話題は、それを構成するタイトルや本文グループに外接する矩形(以下、話題外接枠とも呼ぶ)として表現されてもよい。
[条件3]配置関係が良好である(図11のように、重なりがしきい値th4以上である)
[条件4]タイトルと本文間のスペース(図11参照)に他の領域が存在しないこの話題抽出も手順51で抽出された話題エリアを逸脱しないように実施されるものとする。この時点で抽出されているものは、正しい話題に相当してなくてもよい。
[手順54]話題の分類:以下のルールに基づいて、話題内部のタイトル位置に基づいて、話題を3つに分類する。以下では、文書文字列方向が「横(縦)書き」である」」場合について述べる。
{ルール21}非タイトル領域のすべてが、タイトル(複数あればそのうちのいずれか一つ)の下(左)側、あるいは右(下)側にある場合、その話題を、話題Aと定義する。
{ルール22}タイトル領域が存在し、ルール1が適用されない話題を、話題Bと定義する。
{ルール23}タイトル領域が存在しない話題を、話題Cと定義する。以下では、話題の性質も考慮した話題間の順序付けを行う。
[手順55] 話題間の順序付け:ここでは、話題の配置関係に関する以下のルールに基づいて、話題間の順序付けを行う。まず、原点と順序付けのための向きを決める。文書方向文字列が横(縦)書きの場合、原点を画像の左(右)上端とし、向きを右(左)方向にとる。この原点に従って話題間の順序付けを行う。以下は、横書き文書を対象とし場合の説明である。縦書き文書も同様に決定されるものとする。
[手順55-1]原点に最も近い、話題を抽出し、着目話題iとする。
[手順55-2]着目話題iに隣接する話題を順序付け候補として抽出する。
[手順55-3]候補のうち最近の話題jを抽出する。最近話題の決めかたは、例えば、順序付け対象となっている話題群と、前記話題iとその一つ前の話題(i−1)との、3者の接続関係を判定して選ぶようにしてもよい。
[手順55-4]話題jを着目話題と見なして、手順55-2から手順5-4を繰り返す。すべての話題の順序付けが終了すれば繰り返し処理を停止する。
[手順56] 話題の内部の順序付け:次に、話題の内部の順序付けを行うが、これは話題内部のグループ化された領域間の順序付けを行った後、次のようにしてグループ内の順序付けを行う。
[手順56-1]話題内部の主な文字列方向の決定:話題内部の主な文字列方向を、上記文書文字列方向決定方式と同様にして判別する。
[手順56-2] 水平・垂直分割によるグループ間の順序付け:グループ間の順序付けとして、例えば、水平・垂直分割(またはXY−Cut)と呼ばれるレイアウト解析のための従来方式を、以下のように拡張してもよい。上述の[手順56-1]で得られた文字列方向が、横(縦)書きであれば、最初に垂直(水平)方向に分割を実施する。この分割では、分割範囲を話題外接枠内部に限定し、グループ間の背景領域に着目して、グループに接したり、交差することなく、話題外接枠に接する垂直分割線を設定する。
例えば、図13に示す如きの記事例の場合であれば、垂直方向分割により、図13の結果が得られる。この図には、話題外接枠と分割線による区画が構成されていることが示されている。
垂直分割ができなくなるなった場合には、次に水平分割を行う。この水平分割では、分割範囲を外接枠と垂直分割枠で囲まれる最小の区画に限定し、垂直分割と同様に、背景領域に着目し、区画に接し、グループと交差しない水平分割線を設定することにより実施される。
これにより、図13の如き結果が得られる。このようにして、垂直分割と水平分割を順次、階層的に行うと、話題内部で、図13のような、外接枠と分割線で構成される最小の区画が形成される。この区画内に複数個のグループが存在すれば、再帰的に、順次、垂直分割と水平分割を繰り返して、すべての区画でグループが一つしか存在しなくなるまで、分割を繰り返す。
この方式では、分割結果を、並列関係(一回の特定方向の分割で得られる複数の区画は並列関係になる)と親子関係(区画内を再帰的に分割した場合、親子関係が生じる)で記述しておけば、そのデータ構造をたどれば読み順が得られる。
[手順56-3]グループ内の順序付け:グループ内の領域間の順序付けを[手順56-2]と同様に行う。しかし、領域間で重なりや入り組みが生じている場合には、上記水平・垂直分割による線形区分による順序付けでは、最終的な読み順を得ることはできない。そこで、この時点で、最小区画内に複数個の領域が存在していれば、その区画内で、上記手順5と同様にして順序付けを行う。この順序付け結果は、上記分割結果と同様のデータ構造で表現しておく。
[手順56-4]文字列方向を考慮した順序付け:縦書きの場合には読み順は、右上端から左下端の方向になされ、横書きの場合には、左上端から右下端の方向になされている。そこで、文書文字列方向が横(縦)書きの場合、上記順序付け結果において、縦(横)書きが連続して並列している箇所の順序を逆転しする。
[手順57]話題の抽出:ここでは、話題の抽出を行う。この処理は、互いに隣接する二つの話題に対して、以下の処理を行い、新たな話題を形成するという処理である。
[手順57-1]相手に接する領域を抽出し、二つの話題のうちどちらに属すべきか判定して、新しい話題を形成する。例えば、両方とも話題Aであり、順序的にも隣接している場合、後の順位の話題の方に、タイトルよりも若い順序を持つ非タイトル領域が存在する場合、それを先の順序の話題に移す。
[手順57-2]配置と順序の両方において互いに隣接し、先の順序の話題にタイトルがあり、他方にタイトルがない場合には両方を統合して、一つの話題とする。
[手順58]繰り返し処理:上記[手順54」から[手順57]までの処理を繰り返す。どの手順においても新しい処理結果が生じなければ、繰り返しを停止する。
[手順59]領域のリンク付け:これまでに抽出された、話題間のリンク、話題内部のグループ間の順序、グループ内の領域の順序をまとめて、最終的なすべての領域間の順序を表すリンクを設定する。領域間には順序方向に向きを持つ、一つのリンクのみが設定されている。
[手順60]順序の複数候補の抽出:ここでは、順序の複数候補の抽出を行う。上述の[手順59]までの順序付けにより、領域を一次元のシーケンスとして表現することができる。このとき、図形、写真などの非テキスト領域は、紙面上での出現位置に従って、テキスト領域と共に順序付けされている。しかし、ユーザによっては、非テキスト成分は文書の最後にまとめてあったり、それが出現した話題あるいは章節の最後にまとめてあったり、また参照されている本文の段落の直後に配置されている方が好ましい場合がある。
そこで、非テキスト成分に関して複数の順序付け結果を出力するようにしてもよい。例えば、読み順を表すリンクはテキスト成分間でのみ張られるようにして、非テキスト成分は、以下の手順に基づいて、その前に存在すべきテキスト成分から新たにリンクが張られるようにしてもよい。
[手順60-1]テキスト領域間のリンクの設定:まず、上記領域間のリンクのうちテキスト領域から非テキスト領域へ張られているリンクを抽出する。この箇所では、当該テキスト領域から、さらに、次に出現するテキストへのリンクを新たに設定するようにする。これにより、テキスト領域のみの間の順序が得られる。
[手順60-2]非テキスト領域のリンクの設定:読み順通りにリンクを辿っていき、非テキスト成分だけの順番に抽出し新たに非テキスト領域間でリンクを張る。これは、さらに各話題において行われるようにしてもよい。
[手順60-3]複数の読み順生成:上記[手順60-1]で得られたテキスト領域のみの順序集合において、最後尾のテキストから、上記の[手順60-2]で得られた非テキスト領域のみの順序集合の先頭へのリンクを張り、新しい読み順を生成する。さらには、これを話題内に限定して新たな読み順を生成してもよい。このようにして抽出された複数の読み順は、ユーザがシステムの外部から所望の読み順を指定できるようにして、ユーザに提供できるようにしてもよいし、複数の読み順をGUIを通して出力できるようになっていて、ユーザに選択させるようにしてもよい。
上記手続きの結果、「ページ(最上位階層)」−「話題」−「グループ」−「領域(最下位階層)」という階層構造を抽出することができ、話題間の順序、グループ間の順序、領域間の順序が同時に得られることになる。
尚、上記[手順52]〜[手順58]までの処理手続きは、さらに図14に示すシステムで実現することもできる。
この場合、システムは、グループ化処理するためのグループ化モジュール141([手順52]での処理に相当)、話題抽出処理するための話題抽出モジュール142([手順53]、[手順54]、[手順57]での処理に相当)、グループ間順序付け処理をするためのグループ間順序付けモジュール143([手順55]での処理に相当)、グループ内順序付けを行うためのグループ内順序付けモジュール144([手順56]での処理に相当)の各モジュールで構成され、それぞれ独立した処理モジュールとして設計される。各処理モジュールの動作はそれぞれに相当する上述の処理手順の通りとする。また、以下のモジュール間では図14のように通信可能な構成とする。
まず、レイアウトオブジェクトは、グループ化モジュールに供給される。レイアウトオブジェクトにはグループ化処理済であるか、未処理であるかを示すフラグが設定されており、他モジュールは未処理のものを処理できないようになっている。
グループ化されたレイアウトオブジェクトは、他のモジュールへそれぞれ供給される。話題抽出モジュール142では、グループの性質や配置に基づいて話題が形成される。グループ間順序付けモジュール143とグループ内順序付けモジュール144では、階層的な順序付けが並列に行われる。
各処理モジュールはまず、一時的な処理結果を出力するが、それが他の処理モジュールに再度供給され、そこでさらに処理が行われる。その結果、あるモジュールで処理結果が更新されるとそれに基づいて、さらに他のモジュールでも新たな処理が生じることになる。このようにモジュール間で協調することにより高精度な順序付けが可能となる。
読み順が分判明すれば、レイアウトオブジェクト間のつながりが分かるので、読み順情報を前記「タイポグラフィック解析による論理構造抽出システム」に供給すれば、異なるレイアウトオブジェクトにまたがる段落やリスト領域を正しく同定することができる。
このとき、論理構造抽出モジュールで、読み順に従う場合には処理誤りとなることが明確であれば、それを再度読み順決定システムに供給する。このように両システム間で相互作用を行うことで、正しい処理結果が得られるような処理制御が可能となる。
[モデル照合に基づく論理構造抽出]次に、モデル照合に基づく論理構造抽出処理について説明する。このモデル照合に基づく論理構造抽出処理も本発明の特徴部分である。
文書を構成する論理オブジェクトは、あらゆる文書において共通していることは少なく、運用形態や組織によって特定のものが定義されている場合が多い。そこで、ユーザが事前に種々の論理オブジェクトや論理構造をモデル(総称して文書モデルともいう)として定義しておき、それにしたがって入力文書が自動的に処理されるようになっていれば都合がよい。これは、文書のSGML記述で用いられるDTDと同様の考え方であり、自然なものである。以下では、モデルベースの論理構造抽出方法及び装置について述べる。
[モデル照合に基づく論理構造抽出システムの構成例]モデル照合に基づく論理構造抽出機能は、例えば、図5に示す如きのシステムにより実現されていてもよい。システムは、主に、上述したレイアウト解析、ヒューリスティクルールに基づく論理属性付与、タイポグラフィック解析、読み順決定で構成される入力文書処理部53、モデル照合部52、モデルデータベース51、状況推定部54で構成されている。さらにこれらのモジュール間では、双方向のデータ通信が可能となっている。
[構成要素]入力文書処理部53では、文書画像からレイアウト解析、タイポグラフィック解析、読み順決定がなされたレイアウトオブジェクトが抽出され、処理結果をモデル照合部52に供給する。
モデルデータベース51には、単一あるいは複数のモデルが格納されている。各モデルは文書毎に定義されていてもよいし、文書クラスごとに定義されていてもよい。各モデルの構成は、以下で詳細に説明するが、文書、ページ、領域などの複数の階層で、種々のモデルオブジェクトとよばれる要素により構成されている。
モデル照合部52では、モデルデータベース51から、モデルを一つずつ抜き出して、入力文書のレイアウトオブジェクトに適用し、照合処理としてモデル当て嵌めを行い、レイアウトオブジェクトとモデルオブジェクトレベルの間で入力−モデル間の対応付けを作成する。
状況推定部54では、モデル照合部52で得られた、入力−モデル間の対応結果を受け取り、「対応の度合い(ずれ、未対応の割合など」)
「対応の矛盾」
「モデルから見た対応の過不足」
などを推定し、その情報をモデル照合部52に供給する。
[システムの動作(モジュール間の相互作用)]次にシステムの動作を説明する。モデル照合部52と状況推定部54の間では、相互的に情報供給・交換が行なわれ、各々のモジュールでは、送られてきた情報に基づいて再度処理が繰り返される。例えば、状況推定部54で推定された対応の度合いがよければ、モデル照合を終了する。
これに反して、対応にずれが多いと推定されれば、モデル照合部52では、ずれの度合いに応じてもう一度初期対応づけを行うことでモデル照合をやり直す。また、状況推定部54が対応の矛盾個所を指摘すれば、モデル照合部52では、矛盾個所の近辺で再度対応づけをやり直し、対応づけ結果を状況推定部54に供給する。この他、モデルから見たときに対応に過不足が生じていれば、その情報とモデル照合結果を入力文書処理部53に供給する。
このようにシステムはモジュール間の相互作用を通じて、照合処理を制御して、徐々に正解が得られるように動作する。
上記モデル照合部52と状況推定部54の間の相互作用が収束して、モジュールにおいて処理結果に変更が生じなくなれば、対応の度合いを含んだ入力−モデル間の対応付け結果は、入力文書処理部53に供給される。もし、モデルにレイアウト構造情報が記載されていれば、それを用いて、そのモデルオブジェクトに対応づいているレイアウトオブジェクトに対して再度、レイアウト解析、タイポグラフィック解析、読み順決定を行う。
例えば、対応づいたモデルオブジェクトに字間、行間、行数などの情報が記載されていれば、その値を用いてレイアウトオブジェクトの統合、分離処理が実施される。
また、状況推定部54で、モデルの一つの要素に入力の複数のレイアウトオブジェクトが対応づいていると推定された場合には、レイアウト解析でその複数のレイアウトオブジェクトを統合したり、逆に、モデルの複数の要素に、入力の一つのレイアウトオブジェクトが対応づいていると推定された場合には、レイアウトオブジェクトを複数に分割する。このレイアウト解析結果は、再びモデル照合部52に送られ、同様にして新たな入力−モデル間の対応付けが得られる。このようにして、モジュール間で相互作用が進むと、徐々に正しいモデルあてはめ結果が得られるようになる。
モデルデータベース51に複数のモデルが格納されていれば、各モデルと入力とのモデル照合が順次行われ、状況推定部54で求められた入力−モデル間の対応付けの度合いが最もよいモデルと、その照合結果が得られ得る。
この照合結果は、対応付けの度合いに応じて、システムのGUI(グラフィカルユーザインタフェース)を通して、順次ユーザに提供されるようになっていてもよく、ユーザはそのなかに正解あるいはそれに最も近い結果を選択できるようになっていてもよい。
[モデルの構成]モデルは、例えば以下に示すモデルオブジェクトを構成要素として持つように定義されていてもよい。
----[文書]----当該文書の識別子:(以下のいずれ、もしくは全ての形式で表現)
“ファイル名”:(ユーザが設定した当該文書のファイル名、URL)
“ID番号”:(システム側が付与したり、ユーザが付与できる当該文書ファイルのID番号)
“メモリアドレスへのポインタ”:(当該文書が格納されているメモリ空間のアドレス)
*「文書属性」:(新聞、論文、明細書などの既知のクラスと、ユーザが定義するクラスを含む)
*「言語」:(日本語、英語など、単一言語、複数言語混在構成を表現できる)
*「論理構造」:(論理オブジェクトの階層構造、章節構造、順序構造、参照構造など、例えばSGMLで用いられるDTD:文書型定義などで記述されていてもよい)
*「コンテンツ」:(文書インスタンス、SGMLによる記述と同様)
*「ページ数」:(当該文書を構成するページの総数)
*「ページ集合へのポインタとその構造」:(当該文書を構成するページへのポインタと、その階層構造、順序構造、参照関係)
----[ページ]----*「上位概念である文書へのポインタ、リンク」:(以下のいずれ、もしくは全ての形式)
“ファイル名、URL”:“ID番号”:“メモリアドレスへのポインタ”:*「該当ページの識別子」:(以下のいずれ、もしくは全ての形式)
“ファイル名、URL”:“ID番号”:“メモリアドレスへのポインタ”:*「ページイメージへのポインタ、リンク」:(ファイル名、URL)
*「スキャナ分解能」:*「ページ方向」:(ページイメージの方向:正立、90度、135度、180度回転のいずれか)
*「ページ属性」:(表紙、目次、索引、奥付け、フロントページ、ミドルページ、ラストページなど)
*「出力対象の指定」:(当該ページの処理結果を出力するか否かに関する指定)
*「言語」:(日本語、英語など、単一言語、複数言語混在構成を表現できる)
*「ページを構成するレイアウトオブジェクトの種類」:(テキスト、写真*絵、図形、表、数式、フィールドセパレータなどの単独あるいは混在)
*「ページレイアウト情報」:“構造化文書あるいは非構造化文書の種別”:“カラム数”:“文字サイズ(最小/最大文字サイズ)”“組み形式”:(縦書き文書、横書き文書、縦書き/横書き混在文書)
*「論理オブジェクト数」:(当該ページを構成する領域の総数)
*「論理オブジェクトへのポインタと、その構造」:(当該ページを構成する論理オブジェクトへのポインタと、その順番、階層(木)構造、参照関係などの構造)
*「処理パラメータ」:(当該ページイメージに適用すべきあるいは適用された種々の処理で必要とされるパラメータ値)
“傾き補正”“ノイズ除去”“歪み補正”“罫線抽出*除去(フォームドロップアウト)”“スキャナ出力指定(カラー画像、多値画像、2値画像(しきい値))”“領域統合範囲(最小および最大統合範囲)”----[論理オブジェクト]----:*「ページの識別子」:(当該領域が属するページのファイル名、URL、ID番号、メモリアドレスへのポインタ)
*「当該論理オブジェクトの識別子」:(ファイル名、URL、ID番号、メモリアドレスへのポインタ)
*「出力対象の指定」:(当該領域の処理結果を出力するか否かの指定)
*「論理属性」:(タイトル、本文、ヘッダ、フッタ、キャプションなど、ユーザによる任意の属性を設定可能とする)
*「言語」:(日本語、英語など、単一言語あるいは複数言語混在の構成を表現できる)
*「キーワード」:(当該領域内に存在する単語)
*「キャプションの位置」:(非テキスト領域にとって、キャプションが上下左右のいずれに配置されているか指定できる)
*「文書クラス識別への寄与度」:(当該オブジェクトに対応づく入力オブジェクトが、それが属すべき文書クラスを識別する手がかりとなる度合いを示す)
*「ページクラス識別への寄与度」:(当該オブジェクトに対応づく入力オブジェクトが、それが属すべきページクラスを識別する手がかりとなる度合いを示す)
*「モデル照合への寄与度」:(当該オブジェクトはモデル照合時に要*不要のいずれであるか示すことができる)
*「密度分布」:(対象オブジェクトの内容物(テキストなら文字や行)が密または疎のいずれに配置されているかを示す)
*「レイアウトオブジェクト数」:(当該論理オブジェクトを構成するレイアウトオブジェクトの総数、一つの段落が二つのカラムにまたがっている場合の想定)
*「レイアウトオブジェクトへのポインタとその構造」:(当該ページを構成する論理オブジェクトへのポインタと、その順序構造)
----[レイアウトオブジェクト]----*「幾何(レイアウト)属性」:(テキスト、写真*絵、図形、表、囲み枠、セル、数式、罫線、フィールドセパレータなど、論理オブジェクトが複数のレイアウトオブジェクトで構成されている場合には)
*「幾何情報」:(位置座標、中心座標、サイズ(縦幅、横幅)など、これらは絶対的記述と相対的記述の両方を可能とする)
*「レイアウトオブジェクトの方向」:(正立、90度、135度、180度)
*「領域変動範囲」:(領域の変動範囲を、絶対的座標値、相対的座標値、文字数、文字行数などで指定する)
*「文字列情報」:“文字列方向”:(縦書き、横書き、不明もしくはどちらでもない)
“字間、行間”:“文字列総数”:“文字列の構造”:(当該領域を構成する文字列へのポインタと、その順序構造)
*「文字情報」:“文字総数”:“文字サイズ”:“文字フォント”:*「フォーマット情報」:(当該領域の出力形式の指定:例えば、RTF、PDF、SGML、HTML、XML、tif、gif、ベクトル化、数値化など)
*「統合パラメータ」:(当該オブジェクトに相当する入力オブジェクトのレイアウト解析処理における統合範囲を示すパラメータ)
----[ページイメージ]----*「ページへのポインタ」:(ファイル名、URL、ID番号、メモリアドレスへのポインタ)
*「実態が格納されているファイル名、URL」:*「ファイル形式」:(データ種別)
*「解像度」:*「画像種別」:(カラー、多値、2値)
*「幾何情報」:(位置座標、中心座標、大きさ(縦幅、横幅))
----[文字列]----*「レイアウトオブジェクトへのポインタ」:(ファイル名、URL、ID番号、メモリアドレスへのポインタ)
*「属性」:(テキスト、ルビ、リスト、数式など)
*「タイポグラフィー」:(字下げ、センタリング、ハードリターン、通常など)
*「幾何情報」:(位置座標、中心座標、大きさ(縦幅、横幅))
*「文字総数」:(文字行内に含まれる文字の総数)
*「文字集合へのポインタとその構造」:(当該文字行を構成する文字と、その順序構造)
----[文字]----*「文字列へのポインタ」:(ファイル名、URL、ID番号、メモリアドレスへのポインタ)
*「属性」:(文字、非文字)
*「幾何情報」:(位置座標、中心座標、大きさ(縦幅、横幅))
*「文字サイズ」:(ポイント数)
*「文字フォント」:*「文字強調」:(文字飾りなどを含む)
*「文字コード」:*「文字候補数」:(文字認識結果の候補文字数)
*「文字候補集合」:(文字認識結果の候補)
*「確信度」:(文字認識の精度など)
このように構成されるモデルは、「文書(上位)」−「ページ」−「領域(下位)」という階層的な構造を持っており、そのためフレーム、木構造、意味ネットワーク、レコード形式など現存する種々のデータ格納形式で構成されていてもよい。例えば、Cプログラム(C言語を用いたプログラム記述)では、これらのデータ群は構造体で記述することができる。
『モデルの作成』次に、モデルの作成について説明する。
上述したモデルは、例えば以下のようにして作成されてもよい。ユーザはまず処理対象となる印刷文書のページを順にイメージスキャナを用いて画像データ化し、文書画像として入力する。得られた文書画像は、上述した、レイアウト解析、ヒューリスティクを用いた論理属性付与、読み順決定などが適用され、レイアウトオブジェクトの幾何情報、論理属性、読み順、さらにテキスト領域では、カラム数、文字行、文字サイズ、字間、行間、レイアウト述語(寄せ、センタリング、揃え、インデント)、文字配置(密あるいはスパース)などの情報が、抽出される。論文のフロントページを例にとると図7(a)の如きであり、その解析結果の情報内容は図7(b)に示す如きである。この処理結果は、レイアウトオブジェクトごとに、例えばウィンドウ形式の画面でユーザに提示されてもよい。ユーザは、抽出されたレイアウトオブジェクトの幾何情報を、例えば、それに対応したウィンドウ形式のGUIで修正することができ、また未定義となっている箇所に必要な情報を生めるようになっていてもよい。
モデル照合は、抽出および定義された情報が詳細であれば、木目細かく、正確な照合処理が行われるになっていてもよい(未定義情報があれば照合処理は大雑把になってもよい)し、未定義情報があれば、それの設定を促すようなGUIが備わっていて、常に同じ状況で照合処理が行われるようになっていてもよい。モデルはシステムとユーザとの協調により作成されてもよいし、ユーザが手動で全て作成するようになっていてもよい。
[モデルの照合]入力文書のレイアウト解析結果に対する、任意のモデルを用いた照合処理は、例えば、文献「 Y.Ishitani: Model Matching Based on Association Graph for Form Image Understanding, Proc. ICDAR95, Vol.1, pp.287-292, 1995」に記載されている連合グラフ法を用いたグラフマッチングにより、以下のように行われてもよい。この場合、モデル照合部52は図6のように構成される。
[モデル照合部52の機能]モデル照合部52の機能を説明する。図6にその手順を示すように、モデル照合部52は、まず、モデルを構成する各要素に対応づく可能性のある、入力のレイアウトオブジェクトを初期対応候補として探索する(図6のS61、S62)。例えば、モデル要素の属性が“タイトル”である場合、前述したヒューリスティクに基づいた論理属性付与処理で、タイトルの属性を付与されたレイアウトオブジェクトを候補として抽出するようになっていてもよい。その他、出現順序、絶対座標など種々の情報に基づいた探索が考えられる。モデル要素の中には、それを特徴づける情報が記述されている場合があるので、それに基づいて、候補となっているレイアウトオブジェクトの中からふさわしいものを選択する。例えば、モデルにおいて論理属性が“ヘッダ”と定義されている要素に、さらに単語情報が文字コードとして定義されていれば、候補となっている入力のレイアウトオブジェクトを文字認識し、単語照合を行うことで候補を絞り込むようにしても良い。
このようにして得られた初期対応づけを連合グラフを用いて表現する。この連合グラフから、互いに矛盾しない対応の最大の組合せ(連合グラフにおける最大クリーク)を抽出することで、入力−モデル間の最良マッチングが得られる(図6のS63)。この連合グラフからノード数の大きい順に、極大クリークを抽出していけば可能なすべてのマッチング結果を対応の良さの順に得ることもできる。
入力−モデル間の最良マッチングのものが得られたならばそれを最良のモデルとして出力する(図6のS64)。
[文書構造認識]次に文書構造認識について、説明する。
タイポグラフィック解析による論理オブジェクト抽出、読み順決定、論理構造抽出処理がそれぞれ適用されると、ページ単位に処理結果として、種々のレイアウトオブジェクトで構成されるレイアウト構造と、種々の論理オブジェクトで構成される論理構造が得られる。これらは、フレーム、グラフ、意味ネットワーク、レコード形式、オブジェクト形式など種々のデータ形式で階層的に記述でき、階層間で互いに関連付けられてメモリや、ファイルに格納されてもよい。
例えば、複数ページで構成される論文は、フロントページ、ミドルページ、ラストページなどで構成されおり、フロントページには、論文タイトル、著者名、アブストラクト、ヘッダなどの書誌事項が、ミドルページには本文が、ラストページには、著者紹介、参考文献などの情報がそれぞれ記載されている。それぞれをページクラスと呼ことができる。この場合、予め定義されている文書モデルは、複数のページモデルで構成されており、これを用いて、スキャナから入力された複数のページ画像に対してページクラスを識別し、ページ単位のモデル照合を行う。
ページ照合結果は、ページクラスやページ番号などを手がかりに、ソートされ、順序付けされる。この後、複数ページにわたる本文の章節構造と、参照構造(あるページにおける本文から、同一ページまたは別ページにある非テキストや参考文献などへの参照関係)を、文献「土井他:“文書構造抽出技法の開発”、信学論D-II、vol.J76-D-II, No.9, pp.2042-2052,1993-9」の方式で抽出してもよい。
この他、例えば、非テキスト領域に対応したキャプションや、参考文献領域から番号部を抽出し、それをキーワードとみなして本文領域をキーワード検索し、ヒットしたものにリンクを張ることにより、参照関係を抽出してもよい。
このようにして、複数ページを統合した情報は、さらに新しいデータ構造やファイルに格納されるようになっていてもよい。また、文書全体を表す処理結果からそれを構成するページの処理結果に、ページの処理結果からそれを構成する領域へそれぞれリンクが張られていて、必要に応じて参照されるようになっていてもよい。
[2次情報(書誌情報、メタデータ)の抽出]多くの文書を処理、蓄積する場合には、書誌事項といったデータに関するデータすなわちメタデータを抽出しておけば、文書検索時に非常に役立つ。そこで、複数ページで構成される文書単位の処理結果から、例えば、現在標準化策定中である以下に示すDublin Coreなどのメタデータを自動的に抽出すれば都合良い。
“Dublin Coreの内容”:「タイトル」
「著者」
「主題およびキーワード」
「記述(アブストラクトやイメージデータの説明)」
「出版社」
「他の関与者」
「出版の日付」
「情報資源タイプ(ジャンル)」
「形式(情報資源の物理的な形式)」
「情報資源識別子(情報資源を一意に識別するための番号)」
「ソース(印刷物あるいはディジタルデータなどの出所)」
「言語」
「関係(他の情報しげんとの関連付け)」
「カバレッジ(地理的場所や時間的な内容に関する特性)」
「権利管理(著作権管理)」
これらの情報の自動抽出は、例えば、文書モデルにおいて定義されていてもよい。論文を例に考えた場合、各論文に記載されていない5、6、7、9、10、11、12、14、15などの情報は予めモデルに定義されているものをそのまま付与するようになっていてもよい。その他の情報は前述のモデルを用いて論文ごとに抽出可能である。抽出された情報は、あらかじめ用意してあるテンプレートに書き込むようになっていてもよい。
このテンプレートは例えば、上記メタデータをSGMLやHTMLで記述したもののにおいて、各論文ごとに異なるコンテンツ部分を空白にしたものであり、モデルで、そこに書き込むように指定されていてもよい。また、システムはモデル照合結果として新たなファイルやデータ構造を作成するが、それと同時にモデルで指定されたメタデータ情報を新しいファイルやデータ構造に書き込むようになっていてもよい。
以上、、本システムは、文書画像からその文書のレイアウトオブジェクトとレイアウト構造を抽出するレイアウト解析し、また、文書画像より得た文字の配置情報からタイポグラフィック情報を得てこれより論理オブジェクトを抽出すると共に、レイアウトオブジェクトと論理オブジェクトの読み順を決定して、この読み順に従って論理オブジェクト間の階層構造、参照構造、関係構造を論理構造として抽出するようにし、また、複数ページの文書構造を認識可能にする構成とするものであり、印刷文書に記載されている内容を抽出・構造化してコンピュータに自動入力できるようにするために、文書画像からレイアウトオブジェクトと構造を抽出する手段と、文書画像から抽出したテキストの領域からタイポグラフィーに基づいて段落、リスト、数式、プログラム、注釈等の論理オブジェクトを抽出する手段と、オブジェクト間の複数の可能な読み順を抽出する手段と、論理オブジェクトに対して予め定義されているモデルを適用して論理構造を抽出する手段とから構成して、文字、写真、図形、表などで構成される多様な複数頁構成の文書からでも一次情報二次情報を抽出し、多様な電子フォーマットに変換可能にすることにより、文書管理システムの自動構築や様々な計算機アプリケーションの有効活用を可能にするものである。
本システムでは、表示解析処理(タイポグラフィック処理)すなわち、レイアウト解析で抽出されたテキスト領域の文字行を一般行、字下げ行、センタリング行、ハードリターン行に分類し、その配置、連続性を考慮することにより、数式、プログラム、リスト、タイトル、段落などの部分領域を抽出する処理を行い、局所的な行分類と、大局的な部分領域抽出との間で相互作用を行わせることで、処理誤りを軽減し、高精度な処理結果が得られるようにした。さらには、紙面レイアウトにより生じた、複数の領域にまたがるテキスト配置の不連続も解消する。
また、テキスト領域群に対して、局所的なグループ化処理、話題/記事抽出処理を行い、それらを大域的に順序付けした後で、各グループや話題内で局所的に順序付けを行うことで、順序付けの曖昧さを削減しながら読み順を抽出する。このとき、話題抽出を含む局所的なグループ化処理と、大局的な順序付け処理との間で相互作用を行わせることで、処理誤りを削減して高精度な処理結果が得られるようにした。さらには、この方式によると、図形、写真などの非テキスト領域の順序付けと、縦書き/横書き混在文書の順序付けも実現できる。また、複数の読み順を出力させることで、多様なアプリケーションに対応することを可能とした。
さらには、本システムでは、ユーザによる容易な定義を可能とする視認性の高いGUIを用いて文書モデルを作成し、これを用いて論理構造抽出する枠組みを採用することにより、多様な文書から所望の情報を高精度に抽出することを可能とした。モデル照合では、レイアウト解析により得られる部分領域(レイアウトオブジェクト)を対象としている。本方式では、モデルで定義されている情報の詳細さを考慮でき、それに基づいてモデル照合を制御することができる。モデル照合結果の度合いの推定と、入力側の変動の推定などの状況推定を可能とし、これに基づいて照合処理を制御するが、このとき、レイアウト解析手段、モデル照合部手段、状況推定手段の間で相互作用を行わせることで、各モジュールの処理誤りを軽減し、モジュール間の協調により高精度な処理結果が得られるようにする。
本発明システムでは、多様な印刷文書全般に亙って、細かく解析し、その解析結果を元の文書画像データを含めて、保存することにより、SGMLや、HTML,CSVあるいはワードプロセッサアプリケーションのフォーマットなどに簡単に変換できる途を拓く。そして、これにより各種アプリケーションやデータベース、電子図書館などで文書情報を広く利用できるようにすると云った要求には応えることができるようになる。
特に、本発明は、一段組のビジネスレターから多段組・多記事の新聞まで多様な文書から高精度に、テキスト、写真・絵、図形(グラフ、図、化学式)、表(罫線あり、なし)、フィールドセパレータ、数式などの領域を抽出し、テキスト領域からは、カラム、タイトル、ヘッダ、フッタ、キャプション、本文などの領域を抽出し、本文からは段落、リスト、プログラム、文章、単語、文字を抽出し、各領域にはその論理属性、読み順、他の領域との関係(例えば、親子関係、参照関係など)を付与したいといった要求に応えることができ、文書クラスやページ属性なども含めて情報抽出し、抽出された情報は構造化することで、色々なアプリケーションソフトウェアへの入力・応用を可能とする。
尚、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体に格納して頒布することもできる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。