(57)【要約】      （修正有）【課題】混在する複数の文字列から文字列を効果的に抽出する方法を提供する。【解決手段】指定文字列を抽出する方法及び装置。文字列のイメージを垂直に分離する方法は、文字列イメージが複数の文字列を含むか否かを判定する複数の文字列判定ステップと、文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去ステップを含む。本発明はまた指定文字列を抽出する方法も提供する。【選択図】図５Ａ
2007073048.tif 000002
【特許請求の範囲】
【請求項１】
文字列イメージを垂直に分離するプログラムであって、
文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手順と、
前記文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去する文字列間ノイズ除去手順と、
をコンピュータに実行させることを特徴とする文字列イメージを垂直に分離するプログラム。
【請求項２】
前記複数文字列判定手順が、前記文字列イメージの高さが文字列の高さの閾値よりも大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする請求項１に記載の文字列イメージを垂直に分離するプログラム。
【請求項３】
文字列イメージを垂直に分離する方法であって、
文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定工程と、
前記文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去する文字列間ノイズ除去工程と、
を含んだことを特徴とする文字列イメージを垂直に分離する方法。
【請求項４】
前記複数文字列判定工程が、前記文字列イメージの高さが文字列の高さの閾値よりも大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする請求項３に記載の文字列イメージを垂直に分離する方法。
【請求項５】
文字列イメージを垂直に分離する装置であって、
文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手段と、
前記文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去する文字列間ノイズ除去手段と、
を備えたことを特徴とする文字列イメージを垂直に分離する装置。
【請求項６】
前記複数文字列判定手段が、前記文字列イメージの高さが文字列の高さの閾値より大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする請求項５に記載の文字列イメージを垂直に分離する装置。
【請求項７】
指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出手順をコンピュータに実行させる指定文字列を抽出するプログラムであって、
水平に連結された２つ以上の文字列を分離する水平文字列分離手順と、
前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手順、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去手順を含み、垂直に連結された２つ以上の文字列を分離する垂直文字列分離手順と、
前記垂直文字列分離手順及び前記水平文字列分離手順のうち後に行われる手順が、前記文字列の垂直分離または水平分離を行うか否かを判定する分離判定手順と、
をさらにコンピュータに実行させ、
前記分離判定手順により前記垂直文字列分離手順及び前記水平文字列分離手順のうち後に行われる手順が前記文字列の垂直分離または水平分離を行うと判定された場合、前記垂直文字列分離手順及び前記水平文字列分離手順のうち後に行われる手順によって分離される文字列がなくなるまで、分離された文字列イメージに対する前記文字列初期抽出手順、前記水平文字列分離手順、垂直文字列分離手順及び分離判定手順が反復されることを特徴とする指定文字列を抽出するプログラム。
【請求項８】
前記水平文字列分離手順は、
前記文字列が間隔を有する分離不可である文字列か否かを検査する文字列分離型判定手順と、
前記文字列分離型判定手順により前記文字列の分離型が間隔を有する分離不可な文字列ではないと判定された場合に、分離間隔の閾値を推定する分離間隔閾値推定手順と、
前記分離間隔閾値推定手順によって推定された分離間隔の閾値に基づいて、水平文字列分離を行う水平文字列分離手順と、
をコンピュータに実行させることを特徴とする請求項７に記載の指定文字列を抽出するプログラム。
【請求項９】
指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出工程を含む指定文字列を抽出する方法であって、
水平に連結された２つ以上の文字列を分離する水平文字列分離工程と、
前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定工程、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去工程を含み、垂直に連結された２つ以上の文字列を分離する垂直文字列分離工程と、
前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程が、前記文字列の垂直分離または水平分離を行うか否かを判定する分離判定工程と、
をさらに含み、
前記分離判定工程により前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程が前記文字列の垂直分離または水平分離を行うと判定された場合、前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程によって分離される文字列がなくなるまで、分離された文字列イメージに対する前記文字列初期抽出工程、前記水平文字列分離工程、垂直文字列分離工程及び分離判定工程が反復されることを特徴とする指定文字列を抽出する方法。
【請求項１０】
指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出手段を備えた指定文字列を抽出する装置であって、
水平に連結された２つ以上の文字列を分離する水平文字列分離手段と、
前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手段、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去手段を備え、垂直に連結された２つ以上の文字列を分離する垂直文字列分離手段と、
前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段が、前記文字列への垂直分離または水平分離を行うか否かを判定する分離判定手段と、
を備え、
前記分離判定手段により前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段が前記文字列への垂直分離または水平分離を行うと判定された場合、分離された文字列イメージが前記文字列初期抽出手段に入力され、前記文字列初期抽出手段、水平文字列分離手段、垂直文字列分離手段及び分離判定手段はそれぞれ処理を実行し、前記文字列初期抽出手段、水平文字列分離手段、垂直文字列分離手段及び分離判定手段の各処理は、前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段によって分離される文字列がなくなるまで繰り返し行われることを特徴とする指定文字列を抽出する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列イメージを垂直に分離するプログラム、方法及び装置、指定文字列を抽出するプログラム、方法及び装置に関し、より詳しくは、テーブルカラムのような複数の文字列から指定文字列を抽出するプログラム、方法及び装置に関するものである。
【背景技術】
【０００２】
指定文字列の抽出は、テーブルフォーム認識への適用においては、極めて重要な機能である。ここでの目的は、指定文字列に用いられる所定の基準情報（指定文字列記述情報として参照される）を用いて、複数の文字列が混在しているイメージから指定文字列を抽出することにある。しかし、テーブルカラムから指定文字列を検出することは容易ではない。これは、第一に、カラムには通常一つ以上の文字列が存在するからである。第二に、文字列の間にノイズが多数ある可能性があるからである。図１は、テーブルフォーム認識の一例を示す図である。このテーブルフォームでは、そのカラムに５つのテキスト情報行を有するが、２行目の右側部分における数字／英文文字列だけが抽出される情報となっている。図１におけるグレーのブロックは、会社の名称などの漢字を表している。図１にはまた、印章のイメージによりもたらされる背景ノイズが存在する。
【０００３】
基準指定文字列は、基準指定文字列用にあらかじめ定義された情報（たとえば、行のシリアル番号や座標情報など）により正確に抽出される。指定文字列の抽出における困難さは、指定文字列をどのように效果的に記述し、抽出時の背景ノイズの影響をどのように除去するのかにある。これと同時に、指定文字列と実際の文字列との間には大きな違いがある可能性があるため、基準指定文字列の位置及び大きさの情報は、単に抽出時の参照情報として利用される。
【０００４】
本出願に先立って開示された文字列抽出を取り扱う論文及び特許として以下のようなものが存在している。
【０００５】
【非特許文献１】YMY Hasan, LJ Karam, "Morphological text extraction from images", IEEE Transaction on Image Processing, 2000 v9, iss.11, p1979-1983
【特許文献１】米国特許第6,332,046号明細書
【特許文献２】米国特許第6,690,824号明細書
【特許文献３】米国特許第5,050,222号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
これらの方法の主眼点は、異なる背景イメージから文字列をいかにして抽出するかということにあるが、これらの方法では混在する複数の文字列から指定文字列を效果的に抽出することができない。これらの方法に内在している別の問題点は、これらの方法が背景ノイズの影響に極めて敏感であるということにある。図２は、図１に示されたイメージに米国特許第６，３３２，０４６Ｂ１号の方法を適用した場合の文字列の抽出結果の例を示したものである。この例では、合計６つの文字列が抽出されている。しかし、指定文字列は２つの部分に分離されており、そのうちの一つは印章のノイズの影響のためノイズストロークによって別の文字列に連結されている。
【０００７】
従って、本発明の目的は、背景ノイズを效果的に除去することにより、指定文字列を含むテーブルカラムなどから全文字列を正確に抽出することにある。本発明の他の目的は、指定文字列記述情報を利用して、複数の抽出された文字列中から指定文字列を分離することにある。
【課題を解決するための手段】
【０００８】
本発明の一様態によると、文字列イメージを垂直に分離する方法であって、文字列イメージが複数の文字列を含むか否かを判定する複数の文字列判定ステップと、文字列イメージが複数の文字列を含む場合、文字列の間のノイズを除去する文字列間ノイズ除去ステップとを含んだ文字列イメージを垂直に分離する方法が提供される。
【０００９】
本発明の別の様態によると、文字列イメージを垂直に分離する装置であって、文字列イメージが複数の文字列を含むか否かを判定する複数の文字列判定手段と、文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去手段とを備えた文字列イメージを垂直に分離する装置が提供される。
【００１０】
本発明のまた別の様態によると、指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出工程を含む指定文字列を抽出する方法であって、水平に連結された２つ以上の文字列を分離する水平文字列分離工程と、前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定工程、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去工程を含み、垂直に連結された２つ以上の文字列を分離する垂直文字列分離工程と、前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程が、前記文字列の垂直分離または水平分離を行うか否かを判定する分離判定工程と、をさらに含み、前記分離判定工程により前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程が前記文字列の垂直分離または水平分離を行うと判定された場合、前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程によって分離される文字列がなくなるまで、分離された文字列イメージに対する前記文字列初期抽出工程、前記水平文字列分離工程、垂直文字列分離工程及び分離判定工程が反復されることを特徴とする指定文字列を抽出する方法が提供される。
【００１１】
本発明のさらに別の様態によると、指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出手段を備えた指定文字列を抽出する装置であって、水平に連結された２つ以上の文字列を分離する水平文字列分離手段と、前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手段、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去手段を備え、垂直に連結された２つ以上の文字列を分離する垂直文字列分離手段と、前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段が、前記文字列への垂直分離または水平分離を行うか否かを判定する分離判定手段と、を備え、前記分離判定手段により前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段が前記文字列への垂直分離または水平分離を行うと判定された場合、分離された文字列イメージが前記文字列初期抽出手段に入力され、前記文字列初期抽出手段、水平文字列分離手段、垂直文字列分離手段及び分離判定手段はそれぞれ処理を実行し、前記文字列初期抽出手段、水平文字列分離手段、垂直文字列分離手段及び分離判定手段の各処理は、前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段によって分離される文字列がなくなるまで繰り返し行われることを特徴とする指定文字列を抽出する装置が提供される。
【発明の効果】
【００１２】
本発明によれば、文字列イメージが複数の文字列を含むか否かを判定し、文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去することとしたので、背景ノイズを效果的に除去することにより、指定文字列を含むテーブルカラムなどから全文字列を正確に抽出することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明の好ましい実施例を添付された図面を参照して詳しく説明する。本実施例は、本発明の典型例を本発明の説明用に示すだけのものであり、本発明の保護範囲を制限するものではない。
【実施例】
【００１４】
図３Ａは、本発明の一実施例によって指定文字列を抽出する装置の機能を示したブロック図である。図３Ａに示すように、本発明の一実施例によって指定文字列を抽出する装置は、互いに順次連結されている入力部３０１、文字列初期抽出部３０２、水平文字列分離部３０３、垂直文字列分離部３０４、ノイズ点除去判定部３０５、文字列左／右境界位置調整部３０７、文字列上／下境界位置調整部３０８、指定文字列決定部３０９、出力部３１０、及び、上記水平文字列分離部３０３、垂直文字列分離部３０４、文字列左／右境界位置調整部３０７、上記指定文字列決定部３０９に連結された指定文字列記述情報記憶部３１１を含む。
【００１５】
図３Ｂは、本発明の一実施例による指定文字列を抽出する装置の処理を示すフローチャートである。
【００１６】
図３Ｂに示すように、本実施例によると、指定文字列を抽出する装置による文字列抽出時、テーブルカラムの二値化されたイメージが入力部３０１から入力された後（ステップＳ３０１）、この二値化されたイメージは、文字列初期抽出部３０２によって初期抽出される。初期抽出は、上記二値化されたイメージから予備的に文字列を抽出する従来技術（たとえば、米国特許第６，３３２，０４６Ｂ１号に記載された方法など。ただし、本発明はこれに限定されない。）によって実行される（ステップＳ３０２）。上記文字列初期抽出ステップの出力は、抽出された文字列の数、各文字列のイメージ及び各文字列のイメージに外接する矩形の座標、各文字列に含まれる文字などの数、各文字のイメージ及び各文字のイメージに外接する矩形の座標などを含む。
【００１７】
図２に示すように、文字列初期抽出部３０２の効果は、背景ノイズの影響の下がある場合には満足できるものではない。そのため、本発明の実施例では、水平文字列分離部３０３は、指定文字列記述情報記憶部３１１に記憶された文字列の分離型のような情報に従って、水平方向に沿って互いに連結されている複数の文字列を分離する（ステップＳ３０３）。次いで、垂直文字列分離部３０４は、文字列間のノイズを除去することによって、垂直方向に沿って互いに連結されている２つ以上の文字列を分離する（ステップＳ３０４）。その後、ステップＳ３０５で、ノイズ点除去判定部３０５は、ステップＳ３０４で除去されたノイズがあるか否か（すなわち、垂直方向に沿って分離が行われたか否か）を判定する。除去されたノイズがあった場合（ステップＳ３０６：ＹＥＳ）、除去されたノイズがなくなるまで（ステップＳ３０６：ＮＯ）ステップＳ３０２からステップＳ３０６が繰り返される。
【００１８】
上記の説明において、上記水平文字列分離処理は、垂直文字列分離処理に先行しておこなわれるが、垂直文字列分離処理を水平文字列分離処理に先行しておこなってもよい。
【００１９】
除去されたノイズがなかった場合（ステップＳ３０６：Ｎｏ）、分離された文字列の左／右境界の位置の調整がおこなわれ（ステップＳ３０７）、さらに文字列の上／下境界の位置の調整がおこなわれる（ステップＳ３０８）。そして、指定文字列が決定され（ステップＳ３０９）、指定文字列のイメージが出力される（ステップＳ３１０）。
【００２０】
以下に、本発明による各ステップの処理結果について図１３Ａ〜図１３Ｃを参照して説明する。
【００２１】
図１３Ａは、水平文字列分離部３０３が図２の各文字列に対して水平文字列分離をおこなった後の結果を示したものである。最も上の文字列は、左側及び右側の２つの文字列に正確に分離される（右側の文字列は事実上ノイズで構成されている）。しかし、水平文字列分離部３０３は、図２の中間部分において互いに連結されている３つの文字列の最初の文字列を直接分離することはできない。水平文字列分離部３０３は、文字列が文字文字列を１つだけ含むということを仮定するので、文字の間隔により当該文字列が分離されるべきか否かを判定する。しかし、図２に示す互いに連結された３つの文字列における上位文字列と下位文字列との間の干渉のため、水平文字列分離部３０３は、文字の間隔を直接推定することができず、したがって水平分離を正確に行うことができない。
【００２２】
図１３Ｂは、水平文字列分離部３０３によってすでに水平方向に分離された図１３Ａに示す各文字列に対して垂直文字列分離部３０４が垂直分離を行った後の１回目の反復における結果を示したものである。図１３Ａにおいて互いに連結されていた３つの文字列間のノイズは除去され、３つの文字列が正確に分離される。しかし、３つの文字列の左側及び右側の境界は、垂直分離前のままである。すなわち、指定文字列は、依然として左側及び右側の２つの部分に分離している。
【００２３】
ノイズ点除去判定部３０５は、文字列初期抽出部３０２に入力された二値化されたイメージを垂直文字列分離部３０４から出力されたイメージと比べることによってノイズ点が除去されたか否かを判定する。図１３Ａ及び図１３Ｂに示すように、ノイズが除去されると、元の抽出された文字列が変更される可能性があるので、垂直文字列分離部３０４から出力された二値化されたイメージは初期抽出処理をおこなう文字列初期抽出部３０２に再び送られる。図１３Ｃは、２回目の反復後の水平文字列分離部３０３の出力結果を示したものである。この場合、指定文字列が正確に分離される。２回目の反復で垂直文字列分離部３０４ではノイズが除去されないので、上記反復は終了する。これにより、正確に抽出された文字列が得られる。
【００２４】
分離された文字列は、文字列の上下左右の位置を調整するため、文字列左／右境界位置調整部３０７及び文字列上／下境界位置調整部３０８に入力される。指定文字列の抽出は、文字列の長さ及び幅情報に依存するので、文字列左／右境界位置調整部３０７及び文字列上／下境界位置調整部３０８は、文字列の上下左右の境界を正確に位置づける処理をおこなう。
【００２５】
最後に、抽出されたすべての文字列は、指定文字列を探索するため、指定文字列記述情報記憶部３１１に記憶された情報（指定文字列記述情報記憶部３１１に記憶された情報については次の段落で説明される）を利用する指定文字列決定部３０９に入力される。
【００２６】
指定文字列記述情報記憶部３１１に記憶される情報は、指定文字列の文字列数、各基準指定文字列イメージに外接する矩形の座標情報、文字列の分離型、文字列のデータ型、及び文字列の長さの型を含む。図１４Ａに示すように、文字列には３つの分離型、すなわち、分離不可文字列、分離可能文字列及び間隔を有する分離不可文字列がある。図１４Ａは、文字列の３種類の型の例を示す。図１４Ｂに示すように、文字列には４つのデータ型、すなわち、数字（数値）文字列、記号文字列、合計文字列及び中国語文字列がある。また、文字列には２つの長さの型、すなわち、可変長さ文字列及び不変長さ文字列がある。
【００２７】
以下に、図３の各部の機能及び具現例を、添付された図面を参照して詳細に説明する。
【００２８】
図４Ａは、水平文字列分離部３０３について説明する図である。
【００２９】
本実施例の水平文字列分離部３０３は、互いに順次連結されている文字列分離型判定部、分離間隔閾値推定部及び水平文字列分離処理部を含む。文字列分離型判定部は、入力された初期抽出文字列の分離型が指定文字列記述情報記憶部３１１に記憶された文字列分離型のどれに属するか、すなわち、入力された初期抽出文字列が分離不可文字列、分離可能文字列、間隔を有する分離不可文字列のどれに属するかを判定する。分離間隔閾値推定部は、水平分離処理に用いられる分離間隔の閾値を推定する。水平文字列分離処理部は、水平文字列分離を行うため、上記分離間隔の閾値を利用する。
【００３０】
図４Ａは、水平文字列分離部３０３の機能を示すフローチャートである。初期抽出された文字列が入力された後（ステップＳ４０１）、文字列分離型判定部は、指定文字列の分離型を判定する（ステップＳ４０２）。間隔を有する分離不可文字列があれば（ステップＳ４０６：ＹＥＳ）、入力された文字列が直接出力として返される。分離不可文字列または分離可能文字列があれば（ステップＳ４０６：ＮＯ）、分離間隔閾値推定部は、水平分離処理に用いられる分離間隔の閾値を推定する（ステップＳ４０３）。次いで、水平文字列分離処理部は、水平文字列分離を行うため分離間隔の閾値を用い（ステップＳ４０４、ステップＳ４０５）、最終的に水平に分離された文字列を出力する（ステップＳ４０７）。
【００３１】
ここで文字列は、文字列初期抽出部３０２から得られる。指定文字列が、文字列内の文字間で明瞭な間隔なしに密接に連結されている文字列である場合、これは分離不可型である。指定文字列が図１４Ａの２及び３に示すように、明らかな間隔を含む場合、二つの状況があり得る。一つは、図１４Ａの３に示すように、間隔によって分離された２つの密接に連結された文字列がすべて必要とされる場合（すなわち、それらが指定文字列である場合）である。このような状況は、間隔を有する分離不可文字列と定義される。もう１つの状況は、図１４Ａの２に示すように、間隔によって分離された２つの文字列のうち１つだけが必要とされる場合である。このような状況は、分離可能文字列と定義される。
【００３２】
分離間隔閾値推定部において、入力された各文字列に対して、文字列内の水平方向の間隔のヒストグラムは、隣接するすべての文字の水平間隔を用いて最初に計算される。すなわち、Ｈ（Ｓ）＝Ｎｓとなる。ここで、Ｓは画素点を単位とする水平間隔の大きさで、Ｎｓは対応するＳ値を有する水平間隔の数である。例えば、Ｈ（１０）＝３は、距離が１０画素点である間隔の数が３であることを示す。最大のヒストグラム値（すなわち、Ｎｓの最大値。このような距離を有する間隔の数が最も多いため、これを最も代表的な間隔とする。）に対応する水平間隔Ｓｍａｘは、上記ヒストグラムから見つけ出すことができる。分離間隔の閾値は、以下で述べられる２つの値のより大きい値によって決定される。一つは、指定文字列記述情報に記憶された指定文字列の高さで、もう一つは、Ｃ×Ｓｍａｘである。ここで、Ｃは係数であり、例えばＣ＝３である。この値は経験的に得られるものであり、およそ２〜５の間である。文字列内の文字間の間隔は、例えば１画素点あるいは２画素点というように、極めて小さくなる場合があるため、このような場合にはＳｍａｘは正確に１となるであろう。しかし、閾値がこのような値によって直接定義されれば、閾値は極めて小さくなってしまう（Ｃ＝３の場合、閾値は僅かに３である）。従って、閾値を上記文字の高さと比べる必要があり、間隔があまりにも小さければ、閾値は高さによって決定される。他方、間隔が比較的大きいような状況では、文字列内にある文字は多くはない。このような状況で推定されたＳｍａｘは、充分に正確でない場合もある（例えば、同一の距離を有する間隔がない場合）。この場合、高さによって閾値を決定するのが比較的安定的なものとなる。
【００３３】
分離間隔の閾値推定の間、文字列初期抽出部３０２から出力された文字列の各文字の位置情報が利用される。図４Ｂは、一つの文字列内の２つの隣接する文字イメージを、外側に連結された矩形の対応する座標とともに示したものである。最初の文字に外接する矩形の左上及び右下の座標がそれぞれ（ＸSi，ＹSi）及び（ＸEi，ＹEi）で、二番目の文字に外接する矩形の左上及び右下の座標がそれぞれ（ＸSi+1，ＹSi+1）及び（ＸEi+1，ＹEi+1）で、この２つの文字間の水平間隔がＸSi+1−ＸEi＋１であると仮定する。
【００３４】
分離間隔の閾値を用いて水平文字列分離を行う水平文字列分離処理部において、各文字列内の２つの文字間の間隔が検査される。文字間の水平間隔が分離間隔の閾値より大きいならば、文字列はこの２つの文字間から２つの文字列に分離される。図４Ｂに示す状況を例として挙げれば、分離の間、第１の文字列の左境界は元の文字列の左境界であり、右境界はＸEiであり、第２の文字列の左境界はＸSi+1であり、右境界は元の文字列の右境界である。上境界および下境界は、元の文字列と同一である。図１３Ａの最も上側の文字列に示されるように、図２における最も上側の文字列は、２つの文字列に水平分割される。
【００３５】
以下に、図５Ａ〜図８を参照して図３に示した垂直文字列分離部３０４について説明することとする。
【００３６】
図５Ａは、図３における垂直文字列分離部３０４の機能を示したブロック図である。図５Ａに示すように、本発明による垂直文字列分離部３０４は、複数文字列判定部５０２、文字列高さ閾値推定部５０６、第１ストローク閾値推定部５０７及び文字列間ノイズ除去部５０３を含む。文字列高さ閾値推定部５０６は、指定文字列記述情報記憶部３１１に記憶された情報に従って文字列の高さの閾値を計算し、複数文字列判定部５０２は、文字列高さ閾値推定部５０６によって計算された文字列の高さの閾値に従って、複数の文字列が存在するか否かを判定する。複数文字列判定部５０２が複数の文字列が存在すると判定した場合、文字列間ノイズ除去部５０３は、第１ストローク閾値推定部５０７によって推定された第１のストローク閾値に従って、文字列間のノイズを除去し、垂直的に分離された文字列を得る。
【００３７】
図５Ｂは、図３における垂直文字列分離部３０４の処理のフローチャートである。図５Ｂに示すように、水平に分離された文字列が入力された後（ステップＳ５０１）、水平に分離された各文字列の高さと高さの閾値とが、文字列の高さが文字列の高さの閾値より大きいか否かを判定するために比較される（ステップＳ５０２）。上記高さの閾値は、文字列高さ閾値推定部５０６により得られる。文字列の高さが上記高さの閾値以下、あるいは、高さの閾値と同じであれば（ステップＳ５０２：ＮＯ）、この文字列はただ一つの文字文字列を含み、上記文字列は垂直的に分離されず、直接出力される（ステップＳ５０４）。文字列高さ閾値推定部５０６による高さの閾値の計算のための式は、Ｃ１×Ｈである。ここで、Ｃ１は係数で、Ｈは、指定文字列記述情報に記憶された基準文字列の高さである。Ｃ１は、１より少し大きい値となり、例えば、Ｃ１＝１．２である。基準文字列の高さは実際の文字列の高さと異なるため、Ｃ１×Ｈは、実際の指定文字列の最大高さより大きくなければならない。
【００３８】
入力された文字列の高さが高さの閾値より大きければ（ステップＳ５０２：ＹＥＳ）、文字列は複数の文字列を含む可能性があり、この場合、文字列間ノイズ除去部５０３は、この文字列内で垂直に連結されている複数の文字列を分離するため、第１ストローク閾値推定部５０７（これについては後述する）から得られた第１のストローク閾値を用いる。図１３Ｂは、文字列間のノイズ除去後の結果を示したものである。
【００３９】
図６Ａは、文字列間ノイズ除去部５０３の機能を示すブロック図である。図６Ａに示すように、上記文字列間ノイズ除去部５０３は、文字列分割部６０１、有効文字列判定部６０４、再分離判定部６０５及び再分離部６０６を含む。ここで、文字列分割部６０１は、ストロークヒストグラム生成部６０２及びストロークヒストグラム探索部６０３を含む。
【００４０】
図６Ｂは、文字列間ノイズ除去部５０３の処理を示すフローチャートである。文字列のイメージが入力された後（ステップＳ６０１）、ストロークヒストグラム生成部６０２は、入力された文字列のイメージのストロークヒストグラムを得る（ステップＳ６０２）。次いで、ストロークヒストグラム探索部６０３は、ヒストグラムを探索するため、第１ストローク閾値推定部５０７（これについては後述する）によって推定された第１のストローク閾値を用いて、２つの文字列間の可能な分離点とともに、文字列の始点と終点を探索する（ステップＳ６０３）。その後、有効文字列判定部６０４は、ステップＳ６０３においてストロークヒストグラム探索部６０３の探索結果として得られた文字列が有効な文字列か否かを判定する（ステップＳ６０４）。ここで、有効な文字列とは、十分高い高さを有する文字列を意味する。ノイズなどの影響により高さが十分高くない場合、この文字列は必要とされず、後続の処理はなされない。有効な文字列は、２つの状況を含んでいる。１つの状況は、有効な文字列が１つの文字列のみを含むものであり、他の状況は、有効な文字列が１つ以上の文字列を含むものである。この場合、有効な文字列は再分離されなければならない。有効か否かは、文字列の高さと指定文字列記述情報記憶部３１１に記憶された指定文字列記述情報の指定文字列の高さと比べることによって決定される。文字列の高さがＣ２×Ｈより小さければ（ここで、Ｈは指定文字列の高さを示し、Ｃ２は１より小さな係数で、例えば、Ｃ２＝０．６である。Ｃ２×Ｈは、実際の指定文字列の高さより小さくなければならない）、文字列は、有効な文字列ではない。そうでなければ、この文字列は有効な文字列と判定される。文字列が有効な文字列と判定されなかった場合（ステップＳ６０５：ＮＯ）、文字列は直接戻り値として返される（この場合、当該文字列は、出力から消去される）。一方、文字列が有効な文字列と判定された場合（ステップＳ６０５：ＹＥＳ）、再分離判定部６０５は、当該文字列がその上部や下部から分離することができるか否かを判定する（ステップＳ６０６）。文字列が再分離されることができるか否かの判定は、後述されるヒストグラム探索結果によって、あるいは、前述した複数の文字列を含むか否かの判定によって行われる。文字列の再分離ができない場合（ステップＳ６０７：ＮＯ）、再分離ができない文字列のイメージが出力され（ステップＳ６０９）、そのイメージが戻り値として返される。文字列が再分離可能である場合、再分離部６０６によって上下２つの部分に分割され（ステップＳ６０８）、分割された２つの部分のそれぞれに関して、文字列がこれ以上再分離できなくなるまで、ステップＳ６０２からステップＳ６０７の処理が繰り返される。そして、出力の前には、まず空白の出力イメージブロックが生成され、毎回探索された有効な分離不可文字列のイメージが、出力イメージブロックにコピーされる。これにより、文字列のイメージから抽出され、ノイズが除去された文字列が記憶される。
【００４１】
以下に、ストロークヒストグラム生成部６０２の原理について説明する。
【００４２】
ストロークヒストグラム生成部６０２には文字列の二値化されたイメージが入力される。ここで、１の画素点値は、ストローク画素点を示し、０の画素点値は、背景画素点を示す。ヒストグラムは、以下の式、Ｈｓｔｒ（Ｓ）＝Ｎｓｔｒ、によって表わされる。ここで、Ｓは二値化されたイメージの水平文字列のインデックス値であり、Ｓの値は０〜ｈ−１に設定され、上記イメージの最も上側の文字列から最も下側の文字列までを示す。ここで、ｈは入力されたイメージの高さ（すなわち、文字列の総数）を示す。Ｎｓｔｒは、Ｓ番目の文字列のストローク部分の数を示す。Ｓ番目の文字列に関し、ストロークヒストグラム生成部６０２は左側から右側に、０ではない最初の画素点（ストローク画素点）を探索する。上記画素点は、ストローク部分の左側の境界を示す。次いで、ストロークヒストグラム生成部６０２は、その画素点の次の点から探索を継続し、１の画素値を有するが次の点の画素値が０である最初の画素点（すなわち、画素値が１から０に変換される最初の画素点）を探索する。この点は、上記ストローク部分の右側の境界を示す。探索された左側および右側の境界の１対は、１つのストローク部分を示す。ストロークヒストグラム生成部６０２は、すべてのストローク部分を探索するため、Ｓ番目の文字列を走査し、得られたストローク部分の総数をＮｓｔｒに割り当てる。
【００４３】
図７は、図６Ａにおけるストロークヒストグラム探索部６０３の処理を示したフローチャートである。ストロークヒストグラムＨｓｔｒ（Ｓ）が入力された後（ステップＳ７０１）、始点探索部（図示せず）は、まず、第１のストローク閾値より大きいヒストグラム値（すなわちＮｓｔｒ）を有する第１の点を探索するため、０からｈ−１の順に上記ヒストグラムを探索し、その第１の点を始点として指定する（ステップＳ７０２）。始点が探索されない場合（ステップＳ７０３：ＮＯ）、ストロークヒストグラム探索部６０３は、「有効な文字列がない」という情報を返す。始点が探索された場合（ステップＳ７０３：ＹＥＳ）、終点探索部（図示せず）は、ｈ−１から０の順に第１のストローク閾値より大きいヒストグラム値を有する第１の点を探索して、第１の点を終点として指定する（ステップＳ７０４）。次いで、中間点探索部は、最小のヒストグラム値を有する点を探索するため、始点と終点との間のヒストグラムを探索して、探索された点を中間点として指定する（ステップＳ７０５）。中間点に該当するストロークヒストグラム値が第１のストローク閾値より小さければ（ステップＳ７０６：ＹＥＳ）、文字列が分離可能であるということを示し、ストロークヒストグラム探索部６０３は、始点、終点、及び中間点の位置を返す（ステップＳ７０８）。そうでなければ（ステップＳ７０６：ＮＯ）、上記文字列は分離不可であり、ストロークヒストグラム探索部６０３は、始点及び終点の位置を返す（ステップＳ７０９）。
【００４４】
第１のストローク閾値は、極めて重要なパラメータである。本テキストにおいて、ストローク閾値は、１つの文字列における文字数の下限であり、それは文字列ストロークの特性を利用する。テキストイメージの各文字列が走査される場合、文字列のイメージが文字列を１つだけ含むならば、その走査は、この文字列の各文字を少なくとも通過しなければならない。言い換えれば、実際の文字列のストロークヒストグラムの値は、その文字列にある文字数より大きくなければならない。もし文字列イメージが１つ以上の文字列を含めば、ノイズのためそのテキストは互いに連結されている。このような状況下では、ノイズがある文字列のストロークヒストグラムの値は、文字列内のストロークの数より通常ずっと少なくなる。図１３Ｅは、ノイズを有する文字列のストロークヒストグラムの例を示したものである。従って、このような文字列の特性は、ノイズを除去し、文字列を分離するのに利用される。
【００４５】
実際の処理時には、第１のストローク閾値は、指定文字列記述情報に記憶された文字列に含まれる文字数のみに依存して設定されるべきではない。その理由は、図１３Ｂに示すように、指定文字列は、文字列初期抽出部３０２で幾つかの部分に分離されてもよいためである。基準文字列に含まれた文字の数だけが閾値として使用されれば、これらの部分すべてが、上記ストローク閾値の要求を満足できない可能性がある。したがって、本発明では、第１のストローク閾値を計算するため、第１ストローク閾値推定部５０７を用いることとしている。
【００４６】
図８は、第１ストローク閾値推定部５０７の処理を示したフローチャートである。第１のストローク閾値の推定を行う場合において、第１ストローク閾値推定部５０７の文字列文字計算部（図示せず）は、まず指定文字列記述情報記憶部３１１からの指定文字列記述情報に従って、文字列内の文字の数Ｎｃｈａｒを取得する（ステップＳ１４０２）。この値は、統計的に基準文字列（すなわち、理想的な文字列）内の文字の数を数えることによって得られる。複数の文字列があれば、Ｎｃｈａｒの値は、複数の文字列中の最も短い文字列に含まれた文字の数である。次いで、判定部は、上記文字列が分離不可なのか否かを判定する（ステップＳ１４０３）。ここで、分離は水平分離を意味するが、分離可能か否かは指定文字列記述情報記憶部３１１の情報を用いることによって判定される。指定文字列が分離不可であれば（ステップＳ１４０３：ＹＥＳ）、文字密度推定部（図示せず）は、ステップＳ１４０４において文字密度を推定するため、以下の式を採用する。
【００４７】
ＤＥＮ
＝基準文字列の文字の数／基準文字列のイメージの幅  （１）
【００４８】
その後、ステップＳ１４０５において、第１閾値計算部は、第１のストローク閾値ＴＨｓｔｒｏｋｅ１を計算するため、文字密度を利用する。ここで、
ｄ＝ＤＥＮ×入力された文字列の幅−１，  （２）
とする。
【００４９】
そして、ｄ＞Ｎｃｈａｒ−１であれば、
ＴＨｓｔｒｏｋｅ１＝Ｎｃｈａｒ−１，
そうでなければ、
ＴＨｓｔｒｏｋｅ１＝ｄ，  （３）
とする。
【００５０】
上記の式においては１を引くアルゴリズムが用いられているが、２などの他の数字を引くこととしてもよいことに注意されたい。あるいは、最終的な閾値は、計算された文字数に所定の割合（例えば、９０％など）を掛けて得ることができる。これにより、途切れたストロークによりストローク数が減る現象を避けることができる。
【００５１】
一方、指定文字列が分離可能な文字列または間隔を有する分離不可である文字列であれば（ステップＳ１４０３：ＮＯ）、第２閾値計算部は、ステップＳ１４０６で第２の閾値を設定する。一例においては、閾値ＴＨｓｔｒｏｋｅ１はＮｃｈａｒ−１として直接指定される。
【００５２】
文字密度は、指定文字列が複数の文字列に分離される場合、極めて重要である。式（２）のｄは、入力された文字列にどれだけ数の文字があるかを正確に推定することができる。式（３）は、（図１３Ａに示すように）指定文字列が他の水平文字列とともに連結されている可能性があるので、第１のストローク閾値の上限を設定する。式（２）及び（３）において１を引く演算は、背景ノイズの影響により発生するいくつかの文字の途切れたストロークの現象を避けるためである。従って、第１ストローク閾値推定部５０７の計算によって得られた閾値は、指定文字列が複数の文字列に水平に分離される状況を效果的に処理するのに利用される。
【００５３】
ストロークヒストグラム探索部６０３から返された結果が、文字列が再分離可能であるというものならば、再分離判定部６０５は、元の文字列のイメージを上下の２つの部分に分離する。上部イメージと下部イメージの幅は、元の文字列の幅と同一である。上部イメージの上境界及び下境界は、ストロークヒストグラム探索部６０３から返された始点及び中間点によって決定される。下部イメージの上境界及び下境界は、ストロークヒストグラム探索部６０３から返された中間点及び終点によって決定される。
【００５４】
図１３Ｂに示すように、文字列が再分離不可であれば、ストロークヒストグラム探索部６０３は、当該文字列の上境界及び下境界を示す始点及び終点のみを返す。図６のステップＳ６０９において、元のイメージのテキストイメージブロックは、出力された文字列のイメージにコピーされる。当該テキストイメージブロックの領域の上下の範囲は、ストロークヒストグラム探索部６０３から返された始点及び終点によって決まり、その左右の範囲は、元の入力された文字列の左右の範囲と同一である。図１３Ｂの中間の３つの分離した文字列の左右の範囲が図１３Ａの中間の文字列のものと同一であるのはそのためである。
【００５５】
図３Ｂにおいて、水平及び垂直文字列の分離処理が完了した後、ノイズ点除去判定部３０５において、出力された文字列のイメージの画素値と、元の入力された文字列のイメージの画素値とが点ごとに比較される。２つのイメージが全く同一でなければ、これは分離処理時にノイズが除去されたことを示し、元の抽出の結果が変更される。図１３Ｂに示すように、除去されるノイズがなくなるまでステップＳ３０２からステップＳ３０６までの処理が反復して行われる。
【００５６】
図９は、図３の文字列左／右境界位置調整部３０７の処理を示すフローチャートである。分離された文字列が入力された後（ステップＳ８０１）、左境界ノイズ文字除去部が、最初に文字列の左側でノイズ文字を除去するのに用いられる（ステップＳ８０２）。その後、右境界ノイズ文字除去部が、上記文字列の右側でノイズ文字を除去するのに用いられる（ステップＳ８０３）。そして、文字列の右側及び左側がノイズ文字を含んでいるか否か、すなわち、前の処理において除去されたノイズ文字があるか否かが判定される（ステップＳ８０４）。この処理は、文字列の左側及び右側に含まれたノイズ文字がなくなるまで繰り返される。
【００５７】
図１０Ａ及び図１０Ｂは、図９に示したような、左側ノイズ文字除去処理及び右側ノイズ文字除去処理を行う左／右境界ノイズ文字除去部を示したものである。特に、図１０Ａは、境界ノイズ文字除去部の機能を示すブロック図で、図１０Ｂは、左／右境界ノイズ文字除去部によって行われる左側ノイズ文字除去処理を示すフローチャートである。
【００５８】
図１０Ａに示すように、左／右境界ノイズ文字除去部は、数字文字列判定部９０１、最左側文字認識部９０２、最右側文字認識部９０３、単一文字高さ閾値推定部９０５、単一文字幅閾値推定部９０６、ノイズ文字判定部９０４、及びノイズ文字除去部９０７を含む。ここで、最左側文字認識部９０２及び最右側文字認識部９０３はそれぞれ、入力された文字列の最も左側の文字及び最も右側の文字を判定し、数字文字列判定部９０１は、指定文字列記述情報記憶部３１１から得られる情報に従って、入力された文字列が数字文字列なのか否かを判定する。単一文字幅閾値推定部９０６及び単一文字高さ閾値推定部９０５はそれぞれ、単一文字の幅の閾値及び高さの閾値を推定するため、文字列記述情報記憶部３１１に記憶された情報を利用する。特に、単一文字幅閾値推定部９０６は、文字列イメージの幅を文字列に含まれる文字の数で割り算し、単一文字の幅ＷＩＤＴＨを得る。そして、幅の閾値は、Ｃｗ×ＷＩＤＴＨとして設定される。ここで、Ｃｗは、０から１までの間で設定される係数であり、例えば、Ｃｗ＝０．５である。同様に、単一文字高さ閾値推定部９０５は、単一文字の高さの閾値を、Ｃｈ×ＨＥＩＧＨＴと推定する。ここで、ＨＥＩＧＨＴは、基準文字列の高さで、Ｃｈは、０から１までの間で設定される係数であり、例えば、Ｃｈ＝０．６である。そして、数字文字列判定部９０１の情報により文字列が数字文字列であると判定される場合、ノイズ文字判定部９０４は、単一文字高さ閾値推定部９０５によって推定された高さの閾値に従って判定対象となる文字がノイズ文字なのか否かを判定する。さらに、ノイズ文字判定部９０４は、文字列が数字文字列ではない場合、単一文字高さ閾値推定部９０５によって推定された高さの閾値、及び単一文字幅閾値推定部９０６によって推定された幅の閾値に従って、判定対象となる文字がノイズ文字なのか否かを判定する。ノイズ文字除去部９０７は、ノイズ文字判定部９０４によってノイズ文字と判定された文字を除去する。
【００５９】
図１０Ｂは、図９の左境界ノイズ文字除去を行う左／右境界ノイズ文字除去部の処理を示したフローチャートである。まず、文字列の各文字に外接する矩形の座標は、入力された文字列の情報を用いて得られ、最も左側の文字は、最左側文字認識部９０２によってこれらの座標を探索することによって決定される（ステップＳ９０２）。次いで、上記文字がノイズ文字なのか否かが判定される。これは、上記文字の幅及び高さを単一文字の幅及び高さの情報と比較することによって行われる。特に、ステップＳ９０３においてまず、既存の文字列記述情報に従って指定文字列が数字文字列なのか否かを判定する。指定文字列が数字文字列であれば（ステップＳ９０３：ＹＥＳ）、たとえば「１」のような特定の数字の幅は極端に狭いため、最も左側の文字の高さは、単一文字の高さの閾値のみと比較される（ステップＳ９０５）。文字の高さが閾値より低ければ（ステップＳ９０５：ＹＥＳ）、当該文字はノイズ文字と判定され、除去される（ステップＳ９０６）。この場合、文字列の左境界は、ノイズ文字が除去された文字列の最も左側の文字の左境界である。
【００６０】
指定文字列が数字文字列でなければ（ステップＳ９０３：ＮＯ）、最も左側の文字の高さ及び幅はすべて、対応する単一文字の高さの閾値及び単一文字の幅の閾値と比較されなければならない（ステップＳ９０４及びＳ９０５）。上記２つの値の両方が閾値より小さければ、上記文字はノイズ文字と判定され、除去される（ステップＳ９０６）。
【００６１】
右境界ノイズ文字除去処理の流れは、左境界ノイズ文字除去処理の流れと同様である。唯一の差異点は、毎回文字列の最も右側の文字を検査するという点である。
【００６２】
図１１は、図３の文字列上／下境界位置調整部３０８の機能を示したブロック図である。まず、左／右境界ノイズ文字除去部を通過した文字列が入力されると、ストロークヒストグラム生成部１００２は、ストロークヒストグラムを得るため、文字列の二値化されたイメージについての処理を実行する。このストロークヒストグラム生成部１００２は、図６のストロークヒストグラム生成部６０２と同一である。次いで、第２ストローク閾値設定部１００３は、第２のストローク閾値を設定する。特に、第２ストロークの閾値は、Ｎｃｈａｒ−１に設定される。図６のヒストグラム探索部６０３と同様に、始点探索部１００４はまず、ストローク値が第２のストローク閾値より大きい第１の点を決定するため、上から下へストロークヒストグラムを探索し、第１の点を始点（すなわち、上境界）として指定する。第１の点に対応するストロークヒストグラムのストローク値をＳ１とすると、上境界閾値再推定部１００５は、上境界の閾値ＴＨｕｐｐｅｒを再び推定する。
【００６３】
ＴＨｕｐｐｅｒ＝Ｃｕｐｐｅｒ×Ｓ１
ここで、Ｃｕｐｐｅｒは、０と１との間で設定される係数であり、例えば、Ｃｕｐｐｅｒ＝０．６６である。
【００６４】
その後、上境界位置調整部１００６は、始点から上へ探索をおこなうために再推定された上境界の閾値を用いる。これにより、上記上境界の閾値より小さなヒストグラム値を有する第１の点を探索し、第１の点に始点の位置を調整する。
【００６５】
上境界と同様に、終点探索部１００７は、第２のストローク閾値より大きいストローク値を有する第１の点を決定するため、下から上へストロークヒストグラムを探索し、第１の点を終点（すなわち、下境界）として指定する。次いで、第１の点に対応するストロークヒストグラムのストローク値をＳ２とすると、下境界閾値再推定部１００８は、上記下境界の閾値ＴＨｂｏｔｔｏｍを再び推定する。
【００６６】
ＴＨｂｏｔｔｏｍ＝Ｃｂｏｔｔｏｍ＊Ｓ２
ここで、Ｃｂｏｔｔｏｍは、０と１との間で設定される係数であり、例えば、Ｃｂｏｔｔｏｍ＝０．６６である。
【００６７】
その後、下境界位置調整部１００９は、下境界の閾値より小さなヒストグラム値を有する第１の点を探索するため、終点から下側へ探索を開始し、第１の点に終点の位置を調整する。
【００６８】
上／下境界調整の目的は、文字列の上下位置を正確に決定することにある。記号文字列などの所定文字列では、ある記号は文字列の高さ全体を貫かない。従って、第２のヒストグラム閾値は、ある文字の上下境界の過度な分割を引き起こしてしまう。そのため、上下境界のストローク閾値の範囲を広げることによって、文字の上下位置の過度な分割が防止されるようにする。上下境界の位置の調整後、元の文字列の上境界の上にあるイメージ部分、及び下境界の下にあるイメージ部分はノイズと判定され、ノイズ除去部１０１０は、このような画素点の値を背景画素点の値に設定することによりノイズを除去する。図１３Ｄは、上境界及び下境界の調整後の文字列のイメージを示したものである。
【００６９】
図１３Ｄの指定文字列が正確に抽出されなくても、最終結果はまだ他の文字列を多く含む。図３の指定文字列決定部３０９は、どの文字列が指定文字列なのか最終的に決定するのに用いられる。
【００７０】
図１２は、図３に示す指定文字列決定部３０９の処理を示すフローチャートである。上／下境界調整処理及び左／右境界調整処理が行われた文字列の入力後（ステップＳ１１０１）、ノイズ文字列除去部は、ノイズ文字列を除去するため、指定文字列記述情報に記憶された情報を用いる（ステップＳ１１０２）（ここで、ノイズ文字列とは、明らかに指定文字列ではない文字列のことである）。入力された各文字列において、Ｘ１は文字列の左側の境界位置で、Ｘ０は基準指定文字列の左側の境界位置であると仮定する。Ｗｔｓｔｒは基準文字列の幅で、Ｈ１は入力された文字列の高さで、Ｈ０は基準文字列の高さである。もし以下の２つの条件のうちの１つが満足されれば、文字列は、ノイズ文字列と判定される。
【００７１】
ＡＢＳ（Ｘ１−Ｘ０）／Ｗｔｓｔｒ＞ＴＨ１  （４）
Ｈ１／Ｈ０＜ＴＨ２                        （５）
ＴＨ１及びＴＨ２は、相対的位置ずれ及び相対的高さの閾値で、これは経験値である。
【００７２】
式４の物理的意味は、実際の文字列の左境界と指定基準文字列の左境界との間の位置ずれの程度である。ずれが所定の程度を超えると、上記文字列は指定文字列ではない。式５の物理的意味は、実際の文字列の高さと指定基準文字列の高さとの間の比率である。実際の文字列の高さが小さ過ぎると、当該文字列は指定文字列ではない。
【００７３】
ノイズ文字列が除去された後、ステップＳ１１０３で指定文字列が、長さが固定されない文字列なのか否かが判定される。これは、基準記述情報から得られた文字列の長さ情報を判定することによって実行される。指定文字列が固定長さの文字列であれば（ステップＳ１１０３：ＮＯ）、本発明の処理はステップＳ１１０４へ進み、指定文字列が文字列領域の重なりの割合を用いて探索される。すなわち、領域の重なりの割合が最大である文字列が指定文字列と判定される。指定文字列が、長さが固定されない文字列であれば（ステップＳ１１０３：ＹＥＳ）、本発明の処理はステップＳ１１０５へ進み、指定文字列が文字列の高さの重なりの割合を用いて探索される。すなわち、高さの重なりの割合が最大である文字列が指定文字列と判定される。そして、指定文字列が最終的に抽出される（ステップＳ１１０６）。以下に、領域の重なりの割合及び高さの重なりの割合を計算する方法を説明する。高さの重なりの割合または領域の重なりの割合が最大の文字列が指定文字列である。
【００７４】
指定文字列記述情報に記憶された文字列の幅及び高さをＷ０及びＨ０とし、入力された文字列の幅及び高さをＷ１及びＨ１とする。領域の重なりの割合を計算するための式は以下のとおりである。
【００７５】
ｍｉｎ＿ｗ＝ｍｉｎ（Ｗ０，Ｗ１），ｍｉｎ＿ｈ＝ｍｉｎ（Ｈ０，Ｈ１）
Ｒ＝ｍｉｎ＿ｗ×ｍｉｎ＿ｈ／（Ｗ０×Ｈ０＋Ｗ１×Ｈ１−ｍｉｎ＿ｗ×ｍｉｎ＿ｈ）
【００７６】
これと同様に、高さの重なりの割合を計算するための式は以下のとおりである。
Ｒｈ＝ｍｉｎ＿ｈ／（Ｈ０＋Ｈ１−ｍｉｎ＿ｈ）
【００７７】
本発明は、特定の実施例と共に説明されたが、上記説明の様態における多様な変形は当業者に明白なものである。従って、添付された請求の範囲は、本発明の概念及び範囲を逸脱しないすべての変形を含む。
【００７８】
（付記１）文字列イメージを垂直に分離する方法であって、
文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定工程と、
前記文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去する文字列間ノイズ除去工程と、
を含んだことを特徴とする文字列イメージを垂直に分離する方法。
【００７９】
（付記２）前記複数文字列判定工程が、前記文字列イメージの高さが文字列の高さの閾値よりも大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする付記１に記載の文字列イメージを垂直に分離する方法。
【００８０】
（付記３）前記文字列間ノイズ除去工程は、
前記文字列イメージから文字列を分割する文字列分割工程と、
前記文字列分割工程によって分割された文字列が有効な文字列か有効でない文字列かを判定する有効文字列判定工程と、
前記有効文字列判定工程によって有効な文字列と判定された文字列イメージを出力する出力工程と、
を含んだことを特徴とする付記１に記載の文字列イメージを垂直に分離する方法。
【００８１】
（付記４）前記文字列間ノイズ除去工程は、
前記有効文字列判定工程によって有効な文字列と判定された文字列が再分離可能な文字列か否かを判定する再分離判定工程と、
前記再分離判定工程によって再分離可能な文字列と判定された文字列を分離する文字列分離工程と、
をさらに含み、
有効な文字列の再分離ができなくなるまで、前記文字列分離工程、有効文字列判定工程、再分離判定工程及び文字列分割工程を繰り返すことによって、前記文字列分離工程により分離された文字列イメージに対する反復処理が行われ、
前記出力工程は、分離不可である有効な文字列イメージを出力することを特徴とする付記３に記載の文字列イメージを垂直に分離する方法。
【００８２】
（付記５）前記文字列分割工程は、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成工程と、
前記ストロークヒストグラム生成工程によって生成されたストロークヒストグラムを探索して文字列を分割するストロークヒストグラム探索工程と、
を含み、
前記ストロークヒストグラム探索工程は、
所定の順序で前記文字列の始点、すなわち、第１のストローク閾値より大きいストローク値を有する探索方向における第１の点を前記ストロークヒストグラムから探索する始点探索工程と、
前記始点探索工程とは逆の探索順序で、前記文字列の終点、すなわち、第１のストローク閾値より大きいストローク値を有する探索方向における第１の点をストロークヒストグラムから探索する終点探索工程と、
を含んだことを特徴とする付記４に記載の文字列イメージを垂直に分離する方法。
【００８３】
（付記６）前記ストロークヒストグラム探索工程は、
前記始点と終点との間の最小のストローク値を有する中間点を探索する中間点探索工程をさらに含み、
前記再分離判定工程は、前記中間点に対応するストロークヒストグラムが第１のストローク閾値より小さなストローク値を有する場合、前記文字列が分離可能な文字列であると判定し、
前記文字列分離工程は、分離可能で有効な文字列イメージを２つの部分に分離し、１つの部分の上境界及び下境界は、前記始点及び中間点によって決定され、もう１つの部分の上境界及び下境界は、前記中間点及び終点によって決定されることを特徴とする付記５に記載の文字列イメージを垂直に分離する方法。
【００８４】
（付記７）前記第１のストローク閾値は、
前記文字列イメージの文字列内の文字の数を計算し、前記文字列イメージ内に複数の文字列があれば、計算された文字数を最短の文字列の文字数と判定するイメージ文字列文字数計算工程と、
前記文字列が水平に分離不可であるか否かを判定する判定工程と、
前記判定工程により前記文字列が水平に分離不可である文字列であると判定された場合、文字密度及び前記イメージ文字列文字数計算工程で計算された文字数を用いて前記第１のストローク閾値を推定し、前記判定工程により前記文字列が水平に分離可能な文字列であると判定された場合、前記イメージ文字列文字数計算工程によって計算された文字数を用いて前記第１のストローク閾値を推定する閾値推定工程と、
によって推定されることを特徴とする付記５に記載の文字列イメージを垂直に分離する方法。
【００８５】
（付記８）前記文字密度は、基準文字列におけるイメージの幅に対する基準文字列内の文字の数の割合であり、水平に分離不可な文字列において、前記閾値推定工程は、前記文字密度および入力された基準文字列におけるイメージの幅の積と、前記イメージ文字列文字数計算工程によって計算された文字数との間でより小さいものを前記第１のストローク閾値に決定することを特徴とする付記７に記載の文字列イメージを垂直に分離する方法。
【００８６】
（付記９）前記文字列イメージは、二値化されたイメージであることを特徴とする付記１〜８のいずれか１つに記載の文字列イメージを垂直に分離する方法。
【００８７】
（付記１０）文字列イメージを垂直に分離する装置であって、
文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手段と、
前記文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去する文字列間ノイズ除去手段と、
を備えたことを特徴とする文字列イメージを垂直に分離する装置。
【００８８】
（付記１１）前記複数文字列判定手段が、前記文字列イメージの高さが文字列の高さの閾値より大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする付記１０に記載の文字列イメージを垂直に分離する装置。
【００８９】
（付記１２）前記文字列間ノイズ除去手段は、
前記文字列イメージから文字列を分割する文字列分割手段と、
前記文字列分割手段によって分割された文字列が有効な文字列か有効でない文字列かを判定する有効文字列判定手段と、
前記有効文字列判定手段によって有効な文字列と判定された文字列イメージを出力する出力手段と、
を備えたことを特徴とする付記１０に記載の文字列イメージを垂直に分離する装置。
【００９０】
（付記１３）前記文字列間ノイズ除去手段は、
前記有効文字列判定手段によって有効な文字列と判定された文字列が再分離可能な文字列か否かを判定する再分離判定手段と、
前記再分離判定手段によって再分離可能な文字列と判定された文字列を分離する文字列分離手段と、
をさらに備え、
前記文字列分離手段によって分離された文字列イメージが前記文字列分割手段に入力され、有効な文字列の再分離ができなくなるまで前記文字列分割手段、有効文字列判定手段、再分離判定手段及び文字列分離手段により反復処理が実行され、
前記出力手段は、分離不可である有効な文字列イメージを出力することを特徴とする付記１２に記載の文字列イメージを垂直に分離する装置。
【００９１】
（付記１４）前記文字列分割手段は、
前記第１のストローク閾値を推定する第１ストローク閾値推定手段と、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成手段と、
前記ストロークヒストグラム生成手段によって生成されたストロークヒストグラムを探索し、前記文字列を分割するストロークヒストグラム探索手段と、
を備え、
前記ストロークヒストグラム探索手段は、
所定の順序で前記文字列の始点、すなわち、第１のストローク閾値より大きいストローク値を有する探索方向における第１の点を前記ストロークヒストグラムから探索する始点探索手段と、
前記始点探索手段とは逆の探索順序で前記文字列の終点、すなわち、第１のストローク閾値より大きいストローク値を有する探索方向における第１の点をストロークヒストグラムから探索する終点探索手段と、
を備えたことを特徴とする付記１３に記載の文字列イメージを垂直に分離する装置。
【００９２】
（付記１５）前記ストロークヒストグラム探索手段は、
前記始点と終点との間の最小のストローク値を有する中間点を探索する中間点探索手段をさらに備え、
前記再分離判定手段は、前記中間点に対応するストロークヒストグラムが第１のストローク閾値より小さなストローク値を有する場合、前記文字列が分離可能な文字列であると判定し、前記中間点に対応するストロークヒストグラムが第１のストローク閾値より小さなストローク値を有しない場合、前記文字列は分離が不可能な文字列であると判定し、
前記文字列分離手段は、前記分離可能で有効な文字列イメージを２つの部分に分離し、１つの部分の上境界及び下境界は、前記始点及び中間点によって決定され、もう１つの部分の上境界及び下境界は、前記中間点及び終点によって決定されることを特徴とする付記１４に記載の文字列イメージを垂直に分離する装置。
【００９３】
（付記１６）前記第１ストローク閾値推定手段は、
前記文字列イメージの文字列内の文字の数を計算し、前記文字列イメージ内に複数の文字列があれば、計算された文字数を最短の文字列の文字数と判定するイメージ文字列文字数計算手段と、
前記文字列が水平に分離不可であるか否かを判定する判定手段と、
前記判定手段が前記文字列は水平に分離不可である文字列であると判定した場合、文字密度及び前記イメージ文字列文字数計算手段により計算された文字数を用いて前記第１のストローク閾値を推定し、前記判定手段が前記文字列は水平に分離可能な文字列であると判定した場合、前記イメージ文字列文字数計算手段により計算された文字数を用いて前記第１のストローク閾値を推定する閾値推定手段と、
を備えたことを特徴とする付記１４に記載の文字列イメージを垂直に分離する装置。
【００９４】
（付記１７）前記文字密度は、基準文字列におけるイメージの幅に対する基準文字列内の文字の数の割合であり、水平に分離不可な文字列において、前記閾値推定手段は、前記文字密度および入力された文字列の幅の積と、前記イメージ文字列文字数計算手段によって計算された文字数との間でより小さいものを前記第１のストローク閾値に決定することを特徴とする付記１６に記載の文字列イメージを垂直に分離する装置。
【００９５】
（付記１８）前記文字列イメージは、二値化されたイメージであることを特徴とする付記１０〜１７のいずれか１つに記載の文字列イメージを垂直に分離する装置。
【００９６】
（付記１９）指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出工程を含む指定文字列を抽出する方法であって、
水平に連結された２つ以上の文字列を分離する水平文字列分離工程と、
前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定工程、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去工程を含み、垂直に連結された２つ以上の文字列を分離する垂直文字列分離工程と、
前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程が、前記文字列の垂直分離または水平分離を行うか否かを判定する分離判定工程と、
をさらに含み、
前記分離判定工程により前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程が前記文字列の垂直分離または水平分離を行うと判定された場合、前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程によって分離される文字列がなくなるまで、分離された文字列イメージに対する前記文字列初期抽出工程、前記水平文字列分離工程、垂直文字列分離工程及び分離判定工程が反復されることを特徴とする指定文字列を抽出する方法。
【００９７】
（付記２０）前記水平文字列分離工程は、
前記文字列が間隔を有する分離不可である文字列か否かを検査する文字列分離型判定工程と、
前記文字列分離型判定工程により前記文字列の分離型が間隔を有する分離不可な文字列ではないと判定された場合に、分離間隔の閾値を推定する分離間隔閾値推定工程と、
前記分離間隔閾値推定工程によって推定された分離間隔の閾値に基づいて、水平文字列分離を行う水平文字列分離工程と、
を含んだことを特徴とする付記１９に記載の指定文字列を抽出する方法。
【００９８】
（付記２１）前記文字列が文字文字列を１つだけ含み、文字間の間隔が前記分離間隔の閾値より大きいと判定した場合に、前記水平文字列分離工程は前記文字列を分離することを特徴とする付記２０に記載の指定文字列を抽出する方法。
【００９９】
（付記２２）前記分離間隔閾値推定工程は、前記文字列内の水平間隔のヒストグラムを計算し、最大のヒストグラム値に対応する水平間隔を探索し、前記指定文字列の高さ及び前記最大のヒストグラム値に対応する水平間隔から計算された値のうちより大きい値を前記分離間隔の閾値として推定することを特徴とする付記２０に記載の指定文字列を抽出する方法。
【０１００】
（付記２３）前記文字列間ノイズ除去工程は、
前記文字列イメージから文字列を分割する文字列分割工程と、
前記文字列分割工程によって分割された文字列が有効な文字列か、有効でない文字列かを判定する有効文字列判定工程と、
前記有効文字列判定工程によって有効な文字列と判定された文字列イメージを出力する出力工程と、
を含んだことを特徴とする付記１９に記載の指定文字列を抽出する方法。
【０１０１】
（付記２４）前記文字列間ノイズ除去工程は、
前記有効文字列判定工程によって有効な文字列と判定された文字列が再分離可能な文字列か否かを判定する再分離判定工程と、
前記再分離判定工程によって再分離可能な文字列と判定された文字列を分離する文字列分離工程と、
をさらに含み、
有効な文字列の再分離ができなくなるまで、前記文字列分割工程、有効文字列判定工程、再分離判定工程及び文字列分離工程を繰り返すことによって、前記文字列分離工程により分離された文字列イメージに対する反復処理が行われ、
前記出力工程は、分離不可である有効な文字列イメージを出力することを特徴とする付記２３に記載の指定文字列を抽出する方法。
【０１０２】
（付記２５）前記文字列分割工程は、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成工程と、
前記ストロークヒストグラム生成工程によって生成されたストロークヒストグラムを探索し、前記文字列を分割するストロークヒストグラム探索工程を含み、
前記ストロークヒストグラム探索工程は、
所定の順序で前記文字列の始点、すなわち、第１のストローク閾値より大きいストローク値を有する探索方向における第１の点を前記ストロークヒストグラムから探索する始点探索工程と、
前記始点探索工程とは逆の探索順序で前記文字列の終点、すなわち、第１のストローク閾値より大きいストローク値を有する探索方向における第１の点をストロークヒストグラムから探索する終点探索工程と、
を含んだことを特徴とする付記２３に記載の指定文字列を抽出する方法。
【０１０３】
（付記２６）前記ストロークヒストグラム探索工程は、
前記始点及び前記終点との間の最小のストローク値を有する中間点を探索する中間点探索工程をさらに含み、
前記再分離判定工程は、前記中間点に対応するストロークヒストグラムが第１のストローク閾値より小さなストローク値を有する場合、前記文字列が分離可能な文字列であると判定し、
前記文字列分離工程は、分離可能で有効な文字列イメージを２つの部分に分離し、１つの部分の上境界及び下境界は、前記始点及び中間点によって決定され、もう１つの部分の上境界及び下境界は、前記中間点及び終点によって決定されることを特徴とする付記２５に記載の指定文字列を抽出する方法。
【０１０４】
（付記２７）前記第１ストローク閾値は、
前記文字列イメージの文字列内の文字の数を計算し、前記文字列イメージ内に複数の文字列があれば、計算された文字数を最短の文字列の文字数と判定するイメージ文字列文字数計算工程と、
前記文字列が水平に分離不可であるか否かを判定する判定工程と、
前記判定工程により前記文字列が水平に分離不可である文字列であると判定された場合、文字密度及び前記イメージ文字列文字数計算工程で計算された文字数を用いて前記第１のストローク閾値を推定し、前記判定工程により前記文字列は水平に分離可能な文字列であると判定された場合、前記イメージ文字列文字数計算工程によって計算された文字数を用いて前記第１のストローク閾値を推定する閾値推定工程と、
によって推定されることを特徴とする付記２５に記載の指定文字列を抽出する方法。
【０１０５】
（付記２８）前記文字密度は、基準文字列におけるイメージの幅に対する基準文字列内の文字の数の割合であり、水平に分離不可な文字列において、前記閾値推定工程は、前記文字密度および入力された文字列の幅の積と、前記イメージ文字列文字数計算工程によって計算された文字数との間でより小さいものを前記第１のストローク閾値に決定することを特徴とする付記２７に記載の指定文字列を抽出する方法。
【０１０６】
（付記２９）水平分離及び垂直分離の後、前記文字列の左／右境界のノイズ文字を除去する文字列左／右境界位置調整工程と、
水平分離及び垂直分離の後、前記文字列の上／下境界のノイズを除去する文字列上／下境界位置調整工程と、
水平分離及び垂直分離の後、文字列から指定文字列を決定する指定文字列決定工程と、
をさらに含んだことを特徴とする付記１９〜２８のいずれか１つに記載の指定文字列を抽出する方法。
【０１０７】
（付記３０）前記文字列左／右境界位置調整工程は、
前記最も左側の文字を認識する最左側文字認識工程と、
前記最も右側の文字を認識する最右側文字認識工程と、
認識された前記最も左側の文字及び最も右側の文字がノイズ文字か否かを判定するノイズ文字判定工程と、
前記文字列から最も左側の文字及び／または最も右側の文字を除去するノイズ文字除去工程と、
を含んだことを特徴とする付記２９に記載の指定文字列を抽出する方法。
【０１０８】
（付記３１）前記ノイズ文字判定工程は、文字高さの閾値より小さな高さの数字文字、前記文字高さの閾値及び幅の閾値より小さな高さ及び幅の数字ではない文字をノイズ文字として判定することを特徴とする付記３０に記載の指定文字列を抽出する方法。
【０１０９】
（付記３２）前記文字列上／下境界位置調整工程は、
前記第２のストローク閾値を設定する第２ストローク閾値設定工程と、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成工程と、
前記第２のストローク閾値に基づいて前記ストロークヒストグラムを探索し、前記上境界を得る上境界探索工程と、
前記上境界に対応するストローク値に基づいて、前記文字列の上境界の閾値を調整する上境界閾値調整工程と、
調整された上境界の閾値に基づいて、前記文字列の前記上境界を調整する上境界調整工程と、
前記第２のストローク閾値に基づいて前記ストロークヒストグラムを探索し、前記下境界を得る下境界探索工程と、
前記下境界に対応するストローク値に基づいて、前記文字列の下境界の閾値を調整する下境界閾値調整工程と、
調整された下境界の閾値に基づいて、前記文字列の前記下境界を調整する下境界調整工程と、
調整された上境界及び下境界に基づいて、前記文字列からノイズを除去するノイズ除去工程と、
を含んだことを特徴とする付記２９に記載の指定文字列を抽出する方法。
【０１１０】
（付記３３）前記指定文字列判定工程は、
指定文字列を含む複数の文字列からノイズ文字列を除去するノイズ文字列除去工程と、
ノイズ文字列が除去された文字列から、高さの重なりの割合が最大であり、長さが固定的ではない文字列、あるいは、領域の重なりの割合が最大であり、長さが固定された文字列を指定文字列として抽出する指定文字列抽出工程と、
を含んだことを特徴とする付記２９に記載の指定文字列を抽出する方法。
【０１１１】
（付記３４）指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出手段を備えた指定文字列を抽出する装置であって、
水平に連結された２つ以上の文字列を分離する水平文字列分離手段と、
前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手段、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去手段を備え、垂直に連結された２つ以上の文字列を分離する垂直文字列分離手段と、
前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段が、前記文字列への垂直分離または水平分離を行うか否かを判定する分離判定手段と、
を備え、
前記分離判定手段により前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段が前記文字列への垂直分離または水平分離を行うと判定された場合、分離された文字列イメージが前記文字列初期抽出手段に入力され、前記文字列初期抽出手段、水平文字列分離手段、垂直文字列分離手段及び分離判定手段はそれぞれ処理を実行し、前記文字列初期抽出手段、水平文字列分離手段、垂直文字列分離手段及び分離判定手段の各処理は、前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段によって分離される文字列がなくなるまで繰り返し行われることを特徴とする指定文字列を抽出する装置。
【０１１２】
（付記３５）前記水平文字列分離手段は、
前記文字列が間隔を有する分離不可である文字列か否かを検査する文字列分離型判定手段と、
前記文字列分離型判定手段が前記文字列の分離型が間隔を有する分離不可な文字列ではないと判定した場合に、分離間隔の閾値を推定する分離間隔閾値推定手段と、
前記分離間隔閾値推定手段によって推定された分離間隔の閾値に基づいて、水平文字列分離を行う水平文字列分離手段と、
を備えたことを特徴とする付記３４に記載の指定文字列を抽出する装置。
【０１１３】
（付記３６）前記水平文字列分離手段は、
前記文字列が文字文字列を１つだけ含み、文字間の間隔が前記分離間隔の閾値より大きいと判定した場合に、前記文字列を分離することを特徴とする付記３５に記載の指定文字列を抽出する装置。
【０１１４】
（付記３７）前記分離間隔閾値推定手段は、前記文字列内の前記水平間隔のヒストグラムを計算し、最大のヒストグラム値に対応する水平間隔を探索し、前記指定文字列の高さ及び前記最大のヒストグラム値に対応する水平間隔から計算された値のうちより大きい値を前記分離間隔の閾値として推定することを特徴とする付記３５に記載の指定文字列を抽出する装置。
【０１１５】
（付記３８）前記文字列間ノイズ除去手段は、
前記文字列イメージから文字列を分割する文字列分割手段と、
前記文字列分割手段によって分割された文字列が有効な文字列か、有効でない文字列かを判定する有効文字列判定手段と、
前記有効文字列判定手段によって有効な文字列と判定された文字列イメージを出力する出力手段と、
を備えたことを特徴とする付記３４に記載の指定文字列を抽出する装置。
【０１１６】
（付記３９）前記文字列間ノイズ除去手段は、
前記有効文字列判定手段によって有効な文字列と判定された文字列が再分離可能な文字列か否かを判定する再分離判定手段と、
前記再分離判定手段によって再分離可能な文字列と判定された文字列を分離する文字列分離手段と、
をさらに備え、
有効な文字列の再分離ができなくなるまで、前記文字列分割手段、有効文字列判定手段、再分離判定手段及び文字列分離手段を繰り返すことによって、前記文字列分離手段により分離された文字列イメージに対する反復処理が行われることを特徴とする付記３８に記載の指定文字列を抽出する装置。
【０１１７】
（付記４０）前記文字列分割手段は、
第１のストローク閾値を推定する第１ストローク閾値推定手段と、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成手段と、
前記ストロークヒストグラム生成手段によって生成されたストロークヒストグラムを探索し、前記文字列を抽出するストロークヒストグラム探索手段と、
を備え、
前記ストロークヒストグラム探索手段は、
所定の順序で前記文字列の始点、すなわち、第１のストローク閾値より大きいストローク値を有する探索方向における第１の点を前記ストロークヒストグラムから探索する始点探索手段と、
前記始点探索手段とは逆の探索順序で前記文字列の終点、すなわち、第１のストローク閾値より大きいストローク値を有する探索方向における第１の点をストロークヒストグラムから探索する終点探索手段と、
を備えたことを特徴とする付記３８に記載の指定文字列を抽出する装置。
【０１１８】
（付記４１）前記ストロークヒストグラム探索手段は、
前記始点及び前記終点との間の最小のストローク値を有する中間点を探索する中間点探索手段をさらに備え、
前記再分離判定手段は、前記中間点に対応するストロークヒストグラムが第１のストローク閾値より小さなストローク値を有する場合、前記文字列が分離可能な文字列であると判定し、
前記文字列分離手段は、分離可能で有効な文字列イメージを２つの部分に分離し、１つの部分の上境界及び下境界は、前記始点及び中間点によって決定され、もう１つの部分の上境界及び下境界は、前記中間点及び終点によって決定されることを特徴とする付記４０に記載の指定文字列を抽出する装置。
【０１１９】
（付記４２）前記第１ストローク閾値推定手段は、
前記文字列イメージの文字列内の文字の数を計算し、前記文字列イメージ内に複数の文字列があれば、計算された文字数を最短の文字列の文字数と判定するイメージ文字列文字数計算手段と、
前記文字列が水平に分離不可であるか否かを判定する判定手段と、
前記判定手段が前記文字列は水平に分離不可である文字列であると判定した場合、文字密度及び前記イメージ文字列文字数計算手段により計算された文字数を用いて前記第１のストローク閾値を推定し、前記判定手段が前記文字列は水平に分離可能な文字列であると判定した場合、前記イメージ文字列文字数計算手段によって計算された文字数を用いて前記第１のストローク閾値を推定する閾値推定手段と、
を備えたことを特徴とする付記４０に記載の指定文字列を抽出する装置。
【０１２０】
（付記４３）前記文字密度は、基準文字列におけるイメージの幅に対する基準文字列内の文字の数の割合であり、水平に分離不可な文字列において、前記閾値推定手段は、前記文字密度および入力された文字列の幅の積と、前記イメージ文字列文字数計算手段によって計算された文字数との間でより小さいものを前記第１のストローク閾値に決定することを特徴とする付記４２に記載の指定文字列を抽出する装置。
【０１２１】
（付記４４）水平分離及び垂直分離の後、前記文字列の左／右境界のノイズ文字を除去する文字列左／右境界位置調整手段と、
水平分離及び垂直分離の後、前記文字列の上／下境界のノイズを除去する文字列上／下境界位置調整手段と、
水平分離及び垂直分離の後、文字列から指定文字列を決定する指定文字列決定手段と、
をさらに備えることを特徴とする付記３４〜４３のいずれか１つに記載の指定文字列を抽出する装置。
【０１２２】
（付記４５）前記文字列左／右境界位置調整手段は、
前記最も左側の文字を認識する最左側文字認識手段と、
前記最も右側の文字を認識する最右側文字認識手段と、
認識された前記最も左側の文字及び最も右側の文字がノイズ文字か否かを判定するノイズ文字判定手段と、
前記文字列から最も左側の文字及び／または最も右側の文字を除去するノイズ文字除去手段と、
を備えたことを特徴とする付記４４に記載の指定文字列を抽出する装置。
【０１２３】
（付記４６）前記ノイズ文字判定手段は、文字高さの閾値より小さな高さの数字文字、前記文字高さの閾値及び幅の閾値より小さな高さ及び幅の数字ではない文字をノイズ文字として判定することを特徴とする付記４５に記載の指定文字列を抽出する装置。
【０１２４】
（付記４７）前記文字列上／下境界位置調整手段は、
前記第２のストローク閾値を設定する第２ストローク閾値設定手段と、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成手段と、
前記第２のストローク閾値に基づいて前記ストロークヒストグラムを探索し、前記上境界を得る上側境界探索手段と、
前記上境界に対応するストローク値に基づいて、前記文字列の上境界の閾値を調整する上境界閾値調整手段と、
調整された上境界の閾値に基づいて、前記文字列の前記上境界を調整する上境界調整手段と、
前記第２のストローク閾値に基づいて前記ストロークヒストグラムを探索し、前記下境界を得る下境界探索手段と、
前記下境界に対応するストローク値に基づいて、前記文字列の下境界の閾値を調整する下境界閾値調整手段と、
調整された下境界の閾値に基づいて、前記文字列の前記下境界を調整する下境界調整手段と、
調整された上境界及び下境界に基づいて、前記文字列からノイズを除去するノイズ除去手段と、
を備えたことを特徴とする付記４４に記載の指定文字列を抽出する装置。
【０１２５】
（付記４８）前記指定文字列判定手段は、
指定文字列を含む複数の文字列からノイズ文字列を除去するノイズ文字列除去手段と、
ノイズ文字列が除去された文字列から、高さの重なりの割合が最大であり、長さが固定的ではない文字列、あるいは、領域の重なりの割合が最大であり、長さが固定された文字列を指定文字列として抽出する指定文字列抽出手段と、
を備えたことを特徴とする付記４４に記載の指定文字列を抽出する装置。
【０１２６】
（付記４９）文字列イメージを垂直に分離するプログラムであって、
文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手順と、
前記文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去する文字列間ノイズ除去手順と、
をコンピュータに実行させることを特徴とする文字列イメージを垂直に分離するプログラム。
【０１２７】
（付記５０）前記複数文字列判定手順が、前記文字列イメージの高さが文字列の高さの閾値よりも大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする付記４９に記載の文字列イメージを垂直に分離するプログラム。
【０１２８】
（付記５１）指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出手順をコンピュータに実行させる指定文字列を抽出するプログラムであって、
水平に連結された２つ以上の文字列を分離する水平文字列分離手順と、
前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手順、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去手順を含み、垂直に連結された２つ以上の文字列を分離する垂直文字列分離手順と、
前記垂直文字列分離手順及び前記水平文字列分離手順のうち後に行われる手順が、前記文字列の垂直分離または水平分離を行うか否かを判定する分離判定手順と、
をさらにコンピュータに実行させ、
前記分離判定手順により前記垂直文字列分離手順及び前記水平文字列分離手順のうち後に行われる手順が前記文字列の垂直分離または水平分離を行うと判定された場合、前記垂直文字列分離手順及び前記水平文字列分離手順のうち後に行われる手順によって分離される文字列がなくなるまで、分離された文字列イメージに対する前記文字列初期抽出手順、前記水平文字列分離手順、垂直文字列分離手順及び分離判定手順が反復されることを特徴とする指定文字列を抽出するプログラム。
【０１２９】
（付記５２）前記水平文字列分離手順は、
前記文字列が間隔を有する分離不可である文字列か否かを検査する文字列分離型判定手順と、
前記文字列分離型判定手順により前記文字列の分離型が間隔を有する分離不可な文字列ではないと判定された場合に、分離間隔の閾値を推定する分離間隔閾値推定手順と、
前記分離間隔閾値推定手順によって推定された分離間隔の閾値に基づいて、水平文字列分離を行う水平文字列分離手順と、
をコンピュータに実行させることを特徴とする付記５１に記載の指定文字列を抽出するプログラム。
【産業上の利用可能性】
【０１３０】
以上のように、本発明は、文字列イメージを垂直に分離するプログラム、方法及び装置、指定文字列を抽出するプログラム、方法及び装置に関し、特に、テーブルカラムのような、複数の文字列から指定文字列を抽出するためのプログラム、方法及び装置に有用である。
【図面の簡単な説明】
【０１３１】
【図１】テーブルフォーム認識の一例を示す図である。
【図２】図１の例に従来方法を適用した場合の認識結果を示す図である。
【図３Ａ】本発明の一実施例に従って指定文字列を抽出する装置の機能を示したブロック図である。
【図３Ｂ】本発明の一実施例に従って指定文字列を抽出する装置の処理を示すフローチャートである。
【図４Ａ】水平文字列分離部３０３の処理を示すフローチャートである。
【図４Ｂ】文字の水平間隔の計算方法を示す図である。
【図５Ａ】図３の垂直文字列分離部３０４の機能を示すブロック図である。
【図５Ｂ】図３の垂直文字列分離部３０４の処理を示すフローチャートである。
【図６Ａ】文字列間ノイズ除去部５０３の機能を示すブロック図である。
【図６Ｂ】文字列間ノイズ除去部５０３の処理を示すフローチャートである。
【図７】図６のストロークヒストグラム探索部６０３の処理を示すフローチャートである。
【図８】第１ストローク閾値推定部５０７の処理を示すフローチャートである。
【図９】図３の文字列左／右境界位置調整部３０７の処理を示すフローチャートである。
【図１０Ａ】図９に示された左側ノイズ文字除去処理及び右側ノイズ文字除去処理を行う境界ノイズ文字除去部を示す図である。
【図１０Ｂ】図９に示された左側ノイズ文字除去処理及び右側ノイズ文字除去処理を行う境界ノイズ文字除去部を示す図である。
【図１１】図３の文字列上／下境界位置調整部３０８の機能を示すブロック図である。
【図１２】指定文字列決定部３０９の処理を示すフローチャートである。
【図１３Ａ】図２の各文字列に対して本発明による各ステップの処理が実行された結果を例示する図である。
【図１３Ｂ】図２の各文字列に対して本発明による各ステップの処理が実行された結果を例示する図である。
【図１３Ｃ】図２の各文字列に対して本発明による各ステップの処理が実行された結果を例示する図である。
【図１３Ｄ】図２の各文字列に対して本発明による各ステップの処理が実行された結果を例示する図である。
【図１３Ｅ】ノイズを有する文字列のストロークヒストグラムの例を示す図である。
【図１４Ａ】指定文字列記述情報記憶部３１１に記憶された指定文字列記述情報の例を示す図である。
【図１４Ｂ】文字列の４つのデータ型の例を示す図である。
【符号の説明】
【０１３２】
３０１  入力部
３０２  文字列初期抽出部
３０３  水平文字列分離部
３０４  垂直文字列分離部
３０５  ノイズ点除去判定部
３０７  文字列左／右境界位置調整部
３０８  文字列上／下境界位置調整部
３０９  指定文字列決定部
３１０  出力部
３１１  指定文字列記述情報記憶部
５０２  複数文字列判定部
５０３  文字列間ノイズ除去部
５０６  文字列高さ閾値推定部
５０７  第１ストローク閾値推定部５０７
６０１  文字列分割部
６０２  ストロークヒストグラム生成部
６０３  ストロークヒストグラム探索部
６０４  有効文字列判定部
６０５  再分離判定部
６０６  再分離部
９０１  数字文字列判定部
９０２  最左側文字認識部
９０３  最右側文字認識部
９０４  ノイズ文字判定部
９０５  単一文字高さ閾値推定部
９０６  単一文字幅閾値推定部
９０７  ノイズ文字除去部
１００２  ストロークヒストグラム生成部
１００３  第２ストローク閾値設定部
１００４  始点探索部
１００５  上境界閾値再推定部
１００６  上境界位置調整部
１００７  終点探索部
１００８  下境界閾値再推定部
１００９  下境界位置調整部
１０１０  ノイズ除去部
【図１】
2007073048.tif 000003
【図２】
2007073048.tif 000004
【図３Ａ】
2007073048.tif 000005
【図３Ｂ】
2007073048.tif 000006
【図４Ａ】
2007073048.tif 000007
【図４Ｂ】
2007073048.tif 000008
【図５Ａ】
2007073048.tif 000009
【図５Ｂ】
2007073048.tif 000010
【図６Ａ】
2007073048.tif 000011
【図６Ｂ】
2007073048.tif 000012
【図７】
2007073048.tif 000013
【図８】
2007073048.tif 000014
【図９】
2007073048.tif 000015
【図１０Ａ】
2007073048.tif 000016
【図１０Ｂ】
2007073048.tif 000017
【図１１】
2007073048.tif 000018
【図１２】
2007073048.tif 000019
【図１３Ａ】
2007073048.tif 000020
【図１３Ｂ】
2007073048.tif 000021
【図１３Ｃ】
2007073048.tif 000022
【図１３Ｄ】
2007073048.tif 000023
【図１３Ｅ】
2007073048.tif 000024
【図１４Ａ】
2007073048.tif 000025
【図１４Ｂ】
2007073048.tif 000026