(57)【要約】      （修正有）【課題】文書画像に含まれる表の罫線を精度よく検出することを目的とする。【解決手段】表を含む文書画像を読み取って罫線を抽出する表認識装置の第一の表認識プログラムは、表認識装置に以下の処理を実行させることを特徴とする。ランレングス処理によって該文書内のラン線分情報を検出し、エッジ抽出処理によって該文書内のエッジ線分情報を検出し、該ラン線分情報および該エッジ線分情報の隣接する状態と罫線の候補の種類との関係を予め定めた条件に応じて該表の罫線の候補の種類を判別し、罫線とするか否かを判別する条件情報を罫線の候補の種類に応じて切り替え、罫線の候補と条件情報とから表の罫線情報を求める。【選択図】図１
2008198157.tif 000002
【特許請求の範囲】
【請求項１】
表を含む文書画像を読み取って罫線を抽出する表認識装置の表認識プログラムであって、
該表認識装置に
ランレングス処理によって該文書内のラン線分情報を検出するステップ、
エッジ抽出処理によって該文書内のエッジ線分情報を検出するステップ、
該ラン線分情報および該エッジ線分情報の隣接する状態と罫線の候補の種類との関係を予め定めた条件に応じて該表の罫線の候補の種類を判別するステップ、
罫線とするか否かを判別する条件情報を該罫線の候補の種類に応じて切り替えるステップ、
該罫線の候補と該条件情報とから該表の罫線情報を求めるステップ、
を実行させることを特徴とする表認識プログラム。
【請求項２】
該ラン線分を挟むように該エッジ線分が隣接する位置関係となる領域を実線罫線候補と判定し、該ラン線分の片側に該エッジ線分が隣接する位置関係となる領域を境界罫線候補と判定し、および、該エッジ線分に隣接するラン線分が存在しない位置関係となる領域をテクスチャ境界候補と判定するステップを該表認識装置に実行させ、
該テクスチャ境界候補を罫線と判定する長さの条件情報を該実線罫線候補および該境界罫線候補の長さの条件情報よりも長くした
ことを特徴とする請求項１に記載の表認識プログラム。
【請求項３】
求めた複数の罫線情報が平行でありかつ所定の距離以下のときに該複数の罫線情報を統合して新たな罫線情報を生成するステップを該表認識装置に実行させることを特徴とする請求項１に記載の表認識プログラム。
【請求項４】
該新たな罫線情報を生成するステップを行う際、該実線罫線候補、該境界罫線候補および該テクスチャ境界候補に応じて該条件情報を切り替えるステップを該表認識装置に実行させることを特徴とする請求項３に記載の表認識プログラム。
【請求項５】
罫線情報の中で予め定めた長さ以上の罫線情報を確定罫線情報とするステップ、
平行して隣接する該確定罫線情報の組によって矩形領域を特定するステップ、
該矩形領域内の罫線情報を罫線とするか否かを判定する長さ条件を該矩形領域の大きさによって決定するステップ、
該長さ条件を超える該矩形領域内の罫線情報を罫線とするステップを該表認識装置に実行させることを特徴とする請求項１記載の表認識プログラム。
【請求項６】
表を含む文書画像を読み取って罫線を抽出する表認識方法であって、
コンピュータが、
ランレングス処理によって該文書内のラン線分情報を検出し、
エッジ抽出処理によって該文書内のエッジ線分情報を検出し、
該ラン線分情報および該エッジ線分情報の隣接する状態と罫線の候補の種類との関係を予め定めた条件に応じて該表の罫線の候補の種類を判別し、
罫線とするか否かを判別する条件情報を該罫線の候補の種類に応じて切り替え、
該罫線の候補と該条件情報とから該表の罫線情報を求める
ことを特徴とする表認識方法。
【請求項７】
表を含む文書画像を読み取って罫線を抽出する表認識装置であって、
ランレングス処理によって該文書内のラン線分情報を検出し、
エッジ抽出処理によって該文書内のエッジ線分情報を検出し、
該ラン線分情報および該エッジ線分情報の隣接する状態と罫線の候補の種類との関係を予め定めた条件に応じて該表の罫線の候補の種類を判別し、
罫線とするか否かを判別する条件情報を該罫線の候補の種類に応じて切り替え、
該罫線の候補と該条件情報とから該表の罫線情報を求める
ことを特徴とする表認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書画像内の表の罫線を抽出する表認識方法に関する。
【背景技術】
【０００２】
紙文書で運用されてきた業務を電子化したり、紙で配布された文書を電子文書に変換したりするための技術としてＯＣＲ（ｏｐｔｉｃａｌ  ｃｈａｒａｃｔｅｒ  ｒｅａｄｅｒまたはｏｐｔｉｃａｌ  ｃｈａｒａｃｔｅｒ  ｒｅｃｏｇｎｉｔｉｏｎ）などの文書画像認識技術がある。文書には表が含まれることがあり、表を認識する技術は重要である。表は一般に縦横の罫線の組み合わせによって構成される。表の認識は、文書画像から表の罫線の配置情報を抽出し、抽出した罫線の配置情報に基づいて表の構造を解析することにより表を認識する。したがって、罫線を抽出する技術は精度よく表を認識するために必要である。
【０００３】
表の罫線を抽出する方法は、例えば文書画像の連続画素から罫線を検出する方法がある。連続画素から罫線を検出する方法は実線を検出するときの精度は良いが実線以外の線分は検出できない。一方、画像内のエッジを抽出する技術から罫線を検出する方法もある。エッジを抽出する技術によって罫線を検出する場合、実線から２本の罫線候補が生まれ、後処理で統合する必要がある。また、連続画素から罫線を検出する方法よりも精度が悪い。両方法によって罫線を検出した後で両方法の結果を統合した場合も後処理が必要である。以上のように、連続画素から罫線を検出する方法とエッジを抽出する技術から罫線を検出する方法とを単に組み合わせただけでは複数の種類の罫線が混在した画像から罫線を抽出することは困難であった。
【０００４】
また、テクスチャによって形成される境界罫線は、連続画素から罫線を検出する方法では検出できない。一方、テクスチャによって形成される境界罫線は、エッジを抽出する技術によって罫線を検出する方法では画像中の文字など罫線以外からの誤抽出が増加する。
【０００５】
従来技術としては以下の文献がある。
【特許文献１】特開平１０−４０３３３号公報
【特許文献２】特開平０１−２１７５８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、文書画像に含まれる形状、模様、色彩によって表される表の罫線を精度よく検出することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の表を含む文書画像を読み取って罫線を抽出する表認識装置の第一の表認識プログラムは、表認識装置に以下の処理を実行させることを特徴とする。ランレングス処理によって該文書内のラン線分情報を検出し、エッジ抽出処理によって該文書内のエッジ線分情報を検出し、該ラン線分情報および該エッジ線分情報の隣接する状態と罫線の候補の種類との関係を予め定めた条件に応じて該表の罫線の候補の種類を判別し、罫線とするか否かを判別する条件情報を罫線の候補の種類に応じて切り替え、罫線の候補と条件情報とから表の罫線情報を求める。
【０００８】
また、本発明の第二の表認識プログラムは、更に表認識装置に以下の処理を実行させることを特徴とする。ラン線分を挟むようにエッジ線分が隣接する位置関係となる領域を実線罫線候補と判定し、ラン線分の片側にエッジ線分が隣接する位置関係となる領域を境界罫線候補と判定し、および、該エッジ線分に隣接するラン線分が存在しない位置関係となる領域をテクスチャ境界候補と判定する。テクスチャ境界候補を罫線と判定する長さの条件情報を実線罫線候補および境界罫線候補の長さの条件情報よりも長くする。
【０００９】
また、本発明の第三の表認識プログラムは、更に表認識装置に以下の処理を実行させることを特徴とする。求めた複数の罫線情報が平行でありかつ所定の距離以下のときに該複数の罫線情報を統合して新たな罫線情報を生成する。
【００１０】
また、本発明の第四の表認識プログラムは、更に表認識装置に以下の処理を実行させることを特徴とする。新たな罫線情報を生成するステップを行う際、実線罫線候補、境界罫線候補およびテクスチャ境界候補に応じて条件情報を切り替える。
【００１１】
また、本発明の第五の表認識プログラムは、更に表認識装置に以下の処理を実行させることを特徴とする。罫線情報の中で予め定めた長さ以上の罫線情報を確定罫線情報とし、平行して隣接する該確定罫線情報の組によって矩形領域を特定し、該矩形領域内の罫線情報を罫線とするか否かを判定する長さ条件を該矩形領域の大きさによって決定し、該長さ条件を超える該矩形領域内の罫線情報を罫線とする。
【発明の効果】
【００１２】
本発明により、ラン検出による罫線の候補とエッジ検出による罫線の候補との位置関係によって罫線の種類を特定し、罫線の種類に応じた条件によって罫線を検出するため、文書画像に含まれる形状、模様、色彩によって表される表の罫線を精度よく検出することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を説明する。
【００１４】
図１は本実施例の原理構成図である。表認識装置１０は文書の画像データが入力されると以下の処理を行って表の罫線情報を出力する。画像入力手段２１は、入力される文書画像データを取得する。ラン線分検出手段２２は、ランレングス処理によって文書画像データの罫線候補を検出する。エッジ線分検出手段２３は、エッジ検出処理によって文書画像データの罫線候補を検出する。
【００１５】
罫線候補抽出手段２４は、ラン線分検出手段２２の罫線候補とエッジ線分検出手段２３の罫線候補とを重ね合わせ、予め定めた条件に応じて罫線候補の種類を判別する。罫線情報生成手段２５は、罫線候補の種類に応じて罫線情報か否かを判別する。削除手段２６は、表の項目内の不適当な罫線情報を削除する。出力手段２７は、最終的に文書画像データから検出した表の罫線情報を出力する。
【００１６】
図２は、本実施例の表認識装置１０のハードウェア構成図である。表認識装置１０は、制御部１１、入力部１２、出力部１３、記憶部１４およびメモリ１５によって構成され、各部はバス１６によって接続される。制御部１１は表認識装置１０の全体を制御する中央処理装置である。制御部１１は例えばＣＰＵである。制御部１１はメモリ１５に展開した表認識プログラム１やデータ等を用いて、図１の処理を実行する。
【００１７】
入力部１２は処理の対象となる文書画像データを受付ける機能を有する。例えばスキャナ、ネットワークインターフェース、キーボード、マウス、タッチパネル等である。ネットワークインターフェースは、制御部１１がネットワーク（例えばインターネット、ＬＡＮ等）を介して、外部のコンピュータ装置とデータの送受信を行うためのインターフェースである。出力部１３は文書画像データの表の罫線を出力する機能を有する。例えばモニタ、プリンタ、ネットワークインターフェース等の表示装置である。
【００１８】
記憶部１４には表認識プログラム１が格納される。記憶部１４は例えば磁気ディスク装置、ＲＯＭである。メモリ１５は、制御部１１が表認識プログラム１を実行するために記憶部１４に格納される表認識プログラム１および計算結果のデータ等を一時的に格納する領域である。メモリ１５は例えばＲＡＭである。
【００１９】
制御部１１は記憶部１４の表認識プログラム１をメモリ１５に展開する。表認識プログラム１により制御部１１は、画像入力手段２１、ラン線分検出手段２２、エッジ線分検出手段２３、罫線候補抽出手段２４、罫線情報生成手段２５、削除手段２６、および出力手段２７として機能する。
【００２０】
本実施例で入力される文書画像データは表を含む。表認識装置１０は表の罫線を抽出する。例えば、表認識装置１０に入力される文書画像が帳票データである場合、表認識装置１０は帳票中の表を認識する。
【００２１】
次に画像入力手段について説明する。画像入力手段は文書画像データを装置に読み込む機能を実現する。画像入力手段は例えば紙文書から画像を読み込むのであれば光学スキャナで電子化した文書画像データを取得する。画像入力手段は例えば既に文書画像データが存在する場合には、記憶部１４等から文書画像データを取得する。
【００２２】
図３は本実施例で入力される文書画像データの表３０である。表３０は種々の形態の罫線を有する。罫線は形状、模様、色彩、あるいは形状、模様、色彩の組合せによって表される。表罫線には、領域の境界により構成される境界罫線３１、境界罫線３２、テクスチャ領域の境界により構成されるテクスチャ境界罫線３３、テクスチャ境界罫線３４、および実線によって構成される実線罫線３５、実線罫線３６、実線罫線３７、実線罫線３８がある。
【００２３】
図４は本実施例で表３０から出力される表４０である。表罫線は実線として４１、４２、４３、４４、４５、４６、４７、および４８が抽出される。ここで、実線によって構成される罫線３５、３６、３７、３８および境界罫線３１、３２は、同種の画素で塗り潰された領域（面塗り領域）の境界により構成されるため、ラン線分検出手段２２及びエッジ線分抽出手段２３によって検出することが可能である。一方、ラン線分検出手段２２はテクスチャ境界罫線３３、３４を抽出することはできない。よって、図３のように複数種の罫線が混在する表３０から表４０のように罫線を抽出するためにはエッジ抽出技術を用いる必要がある。本実施例ではエッジ抽出技術の一つとしてＣａｎｎｙ法を用いて説明する。
【００２４】
次にラン線分検出手段２２が実行する処理について説明する。本実施例のラン線分検出手段２２は、文書画像データの各画素を白と黒で二値化する。以降の説明では二値化されたときの白色の画素を白画素とし、黒色の画素を黒画素とする。ラン線分検出は一般にランレングス処理と呼ばれる。ランレングス処理は、黒画素が縦方向または横方向に予め定めた画素数以上に連続している領域をラン線分領域として抽出する。したがって、ランレングス処理により黒画素が直線的に連続した領域が抽出される。
【００２５】
図５はランレングス処理の原理図である。ランレングス処理は画像データ内の画素６を二値化し、同種の画素群を抽出し、同種の画素群が構成する線分の線幅５０、始点５１および終点５２を得る。
【００２６】
図６はラン線分検出手段２２が実行する処理のフローチャートである。ラン線分検出手段２２は、画像入力手段２１が取得した文書画像データを二値画像に変換する（Ｓ０１）。ラン線分検出手段２２は、黒画素が直線状に連続した領域をラン線分の候補として検出する（Ｓ０２）。ラン線分検出手段２２は、画素で構成される各行ごとに連続した画素をまとめて、横方向のラン線分の候補を検出する。ラン線分検出手段２２は、線分の長さが一定値以下のものを削除する（Ｓ０３）。
【００２７】
図７はラン線分の候補の削除の状態を示す図である。図７の上側７１はラン線分検出手段２２がＳ０２において文書画像データからラン線分の候補を抽出した状態を示し、下側７２はラン線分検出手段２２がＳ０３においてラン線分の候補からラン線分を削除した状態を示す。図中の各丸形状は画素６である。黒色の画素６は黒画素６０１であり、白色の画素６は白画素６０２である。ラン線分検出手段２２は、例えばラン線分の候補６１の中で画素の横方向６３に連続する長さが３以下のものを削除する。その結果、図７の下側の状態図の中央付近にある長さ３のラン線分の候補に対応する画素群６４が削除される。図６の説明に戻る。
【００２８】
次に、ラン線分検出手段２２は、黒画素のグループ化を行う（Ｓ０４）。図８は黒画素のグループ化の状態を説明する図である。文書画像データ内の隣接するラン線分の候補６１をグループにまとめ、ラン線分の候補６１が連結する矩形領域６２を検出する。ラン線分検出手段２２は、ラン線分の候補６１が連結する矩形領域６２を罫線候補とする。実線罫線は以上の処理で抽出される。
【００２９】
次にラン線分検出手段２２が境界罫線から罫線候補の検出を可能するため領域境界か否かを判別する（Ｓ０５）。具体的には、ラン線分検出手段２２は黒画素の矩形領域の幅が予め定めた閾値を超えていた場合に、領域境界であると判断する。領域境界の罫線候補は矩形領域の両端の境界部分となる。領域境界の場合（Ｓ０５：ｙｅｓ）、ラン線分検出手段２２は矩形領域の両端を罫線候補とする（Ｓ０６）。
【００３０】
図９は、領域境界の罫線候補の設定例である。図９上段は、グループ化された黒画素の矩形領域である。黒画素の線分の幅６６は６個の画素で構成される。ラン線分検出手段２２は黒画素のグループから領域境界を生成する。例えば、ラン線分検出手段２２予め、領域境界か否かを判別するための閾値情報として「４」の値を有するとする。ラン線分検出手段２２は、黒画素の線分の幅となる画素数が「４」以上の場合に、領域境界であると判定する。領域境界であると判定されると図９の下段のように、矩形領域の上端の白画素と黒画素との境界を罫線候補６７、および、矩形領域の下端の白画素と黒画素との境界を罫線候補６８と判定する。
【００３１】
以上の処理では、ラン線分検出手段２２は横方向の罫線候補を検出する。なお、ラン線分検出手段２２は縦方向の罫線候補も検出する。ラン線分検出手段２２が実行する処理は、縦罫線と横罫線の方向を変更すればよい。以上によりラン線分検出手段２２は実線罫線および境界罫線のラン線分の罫線候補を抽出する。
【００３２】
次にエッジ線分検出手段２３の処理を説明する。図１０はエッジ抽出の説明図である。
【００３３】
エッジ抽出は黒画素が構成する直線９２の両脇の画素境界９１を線として抽出する。エッジ抽出では一本の画素が構成する直線９２の両脇に二本の線分が抽出される。
【００３４】
エッジ線分検出手段２３は、テクスチャ領域境界を抽出する機能を有するものが必要である。図１１はエッジ抽出で検出するテクスチャ領域９４の境界の説明図である。黒画素が不連続なテクスチャ領域９４に対して、境界線９５を検出する必要がある。本実施例では、Ｃａｎｎｙ法と呼ばれるエッジ抽出方法を利用する。Ｃａｎｎｙ法は、テクスチャ領域の細かな模様による画素値の変動は面塗り領域に重畳されたノイズだと考える。まず入力画像をガウシアンフィルタで平滑化して、この細かな模様をある程度一様な領域に広げる。その後、画素値の変化の値をソーベルフィルタ等で求め、その値の極大値をエッジ画素とする。最後に、エッジ画素の近傍で勾配の値が大きな画素を連結してエッジを連続した線画として求める。
【００３５】
図１２はＣａｎｎｙ法を利用したエッジ線分抽出手段の処理のフローチャートである。図１３は図１２のフローチャートでの各ステップの処理の状態を説明する図である。本実施例は、画像入力手段２１が取得した文書画像データを最小値が０、最大値が２５５の濃淡画像とする。
【００３６】
エッジ線分検出手段２３は、画像入力手段２１が取得した図１３の１１０１に示す文書画像データの各画素間を平滑化する（Ｓ１１）。画像平滑化手段は、例えばガウシアンフィルタを用い、入力画像とガウシアンフィルタの畳み込み和により得られる。例えば入力画像をＩ（ｉ，ｊ）とし、フィルタ係数をＦ（ｉ，ｊ）とする。図１４はガウシアンフィルタ係数１２０１の例である。平滑化変換後の画像をＩ’（ｉ，ｊ）とすると式（１）のような演算で実現できる。
【００３７】
【数１】
2008198157.tif 000003
【００３８】
フィルタの高さおよび幅をＷ（ここでは「５」である）とすると式（２）からｗは「２」である。
【００３９】
【数２】
2008198157.tif 000004
【００４０】
Ｃは正規化定数である。この場合は図１４のフィルタの各要素の係数を全て加えた値（Ｃ＝１５９）を用いる。図１３の状態１１０２は、状態１１０１が平滑化された状態である。
【００４１】
エッジ線分検出手段２３は勾配値を求める（Ｓ１２）。勾配値は平滑化したときの両隣の画素間の数値の差が大きい場合に該当する画素の勾配値は大きくなる。勾配値は、例えば、示すソーベルフィルタを用いて取得する。図１５は横方向のエッジを検出するためのソーベルフィルタ１３０１である。図１６は縦方向のエッジを検出するためのソーベルフィルタ１４０１である。例えば横方向の罫線候補を抽出する場合、図１６の縦方向のエッジを検出するためのソーベルフィルタ１４０１を用いる。一方、縦方向の罫線候補を抽出する場合、図１５の横方向のエッジを検出するためのソーベルフィルタ１３０１を用いる。エッジ線分検出手段２３は具体的には式（１）のフィルタの係数に図１５、図１６を用いて定数Ｃは「１」として各画素を演算する。また、ラプラシアンフィルタによってエッジを求める方法もある。図１３の状態１１０３は、状態１１０２から勾配値を取得した状態である。なお、状態１１０３を横方向からみると状態１１０４となる。
【００４２】
エッジ線分検出手段２３は勾配値の極大点を取得する（Ｓ１３）。エッジ線分検出手段２３は、例えば、極大点の勾配値があらかじめ定めた閾値（例えば「１」などの任意の数値）より大きい場合、極大点がエッジを構成する画素であるとして確定する。あるいは、エッジ線分検出手段２３は例えば勾配値が隣接する点の勾配値よりも大きな点を求めることで求まる。図１３の状態１１０５は、状態１１０３から勾配値の極大点を取得した状態である。
【００４３】
エッジ線分検出手段２３は、連続するエッジを検出する（Ｓ１４）。例えば、エッジ線分検出手段２３は、一般にヒステリシス処理と呼ばれている処理によって連続するエッジを検出する。具体的には、エッジ線分検出手段２３は、確定したエッジを構成する画素の隣に未確定の画素があり、未確定の画素の勾配値が予め定めた閾値（例えば「２」）よりも大きい場合に隣接する未確定の画素がエッジを構成する画素であるとして確定する。
【００４４】
図１７はヒステリシス処理によるエッジを構成する画素の特定の説明図である。ヒステリシス処理は状態１７０１から状態１７０２、状態１７０３、状態１７０４と変化する。各状態において黒画素１７０５はエッジを構成する画素として確定した画素、斜線の画素１７０６は未確定だが勾配値が予め定めた閾値よりも大きな画素である。エッジ線分検出手段２３は黒画素１７０５に隣接した斜線の画素１７０６を順に確定する。状態１７０１では、領域１７０７および領域１７０８が黒画素１７０５と斜線の画素１７０６とが隣接する。黒画素１７０５と斜線の画素１７０６とが隣接する場合、エッジ線分検出手段２３は斜線の画素１７０６を黒画素１７０５とする。状態１７０２では、領域１７０９で黒画素１７０５と斜線の画素１７０６とが隣接する。エッジ線分検出手段２３は斜線の画素１７０６を黒画素１７０５とする。状態１７０３では、領域１７１０、１７１１に斜線の画素１７０６が存在する。領域１７１０、領域１７１１は黒画素１７０５と隣接していないため、削除する。以上の処理を、エッジを構成する画素の隣に勾配値が予め定めた閾値を越えるものが存在しなくなるまで続ける。処理が完了すると状態１７０４のエッジを検出する。図１３の状態１１０６は、状態１１０５から連続するエッジが検出された状態である。
【００４５】
本来、Ｃａｎｎｙ法によるエッジ検出では、勾配の極大点を求める際にその勾配の傾き方向を調べ、隣接画素の勾配値が予め定めた閾値を越えているか否かを勾配と直交した方向に沿って調べる。
【００４６】
しかし、本実施例では表を構成する縦横方向の罫線を求めることを目的とする。よって、エッジ線分検出手段２３は横方向の罫線候補を抽出する処理の場合には縦方向の勾配の極大値を検出し、その後、横方向の隣接画素の勾配の極大値を順に調べれば良い。縦罫線を抽出する場合にはその逆である。
【００４７】
以上で求めたエッジ画素を黒画素とみなし、エッジ線分検出手段２３は黒画素のグループ化を行う（Ｓ１５）。次にエッジ線分検出手段２３は境界罫線から罫線候補の検出を可能するため領域境界か否かを判別する（Ｓ１６）。領域境界の場合（Ｓ１５：ｙｅｓ）、エッジ線分検出手段２３は矩形領域の両端を罫線候補とする（Ｓ１７）。Ｓ１５からＳ１７の処理は、ラン線分検出手段２２の説明と同様であるので省略する。
【００４８】
次に罫線候補抽出手段２４について説明をする。図１８は罫線候補抽出手段２４が実行する処理のフローチャートである。
【００４９】
罫線候補抽出手段２４はラン線分検出手段２２によって検出したラン線分の罫線候補、およびエッジ線分検出手段２３によって検出したエッジ線分の罫線候補の位置関係に基づいて、罫線候補から罫線と判断できる罫線情報を抽出する。罫線候補抽出手段２４はラン線分検出手段２２とエッジ線分検出手段２３から得た罫線候補を重ね合わせ、ラン線分検出手段２２の罫線候補とエッジ線分検出手段２３の罫線候補との位置関係を取得する（Ｓ２１）。
【００５０】
罫線候補抽出手段２４は、Ｓ２１で取得した位置関係が予め定めた位置関係の条件を満たすか否かを判定する（Ｓ２２）。罫線候補抽出手段２４は位置関係を満たす場合（Ｓ２２：ｙｅｓ）、各罫線情報の種類に分類する（Ｓ２３）。
【００５１】
ここで、位置関係の条件について説明する。図１９は罫線候補の位置から判断される罫線情報の位置および種類との関係である。
【００５２】
元の文書画像データの罫線が実線罫線１９０１とする。実線罫線１９０１の場合、ラン線分検出手段２２は罫線候補１９０２を検出する。また、エッジ線分検出手段２３は罫線候補１９０３および罫線候補１９０４として２本の罫線候補を検出する。罫線候補を重ね合わせたときの位置関係は、エッジ線分検出手段２３によって得られた罫線候補１９０３および罫線候補１９０４がラン線分検出手段２２によって得られた罫線候補１９０２を挟む位置関係となる。エッジ線分がラン線分を挟む位置関係、すなわちラン線分の両隣にエッジ線分が隣接している場合、罫線候補抽出手段２４は罫線候補を実線罫線であると判別する。
【００５３】
次に、元の文書画像データの罫線が境界罫線１９０５とする。境界罫線１９０５の場合、ラン線分検出手段２２は罫線候補１９０６を検出する。また、エッジ線分検出手段２３は罫線候補１９０７を検出する。罫線候補を重ね合わせたときの位置関係は、エッジ線分検出手段２３によって得られた罫線候補１９０７とラン線分検出手段２２によって得られた罫線候補１９０６とが隣接する位置関係となる。エッジ線分とラン線分とが一本ずつ隣接する位置関係の場合、罫線候補抽出手段２４は罫線候補を境界罫線であると判別する。
【００５４】
次に、元の文書画像データの罫線がテクスチャ境界罫線１９０８とする。テクスチャ境界罫線１９０８の場合、ラン線分検出手段２２は罫線候補を検出しない。一方、エッジ線分検出手段２３は罫線候補１９０９を検出する。
罫線候補を重ね合わせたときの位置関係は、エッジ線分検出手段２３によって得られた罫線候補１９０９が存在する位置関係となる。エッジ線分のみが存在する位置関係の場合、罫線候補抽出手段２４は罫線候補をテクスチャ境界罫線であると判別する。
【００５５】
ここで、ラン線分検出手段２２による罫線候補のラン線分の長さとエッジ線分検出手段２３による罫線候補のエッジ線分の長さとが異なる場合、罫線候補抽出手段２４は、例えば以下の判定を行う。ラン線分検出手段２２あるいはエッジ線分検出手段２３の何れか一方で検出した線分の長さが他方で検出した線分の長さの半分以上あればＳ２２の位置関係の判定を行う。あるいはラン線分検出手段２２あるいはエッジ線分検出手段２３の何れか一方で検出した線分の長さが他方で検出した線分の半分の長さに未満の場合は長い方の線分のみを有効にする。
【００５６】
更に、例えばラン線分とエッジ線分が２本ずつ隣接しているような場合のような図１９の条件に当てはまらない場合、罫線候補抽出手段２４は、例えば、隣接した線分の中にラン線分が存在すれば実線罫線と判定し、全てがエッジ線分であればテクスチャ境界からの罫線候補と判定することにより罫線を検出することが可能である。
【００５７】
更に罫線の種類は他にも点線や二重線など様々なものが考えられる。よって、罫線候補の種類判定を拡張することも可能である。例えばエッジ線分の罫線候補が３本でラン線分の罫線候補が２本である場合で、かつ各罫線候補が交互に隣接する場合、罫線候補抽出手段２４は文書画像の罫線を二重線と判定することができる。また、点線からはエッジ線分が抽出されやすいので、罫線候補抽出手段２４はエッジ線分が単独で抽出され、かつ罫線候補の近傍が平坦領域である場合には点線である可能性が高いと判定することも可能である。
【００５８】
次に罫線情報生成手段２５について説明する。図２０は罫線情報生成手段２５が実行する処理のフローチャートである。罫線情報生成手段２５は罫線候補から罫線情報を生成する。具体的には不適切な罫線候補の削除や、罫線候補の統合、修正などを行う。入力された文書画像そのものが劣化している場合、表の罫線は掠れや変色などの影響を受けていることがある。元の文書画像の表の罫線の表示が正確ではない場合、罫線を構成する直線を抽出した結果が途中で途切れたり変形していたりするおそれがある。そこで、罫線情報生成手段２５は、罫線を構成する直線の一部分または全体を表わす線分を抽出して罫線の候補とし、罫線候補のうち不要なものを削除したり、隣接した罫線候補を統合したりするなどの処理を行い、最終的な罫線抽出結果としての罫線情報を生成する。
【００５９】
罫線情報生成手段２５は、罫線候補抽出手段２４で抽出した罫線候補の種類に応じて予め設定したパラメータを設定する（Ｓ３１）。パラメータは、罫線候補から罫線情報を生成する際に用いる。パラメータは、例えば２本の罫線候補が並行して存在する場合にそれらを統合して1本の罫線とみなすか否かの判定をするための閾値である。パラメータは罫線候補の種類によって最適な値は異なる。したがって、罫線情報生成手段２５は、罫線候補の種類によって異なるパラメータの値を有する。
【００６０】
罫線情報生成手段２５が有するパラメータの例としては以下が有る。罫線情報生成手段２５は罫線候補の長さ情報と閾値との関係から罫線候補を罫線か否かを判定するものとする。パラメータはテクスチャ境界からの罫線候補を罫線と判定する閾値を罫線情報生成手段２５が実線罫線および境界罫線からの罫線候補を罫線と判定する閾値の２倍に設定する。テクスチャ境界を罫線と判定するための閾値を大きくすることにより、テクスチャ境界罫線と認められるためには、実線境界あるいは境界罫線と比較して長い直線である必要がある。
【００６１】
閾値を大きくする理由は、テクスチャ境界罫線は実線罫線や境界罫線に比べて、位置が曖昧になり易いこと、また、ノイズも出やすいことがあるためである。さらに、閾値を大きくする理由は、テクスチャ境界のすぐ近くに別の罫線が存在するケースは実線罫線や境界罫線に比べて少ないことが一般的であるためである。
【００６２】
罫線情報生成手段２５は、罫線候補の種類に応じて検出するためのパラメータを切り替えることにより、誤った罫線を抽出すること、および、途中で分断される罫線を防ぐことが可能になる。罫線情報生成手段２５は、所定の条件を満たすか否かを判定する（Ｓ３２）。罫線情報生成手段２５は、所定の条件を満たすと判定した場合（Ｓ３２：ｙｅｓ）、条件に応じた処理を実行する（Ｓ３３）。以下に罫線情報生成手段２５が実行する、統合処理、削除処理、修正処理について説明する。
【００６３】
ここで罫線情報生成手段２５での近接した罫線候補を統合して一本の罫線情報を生成する処理を説明する。
【００６４】
罫線情報生成手段２５は、罫線候補を統合して新たな罫線候補を生成すべきか否かを判定する。罫線候補の一部が変形している場合、罫線情報全体の罫線幅や長さを再計算する。罫線情報生成手段２５は、座標値の再計算に限らず、罫線の座標や種類などの属性を最適な値に変換する。最適な値は例えば、罫線情報生成手段２５が罫線候補間の距離が近い場合に近接する罫線候補を一本の罫線として統合すると判定する閾値は、罫線候補の少なくとも一方がテクスチャ境界罫線の場合には閾値の値を大きくする。この構成により、罫線情報生成手段２５は、実線罫線の候補あるいは境界罫線の候補が統合されやすくなる調整を行うことができる。
【００６５】
図２１は、罫線候補の統合の第一の説明図である。罫線候補の一部の区間が重なっている場合、罫線候補を統合する。２本の罫線候補２３１および罫線候補２３２の間の間隔ｄ２３４が閾値Ｔｈ１より小さい場合に罫線候補２３１および罫線候補２３２を統合して一本の罫線情報２３５に変換する。
【００６６】
図２２は、罫線候補の統合の第二の説明図である。
罫線候補２４１および罫線候補２４２が平行ではなく直列に並ぶ位置関係である。２本の罫線候補２４１および罫線候補２４２の間の間隔ｄ２４３が閾値Ｔｈ２より小さい場合に両者を統合して一本の罫線情報２４４に変換する。
【００６７】
図２３は、罫線候補の統合の第三の説明図である。
罫線候補２５１および罫線候補２５２が平行に並ぶ位置関係である。本実施例では閾値がＴｈ３とＴｈ４の２種類を用いる。罫線候補２５１及び２５２の短い罫線候補２５１の長さをＬ１とし、長い罫線候補２５２の長さをＬ２とする。２本の罫線候補２５１および罫線候補２５２の間の間隔ｄ２５３が閾値Ｔｈ３より小さい場合で罫線候補２５２の長さＬ２と罫線候補２５１の長さＬ１との比が閾値Ｔｈ４との積よりも大きい場合、両者を統合して一本の罫線情報２５４に変換する。具体的には、罫線情報生成手段２５は罫線候補２５１を削除する。罫線情報２５１の長さＬ１と罫線情報２５２の長さＬ２との関係は、Ｌ１がＬ２のノイズとみなせる程度にＬ２がＬ１より長い関係とする。
【００６８】
例えば、入力画像が２００ｄｐｉ程度である場合、Ｔｈ１＝８ｄｏｔ（約０．１ｍｍ）、Ｔｈ２＝１６ｄｏｔ（約０．２ｍｍ）、Ｔｈ３＝８ｄｏｔ（約０．１ｍｍ）とし、Ｔｈ４＝５ｄｏｔ（約０．０６ｍｍ）等に設定する。
【００６９】
また、罫線候補の別の削除基準として、罫線情報生成手段２５は罫線候補の長さが閾値に達しないものを削除することも可能である。他の罫線候補と隣接していない場合でも、罫線情報生成手段２５は長さが予め定めた閾値よりも短い罫線候補を削除する。例えば閾値を２０と設定した場合、２００ｄｐｉでは罫線候補の長さが約２．５４ｍｍ未満の罫線候補を削除する。文書画像データ内の表を構成する罫線の長さはある一定の下限を持っていることが一般的であり、上記の閾値は文字から誤抽出された罫線候補と、罫線から抽出された罫線候補とを区別することが可能となる。
【００７０】
罫線情報生成手段２５は、罫線情報の位置やサイズなどの属性を罫線候補から変更する。変更する場合、罫線情報生成手段２５は、修正する画素を含む罫線候補が実線罫線、境界罫線あるいはテクスチャ境界罫線かの種類によって変更の有無を判別する機能を有する。例えばテクスチャ境界罫線の候補である場合、罫線情報生成手段２５はテクスチャ境界罫線の候補に接する領域がテクスチャ領域かどうかを調べる。テクスチャ境界罫線の候補に接する領域の一方がテクスチャ領域である場合、あるいは、テクスチャ境界罫線の候補に接する両側の領域がそれぞれ別の種類のテクスチャ領域である場合のみ、罫線候補と判定するよう設定することが可能である。以下に具体的に説明する。
【００７１】
図２４にテクスチャ境界の判定の説明図を示す。
状態２６０１はテクスチャ領域２６０３と白色領域２６０４とがあり、罫線候補抽出手段２４によってテクスチャ境界の罫線候補２６０２が検出された状態である。
【００７２】
状態２６０５は白色領域内に文字列２６０７があり、エッジ検出手段２３が文字列２６０７の下端をテクスチャ境界罫線の罫線候補２６０６を誤検出した状態である。横書きの連続した文字列の下端は、横軸上に揃うためエッジ検出手段２３はテクスチャ境界であると誤認識する場合があるためである。文字列の包絡線はテクスチャ境界ではないが、文字列の包絡線部分の画像の特徴とテクスチャ境界であることを示す画像の特徴とはよく似ているためである。
【００７３】
そこで、罫線情報生成手段２５は罫線の挟む領域がテクスチャ領域か否かを調べ、テクスチャ境界から得られた罫線候補か、文字列の包絡線から得られた罫線候補かを判定する。
【００７４】
なお、テクスチャ領域か否かの判定は、罫線候補の位置に実線が存在する場合、罫線候補の周辺の領域を調べただけでは罫線が無いという判定はできない。しかし本実施例では、罫線候補抽出手段２４において罫線候補が実線罫線、境界罫線およびテクスチャ境界罫線の何れかであることの判定を行っているため、周辺領域の判別を行うことによる罫線の有無の判定が可能である。
【００７５】
テクスチャ領域か否かの判定としては、例えば罫線候補の両側のそれぞれの領域毎に黒画素をグループ化し、黒画素のグループのサイズの平均値によって判定するという方法がある。テクスチャ領域の黒画素グループのサイズは文字列の黒画素グループのサイズに比べて小さくなる。そのため、予め文字の場合の黒画素のグループのサイズの統計を測定し、文字とテクスチャとを切り分ける黒画素のグループのサイズの閾値を設ければテクスチャ領域と文字列との区別が可能である。
図２４では、状態２６０１のテクスチャ領域の黒画素のグループのサイズ２６０９の平均値が８ｄｏｔであり、状態２６０１の白色領域の黒画素のグループのサイズ２６１０の平均値が０ｄｏｔであり、状態２６０５の文字列を含む白色領域の黒画素のグループのサイズ２６１１の平均値が１００ｄｏｔであり、状態２６０５のテクスチャ領域の黒画素のグループのサイズ２６１２の平均値が２ｄｏｔである。ここで、テクスチャ領域か否かを判別するための閾値として黒画素グループのサイズを「５０」と予め定めていたとする。
【００７６】
罫線情報生成手段２５は、状態２６０１でのテクスチャ境界罫線の罫線候補２６０２を挟む領域２６０３と２６０４に含まれる黒画素グループのサイズと閾値とを比較する。サイズ２６０９および２６１０は閾値よりも小さい値である。よって罫線情報生成手段２５は、罫線候補２６０２をテクスチャ境界罫線であると判別する。一方、罫線情報生成手段２５は、状態２６０５でのテクスチャ境界罫線の罫線候補２６０６を挟む文字列２６０７を含む領域および領域２６０４に含まれる黒画素グループのサイズと閾値とを比較する。サイズ２６１１は閾値よりも大きい値である。よって罫線情報生成手段２５は、罫線候補２６０６を文字列の下端を誤検出した線であると判別する。
【００７７】
次に罫線情報生成手段２５が実行する修正処理について説明する。罫線の幅や高さが予め定めた条件を満たす場合に罫線候補を修正することも可能である。修正とは、例えば罫線情報生成手段２５は境界罫線となる罫線候補またはテクスチャ境界罫線となる罫線候補の幅を最小値（例えば１ｄｏｔ）に設定する処理である。
【００７８】
予め定めた条件とは以下の例がある。例えば、領域境界から得られる罫線には論理的には幅は無いが、実際に罫線を抽出する処理で罫線の幅が生じる。したがって境界罫線であると判定した罫線候補について修正する処理を実行することが可能である。また、別の例としてラン線分検出手段２２が実行する黒画素のグループ化処理において、図８の黒画素の矩形領域６２によって罫線の幅が太くなってしまう場合がある。したがって、幅が太くなった罫線の幅を修正する処理の実行が可能である。
【００７９】
以上のように、罫線情報生成手段２５は、罫線情報に変換される前の罫線候補の位置関係に基づいて罫線情報を判別し、罫線候補の種類に応じたパラメータを使用して罫線情報を判別する。この結果、罫線情報の抽出の精度が向上する。
【００８０】
次に、罫線以外を誤抽出した罫線候補の削除方法について説明する。誤抽出は画像中の文字など罫線ではない線分情報を誤って罫線であるとして抽出することである。実線罫線、境界罫線、テクスチャ境界罫線等の様々な種類の罫線を抽出すると誤抽出の影響が増加する。
【００８１】
削除手段２６は罫線以外から誤抽出された罫線候補を不正な罫線候補と判別する必要がある。誤抽出された罫線候補は表の項目内の文字等である。図２５は表２８３と表の項目内の文字列の大きさとの関係を示す図である。表２８３の内部の文字列２８０は、一般的に表を構成する項目領域内に収まる。したがって、表２８３の項目内の文字列２８０を誤抽出した罫線候補の縦方向の長さ２８４は、行を構成する項目の領域の高さ２８１よりも短い。表２８３の罫線は一般に行の上下に接続しているため行を構成する領域の高さよりも長い。表２８３の項目の幅方向２８３についても同様である。例えば、表２８３内の他の項目２８５、２８６および２８７の領域と他の項目２８５、２８６および２８７に書かれた文字列との大きさの関係も同様である。項目領域の高さ方向の大きさは、文字列の高さ方向の大きさよりも大きい値となる。したがって、表２８３を構成する各項目の領域を特定すれば、項目の高さ情報あるいは幅情報に基づいて項目内の罫線候補を削除するための適切な長さの閾値を決定することが可能である。以降の説明では、罫線候補を削除するか否かの判定を行う領域を罫線判定領域とする。
【００８２】
次に削除手段２６が実行する処理について説明する。図２６は削除手段２６が実行する処理のフローチャートである。削除手段２６は、罫線を削除するか否かの判別を行う領域を設定する（Ｓ４１）。
【００８３】
削除手段２６は、文書画像データ内の確定罫線を検出する。確定罫線を定める判断基準は、例えば予め定めた閾値よりも長い罫線を確定罫線と判定する。例えば入力された文書画像データが２００ｄｐｉの解像度では、確定罫線の判断基準となる閾値は１００ｄｏｔ程度（約１２．７ｍｍ）であれば良い。長い罫線を確定罫線とすることは、不適当な罫線情報を罫線判定領域の設定に使用することを防止することができる。不適当な罫線情報は、例えば文字から誤検出した罫線のような罫線以外から抽出された罫線情報である。削除手段２６は、確定罫線の集合から平行かつ隣り合う確定罫線の組を検出し、罫線判定領域を生成する。
【００８４】
図２７に罫線判定領域の設定例を示す。本実施例の罫線判定領域は隣り合った長い罫線に挟まれた矩形領域とする。以降の説明では、罫線判定領域を特定するための罫線を確定罫線とする。図２７上段の表２９００は、横方向の長い罫線情報２９０１、２９０２、２９０３、２９０４を有する。また表２９００は、縦方向の罫線として２９０５を有する。表２９００の横方向の罫線については、各罫線情報の内、平行であってかつ隣り合う罫線情報の組は２９０１と２９０２、２９０２と２９０３、２９０３と２９０４である。各組で挟む領域は図２７下段のように罫線判定領域２９０５、２９０６、２９０７となる。
【００８５】
なお、平行な確定罫線の組が図２７のように同じ長さとは限らない。例えば確定罫線の組が部分的に平行している場合も有る。
【００８６】
図２８は、文書画像データ内の確定罫線が部分的に平行する状態を示す説明図である。図２８は、確定罫線３１１、３１２および３１３がある。確定罫線３１１、３１２および３１３はそれぞれ部分的に平行する。確定罫線３１１と３１２とは範囲３１６で平行に隣接する。確定罫線３１１と３１３とは範囲３１７で平行に隣接する。確定罫線３１１と３１２とが範囲３１６で構成する矩形領域は罫線判定領域３１４である。確定罫線３１１と３１３とが範囲３１７で構成する矩形領域は罫線判定領域３１５である。削除手段２６は確定罫線の一部分が平行になっている場合、平行に隣接する部分のみを罫線判定領域として登録する。
【００８７】
次に削除手段２６が実行する処理を説明する。図２９は削除手段２６が罫線判定領域を特定を設定する処理のフローチャートである。削除手段２６は、任意の確定罫線を検出対象として特定する（Ｓ５１）。図２８では削除手段２６は、確定罫線３１１を検出対象として特定する。削除手段２６は、検出対象の確定罫線よりも文書画像データ内の下にあって横方向が平行に隣接する確定罫線を検出する（Ｓ５２）。図２８では削除手段２６は、確定罫線３１１よりも下にあって横方向が平行に隣接する確定罫線３１２を検出する。削除手段２６は、隣接する確定罫線を検出すると（Ｓ５２：ｙｅｓ）、検出対象の確定罫線の隣接する確定罫線とのから形成される範囲の罫線判定領域を特定する（Ｓ５３）。図２８では削除手段２６は、確定罫線３１２を検出すると（Ｓ５２：ｙｅｓ）、範囲３１６が作る罫線判定領域３１４を特定する（Ｓ５３）。
【００８８】
削除手段２６は、Ｓ５１で特定した検出対象の確定罫線の全ての横方向の範囲について検出処理を行っていない場合（Ｓ５４：ｎｏ）、残りの検出対象の確定罫線の横方向の範囲について再度検出処理を行う。図２８では削除手段２６は、確定罫線３１１の全ての横方向の範囲について検出処理を行っていない場合（Ｓ５４：ｎｏ）、残りの確定罫線３１１の横方向の範囲について再度検出処理を行う。図２８では削除手段２６は、範囲３１７について確定罫線３１１よりも下にあって範囲３１６について横方向が平行に隣接する確定罫線３１３を検出する。図２８では削除手段２６は、範囲３１７が作る罫線判定領域３１５を特定する。
【００８９】
一方、削除手段２６は、検出対象の確定罫線の全ての横方向の範囲について検出処理を行った場合（Ｓ５４：ｙｅｓ）、文書画像データ内の全ての確定罫線について隣接する確定罫線の検出が完了したか否かを判定する（Ｓ５５）。図２８では削除手段２６は、確定罫線３１１の全ての横方向の範囲について検出処理を行った場合、文書画像データ内の全ての確定罫線について隣接する確定罫線の検出が完了したか否かを判定する。削除手段２６は、文書画像データで特定された全ての確定罫線について以上の処理を行った場合（Ｓ５５：ｙｅｓ）、罫線判定領域を登録して処理を完了する。
【００９０】
図２６の説明に戻る。削除手段２６は罫線判定領域に対応する罫線判定値を演算する（Ｓ４２）。罫線判定値は罫線判定領域に含まれる罫線を真の罫線情報とするか否かを判別する閾値である。本実施例では罫線判定値は罫線の長さ情報である。削除手段２６は罫線を判別する長さ情報に基づいて、罫線候補削除手段が不正な罫線を削除する。
【００９１】
削除手段２６は罫線判定領域毎に長さ閾値を設定する。例えば、罫線判定領域の高さ情報を取得し、高さ情報より若干短い長さを閾値とする。例えば２００ｄｐｉの画像であれば罫線判定領域の高さのｄｏｔ数より２０ｄｏｔ数程度短い長さである。または、例えば罫線判定領域内にある罫線候補の長さの頻度分布を求め、頻度分布の最大値を閾値とする、あるいは、頻度分布の最大値に対応する罫線候補の長さの２倍を閾値とするという方法がある。
【００９２】
次に、削除手段２６は不適当な罫線情報を削除する（Ｓ４３）。具体的には、削除手段２６は平行な確定罫線により構成される罫線判定領域内の不適当な罫線情報を削除する。不適当な罫線情報はＳ４２で算出した罫線を判別する長さ情報よりも短い長さの罫線情報である。本実施例では横方向の確定罫線情報の組によって構成される罫線判定領域内の不適当な縦方向の罫線情報を削除する。なお、Ｓ４３の処理において、罫線情報は縦方向の罫線情報だけでなく横方向の罫線情報を削除する処理を行っても良い。不適当な罫線情報は文字情報を誤検出したものが多い。誤検出した文字の横方向および縦方向の長さは、同程度であるためである。
【００９３】
図３０は削除手段２６が不適当な罫線を削除する時の説明図である。図３０の上段の表３４０１は、罫線情報生成手段２５が生成した文書画像データ内の表の罫線情報である。表３４０１は、確定罫線３４０２、確定罫線３４０３、確定罫線３４０４、確定罫線３４０５、確定罫線３４０６、および確定罫線３４０７を有する。また表３４０１は、確定罫線３４０２と確定罫線３４０３とから罫線判定領域３４０８、確定罫線３４０３と確定罫線３４０４とから罫線判定領域３４０９、確定罫線３４０４と確定罫線３４０５とから罫線判定領域３４１０、確定罫線３４０３と確定罫線３４０６とから罫線判定領域３４１１、確定罫線３４０６と確定罫線３４０７とから罫線判定領域３４１２、および確定罫線３４０７と確定罫線３４０５とから罫線判定領域３４１３を有する。
図３０の中段の表３４２０では、各罫線判定領域毎に定められた不適当な罫線情報を削除する長さを定めるための領域の高さが示される。各罫線判定領域毎に定められた不適当な罫線情報を削除する長さ情報は、それぞれ以下を基準として削除手段２６が算出する。罫線判定領域３４０８については罫線判定領域３４０８の高さ３４１４を基準に算出する。罫線判定領域３４０９については罫線判定領域３４０９の高さ３４１５を基準に算出する。罫線判定領域３４１０については罫線判定領域３４１０の高さ３４１６を基準に算出する。罫線判定領域３４１１については罫線判定領域３４１１の高さ３４１７を基準に算出する。罫線判定領域３４１２については罫線判定領域３４１２の高さ３４１８を基準に算出する。罫線判定領域３４１３については罫線判定領域３４１３の高さ３４１９を基準に削除手段２６が算出する。
【００９４】
それぞれの罫線判定領域毎に求められた罫線を判別する長さ情報によって、削除手段２６はそれぞれの罫線判定領域内の罫線情報が適当か不適当かを判別する。具体的には罫線判定領域毎に求められた罫線を判別する長さ情報よりも短い罫線情報を削除する。図３０の下段の表３４２０は、表３４０１の各領域内の罫線情報３４０２が削除された状態を示す。
【００９５】
なお、罫線生成手段２５がパラメータを設定する際に、罫線判定領域を特定し、各罫線判定領域毎に適切なパラメータを設定することにより高精度な罫線抽出を行うことも可能である。例えば、テクスチャ領域の場合は罫線と判断する閾値を長くすることがある。
【００９６】
出力手段２７は以上で得られた罫線情報を出力する。
【００９７】
以上により本実施例によって、入力画像中に実線、境界罫線、テクスチャ境界罫線を含む複数種の罫線が混在している場合でも、それぞれの罫線種類に応じて適切な罫線抽出処理を行うことができ、罫線抽出の精度を向上させることができる。これにより罫線抽出の誤り訂正作業の負担を軽減することができ、ユーザの作業工数の低減が可能になる。
【００９８】
また、表を構成する領域毎に不適当な罫線を削除するための閾値情報を変更することを可能としたため、表を構成する項目の大きさが異なる場合でも誤検出を防止することが可能となる。
【００９９】
従来は、ラン線分やエッジ線分をそれぞれ抽出して罫線候補を生成し、罫線候補からノイズ除去を行って罫線情報を生成し、最終的に得られた結果を統合する。つまりラン線分とエッジ線分は直接比較されることは無い。テクスチャ境界と実線境界とを検出するとエッジ抽出では線分候補としてテクスチャ境界で１本、実線境界で２本、合計３本の罫線候補が検出される。しかし、テクスチャ境界と実線境界とが近くにある場合、エッジ線分の間隔が近いため実線を構成する線分の組の対応付けが困難である。したがって、従来技術は検出した３本のエッジ線分のいずれを統合して実線に変換すべきかを判断することができない。また、従来技術としてラン線分抽出手段とエッジ線分抽出手段を並行して実行し、それぞれの罫線抽出結果を統合するという方法も考えられるが、同じ領域から競合する罫線候補が抽出された場合に片方を選ぶ必要があるなど、難しい判断が必要になることに変わりはない。以上のように、従来技術を組み合わせただけでは複数の種類の罫線が混在した画像からの罫線抽出を高精度に実行することは不可能である。
【０１００】
一方、本実施例では、ラン線分とエッジ線分を重ね合わせた結果から、一本の実線罫線に統合されるべきエッジ線分2本の間にラン線分が挟まる形になり、実線罫線と境界罫線とを正しく生成することができる。以上のように、罫線候補から罫線情報を生成する前にラン線分とエッジ線分とを比べることによって、複数の種類の罫線を高い精度で抽出することができる。更に、罫線候補の種類に応じて罫線生成パラメータを変更するため、精度よく罫線を抽出することができる。
【図面の簡単な説明】
【０１０１】
【図１】本実施例の原理構成図である。
【図２】本実施例の表認識装置１０のハードウェア構成図である。
【図３】本実施例で入力される文書画像データの表３０である。
【図４】本実施例で表３０から出力される表４０である。
【図５】ランレングス処理の原理図である。
【図６】ラン線分検出手段２２が実行する処理のフローチャートである。
【図７】ラン線分の候補の削除の状態を示す図である。
【図８】黒画素のグループ化の状態を説明する図である。
【図９】領域境界の罫線候補の設定例である。
【図１０】エッジ抽出の説明図である。
【図１１】エッジ抽出で検出するテクスチャ領域９４の境界の説明図である。
【図１２】Ｃａｎｎｙ法を利用したエッジ線分抽出手段の処理のフローチャートである。
【図１３】図１２のフローチャートでの各ステップの処理の状態を説明する図である。
【図１４】ガウシアンフィルタ係数１２０１の例である。
【図１５】横方向のエッジを検出するためのソーベルフィルタ１３０１である。
【図１６】縦方向のエッジを検出するためのソーベルフィルタ１４０１である。
【図１７】ヒステリシス処理によるエッジを構成する画素の特定の説明図である。
【図１８】罫線候補抽出手段２４が実行する処理のフローチャートである。
【図１９】罫線候補の位置から判断される罫線情報の位置および種類との関係である。
【図２０】罫線情報生成手段２５が実行する処理のフローチャートである。
【図２１】罫線候補の統合の第一の説明図である。
【図２２】罫線候補の統合の第二の説明図である。
【図２３】罫線候補の統合の第三の説明図である。
【図２４】テクスチャ境界の判定の説明図である。
【図２５】表２８３と表の項目内の文字列の大きさとの関係を示す図である。
【図２６】削除手段２６が実行する処理のフローチャートである。
【図２７】罫線判定領域の設定例である。
【図２８】文書画像データ内の確定罫線が部分的に平行する状態を示す説明図である。
【図２９】削除手段２６が罫線判定領域を特定を設定する処理のフローチャートである
【図３０】削除手段２６が不適当な罫線を削除する時の説明図である
【符号の説明】
【０１０２】
２１  画像入力手段
２２  ラン線分検出手段
２３  エッジ線分検出手段
２４  罫線候補抽出手段
２５  罫線情報生成手段
２６  削除手段
２７  出力手段
１０  表認識装置１０
１１  制御部１１
１２  入力手段１２
１３  出力手段１３
１４  記憶手段１４
１５  メモリ１５
１６  バス１６
【図１】
2008198157.tif 000005
【図２】
2008198157.tif 000006
【図３】
2008198157.tif 000007
【図４】
2008198157.tif 000008
【図５】
2008198157.tif 000009
【図６】
2008198157.tif 000010
【図７】
2008198157.tif 000011
【図８】
2008198157.tif 000012
【図９】
2008198157.tif 000013
【図１０】
2008198157.tif 000014
【図１１】
2008198157.tif 000015
【図１２】
2008198157.tif 000016
【図１３】
2008198157.tif 000017
【図１４】
2008198157.tif 000018
【図１５】
2008198157.tif 000019
【図１６】
2008198157.tif 000020
【図１７】
2008198157.tif 000021
【図１８】
2008198157.tif 000022
【図１９】
2008198157.tif 000023
【図２０】
2008198157.tif 000024
【図２１】
2008198157.tif 000025
【図２２】
2008198157.tif 000026
【図２３】
2008198157.tif 000027
【図２４】
2008198157.tif 000028
【図２５】
2008198157.tif 000029
【図２６】
2008198157.tif 000030
【図２７】
2008198157.tif 000031
【図２８】
2008198157.tif 000032
【図２９】
2008198157.tif 000033
【図３０】
2008198157.tif 000034