(57)【要約】【課題】  紙原稿中の文字をアウトライン化する際には、できるだけ高解像度で二値化した文字オブジェクト二値画像をアウトライン化した方が、高画質なアウトラインデータを生成できるが、一方で、高解像度二値画像をアウトライン化する際には、情報量が大きいためにアウトライン化処理時間がかかるため、以上の問題を鑑み、処理時間を短縮しつつ、高品位なアウトライン化画像を生成することを目的とする。【解決手段】  小さな文字は高解像度二値画像よりアウトライン化し、大きな文字は低解像度二値画像よりアウトライン化する。【選択図】        図１
2006253892.tif 000002
【特許請求の範囲】
【請求項１】
原稿画像の画素単位のデジタル信号を入力する入力ステップと、
入力デジタル信号より複数解像度の２値画像を生成するステップと、
２値画像を用いて像域分離するステップと、
像域分離し得られる文字オブジェクトについて文字サイズを検出するステップと、
文字サイズに応じて２値画像を選択し、アウトライン化するステップと、
を有することを特徴とする画像処理方法。
【請求項２】
前記アウトライン化ステップでは、
２値画像の輪郭画素を求める輪郭処理ステップと、
前記輪郭線抽出ステップにより抽出された輪郭線より水平方向と垂直方向の接点を推定する接点推定ステップと、
前記接点推定ステップにより推定された接点について、隣接する接点間の輪郭を所定の関数で近似する関数近似ステップと、
を有することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
原稿画像の画素単位のデジタル信号を入力する入力ステップと、
入力デジタル信号より複数解像度の２値画像を生成するステップと、
２値画像を用いて像域分離するステップと、
像域分離し得られる領域サイズに応じて２値画像を選択し、アウトライン化するステップと、
を有することを特徴とする画像処理方法。
【請求項４】
原稿画像の画素単位のデジタル信号を入力する入力ステップと、
像域分離するステップと、
像域分離し得られる文字オブジェクトについて文字サイズを検出するステップと、
文字サイズに応じて２値化する解像度を選択し、入力画像より２値画像を生成し、アウトライン化するステップと、
を有することを特徴とする画像処理方法。
【請求項５】
原稿画像の画素単位のデジタル信号を入力する入力ステップと、
像域分離するステップと、
像域分離より得られる属性領域のサイズに応じて２値化する解像度を選択し、入力画像より２値画像を生成し、アウトライン化するステップと、
を有することを特徴とする画像処理方法。
【請求項６】
原稿画像の画素単位のデジタル信号を入力する入力手段と、
入力デジタル信号より複数解像度の２値画像を生成する手段と、
２値画像を用いて像域分離する手段と、
像域分離し得られる文字オブジェクトについて文字サイズを検出する手段と、
文字サイズに応じて２値画像を選択し、アウトライン化する手段と、
を有することを特徴とする画像処理装置。
【請求項７】
前記アウトライン化手段では、
２値画像の輪郭画素を求める輪郭処理手段と、
前記輪郭線抽出手段により抽出された輪郭線より水平方向と垂直方向の接点を推定する接点推定手段と、
前記接点推定手段により推定された接点について、隣接する接点間の輪郭を所定の関数で近似する関数近似手段と、
を有することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
原稿画像の画素単位のデジタル信号を入力する入力手段と、
入力デジタル信号より複数解像度の２値画像を生成する手段と、
２値画像を用いて像域分離する手段と、
像域分離し得られる領域サイズに応じて２値画像を選択し、アウトライン化する手段と、
を有することを特徴とする画像処理装置。
【請求項９】
原稿画像の画素単位のデジタル信号を入力する入力手段と、
像域分離する手段と、
像域分離し得られる文字オブジェクトについて文字サイズを検出する手段と、
文字サイズに応じて２値化する解像度を選択し、入力画像より２値画像を生成し、アウトライン化する手段と、
を有することを特徴とする画像処理装置。
【請求項１０】
原稿画像の画素単位のデジタル信号を入力する入力手段と、
像域分離する手段と、
像域分離より得られる属性領域のサイズに応じて２値化する解像度を選択し、入力画像より２値画像を生成し、アウトライン化する手段と、
を有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナ等入力装置より読みこまれた紙文書におけるオブジェクトに対しアウトライン化を行う手法に係り、特にオブジェクトのアウトラインを直線、およびベジェ曲線により近似する手法に係る画像処理方法及び画像処理装置に関する。
【背景技術】
【０００２】
近年、環境問題が叫ばれる中、紙原稿の電子化、再利用技術としてベクトル化技術が注目されている。ベクトル化技術とは、電子ラスター画像をテキスト、写真、表等のオブジェクトに像域分離し、例えばテキストオブジェクトであればＯＣＲ、アウトラインフォント化するなど、抽出される各オブジェクトに対し、それぞれ適応的に処理を施すことで高圧縮・高画質を実現するデータハンドリング技術である。本ベクトル化技術を用いれば、スキャナより読み込まれた紙原稿は再度原稿内容を編集可能なベクトルデータを作成できる。ところでベクトル化するにあたっては、テキストオブジェクトは文字形状を直線及び曲線により表現されたアウトライン化することで非解像度依存の高品位なアウトラインフォントデータが生成可能である。また、表や線画等も同様にしてアウトライン化処理により、拡縮しても画質の損失のない編集に適した画像データとなる。
【０００３】
以上アウトライン化処理は元原稿を表現するベクトルデータを生成するために非常に有効な技術であるが、アウトライン化する際には、例えば文字オブジェクトであれば、二値の文字形状ラスター画像に対し、ベジェのような曲線で形状を近似する複雑な処理が実施される。よって形状解析処理を含むような高品位なアウトライン画像を生成処理を行うには、多くの処理時間がかかってしまう。
【特許文献１】特開平０５−１０８８２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、アウトライン化処理を実施する際には基となる二値のラスター画像の画像サイズが大きければ大きいほど細かな形状近似により細かな形状表現が得られるが、データ量が多いためためアウトライン化処理に非常に大きな時間を要する。一方で基となるラスター画像が小さければ小さいほど形状に対し粗雑な近似となるが、近似するための元のデータ量が小さいために処理時間が小さくなる。よって、従来処理では、画像中の文字全てを実時間でアウトライン化処理することを考えた場合、アウトライン化する元のラスター画像は粗雑となってもよいが処理時間があまりかからない一定の解像度を選択していた。
【０００５】
しかし、このような従来処理では文字サイズの小さいような細かな文字について文字を抽出する綺麗な二値画像を獲得することができず、結果として所望のアウトライン化処理が施されず、文字が潰れるなどの現象が生じていた。また、文字サイズの大きなアウトラインについては依然として処理時間が多くかかるという問題があった。
【０００６】
本発明は、以上の点に着目して成されたもので、処理時間を短縮しつつ、高品位なアウトライン化画像を生成する画像処理方法及び画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の問題を解決するため、本発明では以下の構成をとる。
【０００８】
像域分離処理によって得られる文字オブジェクトについては、文字認識を行い、抽出される文字サイズに応じてアウトライン化する２値画像を選択する。また、像域分離処理によって線画・表といった属性領域については、像域分離処理によって得られる領域の大きさに応じてアウトライン化する２値画像を選択する。
【０００９】
すなわち、本発明の技術内容は以下の構成を備えることにより前記課題を解決できた。
【００１０】
（１）原稿画像の画素単位のデジタル信号を入力する入力ステップと、入力デジタル信号より複数解像度の２値画像を生成するステップと、２値画像を用いて像域分離するステップと、像域分離し得られる文字オブジェクトについて文字サイズを検出するステップと、文字サイズに応じて２値画像を選択し、アウトライン化するステップと、を有することを特徴とする画像処理方法。
【発明の効果】
【００１１】
本発明によれば、文字オブジェクトについては、文字認識より抽出される文字サイズに応じてアウトライン化する元の二値画像の解像度を選択するように構成したことで、小さな文字については、高解像度の二値画像を得ることで、より細かな曲線近似が行え、結果として小さな文字について高品位なアウトラインデータを獲得できる。一方で、大きな文字については低解像度の二値画像に対しアウトライン化することで、無駄な細かい部位について詳細なアウトライン化処理を省略し、処理時間を短縮することができる。
【００１２】
また、線画についても同様にして、像域分離処理により線画単体の大きさが把握でき線画の各大きさに応じてアウトライン化する元の２値画像を選択し、画像の損失を少なくしつつ、処理時間を短縮できる。
【発明を実施するための最良の形態】
【００１３】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【実施例１】
【００１４】
図１は本実施形態による文書処理装置の装置概観を示す図である。
【００１５】
図１において、１０１はコンピュータ装置であり、添付のフローチャートを参照して以下で説明する処理を実現するためのプログラムを含む、文書の電子化処理プログラムを実行する。コンピュータ装置１０１は、ユーザに状況や画像を表示するためのディスプレイ装置１０２、およびユーザの操作を受け付けるキーボードやマウス等のポインティングデバイスを含んで構成される入力装置１０３が付随する。ディスプレイ１０２表示デバイスとしては、ＣＲＴやＬＣＤ等が用いられる。１０４はスキャナ装置であり、文書画像を光学的に読み取り、電子化し、得られた画像データをコンピュータ装置１０１に送る。本実施形態では、カラースキャナを用いる。
【００１６】
図２は本実施形態による文書処理装置の構成を示すブロック図である。
【００１７】
図１において、２０１はＣＰＵであり、ＲＯＭ２０２或いはＲＡＭ２０３に格納された制御プログラムを実行することにより、後述の電子化処理を含む各種機能を実現する。２０２はＲＯＭであり、ＣＰＵ２０１によって実行される各種制御プログラムやデータが格納される。２０３はＲＡＭであり、ＣＰＵ２０１によって実行される各種制御プログラムを格納したり、ＣＰＵ２０１が各種処理を実行するのに必要な作業領域を提供する。２０４は外部記憶装置であり、添付のフローチャートを参照して説明する処理をＣＰＵ１０１によって実現するための制御プログラムや、画像入力装置１０４を読み取って得られた文書画像データ等を格納する。２０５はコンピュータバスであり、上述の各構成を接続する。
【００１８】
図３は本実施形態の文書処理装置による文書の電子化処理の概要を示す図である。
【００１９】
本実施形態による電子化処理の流れは、まず入力部３００において電子化の対象とするカラー文書をスキャナ１０４を用いて読み込み、文書を画像データとして外部記憶装置２０４に格納する。ステップ３０１では、入力原稿より後段の処理で用いる２値画像を生成する。次に、領域分割部３０２では、入力画像より文字、図、表、枠、線などの要素を抽出し、各領域に分割する。ここで、領域分割処理により抽出される文字領域については、文字認識を行いそのテキストコードを抽出する（ステップ３０３）。
【００２０】
ステップ３０４では、領域分割された画像データに対し、ベクトル化処理を行う。ベクトル化処理では、文字・表・線画部の各領域について、ステップ３０１で作成した２値画像より最適な２値画像を選択し（ステップ３０５）、アウトラインベクトルデータへ変換する（ステップ３０６）。アウトライン化処理３０６により変換された画像データは、各オブジェクトの輪郭線が滑らかな曲線により表現される高画質で、解像度に依存しない、かつ編集容易なベクトルデータへ変換される。一方他の図、写真画、背景については、例えば背景についてはＪＰＥＧ圧縮など、各々に適した形態で保持、圧縮される（ステップ３０８）。電子化文書作成部３０９は、分割された各要素毎の属性に基づいて文字認識データや表構造データを用い、各々変換された画像情報を用いて、電子化文書を作成する。出力部３１０は生成された電子化文書を外部記憶装置２０４に格納する。
【００２１】
なお、出力部３１０における出力の形態は外部記憶装置２０４への格納に限られるものではなく、ディスプレイ１０２へ表示出力したり、不図示のネットワークインターフェースを介してネットワーク上の他の装置へ出力したり、不図示のプリンタへ出力したりすることも可能である。
【００２２】
［２値画像生成］
二値画像生成部３０１では入力画像より複数の解像度の二値画像を生成する。入力画像を複数の解像度に変換し、各解像度画像に対して２値化処理を行う。ここでいう複数の解像度とは、後段の像域分離処理用の２値画像、文字認識用の２値画像、またアウトライン化処理で使用される細かい文字用の解像度２値画像、大きい文字用の解像度２値画像等を生成する。また、この時像域分離用に最適な２値画像、文字認識に適した２値画像を同時に生成してもよい。
【００２３】
［像域分離処理］
像域分離処理３０２とは、図４の右に示すステップ１２０で読み取った一頁のイメージデータを左に示す様に、各オブジェクト毎の塊として認識し、該ブロック各々を文字／図画／写真／線／表等の属性に判定し、異なる属性を持つ領域に分割する処理である。
【００２４】
像域分離処理３０２では、まず入力文書画像データより像域分離に最適な解像度の２値画像を抽出する。尚、ここでいう最適な解像度とは、単に解像度が高すぎると処理が重くなるためあまり処理に負荷をかけない程度の解像度という意味であり、例えば３００ｄｐｉ以内であればそのままの解像度、３００ｄｐｉ以上であれば３００ｄｐｉの２値画像を生成するという手法であってもよい。また、予め選択された次に抽出２値画像より、黒画素の輪郭線追跡をおこなって黒画素輪郭で囲まれる画素の塊を抽出する。面積の大きい黒画素の塊については、内部にある白画素に対しても輪郭線追跡をおこない白画素の塊を抽出、さらに一定面積以上の白画素の塊の内部からは再帰的に黒画素の塊を抽出する。
【００２５】
このようにして得られた黒画素の塊を、大きさおよび形状で分類し、異なる属性を持つ領域へ分類していく。たとえば、縦横比が１に近く、大きさが一定の範囲のものを文字相当の画素塊とし、さらに近接する文字が整列良くグループ化可能な部分を文字領域、扁平な画素塊を線領域、一定大きさ以上でかつ四角系の白画素塊を整列よく内包する黒画素塊の占める範囲を表領域、不定形の画素塊が散在している領域を写真領域、それ以外の任意形状の画素塊を図画領域、などとする。
【００２６】
像域分離処理で得られた各ブロックに対するブロック情報を図５に示す。尚、ここで、各領域のサイズが検出できる。
【００２７】
［文字認識］
文字認識処理３０５では、文字単位で切り出された画像に対し、パターンマッチの一手法を用いて認識を行い、対応する文字コードを得る。この認識処理は、文字画像から得られる特徴を数十次元の数値列に変換した観測特徴ベクトルと、あらかじめ字種毎に求められている辞書特徴ベクトルと比較し、最も距離の近い字種を認識結果とする処理である。特徴ベクトルの抽出には種々の公知手法があり、たとえば、文字をメッシュ状に分割し、各メッシュ内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴とする方法がある。
【００２８】
像域分離処理３０１で抽出された文字領域に対して文字認識を行う場合は、まず該当領域に対し横書き、縦書きの判定をおこない、各々対応する方向に行を切り出し、その後文字を切り出して文字画像を得る。横書き、縦書きの判定は、該当領域内で画素値に対する水平／垂直の射影を取り、水平射影の分散が大きい場合は横書き領域、垂直射影の分散が大きい場合は縦書き領域と判断すればよい。文字列および文字への分解は、横書きならば水平方向の射影を利用して行を切り出し、さらに切り出された行に対する垂直方向の射影から、文字を切り出すことでおこなう。縦書きの文字領域に対しては、水平と垂直を逆にすればよい。尚この時文字を抽出することにより文字のサイズが検出出来る。
【００２９】
［２値画像選択］
ステップ３０５では、ステップ３０１で生成した複数の２値画像より、各オブジェクト領域に対して、ステップ３０６のアウトライン化処理に対し最適な二値画像を選択する。ここで、最適な２値画像とはステップ３０６アウトライン化処理において処理結果の画質、処理速度といったアウトライン化処理能力に依存した設定を行うものであり、処理能力に応じて予め設計者が設定しておく。
【００３０】
文字オブジェクトであれば、ステップ３０５の文字認識処理により文字オブジェクト内の各文字サイズが抽出されているため、オブジェクトの平均文字サイズを求め、平均文字サイズに応じて最適な２値画像を選択する。例えば平均文字サイズが１０ｐｔであれば６００ｄｐｉの二値画像を選出する、というように求められる平均文字サイズに応じてステップ３０２で生成された複数の二値画像から最適な二値画像が選出される。尚、ステップ３０６のアウトライン化処理をオブジェクト領域毎ではなく、１文字領域毎に行う場合は、文字毎に文字サイズに応じて最適な二値画像が選出してもよい。
【００３１】
また、線画、表については、各オブジェクト領域の大きさ、また領域内部の黒画素占有率に応じて最適な２値画像を選択する。
【００３２】
［アウトライン生成部］
アウトライン作成処理３０６では、像域分離処理に得られる文字について、輪郭形状を直線及び滑らかな曲線により表現されるアウトラインベクトルデータへ変換する。
【００３３】
図６は、像域分離処理により得られる１文字ブロックについてアウトライン化処理３０６を行うフローチャートを示したものである。尚、本フローチャートは、像域分離処理により得られるブロックに限定されるものではなく、文字認識より抽出される１文字領域ごとに行ってもよい。
【００３４】
ステップ６０１では、ステップ３０５で選出された２値のラスター画像データを、水平ベクトルと垂直ベクトルからなるアウトラインデータ（以後、粗輪郭データと呼ぶ）へ変換する。入力されるラスター画像データより抽出される粗輪郭データは一つだけとは限らず、殆どの場合、複数の粗輪郭データが抽出される。抽出された粗輪郭データに対し、一粗輪郭データごとに直線および曲線により表現されるアウトラインベクトルデータへ変換する（ステップ６０２）。粗輪郭データとアウトラインベクトルデータの一例をそれぞれ図２４（ａ），（ｂ）に示す。
【００３５】
以下各ステップについて詳説する。
【００３６】
ステップ６０１では、ラスター画像データを粗輪郭データへ変換する。ここで扱うラスター画像データの１画素を図７に示す。図７で示すように、ラスター画像データにおける１画素は、４つの頂点をもち、垂直ベクトルと水平ベクトルより構成される正方形として扱う。１画素を４つの頂点をもつ正方形として扱い、その集合であるラスター画像データのアウトラインを抽出すると、得られるアウトラインデータは、水平ベクトルと垂直ベクトルからなる粗輪郭データが抽出される。このような粗輪郭データの抽出方法は、種々提案されており、特に特許文献１で開示されている粗輪郭抽出方法を用いれば、ラスター画像一面より効率良くかつ高速に祖輪郭データを抽出することが可能である。抽出された輪郭データは、図８に示すような、水平ベクトル、垂直ベクトルが交互に並ぶ構成となる粗輪郭データとなる。粗輪郭データの抽出では、このような水平ベクトルと垂直ベクトルが交互に並ぶ構成となる輪郭データを抽出し、次ステップへ進む。
【００３７】
ステップ６０２では、ステップ６０１で得られた粗輪郭データを直線および曲線からなるアウトラインベクトルデータへ変換する。粗輪郭データよりアウトラインベクトルデータへ変換するフローチャートを図９に示す。粗輪郭データに対し、ノイズ除去を行い（ステップ９０１）、ノイズ除去された粗輪郭上の線分より主接線線分を抽出し（ステップ９０２）、準接線線分を抽出する（ステップ９０３）。主接線線分、準接線線分については後述する。
【００３８】
ステップ９０２、９０３により抽出される接線線分よりアンカーポイントを抽出し（ステップ９０４）、抽出されたアンカーポイント間が数個の線分により構成されるグループを２次もしくは３次ベジェ曲線、及び直線をあてはめる（ステップ９０５）。次に残りの線分についてベジェ曲線近似を行い、３次もしくは２次のベジェ曲線により置き換える（ステップ９０６）。最後にステップ９０７では、直線、および曲線より構成されるアウトラインベクトルデータに対し、補正処理を行う。
【００３９】
以下図９のフローチャートの各ステップについて詳説する。
【００４０】
［ノイズ除去］
先ずノイズ除去９０１では、粗輪郭データよりノイズ除去を行う。除去するノイズ例を図１０にあげる。尚、図中’１’は、ラスター画像における１画素大のサイズを表し、１画素サイズの凹凸を除去することを目的とする。ノイズ除去では、図１０（ａ），（ｂ）に示す網点ノイズ、図１０（ｃ）に示す角欠けノイズを除去するが、図１１に示すようにノイズに似た粗輪郭データも存在する。特に本手法では、小さな文字から大きな文字までを扱うことを前提としているので、図１１に示す形状のものを全て除去しては画質の劣化を招く。よって、ノイズ解析が必要であり、例えば図１０（ａ），（ｂ），（ｃ）におけるノイズはそれぞれ下記条件（ａ），（ｂ），（ｃ）を満たす場合に除去する。
【００４１】
2006253892.tif 000003
【００４２】
尚、（ｂ）の除去手法としては、
2006253892.tif 000004
を比べ小さい方側を凸ノイズの上辺としてノイズを除去する。ところで、ノイズを判断するための各パラメータα１，Θ１，Θ２，Θ３は一定値でもよいが、小さなオブジェクトから大きなオブジェクトを扱う上で、全てのオブジェクトを一律に評価することは困難であるので、より詳細に行うためには、粗輪郭データそれぞれのオブジェクトサイズに応じて変更してもよい。オブジェクトサイズ情報即ち文字サイズはステップ３０５で、またアウトラインサイズはステップ３０３で既に抽出されているので、それを用いて簡単に閾値Θ１，Θ２，Θ３を導出することが可能である。
【００４３】
以上でノイズ除去が行えるが、元々粗輪郭抽出前に２値のラスター画像データにおいてノイズ除去することも可能であり、ラスター画像データでノイズ除去してあれば、このステップを行わなくてもよい。しかし、ラスター画像上でノイズを除去する場合は、画像一面を処理する必要があり、かつ前述した条件を満たす除去を行う場合は非常に処理が重くなってしまう。粗輪郭データでは、扱うデータ量も少なくて済むので、非常に効率的である。
【００４４】
［接線線分抽出］
次にステップ９０１、９０２では、ノイズ除去された粗輪郭データより、オブジェクトに対する接線線分を抽出する。接線線分とは、粗輪郭データの線分中、ある線分がそのままオブジェクト形状の接線成分となる線分である。図１２に粗輪郭線より接線線分を抽出した例を示す。図１２（ａ）が元の粗輪郭データで図１２（ｂ）の太線部が粗輪郭（ａ）より抽出された接線線分である。ここで、接線線分は以下の〔１〕〜〔４〕条件を満たす。
【００４５】
2006253892.tif 000005
【００４６】
以上の条件を満たす線分として接線線分が抽出される。尚、条件に使用されるパラメータθ１，θ２，θ３，θ４，θ５は、解像度に依存する一定値でも構わないが、ステップ３０５で抽出される文字サイズ、ステップ３０３で検出される領域サイズ、ステップ６０１で検出されるアウトラインサイズ等のオブジェクトサイズにより、適応的に変更してもよい。また、各オブジェクトサイズに応じて〔１〕〜〔４〕の条件のうち適用する条件を選択してもよい。オブジェクトのサイズにより条件を変更することで、文字サイズ、輪郭サイズに応じた最適な近似処理が可能である。
【００４７】
以降のステップ９０４〜９０６において粗輪郭データより直線と曲線により表現されるアウトラインデータへ変換する。具体的に曲線は図１３（ａ）に示す３次ベジェ曲線と図１３（ｂ）に示す２次ベジェ曲線を使用する。図１３（ｃ）は直線を示す。尚、図１３（ａ）の３次ベジェ曲線、図１３（ｂ）の２次ベジェ曲線は以下のそれぞれ［数式１］、［数式２］により表現される。
【００４８】
［数式１］
Ｂ（ｔ）＝（１−ｔ）３・Ｑ１＋３（１−ｔ）２・ｔ・Ｑ２＋３（１−ｔ）・ｔ２・Ｑ３＋ｔ３・Ｑ４
【００４９】
［数式２］
Ｂ（ｔ）＝（１−ｔ）２・Ｑ１’＋２（１−ｔ）・ｔ・Ｑ２’＋ｔ２・Ｑ３’
【００５０】
ここで、点Ｑ１，Ｑ４，Ｑ１’，Ｑ３’，Ｑ１’’，Ｑ２’’をアンカーポイントとし、曲線を制御しているＱ２，Ｑ３，Ｑ２’をコントロールポイントと呼ぶ。ここで、コントロールポイントとアンカーポイントを結ぶ直線、例えば直線Ｑ１Ｑ２は、アンカーポイントＱ１において曲線と接する。
【００５１】
アンカーポイント間にコントロールポイントが無ければ図１３（ｃ）のように直線となる。
【００５２】
以下９０４〜９０６の各ステップについて詳説する。
【００５３】
［アンカーポイント抽出］
まず、ステップ９０４では、ステップ９０２で抽出された接線線分上に新たな点を抽出し、それをアンカーポイントとする。アンカーポイントは接線線分の端２つに対しそれぞれ抽出される。よって、一つの接線線分に対し２つのアンカーポイントが抽出されるが、該２つのアンカーポイントが一致した場合には一つのアンカーポイントのみ抽出されることになる。２つのアンカーポイントが抽出される場合は、アンカーポイントに挟まれた部位は自動的にオブジェクト上の直線となる。
【００５４】
接線線分上の一つの端点に対するアンカーポイント抽出方法の一例について図１４を用いて説明する。図１４（ａ），（ｂ），（ｃ）においてＶ２が接線線分を構成するベクトルとし、ベクトルＶ１側の端点に対するアンカーポイントの抽出方法について述べる。まず、図１４（ａ）のように、隣接するベクトルＨ１が接線線分であれば、端点をアンカーポイントとする。隣接する線分が接線線分でない場合は、図１４（ｂ）のようにＶ２ベクトル上端点よりａ｜Ｖ１｜となる点をアンカーポイントとする。もし図１４（ｃ）のように｜Ｖ２｜／２＜ａ｜Ｖ１｜となる場合は、Ｖ２ベクトルの中心点をアンカーポイントとする。
【００５５】
［一次近似、二次近似］
次にステップ９０５、９０６では、９０４で抽出されたアンカーポイント間をベジェ関数で曲線近似する。尚、ステップ９０４で自動的に直線属性となった線分に対しては曲線近似処理を行わない。曲線近似処理は具体的に２つの種類の近似処理からなる。まず、アンカーポイント間が数個（＜ｎ１）の線分から構成されるようなオブジェクト上の細かい部位を纏めて一つの曲線で置き換える一次近似処理（ステップ９０５）と、数個より多くの線分から構成される線分に対して１つもしくは複数の曲線を用いて近似する二次近似処理（ステップ９０６）である。
【００５６】
前者の手法は線分の組み合わせに対し一つの曲線を当てはめる処理であるが、後者の手法を用いても数個の線分に対して近似を行うことも可能なため、後者の手法のみを用いてアンカーポイント間を曲線近似処理してもよい。しかし、前者の手法は、後者の手法に比べパフォーマンスの点で優れており、また少ない線分の組み合わせに対し確実に少ないポイント数で近似できるため、細かい部位については一次近似を用いることが望ましい。
【００５７】
まず、一次近似（ステップ９０５）の一例について図１５を用いて説明する。
【００５８】
図１５の点Ａ１、Ａ２がそれぞれステップ９０４で抽出されたアンカーポイントとする。アンカーポイント間の線分Ｌ０，Ｌ１，Ｌ２に対して、Ｃ１，Ｃ２といったコントロールポイントを設けることで曲線を近似する。尚、Ｃ１、Ｃ２の値はＬ０，Ｌ２との関係から求められる。また、アンカーポイント間が数個の線分により構成され、両端のアンカーポイントに対する接線成分が直交している場合は、二次ベジェ曲線で置き換える。尚、数個の線分がオブジェクトの大きさに対し、十分大きければ、３次ベジェを用いてより精密に置き換えてもよい。
【００５９】
ここで、一次近似処理はパターンに応じた置き換えであり、ステップ９０４のアンカーポイントの抽出もパターンに応じた処理であるため、これら二つのステップをまとめて行ってもよい。
【００６０】
次に二次近似処理（ステップ９０６）について説明する。
【００６１】
まず、二次近似処理で使用する曲線を図１８に示す。図１８に示すように、曲線は３次ベジェ曲線であり、アンカーポイントＰ０，Ｐ３とを結ぶ直線と、コントロールポイントＰ１，Ｐ２とを結ぶ直線とは平行になるよう構成されている。このような平行制限を設けると、３次ベジェ曲線Ｌ０上の点で直線Ｐ０Ｐ３より最も離れた点Ｐｆとの距離をＤｆ、直線Ｐ０Ｐ３とコントロールポイントＰ１，Ｐ２との距離をＤｃとすると、
［数式３］
Ｄｃ＝４／３Ｄｆ
の関係が成り立つ。尚、平行制限を用いたベジェ曲線を使用することで近似処理を簡易に行うことが可能となる。
【００６２】
以下、処理概要について説明する。二次近似処理では、まず区分曲線に分割し、各区分曲線に対し、曲線近似処理を行う。区分曲線とは、図１８に示すように曲線が１つの弧を描く、即ち３次曲線において２つのアンカーポイントによる直線に対し、２つのコントロールポイントが同方向に構成されているような曲線である。区分曲線への分割では、まず、図１６（ｂ）のように複数の線分の組み合わせより、パターンマッチング的に方向ベクトルを抽出する。求められた方向ベクトルの変化を追っていき、方向ベクトル変化の正負が変化した点が分割点である。尚、分割点は曲線近似におけるアンカーポイントとなり、アンカーポイントにおける接線ベクトルは、方向ベクトルがそのままなる。図１６（ａ）に区分曲線へ分割した例を示す。
【００６３】
次に区分曲線に対する曲線近似処理について図１７を用いて説明する。
【００６４】
図１７は一つの区分曲線を示しており、区分曲線上の線分郡よりＮ個の点を抽出したものをそれぞれｐ１，ｐ２，…ｐＮとする。このとき、区分曲線の始点はｐ１、終点はｐＮはアンカーポイントである。尚、各アンカーポイントにおける接線線分は、ステップ９０６、もしくは区分曲線への分割におけるアンカーポイント抽出時にそれぞれ抽出されている。ここで、アンカーポイントｐ１、ｐＮを結ぶ線分ｐ１ｐＮより最も距離の離れている曲線上の点ｐｌを求める。二次近似処理においては、関数近似処理を簡易に行うため、コントロールポイントを結ぶ線分Ｃ１Ｃ２が線分ｐ１ｐＮに対し平行となるように近似する。よって、点Ｐｆと線分Ｐ１ＰＮとの距離をＬとすると点Ｃ１、Ｃ２より線分ｐ１ｐＮへの距離が（４／３）＊ＬとなるようにＣ１、Ｃ２を求める。
【００６５】
例えば、Ｐｆの座標値を（ｐｆｘ，ｐｆｙ）であった場合、ｐ１，ｐＮの各座標値（ｐ１ｘ，ｐ１ｙ），（ｐＮｘ，ｐＮｙ）とｐ１における接線ベクトル
2006253892.tif 000006
を用いると、Ｃ１の座標値（Ｃ１ｘ，Ｃ１ｙ）は
［数式４］
2006253892.tif 000007
となり、Ｐｆの座標値より一意に決定することができる。Ｃ２についても同様に求めることが可能である。
【００６６】
以上の区分曲線への曲線近似処理を全てのオブジェクト上全ての区分曲線へ行うことで、オブジェクトのアウトラインは、直線とベジェ曲線により構成されるアウトラインデータへ変換される。
【００６７】
［補正処理］
以上、ステップ９０１〜９０６により、オブジェクトの外形を直線及び曲線により構成されたアウトラインベクトルデータへ変換されるが、本手法では水平ベクトルと垂直ベクトルのみを使用した粗輪郭データから変換するため、また処理を効率化して行っているために、一連のステップで作成されたアウトラインベクトルデータは一種の癖をもつベクトルデータとなる。ステップ９０７では、アウトラインベクトルデータを解析し、これらの癖を補正する。
【００６８】
図１９は、具体的にアウトラインベクトルデータの癖を表したものである。水平ベクトルと垂直ベクトルのみの粗輪郭データを用いて解析し、変換しているために、原図形における斜め直線は、曲線により表現されている。これらについてはアンカーポイント間を結ぶ直線とコントロールポイントとの距離を調べ、斜め直線か判別する。斜め直線と判断された場合は、アンカーポイント間のコントロールポイントを排除し斜め直線に置き換える。
【００６９】
［アプリデータへの変換処理］
以上の通り、一頁分のイメージデータを像域分離処理（ステップ３０３）し、ベクトル化処理（ステップ３０４）した結果は図２０に示す様な中間データ形式のファイルとして変換されているが、このようなデータ形式はドキュメント・アナリシス・アウトプット・フォーマット（ＤＡＯＦ）と呼ばれる。図２０はＤＡＯＦのデータ構造を示す図である。
【００７０】
図２０において、７９１はＨｅａｄｅｒであり、処理対象の文書画像データに関する情報が保持される。
【００７１】
レイアウト記述データ部７９２では、文書画像データ中のＴＥＸＴ（文字）、ＴＩＴＬＥ（タイトル）、ＣＡＰＴＩＯＮ（キャプション）、ＬＩＮＥＡＲＴ（線画）、ＥＰＩＣＴＵＲＥ（自然画）、ＦＲＡＭＥ（枠）、ＴＡＢＬＥ（表）等の属性毎に認識された各ブロックの属性情報とその矩形アドレス情報を保持する。文字認識記述データ部７９３では、ＴＥＸＴ、ＴＩＴＬＥ、ＣＡＰＴＩＯＮ等のＴＥＸＴブロックを文字認識して得られる文字認識結果を保持する。表記述データ部７９４では、ＴＡＢＬＥブロックの構造の詳細を格納する。画像記述データ部７９５は、ＰＩＣＴＵＲＥやＬＩＮＥＡＲＴ等のブロックのイメージデータを文書画像データから切り出して保持する。
【００７２】
このようなＤＡＯＦは、中間データとしてのみならず、それ自体がファイル化されて保存される場合もあるが、このファイルの状態では、所謂一般の文書作成アプリケーションで個々のオブジェクトを再利用する事は出来ない。そこで、次に  このＤＡＯＦからアプリデータに変換する処理（ステップ３０９）について詳説する。
【００７３】
図２１は、全体の概略フローである。８０００は、ＤＡＯＦデータの入力を行う。
【００７４】
８００２は、アプリデータの元となる文書構造ツリー生成を行う。８００４は、文書構造ツリーを元に、ＤＡＯＦ内の実データを流し込み、実際のアプリデータを生成する。図２２は、８００２文書構造ツリー生成部の詳細フロー、図２３は、文書構造ツリーの説明図である。全体制御の基本ルールとして、処理の流れはミクロブロック（単一ブロック）からマクロブロック（ブロックの集合体）へ移行する。以後ブロックとは、ミクロブロック、及びマクロブロック全体を指す。８１００は、ブロック単位で縦方向の関連性を元に再グループ化する。スタート直後はミクロブロック単位での判定となる。ここで、関連性とは、距離が近い、ブロック幅（横方向の場合は高さ）がほぼ同一であることなどで定義することができる。また、距離、幅、高さなどの情報はＧＡＯＦを参照し、抽出する。
【００７５】
図２３（ａ）は実際のページ構成、（ｂ）はその文書構造ツリーである。８１００の結果、Ｔ３、Ｔ４、Ｔ５が一つのグループＶ１、Ｔ６、Ｔ７が一つのグループＶ２が同じ階層のグループとしてまず生成される。８１０２は、縦方向のセパレータの有無をチェックする。セパレータは、例えば物理的にはＤＡＯＦ中でライン属性を持つオブジェクトである。また論理的な意味としては、アプリ中で明示的にブロックを分割する要素である。ここでセパレータを検出した場合は、同じ階層で再分割する。８１０４は、分割がこれ以上存在し得ないか否かをグループ長を利用して判定する。
【００７６】
ここで、縦方向のグループ長がページ高さとなっている場合は、文書構造ツリー生成は終了する。図２３の場合は、セパレータもなく、グループ高さはページ高さではないので、８１０６に進む。８１０６は、ブロック単位で横方向の関連性を元に再グループ化する。ここもスタート直後の第一回目はミクロブロック単位で判定を行うことになる。関連性、及びその判定情報の定義は、縦方向の場合と同じである。図２３の場合は、Ｔ１，Ｔ２でＨ１、Ｖ１，Ｖ２でＨ２、がＶ１，Ｖ２の１つ上の同じ階層のグループとして生成される。８１０８は、横方向セパレータの有無をチェックする。
【００７７】
図２３では、Ｓ１があるので、これをツリーに登録し、Ｈ１、Ｓ１、Ｈ２という階層が生成される。８１１０は、分割がこれ以上存在し得ないか否かをグループ長を利用して判定する。ここで、横方向のグループ長がページ幅となっている場合は、文書構造ツリー生成は終了する。そうでない場合は、８１０２に戻り、再びもう一段上の階層で、縦方向の関連性チェックから繰り返す。
【００７８】
図２３の場合は、分割幅がページ幅になっているので、ここで終了し、最後にページ全体を表す最上位階層のＶ０が文書構造ツリーに付加される。文書構造ツリーが完成した後、その情報を元に８００６においてアプリデータの生成を行う。図１８の場合は、具体的には、以下のようになる。すなわち、Ｈ１は横方向に２つのブロックＴ１とＴ２があるので、２カラムとし、Ｔ１の内部情報（ＤＡＯＦを参照、文字認識結果の文章、画像など）を出力後、カラムを変え、Ｔ２の内部情報出力、その後Ｓ１を出力となる。Ｈ２は横方向に２つのブロックＶ１とＶ２があるので、２カラムとして出力、Ｖ１はＴ３、Ｔ４、Ｔ５の順にその内部情報を出力、その後カラムを変え、Ｖ２のＴ６、Ｔ７の内部情報を出力する。
【００７９】
以上によりアプリデータへの変換処理が行える。
【００８０】
［別実施例］
先に述べた実施例では、あらかじめ入力原稿より複数の解像度の２値画像を用意し、文字や線画の大きさに応じて２値画像を選択するように構成した。しかし、本発明が主張するのは文字や線画の大きさに応じてアウトライン化する２値画像の解像度を選択することであり、予め複数の２値画像を生成することに限定するものではない。よって、入力原稿に対し、像域分離し、文字認識し、アウトライン化する際に入力原稿を用いて領域毎に各領域に適した解像度２値画像を生成し、該２値画像に対してアウトライン化してもよい。
【図面の簡単な説明】
【００８１】
【図１】本実施形態による文書処理装置の装置概観を示す図
【図２】本実施形態による文書処理装置の構成を示すブロック図
【図３】本実施形態の文書処理装置による文書の電子化処理の概要を示す図
【図４】像域分離処理例を示す図
【図５】像域分離処理で得られるブロック情報を示す図
【図６】アウトライン生成処理のフローチャート
【図７】二値画像における一画素と一画素より生成される輪郭座標を示す図
【図８】二値画像と二値画像より生成される粗輪郭線例を示す図
【図９】アウトラインベクトル化処理のフローチャート
【図１０】粗輪郭線におけるノイズ例を示す図
【図１１】ノイズと同じ輪郭構成をしたノイズでない粗輪郭線例を示す図
【図１２】接線線分を抽出する例を示す図
【図１３】近似で用いる曲線と直線を示す図
【図１４】接点抽出処理例を示す図
【図１５】一次近似処理例を示す図
【図１６】曲線分割処理に関する説明図
【図１７】二次近似処理に関する説明図
【図１８】二次近似処理で用いる曲線を示す図
【図１９】補正処理に関する説明図
【図２０】ＤＡＯＦを示す図
【図２１】アプリデータ変換を示す図
【図２２】文書ツリー構造変換を示す図
【図２３】文書構造ツリー作成図
【図２４】粗輪郭データとアウトラインベクトルデータの一例を示す図
【符号の説明】
【００８２】
１０１  コンピュータ装置
１０２  ディスプレイ装置
１０３  入力装置
１０４  スキャナ装置
【図１】
2006253892.tif 000008
【図２】
2006253892.tif 000009
【図３】
2006253892.tif 000010
【図５】
2006253892.tif 000011
【図６】
2006253892.tif 000012
【図７】
2006253892.tif 000013
【図８】
2006253892.tif 000014
【図９】
2006253892.tif 000015
【図１０】
2006253892.tif 000016
【図１１】
2006253892.tif 000017
【図１２】
2006253892.tif 000018
【図１３】
2006253892.tif 000019
【図１４】
2006253892.tif 000020
【図１５】
2006253892.tif 000021
【図１６】
2006253892.tif 000022
【図１７】
2006253892.tif 000023
【図１８】
2006253892.tif 000024
【図１９】
2006253892.tif 000025
【図２０】
2006253892.tif 000026
【図２１】
2006253892.tif 000027
【図２２】
2006253892.tif 000028
【図２３】
2006253892.tif 000029
【図２４】
2006253892.tif 000030
【図４】
2006253892.tif 000031