JP3683923B2 - 文字領域の順序付け方法 - Google Patents
文字領域の順序付け方法 Download PDFInfo
- Publication number
- JP3683923B2 JP3683923B2 JP28338894A JP28338894A JP3683923B2 JP 3683923 B2 JP3683923 B2 JP 3683923B2 JP 28338894 A JP28338894 A JP 28338894A JP 28338894 A JP28338894 A JP 28338894A JP 3683923 B2 JP3683923 B2 JP 3683923B2
- Authority
- JP
- Japan
- Prior art keywords
- order
- group
- area
- article
- separator
- 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
Links
Images
Landscapes
- Facsimile Image Signal Circuits (AREA)
- Character Input (AREA)
Description
【産業上の利用分野】
本発明は、OCR(光学的文字認識)装置、複写機、ファクシミリ等の電子装置において、特に入力画像に対して抽出された文字領域に読み順を付ける文字の順序付け方法に関するものである。
【0002】
【従来の技術】
従来の順序付けの方法として、複数に分割された文書領域の位置から縦書きの場合は右から左方向に順序を付け、上下方向に関しては、上から下方向に順序を付けていくもの等がある。
【0003】
【発明が解決しようとしている課題】
しかしながら、上述の従来技術では新聞記事等、原稿の中に複数の記事が様々な大きさかつ複雑な配置で存在する場合に、複数の記事の本文が入り組んでしまい正しく読み順を付けることができず、オペレータの手による修正等が必要となるという問題点があった。
【0004】
【課題を解決するための手段】
上記課題を解決するために、本発明の順序付け方法は、入力画像から複数の文字領域とセパレータ領域と図領域とを抽出する領域抽出ステップと、前記領域抽出ステップで抽出されたセパレータ領域と図領域とを長い順に取り出す取り出しステップと、前記取り出しステップで取り出された順に前記セパレータ領域と図領域とを分割位置として用いて前記入力画像を順次分割していくことによって、前記入力画像を複数の記事に分ける記事分離ステップと、前記記事分離ステップで分けられた複数の記事それぞれにおいて、該記事内に含まれる前記文字領域を各文字領域間の位置関係に基づいてグループ化することによって複数のグループを生成するグループ生成ステップと、前記記事分離ステップで分けられた複数の記事の順序と前記グループ生成ステップで生成された複数のグループの順序とを決定する順序決定ステップと、前記順序決定ステップで決定された各記事の順序と各グループの順序とに基づいて、前記入力画像全体における前記文字領域の順序を決定する文字領域順序決定ステップとを有する。
また、上記課題を解決するために、本発明の順序付け装置は、入力画像から複数の文字領域とセパレータ領域と図領域とを抽出する領域抽出手段と、前記領域抽出手段で抽出されたセパレータ領域と図領域とを長い順に取り出す取り出し手段と、前記取り出し手段で取り出された順に前記セパレータ領域と図領域とを分割位置として用いて前記入力画像を順次分割していくことによって、前記入力画像を複数の記事に分ける記事分離手段と、前記記事分離手段で分けられた複数の記事それぞれにおいて、該記事内に含まれる前記文字領域を各文字領域間の位置関係に基づいてグループ化することによって複数のグループを生成するグループ生成手段と、前記記事分離手段で分けられた複数の記事の順序と前記グループ生成手段で生成された複数のグループの順序とを決定する順序決定手段と、前記順序決定手段で決定された各記事の順序と各グループの順序とに基づいて、前記入力画像全体における前記文字領域の順序を決定する文字領域順序決定手段とを有する。
【0005】
【作用】
以上の構成において、新聞記事等、原稿の中に複数の記事が入り組んでいる場合でも、正しく読み順を付けることができ、修正等の手間を削減できる。
【0006】
【実施例】
図25は本実施例における装置の構成を表わすブロック図である。1001は本装置全体の処理を実行するCPUであって、ROM1002に格納されている制御プログラムに従って判断及び処理を制御する。1002はROMであり、本実施例において説明するフローチャートの制御プログラム、或いは処理に用いる予め定まっているパラメータ等のデータを記憶している。1003はRAMであり、CPU1001での処理中のデータを記憶するワーキングメモリエリアを備える。1004はスキャナであり、原稿画像を光学的に読み込む。読み込まれた画像データはRAM1003に記憶できる。1005はキーボードであり、各種コードの入力、オペレータの指示が入力できる。1006はポインティングデバイスであり、表示器1007の表示画面上の所望の位置を指示でき、また、ボタンをクリックすることにより選択、取消の指示を入力することもできる。1007は表示器であり、CRT或いは液晶表示器からなる。1008は例えばLBP、インクジェット式等のプリンタ、1009は例えばFDなどの外部記憶装置、1010はこれら各構成間でのデータの授受を行う為のデータバスである。
【0007】
(第1の実施例)
図1は、本実施例の順序付け方法を表すフローチャートである。
同図において、
▲1▼ステップS101
スキャナー1004等から画像を入力する。
【0008】
▲2▼ステップS102
次にステップS101で入力した画像の領域分割を行い、文字、セパレータ、図等の領域を画像から抽出する。このステップでの領域分割方法は、例えば特願平4−243252号公報等で示される方法がある。
ここで分割された領域情報は全てRAM1003に格納する。
【0009】
▲3▼ステップS103
次に画像から抽出された文字、セパレータ、図等の領域を階層的なグループに分ける。以下このステップS103でのグループ化について詳細に説明する。図2は、画像から抽出された領域を画像全体(ROOT)、記事、段組、同一段グループ、段落(同一行グループ)、行という6階層にグループ分けしたところを示した図である。201は階層0即ち画像全体である。202は記事1である。203は同じ階層内において更に幾つかあることを示している。階層内のグループの個数は、階層0は1個のみ、階層1〜4は1個以上、階層5は0個以上存在する。204は段組1であり、記事1(202)に属している。205は同一段グループであり、段組1(204)に属している。206は段落1であり、同一段グループ1(205)に属している。段落1は行からなるグループ階層5を持っていない。207は段落2すなわち行1、行2からなる同一行グループであり、同一段グループ1(205)に属している。208は行1であり、段落2(207)に属している。
【0010】
図3はステップS103について更に詳細なフローチャートである。
【0011】
図4は、領域分割によって抽出された文字領域、セパレータ領域、図領域、グループ化によってできた記事、段組、同一段グループ、同一行グループの一部を示している。図4において、401はスキャナー等から入力した縦書きの原稿画像である。413、443は抽出した文字領域、特に見出し領域かつ記事、同一段グループ、段落でもある。426、427は抽出した文字領域、特に見出し領域かつ行である。414、416、430、444は抽出した文字領域かつ同一段グループである。428、429は、抽出した文字領域かつ段落である。415、445、446は抽出したセパレータ領域である。425は抽出した図領域である。411、421、441はセパレータ446及び図領域425によって分割した記事領域である。412、422、442は段組である。423は同一段グループである。
【0012】
図5は、ステップS301についての詳細なフローチャートである。図6はステップS304についての詳細なフローチャートである。図7はステップS302についての詳細なフローチャートである。図8は図4の画像から抽出された領域を画像全体、記事、段組、同一段グループ、段落(同一行グループ)、行という6階層にグループ分けしたところを示した図である。図9はステップS104についての詳細なフローチャートである。図10はステップS901についての詳細なフローチャートである。図11はステップS902についての詳細なフローチャートである。図12はステップS903についての詳細なフローチャートである。図13はステップS904についての詳細なフローチャートである。図14はステップS905についての詳細なフローチャートである。図15はステップS305についての詳細なフローチャートである。図16は図4の画像から抽出された文章領域426である。図16において、1601は文字領域426の黒画素のY方向(縦方向)のヒストグラムである。1602はヒストグラム1601から求めた黒画素の幅である。
【0013】
図3のフローチャートに従って、ステップS103を説明する。
【0014】
◎ステップS301
画像全体に対してある一定割合以上の長さを持つセパレータ、図によって画像を1個以上の領域に分け、記事とする。図4及びフローチャート図5に従って詳細に説明する。まず、ステップS501では、図1の領域分割S102によって抽出されたセパレータまたは図を一つ取り出す。次に、取り出したセパレータまたは図の外接矩形の高さと幅のどちらが大きいか比較する。幅のほうが大きい場合には、ステップS503で画像全体の幅をLall、セパレータまたは図の幅をLsepとする。また、高さの方が大きい場合には、ステップS512で画像全体の高さをLall、セパレータまたは図の高さをLsepとする。ステップS504で、
Lsep÷Lall≧α…(1)
を充たすか否か判断する。ここで、αは閾値でここでは0.4とする。式(1)を充たすセパレータまたは図をステップS505で配列LONGSEPに格納する。充たさない場合はステップS506に進む。図4の例では、セパレータ415、445は式(1)を充たしていない。セパレータ446及び図領域425は式(1)を充たしているので配列LONGSEPに格納する。
【0015】
ステップS506では、すべてのセパレータまたは図を処理したか判断する。すべて処理した場合は、ステップS507に進む。また、処理していないセパレータまたは図が残っている場合は、ステップS501に戻って処理を継続する。
【0016】
ステップS507では、配列LONGSEPに格納したセパレータ、図を幅または高さの長い方を比較して長い順に並べる。
【0017】
ステップS508で、配列LONGSEPに格納したセパレータまたは図を長い順にひとつ取り出す。ステップS509で、取り出したセパレータ、図により領域を二分する。図4では、まず初めに一番長いセパレータ446によって画像401を左右に二分する。分割した領域の左側の領域が記事441である。
【0018】
次にステップS510で、配列LONGSEPに格納されたすべてのセパレータ、図に関して処理したか判断する。すべて処理した場合は、ステップS511に進む。図4の例では、図領域425に関して未処理なのでステップS508に戻る。図領域425によって先程分割してできた右側の領域を上下に分割する。そうしてできたのが記事411、421である。
【0019】
配列LONGSEPに格納されたすべてのセパレータ、図に関して処理したのでステップS511に進む。
【0020】
ステップS511では、枠や表の領域も別領域として分離する。例えば、新聞のコラムの文字や表の中の文やデータ等は、他の本文と混在することはない。よってこれらも、別の記事として扱う必要があるため、別領域として分離する。次にステップS513に進む。
【0021】
ステップS513では、分割した領域を各々記事としてID番号をつける。図4では、それぞれ記事411を記事1、記事421を記事2、記事441を記事3とし、階層0の原稿画像401から階層1の記事1、2、3が分割できる。
【0022】
◎ステップS302
領域分割で取り出した文字領域の中で一行のみからなる領域が並んでいる場合には、それらを合わせて同一行グループとし、各々の領域を行とする。図4及びフローチャート図7に従って詳細に説明する。まずステップS701で、ステップS301で分割できたうちの一つの記事を取り出す。図4及び図16の例では、記事ID2の記事421を取り出して説明する。
【0023】
次にステップS702で、記事内の文字領域の領域情報を一つRAM1003から取り出す。ステップS703で、取り出した領域のヒストグラムをとり、一行のみからなる文字領域か判定する。一行のみからなる文字領域であれば、ステップS704に進む。一行のみからなる文字領域ではない場合は、ステップS705に進む。
【0024】
取り出した文字領域が何行からなるかを調べるS703の詳細な方法を図16に従って示す。文字領域426の組方向が縦書きであることは、ステップS102の領域分割の結果から分かっている。縦書きの時は、文字領域426の黒画素の縦方向のヒストグラムを取る。横書きの時は同様に横方向のヒストグラムを取る。図16の例では、縦方向のヒストグラムを取った結果がヒストグラム1601である。ヒストグラム1601を横方向に見ることによって、黒画素の存在が連続する箇所が何か所あるか数え、それが求める行数となる。ヒストグラム1601の例では黒画素の存在が連続する箇所が1か所なので、文字領域426の行数は1行である。1行なので、ステップS704へ進む。
【0025】
ステップS704では、文字領域の組方向と同じ方向に隣り合って一行のみからなる文字領域があり、かつ間にセパレータや図がなく、文字の大きさがほぼ同じ、かつ組方向が同じで、隙間も大きくないならば同一行グループとする。図4の記事421の文字領域426の例では、ステップS703で文字領域426が一行のみからなると判定され、縦書きなので縦方向に1行のみからなる文字領域がないか捜す。文字領域427が文字領域426と縦方向に並んでいて、しかも1行のみからなっていることが分かる。また、文字領域426と文字領域427の間にセパレータや図がないことは明白である。詳しく述べると2つの文字領域が縦方向に並んでいるので、並んでいる上の領域、この場合は文字領域426の下底と、並んでいる下の領域、この場合は文字領域427の上底から構成される平行四辺形の中にセパレータまたは図の一部または全部が含まれているか調べる。横並びの時は、同様に右辺と左辺により構成される平行四辺形内にセパレータまたは図が含まれるか調べる。次に文字の大きさを調べる。図16の例で説明すると、ヒストグラム1601の幅1602を簡易的に文字の大きさとする。つまり、おおよその文字幅を文字大きさとする。ヒストグラムを取った時に黒画素の連続する領域が数カ所に分かれている時、つまり文字領域内に複数行が存在する時は、それらの幅の平均を取って文字大きさとする。本文字領域426と文字領域427の文字大きさを比較して、大きい方をCbig、小さい方をCsmallとする。
【0026】
Csmall÷Cbig≧α2…(2)
を充たせば、文字大きさが同じとする。ただし、α2は閾値でここでは0.9とする。文字領域426と文字領域427の場合は、式(2)を充たすので文字大きさが同じと判定する。次に組方向が同じか調べる。
【0027】
前述した様に文字領域426は縦書きであり、文字領域427も縦書きであるので、組方向は共に同じと判定する。
【0028】
次に隙間が大きくないか調べる。文字領域426と文字領域427の間の隙間をG、文字大きさの小さい方をCsmallとすると、
G÷Csmall≦α3…(3)
を充たせば、文字領域426と文字領域427の隙間は大きくないと判定する。ただし、α3は閾値でここでは10とする。従って、文字領域426と文字領域427を、あわせて同一行グループ424とする。また、文字領域426と文字領域427を、行と判定する。
【0029】
ステップS705では、すべての文字領域に関して処理したか判定する。すべてを処理したのであれば、ステップS706に進む。処理していない文字領域があればステップS702に戻って、同一行グループの判定を行う。文字領域428、429、430は複数行からなるので行にはならない。ステップS706では、行に各々ID番号を付ける。
【0030】
ステップS707では、すべての記事に関して処理したか判定する。すべてを処理したのであれば、ステップS302を終了してステップS303に進む。処理していない記事があればステップS701に戻って、同一行グループの判定を行う。
【0031】
◎ステップS303
ここでは、ステップS102の領域分割の結果をそのまま段落としてID番号を付ける。ただし、ステップS302で生成された同一行グループが存在すれば同様に段落とし、ID番号をつける。ステップS302で行となった領域は段落とはしない。図4の例では、文字領域426と文字領域427から生成した同一行グループ424も段落として扱う。
【0032】
◎ステップS304
ここでは、段組の一つの段となる段落を、階層3の「同一段グループ」とする。図4の例では、段落413、段落414、段落416、段落(同一行グループ)424、段落430、段落443、段落444はそれぞれ一つの領域のみで同一段グループを形成する。段落428、段落429は共に同じ同一段グループに属する。
【0033】
図6のフローチャートに従って記事2に関して説明する。ステップS601で、一つの記事を取り出す。ここでは、記事2を取り出す例を示す。ステップS602で、記事の組方向を判定する。図4の記事2の例では、記事2に属する文字領域の全てが縦書きであることはステップS102の領域分割の結果で分かっているので、記事2の組方向は縦書きであると分かる。仮に縦書きと横書きの文字領域が混在していた場合は、各々の面積を求めて大きい方の組方向とする。または、各々の個数の大きい方の組方向とする。縦書きなのでステップS603に進む。横書きの場合はステップS609に進む。
【0034】
ステップS603で、記事内の段落を高さの大きい順に並べる。ステップS604で、どの同一段グループにも属していない一つの段落を並べた順に取り出し基本同一段グループとする。ステップS605で、どの同一段グループにも属していない他の段落を並べた順に取り出し比較段落とすると共に、基本同一段グループと比較して、文字の大きさがほぼ等しく、あいだに記事の組方向と逆方向のセパレータや他の同一段グループに属する段落がなく、領域が記事の組方向と逆方向に重なっていて、隙間も余り大きく開いてないなら、比較段落を基本同一段グループと同じ同一段グループとして結合する。どの同一段グループにも属していない他の段落を比較として繰り返す。
【0035】
図4の記事2の例では、まず段落(同一行グループ)424が基本同一段グループ424となるが、文字の大きさが他の段落と違うため、単独で同一段グループを形成する。次に段落428が基本段落となる。比較段落429とのあいだで、式(2)を充たし、文字の大きさが等しいと判定する。また、間に記事の組方向と逆方向(つまり横方向)のセパレータや他の同一段グループに属する段落もない。判定の仕方は、ステップS704で述べた方法と同じである。次に基本同一段グループと比較段落の記事の組方向と逆方向(つまり横方向)の重なり具合を判定する。基本段落と比較段落の高さ(横書きの時は幅)の小さい方をHsmall、横方向に重なっている長さをKとすると、
K÷Hsmall≧α4…(4)
を充たせば、重なっていると判定する。ただし、α4は閾値でここでは0.8とする。基本同一段グループ428と比較段落429は式(4)を充たす。次に隙間を調べる。基本同一段グループ428と比較段落429の間の隙間は式(3)を充たすので隙間は大きくないと判定する。よって比較段落429を基本同一段グループ428と同じ同一段グループとし結合して一つの基本同一段グループとする。同様に、段落430を比較段落として調べる。領域が横方向に式(4)を充たさないので同一段グループとはしない。故に、段落428と段落429のみが同一段落となり、合わせて階層3の同一段グループ423を作る。
【0036】
ステップS606で全ての段落がいずれかの同一段グループに属したか調べる。図4の記事2の例では、まだ段落430が残っているので、ステップS604に進む。段落430は基本同一段グループとなるが、ステップS605で比較段落がないので、段落430単独で同一段グループを形成する。全ての段落が同一段グループに属したので、ステップS607に進む。
【0037】
ステップS607では、同一段グループに各々ID番号を付ける。段落424を同一段グループ1、同一段グループ423を同一段グループ2に、段落430を同一段グループ3とする。
【0038】
ステップS608で、全ての記事を処理したか判定する。全ての記事を処理したらステップS304を終了し、ステップS305に進む。処理していない記事が残っていればステップS601に戻って処理を続ける。
【0039】
◎ステップS305
ここでは、同じ段組となる同一段グループをまとめて階層2の「段組」とする。図4の記事411、記事421の例では、同一段グループ413、424、443はそれぞれ一つの同一段グループのみで段組を形成する。同一段グループ414、416は段組412を形成する。同様に記事2では、同一段グループ423、430は段組422を形成する。
【0040】
図15のフローチャートに従って記事421に関して説明する。ステップS1501で、一つの記事を取り出す。ここでは、記事421を取り出すことにする。ステップS1502で、記事の組方向を判定する。これは、ステップS602と同様である。ここでは記事の組方向は縦書きである。縦書きなのでステップS1503に進む。同様に横書きの場合はステップS1509に進む。
【0041】
ステップS1503で、記事内の同一段グループを右から順に並べる。ステップS1504で、どの段組にも属していない一つの同一段グループを並べた順に取り出し基本段組とする。ステップS1505で、どの段組にも属していない他の同一段グループを並べた順に取り出し比較同一段グループとすると共に、基本段組と比較して、文字の大きさがほぼ等しく、隣り合って領域が組方向と同じ方向に重なっていて、隙間も余り大きく開いてないなら、比較同一段グループを基本段組と同じ段組として結合する。どの段組にも属していない他の同一段グループを比較同一段グループとして繰り返す。
【0042】
図4の記事421の例では、まず同一段グループ424が基本段組424となるが、文字の大きさが他の段組と違うため、単独で基本段組を形成する。次に同一段グループ423が基本段組423となる。比較同一段グループ430とのあいだで、式(2)を充たし、文字の大きさが等しいと判定する。
【0043】
次に基本段組と比較同一段グループの記事の組方向と逆方向(つまり横方向)の重なり具合を判定する。基本段落と比較同一段グループの高さ(横書きの時は幅)の小さい方をHsmall、横方向に重なっている長さをKとすると、式(4)を充たしているので、重なっていると判定する。また隣り合っていることは明白である。調べ方は、ステップS704で述べたのと同様に、間に他の同一段グループがないか調べる。
【0044】
次に隙間を調べる。基本段組423と比較同一段グループ430の間の隙間は式(3)を充たすので隙間は大きくないと判定する。よって比較同一段グループ430を基本段組423と同じ段組として、基本段組に結合して、段組422を形成する。他に比較同一段グループとすべき同一段グループはないのでステップS1505を終了し、ステップS1506に進む。ステップS1506で全ての同一段グループがいずれかの段組に属したか調べる。全ての同一段グループが段組に属したら、ステップS1507に進む。
【0045】
ステップS1507では、段組に各々ID番号を付ける。段組424を段組1、段組422を段組2とする。
【0046】
ステップS1508で、全ての記事を処理したか判定する。全ての記事を処理したらステップS305を終了し、グループ化が完了する。処理していない記事が残っていればステップS1501に戻って処理を続ける。
【0047】
以上でステップS103を終了する。図4の例で、ステップS103でグループ化した結果を階層的に示した図が図8である。図8で、各番号は図4の番号に対応している。異なる階層で同じ番号がついているものがあるが、それは単独で一つの段落や同一段グループを構成しているためである。例えば、記事1の段組1は単独の同一段グループ1から構成されており、更に単独の段落1、即ち文字領域413から構成されているので、全て同じ番号の413となる。
【0048】
▲4▼ステップS104
グループ別に順序付けを行い、最後に画像全体に関する順序を付ける。
【0049】
以下、グループ別順序付けについて詳細に説明する。
【0050】
図9はステップS104についての詳細なフローチャートである。図10はステップS901についての詳細なフローチャートである。図11はステップS902についての詳細なフローチャートである。図12はステップS903についての詳細なフローチャートである。図13はステップS904についての詳細なフローチャートである。図14はステップS905についての詳細なフローチャートである。図17はステップS906についての詳細なフローチャートである。図9のフローチャートに従って、ステップS104を説明する。
【0051】
◎ステップS901
全て同一行グループ内の行にそれぞれ順序付けをする。図4及びフローチャート図10に従って詳細に説明する。
【0052】
ステップS1001で階層4の一つの同一行グループを取り出す。図4の例では、同一行グループは同一行グループ424のみである。
【0053】
ステップS1002で同一行グループの組方向は横書きか判定する。横書きならステップS1003へ進む。縦書きならステップS1004に進む。組方向の判定方法は、ステップS602と同様である。同一行グループ424は、縦書きの行426、行427からなるので、縦書きと判定し、ステップS1004に進む。
【0054】
ステップS1004では、同一行グループの中に含まれる階層5の行に上から順に番号をつける。行426と行427では、行426が上なので、行426、行427の順に順番を付ける。
【0055】
ステップS1005で、すべての同一行グループを処理したか判定する。全て処理していればステップS901を終了してステップS902に進む。残っていれば、ステップS1001に戻って処理を続ける。図4の例では、全て処理したのでステップS901を終了して、ステップS902に進む。
【0056】
◎ステップS902
全て同一段グループ内の段落及び同一行グループにそれぞれ順序付けをする。図4及びフローチャート図11に従って詳細に説明する。
【0057】
ステップS1101で一つの同一段グループを取り出す。図4の例では、複数の段落から構成する同一段グループは同一段グループ423のみであるので、同一段グループ423を中心に説明する。
【0058】
ステップS1102で同一段グループの組方向は横書きか判定する。横書きならステップS1103へ進む。縦書きならステップS1104に進む。組方向の判定方法は、ステップS602と同様である。同一段グループ423は、縦書きの段落428、段落429からなるので、縦書きと判定し、ステップS1104に進む。
【0059】
ステップS1104では、同一段グループの中に含まれる段落及び同一行グループに右から順に番号をつける。段落428と段落429では、段落428が右なので、段落428、段落429の順に順番を付ける。
【0060】
ステップS1105で、すべての同一段グループを処理したか判定する。全て処理していればステップS902を終了してステップS903に進む。残っていれば、ステップS1101に戻って処理を続ける。
【0061】
◎ステップS903
全ての記事内の同一段グループにそれぞれ順序付けをする。図4及びフローチャート図12に従って詳細に説明する。
【0062】
ステップS1201で一つの段組を取り出す。図4の例では、段組422に関して説明する。
【0063】
ステップS1202で段組の組方向は横書きか判定する。横書きならステップS1203へ進む。縦書きならステップS1204に進む。組方向の判定方法は、ステップS602と同様である。段組422は、縦書きの同一段グループ423、同一段グループ430からなるので、縦書きと判定し、ステップS1204に進む。
【0064】
ステップS1204では、段組の中に含まれる同一段グループを上から順に番号をつける。同一段グループ423と同一段グループ430では、同一段グループ423が上なので、同一段グループ423、同一段グループ430の順に番号を付ける。
【0065】
ステップS1205で、すべての段組を処理したか判定する。全て処理していればステップS903を終了してステップS904に進む。残っていれば、ステップS1201に戻って処理を続ける。
【0066】
◎ステップS904
全ての記事内の段組にそれぞれ順序付けをする。
【0067】
図4及びフローチャート図13に従って詳細に説明する。ステップS1301で一つの記事を取り出す。図4の例では、記事421に関して説明する。
【0068】
ステップS1302で記事の組方向は横書きか判定する。横書きならステップS1303へ進む。縦書きならステップS1304に進む。組方向の判定方法は、ステップS602と同様である。記事421は、縦書きの段組424、段組422からなるので、縦書きと判定し、ステップS1304に進む。
【0069】
ステップS1304では、記事の中に含まれる段組に右から順に番号をつける。段組424と段組422では、段組424が右なので、段組424、段組422の順に番号を付ける。
【0070】
ステップS1305で、すべての記事を処理したか判定する。全て処理していればステップS904を終了してステップS905に進む。残っていれば、ステップS1301に戻って処理を続ける。
【0071】
◎ステップS905
記事にそれぞれ順序付けをする。図4及びフローチャート図14に従って詳細に説明する。
【0072】
ステップS1401で画像全体の組方向は横書きか判定する。横書きならステップS1402へ進む。縦書きならステップS1403に進む。組方向の判定方法は、ステップS602と同様である。画像401は、縦書きの記事411、記事421、記事441からなるので、縦書きと判定し、ステップS1403に進む。
【0073】
ステップS1403では、画像全体の中に含まれる記事に右から順に番号をつけて、ステップS905を終了して、ステップS906に進む。記事411、記事421、記事441の順に順番を付ける。
【0074】
◎ステップS906
画像全体に関して全ての文字領域に全体としての順序付けをする。
【0075】
図4及びフローチャート図17に従って詳細に説明する。ステップS1701で、変数ORDERに1を代入する(初期化)。この変数値が文字領域の画像全体に関する順番となる。ステップS1702で、記事を番号の小さい順に一つ取り出す。ここで番号とは、ステップS901からステップS905で付けた各々のID番号をさす。ステップS1703で、ステップS1702で取り出した記事内の段組を番号の小さい順に一つ取り出す。ステップS1704で、ステップS1703で取り出した段組内の同一段グループを番号の小さい順に一つ取り出す。ステップS1705で、ステップS1704で取り出した同一段グループ内の段落を番号の小さい順に一つ取り出す。ステップS1706で、ステップS1705で取り出した段落は同一行グループか判定する。同一行グループであれば、ステップS1707に進む。同一行グループでなければ、ステップS1708に進む。ステップS1707で、ステップS1705で取り出した段落内の行を番号の小さい順に一つ取り出す。ステップS1709で、行に変数ORDERの順番を付け、ORDERに1加える。ステップS1710では、全ての行を処理したか判定する。全ての行を処理していればステップS1711に進む。残っていれば、ステップS1707に戻って処理を続ける。また、ステップS1708では、段落に変数ORDERの順番を付け、ORDERに1加える。ステップS1711では、すべての段落を処理したか判定する。全ての段落を処理していればステップS1712に進む。残っていれば、ステップS1705に戻って処理を続ける。ステップS1712では、全ての同一段グループを処理したか判定する。全ての同一段グループを処理していればステップS1713に進む。残っていれば、ステップS1704に戻って処理を続ける。ステップS1713では、全ての段組を処理したか判定する。全ての段組を処理していればステップS1714に進む。残っていれば、ステップS1703に戻って処理を続ける。ステップS1714では、全ての記事を処理したか判定する。全ての記事を処理していればステップS906を終了する。残っていれば、ステップS1702に戻って処理を続ける。以上でステップS104を終了する。
【0076】
(第2の実施例)
第1の実施例では、画像から抽出された領域を画像全体(ROOT)、記事、段組、同一段グループ、段落(同一行グループ)、行という6階層にグループ分けした場合について説明したが、3階層のみのグループで、内容毎に分かれる複数のグループに分割してもよい。その場合の3階層を示したのが、図18である。ここでは内容毎に分かれる複数のグループとは、図18の階層1の記事をさしている。例えば、同じ紙面内で、ある政治関係の記事が記事1となり、社説が記事2、コラムが記事3となる等である。また、段落は、図1のステップS102の領域分割の結果として画像から抽出されたすべての領域である。
【0077】
本実施例の順序付け方法を表すフローチャートは図1に示す第一の実施例と同様である。以上の説明により、前述の第一の実施例と同様の作用、効果が得られる。
【0078】
(第3の実施例)
図3のフローチャートで示す通り、図1のステップS103のグループ化に関する処理において、第1の実施例では、記事、行と同一行グループ、段落、同一段グループの順にグループ化した場合について説明したが、異なる順にグループ化してもよい。例えば、記事、同一段グループ、段組、行と同一行グループ、段落の順にグループ化してもよい。
【0079】
本実施例の順序付け方法を表すフローチャートは図1に示す第一の実施例と同様である。以上の説明により、前述の第一の実施例と同様の作用、効果が得られる。
【0080】
(第4の実施例)
図5のフローチャートで示す通り、図3のステップS301の記事のグループ化に関する処理において、第1の実施例では、ステップS504の閾値αを一定値にしていたが、図19のステップS1901に示す様に画像の幅や高さまたは面積に応じて変化させてもかまわない。例えば、画像の面積が大きな場合は閾値は小さめにするが、画像が小さくなるに従って閾値を大きくしていく等である。これによって、実際の長さは小さいが画像も小さかったことによって、分離しなくてもよいところを分離してしまうようなミスを少なくし、順序付けの精度を上げることができる。同様に式(2)〜(4)で使われている閾値も画像の大きさや階層等によって変化させてもよい。
【0081】
本実施例の順序付け方法を表すフローチャートは図1に示す第一の実施例と同様である。以上の説明により、前述の第一の実施例と同様の作用、効果が得られる。
【0082】
(第5の実施例)
図5のフローチャートで示す通り、図3のステップS301の記事のグループ化に関する処理において、第1の実施例では、画像の幅や高さまたは面積に対してある割合以上のセパレータや図等に関して領域を分離して記事を抽出していたが、短いセパレータや図であっても、セパレータまたは図と見出しの組み合わせによって領域を分離してもかまわない。
【0083】
図21のステップS2101がその処理である。図22はステップS2101を詳細に示すフローチャートである。図20は、第5の実施例説明のための図で、2001は、画像全体である。2002、2003は、記事である。2004は、セパレータである。2005は、文字領域特に見出し領域である。
【0084】
図22、図20に従って説明する。ステップS2201で、一つのセパレータまたは図を取り出す。ステップS2202で、画像全体の組方向が横書きか判定する。組方向判定の仕方は、第1の実施例で述べた通りである。横書きであれば、ステップS2203に進む。縦書きであれば、ステップS2204に進む。図20の例では、横書きであるので、ステップS2203に進む、ステップS2203では、セパレータまたは図のすぐ下に見出しがあるか判定する。見出しがあれば、ステップS2205に進む。なければステップS2206に進む。図20の例では、セパレータ2004の下に見出し2005が存在するので、ステップ2205に進む。また、同様にステップS2204では、セパレータまたは図のすぐ左に見出しがあるか判定する。見出しがあれば、ステップS2205に進む。なければステップS2206に進む。ステップS2205では、取り出したセパレータ、図により領域を二分する。図20の例では、セパレータ2004によって領域を二分し、記事2002と記事2003を生成した。ステップS2206では、全てのセパレータ、図に関して処理したか判定する。全て処理していれば、ステップS2101を終了する。残っていれば、ステップ2201に戻って処理を続ける。この処理によって、短いセパレータ等でも精度高く順序付けを行うことができる。
【0085】
本実施例の順序付け方法を表すフローチャートは図1に示す第一の実施例と同様である。以上の説明により、前述の第一の実施例と同様の作用、効果が得られる。
【0086】
(第6の実施例)
第1の実施例では、ステップS704で領域間にセパレータや図があるか調べる時に、平行四辺形を形作って、その中にセパレータや図が入るか調べたが、例えば縦方向に並んだ領域間を調べる場合に、上の領域の下底と、下の領域の上底を全部または一部含むような長方形を形作って、その中にセパレータや図が入るか調べてもよい。同様に横方向に並んだ領域間を調べる場合には、右の領域の左辺と、左の領域の右辺を全部または一部含むような長方形を形作って、その中にセパレータや図が入るか調べてもよい。図23は、縦方向に並んだ領域間を調べる場合に、上の領域の下底と、下の領域の上底を全部含むような長方形を形作った例である。図23において、2301は、上の領域である。2302は、下の領域である。2303は、上の領域の下底と、下の領域の上底を全部含むような長方形である。
【0087】
同様に図24は、縦方向に並んだ領域間を調べる場合に、上の領域の下底と、下の領域の上底を一部含むような長方形を形作った例である。図24において、2301は、上の領域である。2302は、下の領域である。2401は、上の領域の下底と、下の領域の上底を一部含むような長方形である。
【0088】
【発明の効果】
以上説明したように、本実施例によれば、新聞記事等、原稿の中に複数の記事が存在する場合でも、正しく読み順をつけることができ、修正等の手間を削減できる効果がある。
【図面の簡単な説明】
【図1】本実施例の順序付け方法を表すフローチャート。
【図2】画像を6階層にグループ分けしたところを示した図。
【図3】ステップS103についての詳細なフローチャート。
【図4】領域分割によって抽出された各領域を表す図。
【図5】ステップS301についての詳細なフローチャート。
【図6】ステップS304についての詳細なフローチャート。
【図7】ステップS302についての詳細なフローチャート。
【図8】図4の画像を6階層にグループ分けしたところを示した図。
【図9】ステップS104についての詳細なフローチャート。
【図10】ステップS901についての詳細なフローチャート。
【図11】ステップS902についての詳細なフローチャート。
【図12】ステップS903についての詳細なフローチャート。
【図13】ステップS904についての詳細なフローチャート。
【図14】ステップS905についての詳細なフローチャート。
【図15】ステップS305についての詳細なフローチャート。
【図16】図4の画像から抽出された文字領域426を表す図。
【図17】ステップS906についての詳細なフローチャート。
【図18】図4の画像を3階層にグループ分けしたところを示した図。
【図19】ステップS301についての詳細なフローチャート。
【図20】領域分割によって抽出された文字領域、セパレータ領域、グループ化によってできた記事を示す図。
【図21】ステップS301の詳細なフローチャート。
【図22】ステップS301を詳細に示すフローチャート。
【図23】上下領域を含む長方形の例示図1。
【図24】上下領域を含む長方形の例示図2。
【図25】実施例における装置の構成ブロック図。
Claims (12)
- 入力画像から複数の文字領域とセパレータ領域と図領域とを抽出する領域抽出ステップと、
前記領域抽出ステップで抽出されたセパレータ領域と図領域とを長い順に取り出す取り出しステップと、
前記取り出しステップで取り出された順に前記セパレータ領域と図領域とを分割位置として用いて前記入力画像を順次分割していくことによって、前記入力画像を複数の記事に分ける記事分離ステップと、
前記記事分離ステップで分けられた複数の記事それぞれにおいて、該記事内に含まれる前記文字領域を各文字領域間の位置関係に基づいてグループ化することによって複数のグループを生成するグループ生成ステップと、
前記記事分離ステップで分けられた複数の記事の順序と前記グループ生成ステップで生成された複数のグループの順序とを決定する順序決定ステップと、
前記順序決定ステップで決定された各記事の順序と各グループの順序とに基づいて、前記入力画像全体における前記文字領域の順序を決定する文字領域順序決定ステップと
を有することを特徴とする順序付け方法。 - 前記セパレータ領域は、該セパレータ領域の外接矩形の高さ又は幅が、前記入力画像の高さ又は幅に対して所定の閾値以上の割合を有するセパレータ領域であることを特徴とする請求項1に記載の順序付け方法。
- 前記図領域は、該図領域の外接矩形の高さ又は幅が、前記入力画像の高さ又は幅に対して所定の閾値以上の割合を有する図領域であることを特徴とする請求項1に記載の順序付け方法。
- 前記所定の閾値は、前記入力画像の幅又は高さ又は面積に応じて変化することを特徴とする請求項2又は3のいずれかに記載の順序付け方法。
- 前記グループ生成ステップでは、複数階層からなるグループを生成することを特徴とする請求項1に記載の順序付け方法。
- 前記順序決定ステップでは、組方向に従って前記記事の順序と前記グループの順序とを決定することを特徴とする請求項1に記載の順序付け方法。
- 入力画像から複数の文字領域とセパレータ領域と図領域とを抽出する領域抽出手段と、
前記領域抽出手段で抽出されたセパレータ領域と図領域とを長い順に取り出す取り出し手段と、
前記取り出し手段で取り出された順に前記セパレータ領域と図領域とを分割位置として用いて前記入力画像を順次分割していくことによって、前記入力画像を複数の記事に分ける記事分離手段と、
前記記事分離手段で分けられた複数の記事それぞれにおいて、該記事内に含まれる前記文字領域を各文字領域間の位置関係に基づいてグループ化することによって複数のグループを生成するグループ生成手段と、
前記記事分離手段で分けられた複数の記事の順序と前記グループ生成手段で生成された複数のグループの順序とを決定する順序決定手段と、
前記順序決定手段で決定された各記事の順序と各グループの順序とに基づいて、前記入力画像全体における前記文字領域の順序を決定する文字領域順序決定手段と
を有することを特徴とする順序付け装置。 - 前記セパレータ領域は、該セパレータ領域の外接矩形の高さ又は幅が、前記入力画像の高さ又は幅に対して所定の閾値以上の割合を有するセパレータ領域であることを特徴とする請求項7に記載の順序付け装置。
- 前記図領域は、該図領域の外接矩形の高さ又は幅が、前記入力画像の高さ又は幅に対して所定の閾値以上の割合を有する図領域であることを特徴とする請求項7に記載の順序付け装置。
- 前記所定の閾値は、前記入力画像の幅又は高さ又は面積に応じて変化することを特徴とする請求項8又は9のいずれかに記載の順序付け装置。
- 前記グループ生成手段は、複数階層からなるグループに分けることを特徴とする請求項7に記載の順序付け装置。
- 前記順序決定手段は、該各グループの組方向に従って該文字領域の順序を決定することを特徴とする請求項10に記載の順序付け装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28338894A JP3683923B2 (ja) | 1994-11-17 | 1994-11-17 | 文字領域の順序付け方法 |
US08/558,184 US5689342A (en) | 1994-11-17 | 1995-11-15 | Image processing method and apparatus which orders text areas which have been extracted from an image |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28338894A JP3683923B2 (ja) | 1994-11-17 | 1994-11-17 | 文字領域の順序付け方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08147410A JPH08147410A (ja) | 1996-06-07 |
JP3683923B2 true JP3683923B2 (ja) | 2005-08-17 |
Family
ID=17664878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28338894A Expired - Fee Related JP3683923B2 (ja) | 1994-11-17 | 1994-11-17 | 文字領域の順序付け方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3683923B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5950700B2 (ja) | 2012-06-06 | 2016-07-13 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
CN109934210B (zh) * | 2019-05-17 | 2019-08-09 | 上海肇观电子科技有限公司 | 版面分析方法、阅读辅助设备、电路和介质 |
CN111832476A (zh) * | 2020-07-13 | 2020-10-27 | 上海肇观电子科技有限公司 | 版面分析方法、阅读辅助设备、电路和介质 |
US11367296B2 (en) | 2020-07-13 | 2022-06-21 | NextVPU (Shanghai) Co., Ltd. | Layout analysis |
-
1994
- 1994-11-17 JP JP28338894A patent/JP3683923B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08147410A (ja) | 1996-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5701500A (en) | Document processor | |
JP4405831B2 (ja) | 画像処理装置及びその制御方法、プログラム | |
KR960012778B1 (ko) | 조판의 전산화 방법 및 시스템 | |
US5689342A (en) | Image processing method and apparatus which orders text areas which have been extracted from an image | |
JP4856925B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
JP4181892B2 (ja) | 画像処理方法 | |
JP4371965B2 (ja) | 画像処理装置、画像処理方法 | |
EP0654746B1 (en) | Form identification and processing system | |
JP3940491B2 (ja) | 文書処理装置および文書処理方法 | |
JP4920928B2 (ja) | 画像処理装置及びその制御方法、プログラム | |
JP4546291B2 (ja) | 画像処理装置およびその制御方法 | |
EP1473642A2 (en) | Information processing apparatus, method, storage medium and program | |
US20120250048A1 (en) | Image processing apparatus and image processing method | |
US20050210371A1 (en) | Method and system for creating a table version of a document | |
US6163623A (en) | Method and apparatus for recognizing images of documents and storing different types of information in different files | |
JP2007109200A (ja) | 表示装置、表示方法および表示プログラム | |
JP2006268352A (ja) | 画像処理装置およびその方法 | |
EP2711897B1 (en) | Panoptic visualization document differencing | |
JP3178483B2 (ja) | 文書処理装置 | |
JP3683923B2 (ja) | 文字領域の順序付け方法 | |
US20120229860A1 (en) | Information processing apparatus, method for controlling same, and storage medium on which computer program has been recorded | |
JP2006221569A (ja) | 文書処理システム、文書処理方法、プログラムおよび記憶媒体 | |
CN103853849B (zh) | 高压缩可回流文件的建立和绘制方法 | |
JP3922396B2 (ja) | レイアウト装置および表示装置 | |
JP3517465B2 (ja) | 文字領域の順序付け方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040120 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040319 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040420 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040621 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040624 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040716 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050527 |
|
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: 20090603 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090603 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100603 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110603 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120603 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120603 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130603 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |