文書画像の行分割方法及び行分割システム
【課題】複雑なレイアウトの文書画像の行分割を正確に実現すると共に、ノイズを含む文書画像にも適用する。
【解決手段】テキストブロックを分割して少なくとも1つの画素領域を含む第1の画素領域を取得する第1の分割ステップと、第1の画素領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を空白領域として検出し、第1の画素領域の画素領域から空白領域を除去して第2の画素領域を取得する空白領域除去ステップと、第2の画素領域を利用してテキスト行分割を実行するテキスト行分割ステップとを備える。
【解決手段】テキストブロックを分割して少なくとも1つの画素領域を含む第1の画素領域を取得する第1の分割ステップと、第1の画素領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を空白領域として検出し、第1の画素領域の画素領域から空白領域を除去して第2の画素領域を取得する空白領域除去ステップと、第2の画素領域を利用してテキスト行分割を実行するテキスト行分割ステップとを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書画像の行分割方法及び行分割システムに関し、特に、複雑なレイアウトを有する文書画像又はノイズが含まれる文書画像の行分割方法及び行分割システムに関する。
【背景技術】
【0002】
光学式文字認識(OCR)の分野には、元の文書から得られた文書画像に含まれるテキストコンテンツを取得するために文書画像を認識する技術が複数存在する。それら複数の技術のうち1つの技術は、文書画像中のテキストブロックをテキスト行に分割する方法であり、以下の説明中、この方法は行分割方法と呼ばれる。
【0003】
文書画像の行分割技術の1つは、画像に基づく技術、特に画素投影に基づく技術であり、この種の一般的な方法は、各画素行の黒画素投影のみによって行分割を実行する。更に詳細には、図1に示されるように、主に方法は、文書画像の1つのテキストブロックに含まれる各画素行の黒画素投影値を計算することと、すべてのスペース画素行をその黒画素投影値に従って検出することと、スペース画素行に沿ってテキストブロックを分割することにより行分割結果を取得することとから成る。
【0004】
1つの画素行の黒画素投影値は複数の形態をとるが、一般的な形態の1つは、1つの画素行の黒画素カウントとその画素行の面積との比である。画素行の面積は、画素行の幅を画素行の高さと乗算することにより計算される。更に詳細には、1つの画素行の高さは常に1であるので、1つの画素行の黒画素投影値は、その画素行における黒画素カウントとその画素行の幅との比である。この技術において、1つの画素行の黒画素カウントとその画素行の面積との比が、通常は0であるか又は0に近い閾値より小さい場合、その画素行は、文字に関連するコンテンツを含まない画素行であると通常は考えられるスペース画素行とみなされ、テキストブロックの行分割に使用されるだろう。
【0005】
しかし、特に文書画像中にノイズが存在する場合又は文書画像が複雑なレイアウトを有する場合、この方法では、適切な行分割結果は通常得られない。
【0006】
このような行分割の問題に対処するための方法はいくつか提案されているが、それらの方法は、ノイズを含む文書画像又は複雑なレイアウトの画像のいずれか一方のみを処理することを意図している。
【0007】
1つの方法は、行分割に先立ってノイズを削除する。方法は、ノイズを含む文書画像を対象とするが、長い時間を必要とし、「点ノイズ」のようなものを処理可能なだけである。特に、この方法は、複雑なレイアウトの文書画像の行分割の問題を解決できない。
【0008】
もう1つの方法は、画素行における連続白画素シーケンスの長さである白画素連続長に基づく。この方法では、各画素行の白画素連続長が計算され、長い白画素連続長を有する画素行は、行分割可能な位置、すなわちスペース画素行とみなされる。この方法は、レイアウトがそれほど複雑ではない文書画像にはある程度は有用であり、場合によっては、2つのテキスト行の間のノイズ画素行の一部をこの方法により検出可能であるので、特定のノイズを含む文書画像にも有用である。しかし、この方法は次のような3つの欠点を有する。
【0009】
第1に、テキスト行が短い場合、特にタイトル行のように隣接する文字の間に広いスペースがある場合、テキスト行中の画素行は長い白画素連続長を有するので、図2Aに示されるように、テキスト行はいくつかのテキスト行に誤って分割されてしまう。
【0010】
第2に、投影に基づく方法では分離できない2つのテキスト行を分割するために上記の方法が適用される場合、それら2つのテキスト行のうち一方の行が短く他方が長いと、短いテキスト行の中の画素行では、空白領域は画素行の白画素連続長さの一部とみなされ、いくつかの文字画素行は、誤ってスペース画素行とみなされる。そのため、図2Bに示されるように、ノイズ画素行である確率が最も高い画素行に沿ってテキスト行を分割すると、短いテキスト行は誤っていくつかのテキスト行に分割されることになる。
【0011】
あるいは、図2Cに示されるように、すべてのノイズ画素行を直接削除することによりテキスト行を分割する場合、短いテキスト行はテキスト行の間のスペース領域の一部とみなされることもある。
【0012】
第3に、ノイズを含む文書画像では、画素行中のノイズが点在していない場合に限り、上記の方法によってノイズ画素行を発見できる。文書画像中にノイズが点在している場合にはノイズ画素行を発見できず、図2Dに示されるように、上記の方法によりテキスト行を分離することは不可能である。
【0013】
更に図2Eに示されるように、従来の技術では、複雑なレイアウトを有するのに加えてノイズが存在し、点在している文書画像を正確に分割できない。
【0014】
以上のことから、複雑なレイアウトを有する文書画像又はノイズが存在し、点在している文書画像に効率よく且つ正確に対処できる方法がないことは明らかである。
【0015】
更に、複雑なレイアウトを有するのに加えてノイズが存在し、点在している文書画像に効果的且つ正確に対処できる方法もない。
【0016】
従って、上述の従来技術における技術的な問題点を考慮して、従来技術によって発生する欠陥を克服し、行分割により文書画像から正確にテキスト行を取得する技術が必要とされる。
【発明の概要】
【発明が解決しようとする課題】
【0017】
本発明の1つの目的は、複雑なレイアウトの文書画像の行分割を正確に実現することである。
【0018】
本発明の別の目的は、ノイズを含む文書画像、特にノイズが点在している文書画像の行分割を正確に実現することである。
【0019】
本発明の更なる目的は、複雑なレイアウトを有するのに加えてノイズが存在し、点在している文書画像の行分割を正確に実現することである。
【課題を解決するための手段】
【0020】
本発明の1つの態様において、文書画像中のテキストブロックの行分割を実行する方法であって、前記テキストブロックを分割して少なくとも1つの画素領域を含む第1の画素領域を取得する第1の分割ステップと、第1の画素領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を空白領域として検出し、第1の画素領域の画素領域から空白領域を除去して第2の画素領域を取得する空白領域除去ステップと、第2の画素領域を利用してテキスト行の分割を実行するテキスト行分割ステップとを備えた方法が提供される。
【0021】
本発明の別の態様において、文書画像中のテキストブロックの行分割を実行するシステムであって、前記テキストブロックを分割して少なくとも1つの画素領域を含む第1の画素領域を取得する第1の分割ユニットと、第1の画素領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を空白領域として検出し、第1の画素領域の画素領域から空白領域を除去して第2の画素領域を取得する空白領域除去ユニットと、第2の画素領域を利用してテキスト行の分割を実行するテキスト行分割ユニットとを備えたシステムが提供される。
【0022】
本発明の更なる特徴と利点は、添付の図面を参照して以下の説明を読むことにより明らかになるだろう。
【0023】
本明細書に組み込まれ且つ本明細書の一部を構成する添付の図面は、本発明の実施形態を例示し、以下の説明と共に本発明の原理を説明する。
【図面の簡単な説明】
【0024】
【図1】図1は、従来の技術における黒画素投影に基づく行分割の方法を概略的に示す図である。
【図2A】、
【図2B】、
【図2C】、
【図2D】、
【図2E】図2A〜図2Eは、従来の方法により正確に分割できない種々の文書画像を概略的に示す図であり、図2A〜図2Cは、誤って分割された複雑なレイアウトを有する文書画像を概略的に示す図であり、図2Dは、ノイズが点在しているために分割できない文書画像を概略的に示す図であり、図2Eは、複雑なレイアウトを有し且つノイズが点在しているために正確に分割できない文書画像を概略的に示す図である。
【図3】図3は、画素行の幅及び高さの意味を概略的に説明する図である。
【図4】図4は、本発明に係る行分割システムを実現する計算デバイスの構成を示すブロック図である。
【図5】図5は、本発明に係る行分割方法の第1の実施形態を示すフローチャートである。
【図6】図6は、図5の方法により実現される画素領域の行分割の結果の一例を概略的に示す図である。
【図7】図7は、空白領域が含まれる画素領域を概略的に示す図である。
【図8】図8は、画素領域における空白領域の判定及び画素領域からの第2の画素領域の取得を示すフローチャートである。
【図9】図9は、画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分の一例を概略的に示す図である。
【図10A】、
【図10B】図10A及び図10Bは、画素領域における空白領域の検出の別の例を概略的に示す図である。
【図11】図11は、空白領域が検出され且つ除去されている場合の画素領域中の画素行のパラメータを概略的に示す図である。
【図12A】、
【図12B】、
【図12C】図12A〜図12Cは、行分割方法の第1の実施形態のステップS300において実行される例示的なステップを示すフローチャートである。
【図13A】、
【図13B】図13A及び図13Bは、従来の技術と本発明の第1の実施形態とによりそれぞれ実現された複雑なレイアウトを有する文書画像の行分割の結果の比較を概略的に示す図である。
【図14】図14は、本発明に係る行分割方法の第2の実施形態のステップS300における処理を示すフローチャートである。
【図15A】、
【図15B】、
【図15C】図15A〜図15Cは、従来の技術と本発明の第2の実施形態とによりそれぞれ実現されたノイズが存在し、点在している文書画像の行分割の結果の比較を概略的に示す図である。
【図16A】、
【図16B】図16A及び図16Bは、2つの隣接テキスト行が相当に異なる長さを有する2つの場合を概略的に示す図である。
【図17】図17は、本発明に係る行分割方法の第3の実施形態のテキスト行分割ステップにおける処理を示すフローチャートである。
【図18】図18は、第3の実施形態のテキスト行分割ステップの第1の判定ステップにおける処理を示すフローチャートである。
【図19】図19は、第3の文字行領域と判定されるべきスペース画素行との対応を概略的に示す図である。
【図20】図20は、第3の実施形態の行分割方法の第2の判定ステップにおける処理を示すフローチャートである。
【図21A】、
【図21B】、
【図21C】図21A〜図21Cは、テキストブロック中の2つの隣接テキスト行が相当に異なる長さを有する文書画像に関して、従来の技術の方法と第3の実施形態の方法とによりそれぞれ実現された行分割の結果の比較を概略的に示す図である。
【図22A】、
【図22B】、
【図22C】、
【図22D】、
【図22E】図22A〜図22Eは、複雑なレイアウトを有し且つノイズが存在し、点在している文書画像の行分割の一例を概略的に示す図である。
【図23】図23は、行分割システムの一般的な構成を示すブロック図である。
【発明を実施するための形態】
【0025】
添付の図面を参照して、本発明の実施形態を以下に詳細に説明する。
【0026】
本発明を完全に且つ適切に理解しやすくするために、まず、本明細書及び特許請求の範囲で使用される用語を説明する。
【0027】
本明細書及び特許請求の範囲において、特に文書画像で使用される場合の用語「テキストブロック」は、文書画像中の1つ以上の行に1つ以上の語を含み且つ1つ以上の画素領域に分割できるブロックを表す。画素領域は、1つ以上のテキスト行から構成され且つ各テキスト行を取得するように分割可能である。テキスト行は、1行分のテキスト、更に詳細には1行分の語に対応し、1つ以上の画素行を含む。画素行は、画素領域中の語に関連する情報を含む文字画素行であるか、又は語に関連する情報を実質的には含まず且つ画素領域の行分割に際して分割位置としてみなすことができるスペース画素行である。1つ以上の文字画素行を1つの文字行領域としてマージできる。
【0028】
画素行又はテキスト行の方向に関して、「水平」という用語はほぼ水平方向であることを意味し、「垂直」という用語はほぼ垂直方向であることを意味する。特に、文書画像で使用される場合の用語「水平」は、文書画像又は元の文書におけるテキスト行とほぼ平行な方向であることを表す。同様に、文書画像で使用される場合の用語「垂直」は、文書画像又は元の文書におけるテキスト行に対してほぼ垂直な方向であることを表す。
【0029】
本明細書及び特許請求の範囲において、通常は水平方向の行である文書画像中のテキスト行に関して、「高さ」(Hで示される)及び「幅」(Wで示される)という用語は、それぞれ、垂直方向のテキスト行の長さ及び水平方向のテキスト行の長さを示す。
【0030】
テキスト行が水平方向の行に限定されず、垂直方向の行(テキスト列とも呼ばれる)であってもよいことは言うまでもない。この場合、「水平」という用語は、文書画像又は元の文書におけるテキスト列に対してほぼ垂直な方向であることを意味し、「垂直」という用語は、文書画像又は元の文書におけるテキスト列とほぼ平行な方向であることを意味し、「高さ」(Hで示される)という用語は、水平方向のテキスト列の長さを示し、「幅」(Wで示される)という用語は、垂直方向のテキスト列の長さを示す。
【0031】
図3は、上記の2つの場合を概略的に示す。テキストブロック及び画素領域は1つ以上のテキスト行を含み且つ1つのテキスト行は1つ以上の画素行から構成されるので、「高さ」及び「幅」の意味は、テキストブロック、画素領域及びその部分領域、並びに画素行及びその小部分のいずれの「高さ」及び「幅」にも同等に適用される。この点を考慮して、テキストブロック又は画素領域の分割(すなわち、行分割)は、その高さ方向に実行されるといえるだろう。
【0032】
以下の説明を簡単にするために、特に指示のない限り、「高さ」は垂直方向の長さを意味し、「幅」は水平方向の長さを意味し、分割は垂直方向の分割を意味する。
【0033】
本明細書において、特に指示のない限り、すべての大きさ(長さ又は幅など)は「画素」の単位で表される。
【0034】
図4は、本発明に係る行分割システムを実現する計算デバイスの構成を示すブロック図である。簡潔にするため、システムは、1つの計算デバイスに組み込まれるものとして示される。しかし、システムが1つの計算デバイスに組み込まれるか又はネットワークシステムとして複数の計算デバイスに配置されるかにかかわらず、システムは有効である。
【0035】
図4に示されるように、計算デバイス100は、行分割の処理を実現するために使用される。計算デバイス100は、CPU101と、チップセット102と、RAM103と、ストレージコントローラ104と、ディスプレイコントローラ105と、ハードディスクドライブ106と、CD−ROMドライブ107と、ディスプレイ108とを備える。計算デバイス100は、CPU101とチップセット102との間に接続された信号線111、チップセット102とRAM103との間に接続された信号線112、チップセット102と種々の周辺装置との間に接続された周辺装置バス113、ストレージコントローラ104とハードディスクドライブ106との間に接続された信号線114、ストレージコントローラ104とCD−ROMドライブ107との間に接続された信号線115、並びにディスプレイコントローラ105とディスプレイ108との間に接続された信号線116を更に備える。
【0036】
クライアント120は、計算デバイス100に直接接続されるか又はネットワーク130を介して接続される。クライアント120は、例えば行分割の処理により要求される命令及び/又はパラメータを計算デバイス100へ送出し、計算デバイス100は、クライアント120へ情報を返送するか又はディスプレイ108に情報を表示する。
【0037】
[第1の実施形態]
図5を参照して、本発明に係る行分割方法の第1の実施形態を以下に説明する。図5は、行分割方法の第1の実施形態を示すフローチャートである。
【0038】
行分割方法のステップS100(以下、第1の分割ステップと呼ばれる)において、少なくとも1つの画素領域を含む粗い画素領域(以下、第1の画素領域と呼ばれる)を取得するために、文書画像のテキストブロックが分割される。ステップS100の処理中、先に説明した投影に基づく方法などの従来の何らかの種類の行分割方法を使用可能であるので、ここでは説明を省略する。
【0039】
ステップS200(以下、空白領域除去ステップと呼ばれる)において、第1の画素領域の各画素領域中の各画素行における連続白画素シーケンス間の共通重複部分が第1の画素領域の対応する画素領域における空白領域として検出され且つ空白領域が除去された画素領域(以下、第2の画素領域と呼ばれる)を取得するために第1の画素領域の対応する画素領域から空白領域が除去される。通常、第1の画素領域の各画素領域は、1つの第2の画素領域に対応する。ステップS200の処理については以下に詳細に説明する。
【0040】
ステップS300(以下、テキスト行分割ステップと呼ばれる)において、テキスト行分割に第2の画素領域が使用される。例えば、第1の画素領域中の各画素領域に関して、対応する第2の画素領域を利用することにより、その画素領域における行分割位置が判定され、その後、行分割結果を取得するために、画素領域は行分割位置に従って分割される。従来の技術では周知のように、通常、行分割位置は1つ以上のスペース画素行に対応する。
【0041】
図6は、図5に示される方法により実現されたテキストブロック中の1つの画素領域の行分割結果の一例を概略的に示す。図6に示されるように、第1の画素領域に含まれる各画素領域は、1つ以上のスペース画素行に従って少なくとも2つの部分に分割可能である。詳細には、例えば画素領域中に2つ以上の一連の隣接するスペース画素行が存在する場合、それらのスペース画素行は1つのスペース画素行領域にマージされ、そのスペース行領域を削除することにより、スペース画素行は、画素領域を少なくとも2つのより小さな画素領域(テキスト行領域とも呼ばれる)に分割するために使用されるだろう。
【0042】
場合によっては、行分割結果として取得された画素領域(すなわち、テキスト行領域)を更に分割しなければならないこともある。例えば、文書画像の状態と個人的な経験とに従って設定される1つの閾値TH1、例えば300dpi画像の場合に34である閾値をテキスト行領域の高さが超える場合、そのテキスト行領域を更に分割する必要がある。
【0043】
行分割方法において、行分割されるべき画素領域の幅などの多くの種類のパラメータを考慮し、正確に取得する必要がある。詳細には図7に示されるように、画素領域がいくつかの空白領域を含む場合、画素領域中の空白領域を検出し且つ削除しなければならない。特にテキスト行が短い場合、空白領域を削除しないと行分割誤差が発生する。
【0044】
図8及び図9を参照して、ステップS200の処理を以下に詳細に説明する。図8は、画素領域中の空白領域の判定及び画素領域からの第2の画素領域の取得とを示すフローチャートである。図9は、画素領域中の画素行の中の共通重複部分の一例を概略的に示す。
【0045】
図8のステップS201において、画素領域中の各画素行におけるすべての連続白画素シーケンスがその長さに従って順序付けされる。
【0046】
ステップS202において、画素領域中の各画素行における連続白画素シーケンス間の共通重複部分(空白領域に対応する)を生成するために、最長の連続白画素シーケンスから開始して、次に続く連続白画素シーケンスの各々が順次重ね合わされる。ステップS202の処理については以下に詳細に説明する。
【0047】
ステップS203において、画素領域から空白領域が除去され、残った文字領域は第2の画素領域にグループ化される。
【0048】
ステップS202の処理では、1つの共通空白部分を生成するために、共通して重ね合わされたシーケンスのカウント、すなわち、重ね合わされた画素行の数が所定の数に達するまで、第1の連続白画素シーケンス、すなわち1つの画素行の中で最長の連続白画素シーケンスから開始して、他の画素行の次に続く白画素シーケンスの各々が前の1つ以上の連続白画素シーケンスと順序通りに重ね合わされる。この所定の数は、所期の精度、画像の解像度などの多くの種類の条件に従って操作者により設定可能である。一般に、所定の数は、画素領域中の画素行の数の少なくとも70%になるように設定される。
【0049】
重ね合わせ処理中、重ね合わされるべき連続白画素シーケンスが前の連続白画素シーケンスを組み合わせることにより生成された空白領域と重なり合わない場合、重ね合わされるべき連続白画素シーケンスは放棄され、次の連続白画素シーケンスの重ね合わせが試みられる。
【0050】
最後に、取得された共通空白部分の範囲に対応する画素領域の部分が、その画素領域の共通重複部分、すなわちその画素領域の空白領域とみなされる。空白領域は除去され、画素領域中に残った文字領域(第2の画素領域としてグループ化可能である)は、続く行分割の間に利用される。
【0051】
あるいは、共通重複部分を検出する上記の方法は、空白領域を検出するために黒画素カウントにより空白領域を検出する別の方法と組み合わせ可能である。
【0052】
更に詳細に説明すると、図10Aに示されるように、まず、画素領域はいくつかの部分領域に分割され、大きな空白領域を検出するために、各部分領域の黒画素カウントとその部分領域の面積との比が計算され、比が1つの閾値YH4(例えば、0.01)より小さい場合、その部分領域は空白領域とみなされる。比が閾値TH4(例えば、0.01)より大きい場合、その部分領域は文字部分領域である可能性が高い。以後、説明を簡単にするために、特に指示のない限り、分割は幅方向の分割を指す。
【0053】
続いて、図10Bに示されるように、文字部分領域に関して、文字部分領域中に出現しうる小さな空白部分領域を検出するために、上述の共通重複部分を検出する方法が使用される。
【0054】
図11及び図12A〜図12Cを参照して、ステップS300の処理を以下に詳細に説明する。図11は、空白領域が既に検出され且つ除去されている場合の画素領域中の1つの画素行の黒画素カウント及び連続白画素シーケンスの長さなどのパラメータを概略的に示す。図12A〜図12Cは、行分割方法の第1の実施形態のステップS300において実行される例示的なステップを示すフローチャートである。
【0055】
ステップS300において、先に説明したように、行分割に第2の画素領域が使用されるだろう。更に詳細には、検出されるべき画素行が文字画素行であるか又はスペース画素行であるかを検出するために、第2の画素領域のパラメータ、並びに検出されるべき画素行の対応するパラメータを使用できる。
【0056】
第2の画素領域のパラメータは、例えば第2の画素領域の幅を含む。この幅は、第2の画素領域中の文字領域の幅の和を計算することにより取得できる。
【0057】
画素行の対応するパラメータは、例えば第2の画素領域中の画素行の黒画素カウント及び画素行の連続白画素シーケンス長さ統計値を含む。連続白画素シーケンス長さ統計値は、図11に示されるように、第2の画素領域中の画素行の最長の連続白画素シーケンスの長さ又は第2の画素領域中の画素行の最長の連続白画素シーケンスの長さと2番目に長い連続白画素シーケンスの長さとの和である。
【0058】
第2の画素領域のパラメータ及び検出されるべき画素行のパラメータを使用して、スペース画素行を検出するために、ステップS300の処理を種々の方法で実行可能である。
【0059】
図12Aは、第2の画素領域中の画素行における黒画素カウントと第2の画素領域の幅との比を利用することによりスペース画素行が検出されるステップS300の処理を示す。
【0060】
この処理の一般的な方法の1つは、画素行がスペース画素行であるか否かを検出するように、上記の比が閾値と比較されることである。比が閾値TH2、例えば0.01より小さい場合、その画素行は1つのスペース画素行とみなされる。そうでない場合、画素行は1つの文字画素行とみなされる。
【0061】
図12Bは、画素行における連続白画素シーケンス長さ統計値と第2の画素領域の幅との比、すなわち第2の画素領域中の画素行の最長連続白画素シーケンスの長さと第2の画素領域の幅との比、あるいは第2の画素領域中の画素行の最長連続白画素シーケンスの長さ及び2番目に長い連続白画素シーケンスの長さの和と第2の画素領域の幅との比を利用することにより、スペース画素行が検出されるステップS300の処理を示す。
【0062】
この処理の一般的な方法の1つは、画素行がスペース画素行であるか否かを検出するように、それら2つの比を閾値と比較する。それら2つの比のいずれか一方が1つの閾値TH3(例えば0.7)より大きい場合、その画素行は1つのスペース画素行とみなされる。そうでない場合、画素行は1つの文字画素行とみなされる。
【0063】
図12Cは、図12Aに示される方法と図12Bに示される方法とを組み合わせたステップS300の処理を示す。例えば、図12Aに示される方法及び図12Bに示される方法を順次実行することが可能である。尚、図12Cの処理の順序は単なる例であり、他の順序も利用できる。例えば、図12Bに示される処理の次に図12Aに示される処理が実行されてもよい。
【0064】
上述の処理方法は、第2の画素領域を利用することによりスペース画素行の検出を実現する好適な処理方法の例であるが、他の方法も使用可能である。
【0065】
スペース画素行の検出は、水平のレイアウトでは、第1の画素領域に含まれる画素領域のすべての画素行に関して上から下に向かって実行可能であるが、これに限定されない。例えば、検出精度をほとんど低下させずに計算速度を改善するために、1つの画素領域の中央にある画素行に関してスペース画素行の検出を実行可能であり、この中央部分の範囲は、操作者が任意に設定可能である。一般的な選択肢の1つは、画素領域が上限「region_top」及び下限「region_bottom」を有し、「middle」は「region_top」+0.2×std_line_heightと「region_bottom」−0.2×std_line_heightとの間の領域であると仮定するものである。std_line_heightは、文書画像の解像度により推定される。
【0066】
1つの画素領域において、すべてのスペース画素行を一度に検出可能であるが、本発明はこれに限定されない。例えば、水平のレイアウトでは、上から下に向かって各画素行を走査し、検出することができる。1つのスペース画素行が発見された後、それに続く別の画素行が文字画素行であるか否かが判断され、処理は終了する。
【0067】
[有利な効果]
第1の実施形態の方法は、少なくとも、複雑なレイアウトを有する文書画像、特にタイトル行を含む文書画像に有効且つ正確に適用可能であり、それによりそのような文書画像の行分割の性能を向上できる。
【0068】
図13A及び図13Bは、従来の技術と本発明の第1の実施形態とによりそれぞれ実現された複雑なレイアウトを有する文書画像の行分割の結果の比較を概略的に示す。文書画像は、例えば文書中のタイトル行である。図13Aに示されるように、従来の方法によりタイトル行は誤って分割されていることがわかる。これに対し本発明に係る第1の実施形態の方法によれば、図13Bに示されるように、タイトル行ではスペース画素行は検出されず、従ってタイトル行は誤って分割されていないことがわかるだろう。
【0069】
[第2の実施形態]
図14〜図15Cを参照して、本発明の第2の実施形態を詳細に説明する。第2の実施形態は、テキスト行分割ステップを除いて第1の実施形態とほぼ同一である。第2の実施形態のテキスト行分割ステップは、画素領域中の検出されるべき画素行の前の文字画素行を利用することにより、特に検出されるべき画素行の前の文字画素行から導出された文字ストローク幅を利用することにより、画素行がスペース画素行であるか否かを更に検出する。第1の実施形態のステップと同様である第2の実施形態のステップは省略し、詳細には説明しない。
【0070】
このスペース画素行検出処理は、1つのテキスト行が3つ以上の文字を含む場合、テキスト行領域内の画素行ごとに、文字の少なくとも1つの文字ストロークがその画素行を通過するという1つの妥当な推論に基づく。文字ストローク幅は、多数の文字画素行から構成される領域内の語の少なくとも1つの文字ストロークの平均幅である。上記の推論及び定義は、画素行及び画素領域が共に水平方向である場合と画素行及び画素領域が共に垂直方向である場合との双方に適用可能である。水平方向である場合、文字ストロークは垂直文字ストロークになり、文字ストローク幅は垂直の文字ストロークの文字ストローク幅に対応する。垂直方向である場合、文字ストロークは水平文字ストロークになり、文字ストローク幅は水平の文字ストロークの文字ストローク幅に対応する。
【0071】
第2の実施形態のスペース画素行検出処理と第1の実施形態のスペース画素行検出処理とを種々の方法で組み合わせることができる。一例において、第2の実施形態のテキスト行分割ステップを第1の実施形態の図12A〜図12Cのいずれかに示される処理に続けて実行し、それらの処理を組み合わせてもよい。
【0072】
図14は、本発明に係る行分割方法の第2の実施形態におけるスペース画素行検出処理を示すフローチャートである。
【0073】
ステップS401において、第2の画素領域が少なくとも2つの文字を含むか否かが検査される。一般的な検査方法の1つは、第2の画素領域の幅と高さとの比を計算する方法である。この比が2より大きい場合、第2の画素領域は少なくとも2つの文字を含むとみなされ、ステップS402へ進む。そうでない場合、処理は終了し、次の第2の画素領域を待つ。
【0074】
ステップS402において、検出されるべき画素行の前の隣接するすべての検出済み文字画素行が1つの文字行領域にマージされる。
【0075】
ステップS403において、この文字行領域の文字ストローク幅が推定される。ステップS403の処理については以下に詳細に説明する。
【0076】
ステップS404において、検出されるべき画素行はいくつかの小部分に分割され、それらいくつかの小部分の中から最大の黒画素カウントを有する小部分が検索される。
【0077】
ステップS405において、最大の黒画素カウントと文字ストローク幅とを比較することにより、検出されるべき画素行がスペース画素行であるか否かが検出される。例えば、最大の黒画素カウントが文字ストローク幅未満であるか否かを検査し、文字ストローク幅未満であれば、検出されるべき画素行は1つのスペース画素行である。文字ストローク幅未満ではない場合、少なくとも1つの文字ストロークが画素行を通過していると考えられるので、画素行は文字画素行になる。
【0078】
これにより、第2の実施形態のスペース画素行検出方法によりスペース画素行を検出でき、その後、スペース画素行は画素領域の行分割に使用される。
【0079】
次に、文字ストローク幅の推定方法を詳細に説明する。
【0080】
文字ストローク幅は2つの方法により推定可能である。第1の方法は、マージ後の文字行領域の高さと文字ストローク幅との関係に基づき、文字ストローク幅の第1の推定値を取得する。第2の方法は、隣接するマージ済み文字行領域における黒画素分布を解析することにより文字ストローク幅を動的に取得するために使用され、文字ストローク幅の第2の推定値を取得する。この2つの方法に基づき、第1の推定値及び第2の推定値のうち小さいほうの値が文字ストローク幅とみなされる。
【0081】
第1の推定方法において、マージ後の文字行領域中の文字の文字ストローク幅の第1の推定値は、マージ後の文字行領域の高さのみに従って推定される。第1の推定方法は、文字ストローク幅は文字高さの10分の1を超え且つ文字高さと文字行領域の高さとの差は小さいという仮定に基づく。
【0082】
第1の推定値は、以下の式(1)により得られる。
式中、StrokeWidth1は文字ストローク幅の第1の推定値であり、HeightCharacterLineRegionはマージ後の文字行領域の高さである。
【0083】
第2の推定方法において、マージ後の文字行領域中の文字の文字ストローク幅の第2の推定値は、文字行領域の黒画素分布に従って推定される。
【0084】
第2の推定値は、以下の式(2)により得られる。
式中、StrokeWidth2は文字ストローク幅の第2の推定値であり、BlackPixelCountCharacterLineRegionはマージ後の文字行領域における黒画素カウントであり、WidthCharacterLineRegionはマージ後の文字行領域の幅である。
【0085】
式(2)は、以下の演繹から得られる。
【0086】
文字行領域の黒画素カウントは、以下の式(3)により計算できる。
式中、CharacterAmountCharacterLineRegionはマージ後の文字行領域中の文字量を表し、StrokeWidthは文字ストローク幅を表す。
式中、AverageStrokeAmountCharacterは1文字中の平均ストローク量であり、これは、文字行領域が水平方向である場合は1文字中の平均垂直ストローク量に対応し、文字行領域が垂直方向である場合は1文字中の平均水平ストローク量に対応する。AverageStrokeAmountCharacterは、文書の言語に従って操作者により設定可能である。
【0087】
文字行領域中の文字量は、以下の式により得られると考える。
また、1文字中の平均ストローク量は、例えば以下の通りである。
そこで、文字行領域の黒画素カウント計算式は次の通りとなる。
そして、式(6)から式(2)を導出できる。
【0088】
以上の説明では、第2の実施形態の処理は、第2の画素領域、すなわち空白領域が除去された画素領域に基づいてスペース画素行の検出を実行するが、本発明はそれに限定されない。言い換えると、空白領域の除去は、第2の実施形態の処理に不可欠ではなく、従って、第2の実施形態の処理により実現される効果に大きな影響を与えない。第1の画素領域中の画素領域から空白領域が除去されず、空白領域が除去されていない画素領域に基づいて第2の実施形態の処理で検出を実行したとしても、第2の実施形態の処理は、画素領域を相対的に正確に検出し、それにより画素領域を分割することができる。
【0089】
[有利な効果]
第2の実施形態の方法は、先に説明したタイトル行のような文書画像に加えて、少なくとも、ノイズが含まれる文書画像、特に、ノイズが存在し、点在しているような文書画像にも有効且つ正確に適用可能であり、それにより、そのような文書画像の行分割の性能を向上できる。
【0090】
図15A〜図15Cは、従来の技術と本発明の第2の実施形態とによりそれぞれ実現されたノイズが存在し、点在している文書画像の行分割の結果の比較を概略的に示す。これらの図において、確認済みノイズ画素行は、第2の実施形態の処理により検出されたスペース画素行である。
【0091】
図15Aに示されるように、文書画像は少なくとも2つのテキスト行を含み、分割されるべきであるが、従来の方法では、この文書画像を分割できないことがわかる。これに対し、本発明の方法によれば、図15B及び図15Cに示されるように、文書画像中のスペース画素行、すなわち確認済みノイズ画素行を正確に検出可能であり、文書画像は、文書画像中のノイズにより影響を受けることなくスペース画素行に沿って適切に分割される。
【0092】
[第3の実施形態]
図16A〜図21Cを参照して、本発明に係る行分割方法の第3の実施形態を以下に詳細に説明する。第3の実施形態は、テキスト行分割ステップを除いて第1の実施形態及び第2の実施形態のいずれともほぼ同一である。テキスト行分割ステップには、先に検出された文字画素行を利用して、検出済みスペース画素行が最終スペース画素行であるか否かを判定する判定ステップが更に含まれる。第3の実施形態のステップのうち、第1の実施形態及び第2の実施形態のステップと同様のステップは省略し、詳細には説明しない。
【0093】
判定ステップは、テキストブロック中の2つの隣接テキスト行が相当に異なる長さを有する場合、すなわち一方のテキスト行の長さが隣接する別のテキスト行の長さと相当に異なる場合の従来の方法の欠陥に対処することを目的とする。
【0094】
ここで、2つの場合が考えられる。一つ(第1のケース)は、上から下に向かって1つの画素領域中の第1のテキスト行が短く、第2のテキスト行は長い場合である。画素領域中の空白領域を検出するのが困難であり且つテキスト行幅、画素行の黒画素カウント並びに連続白画素シーケンス長さは誤って計算されるので、図16Aに示されるように、第1のテキスト行中の下部のいくつかの画素行が誤ってスペース画素行とみなされてしまい、その結果、画素領域は誤って分割されることになる。もう1つ(第2のケース)は、上から下に向かって1つの画素領域中の第1のテキスト行が長く、第2のテキスト行は短い場合である。空白領域を検出するのが困難であり且つテキスト行幅、画素行の黒画素カウント並びに連続白画素シーケンス長さは誤って計算されるので、図16Bに示されるように、第2のテキスト行中の上部のいくつかの画素行が誤ってスペース画素行とみなされてしまい、その結果、画素領域は誤って分割されることになる。
【0095】
第3の実施形態の判定ステップは、第2の画素領域中の1つ以上の検出済みスペース画素行の前の隣接する1つ以上の隣接文字画素行を利用することにより、1つ以上の検出済みスペース画素行から1つ以上の最終スペース画素行を判定することから成り、その後、判定された1つ以上の最終スペース画素行に基づいてテキスト行分割が実行される。一例において、判定ステップは、検出済みスペース画素行の黒画素分布並びに連続白画素分布と、すべての隣接文字画素行との関係を解析することにより実現される。このステップについては以下に説明する。
【0096】
第3の実施形態の判定処理を、第1の実施形態又は第2の実施形態のいずれかの処理と多様な方法で組み合わせることができる。一例において、第3の実施形態の判定ステップは、第1の実施形態及び第2の実施形態のそれぞれのテキスト行分割ステップの処理のいずれか、すなわち図12A〜図12Cの処理又は図14の処理のいずれかの後に組み合わされてもよい。
【0097】
図17を参照して、第3の実施形態の判定ステップを以下に詳細に説明する。
【0098】
ステップS701(以下、マージステップと呼ばれる)において、1つ以上の隣接する検出済み文字画素行は、1つの文字行領域(以下、第2の文字行領域と呼ばれる)にマージされる。
【0099】
ステップS702(以下、第1の判定ステップと呼ばれる)において、空白領域が除去された文字行領域(以下、第3の文字行領域と呼ばれる)が第2の文字行領域から取得され、第3の文字行領域は、1つ以上の検出済みスペース画素行の各スペース画素行が第2のスペース画素行であるか否かを判定するために利用される。
【0100】
ステップS703(以下、第2の判定ステップと呼ばれる)において、第1の判定ステップで判定された第2のスペース画素行が最終スペース画素行であるか否かが判定される。
【0101】
図18は、第3の実施形態の第1の判定ステップの処理を示すフローチャートである。第1の判定ステップは、上記の2つのケースに適用可能であるが、第1のケースに適用されるのが好ましい。
【0102】
ステップS801において、第2の文字行領域中の空白領域を検出し且つ第2の文字行領域から空白領域を除去することにより、第3の文字行領域が取得される。残った文字行領域は、第3の文字行領域を構成すると考えられる。
【0103】
第2の文字行領域をいくつかの部分領域に分割し且つ各部分領域の黒画素カウントとその面積との比を計算することにより空白領域を検出する方法、図8に示される方法と同様に、文字行領域中の連続白画素シーケンス間の共通重複部分を利用することにより空白領域を検出する方法、図10A及び図10Bに対応する方法と同様に、それら2つの方法の組み合わせを使用することにより空白領域を検出する方法などの多様な方法で、空白領域の検出を実現可能である。従って、文字行領域における空白領域の検出は詳細に説明されない。
【0104】
ステップS802において、第2のスペース画素行を判定するために、第3の文字行領域が利用される。第2のスペース画素行の判定は、多様な方法で実現可能である。
【0105】
一例において、スペース画素行が第2の画素行であるか否かを判定するために、第3の文字行領域のパラメータ並びに判定されるべきスペース画素行の対応するパラメータを使用できる。
【0106】
第3の文字行領域のパラメータは、例えば第3の文字行領域の幅を含む。第3の文字行領域の幅は、その領域に含まれる文字部分領域の幅の和を計算することにより取得される。
【0107】
スペース画素行の対応するパラメータは、第3の文字行領域に対応する一部分におけるスペース画素行のパラメータであり、例えばその部分のスペース画素行の黒画素カウント及びその部分のスペース画素行の連続白画素シーケンス長さ統計値を含む。図19に示されるように、連続白画素シーケンス長さ統計値は、その部分のスペース画素行の最長の連続白画素シーケンスの長さ、あるいはその部分のスペース画素行の最長の連続白画素シーケンスの長さと2番目に長い連続白画素シーケンス長さとの和である。
【0108】
スペース画素行の一部と第3の文字行領域との対応は、通常、テキスト行に対して垂直な方向の対応を意味する。更に詳細には、第3の文字行領域に対応するスペース画素行の部分は、第3の文字行領域と等しい幅を有し且つ水平方向の縁部が水平方向に第3の文字行領域の縁部と整列しているスペース画素行の一部分を表す。特に、第3の行領域がいくつかの文字部分領域から構成される場合、スペース画素行のその部分は、テキスト行に対して垂直な方向に第3の文字行領域のいくつかの文字部分領域の各々とそれぞれ対応するいくつかの小部分を含む。
【0109】
第3の文字行領域のパラメータ及び判定されるべきスペース画素行のパラメータを使用して、図12A〜図12Cに示される処理と同様に、第2のスペース画素行を多様な方法で判定できる。そのため、ここではステップS802の処理を省略し、詳細には説明しない。
【0110】
図20を参照して、第2の判定ステップの処理を以下に説明する。第2の判定ステップも上記の2つのケースに適用可能であるが、第2のケースに適用されるのが好ましい。
【0111】
第2の判定ステップにおいて、第2のスペース画素行は、いくつかの小部分に分割され、それらの小部分における黒画素カウントを1つの推定黒画素カウント上限と比較することにより、第2のスペース画素行が最終スペース画素行(確認済みスペース画素行とも呼ばれる)であるか否かが判定される。推定黒画素カウント上限は、第3の文字行領域中の対応する部分領域における黒画素カウントの平均値である。第2の判定ステップは、1つの妥当な推論に基づく。すなわち、現在の第2のスペース画素行が文字画素行である場合、画素行の小部分の黒画素カウントのうち少なくとも1つの黒画素カウントは、文字画素行領域中の対応する部分領域における平均黒画素カウントより大きくなるという推論である。
【0112】
図20は、第3の実施形態の第2の判定ステップの処理を示すフローチャートである。
【0113】
ステップS1001において、第3の文字行領域はいくつかの部分領域に分割され、それに対応して、判定されるべき第2のスペース画素行はいくつかの小部分に分割される。
【0114】
ステップS1002において、判定されるべき第2のスペース画素行のいくつかの小部分の黒画素カウントの中で最大の黒画素カウントを有する1つの小部分が選択される。
【0115】
ステップS1003において、選択された最大黒画素カウントと選択された小部分に対応する第3の文字行領域中の部分領域から導出できる上限(黒画素カウント上限とも呼ばれる)とを比較することにより、第2のスペース画素行が最終スペース画素行であるか否かが判定される。この部分領域は、小部分と同一の幅を有する。最大黒画素カウントが黒画素カウント上限より小さい場合、第2のスペース画素行は最終スペース画素行である。
【0116】
小部分の黒画素カウント上限は、次の式(7)により計算できる。
式中、WidthSubRegionは、その小部分に対応する第3の文字行領域中の部分領域の幅である。
【0117】
式(7)は、以下の演繹から得られる。
【0118】
第2のスペース画素行が最終スペース画素行である場合、小部分の黒画素カウントは、以下より小さくなるべきである。
式中、CharacterAmountSubRegionは第3の文字行領域中の部分領域における文字量を表す。
式中、AverageStrokeAmountCharacterは1文字中の平均ストローク量であり、これは、第3の文字行領域が水平方向である場合は1文字中の平均垂直ストローク量に対応し、第3の文字行領域が垂直方向である場合は1文字中の平均水平ストローク量に対応する。AverageStrokeAmountCharacterは、文書の言語に従って操作者が設定可能である。
【0119】
部分領域中の文字量が、式(9)により得られ、1文字中の平均ストローク量が式(10)により得られることを考慮する。
その文字のストローク幅は、以下により推定できる。
このように、小部分の黒画素カウント上限の計算式を上記の式のように簡単にすることができる。
【0120】
あるいは、現在の第2のスペース画素行が最終スペース画素行であるか否かを判定するために、現在の第2のスペース画素行に加えて、現在の第2のスペース画素行の直前の第2のスペース画素行及び次の第2のスペース画素行も使用できる。更に詳細には、直前の第2のスペース画素行及び次の第2のスペース画素行の小部分における最大黒画素カウントが対応する上限より共に小さいか否かが判定される。共に小さければ、現在の第2のスペース画素行は、テキスト行間のスペース領域に属しているはずであるので、最終スペース画素行とラベル付けされる。
【0121】
以上の説明の中で、第3の実施形態の処理は、空白領域が除去された第2の画素領域及び第3の文字行領域に基づいて最終スペース画素行の判定を実行していたが、本発明は、これに限定されない。言い換えると、空白領域の除去は、第3の実施形態の処理には不可欠ではなく、従って第3の実施形態の処理により実現される効果に大きな影響を与えない。第2の画素領域及び第3の文字行領域に空白領域がまだ残っていたとしても、第3の実施形態の処理は、画素領域を相対的に正確に検出し且つ分割することができる。
【0122】
更に、第3の実施形態における処理の順序は単なる例であり、他の順序も利用可能である。例えば、第1の判定ステップと第2の判定ステップの順序を入れ替えてもよく、第1の判定ステップの前に第2の判定ステップを実行することも可能である。この場合、検出済みスペース画素行が第2のスペース画素行であるか否かを判定するために、検出済みスペース画素行は、まず、図20に示される処理のように第2の判定ステップにより処理される。次に、最終スペース画素行を判定するために、図17及び図18に示される処理のように、第2のスペース画素行は、第1の判定ステップにより処理されることになるだろう。この処理は、実行可能な空白領域の除去を含まなくてもよい。
【0123】
[有利な効果]
以上説明したタイトル行のような文書画像又はノイズが点在している文書画像のような文書画像の他にも、第3の実施形態の方法は、複雑なレイアウトを有する文書画像、特にテキストブロック中の2つの隣接テキスト行が相当に異なる長さを有する文書画像に有効且つ正確に適用可能であり、それによりそのような文書画像の行分割の性能を向上できる。
【0124】
図21A〜図21Cは、テキストブロック中の2つの隣接テキスト行が相当に異なる長さを有する文書画像に関して、従来の技術と、第3の実施形態の方法とによりそれぞれ実現された行分割の結果の比較を概略的に示す。これらの図において、確認済みノイズ画素行は、第3の実施形態の方法により判定された最終スペース画素行に対応する。
【0125】
このような文書画像では、従来の方法を使用した場合、図21A及び図21Bに示されるように、短いテキスト行は誤って分割されてしまうことがわかる。これに対し、第3の実施形態の処理を利用することにより、図21Cに示されるように、文書画像から3つのテキスト行が正確に分割される。
【0126】
更に、先に説明した第1の実施形態から第3の実施形態により実現される有利な効果を考慮すると、複雑なレイアウトを有するのに加えてノイズが存在し、点在している文書画像も、第3の実施形態の方法を利用することにより有効且つ正確に分割できる。
【0127】
[実施例1]
本発明の方法を理解しやすくするために、図22A〜図22Eを参照して実施例1を説明する。実施例1において、第1の実施形態から第3の実施形態の方法を利用することにより、複雑なレイアウトを有し且つノイズが点在している文書画像が行分割される。
【0128】
図22Aに示されるように、元の文書画像は、第1のテキスト行が第2のテキスト行より相当に短いという複雑なレイアウトを有し且つノイズが点在している画像である。
【0129】
図22Bに示されるように、まず元の文書画像中のスペース画素行を発見するために、第1の実施形態及び第2の実施形態の方法を利用することにより文書画像が検出される。図22Bのノイズ画素行仮定は、検出済みスペース画素行に対応する。
【0130】
図22Cに示されるように、文書画像中の検出済みスペース画素行は、第3の実施形態の第1の判定ステップを利用することにより判定される。図22Cのノイズ画素行仮定は、判定された第2のスペース画素行に対応する。
【0131】
図22Dに示されるように、第3の実施形態の第2の判定ステップを利用することにより、最終スペース画素行が発見される。図22Dの確認済みノイズ画素行仮定は、判定された最終スペース画素行に対応する。
【0132】
図22Eに示されるように、判定された最終スペース画素行に沿って、文書画像を2つのテキスト行に正確に分割できる。
【0133】
図23は、各モジュール手段から構成された文書画像の行分割システムの一般的な構成を示すブロック図である。
【0134】
図23に示されるように、行分割システム200は、少なくとも1つの画素領域を含む第1の画素領域を取得するためにテキストブロックを分割する第1の分割ユニット201と、第1の画素領域中の各画素領域から空白領域を検出し且つ空白領域を除去することにより対応する第2の画素領域を取得する空白領域除去ユニット202と、第1の画素領域中の画素領域ごとに、対応する第2の画素領域を利用することによりテキスト行の分割を実行するテキスト行分割ユニット203とを備える。
【0135】
空白領域除去ユニット202は、第1の領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を画素領域中の空白領域として検出する空白領域検出ユニット202−1と、画素領域から空白領域を除去することにより対応する第2の画素領域を取得する除去ユニット202−2とを備えるのが好ましい。
【0136】
テキスト行分割ユニット203は、第2の画素領域中の画素行における黒画素カウントと第2の画素領域の幅との比を利用することにより、画素行が文字画素行であるか又はスペース画素行であるかを検出する黒画素カウント検出ユニット203−1を備えるのが好ましく、テキスト行分割ユニット203は、画素行における連続白画素シーケンス長さ統計値と第2の画素領域の幅との比を利用することにより、画素行が文字画素行であるか又はスペース画素行であるかを検出する白画素シーケンス検出ユニット203−2を更に備えるのが好ましい。
【0137】
テキスト行分割ユニット203は、直前の検出済み文字画素行に関連する文字ストローク幅を利用することにより、画素行がスペース画素行であるか否かを検出する文字ストローク幅検出ユニット203−3を更に備えるのが好ましい。文字ストローク幅検出ユニット203−3は、検出されるべき画素行の前の隣接するすべての検出済み文字画素行を1つの文字行領域としてマージするマージユニット203−31と、文字行領域の文字ストローク幅を推定する推定ユニット203−32と、検出されるべき画素行をいくつかの小部分に分割し且ついくつかの小部分の中から最大の黒画素カウントを有する小部分を検索する検索ユニット203−33と、スペース画素行を検出するために、最大の黒画素カウントと文字ストローク幅とを比較する比較ユニット203−34とを備えるのが好ましい。
【0138】
テキスト行分割ユニット203は、第2の画素領域中の1つ以上の検出済みスペース画素行の前の隣接する1つ以上の隣接文字画素行を利用することにより、1つ以上の検出済みスペース画素行から1つ以上の最終スペース画素行を判定する判定ユニット203−4を更に備えるのが好ましい。判定ユニット203−4は、1つ以上の隣接文字画素行を第2の文字行領域としてマージするマージユニット203−41と、1つ以上の検出済みスペース画素行の各スペース画素行が第2のスペース画素行であるか否かを判定する第1の判定ユニット203−42と、第2のスペース画素行から最終スペース画素行を判定する第2の判定ユニット203−43とを備えるのが好ましい。
【0139】
第1の判定ユニット203−42は、空白領域を検出し且つ第2の文字行領域から空白領域を除去することにより、第2の文字行領域から第3の文字行領域を取得する文字行領域取得ユニット203−421と、第3の文字行領域に対応する部分におけるスペース画素行の黒画素カウントと第3の文字行領域の幅との比を利用することにより、スペース画素行が第2のスペース画素行であるか否かを判定する黒画素カウント判定ユニット203−422とを備えるのが好ましく、第1の判定ユニット203−42は、第3の文字行領域に対応する部分におけるスペース画素行の連続白画素シーケンス長さ統計値と第3の文字行領域の幅との比を利用することにより、スペース画素行が第2のスペース画素行であるか否かを判定する白画素シーケンス判定ユニット203−423を更に備えるのが好ましい。
【0140】
第2の判定ユニット203−43は、第3の文字行領域をいくつかの部分領域に分割し且つそれに対応して第2のスペース画素行をいくつかの小部分に分割する分割ユニット203−431と、第2のスペース画素行中のいくつかの小部分の中から最大の黒画素カウントを有する小部分を選択する選択ユニット203−432と、最大の黒画素カウントを有する小部分に関して上限(黒画素カウント上限とも呼ばれる)を計算する上限計算ユニット203−433と、最終スペース画素行を判定するために最大の黒画素カウントと上限とを比較する比較ユニット203−434とを備えるのが好ましい。
【0141】
上記の各手段は、先に説明した処理を実現するための好適なモジュールの例である。種々のステップを実現するモジュールのすべてがここに挙げられているわけではない。しかし、ある特定の処理を実行するステップがある場合、それと同一の処理を実現するための対応する機能モジュール又は手段が存在する。
【0142】
本発明の方法及びシステムを多様な方法で実現可能である。例えば、本発明の方法及びシステムをソフトウェア、ハードウェア、ファームウェア又はそれらの何らかの組み合わせによって実現可能である。方法のステップに関して先に説明された実行の順序は単なる例であり、特に指示のない限り、本発明の方法のステップは、先に特定して説明した順序に限定されない。更に、いくつかの実施形態において、本発明は、本発明に係る方法を実現するための機械可読命令を含めて、記録媒体に記録されたプログラムとして実現されてもよい。従って、本発明は、本発明に係る方法を実現するためのプログラムを記憶する記録媒体を更に含む。
【0143】
本発明のいくつかの特定の実施形態を例によって詳細に説明したが、上記の例は単に例示を目的としており、本発明の範囲を限定することを意図しないことは当業者には理解されるべきである。本発明の趣旨の範囲から逸脱することなく上述の実施形態を変形できることは当業者には理解されるべきである。本発明の範囲は、添付の特許請求の範囲により定義される。
【技術分野】
【0001】
本発明は、文書画像の行分割方法及び行分割システムに関し、特に、複雑なレイアウトを有する文書画像又はノイズが含まれる文書画像の行分割方法及び行分割システムに関する。
【背景技術】
【0002】
光学式文字認識(OCR)の分野には、元の文書から得られた文書画像に含まれるテキストコンテンツを取得するために文書画像を認識する技術が複数存在する。それら複数の技術のうち1つの技術は、文書画像中のテキストブロックをテキスト行に分割する方法であり、以下の説明中、この方法は行分割方法と呼ばれる。
【0003】
文書画像の行分割技術の1つは、画像に基づく技術、特に画素投影に基づく技術であり、この種の一般的な方法は、各画素行の黒画素投影のみによって行分割を実行する。更に詳細には、図1に示されるように、主に方法は、文書画像の1つのテキストブロックに含まれる各画素行の黒画素投影値を計算することと、すべてのスペース画素行をその黒画素投影値に従って検出することと、スペース画素行に沿ってテキストブロックを分割することにより行分割結果を取得することとから成る。
【0004】
1つの画素行の黒画素投影値は複数の形態をとるが、一般的な形態の1つは、1つの画素行の黒画素カウントとその画素行の面積との比である。画素行の面積は、画素行の幅を画素行の高さと乗算することにより計算される。更に詳細には、1つの画素行の高さは常に1であるので、1つの画素行の黒画素投影値は、その画素行における黒画素カウントとその画素行の幅との比である。この技術において、1つの画素行の黒画素カウントとその画素行の面積との比が、通常は0であるか又は0に近い閾値より小さい場合、その画素行は、文字に関連するコンテンツを含まない画素行であると通常は考えられるスペース画素行とみなされ、テキストブロックの行分割に使用されるだろう。
【0005】
しかし、特に文書画像中にノイズが存在する場合又は文書画像が複雑なレイアウトを有する場合、この方法では、適切な行分割結果は通常得られない。
【0006】
このような行分割の問題に対処するための方法はいくつか提案されているが、それらの方法は、ノイズを含む文書画像又は複雑なレイアウトの画像のいずれか一方のみを処理することを意図している。
【0007】
1つの方法は、行分割に先立ってノイズを削除する。方法は、ノイズを含む文書画像を対象とするが、長い時間を必要とし、「点ノイズ」のようなものを処理可能なだけである。特に、この方法は、複雑なレイアウトの文書画像の行分割の問題を解決できない。
【0008】
もう1つの方法は、画素行における連続白画素シーケンスの長さである白画素連続長に基づく。この方法では、各画素行の白画素連続長が計算され、長い白画素連続長を有する画素行は、行分割可能な位置、すなわちスペース画素行とみなされる。この方法は、レイアウトがそれほど複雑ではない文書画像にはある程度は有用であり、場合によっては、2つのテキスト行の間のノイズ画素行の一部をこの方法により検出可能であるので、特定のノイズを含む文書画像にも有用である。しかし、この方法は次のような3つの欠点を有する。
【0009】
第1に、テキスト行が短い場合、特にタイトル行のように隣接する文字の間に広いスペースがある場合、テキスト行中の画素行は長い白画素連続長を有するので、図2Aに示されるように、テキスト行はいくつかのテキスト行に誤って分割されてしまう。
【0010】
第2に、投影に基づく方法では分離できない2つのテキスト行を分割するために上記の方法が適用される場合、それら2つのテキスト行のうち一方の行が短く他方が長いと、短いテキスト行の中の画素行では、空白領域は画素行の白画素連続長さの一部とみなされ、いくつかの文字画素行は、誤ってスペース画素行とみなされる。そのため、図2Bに示されるように、ノイズ画素行である確率が最も高い画素行に沿ってテキスト行を分割すると、短いテキスト行は誤っていくつかのテキスト行に分割されることになる。
【0011】
あるいは、図2Cに示されるように、すべてのノイズ画素行を直接削除することによりテキスト行を分割する場合、短いテキスト行はテキスト行の間のスペース領域の一部とみなされることもある。
【0012】
第3に、ノイズを含む文書画像では、画素行中のノイズが点在していない場合に限り、上記の方法によってノイズ画素行を発見できる。文書画像中にノイズが点在している場合にはノイズ画素行を発見できず、図2Dに示されるように、上記の方法によりテキスト行を分離することは不可能である。
【0013】
更に図2Eに示されるように、従来の技術では、複雑なレイアウトを有するのに加えてノイズが存在し、点在している文書画像を正確に分割できない。
【0014】
以上のことから、複雑なレイアウトを有する文書画像又はノイズが存在し、点在している文書画像に効率よく且つ正確に対処できる方法がないことは明らかである。
【0015】
更に、複雑なレイアウトを有するのに加えてノイズが存在し、点在している文書画像に効果的且つ正確に対処できる方法もない。
【0016】
従って、上述の従来技術における技術的な問題点を考慮して、従来技術によって発生する欠陥を克服し、行分割により文書画像から正確にテキスト行を取得する技術が必要とされる。
【発明の概要】
【発明が解決しようとする課題】
【0017】
本発明の1つの目的は、複雑なレイアウトの文書画像の行分割を正確に実現することである。
【0018】
本発明の別の目的は、ノイズを含む文書画像、特にノイズが点在している文書画像の行分割を正確に実現することである。
【0019】
本発明の更なる目的は、複雑なレイアウトを有するのに加えてノイズが存在し、点在している文書画像の行分割を正確に実現することである。
【課題を解決するための手段】
【0020】
本発明の1つの態様において、文書画像中のテキストブロックの行分割を実行する方法であって、前記テキストブロックを分割して少なくとも1つの画素領域を含む第1の画素領域を取得する第1の分割ステップと、第1の画素領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を空白領域として検出し、第1の画素領域の画素領域から空白領域を除去して第2の画素領域を取得する空白領域除去ステップと、第2の画素領域を利用してテキスト行の分割を実行するテキスト行分割ステップとを備えた方法が提供される。
【0021】
本発明の別の態様において、文書画像中のテキストブロックの行分割を実行するシステムであって、前記テキストブロックを分割して少なくとも1つの画素領域を含む第1の画素領域を取得する第1の分割ユニットと、第1の画素領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を空白領域として検出し、第1の画素領域の画素領域から空白領域を除去して第2の画素領域を取得する空白領域除去ユニットと、第2の画素領域を利用してテキスト行の分割を実行するテキスト行分割ユニットとを備えたシステムが提供される。
【0022】
本発明の更なる特徴と利点は、添付の図面を参照して以下の説明を読むことにより明らかになるだろう。
【0023】
本明細書に組み込まれ且つ本明細書の一部を構成する添付の図面は、本発明の実施形態を例示し、以下の説明と共に本発明の原理を説明する。
【図面の簡単な説明】
【0024】
【図1】図1は、従来の技術における黒画素投影に基づく行分割の方法を概略的に示す図である。
【図2A】、
【図2B】、
【図2C】、
【図2D】、
【図2E】図2A〜図2Eは、従来の方法により正確に分割できない種々の文書画像を概略的に示す図であり、図2A〜図2Cは、誤って分割された複雑なレイアウトを有する文書画像を概略的に示す図であり、図2Dは、ノイズが点在しているために分割できない文書画像を概略的に示す図であり、図2Eは、複雑なレイアウトを有し且つノイズが点在しているために正確に分割できない文書画像を概略的に示す図である。
【図3】図3は、画素行の幅及び高さの意味を概略的に説明する図である。
【図4】図4は、本発明に係る行分割システムを実現する計算デバイスの構成を示すブロック図である。
【図5】図5は、本発明に係る行分割方法の第1の実施形態を示すフローチャートである。
【図6】図6は、図5の方法により実現される画素領域の行分割の結果の一例を概略的に示す図である。
【図7】図7は、空白領域が含まれる画素領域を概略的に示す図である。
【図8】図8は、画素領域における空白領域の判定及び画素領域からの第2の画素領域の取得を示すフローチャートである。
【図9】図9は、画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分の一例を概略的に示す図である。
【図10A】、
【図10B】図10A及び図10Bは、画素領域における空白領域の検出の別の例を概略的に示す図である。
【図11】図11は、空白領域が検出され且つ除去されている場合の画素領域中の画素行のパラメータを概略的に示す図である。
【図12A】、
【図12B】、
【図12C】図12A〜図12Cは、行分割方法の第1の実施形態のステップS300において実行される例示的なステップを示すフローチャートである。
【図13A】、
【図13B】図13A及び図13Bは、従来の技術と本発明の第1の実施形態とによりそれぞれ実現された複雑なレイアウトを有する文書画像の行分割の結果の比較を概略的に示す図である。
【図14】図14は、本発明に係る行分割方法の第2の実施形態のステップS300における処理を示すフローチャートである。
【図15A】、
【図15B】、
【図15C】図15A〜図15Cは、従来の技術と本発明の第2の実施形態とによりそれぞれ実現されたノイズが存在し、点在している文書画像の行分割の結果の比較を概略的に示す図である。
【図16A】、
【図16B】図16A及び図16Bは、2つの隣接テキスト行が相当に異なる長さを有する2つの場合を概略的に示す図である。
【図17】図17は、本発明に係る行分割方法の第3の実施形態のテキスト行分割ステップにおける処理を示すフローチャートである。
【図18】図18は、第3の実施形態のテキスト行分割ステップの第1の判定ステップにおける処理を示すフローチャートである。
【図19】図19は、第3の文字行領域と判定されるべきスペース画素行との対応を概略的に示す図である。
【図20】図20は、第3の実施形態の行分割方法の第2の判定ステップにおける処理を示すフローチャートである。
【図21A】、
【図21B】、
【図21C】図21A〜図21Cは、テキストブロック中の2つの隣接テキスト行が相当に異なる長さを有する文書画像に関して、従来の技術の方法と第3の実施形態の方法とによりそれぞれ実現された行分割の結果の比較を概略的に示す図である。
【図22A】、
【図22B】、
【図22C】、
【図22D】、
【図22E】図22A〜図22Eは、複雑なレイアウトを有し且つノイズが存在し、点在している文書画像の行分割の一例を概略的に示す図である。
【図23】図23は、行分割システムの一般的な構成を示すブロック図である。
【発明を実施するための形態】
【0025】
添付の図面を参照して、本発明の実施形態を以下に詳細に説明する。
【0026】
本発明を完全に且つ適切に理解しやすくするために、まず、本明細書及び特許請求の範囲で使用される用語を説明する。
【0027】
本明細書及び特許請求の範囲において、特に文書画像で使用される場合の用語「テキストブロック」は、文書画像中の1つ以上の行に1つ以上の語を含み且つ1つ以上の画素領域に分割できるブロックを表す。画素領域は、1つ以上のテキスト行から構成され且つ各テキスト行を取得するように分割可能である。テキスト行は、1行分のテキスト、更に詳細には1行分の語に対応し、1つ以上の画素行を含む。画素行は、画素領域中の語に関連する情報を含む文字画素行であるか、又は語に関連する情報を実質的には含まず且つ画素領域の行分割に際して分割位置としてみなすことができるスペース画素行である。1つ以上の文字画素行を1つの文字行領域としてマージできる。
【0028】
画素行又はテキスト行の方向に関して、「水平」という用語はほぼ水平方向であることを意味し、「垂直」という用語はほぼ垂直方向であることを意味する。特に、文書画像で使用される場合の用語「水平」は、文書画像又は元の文書におけるテキスト行とほぼ平行な方向であることを表す。同様に、文書画像で使用される場合の用語「垂直」は、文書画像又は元の文書におけるテキスト行に対してほぼ垂直な方向であることを表す。
【0029】
本明細書及び特許請求の範囲において、通常は水平方向の行である文書画像中のテキスト行に関して、「高さ」(Hで示される)及び「幅」(Wで示される)という用語は、それぞれ、垂直方向のテキスト行の長さ及び水平方向のテキスト行の長さを示す。
【0030】
テキスト行が水平方向の行に限定されず、垂直方向の行(テキスト列とも呼ばれる)であってもよいことは言うまでもない。この場合、「水平」という用語は、文書画像又は元の文書におけるテキスト列に対してほぼ垂直な方向であることを意味し、「垂直」という用語は、文書画像又は元の文書におけるテキスト列とほぼ平行な方向であることを意味し、「高さ」(Hで示される)という用語は、水平方向のテキスト列の長さを示し、「幅」(Wで示される)という用語は、垂直方向のテキスト列の長さを示す。
【0031】
図3は、上記の2つの場合を概略的に示す。テキストブロック及び画素領域は1つ以上のテキスト行を含み且つ1つのテキスト行は1つ以上の画素行から構成されるので、「高さ」及び「幅」の意味は、テキストブロック、画素領域及びその部分領域、並びに画素行及びその小部分のいずれの「高さ」及び「幅」にも同等に適用される。この点を考慮して、テキストブロック又は画素領域の分割(すなわち、行分割)は、その高さ方向に実行されるといえるだろう。
【0032】
以下の説明を簡単にするために、特に指示のない限り、「高さ」は垂直方向の長さを意味し、「幅」は水平方向の長さを意味し、分割は垂直方向の分割を意味する。
【0033】
本明細書において、特に指示のない限り、すべての大きさ(長さ又は幅など)は「画素」の単位で表される。
【0034】
図4は、本発明に係る行分割システムを実現する計算デバイスの構成を示すブロック図である。簡潔にするため、システムは、1つの計算デバイスに組み込まれるものとして示される。しかし、システムが1つの計算デバイスに組み込まれるか又はネットワークシステムとして複数の計算デバイスに配置されるかにかかわらず、システムは有効である。
【0035】
図4に示されるように、計算デバイス100は、行分割の処理を実現するために使用される。計算デバイス100は、CPU101と、チップセット102と、RAM103と、ストレージコントローラ104と、ディスプレイコントローラ105と、ハードディスクドライブ106と、CD−ROMドライブ107と、ディスプレイ108とを備える。計算デバイス100は、CPU101とチップセット102との間に接続された信号線111、チップセット102とRAM103との間に接続された信号線112、チップセット102と種々の周辺装置との間に接続された周辺装置バス113、ストレージコントローラ104とハードディスクドライブ106との間に接続された信号線114、ストレージコントローラ104とCD−ROMドライブ107との間に接続された信号線115、並びにディスプレイコントローラ105とディスプレイ108との間に接続された信号線116を更に備える。
【0036】
クライアント120は、計算デバイス100に直接接続されるか又はネットワーク130を介して接続される。クライアント120は、例えば行分割の処理により要求される命令及び/又はパラメータを計算デバイス100へ送出し、計算デバイス100は、クライアント120へ情報を返送するか又はディスプレイ108に情報を表示する。
【0037】
[第1の実施形態]
図5を参照して、本発明に係る行分割方法の第1の実施形態を以下に説明する。図5は、行分割方法の第1の実施形態を示すフローチャートである。
【0038】
行分割方法のステップS100(以下、第1の分割ステップと呼ばれる)において、少なくとも1つの画素領域を含む粗い画素領域(以下、第1の画素領域と呼ばれる)を取得するために、文書画像のテキストブロックが分割される。ステップS100の処理中、先に説明した投影に基づく方法などの従来の何らかの種類の行分割方法を使用可能であるので、ここでは説明を省略する。
【0039】
ステップS200(以下、空白領域除去ステップと呼ばれる)において、第1の画素領域の各画素領域中の各画素行における連続白画素シーケンス間の共通重複部分が第1の画素領域の対応する画素領域における空白領域として検出され且つ空白領域が除去された画素領域(以下、第2の画素領域と呼ばれる)を取得するために第1の画素領域の対応する画素領域から空白領域が除去される。通常、第1の画素領域の各画素領域は、1つの第2の画素領域に対応する。ステップS200の処理については以下に詳細に説明する。
【0040】
ステップS300(以下、テキスト行分割ステップと呼ばれる)において、テキスト行分割に第2の画素領域が使用される。例えば、第1の画素領域中の各画素領域に関して、対応する第2の画素領域を利用することにより、その画素領域における行分割位置が判定され、その後、行分割結果を取得するために、画素領域は行分割位置に従って分割される。従来の技術では周知のように、通常、行分割位置は1つ以上のスペース画素行に対応する。
【0041】
図6は、図5に示される方法により実現されたテキストブロック中の1つの画素領域の行分割結果の一例を概略的に示す。図6に示されるように、第1の画素領域に含まれる各画素領域は、1つ以上のスペース画素行に従って少なくとも2つの部分に分割可能である。詳細には、例えば画素領域中に2つ以上の一連の隣接するスペース画素行が存在する場合、それらのスペース画素行は1つのスペース画素行領域にマージされ、そのスペース行領域を削除することにより、スペース画素行は、画素領域を少なくとも2つのより小さな画素領域(テキスト行領域とも呼ばれる)に分割するために使用されるだろう。
【0042】
場合によっては、行分割結果として取得された画素領域(すなわち、テキスト行領域)を更に分割しなければならないこともある。例えば、文書画像の状態と個人的な経験とに従って設定される1つの閾値TH1、例えば300dpi画像の場合に34である閾値をテキスト行領域の高さが超える場合、そのテキスト行領域を更に分割する必要がある。
【0043】
行分割方法において、行分割されるべき画素領域の幅などの多くの種類のパラメータを考慮し、正確に取得する必要がある。詳細には図7に示されるように、画素領域がいくつかの空白領域を含む場合、画素領域中の空白領域を検出し且つ削除しなければならない。特にテキスト行が短い場合、空白領域を削除しないと行分割誤差が発生する。
【0044】
図8及び図9を参照して、ステップS200の処理を以下に詳細に説明する。図8は、画素領域中の空白領域の判定及び画素領域からの第2の画素領域の取得とを示すフローチャートである。図9は、画素領域中の画素行の中の共通重複部分の一例を概略的に示す。
【0045】
図8のステップS201において、画素領域中の各画素行におけるすべての連続白画素シーケンスがその長さに従って順序付けされる。
【0046】
ステップS202において、画素領域中の各画素行における連続白画素シーケンス間の共通重複部分(空白領域に対応する)を生成するために、最長の連続白画素シーケンスから開始して、次に続く連続白画素シーケンスの各々が順次重ね合わされる。ステップS202の処理については以下に詳細に説明する。
【0047】
ステップS203において、画素領域から空白領域が除去され、残った文字領域は第2の画素領域にグループ化される。
【0048】
ステップS202の処理では、1つの共通空白部分を生成するために、共通して重ね合わされたシーケンスのカウント、すなわち、重ね合わされた画素行の数が所定の数に達するまで、第1の連続白画素シーケンス、すなわち1つの画素行の中で最長の連続白画素シーケンスから開始して、他の画素行の次に続く白画素シーケンスの各々が前の1つ以上の連続白画素シーケンスと順序通りに重ね合わされる。この所定の数は、所期の精度、画像の解像度などの多くの種類の条件に従って操作者により設定可能である。一般に、所定の数は、画素領域中の画素行の数の少なくとも70%になるように設定される。
【0049】
重ね合わせ処理中、重ね合わされるべき連続白画素シーケンスが前の連続白画素シーケンスを組み合わせることにより生成された空白領域と重なり合わない場合、重ね合わされるべき連続白画素シーケンスは放棄され、次の連続白画素シーケンスの重ね合わせが試みられる。
【0050】
最後に、取得された共通空白部分の範囲に対応する画素領域の部分が、その画素領域の共通重複部分、すなわちその画素領域の空白領域とみなされる。空白領域は除去され、画素領域中に残った文字領域(第2の画素領域としてグループ化可能である)は、続く行分割の間に利用される。
【0051】
あるいは、共通重複部分を検出する上記の方法は、空白領域を検出するために黒画素カウントにより空白領域を検出する別の方法と組み合わせ可能である。
【0052】
更に詳細に説明すると、図10Aに示されるように、まず、画素領域はいくつかの部分領域に分割され、大きな空白領域を検出するために、各部分領域の黒画素カウントとその部分領域の面積との比が計算され、比が1つの閾値YH4(例えば、0.01)より小さい場合、その部分領域は空白領域とみなされる。比が閾値TH4(例えば、0.01)より大きい場合、その部分領域は文字部分領域である可能性が高い。以後、説明を簡単にするために、特に指示のない限り、分割は幅方向の分割を指す。
【0053】
続いて、図10Bに示されるように、文字部分領域に関して、文字部分領域中に出現しうる小さな空白部分領域を検出するために、上述の共通重複部分を検出する方法が使用される。
【0054】
図11及び図12A〜図12Cを参照して、ステップS300の処理を以下に詳細に説明する。図11は、空白領域が既に検出され且つ除去されている場合の画素領域中の1つの画素行の黒画素カウント及び連続白画素シーケンスの長さなどのパラメータを概略的に示す。図12A〜図12Cは、行分割方法の第1の実施形態のステップS300において実行される例示的なステップを示すフローチャートである。
【0055】
ステップS300において、先に説明したように、行分割に第2の画素領域が使用されるだろう。更に詳細には、検出されるべき画素行が文字画素行であるか又はスペース画素行であるかを検出するために、第2の画素領域のパラメータ、並びに検出されるべき画素行の対応するパラメータを使用できる。
【0056】
第2の画素領域のパラメータは、例えば第2の画素領域の幅を含む。この幅は、第2の画素領域中の文字領域の幅の和を計算することにより取得できる。
【0057】
画素行の対応するパラメータは、例えば第2の画素領域中の画素行の黒画素カウント及び画素行の連続白画素シーケンス長さ統計値を含む。連続白画素シーケンス長さ統計値は、図11に示されるように、第2の画素領域中の画素行の最長の連続白画素シーケンスの長さ又は第2の画素領域中の画素行の最長の連続白画素シーケンスの長さと2番目に長い連続白画素シーケンスの長さとの和である。
【0058】
第2の画素領域のパラメータ及び検出されるべき画素行のパラメータを使用して、スペース画素行を検出するために、ステップS300の処理を種々の方法で実行可能である。
【0059】
図12Aは、第2の画素領域中の画素行における黒画素カウントと第2の画素領域の幅との比を利用することによりスペース画素行が検出されるステップS300の処理を示す。
【0060】
この処理の一般的な方法の1つは、画素行がスペース画素行であるか否かを検出するように、上記の比が閾値と比較されることである。比が閾値TH2、例えば0.01より小さい場合、その画素行は1つのスペース画素行とみなされる。そうでない場合、画素行は1つの文字画素行とみなされる。
【0061】
図12Bは、画素行における連続白画素シーケンス長さ統計値と第2の画素領域の幅との比、すなわち第2の画素領域中の画素行の最長連続白画素シーケンスの長さと第2の画素領域の幅との比、あるいは第2の画素領域中の画素行の最長連続白画素シーケンスの長さ及び2番目に長い連続白画素シーケンスの長さの和と第2の画素領域の幅との比を利用することにより、スペース画素行が検出されるステップS300の処理を示す。
【0062】
この処理の一般的な方法の1つは、画素行がスペース画素行であるか否かを検出するように、それら2つの比を閾値と比較する。それら2つの比のいずれか一方が1つの閾値TH3(例えば0.7)より大きい場合、その画素行は1つのスペース画素行とみなされる。そうでない場合、画素行は1つの文字画素行とみなされる。
【0063】
図12Cは、図12Aに示される方法と図12Bに示される方法とを組み合わせたステップS300の処理を示す。例えば、図12Aに示される方法及び図12Bに示される方法を順次実行することが可能である。尚、図12Cの処理の順序は単なる例であり、他の順序も利用できる。例えば、図12Bに示される処理の次に図12Aに示される処理が実行されてもよい。
【0064】
上述の処理方法は、第2の画素領域を利用することによりスペース画素行の検出を実現する好適な処理方法の例であるが、他の方法も使用可能である。
【0065】
スペース画素行の検出は、水平のレイアウトでは、第1の画素領域に含まれる画素領域のすべての画素行に関して上から下に向かって実行可能であるが、これに限定されない。例えば、検出精度をほとんど低下させずに計算速度を改善するために、1つの画素領域の中央にある画素行に関してスペース画素行の検出を実行可能であり、この中央部分の範囲は、操作者が任意に設定可能である。一般的な選択肢の1つは、画素領域が上限「region_top」及び下限「region_bottom」を有し、「middle」は「region_top」+0.2×std_line_heightと「region_bottom」−0.2×std_line_heightとの間の領域であると仮定するものである。std_line_heightは、文書画像の解像度により推定される。
【0066】
1つの画素領域において、すべてのスペース画素行を一度に検出可能であるが、本発明はこれに限定されない。例えば、水平のレイアウトでは、上から下に向かって各画素行を走査し、検出することができる。1つのスペース画素行が発見された後、それに続く別の画素行が文字画素行であるか否かが判断され、処理は終了する。
【0067】
[有利な効果]
第1の実施形態の方法は、少なくとも、複雑なレイアウトを有する文書画像、特にタイトル行を含む文書画像に有効且つ正確に適用可能であり、それによりそのような文書画像の行分割の性能を向上できる。
【0068】
図13A及び図13Bは、従来の技術と本発明の第1の実施形態とによりそれぞれ実現された複雑なレイアウトを有する文書画像の行分割の結果の比較を概略的に示す。文書画像は、例えば文書中のタイトル行である。図13Aに示されるように、従来の方法によりタイトル行は誤って分割されていることがわかる。これに対し本発明に係る第1の実施形態の方法によれば、図13Bに示されるように、タイトル行ではスペース画素行は検出されず、従ってタイトル行は誤って分割されていないことがわかるだろう。
【0069】
[第2の実施形態]
図14〜図15Cを参照して、本発明の第2の実施形態を詳細に説明する。第2の実施形態は、テキスト行分割ステップを除いて第1の実施形態とほぼ同一である。第2の実施形態のテキスト行分割ステップは、画素領域中の検出されるべき画素行の前の文字画素行を利用することにより、特に検出されるべき画素行の前の文字画素行から導出された文字ストローク幅を利用することにより、画素行がスペース画素行であるか否かを更に検出する。第1の実施形態のステップと同様である第2の実施形態のステップは省略し、詳細には説明しない。
【0070】
このスペース画素行検出処理は、1つのテキスト行が3つ以上の文字を含む場合、テキスト行領域内の画素行ごとに、文字の少なくとも1つの文字ストロークがその画素行を通過するという1つの妥当な推論に基づく。文字ストローク幅は、多数の文字画素行から構成される領域内の語の少なくとも1つの文字ストロークの平均幅である。上記の推論及び定義は、画素行及び画素領域が共に水平方向である場合と画素行及び画素領域が共に垂直方向である場合との双方に適用可能である。水平方向である場合、文字ストロークは垂直文字ストロークになり、文字ストローク幅は垂直の文字ストロークの文字ストローク幅に対応する。垂直方向である場合、文字ストロークは水平文字ストロークになり、文字ストローク幅は水平の文字ストロークの文字ストローク幅に対応する。
【0071】
第2の実施形態のスペース画素行検出処理と第1の実施形態のスペース画素行検出処理とを種々の方法で組み合わせることができる。一例において、第2の実施形態のテキスト行分割ステップを第1の実施形態の図12A〜図12Cのいずれかに示される処理に続けて実行し、それらの処理を組み合わせてもよい。
【0072】
図14は、本発明に係る行分割方法の第2の実施形態におけるスペース画素行検出処理を示すフローチャートである。
【0073】
ステップS401において、第2の画素領域が少なくとも2つの文字を含むか否かが検査される。一般的な検査方法の1つは、第2の画素領域の幅と高さとの比を計算する方法である。この比が2より大きい場合、第2の画素領域は少なくとも2つの文字を含むとみなされ、ステップS402へ進む。そうでない場合、処理は終了し、次の第2の画素領域を待つ。
【0074】
ステップS402において、検出されるべき画素行の前の隣接するすべての検出済み文字画素行が1つの文字行領域にマージされる。
【0075】
ステップS403において、この文字行領域の文字ストローク幅が推定される。ステップS403の処理については以下に詳細に説明する。
【0076】
ステップS404において、検出されるべき画素行はいくつかの小部分に分割され、それらいくつかの小部分の中から最大の黒画素カウントを有する小部分が検索される。
【0077】
ステップS405において、最大の黒画素カウントと文字ストローク幅とを比較することにより、検出されるべき画素行がスペース画素行であるか否かが検出される。例えば、最大の黒画素カウントが文字ストローク幅未満であるか否かを検査し、文字ストローク幅未満であれば、検出されるべき画素行は1つのスペース画素行である。文字ストローク幅未満ではない場合、少なくとも1つの文字ストロークが画素行を通過していると考えられるので、画素行は文字画素行になる。
【0078】
これにより、第2の実施形態のスペース画素行検出方法によりスペース画素行を検出でき、その後、スペース画素行は画素領域の行分割に使用される。
【0079】
次に、文字ストローク幅の推定方法を詳細に説明する。
【0080】
文字ストローク幅は2つの方法により推定可能である。第1の方法は、マージ後の文字行領域の高さと文字ストローク幅との関係に基づき、文字ストローク幅の第1の推定値を取得する。第2の方法は、隣接するマージ済み文字行領域における黒画素分布を解析することにより文字ストローク幅を動的に取得するために使用され、文字ストローク幅の第2の推定値を取得する。この2つの方法に基づき、第1の推定値及び第2の推定値のうち小さいほうの値が文字ストローク幅とみなされる。
【0081】
第1の推定方法において、マージ後の文字行領域中の文字の文字ストローク幅の第1の推定値は、マージ後の文字行領域の高さのみに従って推定される。第1の推定方法は、文字ストローク幅は文字高さの10分の1を超え且つ文字高さと文字行領域の高さとの差は小さいという仮定に基づく。
【0082】
第1の推定値は、以下の式(1)により得られる。
式中、StrokeWidth1は文字ストローク幅の第1の推定値であり、HeightCharacterLineRegionはマージ後の文字行領域の高さである。
【0083】
第2の推定方法において、マージ後の文字行領域中の文字の文字ストローク幅の第2の推定値は、文字行領域の黒画素分布に従って推定される。
【0084】
第2の推定値は、以下の式(2)により得られる。
式中、StrokeWidth2は文字ストローク幅の第2の推定値であり、BlackPixelCountCharacterLineRegionはマージ後の文字行領域における黒画素カウントであり、WidthCharacterLineRegionはマージ後の文字行領域の幅である。
【0085】
式(2)は、以下の演繹から得られる。
【0086】
文字行領域の黒画素カウントは、以下の式(3)により計算できる。
式中、CharacterAmountCharacterLineRegionはマージ後の文字行領域中の文字量を表し、StrokeWidthは文字ストローク幅を表す。
式中、AverageStrokeAmountCharacterは1文字中の平均ストローク量であり、これは、文字行領域が水平方向である場合は1文字中の平均垂直ストローク量に対応し、文字行領域が垂直方向である場合は1文字中の平均水平ストローク量に対応する。AverageStrokeAmountCharacterは、文書の言語に従って操作者により設定可能である。
【0087】
文字行領域中の文字量は、以下の式により得られると考える。
また、1文字中の平均ストローク量は、例えば以下の通りである。
そこで、文字行領域の黒画素カウント計算式は次の通りとなる。
そして、式(6)から式(2)を導出できる。
【0088】
以上の説明では、第2の実施形態の処理は、第2の画素領域、すなわち空白領域が除去された画素領域に基づいてスペース画素行の検出を実行するが、本発明はそれに限定されない。言い換えると、空白領域の除去は、第2の実施形態の処理に不可欠ではなく、従って、第2の実施形態の処理により実現される効果に大きな影響を与えない。第1の画素領域中の画素領域から空白領域が除去されず、空白領域が除去されていない画素領域に基づいて第2の実施形態の処理で検出を実行したとしても、第2の実施形態の処理は、画素領域を相対的に正確に検出し、それにより画素領域を分割することができる。
【0089】
[有利な効果]
第2の実施形態の方法は、先に説明したタイトル行のような文書画像に加えて、少なくとも、ノイズが含まれる文書画像、特に、ノイズが存在し、点在しているような文書画像にも有効且つ正確に適用可能であり、それにより、そのような文書画像の行分割の性能を向上できる。
【0090】
図15A〜図15Cは、従来の技術と本発明の第2の実施形態とによりそれぞれ実現されたノイズが存在し、点在している文書画像の行分割の結果の比較を概略的に示す。これらの図において、確認済みノイズ画素行は、第2の実施形態の処理により検出されたスペース画素行である。
【0091】
図15Aに示されるように、文書画像は少なくとも2つのテキスト行を含み、分割されるべきであるが、従来の方法では、この文書画像を分割できないことがわかる。これに対し、本発明の方法によれば、図15B及び図15Cに示されるように、文書画像中のスペース画素行、すなわち確認済みノイズ画素行を正確に検出可能であり、文書画像は、文書画像中のノイズにより影響を受けることなくスペース画素行に沿って適切に分割される。
【0092】
[第3の実施形態]
図16A〜図21Cを参照して、本発明に係る行分割方法の第3の実施形態を以下に詳細に説明する。第3の実施形態は、テキスト行分割ステップを除いて第1の実施形態及び第2の実施形態のいずれともほぼ同一である。テキスト行分割ステップには、先に検出された文字画素行を利用して、検出済みスペース画素行が最終スペース画素行であるか否かを判定する判定ステップが更に含まれる。第3の実施形態のステップのうち、第1の実施形態及び第2の実施形態のステップと同様のステップは省略し、詳細には説明しない。
【0093】
判定ステップは、テキストブロック中の2つの隣接テキスト行が相当に異なる長さを有する場合、すなわち一方のテキスト行の長さが隣接する別のテキスト行の長さと相当に異なる場合の従来の方法の欠陥に対処することを目的とする。
【0094】
ここで、2つの場合が考えられる。一つ(第1のケース)は、上から下に向かって1つの画素領域中の第1のテキスト行が短く、第2のテキスト行は長い場合である。画素領域中の空白領域を検出するのが困難であり且つテキスト行幅、画素行の黒画素カウント並びに連続白画素シーケンス長さは誤って計算されるので、図16Aに示されるように、第1のテキスト行中の下部のいくつかの画素行が誤ってスペース画素行とみなされてしまい、その結果、画素領域は誤って分割されることになる。もう1つ(第2のケース)は、上から下に向かって1つの画素領域中の第1のテキスト行が長く、第2のテキスト行は短い場合である。空白領域を検出するのが困難であり且つテキスト行幅、画素行の黒画素カウント並びに連続白画素シーケンス長さは誤って計算されるので、図16Bに示されるように、第2のテキスト行中の上部のいくつかの画素行が誤ってスペース画素行とみなされてしまい、その結果、画素領域は誤って分割されることになる。
【0095】
第3の実施形態の判定ステップは、第2の画素領域中の1つ以上の検出済みスペース画素行の前の隣接する1つ以上の隣接文字画素行を利用することにより、1つ以上の検出済みスペース画素行から1つ以上の最終スペース画素行を判定することから成り、その後、判定された1つ以上の最終スペース画素行に基づいてテキスト行分割が実行される。一例において、判定ステップは、検出済みスペース画素行の黒画素分布並びに連続白画素分布と、すべての隣接文字画素行との関係を解析することにより実現される。このステップについては以下に説明する。
【0096】
第3の実施形態の判定処理を、第1の実施形態又は第2の実施形態のいずれかの処理と多様な方法で組み合わせることができる。一例において、第3の実施形態の判定ステップは、第1の実施形態及び第2の実施形態のそれぞれのテキスト行分割ステップの処理のいずれか、すなわち図12A〜図12Cの処理又は図14の処理のいずれかの後に組み合わされてもよい。
【0097】
図17を参照して、第3の実施形態の判定ステップを以下に詳細に説明する。
【0098】
ステップS701(以下、マージステップと呼ばれる)において、1つ以上の隣接する検出済み文字画素行は、1つの文字行領域(以下、第2の文字行領域と呼ばれる)にマージされる。
【0099】
ステップS702(以下、第1の判定ステップと呼ばれる)において、空白領域が除去された文字行領域(以下、第3の文字行領域と呼ばれる)が第2の文字行領域から取得され、第3の文字行領域は、1つ以上の検出済みスペース画素行の各スペース画素行が第2のスペース画素行であるか否かを判定するために利用される。
【0100】
ステップS703(以下、第2の判定ステップと呼ばれる)において、第1の判定ステップで判定された第2のスペース画素行が最終スペース画素行であるか否かが判定される。
【0101】
図18は、第3の実施形態の第1の判定ステップの処理を示すフローチャートである。第1の判定ステップは、上記の2つのケースに適用可能であるが、第1のケースに適用されるのが好ましい。
【0102】
ステップS801において、第2の文字行領域中の空白領域を検出し且つ第2の文字行領域から空白領域を除去することにより、第3の文字行領域が取得される。残った文字行領域は、第3の文字行領域を構成すると考えられる。
【0103】
第2の文字行領域をいくつかの部分領域に分割し且つ各部分領域の黒画素カウントとその面積との比を計算することにより空白領域を検出する方法、図8に示される方法と同様に、文字行領域中の連続白画素シーケンス間の共通重複部分を利用することにより空白領域を検出する方法、図10A及び図10Bに対応する方法と同様に、それら2つの方法の組み合わせを使用することにより空白領域を検出する方法などの多様な方法で、空白領域の検出を実現可能である。従って、文字行領域における空白領域の検出は詳細に説明されない。
【0104】
ステップS802において、第2のスペース画素行を判定するために、第3の文字行領域が利用される。第2のスペース画素行の判定は、多様な方法で実現可能である。
【0105】
一例において、スペース画素行が第2の画素行であるか否かを判定するために、第3の文字行領域のパラメータ並びに判定されるべきスペース画素行の対応するパラメータを使用できる。
【0106】
第3の文字行領域のパラメータは、例えば第3の文字行領域の幅を含む。第3の文字行領域の幅は、その領域に含まれる文字部分領域の幅の和を計算することにより取得される。
【0107】
スペース画素行の対応するパラメータは、第3の文字行領域に対応する一部分におけるスペース画素行のパラメータであり、例えばその部分のスペース画素行の黒画素カウント及びその部分のスペース画素行の連続白画素シーケンス長さ統計値を含む。図19に示されるように、連続白画素シーケンス長さ統計値は、その部分のスペース画素行の最長の連続白画素シーケンスの長さ、あるいはその部分のスペース画素行の最長の連続白画素シーケンスの長さと2番目に長い連続白画素シーケンス長さとの和である。
【0108】
スペース画素行の一部と第3の文字行領域との対応は、通常、テキスト行に対して垂直な方向の対応を意味する。更に詳細には、第3の文字行領域に対応するスペース画素行の部分は、第3の文字行領域と等しい幅を有し且つ水平方向の縁部が水平方向に第3の文字行領域の縁部と整列しているスペース画素行の一部分を表す。特に、第3の行領域がいくつかの文字部分領域から構成される場合、スペース画素行のその部分は、テキスト行に対して垂直な方向に第3の文字行領域のいくつかの文字部分領域の各々とそれぞれ対応するいくつかの小部分を含む。
【0109】
第3の文字行領域のパラメータ及び判定されるべきスペース画素行のパラメータを使用して、図12A〜図12Cに示される処理と同様に、第2のスペース画素行を多様な方法で判定できる。そのため、ここではステップS802の処理を省略し、詳細には説明しない。
【0110】
図20を参照して、第2の判定ステップの処理を以下に説明する。第2の判定ステップも上記の2つのケースに適用可能であるが、第2のケースに適用されるのが好ましい。
【0111】
第2の判定ステップにおいて、第2のスペース画素行は、いくつかの小部分に分割され、それらの小部分における黒画素カウントを1つの推定黒画素カウント上限と比較することにより、第2のスペース画素行が最終スペース画素行(確認済みスペース画素行とも呼ばれる)であるか否かが判定される。推定黒画素カウント上限は、第3の文字行領域中の対応する部分領域における黒画素カウントの平均値である。第2の判定ステップは、1つの妥当な推論に基づく。すなわち、現在の第2のスペース画素行が文字画素行である場合、画素行の小部分の黒画素カウントのうち少なくとも1つの黒画素カウントは、文字画素行領域中の対応する部分領域における平均黒画素カウントより大きくなるという推論である。
【0112】
図20は、第3の実施形態の第2の判定ステップの処理を示すフローチャートである。
【0113】
ステップS1001において、第3の文字行領域はいくつかの部分領域に分割され、それに対応して、判定されるべき第2のスペース画素行はいくつかの小部分に分割される。
【0114】
ステップS1002において、判定されるべき第2のスペース画素行のいくつかの小部分の黒画素カウントの中で最大の黒画素カウントを有する1つの小部分が選択される。
【0115】
ステップS1003において、選択された最大黒画素カウントと選択された小部分に対応する第3の文字行領域中の部分領域から導出できる上限(黒画素カウント上限とも呼ばれる)とを比較することにより、第2のスペース画素行が最終スペース画素行であるか否かが判定される。この部分領域は、小部分と同一の幅を有する。最大黒画素カウントが黒画素カウント上限より小さい場合、第2のスペース画素行は最終スペース画素行である。
【0116】
小部分の黒画素カウント上限は、次の式(7)により計算できる。
式中、WidthSubRegionは、その小部分に対応する第3の文字行領域中の部分領域の幅である。
【0117】
式(7)は、以下の演繹から得られる。
【0118】
第2のスペース画素行が最終スペース画素行である場合、小部分の黒画素カウントは、以下より小さくなるべきである。
式中、CharacterAmountSubRegionは第3の文字行領域中の部分領域における文字量を表す。
式中、AverageStrokeAmountCharacterは1文字中の平均ストローク量であり、これは、第3の文字行領域が水平方向である場合は1文字中の平均垂直ストローク量に対応し、第3の文字行領域が垂直方向である場合は1文字中の平均水平ストローク量に対応する。AverageStrokeAmountCharacterは、文書の言語に従って操作者が設定可能である。
【0119】
部分領域中の文字量が、式(9)により得られ、1文字中の平均ストローク量が式(10)により得られることを考慮する。
その文字のストローク幅は、以下により推定できる。
このように、小部分の黒画素カウント上限の計算式を上記の式のように簡単にすることができる。
【0120】
あるいは、現在の第2のスペース画素行が最終スペース画素行であるか否かを判定するために、現在の第2のスペース画素行に加えて、現在の第2のスペース画素行の直前の第2のスペース画素行及び次の第2のスペース画素行も使用できる。更に詳細には、直前の第2のスペース画素行及び次の第2のスペース画素行の小部分における最大黒画素カウントが対応する上限より共に小さいか否かが判定される。共に小さければ、現在の第2のスペース画素行は、テキスト行間のスペース領域に属しているはずであるので、最終スペース画素行とラベル付けされる。
【0121】
以上の説明の中で、第3の実施形態の処理は、空白領域が除去された第2の画素領域及び第3の文字行領域に基づいて最終スペース画素行の判定を実行していたが、本発明は、これに限定されない。言い換えると、空白領域の除去は、第3の実施形態の処理には不可欠ではなく、従って第3の実施形態の処理により実現される効果に大きな影響を与えない。第2の画素領域及び第3の文字行領域に空白領域がまだ残っていたとしても、第3の実施形態の処理は、画素領域を相対的に正確に検出し且つ分割することができる。
【0122】
更に、第3の実施形態における処理の順序は単なる例であり、他の順序も利用可能である。例えば、第1の判定ステップと第2の判定ステップの順序を入れ替えてもよく、第1の判定ステップの前に第2の判定ステップを実行することも可能である。この場合、検出済みスペース画素行が第2のスペース画素行であるか否かを判定するために、検出済みスペース画素行は、まず、図20に示される処理のように第2の判定ステップにより処理される。次に、最終スペース画素行を判定するために、図17及び図18に示される処理のように、第2のスペース画素行は、第1の判定ステップにより処理されることになるだろう。この処理は、実行可能な空白領域の除去を含まなくてもよい。
【0123】
[有利な効果]
以上説明したタイトル行のような文書画像又はノイズが点在している文書画像のような文書画像の他にも、第3の実施形態の方法は、複雑なレイアウトを有する文書画像、特にテキストブロック中の2つの隣接テキスト行が相当に異なる長さを有する文書画像に有効且つ正確に適用可能であり、それによりそのような文書画像の行分割の性能を向上できる。
【0124】
図21A〜図21Cは、テキストブロック中の2つの隣接テキスト行が相当に異なる長さを有する文書画像に関して、従来の技術と、第3の実施形態の方法とによりそれぞれ実現された行分割の結果の比較を概略的に示す。これらの図において、確認済みノイズ画素行は、第3の実施形態の方法により判定された最終スペース画素行に対応する。
【0125】
このような文書画像では、従来の方法を使用した場合、図21A及び図21Bに示されるように、短いテキスト行は誤って分割されてしまうことがわかる。これに対し、第3の実施形態の処理を利用することにより、図21Cに示されるように、文書画像から3つのテキスト行が正確に分割される。
【0126】
更に、先に説明した第1の実施形態から第3の実施形態により実現される有利な効果を考慮すると、複雑なレイアウトを有するのに加えてノイズが存在し、点在している文書画像も、第3の実施形態の方法を利用することにより有効且つ正確に分割できる。
【0127】
[実施例1]
本発明の方法を理解しやすくするために、図22A〜図22Eを参照して実施例1を説明する。実施例1において、第1の実施形態から第3の実施形態の方法を利用することにより、複雑なレイアウトを有し且つノイズが点在している文書画像が行分割される。
【0128】
図22Aに示されるように、元の文書画像は、第1のテキスト行が第2のテキスト行より相当に短いという複雑なレイアウトを有し且つノイズが点在している画像である。
【0129】
図22Bに示されるように、まず元の文書画像中のスペース画素行を発見するために、第1の実施形態及び第2の実施形態の方法を利用することにより文書画像が検出される。図22Bのノイズ画素行仮定は、検出済みスペース画素行に対応する。
【0130】
図22Cに示されるように、文書画像中の検出済みスペース画素行は、第3の実施形態の第1の判定ステップを利用することにより判定される。図22Cのノイズ画素行仮定は、判定された第2のスペース画素行に対応する。
【0131】
図22Dに示されるように、第3の実施形態の第2の判定ステップを利用することにより、最終スペース画素行が発見される。図22Dの確認済みノイズ画素行仮定は、判定された最終スペース画素行に対応する。
【0132】
図22Eに示されるように、判定された最終スペース画素行に沿って、文書画像を2つのテキスト行に正確に分割できる。
【0133】
図23は、各モジュール手段から構成された文書画像の行分割システムの一般的な構成を示すブロック図である。
【0134】
図23に示されるように、行分割システム200は、少なくとも1つの画素領域を含む第1の画素領域を取得するためにテキストブロックを分割する第1の分割ユニット201と、第1の画素領域中の各画素領域から空白領域を検出し且つ空白領域を除去することにより対応する第2の画素領域を取得する空白領域除去ユニット202と、第1の画素領域中の画素領域ごとに、対応する第2の画素領域を利用することによりテキスト行の分割を実行するテキスト行分割ユニット203とを備える。
【0135】
空白領域除去ユニット202は、第1の領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を画素領域中の空白領域として検出する空白領域検出ユニット202−1と、画素領域から空白領域を除去することにより対応する第2の画素領域を取得する除去ユニット202−2とを備えるのが好ましい。
【0136】
テキスト行分割ユニット203は、第2の画素領域中の画素行における黒画素カウントと第2の画素領域の幅との比を利用することにより、画素行が文字画素行であるか又はスペース画素行であるかを検出する黒画素カウント検出ユニット203−1を備えるのが好ましく、テキスト行分割ユニット203は、画素行における連続白画素シーケンス長さ統計値と第2の画素領域の幅との比を利用することにより、画素行が文字画素行であるか又はスペース画素行であるかを検出する白画素シーケンス検出ユニット203−2を更に備えるのが好ましい。
【0137】
テキスト行分割ユニット203は、直前の検出済み文字画素行に関連する文字ストローク幅を利用することにより、画素行がスペース画素行であるか否かを検出する文字ストローク幅検出ユニット203−3を更に備えるのが好ましい。文字ストローク幅検出ユニット203−3は、検出されるべき画素行の前の隣接するすべての検出済み文字画素行を1つの文字行領域としてマージするマージユニット203−31と、文字行領域の文字ストローク幅を推定する推定ユニット203−32と、検出されるべき画素行をいくつかの小部分に分割し且ついくつかの小部分の中から最大の黒画素カウントを有する小部分を検索する検索ユニット203−33と、スペース画素行を検出するために、最大の黒画素カウントと文字ストローク幅とを比較する比較ユニット203−34とを備えるのが好ましい。
【0138】
テキスト行分割ユニット203は、第2の画素領域中の1つ以上の検出済みスペース画素行の前の隣接する1つ以上の隣接文字画素行を利用することにより、1つ以上の検出済みスペース画素行から1つ以上の最終スペース画素行を判定する判定ユニット203−4を更に備えるのが好ましい。判定ユニット203−4は、1つ以上の隣接文字画素行を第2の文字行領域としてマージするマージユニット203−41と、1つ以上の検出済みスペース画素行の各スペース画素行が第2のスペース画素行であるか否かを判定する第1の判定ユニット203−42と、第2のスペース画素行から最終スペース画素行を判定する第2の判定ユニット203−43とを備えるのが好ましい。
【0139】
第1の判定ユニット203−42は、空白領域を検出し且つ第2の文字行領域から空白領域を除去することにより、第2の文字行領域から第3の文字行領域を取得する文字行領域取得ユニット203−421と、第3の文字行領域に対応する部分におけるスペース画素行の黒画素カウントと第3の文字行領域の幅との比を利用することにより、スペース画素行が第2のスペース画素行であるか否かを判定する黒画素カウント判定ユニット203−422とを備えるのが好ましく、第1の判定ユニット203−42は、第3の文字行領域に対応する部分におけるスペース画素行の連続白画素シーケンス長さ統計値と第3の文字行領域の幅との比を利用することにより、スペース画素行が第2のスペース画素行であるか否かを判定する白画素シーケンス判定ユニット203−423を更に備えるのが好ましい。
【0140】
第2の判定ユニット203−43は、第3の文字行領域をいくつかの部分領域に分割し且つそれに対応して第2のスペース画素行をいくつかの小部分に分割する分割ユニット203−431と、第2のスペース画素行中のいくつかの小部分の中から最大の黒画素カウントを有する小部分を選択する選択ユニット203−432と、最大の黒画素カウントを有する小部分に関して上限(黒画素カウント上限とも呼ばれる)を計算する上限計算ユニット203−433と、最終スペース画素行を判定するために最大の黒画素カウントと上限とを比較する比較ユニット203−434とを備えるのが好ましい。
【0141】
上記の各手段は、先に説明した処理を実現するための好適なモジュールの例である。種々のステップを実現するモジュールのすべてがここに挙げられているわけではない。しかし、ある特定の処理を実行するステップがある場合、それと同一の処理を実現するための対応する機能モジュール又は手段が存在する。
【0142】
本発明の方法及びシステムを多様な方法で実現可能である。例えば、本発明の方法及びシステムをソフトウェア、ハードウェア、ファームウェア又はそれらの何らかの組み合わせによって実現可能である。方法のステップに関して先に説明された実行の順序は単なる例であり、特に指示のない限り、本発明の方法のステップは、先に特定して説明した順序に限定されない。更に、いくつかの実施形態において、本発明は、本発明に係る方法を実現するための機械可読命令を含めて、記録媒体に記録されたプログラムとして実現されてもよい。従って、本発明は、本発明に係る方法を実現するためのプログラムを記憶する記録媒体を更に含む。
【0143】
本発明のいくつかの特定の実施形態を例によって詳細に説明したが、上記の例は単に例示を目的としており、本発明の範囲を限定することを意図しないことは当業者には理解されるべきである。本発明の趣旨の範囲から逸脱することなく上述の実施形態を変形できることは当業者には理解されるべきである。本発明の範囲は、添付の特許請求の範囲により定義される。
【特許請求の範囲】
【請求項1】
文書画像中のテキストブロックの行分割を実行する方法であって、
前記テキストブロックを分割して少なくとも1つの画素領域を含む第1の画素領域を取得する第1の分割ステップと、
前記第1の画素領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を空白領域として検出し、前記第1の画素領域の前記画素領域から前記空白領域を除去して第2の画素領域を取得する空白領域除去ステップと、
前記第2の画素領域を利用して前記テキスト行分割を実行するテキスト行分割ステップと、
を有することを特徴とする方法。
【請求項2】
前記共通重複部分は、
すべての前記連続白画素シーケンスをその長さに従って順序付けし、
最長の連続白画素シーケンスから開始して、次に続く連続白画素シーケンスの各々を順次重ね合わせることにより、所定の数の前記連続白画素シーケンスが共通して占める空白部分により判定される前記共通重複部分を生成することによって検出されることを特徴とする請求項1に記載の方法。
【請求項3】
前記テキスト行分割ステップは、
前記第1の画素領域の各画素領域の各画素行に関して、前記第2の画素領域中の画素行の黒画素カウントと前記第2の画素領域の幅との比を利用することにより、その画素行が文字画素行であるか又はスペース画素行であるかを検出するステップ
を更に有することを特徴とする請求項2に記載の方法。
【請求項4】
前記テキスト行分割ステップは、
前記第1の画素領域の各画素領域の各画素行に関して、その画素行の連続白画素シーケンス長さ統計値と前記第2の画素領域の幅との比を利用することにより、その画素行が文字画素行であるか又はスペース画素行であるかを検出するステップを更に有し、
前記連続白画素シーケンス長さ統計値は、前記第2の画素領域中の画素行の最長の連続白画素シーケンスの長さであるか、あるいは前記第2の画素領域の画素行の前記最長の連続白画素シーケンスの長さと2番目に長い連続白画素シーケンスの長さとの和であることを特徴とする請求項2又は3に記載の方法。
【請求項5】
前記テキスト行分割ステップは、
検出されるべき画素行の前の隣接するすべての検出済み文字画素行を1つの文字行領域にマージするステップと、
前記文字行領域における文字ストローク幅を推定するステップと、
前記検出されるべき画素行をいくつかの小部分に分割し、前記いくつかの小部分の中から最大の黒画素カウントを有する小部分を検索するステップと、
前記最大黒画素カウントと前記文字ストローク幅とを比較することにより、前記検出されるべき画素行がスペース画素行であるか否かを検出するステップと、
を更に有することを特徴とする請求項3又は4に記載の方法。
【請求項6】
前記文字ストローク幅を推定するステップは、
前記文字行領域の高さの10分の1を前記文字ストローク幅の第1の推定値として取得するステップと、
次式を使用することにより前記文字ストローク幅の第2の推定値を取得するステップと、
式: 第2の推定値=文字行領域中の黒画素カウント/(文字行領域の幅×平均ストローク量)
前記第1の推定値と前記第2の推定値のうち小さいほうの値を前記文字ストローク幅として使用するステップと、
を更に有し、前記平均ストローク幅は、前記文書中で使用される言語によって異なる値であることを特徴とする請求項5に記載の方法。
【請求項7】
前記テキスト行分割ステップは、
前記第2の画素領域中の1つ以上の検出済みスペース画素行の前の隣接する1つ以上の隣接文字画素行を利用することにより、前記1つ以上の検出済みスペース画素行から1つ以上の最終スペース画素行を判定するステップを更に有し、
前記テキスト行分割は、前記判定された1つ以上の最終スペース画素行に基づいて実行されることを特徴とする請求項3乃至6のいずれか1項に記載の方法。
【請求項8】
前記判定するステップは、
前記1つ以上の隣接文字画素行を第2の文字行領域としてマージするステップと、
前記第2の文字行領域から第3の文字行領域を取得し且つ前記第3の文字行領域を利用することにより、前記1つ以上の検出済みスペース画素行の各スペース画素行が第2のスペース画素行であるか否かを判定する第1の判定ステップと、
前記第1の判定ステップで判定された前記第2のスペース画素行が前記最終スペース画素行であるか否かを判定する第2の判定ステップと、
を有することを特徴とする請求項7記載の方法。
【請求項9】
前記第2の文字行領域から第3の文字行領域を取得するステップは、
前記第2の文字行領域中の空白領域を検出し且つ前記第2の文字行領域から前記空白領域を除去して前記第3の文字行領域を取得するステップを有することを特徴とする請求項8記載の方法。
【請求項10】
前記第1の判定ステップは、
前記第3の文字行領域に対応する部分における前記スペース画素行中の黒画素カウントと前記第3の文字行領域の幅との比を利用することにより、前記スペース画素行が第2のスペース画素行であるか否かを判定するステップとを更に有することを特徴とする請求項9に記載の方法。
【請求項11】
前記第1の判定ステップは、
前記スペース画素行における連続白画素シーケンス長さ統計値と前記第3の文字行領域の幅との比を利用することにより、前記スペース画素行が第2のスペース画素行であるか否かを判定するステップとを更に有し、
前記連続白画素シーケンス長さ統計値は、前記第3の文字行領域に対応する部分における前記スペース画素行の最長の連続白画素シーケンスの長さ、あるいは前記第3の文字行領域に対応する部分における最長の連続白画素シーケンスと2番目に長い連続白画素シーケンスの長さとの和であることを特徴とする請求項9又は10に記載の方法。
【請求項12】
前記第2の判定ステップは、
前記第3の文字行領域をいくつかの部分領域に分割し且つそれに対応して前記第2のスペース画素行をいくつかの小部分に分割するステップと、
前記第2のスペース画素行の前記いくつかの小部分の中から最大の黒画素カウントを有する小部分を選択するステップと、
前記最大の黒画素カウントと前記小部分に対応する前記第3の文字行領域の部分領域から取得された上限とを比較することにより、前記第2のスペース画素行が最終スペース画素行であるか否かを判定するステップとを有し、
前記最大の黒画素カウントが前記上限より小さい場合、第2のスペース画素行は最終スペース画素行として判定されることを特徴とする請求項8に記載の方法。
【請求項13】
前記上限は、次式によって計算される、
上限=部分領域の文字量×平均ストローク量×文字ストローク幅
ここで、式中、部分領域の文字量は、部分領域の幅と部分領域の高さとの比を表し、
平均ストローク量は、文書中で使用される言語に基づく所定の値であり、
文字ストローク幅は、前記第3の文字行領域の幅の10分の1である
ことを特徴とする請求項12に記載の方法。
【請求項14】
前記所定の数は、前記画素領域中の画素行の数の少なくとも70%であることを特徴とする請求項2に記載の方法。
【請求項15】
前記第1の分割ステップは、画像に基づく分割方法を利用することにより実行されることを特徴とする請求項1に記載の方法。
【請求項16】
文書画像中のテキストブロックの行分割を実行するシステムであって、
前記テキストブロックを分割して少なくとも1つの画素領域を含む第1の画素領域を取得する第1の分割ユニットと、
前記第1の画素領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を空白領域として検出し、前記第1の画素領域の画素領域から前記空白領域を除去して第2の画素領域を取得する空白領域除去ユニットと、
前記第2の画素領域を利用して前記テキスト行分割を実行するテキスト行分割ユニットと、
を有することを特徴とするシステム。
【請求項17】
前記空白領域除去ユニットは、
すべての前記連続白画素シーケンスをその長さに従って順序付けし、
最長の連続白画素シーケンスから開始して、次に続く連続白画素シーケンスの各々を順次重ね合わせることにより、所定の数の前記連続白画素シーケンスが共通して占める空白部分により判定される前記共通重複部分を生成することによって、
前記共通重複部分を検出することを特徴とする請求項16に記載のシステム。
【請求項18】
前記テキスト行分割ユニットは、
前記第1の画素領域の各画素領域の各画素行に関して、前記第2の画素領域中の画素行の黒画素カウントと前記第2の画素領域の幅との比を利用することにより、その画素行が文字画素行であるか又はスペース画素行であるかを検出するように構成された黒画素カウント検出ユニット
を更に有することを特徴とする請求項17に記載のシステム。
【請求項19】
前記テキスト行分割ユニットは、
前記第1の画素領域の各画素領域の各画素行に関して、その画素行の連続白画素シーケンス長さ統計値と前記第2の画素領域の幅との比を利用することにより、その画素行が文字画素行であるか又はスペース画素行であるかを検出するように構成された白画素シーケンス検出ユニットを更に有し、
前記連続白画素シーケンス長さ統計値は、前記第2の画素領域中の画素行の最長の連続白画素シーケンスの長さ、あるいは前記第2の画素領域中の画素行の最長の連続白画素シーケンスの長さと2番目に長い連続白画素シーケンスの長さとの和であることを特徴とする請求項17又は18に記載のシステム。
【請求項20】
前記テキスト行分割ユニットは、先に検出されていた文字画素行に関連する文字ストローク幅を利用することにより、画素行がスペース画素行であるか否かを検出するように構成された文字ストローク幅検出ユニットを更に有し、当該文字ストローク幅検出ユニットは、
検出されるべき画素行の前の隣接するすべての検出済み文字画素行を1つの文字行領域としてマージするように構成されたマージユニットと、
前記文字行領域における文字ストローク幅を推定するように構成された推定ユニットと、
前記検出されるべき画素行をいくつかの小部分に分割し且つ前記いくつかの小部分の中から最大の黒画素カウントを有する小部分を検索するように構成された検索ユニットと、
前記最大黒画素カウントと前記文字ストローク幅とを比較することにより、前記検出されるべき画素行がスペース画素行であるか否かを検出するように構成された比較ユニットと、
を有することを特徴とする請求項18又は19に記載のシステム。
【請求項21】
前記推定ユニットは、
前記文字行領域の高さの10分の1を前記文字ストローク幅の第1の推定値として取得し、
次式を使用することにより前記文字ストローク幅の第2の推定値を取得し、
式:第2の推定値=文字行領域中の黒画素カウント/(文字行領域の幅×平均ストローク量)
前記第1の推定値及び前記第2の推定値のうち小さいほうの値を前記文字ストローク幅として使用することにより、
前記文字ストローク幅を推定し、
前記平均ストローク量は、前記文書中で使用される言語によって異なる値であることを特徴とする請求項20に記載のシステム。
【請求項22】
前記テキスト行分割ユニットは、
前記第2の画素領域中の前記1つ以上の検出済みスペース画素行の前の隣接する1つ以上の隣接文字画素行を利用することにより、前記1つ以上の検出済みスペース画素行から1つ以上の最終スペース画素行を判定するように構成された判定ユニットを更に有し、
前記テキスト行分割は、前記判定された1つ以上の最終スペース画素行に基づいて実行されることを特徴とする請求項18乃至21のいずれか1項に記載のシステム。
【請求項23】
前記判定ユニットは、
前記1つ以上の隣接文字画素行を第2の文字行領域としてマージするように構成されたマージユニットと、
前記第2の文字行領域から第3の文字行領域を取得し且つ前記第3の文字行領域を利用することにより、前記1つ以上の検出済みスペース画素行の各スペース画素行が第2のスペース画素行であるか否かを判定するように構成された第1の判定ユニットと、
前記第1の判定ステップで判定された前記第2のスペース画素行が前記最終スペース画素行であるか否かを判定するように構成された第2の判定ユニットと、
を有することを特徴とする請求項22に記載のシステム。
【請求項24】
前記第1の判定ユニットは、前記第2の文字行領域中の空白領域を検出し且つ前記第2の文字行領域から前記空白領域を除去して前記第3の文字行領域を取得するように構成された文字行領域取得ユニットを有することを特徴とする請求項23に記載のシステム。
【請求項25】
前記第1の判定ユニットは、
前記第3の文字行領域に対応する部分における前記スペース画素行中の黒画素カウントと前記第3の文字行領域の幅との比を利用することにより、前記スペース画素行が第2のスペース画素行であるか否かを判定するように構成された黒画素カウント判定ユニット
を更に有することを特徴とする請求項24に記載のシステム。
【請求項26】
前記第1の判定ユニットは、
前記スペース画素行における連続白画素シーケンス長さ統計値と前記第3の文字行領域の幅との比を利用することにより、前記スペース画素行が第2のスペース画素行であるか否かを判定するように構成された白画素シーケンス判定ユニットを更に有し、
前記連続白画素シーケンス長さ統計値は、前記第3の文字行領域に対応する部分におけるスペース画素行の最長の連続白画素シーケンスの長さ、あるいは前記第3の文字行領域に対応する部分におけるスペース画素行の最長の連続白画素シーケンスの長さと2番目に長い連続白画素シーケンスの長さとの和であることを特徴とする請求項24又は25に記載のシステム。
【請求項27】
前記第2の判定ユニットは、
前記第3の文字行領域をいくつかの部分領域に分割し且つそれに対応して前記第2のスペース画素行をいくつかの小部分に分割するように構成された分割ユニットと、
前記第2のスペース画素行の前記いくつかの小部分の中から最大の黒画素カウントを有する小部分を選択するように構成された選択ユニットと、
前記小部分に対応する前記第3の文字行領域中の部分領域から上限を計算するように構成された上限計算ユニットと、
前記最大の黒画素カウントと前記上限とを比較することにより、前記第2のスペース画素行が最終スペース画素行であるか否かを判定するように構成された比較ユニットとを有し、
前記最大の黒画素カウントが前記上限より小さい場合、第2のスペース画素行は最終スペース画素行として判定されることを特徴とする請求項23に記載のシステム。
【請求項28】
前記上限計算ユニットは、次式に従って前記上限を計算する、
上限=部分領域中の文字量×平均ストローク量×文字ストローク幅
ここで、式中、部分領域中の文字量は、部分領域の幅と部分領域の高さとの比を表し、
平均ストローク量は、前記文書中で使用される言語に基づく所定の値であり、
文字ストローク幅は、前記第3の文字行領域の幅の10分の1である
ことを特徴とする請求項27に記載のシステム。
【請求項29】
前記所定の数は、前記画素領域中の前記画素行の数の少なくとも70%であることを特徴とする請求項17に記載のシステム。
【請求項30】
前記第1の分割ユニットは、画像に基づく分割方法を利用することにより分割することを特徴とする請求項16に記載のシステム。
【請求項1】
文書画像中のテキストブロックの行分割を実行する方法であって、
前記テキストブロックを分割して少なくとも1つの画素領域を含む第1の画素領域を取得する第1の分割ステップと、
前記第1の画素領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を空白領域として検出し、前記第1の画素領域の前記画素領域から前記空白領域を除去して第2の画素領域を取得する空白領域除去ステップと、
前記第2の画素領域を利用して前記テキスト行分割を実行するテキスト行分割ステップと、
を有することを特徴とする方法。
【請求項2】
前記共通重複部分は、
すべての前記連続白画素シーケンスをその長さに従って順序付けし、
最長の連続白画素シーケンスから開始して、次に続く連続白画素シーケンスの各々を順次重ね合わせることにより、所定の数の前記連続白画素シーケンスが共通して占める空白部分により判定される前記共通重複部分を生成することによって検出されることを特徴とする請求項1に記載の方法。
【請求項3】
前記テキスト行分割ステップは、
前記第1の画素領域の各画素領域の各画素行に関して、前記第2の画素領域中の画素行の黒画素カウントと前記第2の画素領域の幅との比を利用することにより、その画素行が文字画素行であるか又はスペース画素行であるかを検出するステップ
を更に有することを特徴とする請求項2に記載の方法。
【請求項4】
前記テキスト行分割ステップは、
前記第1の画素領域の各画素領域の各画素行に関して、その画素行の連続白画素シーケンス長さ統計値と前記第2の画素領域の幅との比を利用することにより、その画素行が文字画素行であるか又はスペース画素行であるかを検出するステップを更に有し、
前記連続白画素シーケンス長さ統計値は、前記第2の画素領域中の画素行の最長の連続白画素シーケンスの長さであるか、あるいは前記第2の画素領域の画素行の前記最長の連続白画素シーケンスの長さと2番目に長い連続白画素シーケンスの長さとの和であることを特徴とする請求項2又は3に記載の方法。
【請求項5】
前記テキスト行分割ステップは、
検出されるべき画素行の前の隣接するすべての検出済み文字画素行を1つの文字行領域にマージするステップと、
前記文字行領域における文字ストローク幅を推定するステップと、
前記検出されるべき画素行をいくつかの小部分に分割し、前記いくつかの小部分の中から最大の黒画素カウントを有する小部分を検索するステップと、
前記最大黒画素カウントと前記文字ストローク幅とを比較することにより、前記検出されるべき画素行がスペース画素行であるか否かを検出するステップと、
を更に有することを特徴とする請求項3又は4に記載の方法。
【請求項6】
前記文字ストローク幅を推定するステップは、
前記文字行領域の高さの10分の1を前記文字ストローク幅の第1の推定値として取得するステップと、
次式を使用することにより前記文字ストローク幅の第2の推定値を取得するステップと、
式: 第2の推定値=文字行領域中の黒画素カウント/(文字行領域の幅×平均ストローク量)
前記第1の推定値と前記第2の推定値のうち小さいほうの値を前記文字ストローク幅として使用するステップと、
を更に有し、前記平均ストローク幅は、前記文書中で使用される言語によって異なる値であることを特徴とする請求項5に記載の方法。
【請求項7】
前記テキスト行分割ステップは、
前記第2の画素領域中の1つ以上の検出済みスペース画素行の前の隣接する1つ以上の隣接文字画素行を利用することにより、前記1つ以上の検出済みスペース画素行から1つ以上の最終スペース画素行を判定するステップを更に有し、
前記テキスト行分割は、前記判定された1つ以上の最終スペース画素行に基づいて実行されることを特徴とする請求項3乃至6のいずれか1項に記載の方法。
【請求項8】
前記判定するステップは、
前記1つ以上の隣接文字画素行を第2の文字行領域としてマージするステップと、
前記第2の文字行領域から第3の文字行領域を取得し且つ前記第3の文字行領域を利用することにより、前記1つ以上の検出済みスペース画素行の各スペース画素行が第2のスペース画素行であるか否かを判定する第1の判定ステップと、
前記第1の判定ステップで判定された前記第2のスペース画素行が前記最終スペース画素行であるか否かを判定する第2の判定ステップと、
を有することを特徴とする請求項7記載の方法。
【請求項9】
前記第2の文字行領域から第3の文字行領域を取得するステップは、
前記第2の文字行領域中の空白領域を検出し且つ前記第2の文字行領域から前記空白領域を除去して前記第3の文字行領域を取得するステップを有することを特徴とする請求項8記載の方法。
【請求項10】
前記第1の判定ステップは、
前記第3の文字行領域に対応する部分における前記スペース画素行中の黒画素カウントと前記第3の文字行領域の幅との比を利用することにより、前記スペース画素行が第2のスペース画素行であるか否かを判定するステップとを更に有することを特徴とする請求項9に記載の方法。
【請求項11】
前記第1の判定ステップは、
前記スペース画素行における連続白画素シーケンス長さ統計値と前記第3の文字行領域の幅との比を利用することにより、前記スペース画素行が第2のスペース画素行であるか否かを判定するステップとを更に有し、
前記連続白画素シーケンス長さ統計値は、前記第3の文字行領域に対応する部分における前記スペース画素行の最長の連続白画素シーケンスの長さ、あるいは前記第3の文字行領域に対応する部分における最長の連続白画素シーケンスと2番目に長い連続白画素シーケンスの長さとの和であることを特徴とする請求項9又は10に記載の方法。
【請求項12】
前記第2の判定ステップは、
前記第3の文字行領域をいくつかの部分領域に分割し且つそれに対応して前記第2のスペース画素行をいくつかの小部分に分割するステップと、
前記第2のスペース画素行の前記いくつかの小部分の中から最大の黒画素カウントを有する小部分を選択するステップと、
前記最大の黒画素カウントと前記小部分に対応する前記第3の文字行領域の部分領域から取得された上限とを比較することにより、前記第2のスペース画素行が最終スペース画素行であるか否かを判定するステップとを有し、
前記最大の黒画素カウントが前記上限より小さい場合、第2のスペース画素行は最終スペース画素行として判定されることを特徴とする請求項8に記載の方法。
【請求項13】
前記上限は、次式によって計算される、
上限=部分領域の文字量×平均ストローク量×文字ストローク幅
ここで、式中、部分領域の文字量は、部分領域の幅と部分領域の高さとの比を表し、
平均ストローク量は、文書中で使用される言語に基づく所定の値であり、
文字ストローク幅は、前記第3の文字行領域の幅の10分の1である
ことを特徴とする請求項12に記載の方法。
【請求項14】
前記所定の数は、前記画素領域中の画素行の数の少なくとも70%であることを特徴とする請求項2に記載の方法。
【請求項15】
前記第1の分割ステップは、画像に基づく分割方法を利用することにより実行されることを特徴とする請求項1に記載の方法。
【請求項16】
文書画像中のテキストブロックの行分割を実行するシステムであって、
前記テキストブロックを分割して少なくとも1つの画素領域を含む第1の画素領域を取得する第1の分割ユニットと、
前記第1の画素領域の各画素領域中の各々の画素行における連続白画素シーケンス間の共通重複部分を空白領域として検出し、前記第1の画素領域の画素領域から前記空白領域を除去して第2の画素領域を取得する空白領域除去ユニットと、
前記第2の画素領域を利用して前記テキスト行分割を実行するテキスト行分割ユニットと、
を有することを特徴とするシステム。
【請求項17】
前記空白領域除去ユニットは、
すべての前記連続白画素シーケンスをその長さに従って順序付けし、
最長の連続白画素シーケンスから開始して、次に続く連続白画素シーケンスの各々を順次重ね合わせることにより、所定の数の前記連続白画素シーケンスが共通して占める空白部分により判定される前記共通重複部分を生成することによって、
前記共通重複部分を検出することを特徴とする請求項16に記載のシステム。
【請求項18】
前記テキスト行分割ユニットは、
前記第1の画素領域の各画素領域の各画素行に関して、前記第2の画素領域中の画素行の黒画素カウントと前記第2の画素領域の幅との比を利用することにより、その画素行が文字画素行であるか又はスペース画素行であるかを検出するように構成された黒画素カウント検出ユニット
を更に有することを特徴とする請求項17に記載のシステム。
【請求項19】
前記テキスト行分割ユニットは、
前記第1の画素領域の各画素領域の各画素行に関して、その画素行の連続白画素シーケンス長さ統計値と前記第2の画素領域の幅との比を利用することにより、その画素行が文字画素行であるか又はスペース画素行であるかを検出するように構成された白画素シーケンス検出ユニットを更に有し、
前記連続白画素シーケンス長さ統計値は、前記第2の画素領域中の画素行の最長の連続白画素シーケンスの長さ、あるいは前記第2の画素領域中の画素行の最長の連続白画素シーケンスの長さと2番目に長い連続白画素シーケンスの長さとの和であることを特徴とする請求項17又は18に記載のシステム。
【請求項20】
前記テキスト行分割ユニットは、先に検出されていた文字画素行に関連する文字ストローク幅を利用することにより、画素行がスペース画素行であるか否かを検出するように構成された文字ストローク幅検出ユニットを更に有し、当該文字ストローク幅検出ユニットは、
検出されるべき画素行の前の隣接するすべての検出済み文字画素行を1つの文字行領域としてマージするように構成されたマージユニットと、
前記文字行領域における文字ストローク幅を推定するように構成された推定ユニットと、
前記検出されるべき画素行をいくつかの小部分に分割し且つ前記いくつかの小部分の中から最大の黒画素カウントを有する小部分を検索するように構成された検索ユニットと、
前記最大黒画素カウントと前記文字ストローク幅とを比較することにより、前記検出されるべき画素行がスペース画素行であるか否かを検出するように構成された比較ユニットと、
を有することを特徴とする請求項18又は19に記載のシステム。
【請求項21】
前記推定ユニットは、
前記文字行領域の高さの10分の1を前記文字ストローク幅の第1の推定値として取得し、
次式を使用することにより前記文字ストローク幅の第2の推定値を取得し、
式:第2の推定値=文字行領域中の黒画素カウント/(文字行領域の幅×平均ストローク量)
前記第1の推定値及び前記第2の推定値のうち小さいほうの値を前記文字ストローク幅として使用することにより、
前記文字ストローク幅を推定し、
前記平均ストローク量は、前記文書中で使用される言語によって異なる値であることを特徴とする請求項20に記載のシステム。
【請求項22】
前記テキスト行分割ユニットは、
前記第2の画素領域中の前記1つ以上の検出済みスペース画素行の前の隣接する1つ以上の隣接文字画素行を利用することにより、前記1つ以上の検出済みスペース画素行から1つ以上の最終スペース画素行を判定するように構成された判定ユニットを更に有し、
前記テキスト行分割は、前記判定された1つ以上の最終スペース画素行に基づいて実行されることを特徴とする請求項18乃至21のいずれか1項に記載のシステム。
【請求項23】
前記判定ユニットは、
前記1つ以上の隣接文字画素行を第2の文字行領域としてマージするように構成されたマージユニットと、
前記第2の文字行領域から第3の文字行領域を取得し且つ前記第3の文字行領域を利用することにより、前記1つ以上の検出済みスペース画素行の各スペース画素行が第2のスペース画素行であるか否かを判定するように構成された第1の判定ユニットと、
前記第1の判定ステップで判定された前記第2のスペース画素行が前記最終スペース画素行であるか否かを判定するように構成された第2の判定ユニットと、
を有することを特徴とする請求項22に記載のシステム。
【請求項24】
前記第1の判定ユニットは、前記第2の文字行領域中の空白領域を検出し且つ前記第2の文字行領域から前記空白領域を除去して前記第3の文字行領域を取得するように構成された文字行領域取得ユニットを有することを特徴とする請求項23に記載のシステム。
【請求項25】
前記第1の判定ユニットは、
前記第3の文字行領域に対応する部分における前記スペース画素行中の黒画素カウントと前記第3の文字行領域の幅との比を利用することにより、前記スペース画素行が第2のスペース画素行であるか否かを判定するように構成された黒画素カウント判定ユニット
を更に有することを特徴とする請求項24に記載のシステム。
【請求項26】
前記第1の判定ユニットは、
前記スペース画素行における連続白画素シーケンス長さ統計値と前記第3の文字行領域の幅との比を利用することにより、前記スペース画素行が第2のスペース画素行であるか否かを判定するように構成された白画素シーケンス判定ユニットを更に有し、
前記連続白画素シーケンス長さ統計値は、前記第3の文字行領域に対応する部分におけるスペース画素行の最長の連続白画素シーケンスの長さ、あるいは前記第3の文字行領域に対応する部分におけるスペース画素行の最長の連続白画素シーケンスの長さと2番目に長い連続白画素シーケンスの長さとの和であることを特徴とする請求項24又は25に記載のシステム。
【請求項27】
前記第2の判定ユニットは、
前記第3の文字行領域をいくつかの部分領域に分割し且つそれに対応して前記第2のスペース画素行をいくつかの小部分に分割するように構成された分割ユニットと、
前記第2のスペース画素行の前記いくつかの小部分の中から最大の黒画素カウントを有する小部分を選択するように構成された選択ユニットと、
前記小部分に対応する前記第3の文字行領域中の部分領域から上限を計算するように構成された上限計算ユニットと、
前記最大の黒画素カウントと前記上限とを比較することにより、前記第2のスペース画素行が最終スペース画素行であるか否かを判定するように構成された比較ユニットとを有し、
前記最大の黒画素カウントが前記上限より小さい場合、第2のスペース画素行は最終スペース画素行として判定されることを特徴とする請求項23に記載のシステム。
【請求項28】
前記上限計算ユニットは、次式に従って前記上限を計算する、
上限=部分領域中の文字量×平均ストローク量×文字ストローク幅
ここで、式中、部分領域中の文字量は、部分領域の幅と部分領域の高さとの比を表し、
平均ストローク量は、前記文書中で使用される言語に基づく所定の値であり、
文字ストローク幅は、前記第3の文字行領域の幅の10分の1である
ことを特徴とする請求項27に記載のシステム。
【請求項29】
前記所定の数は、前記画素領域中の前記画素行の数の少なくとも70%であることを特徴とする請求項17に記載のシステム。
【請求項30】
前記第1の分割ユニットは、画像に基づく分割方法を利用することにより分割することを特徴とする請求項16に記載のシステム。
【図1】
【図2A】
【図2B】
【図2C】
【図2D】
【図2E】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10A】
【図10B】
【図11】
【図12A】
【図12B】
【図12C】
【図13A】
【図13B】
【図14】
【図15A】
【図15B】
【図15C】
【図16A】
【図16B】
【図17】
【図18】
【図19】
【図20】
【図21A】
【図21B】
【図21C】
【図22A】
【図22B】
【図22C】
【図22D】
【図22E】
【図23】
【図2A】
【図2B】
【図2C】
【図2D】
【図2E】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10A】
【図10B】
【図11】
【図12A】
【図12B】
【図12C】
【図13A】
【図13B】
【図14】
【図15A】
【図15B】
【図15C】
【図16A】
【図16B】
【図17】
【図18】
【図19】
【図20】
【図21A】
【図21B】
【図21C】
【図22A】
【図22B】
【図22C】
【図22D】
【図22E】
【図23】
【公開番号】特開2013−101613(P2013−101613A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−243151(P2012−243151)
【出願日】平成24年11月2日(2012.11.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2012−243151(P2012−243151)
【出願日】平成24年11月2日(2012.11.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]