JP4984756B2 - 文字列イメージを垂直に分離するプログラム、方法及び装置 - Google Patents

文字列イメージを垂直に分離するプログラム、方法及び装置 Download PDF

Info

Publication number
JP4984756B2
JP4984756B2 JP2006239515A JP2006239515A JP4984756B2 JP 4984756 B2 JP4984756 B2 JP 4984756B2 JP 2006239515 A JP2006239515 A JP 2006239515A JP 2006239515 A JP2006239515 A JP 2006239515A JP 4984756 B2 JP4984756 B2 JP 4984756B2
Authority
JP
Japan
Prior art keywords
character string
character
stroke
separation
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006239515A
Other languages
English (en)
Other versions
JP2007073048A (ja
Inventor
俊 孫
悦伸 堀田
克仁 藤本
聡 直井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2007073048A publication Critical patent/JP2007073048A/ja
Application granted granted Critical
Publication of JP4984756B2 publication Critical patent/JP4984756B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Character Input (AREA)

Description

本発明は、文字列イメージを垂直に分離するプログラム、方法及び装置、指定文字列を抽出するプログラム、方法及び装置に関し、より詳しくは、テーブルカラムのような複数の文字列から指定文字列を抽出するプログラム、方法及び装置に関するものである。
指定文字列の抽出は、テーブルフォーム認識への適用においては、極めて重要な機能である。ここでの目的は、指定文字列に用いられる所定の基準情報(指定文字列記述情報として参照される)を用いて、複数の文字列が混在しているイメージから指定文字列を抽出することにある。しかし、テーブルカラムから指定文字列を検出することは容易ではない。これは、第一に、カラムには通常一つ以上の文字列が存在するからである。第二に、文字列の間にノイズが多数ある可能性があるからである。図1は、テーブルフォーム認識の一例を示す図である。このテーブルフォームでは、そのカラムに5つのテキスト情報行を有するが、2行目の右側部分における数字/英文文字列だけが抽出される情報となっている。図1におけるグレーのブロックは、会社の名称などの漢字を表している。図1にはまた、印章のイメージによりもたらされる背景ノイズが存在する。
基準指定文字列は、基準指定文字列用にあらかじめ定義された情報(たとえば、行のシリアル番号や座標情報など)により正確に抽出される。指定文字列の抽出における困難さは、指定文字列をどのように效果的に記述し、抽出時の背景ノイズの影響をどのように除去するのかにある。これと同時に、指定文字列と実際の文字列との間には大きな違いがある可能性があるため、基準指定文字列の位置及び大きさの情報は、単に抽出時の参照情報として利用される。
本出願に先立って開示された文字列抽出を取り扱う論文及び特許として以下のようなものが存在している。
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号明細書
これらの方法の主眼点は、異なる背景イメージから文字列をいかにして抽出するかということにあるが、これらの方法では混在する複数の文字列から指定文字列を效果的に抽出することができない。これらの方法に内在している別の問題点は、これらの方法が背景ノイズの影響に極めて敏感であるということにある。図2は、図1に示されたイメージに米国特許第6,332,046B1号の方法を適用した場合の文字列の抽出結果の例を示したものである。この例では、合計6つの文字列が抽出されている。しかし、指定文字列は2つの部分に分離されており、そのうちの一つは印章のノイズの影響のためノイズストロークによって別の文字列に連結されている。
従って、本発明の目的は、背景ノイズを效果的に除去することにより、指定文字列を含むテーブルカラムなどから全文字列を正確に抽出することにある。本発明の他の目的は、指定文字列記述情報を利用して、複数の抽出された文字列中から指定文字列を分離することにある。
本発明の一様態によると、文字列イメージを垂直に分離する方法であって、文字列イメージが複数の文字列を含むか否かを判定する複数の文字列判定ステップと、文字列イメージが複数の文字列を含む場合、文字列の間のノイズを除去する文字列間ノイズ除去ステップとを含んだ文字列イメージを垂直に分離する方法が提供される。
本発明の別の様態によると、文字列イメージを垂直に分離する装置であって、文字列イメージが複数の文字列を含むか否かを判定する複数の文字列判定手段と、文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去手段とを備えた文字列イメージを垂直に分離する装置が提供される。
本発明のまた別の様態によると、指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出工程を含む指定文字列を抽出する方法であって、水平に連結された2つ以上の文字列を分離する水平文字列分離工程と、前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定工程、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去工程を含み、垂直に連結された2つ以上の文字列を分離する垂直文字列分離工程と、前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程が、前記文字列の垂直分離または水平分離を行うか否かを判定する分離判定工程と、をさらに含み、前記分離判定工程により前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程が前記文字列の垂直分離または水平分離を行うと判定された場合、前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程によって分離される文字列がなくなるまで、分離された文字列イメージに対する前記文字列初期抽出工程、前記水平文字列分離工程、垂直文字列分離工程及び分離判定工程が反復されることを特徴とする指定文字列を抽出する方法が提供される。
本発明のさらに別の様態によると、指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出手段を備えた指定文字列を抽出する装置であって、水平に連結された2つ以上の文字列を分離する水平文字列分離手段と、前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手段、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去手段を備え、垂直に連結された2つ以上の文字列を分離する垂直文字列分離手段と、前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段が、前記文字列への垂直分離または水平分離を行うか否かを判定する分離判定手段と、を備え、前記分離判定手段により前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段が前記文字列への垂直分離または水平分離を行うと判定された場合、分離された文字列イメージが前記文字列初期抽出手段に入力され、前記文字列初期抽出手段、水平文字列分離手段、垂直文字列分離手段及び分離判定手段はそれぞれ処理を実行し、前記文字列初期抽出手段、水平文字列分離手段、垂直文字列分離手段及び分離判定手段の各処理は、前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段によって分離される文字列がなくなるまで繰り返し行われることを特徴とする指定文字列を抽出する装置が提供される。
本発明によれば、文字列イメージが複数の文字列を含むか否かを判定し、文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去することとしたので、背景ノイズを效果的に除去することにより、指定文字列を含むテーブルカラムなどから全文字列を正確に抽出することができるという効果を奏する。
以下に、本発明の好ましい実施例を添付された図面を参照して詳しく説明する。本実施例は、本発明の典型例を本発明の説明用に示すだけのものであり、本発明の保護範囲を制限するものではない。
図3Aは、本発明の一実施例によって指定文字列を抽出する装置の機能を示したブロック図である。図3Aに示すように、本発明の一実施例によって指定文字列を抽出する装置は、互いに順次連結されている入力部301、文字列初期抽出部302、水平文字列分離部303、垂直文字列分離部304、ノイズ点除去判定部305、文字列左/右境界位置調整部307、文字列上/下境界位置調整部308、指定文字列決定部309、出力部310、及び、上記水平文字列分離部303、垂直文字列分離部304、文字列左/右境界位置調整部307、上記指定文字列決定部309に連結された指定文字列記述情報記憶部311を含む。
図3Bは、本発明の一実施例による指定文字列を抽出する装置の処理を示すフローチャートである。
図3Bに示すように、本実施例によると、指定文字列を抽出する装置による文字列抽出時、テーブルカラムの二値化されたイメージが入力部301から入力された後(ステップS301)、この二値化されたイメージは、文字列初期抽出部302によって初期抽出される。初期抽出は、上記二値化されたイメージから予備的に文字列を抽出する従来技術(たとえば、米国特許第6,332,046B1号に記載された方法など。ただし、本発明はこれに限定されない。)によって実行される(ステップS302)。上記文字列初期抽出ステップの出力は、抽出された文字列の数、各文字列のイメージ及び各文字列のイメージに外接する矩形の座標、各文字列に含まれる文字などの数、各文字のイメージ及び各文字のイメージに外接する矩形の座標などを含む。
図2に示すように、文字列初期抽出部302の効果は、背景ノイズの影響の下がある場合には満足できるものではない。そのため、本発明の実施例では、水平文字列分離部303は、指定文字列記述情報記憶部311に記憶された文字列の分離型のような情報に従って、水平方向に沿って互いに連結されている複数の文字列を分離する(ステップS303)。次いで、垂直文字列分離部304は、文字列間のノイズを除去することによって、垂直方向に沿って互いに連結されている2つ以上の文字列を分離する(ステップS304)。その後、ステップS305で、ノイズ点除去判定部305は、ステップS304で除去されたノイズがあるか否か(すなわち、垂直方向に沿って分離が行われたか否か)を判定する。除去されたノイズがあった場合(ステップS306:YES)、除去されたノイズがなくなるまで(ステップS306:NO)ステップS302からステップS306が繰り返される。
上記の説明において、上記水平文字列分離処理は、垂直文字列分離処理に先行しておこなわれるが、垂直文字列分離処理を水平文字列分離処理に先行しておこなってもよい。
除去されたノイズがなかった場合(ステップS306:No)、分離された文字列の左/右境界の位置の調整がおこなわれ(ステップS307)、さらに文字列の上/下境界の位置の調整がおこなわれる(ステップS308)。そして、指定文字列が決定され(ステップS309)、指定文字列のイメージが出力される(ステップS310)。
以下に、本発明による各ステップの処理結果について図13A〜図13Cを参照して説明する。
図13Aは、水平文字列分離部303が図2の各文字列に対して水平文字列分離をおこなった後の結果を示したものである。最も上の文字列は、左側及び右側の2つの文字列に正確に分離される(右側の文字列は事実上ノイズで構成されている)。しかし、水平文字列分離部303は、図2の中間部分において互いに連結されている3つの文字列の最初の文字列を直接分離することはできない。水平文字列分離部303は、文字列が文字文字列を1つだけ含むということを仮定するので、文字の間隔により当該文字列が分離されるべきか否かを判定する。しかし、図2に示す互いに連結された3つの文字列における上位文字列と下位文字列との間の干渉のため、水平文字列分離部303は、文字の間隔を直接推定することができず、したがって水平分離を正確に行うことができない。
図13Bは、水平文字列分離部303によってすでに水平方向に分離された図13Aに示す各文字列に対して垂直文字列分離部304が垂直分離を行った後の1回目の反復における結果を示したものである。図13Aにおいて互いに連結されていた3つの文字列間のノイズは除去され、3つの文字列が正確に分離される。しかし、3つの文字列の左側及び右側の境界は、垂直分離前のままである。すなわち、指定文字列は、依然として左側及び右側の2つの部分に分離している。
ノイズ点除去判定部305は、文字列初期抽出部302に入力された二値化されたイメージを垂直文字列分離部304から出力されたイメージと比べることによってノイズ点が除去されたか否かを判定する。図13A及び図13Bに示すように、ノイズが除去されると、元の抽出された文字列が変更される可能性があるので、垂直文字列分離部304から出力された二値化されたイメージは初期抽出処理をおこなう文字列初期抽出部302に再び送られる。図13Cは、2回目の反復後の水平文字列分離部303の出力結果を示したものである。この場合、指定文字列が正確に分離される。2回目の反復で垂直文字列分離部304ではノイズが除去されないので、上記反復は終了する。これにより、正確に抽出された文字列が得られる。
分離された文字列は、文字列の上下左右の位置を調整するため、文字列左/右境界位置調整部307及び文字列上/下境界位置調整部308に入力される。指定文字列の抽出は、文字列の長さ及び幅情報に依存するので、文字列左/右境界位置調整部307及び文字列上/下境界位置調整部308は、文字列の上下左右の境界を正確に位置づける処理をおこなう。
最後に、抽出されたすべての文字列は、指定文字列を探索するため、指定文字列記述情報記憶部311に記憶された情報(指定文字列記述情報記憶部311に記憶された情報については次の段落で説明される)を利用する指定文字列決定部309に入力される。
指定文字列記述情報記憶部311に記憶される情報は、指定文字列の文字列数、各基準指定文字列イメージに外接する矩形の座標情報、文字列の分離型、文字列のデータ型、及び文字列の長さの型を含む。図14Aに示すように、文字列には3つの分離型、すなわち、分離不可文字列、分離可能文字列及び間隔を有する分離不可文字列がある。図14Aは、文字列の3種類の型の例を示す。図14Bに示すように、文字列には4つのデータ型、すなわち、数字(数値)文字列、記号文字列、合計文字列及び中国語文字列がある。また、文字列には2つの長さの型、すなわち、可変長さ文字列及び不変長さ文字列がある。
以下に、図3の各部の機能及び具現例を、添付された図面を参照して詳細に説明する。
図4Aは、水平文字列分離部303について説明する図である。
本実施例の水平文字列分離部303は、互いに順次連結されている文字列分離型判定部、分離間隔閾値推定部及び水平文字列分離処理部を含む。文字列分離型判定部は、入力された初期抽出文字列の分離型が指定文字列記述情報記憶部311に記憶された文字列分離型のどれに属するか、すなわち、入力された初期抽出文字列が分離不可文字列、分離可能文字列、間隔を有する分離不可文字列のどれに属するかを判定する。分離間隔閾値推定部は、水平分離処理に用いられる分離間隔の閾値を推定する。水平文字列分離処理部は、水平文字列分離を行うため、上記分離間隔の閾値を利用する。
図4Aは、水平文字列分離部303の機能を示すフローチャートである。初期抽出された文字列が入力された後(ステップS401)、文字列分離型判定部は、指定文字列の分離型を判定する(ステップS402)。間隔を有する分離不可文字列があれば(ステップS406:YES)、入力された文字列が直接出力として返される。分離不可文字列または分離可能文字列があれば(ステップS406:NO)、分離間隔閾値推定部は、水平分離処理に用いられる分離間隔の閾値を推定する(ステップS403)。次いで、水平文字列分離処理部は、水平文字列分離を行うため分離間隔の閾値を用い(ステップS404、ステップS405)、最終的に水平に分離された文字列を出力する(ステップS407)。
ここで文字列は、文字列初期抽出部302から得られる。指定文字列が、文字列内の文字間で明瞭な間隔なしに密接に連結されている文字列である場合、これは分離不可型である。指定文字列が図14Aの2及び3に示すように、明らかな間隔を含む場合、二つの状況があり得る。一つは、図14Aの3に示すように、間隔によって分離された2つの密接に連結された文字列がすべて必要とされる場合(すなわち、それらが指定文字列である場合)である。このような状況は、間隔を有する分離不可文字列と定義される。もう1つの状況は、図14Aの2に示すように、間隔によって分離された2つの文字列のうち1つだけが必要とされる場合である。このような状況は、分離可能文字列と定義される。
分離間隔閾値推定部において、入力された各文字列に対して、文字列内の水平方向の間隔のヒストグラムは、隣接するすべての文字の水平間隔を用いて最初に計算される。すなわち、H(S)=Nsとなる。ここで、Sは画素点を単位とする水平間隔の大きさで、Nsは対応するS値を有する水平間隔の数である。例えば、H(10)=3は、距離が10画素点である間隔の数が3であることを示す。最大のヒストグラム値(すなわち、Nsの最大値。このような距離を有する間隔の数が最も多いため、これを最も代表的な間隔とする。)に対応する水平間隔Smaxは、上記ヒストグラムから見つけ出すことができる。分離間隔の閾値は、以下で述べられる2つの値のより大きい値によって決定される。一つは、指定文字列記述情報に記憶された指定文字列の高さで、もう一つは、C×Smaxである。ここで、Cは係数であり、例えばC=3である。この値は経験的に得られるものであり、およそ2〜5の間である。文字列内の文字間の間隔は、例えば1画素点あるいは2画素点というように、極めて小さくなる場合があるため、このような場合にはSmaxは正確に1となるであろう。しかし、閾値がこのような値によって直接定義されれば、閾値は極めて小さくなってしまう(C=3の場合、閾値は僅かに3である)。従って、閾値を上記文字の高さと比べる必要があり、間隔があまりにも小さければ、閾値は高さによって決定される。他方、間隔が比較的大きいような状況では、文字列内にある文字は多くはない。このような状況で推定されたSmaxは、充分に正確でない場合もある(例えば、同一の距離を有する間隔がない場合)。この場合、高さによって閾値を決定するのが比較的安定的なものとなる。
分離間隔の閾値推定の間、文字列初期抽出部302から出力された文字列の各文字の位置情報が利用される。図4Bは、一つの文字列内の2つの隣接する文字イメージを、外側に連結された矩形の対応する座標とともに示したものである。最初の文字に外接する矩形の左上及び右下の座標がそれぞれ(XSi,YSi)及び(XEi,YEi)で、二番目の文字に外接する矩形の左上及び右下の座標がそれぞれ(XSi+1,YSi+1)及び(XEi+1,YEi+1)で、この2つの文字間の水平間隔がXSi+1−XEi+1であると仮定する。
分離間隔の閾値を用いて水平文字列分離を行う水平文字列分離処理部において、各文字列内の2つの文字間の間隔が検査される。文字間の水平間隔が分離間隔の閾値より大きいならば、文字列はこの2つの文字間から2つの文字列に分離される。図4Bに示す状況を例として挙げれば、分離の間、第1の文字列の左境界は元の文字列の左境界であり、右境界はXEiであり、第2の文字列の左境界はXSi+1であり、右境界は元の文字列の右境界である。上境界および下境界は、元の文字列と同一である。図13Aの最も上側の文字列に示されるように、図2における最も上側の文字列は、2つの文字列に水平分割される。
以下に、図5A〜図8を参照して図3に示した垂直文字列分離部304について説明することとする。
図5Aは、図3における垂直文字列分離部304の機能を示したブロック図である。図5Aに示すように、本発明による垂直文字列分離部304は、複数文字列判定部502、文字列高さ閾値推定部506、第1ストローク閾値推定部507及び文字列間ノイズ除去部503を含む。文字列高さ閾値推定部506は、指定文字列記述情報記憶部311に記憶された情報に従って文字列の高さの閾値を計算し、複数文字列判定部502は、文字列高さ閾値推定部506によって計算された文字列の高さの閾値に従って、複数の文字列が存在するか否かを判定する。複数文字列判定部502が複数の文字列が存在すると判定した場合、文字列間ノイズ除去部503は、第1ストローク閾値推定部507によって推定された第1のストローク閾値に従って、文字列間のノイズを除去し、垂直的に分離された文字列を得る。
図5Bは、図3における垂直文字列分離部304の処理のフローチャートである。図5Bに示すように、水平に分離された文字列が入力された後(ステップS501)、水平に分離された各文字列の高さと高さの閾値とが、文字列の高さが文字列の高さの閾値より大きいか否かを判定するために比較される(ステップS502)。上記高さの閾値は、文字列高さ閾値推定部506により得られる。文字列の高さが上記高さの閾値以下、あるいは、高さの閾値と同じであれば(ステップS502:NO)、この文字列はただ一つの文字文字列を含み、上記文字列は垂直的に分離されず、直接出力される(ステップS504)。文字列高さ閾値推定部506による高さの閾値の計算のための式は、C1×Hである。ここで、C1は係数で、Hは、指定文字列記述情報に記憶された基準文字列の高さである。C1は、1より少し大きい値となり、例えば、C1=1.2である。基準文字列の高さは実際の文字列の高さと異なるため、C1×Hは、実際の指定文字列の最大高さより大きくなければならない。
入力された文字列の高さが高さの閾値より大きければ(ステップS502:YES)、文字列は複数の文字列を含む可能性があり、この場合、文字列間ノイズ除去部503は、この文字列内で垂直に連結されている複数の文字列を分離するため、第1ストローク閾値推定部507(これについては後述する)から得られた第1のストローク閾値を用いる。図13Bは、文字列間のノイズ除去後の結果を示したものである。
図6Aは、文字列間ノイズ除去部503の機能を示すブロック図である。図6Aに示すように、上記文字列間ノイズ除去部503は、文字列分割部601、有効文字列判定部604、再分離判定部605及び再分離部606を含む。ここで、文字列分割部601は、ストロークヒストグラム生成部602及びストロークヒストグラム探索部603を含む。
図6Bは、文字列間ノイズ除去部503の処理を示すフローチャートである。文字列のイメージが入力された後(ステップS601)、ストロークヒストグラム生成部602は、入力された文字列のイメージのストロークヒストグラムを得る(ステップS602)。次いで、ストロークヒストグラム探索部603は、ヒストグラムを探索するため、第1ストローク閾値推定部507(これについては後述する)によって推定された第1のストローク閾値を用いて、2つの文字列間の可能な分離点とともに、文字列の始点と終点を探索する(ステップS603)。その後、有効文字列判定部604は、ステップS603においてストロークヒストグラム探索部603の探索結果として得られた文字列が有効な文字列か否かを判定する(ステップS604)。ここで、有効な文字列とは、十分高い高さを有する文字列を意味する。ノイズなどの影響により高さが十分高くない場合、この文字列は必要とされず、後続の処理はなされない。有効な文字列は、2つの状況を含んでいる。1つの状況は、有効な文字列が1つの文字列のみを含むものであり、他の状況は、有効な文字列が1つ以上の文字列を含むものである。この場合、有効な文字列は再分離されなければならない。有効か否かは、文字列の高さと指定文字列記述情報記憶部311に記憶された指定文字列記述情報の指定文字列の高さと比べることによって決定される。文字列の高さがC2×Hより小さければ(ここで、Hは指定文字列の高さを示し、C2は1より小さな係数で、例えば、C2=0.6である。C2×Hは、実際の指定文字列の高さより小さくなければならない)、文字列は、有効な文字列ではない。そうでなければ、この文字列は有効な文字列と判定される。文字列が有効な文字列と判定されなかった場合(ステップS605:NO)、文字列は直接戻り値として返される(この場合、当該文字列は、出力から消去される)。一方、文字列が有効な文字列と判定された場合(ステップS605:YES)、再分離判定部605は、当該文字列がその上部や下部から分離することができるか否かを判定する(ステップS606)。文字列が再分離されることができるか否かの判定は、後述されるヒストグラム探索結果によって、あるいは、前述した複数の文字列を含むか否かの判定によって行われる。文字列の再分離ができない場合(ステップS607:NO)、再分離ができない文字列のイメージが出力され(ステップS609)、そのイメージが戻り値として返される。文字列が再分離可能である場合、再分離部606によって上下2つの部分に分割され(ステップS608)、分割された2つの部分のそれぞれに関して、文字列がこれ以上再分離できなくなるまで、ステップS602からステップS607の処理が繰り返される。そして、出力の前には、まず空白の出力イメージブロックが生成され、毎回探索された有効な分離不可文字列のイメージが、出力イメージブロックにコピーされる。これにより、文字列のイメージから抽出され、ノイズが除去された文字列が記憶される。
以下に、ストロークヒストグラム生成部602の原理について説明する。
ストロークヒストグラム生成部602には文字列の二値化されたイメージが入力される。ここで、1の画素点値は、ストローク画素点を示し、0の画素点値は、背景画素点を示す。ヒストグラムは、以下の式、Hstr(S)=Nstr、によって表わされる。ここで、Sは二値化されたイメージの水平文字列のインデックス値であり、Sの値は0〜h−1に設定され、上記イメージの最も上側の文字列から最も下側の文字列までを示す。ここで、hは入力されたイメージの高さ(すなわち、文字列の総数)を示す。Nstrは、S番目の文字列のストローク部分の数を示す。S番目の文字列に関し、ストロークヒストグラム生成部602は左側から右側に、0ではない最初の画素点(ストローク画素点)を探索する。上記画素点は、ストローク部分の左側の境界を示す。次いで、ストロークヒストグラム生成部602は、その画素点の次の点から探索を継続し、1の画素値を有するが次の点の画素値が0である最初の画素点(すなわち、画素値が1から0に変換される最初の画素点)を探索する。この点は、上記ストローク部分の右側の境界を示す。探索された左側および右側の境界の1対は、1つのストローク部分を示す。ストロークヒストグラム生成部602は、すべてのストローク部分を探索するため、S番目の文字列を走査し、得られたストローク部分の総数をNstrに割り当てる。
図7は、図6Aにおけるストロークヒストグラム探索部603の処理を示したフローチャートである。ストロークヒストグラムHstr(S)が入力された後(ステップS701)、始点探索部(図示せず)は、まず、第1のストローク閾値より大きいヒストグラム値(すなわちNstr)を有する第1の点を探索するため、0からh−1の順に上記ヒストグラムを探索し、その第1の点を始点として指定する(ステップS702)。始点が探索されない場合(ステップS703:NO)、ストロークヒストグラム探索部603は、「有効な文字列がない」という情報を返す。始点が探索された場合(ステップS703:YES)、終点探索部(図示せず)は、h−1から0の順に第1のストローク閾値より大きいヒストグラム値を有する第1の点を探索して、第1の点を終点として指定する(ステップS704)。次いで、中間点探索部は、最小のヒストグラム値を有する点を探索するため、始点と終点との間のヒストグラムを探索して、探索された点を中間点として指定する(ステップS705)。中間点に該当するストロークヒストグラム値が第1のストローク閾値より小さければ(ステップS706:YES)、文字列が分離可能であるということを示し、ストロークヒストグラム探索部603は、始点、終点、及び中間点の位置を返す(ステップS708)。そうでなければ(ステップS706:NO)、上記文字列は分離不可であり、ストロークヒストグラム探索部603は、始点及び終点の位置を返す(ステップS709)。
第1のストローク閾値は、極めて重要なパラメータである。本テキストにおいて、ストローク閾値は、1つの文字列における文字数の下限であり、それは文字列ストロークの特性を利用する。テキストイメージの各文字列が走査される場合、文字列のイメージが文字列を1つだけ含むならば、その走査は、この文字列の各文字を少なくとも通過しなければならない。言い換えれば、実際の文字列のストロークヒストグラムの値は、その文字列にある文字数より大きくなければならない。もし文字列イメージが1つ以上の文字列を含めば、ノイズのためそのテキストは互いに連結されている。このような状況下では、ノイズがある文字列のストロークヒストグラムの値は、文字列内のストロークの数より通常ずっと少なくなる。図13Eは、ノイズを有する文字列のストロークヒストグラムの例を示したものである。従って、このような文字列の特性は、ノイズを除去し、文字列を分離するのに利用される。
実際の処理時には、第1のストローク閾値は、指定文字列記述情報に記憶された文字列に含まれる文字数のみに依存して設定されるべきではない。その理由は、図13Bに示すように、指定文字列は、文字列初期抽出部302で幾つかの部分に分離されてもよいためである。基準文字列に含まれた文字の数だけが閾値として使用されれば、これらの部分すべてが、上記ストローク閾値の要求を満足できない可能性がある。したがって、本発明では、第1のストローク閾値を計算するため、第1ストローク閾値推定部507を用いることとしている。
図8は、第1ストローク閾値推定部507の処理を示したフローチャートである。第1のストローク閾値の推定を行う場合において、第1ストローク閾値推定部507の文字列文字計算部(図示せず)は、まず指定文字列記述情報記憶部311からの指定文字列記述情報に従って、文字列内の文字の数Ncharを取得する(ステップS1402)。この値は、統計的に基準文字列(すなわち、理想的な文字列)内の文字の数を数えることによって得られる。複数の文字列があれば、Ncharの値は、複数の文字列中の最も短い文字列に含まれた文字の数である。次いで、判定部は、上記文字列が分離不可なのか否かを判定する(ステップS1403)。ここで、分離は水平分離を意味するが、分離可能か否かは指定文字列記述情報記憶部311の情報を用いることによって判定される。指定文字列が分離不可であれば(ステップS1403:YES)、文字密度推定部(図示せず)は、ステップS1404において文字密度を推定するため、以下の式を採用する。
DEN
=基準文字列の文字の数/基準文字列のイメージの幅 (1)
その後、ステップS1405において、第1閾値計算部は、第1のストローク閾値THstroke1を計算するため、文字密度を利用する。ここで、
d=DEN×入力された文字列の幅−1, (2)
とする。
そして、d>Nchar−1であれば、
THstroke1=Nchar−1,
そうでなければ、
THstroke1=d, (3)
とする。
上記の式においては1を引くアルゴリズムが用いられているが、2などの他の数字を引くこととしてもよいことに注意されたい。あるいは、最終的な閾値は、計算された文字数に所定の割合(例えば、90%など)を掛けて得ることができる。これにより、途切れたストロークによりストローク数が減る現象を避けることができる。
一方、指定文字列が分離可能な文字列または間隔を有する分離不可である文字列であれば(ステップS1403:NO)、第2閾値計算部は、ステップS1406で第2の閾値を設定する。一例においては、閾値THstroke1はNchar−1として直接指定される。
文字密度は、指定文字列が複数の文字列に分離される場合、極めて重要である。式(2)のdは、入力された文字列にどれだけ数の文字があるかを正確に推定することができる。式(3)は、(図13Aに示すように)指定文字列が他の水平文字列とともに連結されている可能性があるので、第1のストローク閾値の上限を設定する。式(2)及び(3)において1を引く演算は、背景ノイズの影響により発生するいくつかの文字の途切れたストロークの現象を避けるためである。従って、第1ストローク閾値推定部507の計算によって得られた閾値は、指定文字列が複数の文字列に水平に分離される状況を效果的に処理するのに利用される。
ストロークヒストグラム探索部603から返された結果が、文字列が再分離可能であるというものならば、再分離判定部605は、元の文字列のイメージを上下の2つの部分に分離する。上部イメージと下部イメージの幅は、元の文字列の幅と同一である。上部イメージの上境界及び下境界は、ストロークヒストグラム探索部603から返された始点及び中間点によって決定される。下部イメージの上境界及び下境界は、ストロークヒストグラム探索部603から返された中間点及び終点によって決定される。
図13Bに示すように、文字列が再分離不可であれば、ストロークヒストグラム探索部603は、当該文字列の上境界及び下境界を示す始点及び終点のみを返す。図6のステップS609において、元のイメージのテキストイメージブロックは、出力された文字列のイメージにコピーされる。当該テキストイメージブロックの領域の上下の範囲は、ストロークヒストグラム探索部603から返された始点及び終点によって決まり、その左右の範囲は、元の入力された文字列の左右の範囲と同一である。図13Bの中間の3つの分離した文字列の左右の範囲が図13Aの中間の文字列のものと同一であるのはそのためである。
図3Bにおいて、水平及び垂直文字列の分離処理が完了した後、ノイズ点除去判定部305において、出力された文字列のイメージの画素値と、元の入力された文字列のイメージの画素値とが点ごとに比較される。2つのイメージが全く同一でなければ、これは分離処理時にノイズが除去されたことを示し、元の抽出の結果が変更される。図13Bに示すように、除去されるノイズがなくなるまでステップS302からステップS306までの処理が反復して行われる。
図9は、図3の文字列左/右境界位置調整部307の処理を示すフローチャートである。分離された文字列が入力された後(ステップS801)、左境界ノイズ文字除去部が、最初に文字列の左側でノイズ文字を除去するのに用いられる(ステップS802)。その後、右境界ノイズ文字除去部が、上記文字列の右側でノイズ文字を除去するのに用いられる(ステップS803)。そして、文字列の右側及び左側がノイズ文字を含んでいるか否か、すなわち、前の処理において除去されたノイズ文字があるか否かが判定される(ステップS804)。この処理は、文字列の左側及び右側に含まれたノイズ文字がなくなるまで繰り返される。
図10A及び図10Bは、図9に示したような、左側ノイズ文字除去処理及び右側ノイズ文字除去処理を行う左/右境界ノイズ文字除去部を示したものである。特に、図10Aは、境界ノイズ文字除去部の機能を示すブロック図で、図10Bは、左/右境界ノイズ文字除去部によって行われる左側ノイズ文字除去処理を示すフローチャートである。
図10Aに示すように、左/右境界ノイズ文字除去部は、数字文字列判定部901、最左側文字認識部902、最右側文字認識部903、単一文字高さ閾値推定部905、単一文字幅閾値推定部906、ノイズ文字判定部904、及びノイズ文字除去部907を含む。ここで、最左側文字認識部902及び最右側文字認識部903はそれぞれ、入力された文字列の最も左側の文字及び最も右側の文字を判定し、数字文字列判定部901は、指定文字列記述情報記憶部311から得られる情報に従って、入力された文字列が数字文字列なのか否かを判定する。単一文字幅閾値推定部906及び単一文字高さ閾値推定部905はそれぞれ、単一文字の幅の閾値及び高さの閾値を推定するため、文字列記述情報記憶部311に記憶された情報を利用する。特に、単一文字幅閾値推定部906は、文字列イメージの幅を文字列に含まれる文字の数で割り算し、単一文字の幅WIDTHを得る。そして、幅の閾値は、Cw×WIDTHとして設定される。ここで、Cwは、0から1までの間で設定される係数であり、例えば、Cw=0.5である。同様に、単一文字高さ閾値推定部905は、単一文字の高さの閾値を、Ch×HEIGHTと推定する。ここで、HEIGHTは、基準文字列の高さで、Chは、0から1までの間で設定される係数であり、例えば、Ch=0.6である。そして、数字文字列判定部901の情報により文字列が数字文字列であると判定される場合、ノイズ文字判定部904は、単一文字高さ閾値推定部905によって推定された高さの閾値に従って判定対象となる文字がノイズ文字なのか否かを判定する。さらに、ノイズ文字判定部904は、文字列が数字文字列ではない場合、単一文字高さ閾値推定部905によって推定された高さの閾値、及び単一文字幅閾値推定部906によって推定された幅の閾値に従って、判定対象となる文字がノイズ文字なのか否かを判定する。ノイズ文字除去部907は、ノイズ文字判定部904によってノイズ文字と判定された文字を除去する。
図10Bは、図9の左境界ノイズ文字除去を行う左/右境界ノイズ文字除去部の処理を示したフローチャートである。まず、文字列の各文字に外接する矩形の座標は、入力された文字列の情報を用いて得られ、最も左側の文字は、最左側文字認識部902によってこれらの座標を探索することによって決定される(ステップS902)。次いで、上記文字がノイズ文字なのか否かが判定される。これは、上記文字の幅及び高さを単一文字の幅及び高さの情報と比較することによって行われる。特に、ステップS903においてまず、既存の文字列記述情報に従って指定文字列が数字文字列なのか否かを判定する。指定文字列が数字文字列であれば(ステップS903:YES)、たとえば「1」のような特定の数字の幅は極端に狭いため、最も左側の文字の高さは、単一文字の高さの閾値のみと比較される(ステップS905)。文字の高さが閾値より低ければ(ステップS905:YES)、当該文字はノイズ文字と判定され、除去される(ステップS906)。この場合、文字列の左境界は、ノイズ文字が除去された文字列の最も左側の文字の左境界である。
指定文字列が数字文字列でなければ(ステップS903:NO)、最も左側の文字の高さ及び幅はすべて、対応する単一文字の高さの閾値及び単一文字の幅の閾値と比較されなければならない(ステップS904及びS905)。上記2つの値の両方が閾値より小さければ、上記文字はノイズ文字と判定され、除去される(ステップS906)。
右境界ノイズ文字除去処理の流れは、左境界ノイズ文字除去処理の流れと同様である。唯一の差異点は、毎回文字列の最も右側の文字を検査するという点である。
図11は、図3の文字列上/下境界位置調整部308の機能を示したブロック図である。まず、左/右境界ノイズ文字除去部を通過した文字列が入力されると、ストロークヒストグラム生成部1002は、ストロークヒストグラムを得るため、文字列の二値化されたイメージについての処理を実行する。このストロークヒストグラム生成部1002は、図6のストロークヒストグラム生成部602と同一である。次いで、第2ストローク閾値設定部1003は、第2のストローク閾値を設定する。特に、第2ストロークの閾値は、Nchar−1に設定される。図6のヒストグラム探索部603と同様に、始点探索部1004はまず、ストローク値が第2のストローク閾値より大きい第1の点を決定するため、上から下へストロークヒストグラムを探索し、第1の点を始点(すなわち、上境界)として指定する。第1の点に対応するストロークヒストグラムのストローク値をS1とすると、上境界閾値再推定部1005は、上境界の閾値THupperを再び推定する。
THupper=Cupper×S1
ここで、Cupperは、0と1との間で設定される係数であり、例えば、Cupper=0.66である。
その後、上境界位置調整部1006は、始点から上へ探索をおこなうために再推定された上境界の閾値を用いる。これにより、上記上境界の閾値より小さなヒストグラム値を有する第1の点を探索し、第1の点に始点の位置を調整する。
上境界と同様に、終点探索部1007は、第2のストローク閾値より大きいストローク値を有する第1の点を決定するため、下から上へストロークヒストグラムを探索し、第1の点を終点(すなわち、下境界)として指定する。次いで、第1の点に対応するストロークヒストグラムのストローク値をS2とすると、下境界閾値再推定部1008は、上記下境界の閾値THbottomを再び推定する。
THbottom=Cbottom*S2
ここで、Cbottomは、0と1との間で設定される係数であり、例えば、Cbottom=0.66である。
その後、下境界位置調整部1009は、下境界の閾値より小さなヒストグラム値を有する第1の点を探索するため、終点から下側へ探索を開始し、第1の点に終点の位置を調整する。
上/下境界調整の目的は、文字列の上下位置を正確に決定することにある。記号文字列などの所定文字列では、ある記号は文字列の高さ全体を貫かない。従って、第2のヒストグラム閾値は、ある文字の上下境界の過度な分割を引き起こしてしまう。そのため、上下境界のストローク閾値の範囲を広げることによって、文字の上下位置の過度な分割が防止されるようにする。上下境界の位置の調整後、元の文字列の上境界の上にあるイメージ部分、及び下境界の下にあるイメージ部分はノイズと判定され、ノイズ除去部1010は、このような画素点の値を背景画素点の値に設定することによりノイズを除去する。図13Dは、上境界及び下境界の調整後の文字列のイメージを示したものである。
図13Dの指定文字列が正確に抽出されなくても、最終結果はまだ他の文字列を多く含む。図3の指定文字列決定部309は、どの文字列が指定文字列なのか最終的に決定するのに用いられる。
図12は、図3に示す指定文字列決定部309の処理を示すフローチャートである。上/下境界調整処理及び左/右境界調整処理が行われた文字列の入力後(ステップS1101)、ノイズ文字列除去部は、ノイズ文字列を除去するため、指定文字列記述情報に記憶された情報を用いる(ステップS1102)(ここで、ノイズ文字列とは、明らかに指定文字列ではない文字列のことである)。入力された各文字列において、X1は文字列の左側の境界位置で、X0は基準指定文字列の左側の境界位置であると仮定する。Wtstrは基準文字列の幅で、H1は入力された文字列の高さで、H0は基準文字列の高さである。もし以下の2つの条件のうちの1つが満足されれば、文字列は、ノイズ文字列と判定される。
ABS(X1−X0)/Wtstr>TH1 (4)
H1/H0<TH2 (5)
TH1及びTH2は、相対的位置ずれ及び相対的高さの閾値で、これは経験値である。
式4の物理的意味は、実際の文字列の左境界と指定基準文字列の左境界との間の位置ずれの程度である。ずれが所定の程度を超えると、上記文字列は指定文字列ではない。式5の物理的意味は、実際の文字列の高さと指定基準文字列の高さとの間の比率である。実際の文字列の高さが小さ過ぎると、当該文字列は指定文字列ではない。
ノイズ文字列が除去された後、ステップS1103で指定文字列が、長さが固定されない文字列なのか否かが判定される。これは、基準記述情報から得られた文字列の長さ情報を判定することによって実行される。指定文字列が固定長さの文字列であれば(ステップS1103:NO)、本発明の処理はステップS1104へ進み、指定文字列が文字列領域の重なりの割合を用いて探索される。すなわち、領域の重なりの割合が最大である文字列が指定文字列と判定される。指定文字列が、長さが固定されない文字列であれば(ステップS1103:YES)、本発明の処理はステップS1105へ進み、指定文字列が文字列の高さの重なりの割合を用いて探索される。すなわち、高さの重なりの割合が最大である文字列が指定文字列と判定される。そして、指定文字列が最終的に抽出される(ステップS1106)。以下に、領域の重なりの割合及び高さの重なりの割合を計算する方法を説明する。高さの重なりの割合または領域の重なりの割合が最大の文字列が指定文字列である。
指定文字列記述情報に記憶された文字列の幅及び高さをW0及びH0とし、入力された文字列の幅及び高さをW1及びH1とする。領域の重なりの割合を計算するための式は以下のとおりである。
min_w=min(W0,W1),min_h=min(H0,H1)
R=min_w×min_h/(W0×H0+W1×H1−min_w×min_h)
これと同様に、高さの重なりの割合を計算するための式は以下のとおりである。
Rh=min_h/(H0+H1−min_h)
本発明は、特定の実施例と共に説明されたが、上記説明の様態における多様な変形は当業者に明白なものである。従って、添付された請求の範囲は、本発明の概念及び範囲を逸脱しないすべての変形を含む。
(付記1)文字列イメージを垂直に分離する方法であって、
文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定工程と、
前記文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去する文字列間ノイズ除去工程と、
を含んだことを特徴とする文字列イメージを垂直に分離する方法。
(付記2)前記複数文字列判定工程が、前記文字列イメージの高さが文字列の高さの閾値よりも大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする付記1に記載の文字列イメージを垂直に分離する方法。
(付記3)前記文字列間ノイズ除去工程は、
前記文字列イメージから文字列を分割する文字列分割工程と、
前記文字列分割工程によって分割された文字列が有効な文字列か有効でない文字列かを判定する有効文字列判定工程と、
前記有効文字列判定工程によって有効な文字列と判定された文字列イメージを出力する出力工程と、
を含んだことを特徴とする付記1に記載の文字列イメージを垂直に分離する方法。
(付記4)前記文字列間ノイズ除去工程は、
前記有効文字列判定工程によって有効な文字列と判定された文字列が再分離可能な文字列か否かを判定する再分離判定工程と、
前記再分離判定工程によって再分離可能な文字列と判定された文字列を分離する文字列分離工程と、
をさらに含み、
有効な文字列の再分離ができなくなるまで、前記文字列分離工程、有効文字列判定工程、再分離判定工程及び文字列分割工程を繰り返すことによって、前記文字列分離工程により分離された文字列イメージに対する反復処理が行われ、
前記出力工程は、分離不可である有効な文字列イメージを出力することを特徴とする付記3に記載の文字列イメージを垂直に分離する方法。
(付記5)前記文字列分割工程は、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成工程と、
前記ストロークヒストグラム生成工程によって生成されたストロークヒストグラムを探索して文字列を分割するストロークヒストグラム探索工程と、
を含み、
前記ストロークヒストグラム探索工程は、
所定の順序で前記文字列の始点、すなわち、第1のストローク閾値より大きいストローク値を有する探索方向における第1の点を前記ストロークヒストグラムから探索する始点探索工程と、
前記始点探索工程とは逆の探索順序で、前記文字列の終点、すなわち、第1のストローク閾値より大きいストローク値を有する探索方向における第1の点をストロークヒストグラムから探索する終点探索工程と、
を含んだことを特徴とする付記4に記載の文字列イメージを垂直に分離する方法。
(付記6)前記ストロークヒストグラム探索工程は、
前記始点と終点との間の最小のストローク値を有する中間点を探索する中間点探索工程をさらに含み、
前記再分離判定工程は、前記中間点に対応するストロークヒストグラムが第1のストローク閾値より小さなストローク値を有する場合、前記文字列が分離可能な文字列であると判定し、
前記文字列分離工程は、分離可能で有効な文字列イメージを2つの部分に分離し、1つの部分の上境界及び下境界は、前記始点及び中間点によって決定され、もう1つの部分の上境界及び下境界は、前記中間点及び終点によって決定されることを特徴とする付記5に記載の文字列イメージを垂直に分離する方法。
(付記7)前記第1のストローク閾値は、
前記文字列イメージの文字列内の文字の数を計算し、前記文字列イメージ内に複数の文字列があれば、計算された文字数を最短の文字列の文字数と判定するイメージ文字列文字数計算工程と、
前記文字列が水平に分離不可であるか否かを判定する判定工程と、
前記判定工程により前記文字列が水平に分離不可である文字列であると判定された場合、文字密度及び前記イメージ文字列文字数計算工程で計算された文字数を用いて前記第1のストローク閾値を推定し、前記判定工程により前記文字列が水平に分離可能な文字列であると判定された場合、前記イメージ文字列文字数計算工程によって計算された文字数を用いて前記第1のストローク閾値を推定する閾値推定工程と、
によって推定されることを特徴とする付記5に記載の文字列イメージを垂直に分離する方法。
(付記8)前記文字密度は、基準文字列におけるイメージの幅に対する基準文字列内の文字の数の割合であり、水平に分離不可な文字列において、前記閾値推定工程は、前記文字密度および入力された基準文字列におけるイメージの幅の積と、前記イメージ文字列文字数計算工程によって計算された文字数との間でより小さいものを前記第1のストローク閾値に決定することを特徴とする付記7に記載の文字列イメージを垂直に分離する方法。
(付記9)前記文字列イメージは、二値化されたイメージであることを特徴とする付記1〜8のいずれか1つに記載の文字列イメージを垂直に分離する方法。
(付記10)文字列イメージを垂直に分離する装置であって、
文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手段と、
前記文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去する文字列間ノイズ除去手段と、
を備えたことを特徴とする文字列イメージを垂直に分離する装置。
(付記11)前記複数文字列判定手段が、前記文字列イメージの高さが文字列の高さの閾値より大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする付記10に記載の文字列イメージを垂直に分離する装置。
(付記12)前記文字列間ノイズ除去手段は、
前記文字列イメージから文字列を分割する文字列分割手段と、
前記文字列分割手段によって分割された文字列が有効な文字列か有効でない文字列かを判定する有効文字列判定手段と、
前記有効文字列判定手段によって有効な文字列と判定された文字列イメージを出力する出力手段と、
を備えたことを特徴とする付記10に記載の文字列イメージを垂直に分離する装置。
(付記13)前記文字列間ノイズ除去手段は、
前記有効文字列判定手段によって有効な文字列と判定された文字列が再分離可能な文字列か否かを判定する再分離判定手段と、
前記再分離判定手段によって再分離可能な文字列と判定された文字列を分離する文字列分離手段と、
をさらに備え、
前記文字列分離手段によって分離された文字列イメージが前記文字列分割手段に入力され、有効な文字列の再分離ができなくなるまで前記文字列分割手段、有効文字列判定手段、再分離判定手段及び文字列分離手段により反復処理が実行され、
前記出力手段は、分離不可である有効な文字列イメージを出力することを特徴とする付記12に記載の文字列イメージを垂直に分離する装置。
(付記14)前記文字列分割手段は、
前記第1のストローク閾値を推定する第1ストローク閾値推定手段と、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成手段と、
前記ストロークヒストグラム生成手段によって生成されたストロークヒストグラムを探索し、前記文字列を分割するストロークヒストグラム探索手段と、
を備え、
前記ストロークヒストグラム探索手段は、
所定の順序で前記文字列の始点、すなわち、第1のストローク閾値より大きいストローク値を有する探索方向における第1の点を前記ストロークヒストグラムから探索する始点探索手段と、
前記始点探索手段とは逆の探索順序で前記文字列の終点、すなわち、第1のストローク閾値より大きいストローク値を有する探索方向における第1の点をストロークヒストグラムから探索する終点探索手段と、
を備えたことを特徴とする付記13に記載の文字列イメージを垂直に分離する装置。
(付記15)前記ストロークヒストグラム探索手段は、
前記始点と終点との間の最小のストローク値を有する中間点を探索する中間点探索手段をさらに備え、
前記再分離判定手段は、前記中間点に対応するストロークヒストグラムが第1のストローク閾値より小さなストローク値を有する場合、前記文字列が分離可能な文字列であると判定し、前記中間点に対応するストロークヒストグラムが第1のストローク閾値より小さなストローク値を有しない場合、前記文字列は分離が不可能な文字列であると判定し、
前記文字列分離手段は、前記分離可能で有効な文字列イメージを2つの部分に分離し、1つの部分の上境界及び下境界は、前記始点及び中間点によって決定され、もう1つの部分の上境界及び下境界は、前記中間点及び終点によって決定されることを特徴とする付記14に記載の文字列イメージを垂直に分離する装置。
(付記16)前記第1ストローク閾値推定手段は、
前記文字列イメージの文字列内の文字の数を計算し、前記文字列イメージ内に複数の文字列があれば、計算された文字数を最短の文字列の文字数と判定するイメージ文字列文字数計算手段と、
前記文字列が水平に分離不可であるか否かを判定する判定手段と、
前記判定手段が前記文字列は水平に分離不可である文字列であると判定した場合、文字密度及び前記イメージ文字列文字数計算手段により計算された文字数を用いて前記第1のストローク閾値を推定し、前記判定手段が前記文字列は水平に分離可能な文字列であると判定した場合、前記イメージ文字列文字数計算手段により計算された文字数を用いて前記第1のストローク閾値を推定する閾値推定手段と、
を備えたことを特徴とする付記14に記載の文字列イメージを垂直に分離する装置。
(付記17)前記文字密度は、基準文字列におけるイメージの幅に対する基準文字列内の文字の数の割合であり、水平に分離不可な文字列において、前記閾値推定手段は、前記文字密度および入力された文字列の幅の積と、前記イメージ文字列文字数計算手段によって計算された文字数との間でより小さいものを前記第1のストローク閾値に決定することを特徴とする付記16に記載の文字列イメージを垂直に分離する装置。
(付記18)前記文字列イメージは、二値化されたイメージであることを特徴とする付記10〜17のいずれか1つに記載の文字列イメージを垂直に分離する装置。
(付記19)指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出工程を含む指定文字列を抽出する方法であって、
水平に連結された2つ以上の文字列を分離する水平文字列分離工程と、
前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定工程、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去工程を含み、垂直に連結された2つ以上の文字列を分離する垂直文字列分離工程と、
前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程が、前記文字列の垂直分離または水平分離を行うか否かを判定する分離判定工程と、
をさらに含み、
前記分離判定工程により前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程が前記文字列の垂直分離または水平分離を行うと判定された場合、前記垂直文字列分離工程及び前記水平文字列分離工程のうち後に行われる工程によって分離される文字列がなくなるまで、分離された文字列イメージに対する前記文字列初期抽出工程、前記水平文字列分離工程、垂直文字列分離工程及び分離判定工程が反復されることを特徴とする指定文字列を抽出する方法。
(付記20)前記水平文字列分離工程は、
前記文字列が間隔を有する分離不可である文字列か否かを検査する文字列分離型判定工程と、
前記文字列分離型判定工程により前記文字列の分離型が間隔を有する分離不可な文字列ではないと判定された場合に、分離間隔の閾値を推定する分離間隔閾値推定工程と、
前記分離間隔閾値推定工程によって推定された分離間隔の閾値に基づいて、水平文字列分離を行う水平文字列分離工程と、
を含んだことを特徴とする付記19に記載の指定文字列を抽出する方法。
(付記21)前記文字列が文字文字列を1つだけ含み、文字間の間隔が前記分離間隔の閾値より大きいと判定した場合に、前記水平文字列分離工程は前記文字列を分離することを特徴とする付記20に記載の指定文字列を抽出する方法。
(付記22)前記分離間隔閾値推定工程は、前記文字列内の水平間隔のヒストグラムを計算し、最大のヒストグラム値に対応する水平間隔を探索し、前記指定文字列の高さ及び前記最大のヒストグラム値に対応する水平間隔から計算された値のうちより大きい値を前記分離間隔の閾値として推定することを特徴とする付記20に記載の指定文字列を抽出する方法。
(付記23)前記文字列間ノイズ除去工程は、
前記文字列イメージから文字列を分割する文字列分割工程と、
前記文字列分割工程によって分割された文字列が有効な文字列か、有効でない文字列かを判定する有効文字列判定工程と、
前記有効文字列判定工程によって有効な文字列と判定された文字列イメージを出力する出力工程と、
を含んだことを特徴とする付記19に記載の指定文字列を抽出する方法。
(付記24)前記文字列間ノイズ除去工程は、
前記有効文字列判定工程によって有効な文字列と判定された文字列が再分離可能な文字列か否かを判定する再分離判定工程と、
前記再分離判定工程によって再分離可能な文字列と判定された文字列を分離する文字列分離工程と、
をさらに含み、
有効な文字列の再分離ができなくなるまで、前記文字列分割工程、有効文字列判定工程、再分離判定工程及び文字列分離工程を繰り返すことによって、前記文字列分離工程により分離された文字列イメージに対する反復処理が行われ、
前記出力工程は、分離不可である有効な文字列イメージを出力することを特徴とする付記23に記載の指定文字列を抽出する方法。
(付記25)前記文字列分割工程は、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成工程と、
前記ストロークヒストグラム生成工程によって生成されたストロークヒストグラムを探索し、前記文字列を分割するストロークヒストグラム探索工程を含み、
前記ストロークヒストグラム探索工程は、
所定の順序で前記文字列の始点、すなわち、第1のストローク閾値より大きいストローク値を有する探索方向における第1の点を前記ストロークヒストグラムから探索する始点探索工程と、
前記始点探索工程とは逆の探索順序で前記文字列の終点、すなわち、第1のストローク閾値より大きいストローク値を有する探索方向における第1の点をストロークヒストグラムから探索する終点探索工程と、
を含んだことを特徴とする付記23に記載の指定文字列を抽出する方法。
(付記26)前記ストロークヒストグラム探索工程は、
前記始点及び前記終点との間の最小のストローク値を有する中間点を探索する中間点探索工程をさらに含み、
前記再分離判定工程は、前記中間点に対応するストロークヒストグラムが第1のストローク閾値より小さなストローク値を有する場合、前記文字列が分離可能な文字列であると判定し、
前記文字列分離工程は、分離可能で有効な文字列イメージを2つの部分に分離し、1つの部分の上境界及び下境界は、前記始点及び中間点によって決定され、もう1つの部分の上境界及び下境界は、前記中間点及び終点によって決定されることを特徴とする付記25に記載の指定文字列を抽出する方法。
(付記27)前記第1ストローク閾値は、
前記文字列イメージの文字列内の文字の数を計算し、前記文字列イメージ内に複数の文字列があれば、計算された文字数を最短の文字列の文字数と判定するイメージ文字列文字数計算工程と、
前記文字列が水平に分離不可であるか否かを判定する判定工程と、
前記判定工程により前記文字列が水平に分離不可である文字列であると判定された場合、文字密度及び前記イメージ文字列文字数計算工程で計算された文字数を用いて前記第1のストローク閾値を推定し、前記判定工程により前記文字列は水平に分離可能な文字列であると判定された場合、前記イメージ文字列文字数計算工程によって計算された文字数を用いて前記第1のストローク閾値を推定する閾値推定工程と、
によって推定されることを特徴とする付記25に記載の指定文字列を抽出する方法。
(付記28)前記文字密度は、基準文字列におけるイメージの幅に対する基準文字列内の文字の数の割合であり、水平に分離不可な文字列において、前記閾値推定工程は、前記文字密度および入力された文字列の幅の積と、前記イメージ文字列文字数計算工程によって計算された文字数との間でより小さいものを前記第1のストローク閾値に決定することを特徴とする付記27に記載の指定文字列を抽出する方法。
(付記29)水平分離及び垂直分離の後、前記文字列の左/右境界のノイズ文字を除去する文字列左/右境界位置調整工程と、
水平分離及び垂直分離の後、前記文字列の上/下境界のノイズを除去する文字列上/下境界位置調整工程と、
水平分離及び垂直分離の後、文字列から指定文字列を決定する指定文字列決定工程と、
をさらに含んだことを特徴とする付記19〜28のいずれか1つに記載の指定文字列を抽出する方法。
(付記30)前記文字列左/右境界位置調整工程は、
前記最も左側の文字を認識する最左側文字認識工程と、
前記最も右側の文字を認識する最右側文字認識工程と、
認識された前記最も左側の文字及び最も右側の文字がノイズ文字か否かを判定するノイズ文字判定工程と、
前記文字列から最も左側の文字及び/または最も右側の文字を除去するノイズ文字除去工程と、
を含んだことを特徴とする付記29に記載の指定文字列を抽出する方法。
(付記31)前記ノイズ文字判定工程は、文字高さの閾値より小さな高さの数字文字、前記文字高さの閾値及び幅の閾値より小さな高さ及び幅の数字ではない文字をノイズ文字として判定することを特徴とする付記30に記載の指定文字列を抽出する方法。
(付記32)前記文字列上/下境界位置調整工程は、
前記第2のストローク閾値を設定する第2ストローク閾値設定工程と、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成工程と、
前記第2のストローク閾値に基づいて前記ストロークヒストグラムを探索し、前記上境界を得る上境界探索工程と、
前記上境界に対応するストローク値に基づいて、前記文字列の上境界の閾値を調整する上境界閾値調整工程と、
調整された上境界の閾値に基づいて、前記文字列の前記上境界を調整する上境界調整工程と、
前記第2のストローク閾値に基づいて前記ストロークヒストグラムを探索し、前記下境界を得る下境界探索工程と、
前記下境界に対応するストローク値に基づいて、前記文字列の下境界の閾値を調整する下境界閾値調整工程と、
調整された下境界の閾値に基づいて、前記文字列の前記下境界を調整する下境界調整工程と、
調整された上境界及び下境界に基づいて、前記文字列からノイズを除去するノイズ除去工程と、
を含んだことを特徴とする付記29に記載の指定文字列を抽出する方法。
(付記33)前記指定文字列判定工程は、
指定文字列を含む複数の文字列からノイズ文字列を除去するノイズ文字列除去工程と、
ノイズ文字列が除去された文字列から、高さの重なりの割合が最大であり、長さが固定的ではない文字列、あるいは、領域の重なりの割合が最大であり、長さが固定された文字列を指定文字列として抽出する指定文字列抽出工程と、
を含んだことを特徴とする付記29に記載の指定文字列を抽出する方法。
(付記34)指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出手段を備えた指定文字列を抽出する装置であって、
水平に連結された2つ以上の文字列を分離する水平文字列分離手段と、
前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手段、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去手段を備え、垂直に連結された2つ以上の文字列を分離する垂直文字列分離手段と、
前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段が、前記文字列への垂直分離または水平分離を行うか否かを判定する分離判定手段と、
を備え、
前記分離判定手段により前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段が前記文字列への垂直分離または水平分離を行うと判定された場合、分離された文字列イメージが前記文字列初期抽出手段に入力され、前記文字列初期抽出手段、水平文字列分離手段、垂直文字列分離手段及び分離判定手段はそれぞれ処理を実行し、前記文字列初期抽出手段、水平文字列分離手段、垂直文字列分離手段及び分離判定手段の各処理は、前記垂直文字列分離手段及び前記水平文字列分離手段のうち後に機能する手段によって分離される文字列がなくなるまで繰り返し行われることを特徴とする指定文字列を抽出する装置。
(付記35)前記水平文字列分離手段は、
前記文字列が間隔を有する分離不可である文字列か否かを検査する文字列分離型判定手段と、
前記文字列分離型判定手段が前記文字列の分離型が間隔を有する分離不可な文字列ではないと判定した場合に、分離間隔の閾値を推定する分離間隔閾値推定手段と、
前記分離間隔閾値推定手段によって推定された分離間隔の閾値に基づいて、水平文字列分離を行う水平文字列分離手段と、
を備えたことを特徴とする付記34に記載の指定文字列を抽出する装置。
(付記36)前記水平文字列分離手段は、
前記文字列が文字文字列を1つだけ含み、文字間の間隔が前記分離間隔の閾値より大きいと判定した場合に、前記文字列を分離することを特徴とする付記35に記載の指定文字列を抽出する装置。
(付記37)前記分離間隔閾値推定手段は、前記文字列内の前記水平間隔のヒストグラムを計算し、最大のヒストグラム値に対応する水平間隔を探索し、前記指定文字列の高さ及び前記最大のヒストグラム値に対応する水平間隔から計算された値のうちより大きい値を前記分離間隔の閾値として推定することを特徴とする付記35に記載の指定文字列を抽出する装置。
(付記38)前記文字列間ノイズ除去手段は、
前記文字列イメージから文字列を分割する文字列分割手段と、
前記文字列分割手段によって分割された文字列が有効な文字列か、有効でない文字列かを判定する有効文字列判定手段と、
前記有効文字列判定手段によって有効な文字列と判定された文字列イメージを出力する出力手段と、
を備えたことを特徴とする付記34に記載の指定文字列を抽出する装置。
(付記39)前記文字列間ノイズ除去手段は、
前記有効文字列判定手段によって有効な文字列と判定された文字列が再分離可能な文字列か否かを判定する再分離判定手段と、
前記再分離判定手段によって再分離可能な文字列と判定された文字列を分離する文字列分離手段と、
をさらに備え、
有効な文字列の再分離ができなくなるまで、前記文字列分割手段、有効文字列判定手段、再分離判定手段及び文字列分離手段を繰り返すことによって、前記文字列分離手段により分離された文字列イメージに対する反復処理が行われることを特徴とする付記38に記載の指定文字列を抽出する装置。
(付記40)前記文字列分割手段は、
第1のストローク閾値を推定する第1ストローク閾値推定手段と、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成手段と、
前記ストロークヒストグラム生成手段によって生成されたストロークヒストグラムを探索し、前記文字列を抽出するストロークヒストグラム探索手段と、
を備え、
前記ストロークヒストグラム探索手段は、
所定の順序で前記文字列の始点、すなわち、第1のストローク閾値より大きいストローク値を有する探索方向における第1の点を前記ストロークヒストグラムから探索する始点探索手段と、
前記始点探索手段とは逆の探索順序で前記文字列の終点、すなわち、第1のストローク閾値より大きいストローク値を有する探索方向における第1の点をストロークヒストグラムから探索する終点探索手段と、
を備えたことを特徴とする付記38に記載の指定文字列を抽出する装置。
(付記41)前記ストロークヒストグラム探索手段は、
前記始点及び前記終点との間の最小のストローク値を有する中間点を探索する中間点探索手段をさらに備え、
前記再分離判定手段は、前記中間点に対応するストロークヒストグラムが第1のストローク閾値より小さなストローク値を有する場合、前記文字列が分離可能な文字列であると判定し、
前記文字列分離手段は、分離可能で有効な文字列イメージを2つの部分に分離し、1つの部分の上境界及び下境界は、前記始点及び中間点によって決定され、もう1つの部分の上境界及び下境界は、前記中間点及び終点によって決定されることを特徴とする付記40に記載の指定文字列を抽出する装置。
(付記42)前記第1ストローク閾値推定手段は、
前記文字列イメージの文字列内の文字の数を計算し、前記文字列イメージ内に複数の文字列があれば、計算された文字数を最短の文字列の文字数と判定するイメージ文字列文字数計算手段と、
前記文字列が水平に分離不可であるか否かを判定する判定手段と、
前記判定手段が前記文字列は水平に分離不可である文字列であると判定した場合、文字密度及び前記イメージ文字列文字数計算手段により計算された文字数を用いて前記第1のストローク閾値を推定し、前記判定手段が前記文字列は水平に分離可能な文字列であると判定した場合、前記イメージ文字列文字数計算手段によって計算された文字数を用いて前記第1のストローク閾値を推定する閾値推定手段と、
を備えたことを特徴とする付記40に記載の指定文字列を抽出する装置。
(付記43)前記文字密度は、基準文字列におけるイメージの幅に対する基準文字列内の文字の数の割合であり、水平に分離不可な文字列において、前記閾値推定手段は、前記文字密度および入力された文字列の幅の積と、前記イメージ文字列文字数計算手段によって計算された文字数との間でより小さいものを前記第1のストローク閾値に決定することを特徴とする付記42に記載の指定文字列を抽出する装置。
(付記44)水平分離及び垂直分離の後、前記文字列の左/右境界のノイズ文字を除去する文字列左/右境界位置調整手段と、
水平分離及び垂直分離の後、前記文字列の上/下境界のノイズを除去する文字列上/下境界位置調整手段と、
水平分離及び垂直分離の後、文字列から指定文字列を決定する指定文字列決定手段と、
をさらに備えることを特徴とする付記34〜43のいずれか1つに記載の指定文字列を抽出する装置。
(付記45)前記文字列左/右境界位置調整手段は、
前記最も左側の文字を認識する最左側文字認識手段と、
前記最も右側の文字を認識する最右側文字認識手段と、
認識された前記最も左側の文字及び最も右側の文字がノイズ文字か否かを判定するノイズ文字判定手段と、
前記文字列から最も左側の文字及び/または最も右側の文字を除去するノイズ文字除去手段と、
を備えたことを特徴とする付記44に記載の指定文字列を抽出する装置。
(付記46)前記ノイズ文字判定手段は、文字高さの閾値より小さな高さの数字文字、前記文字高さの閾値及び幅の閾値より小さな高さ及び幅の数字ではない文字をノイズ文字として判定することを特徴とする付記45に記載の指定文字列を抽出する装置。
(付記47)前記文字列上/下境界位置調整手段は、
前記第2のストローク閾値を設定する第2ストローク閾値設定手段と、
前記文字列イメージのストロークヒストグラムを生成するストロークヒストグラム生成手段と、
前記第2のストローク閾値に基づいて前記ストロークヒストグラムを探索し、前記上境界を得る上側境界探索手段と、
前記上境界に対応するストローク値に基づいて、前記文字列の上境界の閾値を調整する上境界閾値調整手段と、
調整された上境界の閾値に基づいて、前記文字列の前記上境界を調整する上境界調整手段と、
前記第2のストローク閾値に基づいて前記ストロークヒストグラムを探索し、前記下境界を得る下境界探索手段と、
前記下境界に対応するストローク値に基づいて、前記文字列の下境界の閾値を調整する下境界閾値調整手段と、
調整された下境界の閾値に基づいて、前記文字列の前記下境界を調整する下境界調整手段と、
調整された上境界及び下境界に基づいて、前記文字列からノイズを除去するノイズ除去手段と、
を備えたことを特徴とする付記44に記載の指定文字列を抽出する装置。
(付記48)前記指定文字列判定手段は、
指定文字列を含む複数の文字列からノイズ文字列を除去するノイズ文字列除去手段と、
ノイズ文字列が除去された文字列から、高さの重なりの割合が最大であり、長さが固定的ではない文字列、あるいは、領域の重なりの割合が最大であり、長さが固定された文字列を指定文字列として抽出する指定文字列抽出手段と、
を備えたことを特徴とする付記44に記載の指定文字列を抽出する装置。
(付記49)文字列イメージを垂直に分離するプログラムであって、
文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手順と、
前記文字列イメージが複数の文字列を含むと判定された場合に文字列間のノイズを除去する文字列間ノイズ除去手順と、
をコンピュータに実行させることを特徴とする文字列イメージを垂直に分離するプログラム。
(付記50)前記複数文字列判定手順が、前記文字列イメージの高さが文字列の高さの閾値よりも大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする付記49に記載の文字列イメージを垂直に分離するプログラム。
(付記51)指定文字列を含む文字列イメージから文字列を初期抽出する文字列初期抽出手順をコンピュータに実行させる指定文字列を抽出するプログラムであって、
水平に連結された2つ以上の文字列を分離する水平文字列分離手順と、
前記文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手順、前記文字列イメージが複数の文字列を含むと判定された場合、文字列間のノイズを除去する文字列間ノイズ除去手順を含み、垂直に連結された2つ以上の文字列を分離する垂直文字列分離手順と、
前記垂直文字列分離手順及び前記水平文字列分離手順のうち後に行われる手順が、前記文字列の垂直分離または水平分離を行うか否かを判定する分離判定手順と、
をさらにコンピュータに実行させ、
前記分離判定手順により前記垂直文字列分離手順及び前記水平文字列分離手順のうち後に行われる手順が前記文字列の垂直分離または水平分離を行うと判定された場合、前記垂直文字列分離手順及び前記水平文字列分離手順のうち後に行われる手順によって分離される文字列がなくなるまで、分離された文字列イメージに対する前記文字列初期抽出手順、前記水平文字列分離手順、垂直文字列分離手順及び分離判定手順が反復されることを特徴とする指定文字列を抽出するプログラム。
(付記52)前記水平文字列分離手順は、
前記文字列が間隔を有する分離不可である文字列か否かを検査する文字列分離型判定手順と、
前記文字列分離型判定手順により前記文字列の分離型が間隔を有する分離不可な文字列ではないと判定された場合に、分離間隔の閾値を推定する分離間隔閾値推定手順と、
前記分離間隔閾値推定手順によって推定された分離間隔の閾値に基づいて、水平文字列分離を行う水平文字列分離手順と、
をコンピュータに実行させることを特徴とする付記51に記載の指定文字列を抽出するプログラム。
以上のように、本発明は、文字列イメージを垂直に分離するプログラム、方法及び装置、指定文字列を抽出するプログラム、方法及び装置に関し、特に、テーブルカラムのような、複数の文字列から指定文字列を抽出するためのプログラム、方法及び装置に有用である。
テーブルフォーム認識の一例を示す図である。 図1の例に従来方法を適用した場合の認識結果を示す図である。 本発明の一実施例に従って指定文字列を抽出する装置の機能を示したブロック図である。 本発明の一実施例に従って指定文字列を抽出する装置の処理を示すフローチャートである。 水平文字列分離部303の処理を示すフローチャートである。 文字の水平間隔の計算方法を示す図である。 図3の垂直文字列分離部304の機能を示すブロック図である。 図3の垂直文字列分離部304の処理を示すフローチャートである。 文字列間ノイズ除去部503の機能を示すブロック図である。 文字列間ノイズ除去部503の処理を示すフローチャートである。 図6のストロークヒストグラム探索部603の処理を示すフローチャートである。 第1ストローク閾値推定部507の処理を示すフローチャートである。 図3の文字列左/右境界位置調整部307の処理を示すフローチャートである。 図9に示された左側ノイズ文字除去処理及び右側ノイズ文字除去処理を行う境界ノイズ文字除去部を示す図である。 図9に示された左側ノイズ文字除去処理及び右側ノイズ文字除去処理を行う境界ノイズ文字除去部を示す図である。 図3の文字列上/下境界位置調整部308の機能を示すブロック図である。 指定文字列決定部309の処理を示すフローチャートである。 図2の各文字列に対して本発明による各ステップの処理が実行された結果を例示する図である。 図2の各文字列に対して本発明による各ステップの処理が実行された結果を例示する図である。 図2の各文字列に対して本発明による各ステップの処理が実行された結果を例示する図である。 図2の各文字列に対して本発明による各ステップの処理が実行された結果を例示する図である。 ノイズを有する文字列のストロークヒストグラムの例を示す図である。 指定文字列記述情報記憶部311に記憶された指定文字列記述情報の例を示す図である。 文字列の4つのデータ型の例を示す図である。
符号の説明
301 入力部
302 文字列初期抽出部
303 水平文字列分離部
304 垂直文字列分離部
305 ノイズ点除去判定部
307 文字列左/右境界位置調整部
308 文字列上/下境界位置調整部
309 指定文字列決定部
310 出力部
311 指定文字列記述情報記憶部
502 複数文字列判定部
503 文字列間ノイズ除去部
506 文字列高さ閾値推定部
507 第1ストローク閾値推定部507
601 文字列分割部
602 ストロークヒストグラム生成部
603 ストロークヒストグラム探索部
604 有効文字列判定部
605 再分離判定部
606 再分離部
901 数字文字列判定部
902 最左側文字認識部
903 最右側文字認識部
904 ノイズ文字判定部
905 単一文字高さ閾値推定部
906 単一文字幅閾値推定部
907 ノイズ文字除去部
1002 ストロークヒストグラム生成部
1003 第2ストローク閾値設定部
1004 始点探索部
1005 上境界閾値再推定部
1006 上境界位置調整部
1007 終点探索部
1008 下境界閾値再推定部
1009 下境界位置調整部
1010 ノイズ除去部

Claims (6)

  1. 文字列イメージを垂直に分離するプログラムであって、
    文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手順と、
    前記文字列イメージが複数の文字列を含むと判定された場合に、前記文字列イメージの水平方向の各画素列のストローク部分の数を表すストロークヒストグラムを生成する生成手順と、
    生成されたストロークヒストグラムの一方および他方側から順に第1のストローク閾値より大きい値を有する始点、終点を探索する探索手順と、
    探索された始点と終点との間の最小のストローク値を有する点を中間点とし、中間点が第1のストローク閾値より小さい場合、前記文字列イメージを水平方向に始点から中間点、中間点から終点の2つの部分に分離する分離手順と、
    をコンピュータに実行させることを特徴とする文字列イメージを垂直に分離するプログラム。
  2. 前記複数文字列判定手順が、前記文字列イメージの高さが文字列の高さの閾値よりも大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする請求項1に記載の文字列イメージを垂直に分離するプログラム。
  3. 文字列イメージを垂直に分離する方法であって、
    文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定工程と、
    前記文字列イメージが複数の文字列を含むと判定された場合に、前記文字列イメージの水平方向の各画素列のストローク部分の数を表すストロークヒストグラムを生成する生成工程と、
    生成されたストロークヒストグラムの一方および他方側から順に第1のストローク閾値より大きい値を有する始点、終点を探索する探索工程と、
    探索された始点と終点との間の最小のストローク値を有する点を中間点とし、中間点が第1のストローク閾値より小さい場合、前記文字列イメージを水平方向に始点から中間点、中間点から終点の2つの部分に分離する分離工程と、
    を含んだことを特徴とする文字列イメージを垂直に分離する方法。
  4. 前記複数文字列判定工程が、前記文字列イメージの高さが文字列の高さの閾値よりも大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする請求項3に記載の文字列イメージを垂直に分離する方法。
  5. 文字列イメージを垂直に分離する装置であって、
    文字列イメージが複数の文字列を含むか否かを判定する複数文字列判定手段と、
    前記文字列イメージが複数の文字列を含むと判定された場合に、前記文字列イメージの水平方向の各画素列のストローク部分の数を表すストロークヒストグラムを生成する生成手段と、
    生成されたストロークヒストグラムの一方および他方側から順に第1のストローク閾値より大きい値を有する始点、終点を探索する探索手段と、
    探索された始点と終点との間の最小のストローク値を有する点を中間点とし、中間点が第1のストローク閾値より小さい場合、前記文字列イメージを水平方向に始点から中間点、中間点から終点の2つの部分に分離する分離手段と、
    を備えたことを特徴とする文字列イメージを垂直に分離する装置。
  6. 前記複数文字列判定手段が、前記文字列イメージの高さが文字列の高さの閾値より大きいか否かを判定し、前記文字列イメージの高さが文字列の高さの閾値より大きい場合、前記文字列イメージが複数の文字列を含むと判定し、前記文字列イメージの高さが文字列の高さの閾値より大きくない場合、前記文字列イメージが複数の文字列を含まないと判定することを特徴とする請求項5に記載の文字列イメージを垂直に分離する装置。
JP2006239515A 2005-09-05 2006-09-04 文字列イメージを垂直に分離するプログラム、方法及び装置 Expired - Fee Related JP4984756B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200510098628.0 2005-09-05
CNB2005100986280A CN100514355C (zh) 2005-09-05 2005-09-05 指定文本行提取方法和装置

Publications (2)

Publication Number Publication Date
JP2007073048A JP2007073048A (ja) 2007-03-22
JP4984756B2 true JP4984756B2 (ja) 2012-07-25

Family

ID=37858849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006239515A Expired - Fee Related JP4984756B2 (ja) 2005-09-05 2006-09-04 文字列イメージを垂直に分離するプログラム、方法及び装置

Country Status (2)

Country Link
JP (1) JP4984756B2 (ja)
CN (1) CN100514355C (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314608A (zh) * 2010-06-30 2012-01-11 汉王科技股份有限公司 文字图像中行提取的方法和装置
CN102542279A (zh) * 2010-12-23 2012-07-04 汉王科技股份有限公司 维哈柯文文本图像的行提取方法及装置
JP5624671B2 (ja) * 2011-03-04 2014-11-12 グローリー株式会社 文字列切出方法及び文字列切出装置
CN103106405B (zh) * 2011-11-09 2017-05-03 佳能株式会社 用于文档图像的行分割方法及系统
JP6109020B2 (ja) * 2013-09-10 2017-04-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 文書の分割・結合方法、装置、プログラム。
CN106156715A (zh) * 2015-04-24 2016-11-23 富士通株式会社 分析表格图像的布局的方法和设备
CN106295486B (zh) * 2015-06-12 2019-11-05 富士通株式会社 文档图像的处理方法和处理装置
CN105447489B (zh) * 2015-11-13 2018-11-16 浙江传媒学院 一种图片ocr识别系统的字符与背景粘连噪声消除方法
CN107180239B (zh) * 2017-06-09 2020-09-11 科大讯飞股份有限公司 文本行识别方法及系统
CN109753953B (zh) * 2017-11-03 2022-10-11 腾讯科技(深圳)有限公司 图像中定位文本的方法、装置、电子设备和存储介质
CN109635718B (zh) * 2018-12-10 2021-02-02 科大讯飞股份有限公司 一种文本区域划分方法、装置、设备及存储介质
JP6869394B1 (ja) * 2020-03-23 2021-05-12 三菱電機Itソリューションズ株式会社 検証装置、検証方法、及び、検証プログラム
CN113449620A (zh) * 2021-06-17 2021-09-28 深圳思谋信息科技有限公司 基于语义分割的表格检测方法、装置、设备和介质
CN114973255B (zh) * 2022-05-14 2024-09-10 云知声智能科技股份有限公司 一种单点文字识别方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04149685A (ja) * 1990-10-09 1992-05-22 Nec Corp 接触文字切出し方法
JPH08329190A (ja) * 1995-03-24 1996-12-13 Fuji Xerox Co Ltd 文字認識装置
JP2861860B2 (ja) * 1995-04-28 1999-02-24 日本電気株式会社 宛名行抽出装置
JP2003281468A (ja) * 2002-03-20 2003-10-03 Toshiba Corp 文字認識装置および文字認識方法
JP4111787B2 (ja) * 2002-09-11 2008-07-02 株式会社リコー 行切り出し装置、行切り出し方法、プログラム及び記録媒体

Also Published As

Publication number Publication date
CN100514355C (zh) 2009-07-15
JP2007073048A (ja) 2007-03-22
CN1928891A (zh) 2007-03-14

Similar Documents

Publication Publication Date Title
JP4984756B2 (ja) 文字列イメージを垂直に分離するプログラム、方法及び装置
Ha et al. Document page decomposition by the bounding-box project
EP1146478B1 (en) A method for extracting titles from digital images
EP0843277A2 (en) Page analysis system
CN105469026B (zh) 针对文档图像的水平和垂直线检测和移除
JP2000285139A (ja) 文書マッチング方法、記述子生成方法、データ処理システム及び記憶媒体
JP7026165B2 (ja) テキスト認識方法及びテキスト認識装置、電子設備、記憶媒体
JPH0652354A (ja) スキュー補正方法並びにスキュー角検出方法並びにドキュメントセグメンテーションシステムおよびスキュー角検出装置
JP2003132358A (ja) 画像処理方法、装置およびシステム
JP5547226B2 (ja) 画像処理装置、及び画像処理方法
JP7244223B2 (ja) 電子文書における強調テキストの識別
US20150302598A1 (en) Line segmentation method
US8705862B2 (en) Image processing apparatus
Dori et al. Segmentation and recognition of dimensioning text from engineering drawings
CN115223172A (zh) 文本提取方法、装置及设备
JP5171421B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム
KR20160146458A (ko) 문자영상 내의 개인정보 보호장치 및 방법
CN112418220A (zh) 一种单字检测方法、装置、设备及介质
KR930002349B1 (ko) 압축영상의 문자열 분리방법
CN110298350B (zh) 一种高效的印刷体维吾尔文单词分割算法
KR20180071552A (ko) 카메라 기반 도로 곡률 추정을 위한 차선 검출 방법 및 시스템
JP4129898B2 (ja) 文字サイズ推定方法および装置
Arora et al. Document image segmentation using dynamic thresholds and identification of each region type
JP2003030585A (ja) 画像処理装置、方法、プログラム及び記憶媒体
JP6204076B2 (ja) 文章領域読み取り順序判定装置、文章領域読み取り順序判定方法及び文章領域読み取り順序判定プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120416

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees