(58)【調査した分野】(Int.Cl.,DB名)
前記レイアウト解析手段は、前記文字列行より、注目行とその前後に隣接する文字列行である隣接行とを抽出し、前記注目行及び前記隣接行の位置関係に基づいて、前記注目行と当該注目行の前の隣接行との間で改行されているか否かを判定し、改行されている場合には、前記注目行を段落開始行に設定する段落解析手段を備える、ことを特徴とする請求項2に記載の変換処理装置。
前記行解析手段は、前記文書画像から個々の文字を抽出する際、行頭に配置されることが禁止された記号を、前記記述方向における1つ前の文字と統合した状態、かつ、行末に配置されることが禁止された記号を、前記記述方向における1つ後の文字に統合した状態で抽出することを特徴とする請求項1から4のいずれか1項に記載の変換処理装置。
前記行解析手段は、前記文書画像が複数ページから構成されていると、当該複数ページの文書画像から分類される文字列行の少なくとも一部を用いて前記記述方向を決定し、当該決定した記述方向を前記複数ページに対して設定することを特徴とする請求項1から5のいずれか1項に記載の変換処理装置。
前記行ブロック解析手段は、前記文書画像に前記記述方向と直交する方向の文字列行が存在する場合は、当該直交する方向の文字列行の行ブロックを図表行の行ブロックに置き換えることを特徴とする請求項1に記載の変換処理装置。
【発明を実施するための形態】
【0013】
以下に、本発明の実施の形態について、図を参照に詳細に説明する。
【0014】
〔実施の形態1:画像形成装置〕
以下の説明では、本発明に係る変換処理装置が変換処理部として画像処理装置の一部を成し、また、その画像処理装置が画像形成装置の一部を成す形態を例示する。
【0015】
[1.画像形成装置]
図1は、実施の形態1に係る画像形成装置(情報処理装置)100の機能的構成を示すブロック図である。画像形成装置100は、コピー機能及びスキャナ機能等を有するデジタル複合機である。画像形成装置100は、画像処理装置1、画像入力装置2、画像出力装置3、及び送信装置4を備えている。
【0016】
画像入力装置2、画像処理装置1、画像出力装置3及び送信装置4には、操作パネル6が接続されている。操作パネル6は、ユーザが画像形成装置100の動作モードを設定するための設定ボタン及びテンキー等の操作部(図示せず)と、液晶ディスプレイ等で構成される表示部(図示せず)とを備える。
【0017】
画像形成装置100で実行される各種処理は、図示しない制御部(CPU(Central Processing Unit)あるいはDSP(Digital Signal Processor)等のプロセッサを含むコンピュータ)が制御する。画像形成装置100の制御部は、図示しないネットワークカード及びLANケーブルを介して、ネットワークに接続されたコンピュータ及び他のデジタル複合機等とデータ通信を行う。
【0018】
以下、画像形成装置100の各部について詳述する。
【0019】
画像入力装置2は、原稿から画像を光学的に読み取る。画像入力装置2は、例えばCCD(Charge Coupled Device)を有するカラースキャナよりなり、原稿からの反射光像を、CCDを用いてRGB(R:赤,G:緑,B:青)のアナログ信号として読み取り、画像処理装置1へ出力する。画像入力装置2は、スキャナでなくてもよく、例えばデジタルカメラ等であってもよい。
【0020】
画像処理装置1は、画像入力装置2が読み取った画像データに処理を施し、処理を施した画像データを保存、あるいは、送信するために圧縮ファイルを生成する。
【0021】
画像処理装置1は、画像入力装置2から入力されたRGBのアナログ信号に対して、A/D変換部11、シェーディング補正部12、原稿種別判別部13、入力階調補正部14、及び領域分離処理部15にて各後述する画像処理を実行することによって、RGBのデジタル信号(以下、RGB信号という)からなる画像データを生成する。
【0022】
また、画像処理装置1は、領域分離処理部15が出力したRGB信号に対して色補正部16、黒色生成下色除去部17、空間フィルタ処理部18、出力階調補正部19、及び階調再現処理部20にて各後述する画像処理を実行することによって、CMYK(C:シアン,M:マゼンタ,Y:イエロー,K:ブラック)のデジタル信号からなる画像データを生成して、ストリームとして画像出力装置3へ出力する。なお、画像出力装置3へ出力される前に、画像データが記憶部5に一旦記憶されてもよい。記憶部5は、不揮発性の記憶装置(例えばハードディスク)である。
【0023】
画像出力装置3は、画像処理装置1が生成した画像データに基づいて画像を出力する。画像出力装置3は、画像処理装置1から入力された画像データに基づいて、熱転写、電子写真、又はインクジェット等の方式により、記録シート(例えば記録用紙等)上にカラー画像を形成(印刷)して出力する。
【0024】
上記では、画像出力装置3はカラー画像を出力する構成とするが、記録シート上にモノクローム画像を形成して出力する構成であってもよい。この場合、画像処理装置1にて、カラー画像の画像データがモノクローム画像の画像データに変換されてから画像出力装置3へ出力される。
【0025】
更にまた、画像処理装置1は、領域分離処理部が出力したRGB信号に対して圧縮処理部にて画像圧縮処理を実行することによって、圧縮されたカラー画像の画像データを有する圧縮ファイルを生成し、送信装置へ出力する。なお、送信装置へ出力される前に、圧縮ファイルが記憶部5に一旦記憶されてもよい。
【0026】
画像処理装置1は、操作パネル6においてフォーマット変換モードが選択されている場合、領域分離処理部15が出力したRGB信号に対して変換処理部22にてフォーマット変換処理を実行することによって、後述のように、カラー画像が有する文書レイアウトを解析して文書構造ツリーを生成し、この文書構造ツリーを操作パネル6においてユーザが選択したフォーマットに変換して、送信装置4へ出力する。変換処理部22は、本発明に係る変換処理装置として機能する。また、送信装置4へ出力される前に、変換されたファイルが記憶部5に一旦記憶されてもよい。また、画像入力装置2から入力される文書画像が複数ページにわたる場合、操作パネル6において指定したページのみ、後述のように、文書レイアウトを解析して文書の再構成を行うようにすることができる。例えば、表紙ページは再構成の対象とせず、そのままページ全体を画像として出力するといった方法も可能とする。
【0027】
送信装置4は、画像処理装置が生成した圧縮ファイルを外部へ送信する。送信装置4は、図示しない公衆回線網、LAN(Local Area Network)又はインターネット等の通信ネットワークに接続可能であり、ファクシミリ又は電子メール等の通信方法により、通信ネットワークを介して外部へ圧縮ファイルを送信する。例えば、操作パネル6においてscan to e-mailモードが選択されている場合、ネットワークカード、モデム等を用いてなる送信装置4は、圧縮ファイルをe-mailに添付し、設定された送信先へ送信する。
【0028】
なお、ファクシミリ送信を行う場合は、画像形成装置100の制御部が、モデムを用いてなる送信装置4にて、相手先との通信手続きを行い、送信可能な状態が確保されたときに、圧縮ファイルに対して圧縮形式の変更等の必要な処理を施してから、相手先に通信回線を介して順次送信する。
【0029】
また、ファクシミリを受信する場合、画像形成装置100の制御部は、送信装置4にて通信手続きを行いながら、相手先から送信されてくる圧縮ファイルを受信して、画像処理装置1に入力する。画像処理装置1では、受信した圧縮ファイルに対し、不図示の圧縮/伸張処理部で伸張処理が施される。圧縮ファイルを伸張することによって得られた画像データには、必要に応じて、不図示の処理部で回転処理及び/又は解像度変換処理等が施され、また、出力階調補正部19で出力階調補正が施され、階調再現処理部20で階調再現処理が施される。各種画像処理が施された画像データは、画像出力装置3へ出力され、画像出力装置3にて、記録シート上に画像が形成される。
【0030】
[2.画像処理装置]
以下では、画像処理装置1の構成について、画像処理装置1における画像処理及びフォーマット変換処理を詳述しながら説明する。
【0031】
A/D変換部11は、画像入力装置2から画像処理装置1へ入力されたRGBのアナログ信号を受け付け、RGBのアナログ信号をRGBのデジタル信号(即ちRGB信号)へ変換し、変換したRGB信号をシェーディング補正部12へ出力する。
【0032】
シェーディング補正部12は、A/D変換部11から入力されたRGB信号に対して、画像入力装置2の照明系、結像系及び撮像系で生じる各種の歪みを取り除く処理を行う。次いで、シェーディング補正部12は、歪みを取り除いたRGB信号を原稿種別判別部13へ出力する。
【0033】
原稿種別判別部13では、シェーディング補正部12から入力されたRGBの反射率信号をRGB各色の濃度を示す濃度信号に変換し、文字、写真、又は印画紙等の原稿のモードを判別する原稿種別判別処理が実行される。原稿種別判別処理を、ユーザが操作パネル6を用いてマニュアル設定する場合、原稿種別判別部13はシェーディング補正部12から入力されたRGB信号をそのまま後段の入力階調補正部14に出力する。原稿種別判別処理の処理結果は、後段の画像処理に反映される。
【0034】
入力階調補正部14は、RGB信号に対して、カラーバランスの調整、下地濃度の除去、及びコントラストの調整等の画質調整処理を行う。入力階調補正部14は、次に、処理を行ったRGB信号を領域分離処理部15へ出力する。
【0035】
領域分離処理部15は、入力階調補正部14から入力されたRGB信号が表す画像中の各画素を、文字領域、網点領域、又は写真領域のいずれかに分離する。また、領域分離処理部15は、分離結果に基づき、各画素がいずれの領域に属しているかを示す領域識別信号を、黒色生成下色除去部17、空間フィルタ処理部18、階調再現処理部20、及び圧縮処理部21へ出力する。更に、領域分離処理部15は、入力階調補正部14から入力されたRGB信号を、そのまま後段の色補正部16及び圧縮処理部21へ出力する。
【0036】
色補正部16は、領域分離処理部15から入力されたRGB信号をCMYのデジタル信号(以下、CMY信号という)へ変換し、色再現の忠実化実現のために、不要吸収成分を含むCMY色材の分光特性に基づいた色濁りをCMY信号から取り除く処理を行う。次いで、色補正部16は、色補正後のCMY信号を黒色生成下色除去部17へ出力する。
【0037】
黒色生成下色除去部17は、色補正部16から入力されたCMY信号に基づき、CMY信号から黒色(K)信号を生成する黒色生成処理と、CMY信号から黒色生成で得たK信号を差し引いて新たなCMY信号を生成する処理とを行う。この結果、CMY3色のデジタル信号は、CMYK4色のデジタル信号(以下、CMYK信号という)に変換される。次いで、黒色生成下色除去部17は、CMY信号を変換したCMYK信号を空間フィルタ処理部18へ出力する。
【0038】
黒色生成処理の一例としては、一般に、スケルトン・ブラックによる黒色生成を行う方法が用いられる。この方法では、スケルトン・カーブの入出力特性をy=f(x)、入力されるデータをC,M,Y、出力されるデータをC',M',Y',K'、UCR(Under Color Removal)率をα(0<α<1)とすると、黒色生成下色除去処理は、下記の式(1)〜式(4)で表わされる。
K'=f(min(C,M,Y)) ・・・(1)
C'=C−αK' ・・・(2)
M'=M−αK' ・・・(3)
Y'=Y−αK' ・・・(4)
ここで、UCR率α(0<α<1)とは、CMYが重なっている部分をKに置き換えてCMYをどの程度削減するかを示すものである。式(1)は、CMYの各信号強度の内の最も小さい信号強度に応じてK信号が生成されることを示している。
【0039】
空間フィルタ処理部18は、黒色生成下色除去部17から入力されたCMYK信号の画像データに対して、領域分離処理部15から入力された領域識別信号に基づいてデジタルフィルタによる空間フィルタ処理を行い、空間周波数特性を補正することによって、画像のぼやけ又は粒状性劣化を改善する。例えば、領域分離処理部15にて文字に分離された領域に対しては、空間フィルタ処理部18は、文字の再現性を高めるために、高周波成分の強調量が大きいフィルタを用いて空間フィルタ処理を行う。また、領域分離処理部15にて網点に分離された領域に対しては、空間フィルタ処理部18は、入力網点成分を除去するためのローパス・フィルタ処理を行う。
【0040】
次いで、空間フィルタ処理部18は、処理後のCMYK信号を出力階調補正部19へ出力する。
【0041】
出力階調補正部19は、空間フィルタ処理部18から入力されたCMYK信号に対して、画像出力装置3の特性ある網点面積率に基づく出力階調補正処理を行い、出力階調補正処理後のCMYK信号を階調再現処理部20へ出力する。
【0042】
階調再現処理部20は、出力階調補正部19から入力されたCMYK信号に対して、領域分離処理部15から入力された領域識別信号に基づいて、領域に応じた中間調処理を行う。例えば、領域分離処理部15にて文字に分離された領域に対しては、階調再現処理部20は、高域周波成分の再現に適した高解像度のスクリーンによる二値化又は多値化の処理を行う。また、領域分離処理部15にて網点に分離された領域に対しては、階調再現処理部20は、階調再現性を重視したスクリーンでの二値化又は多値化の処理を行う。次いで、階調再現処理部20は、処理後の画像データを画像出力装置3へ出力する。
【0043】
圧縮処理部21は、領域分離処理部15から入力された領域識別信号とRGB信号からなる画像データとに基づき、圧縮ファイルを生成する。圧縮処理部21に入力される画像データは、マトリクス状に配置されている複数の画素で構成されている。この画像データは、前景レイヤと背景レイヤとに分離され、前景レイヤが更に2値画像に変換され、各2値画像が例えばMMR(Modified Modified READ)で可逆圧縮され、背景レイヤが例えばJPEGで非可逆圧縮される。最後に、可逆圧縮された2値画像及び非可逆圧縮された背景レイヤと、これらを伸張してカラー画像の画像データとなすための伸張情報とが一つのファイルにまとめられる。このファイルが圧縮ファイルである。また、この伸張情報としては、圧縮形式を示す情報、及びインデックス・カラー・テーブル(以下、ICテーブルという)等が用いられる。画素毎に生成された領域識別信号の圧縮は、例えば、可逆圧縮方法であるMMR方式、MR(Modified READ)方式に基づいて行われる。
【0044】
圧縮された画像データ(圧縮画像)は、一旦記憶部5に格納され、例えば、操作パネル6において、scan to e-mailモードが選択されている場合、送信装置4から、メールに添付されて、設定された送信先に送信される。
【0045】
変換処理部22は、入力画像に対してフォーマット変換処理を実行する。変換処理部22の詳細について、以下で説明する。
【0046】
[3.変換処理部]
図2は、変換処理部(変換処理装置)22の構成を示すブロック図である。変換処理部22は、行解析処理部(行解析手段)31と、行ブロック解析処理部(行ブロック解析手段)34と、レイアウト解析処理部(レイアウト解析手段)35と、再配置処理部(参照リスト生成手段)36と、を備える。以下では、文書を構成する個々の文字、図、表等を要素と呼ぶ。
【0047】
行解析処理部31は、入力された文書画像から各要素を抽出して、文字から構成される文字列の行と、図又は表から成る図表行に分類する。更に、文書の横書き、縦書きといった記述方向を示す文書第1方向を解析する。
【0048】
行ブロック解析処理部34は、行解析処理部31で抽出された行を、少なくとも1つ以上有する行ブロックに統合する処理を行う。
【0049】
レイアウト解析処理部35は、行ブロック解析処理部34で分類された行ブロック同士の位置関係から、段組構成を解析して文書全体の行の順序付けを行い、行の前後関係から改行位置を検出することで、文書を1つ以上の段落に分類し、段落毎に行の情報を格納した文書構造ツリーを生成する。詳細は後述する。文書構造ツリーの各段落は、文字列の行の順序の情報と、図表の順序の情報をそれぞれ分けて格納することで、図表の配置を段落内で修正できるようにする。
【0050】
再配置処理部36は、レイアウト解析処理部35で生成された文書構造ツリーに従って、入力文書画像の文字、図、表の各要素を順序通り参照するための命令と、段落の開始及び終了を宣言するための命令を列記した参照リストを生成する。参照リストのフォーマットは特に固定されておらず、例えばHTML等マークアップ言語で記述した文書の形式として生成したものをファイル出力してもよい。
【0051】
以下、変換処理部22の各処理部について詳述する。
【0052】
[4.行解析処理部]
<4−1.行解析処理部の構成>
行解析処理部31は、入力された文書画像データ(入力文書画像)から各要素画像を抽出し、文字(文字画像)から成る行(文字列行)と、図(図画像)又は表(表画像)から成る行(図表行)とに分類する。行解析処理部31は、文字列抽出処理部32及び図表抽出処理部33を備えて構成される。行解析処理部31は、更に、文書の横書き又は縦書きといった記述方向を示す文書第1方向を解析する。
【0053】
<4−2.文字列抽出処理部>
文字列抽出処理部32は、入力画像データから個々の文字を検出し切り出し処理を行うと共に、文字が複数並べられて構成される文字列を抽出する処理を行う。個々の文字の検出手段は多数提案されており、例えば、特許文献2では、文書画像中の文字構成要素の領域、及び文字からなる文字列領域を検出する方法が提案されている。
【0054】
特許文献2に記載の方法では、文書画像から前景画素を検出し、前景画素から特に文字を構成していると思われる画素の集合を囲む最小外接矩形を文字構成要素として抽出する。更に、上下左右の各方向における近隣の各文字構成要素の矩形同士の距離から文字列として連続する文字構成要素の関係にあるかを判定し、その連続する矩形の連続数から、文字列領域を特定する。このとき、左右方向における連続数が上下方向における連続数を上回る場合は横書きの文字列領域として、上下方向における連続数が左右方向における連続数を上回る場合は縦書きの文字列領域として、文字列の持つ方向(文字列の方向、記述方向)を同時に取得する。
【0055】
本実施の形態では、一例として、特許文献2に記載の方法を利用して文字及び文字列を抽出するものとする。なお、文字及び文字列の抽出方法は、特許文献2に記載の方法に限らずほかの方法を用いることができる。例えば、光学式文字読取装置(Optical Character Recognition;以下OCR)で個々の文字や、文字列を検出してもよい。
【0056】
<4−3.図表抽出処理部>
図表抽出処理部33は、入力画像データから図(図領域)及び表(表領域)を検出し、切り出し処理を行うものである。図領域の検出手段は多数提案されており、例えば、特許文献3で挙げられる方法により図領域を特定することができる。特許文献3に記載の方法では、入力された画像の所定領域毎に画素値の出現頻度(即ち、ヒストグラム)を求めた場合に、図領域の一つである写真領域上の各画素では濃度変化が広範囲に及ぶヒストグラムが得られることを利用して、ヒストグラムのエントロピー(平均情報量)を算出し、エントロピーが高い領域を抽出することで精度よく写真領域を抽出することが可能となる。
【0057】
また、表領域の検出手段も多数提案されており、本実施の形態では既知の方法により表領域を検出する。例えば、特許文献2では、文書画像データからラインとなる可能性のある候補画素を抽出し、前記候補画素が水平方向もしくは垂直方向に所定画素数以上連続する場合に前記連続する候補画素の集合をラインとして抽出し、前記抽出された水平方向及び垂直方向のラインの位置関係から、各ラインが表を構成する罫線であるか単一のラインであるかを判定し、同一の表を構成するラインの集合について、それら全てを囲む最小外接矩形を表領域として抽出する方法を挙げている。この方法を用いることができる。
【0058】
なお、文字列抽出処理部32で抽出した文字が、図表抽出処理部33で抽出した図又は表として抽出した範囲と重複する場合、該抽出した文字をキャンセルする。特に、抽出された表には文字が含まれる可能性が高いが、表のサイズを表示領域の幅に合わせるためには表を構成する各列の幅を調整する必要がある。結果として、調整後の列幅に合わせて、表内の文字列は折り返し表示されて、かえって可読性を低下させる原因となるため、本実施の形態では、表として抽出された領域については、文字も含めたまま図表として切り取って表示することとする。
【0059】
なお、画像処理装置1が備える領域分離処理部15や圧縮処理部21において、文字列抽出処理や図表抽出処理を実行する場合、領域分離処理部15や圧縮処理部21における処理過程で抽出される各種情報を変換処理部22に入力して利用することができる。特に、特許文献2が提案する圧縮処理部を備えた画像処理装置では、圧縮処理部で抽出される文字列及び表の情報を変換処理部に入力したり、特許文献3が提案する領域分離処理部を備えた画像処理装置では、領域分離処理部で抽出される図領域の情報を変換処理部に入力したりすることで、変換処理部22に同様の抽出処理を実行する処理部を備えることを回避し、回路規模を削減することができる。このように回路規模を削減した本実施の形態の画像処理装置1の変形例として画像処置装置1bを備えた、画像形成装置300のブロック図を
図31に示す。画像処理装置1bは、画像処理装置1の圧縮処理部21の代わりに特許文献2が提案する圧縮処理部21a及び領域分離処理部15の代わりに特許文献3が提案する領域分離処理部15aをともに備え、かつ、変換処理部22の代わりに変換処理部22aを備える。変換処理部22aは、圧縮処理部21aから文字列情報及び表領域情報を入力し、領域分離処理部15aから図領域情報を入力して利用する。
【0060】
<4−4.行IDの設定>
行解析処理部31は、さらに、以上のようにして抽出された文字列行、もしくは図表行に対して、その行であることを識別する重複しない番号として行ID(Identification)を設定する。1つの行IDについて、その行IDを有する行が2つ以上存在しなければ、必ずしも文書の順序に従って行IDを割り振る必要は無い。行IDの設定方法として、行IDが「0」の場合を存在しない行であるとして無効行とし、例えば、各ページの文書画像において、読み取った原稿の左上を原点(0,0)とし、原点に対して、右方向をX座標、下方向をY座標となる座標系を採用し、行の範囲を表わす最も左上のY座標が小さい順に行IDを連番で割り振る方法が挙げられる。なお、Y座標が同じ行同士はX座標が小さい方の行を優先する。この方法を用いる場合、段組構成により必ずしも文書の読み順序通りに行IDが割り振られる訳ではないが、横書き文書であれば行が上にあるほど順序が先である可能性が高いため、比較的文書の順序を反映した行IDの割り振り方になると言える。行IDの設定方法はこれに限らず、自由に選択することができる。
【0061】
<4−5.文書第1方向及び文書第2方向の決定>
行解析処理部31は、1ページの文書画像における全ての行について、文字列行か図表行かの分類が終わると、文字列の方向から、文書全体の方向を示す文書第1方向を決定する。文書第1方向は、横書きのとき水平となり、縦書きのとき垂直となる。文書第1方向は、取得した全ての文字列の持つ方向を分類し、その比率により決定する。文書第1方向を決定するための比率の算出方法の簡単な例として、単純に横書きもしくは縦書きの文字列の数をカウントして、その数の比率を算出する方法が挙げられる。この方法の場合、例えば横書きの行数と縦書きの行数を比較して、多い方の方向を文書第1方向として決定(設定)する。文書第1方向の決定は上記の方法に限らず様々な方法を採用することができる。
【0062】
なお、算出した比率が所定閾値(例えば、0.7)以下である場合、文書には縦書きの行と横書きの行とが無視できない比率で混在しており文書全体の方向を一意に判別できないとして、以降の処理を中断することができる。
【0063】
さらに、上記の方法によって文書第1方向を決定すると、文書第1方向に直交する方向として文書第2方向を決定(設定)する。すなわち、文書第1方向が水平(横書き)の場合、文書第2方向は垂直、文書第1方向が垂直(縦書き)の場合、文書第2方向は水平となる。
【0064】
また、複数のページを入力とする場合、先に全てのページにおいて行の抽出を行い、一部のページ又は全部のページの行の情報から、全てのページで同一の文書第1方向を決定してもよい。前記一部のページの選択方法として、例えば、表紙や扉、挿絵や写真、付録、後付け等、本文とは異なるレイアウトが含まれている可能性が高いとして、事前に先頭ページと最終ページを除いてもよい。
【0065】
<4−6.記号(約物)の統合処理>
なお、個々の文字の切り出しにおいて、以下に示すような記号(約物)の統合処理を追加することができる。記号には、例えば行頭に来ることが禁止とされる(行頭禁則)ものや、行末に来ることが禁止とされる(行末禁則)ものがあり、
図3に示すような文字がその一部として挙げられる。切り出した個々の文字を表示した際、行の折り返しによりこれらのルールが守られず可読性が低下する場合がある。そこで、行頭禁則の記号については、1つ前の文字と統合し、行末禁則の記号については、1つ後の文字と統合することで、単独で行頭もしくは行末に来ることがなくなる。
【0066】
各文字が、前記したルールを持つ記号であるかの判定方法は公知の方法を使用することができる。例えば、OCR処理を利用して文字種を照合してもよいし、文字の大きさや、文字を構成する画素の特徴から判別してもよい。例えば句読点の場合、
図4のように横書きなら行の下半分のみで構成され、また行の高さ(矢印で示された範囲)に比べて半分程度の幅を持つ場合、その文字が句読点である可能性が高いとして、1つ前の文字と統合してもよい。
図4では横書きの例を示したが、縦書きの場合も同様に統合を行うことができる。半角英小文字と区別するため、行を構成する他の文字の高さや幅の傾向から和文、英文の判定を加え、和文の場合のみ句読点と判定するようにする等の処理を追加してもよい。例えば、和文ではひらがな、カタカナ及び漢字等の全角文字が文章の大半を占めており、行の上半分もしくは下半分のみで構成される文字が少なくなる傾向がある。また、半角文字に比べて、全角文字では行の高さに対して文字の横幅が半分より大きい文字の種類が多い。従って、(1)行を上下に分割する水平方向の直線をまたぎ、(2)文字の横幅が行の高さに所定係数(例えば0.6)を乗算した値以上である、文字数をカウントし、行を構成する文字数に対して前記(1)及び(2)を満たす文字数の割合が所定閾値(例えば0.5)以上である場合に、その行が和文であるとして判定する処理を適用することができる。和文、英文の判定方法はこの方法に限らず、他の方法により判定してもよい。また、縦書きの文書である場合は自動的に和文とみなしてもよい。ここで、句読点と、「ァ」等小さい和字との区別がつかない可能性もあるが、これらの小さい和字も行頭禁則であるため句読点と同様に統合しても問題無い。そのため、厳密に句読点専用の処理とする必要はない。また、全角文字でも、「I」や「1」等、余白を除けば横幅が小さな文字があり、さらに「_」(アンダーライン)や、上付き文字、下付き文字等、上半分もしくは下半分のみで構成される文字が含まれる場合もある。逆に、半角英字でも、「M」や「W」等はフォントによって横幅が大きくなることもあるので、厳密に、和文と英文との判定を行うのが難しい場合がある。
【0067】
<4−7.処理例>
行解析処理部31が実行する処理の具体例として、
図5に示す構造の文書画像(1ページ)に対して行解析処理を適用する場合について説明する。行解析処理部31は、
図6に示すように、その行の要素を全て含んだ最小サイズの外接矩形の範囲を各行の領域として分離し、それぞれの行に、行IDを、外接矩形の左上の垂直座標(Y座標)位置の順で割り当てる。
図6に示す文書画像では、行IDが105の行が図表の行であることを除いては、残りの行はいずれも横書きの文字列の行であり、縦書きの文字列の行は1つも含まれていない。そのため、行解析処理部31は、この文書画像における文書第1方向は水平方向であると決定する。
【0068】
[5.行ブロック解析処理部]
<5−1.行ブロック解析処理部の処理>
行ブロック解析処理部34は、行解析処理部31で分類された行を、行を少なくとも1つ以上有する行ブロックに統合する処理を行う。行ブロック解析処理部34は、行解析処理部31で分類された文字列行を、少なくとも1つ以上の文字列行から成る文字列の行ブロックに統合し、重複しない行ブロックIDを持つ新規行ブロックとして記憶部5に記憶(登録)する。図表行については、単一行で1つの行ブロックを構成するものとし、それぞれ重複しない行ブロックIDを持つ新規行ブロックとして登録する。
【0069】
文字列の行ブロック統合処理について以下で詳細に説明する。初めに、行解析処理部31で分類された行のうち文字列行のグループから、注目行L1を選択する。続いて、注目行L1に関して、前方及び後方(定義は、後述の(5−5)章を参照)に連続する文字列行を探索する。具体的には、文字列行のグループの、注目行L1とは異なる文字列行から、注目行L1の前方もしくは後方に連続する文字列行を最大1つずつ選択する。注目行L1の連続行の候補となる文字列行は注目行L1を除く全ての文字列行であり、連続行の候補となる条件については後述する。全ての文字列行について、前方及び後方に連続する文字列行を選択すると、連続する文字列行同士の繋がりから、前方及び後方の両方において連続する文字列行がなくなるまで1つの行ブロックとして分類、統合し、未割り当ての行ブロックIDを持つ新規行ブロックとして記憶部5に登録する。全ての文字列行がいずれかの行ブロックに登録されるまで処理を繰り返し、全ての文字列行についての登録が完了すると、行ブロック解析処理部34は処理を終了する。
【0070】
<5−2.連続行の候補の判定>
注目行L1とは別に選択された文字列行L2が、注目行L1の連続行の候補であるか否かを判定する方法について説明する。行L2が行L1の連続行の候補である条件として、少なくとも下記2つの条件を満たすものとする。
条件1:一方の行の先頭から末尾までの範囲において、もう一方の行の先頭もしくは末尾のうち少なくとも一方が存在する。
条件2:2つの行の行間変位量linespace(L1,L2)が下記の式(5)を満たす。
TH_MIN_LS≦linespace(L1,L2)≦TH_MAX_LS ・・・(5)
(TH_MIN_LS、TH_MAX_LSは、予め設定される閾値)
なお、条件1は、異なる段に属する行を連続行の候補として判定しないために用いる。条件2は、行間が広過ぎる又は狭過ぎる行を連続行の候補として判定しないために用いる。
【0071】
図7の(a)は、2段組の横書きの文書の例、
図7の(b)は、2段組の縦書きの文書の例である。条件1を満たすために、行L1と行L2とは、文書第1方向で一部もしくは全部が重複している必要がある。例えば、
図7の例の場合、行aと行b、行cと行d、行eと行f、行gと行hは、条件1を満たすため、これらの組合せは互いに連続行の候補となる。しかし、行aと行d、行eと行h等の組合せでは条件1を満たさないため、これらの組合せは互いに連続行の候補とならない。
【0072】
条件2で示す行L1と行L2との行間変位量linespace(L1,L2)は、
図8に示すように、横書きであれば行L1と行L2とのうち下側にある方の行の上端座標と、もう一方の行の下端座標との差分値(
図8の(a)〜(c)参照)、縦書きであれば行L1と行L2とのうち左にある方の行の右端座標ともう一方の行の左端座標との差分値(
図8の(d)〜(f)参照)である。行L1と行L2とが重複しないとき、行間変位量linespace(L1,L2)は2つの行の行間距離を示す。また、TH_MIN_LS及びTH_MAX_LSは、連続行同士の行間変位量として許容される差分値の最小値及び最大値を示す所定係数である。例えば、行L1の文字サイズに所定係数r1(例えばr1=0.1)を乗算したものを閾値TH_MIN_LSと設定し、所定係数r2(r2は正の数とする、例えばr2=1.5等)を乗算したものを閾値TH_MAX_LSとして設定する。閾値TH_MIN_LS及び閾値TH_MAX_LSは、他の方法により設定されてもよく、例えば行L1と行L2の文字サイズの平均値に所定係数を乗算したものとしてもよい。また閾値TH_MIN_LSを正値に設定することで、重複のある2つの行同士を連続行として認めないようにすることができる。逆に閾値TH_MIN_LSを負値に設定することで、
図8の(c)及び(f)のように、行L1と行L2とが多少重複する場合も許容することができる。なお、行間変位量linespace(L1,L2)は、行L1と行L2とが重複する場合は0を与えるように定義することもできる。これは、次のような事前処理の性能不足を補う場合に用いられる。原稿の読み取りを行う際、原稿の傾きを十分補正しきれずに、ごくわずかな傾きが残っている場合、最小外接矩形で文字列を囲むと、文字自体は重複していなくても矩形同士が重複する場合が存在する。
【0073】
<5−3.条件の強化:インデントの範囲指定>
また、連続行の候補を判定する条件を強化するために、上記条件1,2に加えて、別の条件を設定してもよい。例えば、次式(6)を満たすことを条件として追加することができる。
indent(L1,L2)≦TH_INDENT ・・・(6)
ここで、indent(L1,L2)は行L1の開始位置の文書第1方向成分と行L2の開始位置の文書第1方向成分の差の大きさであり、すなわちインデントの大きさを意味する。また、閾値TH_INDENTは行の先頭のインデントとして許容される距離を示す所定係数である。閾値TH_INDENTは、例えば行L1の文字サイズに所定係数α(αは正の数とする、例えばα=1.5等)を乗算した値を与え、α文字以内のインデントを許容することができる。閾値TH_INDENTは他の方法により設定してもよく、例えば行L1と行L2の文字サイズの平均値に所定係数αを乗算したものとしてもよい。
【0074】
<5−4.条件の強化:行終了位置の差異の許容範囲指定>
連続行の候補を判定する条件を強化する他の条件として、例えば次式(7)を満たすことを条件として追加することで、行の終了位置がある程度近い行同士を連続行の候補とすることができる。
|L1MAX1−L2MAX1|≦TH_DIFF_ENDPOS ・・・(7)
ここで、L1MAX1は行L1の文書第1方向成分の最大値、L2MAX1は行L2の文書第1方向成分の最大値である。例えば、文書第1方向が水平方向(横書き)である場合、L1MAX1及びL2MAX1は、行L1及び行L2の右端のX座標を指す。また、閾値TH_DIFF_ENDPOSは行の終了位置の差として許容される距離を示す所定係数である。例えば行L1の文字サイズの平均値に所定係数β(βは正の数とする、例えばβ=0.5等)を乗算したものを閾値TH_DIFF_ENDPOSとすることで、β文字以内のインデントを許容することになる。
【0075】
<5−5.前方又は後方の連続行の選択>
行L1の連続行の候補として抽出された行から、行L1の前方で最も近い位置にある行、及び、後方で最も近い位置にある行を、それぞれ最大1つずつ選択する。なお、文書第1方向が水平方向(横書き)である場合、行L1より上にある行を前方の行、行L1より下にある行を後方の行とし、文書第1方向が垂直方向(縦書き)である場合、行L1より右にある行を前方の行、行L1より左にある行を後方の行とする。また、行の近さを表わす値として、例えば、前述の行間変位量linespace(L1,L2)を使用し、linespace(L1,L2)が小さい程、行が近いとみなすことができる。なお前方、後方とも、連続行は最大で1つずつであり、必ずしも連続行が存在する必要はない。
【0076】
<5−6.行ブロックへの分類及び統合>
以上のようにして、全ての文字列行について前方及び後方の連続行を選択すると、行ブロックへの分類、統合を行う。但し、複数の行から連続行として選択されるケースもあり得るため、相互に連続行であるとされていない行のペアについては、その間の連続関係を事前に解消しておく。例えば、文書画像が
図9の(a)である場合、前方の連続行として行L3を選択する行は、行L4と行L5との2つ存在するが、行L5は行L3の後方の連続行として選択されていない。そのため、行L3と行L5との間の連続関係は解消される。同様にして行L4と行L6との間の連続関係も解消される。このことにより、
図9の(a)に示すような例では、行L3及び行L4において注目行L1からの連続関係が断たれるため、注目行L1と同一の行ブロックとして分類できなくなるケースも起こり得る。しかし、
図9の(b)に示すように複数の行ブロックとして分類することができ、後段のレイアウト解析処理部35における段組解析処理部37で、同一の段組、及びその段組を構成する同一の段(カラム)として統合できるため、この時点でブロックが分かれてしまっても、問題とはならない。
【0077】
行ブロックへの分類及び統合処理は、次のように行う。まず。行ブロックとして分類されていない文字列行のうち任意の行L1(注目行L1)について、まず、行L1を新規の行ブロックとして設定する。続いて、行L1から前後の連続行をたどり、行ブロックの範囲を拡大する。前方及び後方とも、連続行が無くなると、行ブロックの拡大を終了し、その行ブロックに含まれる先頭の行から順に行IDを取得する。また、行ブロックの情報として、行ブロックに含まれる全ての行に外接する最小矩形の左上座標、幅及び高さ、並びに含まれる行数を取得する。以上のようにして得られた行の順序と各種情報とを持つ行ブロックを、既に登録済みの行ブロックと重複しないIDを持つ新規の行ブロックとして登録を行い、またその行ブロックに含まれる各行の所属行ブロックIDを更新する。このようにして行われる行ブロックへの分類及び統合処理を、全ての文字列行がいずれかの行ブロックに分類されるまで繰り返す。
【0078】
<5−7.同一の行ブロックに分類できる(連続行の候補とできる)行の条件>
なお、文書第1方向の文字列行は文書第1方向の文字列行とのみ、文書第2方向の文字列行は文書第2方向の文字列行とのみ、行ブロックを構成する。すなわち、1つの行ブロックに、文書第1方向の文字列行と文書第2方向の文字列行とが混在することは無い。従って、注目行L1の連続行の候補を探索する際、注目行L1の文字列方向と異なる方向の文字列行は連続行の候補としない。
【0079】
<5−8.処理例>
行ブロック解析処理部34が実行する行ブロック解析処理を、具体例を用いて説明する。既に示した
図6のように文書画像から検出された複数の行に対して行ブロック解析処理を適用すると、文書画像は、
図10のように行ブロックとして分類される。
図10に示す例では、行ブロックB3は、章の見出しの行であり、行ブロックB4に比べて文字が大きい。このように文字のサイズが大きく異なる2つの行同士を連続行の候補として選択しないような、連続行の候補の判定の条件を追加することも有効な手段である。
【0080】
[6.レイアウト解析処理部]
<6−1.レイアウト解析処理部の構成>
図11は、レイアウト解析処理部35の詳細構成を示すブロック図である。レイアウト解析処理部35は、前段の行ブロック解析処理部34で分類された行ブロック同士の上下左右の位置関係から、行ブロック構成を解析し、文書画像中の文章(本文)の読み順を推定する処理を行うものであり、段組解析処理部37、行順序付け処理部38、段落解析処理部(段落解析手段)39を備えて構成される。
【0081】
<6−2.段組解析処理部>
段組解析処理部37は、複数の行ブロックの上下及び左右の位置関係から、段組及び段組を構成する各段(カラム)を分類する段組解析処理を実行する。文書は文書第2方向に段組が配置され、各段組構成内で文書第1方向にカラムが配置されているものとして、ページ内の行ブロックの集合を、適切に境界線を設定して行ブロックをまたぐことなく分割して初期段組とする。そして、同一の初期段組に含まれる行ブロックの集合を、適切に境界線を設定して行ブロックをまたぐことなく分割して、該初期段組を構成する初期カラムとする。
【0082】
境界線の設定方法は特に指定はなく、最も簡単な例として、初期段組の分類には文書第2方向と平行な直線を使用し、初期カラムの分類には文書第1方向と平行な直線を使用することが挙げられる。例えば、
図12の(a)のように横書きの文書画像から行ブロックの構造が解析された場合、
図12の(b)のように行ブロックを初期段組に分類され、さらに初期段組は
図12の(c)のようにそれぞれ初期カラムとして分類される。なお、
図12の(b)及び(c)では、段組間の境界線は実線で、カラム間の境界線は一点鎖線で示されている。
【0083】
<6−3.段組の分割禁止(同一段組として許容される行ブロック間距離の算出)>
本来は同一段組であるが、偶然、行ブロックを分割することができるために複数の段組に分かれてしまうようなケースもまれに存在する。こうしたケースに対応するため、例えば連続する2つの行ブロック間の距離を算出し、その距離が所定値(例えば行ブロックの平均行間距離の2倍)以下の2つのブロック間には境界線を引くことを禁止する条件を追加することができる。
図13は、行ブロックB10,B11,B12を左側のカラム、行ブロックB20,B21を右側のカラムとした2段組構成の例を示す。行ブロックB10と行ブロックB11との間、行ブロックB20と行ブロックB21との間が空いているため、行ブロックB10と行ブロックB20から成る2段組構成、及び、行ブロックB11とB12と行ブロックB21とから成る2段組構成として分割してしまう恐れもある。しかし、行ブロックB20の平均行間距離(20)に対して、行ブロックB20と行ブロックB21とのブロック間距離(30)が所定値(20×2=40)以下であるとして、行ブロックB20と行ブロックB21との間に境界線を引くことを禁止することで、これらの行ブロックが2つの異なる段組に分かれることを防ぐことができる。
【0084】
また、見出しによる広い行間に境界線が引かれてしまう場合に、以下のように行ブロックの分割を防ぐようにしてもよい。行ブロックが見出しであるかどうかの判定を行い、見出しである場合には、その行ブロックと、その直後の行ブロックとを分割禁止とする距離の所定値を変更する(例えば、所定係数1.5を乗算する)等の方法により、分割を防ぐことも可能である。行ブロックが見出しか否かの判定は、例えば、横書きの文書であれば、上又は下の行ブロックと比較して左右に所定値以上(第1閾値、例えば、各文字のサイズ(行の高さ)など)の余白が存在し、左の余白と右の余白の大きさの差が所定値以下(例えば、第1閾値×0.1など)である、つまり左詰めでなくセンタリングされており、また他の行ブロックより各文字のサイズ(行の高さ)が大きい場合に、その行ブロックが見出し行であるとして判定する方法が挙げられる。なお、他の条件と組み合わせて判定しても構わない。
【0085】
なお、上記のような平均行間距離を基準とした所定値でも適切に分割できないような場合は、以下の[8.表示装置]にて説明するように、手動でレイアウトを修正できるようになっていてもよい。
【0086】
<6−4.位置関係以外の情報の活用>
また、行ブロックの位置関係に加えて、行ブロックが持つ各種情報を利用して、段組及びカラムの分類(すなわち境界線の設定)を行うことができる。行ブロックが持つ各種情報の例として、行の長さや主要な文字のサイズ等が挙げられる。隣り合う行ブロック同士でこれらの情報が大きく異なる場合は同一の段組に分類することを避けるようにすることができるし、逆に位置が大きく離れた行ブロック同士でも、例えば同じカラム境界線を共有することができ、かつ類似する情報を持つ場合、同一段組として分類してもよい。
【0087】
<6−5.行ブロックが0個もしくは1個しかない場合>
なお、段組解析処理部37に入力されたページ画像が、ただ1つの行ブロックを持つ場合、そのページ画像は1段構成の文書であるとして、境界線の設定は行わない。また、該ページ画像が、1つも行ブロックを持たない場合(すなわち白紙ページの場合)も境界線の設定は行わない。
【0088】
また、文書画像に文書第1方向の文字列行と文書第2方向の文字列行とが混在する場合は、文書第2方向の文字列行の行ブロックを図表行の行ブロックに置き換える。このことにより、文書第1方向に記述された文章の最中に、文書第2方向に記述された文章が混じることを防ぐことができる。
【0089】
<6−6.処理例>
段組解析処理部37が実行する処理の具体例として、例えば既に示した
図10に示す文書画像から検出された複数の行ブロックに対して段組解析処理を適用する場合について説明する。段組解析処理部37は、
図10に示す文書画像を、
図14に示す段組及びカラム(淡いグレー地)に分類する。カラムC1及びカラムC2は、それぞれ1段構成の段組G1及び段組G2を成し、カラムC3及びカラムC4は2段組構成の段組G3における左右のカラムを成している。なお、
図14では、行(文字列行及び図表行)を直線、行ブロックを点線、カラムを一点鎖線で囲んでいる。
【0090】
<6−7.行順序付け処理部>
行順序付け処理部38は、段組、カラム、行ブロック、及び行の位置関係から文書全体における行の順序を解析し、行順序リストを生成する処理を、以下の(1)〜(9)に従って行う。
(1)同じ行ブロックに属する行同士については、横書き文書であれば上から下、縦書き文書であれば右から左の順に優先順位を設定する。ここでは、上記のように既に、行ブロックに分類する際に、その行ブロックに含まれる行についての順序の情報も取得しているため、この情報を利用する。
(2)同じカラムに属する行ブロック同士については、横書き文書であれば上から下、縦書き文書であれば右から左の順に優先順位を設定する。
(3)連続する2つの行ブロック間では、優先順位の高い方の行ブロックの末尾の行の次に、優先順位の低い方の行ブロックの先頭の行が優先されるように設定する。
(4)同じ段組に属するカラム同士については、横書き文書であれば左から右、縦書き文書であれば上から下の順に優先順位を設定する。
(5)連続する2つのカラム間では、優先順位の高い方のカラムの末尾の行ブロックの次に、優先順位の低い方のカラムの先頭の行ブロックが優先されるように設定する。
(6)同じページに属する段組については、横書き文書であれば上から下、縦書き文書であれば右から左の順に優先順位を設定する。
(7)連続する2つの段組間では、優先順位の高い方の段組の末尾のカラムの次に、優先順位の低い方の段組の先頭のカラムが優先されるように設定する。
(8)同じ文書画像ファイルに属するページ同士については、ページ番号の小さい順に優先順位が高くなるよう設定する。
(9)連続する2つのページ間では、優先順位の高いページの末尾の段組の次に、優先順位の低い方のページの先頭の段組が優先されるように設定する。
【0091】
行順序付け処理部38は、上記のルール(1)〜(9)に従って、ページの順序、段組の順序、カラムの順序、行ブロックの順序を決定し、それらにより行の順序付けを行う。順序付けされた行は、各行が属する行ブロック、カラム、段組及びページの順序を示す番号を保有すると共に、先頭から順に各行の行IDを行順序リストに格納する。
行順序リストは、下記の規定(a)〜(c)に従う形式であれば特に構造は問わない。
(a)上記順序付けルールに従って決定された順序通りに行を呼び出すことができる。
(b)呼び出した行について、その座標情報や種類(文字列行か図表行か)等の各種情報を参照することができる。
(c)呼び出した行について、段落情報(後述)を格納することができる。
【0092】
<6−8.処理例>
行順序付け処理部38が、上記の規定に従って、
図14の構成の文書画像について行順序リストを生成した例を、
図15に示す。行順序リストは、決定された順序の先頭から順に、行のIDと、行の情報として、所属する行ブロックID、行の種別(文字列行であるか図表行であるか)、及び行の範囲を示す外接矩形の左上座標及び右下座標、の情報とを格納し、さらに行毎に段落情報を格納している。なお、
図15の例では、改行が発生するときに、その行から新たな段落が始まるとして、段落情報を改行の有無を有る(Yes)か無し(No)かの2通りで示しており、事前に「No」で初期化している。
図16のように行ブロックの情報やカラムの情報、段組の情報を別途作成し、相互参照により各行及び各行ブロックが所属するカラム、段組、ページを参照できるようにしておくことで、冗長の少ない行順序リストを構成することができる。もちろん、行順序リスト単独で各行に関する情報を全て抽出できるようにしてもよい。
【0093】
<6−9.段落解析処理部>
段落解析処理部39は、各行の前後の位置関係等の情報から、その行の位置で改行が発生しているかどうかを判定し、文書画像中の各行を1つ以上の段落に分類する処理を行う。具体的には、行順序リストから複数の行を参照して段落の切れ目、すなわち改行位置を判定し(改行判定処理)、段落毎に行の順序を記述した文書構造ツリーを生成する(文書構造ツリー生成処理)。
【0094】
ところで、文書中の図表は、必ずしも段落の切れ目に配置されるとは限らず、例えばページの端に挿入される場合が多く、それにより文章が図表を挟んで前後に分かれることがある。この順序のまま行を呼び出し、行を構成する要素(文字、図表)を挿入していくと、図表の挿入によって不自然に途切れた文章が出力されてしまう。そこで、本実施の形態では、段落毎に、文字列行と図表行とが混在した順序ではなく、文字列行の順序と図表行の順序をそれぞれ別に保有する文書構造ツリーを生成する。
図17は、文書構造ツリーの構造を示す図である。それにより、文書画像を構成する文字列のみの順序を把握しながら、その段落に係る図表を、段落の先頭や末尾等にまとめて配置できるようにする。
【0095】
<6−10.改行判定処理>
図18は、段落解析処理部39における、改行判定処理の概要を示すイメージ図である。改行判定処理は、判定の対象となる注目行と、注目行より前に順序づけられるM個の行と、注目行より後に順序づけられるN個の行と、のM+N+1個の行によって判定される。なお、
図18に示す例では、M=N=2としている。なお、改行判定の対象となる行、及びその前後の行は、いずれも文字列行である。本実施の形態では、M+N+1個の行IDバッファL[0],L[1]・・・,L[M+N]を記憶部5に備え、行順序リストで参照されるM+N+1個の行IDをそれぞれ格納することで、注目行と、注目行の前後の行との比較を行う。
【0096】
以下、段落解析処理部39の処理内容について詳細に説明する。
図19は、段落解析処理部39の処理手順を示すフローチャートである。段落解析処理の開始にあたり、事前に初期化を済ませておく。具体的には、リスト参照番号をLNOW=1とし、行IDバッファには全て無効行(0)を格納しておく。初期化が終わると、注目行にあたる行IDバッファL[M]に、行IDを選択して格納する(ステップS1、以下ではS1のように略す)。任意の行IDバッファL[k](k=0,1,・・・,M+N)の選択方法は以下の(1)〜(3)の通り行われる。
(1)行順序リストにおいて、第LNOW番目から順に、文字列行を探索する。
(2)最初に見つかった文字列行の行IDを行IDバッファL[k]に格納し、そのときの行順序リストの位置(リスト番号)に1を加えた番号を新たなリスト参照番号LNOWとして更新する。
(3)文字列行が見つからないまま行順序リストの末尾まで探索が終了した場合、行IDバッファL[k]には無効行(0)を格納する。
【0097】
行L[M]の更新後、行L[M]が有効行(ゼロでない行IDを持つ行)であるかどうかを判定し(S2)、有効行である場合(S2の判定がYES)、S3に移る。一方、L[M]が無効行である場合(S2の判定がNO)、入力した文書画像には文字列行が存在しない図表行のみの文書画像であるとして、文書構造ツリーの生成処理(後述)を実行する(S7)。
【0098】
次に、注目行より後の行に当たる行IDバッファL[M+1],・・・,L[M+N]に、行IDを選択して格納する(S3)。各バッファにおける行IDの選択方法は上記と同様であるため省略する。続いて、注目行L[M]の改行判定を実行する(S4)。改行判定は、改行判定対象となる注目行L[M]と、注目行より前に位置する行L[0],・・・,L[M−1]及び注目行より後に位置する行L[M+1],・・・,L[M+N]からなる複数の行を用いた公知の方法で行うことができる。簡単な例として、改行判定対象のインデントの有無を確認する方法がある。行L[M]の開始位置が、他の行に比べて文書第1方向に正値のずれが生じている場合に、行L[M]はインデントを持ち、行L[M]の位置で改行がなされているとみなすことができる。また、改行判定対象行L[M]の1つ前の行L[M−1]が、他の行に比べて短い場合、行L[M]の位置で改行がなされているとみなすことができる。例えば、
図18(M=N=2)のような横書きの文字列行が存在している場合、注目行L[2]の開始位置が、他の行に比べて右側(横書きの場合の正方向)にずれており、また1行前の行L[1]が他の行に比べて短いという特徴を持っており、これらの結果から、注目行L[2]は総合的に改行位置であるとして判定され易くなる。なお、文書編集者の好み等により段落の先頭行でインデントが付加されない場合もあり、また1つ前の段落の最終行が必ずしも短くなるとは限らないため注意する。
【0099】
他に改行位置であるかどうかの判定の例として、注目行の文字サイズが周辺の行に比べて大きく異なるかどうかを判定することで、見出し行のように文字サイズが大きくなっている行、また補足コメント等のように逆に文字サイズが小さくなっている行等で改行位置と判定することができる。また、周辺の連続する2つの行の行間距離に比べて、注目行とその1つ前の行との行間距離が大きくなっている場合に、1つ前の行で段落が終了している可能性が高くなる。上記挙げられた条件を例として、様々な条件を複合的に判定して、注目行における改行の有無を設定するのが好ましい。
【0100】
行L[M]の改行判定の結果は、行順序リストのL[M]に該当する行情報に段落情報として反映させる。段落情報は段落の切れ目が判るものであれば何でもよく、最も簡単な例として、改行の有無をYesあるいはNoの2通りで示すだけでもよい。
【0101】
改行判定対象行L[M]の改行判定が終了すると、注目行の次の行L[M+1]が有効行であるかどうかを判定し(S5)、L[M+1]が有効行である場合(S5の判定がYES)、行IDバッファの更新を行い、次の行についての改行判定を行う準備をする(S6)。行IDバッファの更新は、具体的には、
図20に示すように、L[0]=L[1],・・・,L[M+N−1]=L[M+N]としてバッファを1つずつずらすとともに、バッファL[M+N]を新たに行順序リストから選択する。バッファL[M+N]の選択方法は前述の方法と同様であるため省略する。バッファの更新後、S4に戻り、更新された注目行L[M]について、改行判定を行う。これを、S5で判定がNOとなるまで反復する。S5の判定がNOとなると、全ての文字列行について改行判定が終了したことになり、文書構造ツリーの生成処理を実行する(S7)。
【0102】
<6−11.文書構造ツリー生成処理>
段落解析処理部39による文書構造ツリー生成処理は、段落情報を考慮した行順序リストに格納された段落情報に従って実行される。但し、文書構造ツリーは事前に、
図21に示すような1つの空の段落(第0段落)を持つ状態に初期化されているものとする。初期段落番号をPNOW=0として、行順序リストの先頭から順に行の情報を参照し、段落情報から該行が段落開始行と判定された場合(段落情報がYES)のみ、PNOW=PNOW+1として段落番号の更新を行い、また文書構造ツリーに空の段落(第PNOW段落)を新たに追加する。そして、該行が文字列行である場合、文書構造ツリーの第PNOW段落が持つ文字列ツリーの末尾に該行の行IDを追加する。一方、該行が図表行である場合、文書構造ツリーの第PNOW段落が持つ図表ツリーの末尾に該行の行IDを追加する。これを行順序リストの各行について反復し、末尾まで探索が終了すると、文書構造ツリーの生成処理を終了する。なお、文字列行の改行位置から次の改行位置までが1つの段落となるので、図表行が段落の分類から漏れるということはない。そのため、ひと固まりの文字列行の後に図表行があり、その後新しい段落が始まる(改行が発生する)場合は、その図表行は1つ前の段落に含まれることになる。
【0103】
<6−12.処理例>
段落解析処理部39が実行する処理の具体例として、
図6の構成の文書画像(
図15に示す初期の行順序リストを持つ)に段落解析処理部39での処理を適用する場合について説明する。見出しに当たる行ID:101、行ID104、行ID:129の各行は、行の文字サイズや1つ前の行間距離等の条件から、改行位置と判定される。また行ID:106、行ID:112、行ID:119及び行ID:131の各行は、前後の複数の行に比べ、行の開始位置が文書第1方向において正方向にシフトしている、よってインデントが存在するとして、改行位置と判定される。行ID:102の行も、見出し行の行ID:101の次の行であることから、改行位置と判定することができる。従って、行ID:101、102、104、106、112、129、131、119の各行が改行位置として設定され、行順序リストの段落情報は、
図22のように更新される。
【0104】
例えば、行順序リストが
図22のように、段落情報として改行の有無(YesもしくはNo)が表されている場合、改行がある行から新しい段落が開始するとみなせるため、改行がある(Yes)場合に該行が段落開始行として判定することができる。また、段落が開始してから、次の改行位置が見つかるまでの行を同一の段落の範囲とみなす。更新された行順序リストの段落情報に従い、
図6の文書画像を段落毎に分類すると、
図24に示すように分類することができる。
図24において、段落R7は、左下の3行の文字列行(行ID:131,133,135)から、右上の図表行(行ID:105)及び4行の文字列行(行ID:111,113,115,117)までを同一の段落の範囲としており、行ID:135と行ID:111との文字列行の間に改行位置は存在しないため、一続きの文章を構成することが可能となる。更に、この行順序リストに従って文書構造ツリーを生成すると、
図23に示すような文書構造ツリーを得ることができる。
【0105】
[7.再配置処理部]
<7−1.再配置処理部の処理>
再配置処理部36は、レイアウト解析処理部35で定義した順序に従って行を呼び出す。そして、呼び出した行が文字列行である場合は対応する文字列行の先頭から順に文字を呼び出し、呼び出した行が図表行である場合は対応する図又は表を呼び出して、各要素の参照情報(要素を呼び出すための情報)を順に記述する。更に、要素が改行位置が含まれる行の末尾の要素である場合は、改行命令を挿入して参照リストを生成する処理を行う。つまり、参照リストは、文字列行及び図表行の順序付けに従って、文書画像に含まれる各要素の順序が、文字列中の文字においては文書第1方向に沿って、記述されている。
ここで、参照リストは、HTMLに代表されるようなマークアップ言語形式で記述することができる。以下では、HTMLファイルとして記述する場合を例として、再配置処理部36の詳細について説明する。
【0106】
図25は、再配置処理部36の処理手順を示すフローチャートである。以下、
図25に従って再配置処理部36の処理内容を説明する。
【0107】
図25に示すように、まず、ファイルのヘッダの記述を行う(S11)。ファイルのヘッダは、そのファイルの各種情報を記述するものである。例えばHTMLファイルの場合、
図26に示すように、そのファイルがHTML言語で記述されていることの宣言(<HTML>タグ)や、本文には記載しないファイルの情報、例えばスタイルの定義やページタイトル等の情報、コメント、本文の記述が開始することの宣言(<BODY>タグ)等が含まれる。
【0108】
続いて、本文の記述を行う。ここでは、レイアウト解析処理部35で生成した文書構造ツリーの第0段落を初期呼び出し位置として、呼び出し位置において文書構造ツリーから段落の情報が呼び出し可能であるかどうかを判定する(S12)。呼び出し可能である場合(S12の判定がYES)、文書構造ツリーから段落を呼び出し、該段落が少なくとも1行以上の行を持つかどうか判定する(S13)。該段落が少なくとも1行以上の行を持つ場合(S13の判定がYES)、該段落を構成する全ての行の情報を順次呼び出し、該行に含まれる要素を参照してファイルで表示するための記述を行うファイル記述処理を実行する(S14)。他方、該段落が1つも行を持たない場合(S13の判定がNO)、呼び出し位置を次の段落に移し、S12に戻る。
【0109】
図27は、S14でのファイル記述処理の処理手順を示すフローチャートである。呼び出した段落について、初めに、段落が開始することを宣言する段落開始宣言命令(後述の<7−2>の章を参照)を実行する(S21)。その後、該段落が持つ文字列行を、文書構造ツリーの先頭から順次呼び出し、該行に含まれる文字要素を参照するための要素参照処理を実行する(S22)。つまり、該行の先頭から順に要素(文字)を呼び出し、該要素の参照命令を実行する。具体的には、該行の先頭から順に要素を呼び出して、全ての要素に対して同様の処理を繰り返す。全ての要素に対して参照命令を終了すると、該行についての参照処理を終了し、次の文字列行を呼び出して同様の処理を繰り返す。以上の処理を、文書構造ツリーにおける該段落が持つ全ての文字列行(該段落の文字列行ツリーに含まれる全ての文字列行)に対して実行する。該段落の文字列行ツリーに含まれる全ての文字列行に対する要素参照処理を終えると、次に、図表行の要素参照処理を実行する(S23)。図表行は1つの要素しか持たないため、各図表行について1回の参照命令を行うと、該段落の持つ次の図表行(該段落の図表行ツリーに含まれる次の図表行)を呼び出し、同様の参照処理を実行する。該段落の図表行ツリーに含まれる全ての図表行について参照命令を実行すると、最後に、該段落についてのファイル記述処理が終了することを宣言する段落終了宣言(後述の<7−2>の章を参照)を実行し(S24)、ファイル記述処理(S14)を終了する。
【0110】
図25に戻り説明を続ける。S14の後は、呼び出し位置を次の段落に更新し、S12に戻る。
【0111】
以上の処理を、S12の判定がNOになる、すなわち、文書構造ツリーの全ての段落に対するファイル記述処理を終了するまで反復する。S12の判定がNOになると、フッタの記述を行う(S15)。
図26に示すように、フッタには、ヘッダの記述において開始を宣言した事項(例えば、本文の記述や、HTML言語の記述の開始等)の終了の宣言等が含まれる。フッタ部分の記述を終えるとファイルを保存し(S16)、終了する。なお、当該ファイルは、再配置処理部36から出力される。
【0112】
<7−2.各命令の例>
段落開始宣言命令の例として、例えば、段落タグ<p>を挿入する方法が挙げられる。この場合、段落終了宣言命令は必ず段落タグ</p>を挿入する方法とする。また、別の方法として、段落開始宣言命令は特に何も行わず、段落終了宣言命令として改行タグ<br>を挿入する方法も挙げられる。要素の参照命令は、例えば、出力ファイルに画像表示タグ<img>を挿入して、該要素の切り取り画像ファイルのパスを指定して表示させる方法が挙げられる。また、図表要素の参照命令は文字要素の参照命令と同様としてもよいし、図表要素の場合のみ、改行タグ<br>や表タグ<table>及び</table>等の挿入処理と組み合わせることで、より視認性の高いレイアウトを構成することができる。
【0113】
<7−3.図表を段落の先頭に配置修正したい場合>
上記では、各段落において図表を本文の後に配置する場合の処理手順について説明した。反対に、図表を本文の前に配置したい場合は、
図27において、S22とS23とを入れ替えることで容易に実現できる。また、図表を、段落の末尾に配置、段落の先頭に配置、もしくは図表を表示しない(文字列のみ表示する)等の複数のモードから操作パネル6を通じてユーザが指定できるようにしてもよい。
【0114】
<7−4.文書のスタイルの定義>
上記命令のほか、スタイルシートを組み込むことで、文書のファイル書式を変更しても構わない。スタイルシートは、HTML言語等で構造化された文書の見栄え、表示形式を効率的に制御する公知の手段である。これらの見栄え等の情報を「スタイル」と呼ぶ。スタイルシートは専用のコンピュータ言語で実現され、その例として、CSS(Cascading Style Sheet)等が挙げられる。また、スタイルシートを定義する場所は大きく分けて3つある。それは、ヘッダ要素内(<head>〜</head>間)にスタイル要素(<style>〜</style>)を追加してスタイルを記述する方法、スタイルを記述した外部ファイルを用意して、参照リストのヘッダ要素内で前記外部ファイルを呼び出す方法、及び本文部分(<body>〜</body>間)における各種タグにおいて、そのタグにのみ有効となるスタイルを記述する方法、である。これらの方法はただ1つに選択されるものではなく、複数の方法を組み合わせてスタイルシートを定義することもできる。本実施の形態では、公知の方法を利用するものとして以下では詳述をせず、簡単な記述例の紹介にとどめる。
【0115】
図28は、CSS形式で記述したスタイルシートの外部ファイルの例である。図中の範囲Aでは、段落を定義するタグ<p>のスタイルを定義しており、この例では各段落の先頭行に、1文字分のインデントを付加することが定義されている。これにより、段落開始宣言タグが呼び出された場合は常に1文字分のインデントを付加することができる。範囲Bと範囲Cでは、ともに画像を参照するタグ<img>のスタイルを定義しているが、範囲Bではgaijiというクラスに属する場合に限定したスタイルであり、範囲Cではfigというクラスに属する場合に限定したスタイルである。このように、同じタグに対しても、それぞれ固有のスタイルを持つ複数のクラスを定義して外部ファイルとして保存し(ここではstyle.cssというファイル名をつけている)、
図29に示す例(HTML言語で記述、一部のみ抜粋)のように、ヘッダ内で
図29(a)に示すような前記外部ファイル(
図28のものと同じ)を読み込み(
図29(b)の行291)、各タグにおいて所望のスタイルを持つクラスを指定することで、局所的なスタイルの指定を行うことが可能となる。
図28及び
図29の例では、画像の参照時において、文字を表わす画像である場合に、imgタグ内において、
図29(b)の行292〜行295のようにclass=”gaiji”と記述することで、gaiji(外字)クラスを指定し、図表を表わす画像である場合に行29(b)の行296のようにclass=”fig”と記述することで、fig(図)クラスを指定しており、このように要素ごとに適切なスタイルを定義することで、より見栄えのよい文書を表現することが可能となる。
また、操作パネルでこれらのスタイルを選択して指定できるようにしてもよい。例えば、文書画像データから決定した文書第1方向とは別に、再配置する際の文書の方向を、操作パネルを通じてユーザが指定できるようにしてもよい。具体的には、HTML言語形式のフォーマットにおいてCSS形式によりhtml{ writing−mode: tb−rl;}とスタイルシートを定義することで、本文全体の文書の行方向を上から下、更に行が右から始まり左に進む、すなわち縦書き表記が可能となる。従って、縦書きでのリフロー表示が選択された場合に、前記のようなスタイルシートの定義を追加するようにすることで、縦書き表示を実現できるようになる。なお、縦書き表記の実現方法は前記の方法以外の方法をとることができる。また、出力時の文書の方向として「自動モード」を準備し、行解析処理部31で得られた文書第1方向と同じ方向で出力するように自動的に選択するようにすることもできる。
【0116】
<7−5.他のファイル形式>
本実施の形態の再配置処理部36においては、入力された文書画像からHTMLファイルを出力する場合について述べたが、出力するファイルはHTMLファイルに限らず、リフロー型表示を実現するあらゆるファイル形式(例えば、XMLファイル、XMDFファイル等)として出力することができる。
【0117】
本実施の形態では、以上のように、文書画像からその構造を解析し、行の順序を理解することで、行を順に参照し、さらにその行を構成する文字や図表を先頭から順に参照して行くことで、フィックス型の画像ファイルとして生成された文書画像であっても、リフロー型のファイルとして変換するための情報(参照ファイル)を得る。また、改行の有無を判定し、段落の範囲を定義することで、文書画像に行の折り返しがあっても、1つの段落内では改行をしないようにするほか、各段落に従属する図又は表の配置を、その段落の先頭や末尾にまとめて表示する等の修正をすることで、文字列と文字列の間に図又は表が挟まれていても、同一段落内とみなされていれば、そのまま図又は表を挟まずに配置するよう修正することにより、文章の連続性及び可読性を向上することができる。
【0118】
[8.表示装置]
<8−2.表示装置での参照リストの使用>
前記生成された参照リスト及び切り出した各要素の画像データは、本実施形態の画像形成装置100が備える送信装置4から送信され、受信側の装置である表示装置(例えば、スマートフォンやタブレット等であってもよい)が備える閲覧プログラム(ビューア)を通じて閲覧することができる。参照リストが取るファイル形式によって最適な閲覧プログラムは異なり、例えば、参照リストとしてHTMLファイルの形式をとる場合、Internet Explorer(登録商標)等、良く知られたウェブブラウザを用いて開くことで、容易にリフロー型の表示を実現することが可能となる。
【0119】
なお、特定のマークアップ言語形式のファイルに変換せず、各要素(文字・図表)を参照する順序と段落の開始宣言及び終了宣言等、再配置処理部36で得られた文書構造を列記したテキストデータとして参照リストを生成することもできる。この参照リストは、例えば文書構造の解析結果として利用することも可能であるし、受信側の装置が備えるコンピュータプログラム(変換プログラム)等によって、所望のファイル形式に変換することも可能である。また、このようにファイル形式の変換を二段階とすることで、処理ステップ数の増加はあるものの、同じ文書画像データから複数のファイル形式への変換を行いたい場合に参照リストを共通で使用することが可能となるほか、前記変換プログラムにおいてレイアウト解析結果の手動による修正も可能となる。
【0120】
受信側の表示装置では、画像形成装置100から送信される参照リストとして、表示装置の備えるビューアアプリケーションに適したファイル形式(HTML等)に変換したものを受信すると、そのアプリケーションにおいてファイルを読み込むだけでリフロー変換を表示できるので、特別な処理はない。ただし、参照リストが特定のビューアと関連付けされていない、たとえば、最も単純な形式として座標情報等を列記しただけのようなものである場合、そのままではリフロー型の表示はできない。このような参照リストを受信した場合、再配置するための処理は必要となるが、公知の処理を利用することができる。
【0121】
また、表示装置の表示領域の表示幅に合わせて、参照リストが参照する文字は、折り返し部分が変更され、図や表については、表示幅に合わせて縮小又は拡大表示される。例えば、上記(7−4)で説明したように、図又は表にfigクラスを割り当て、HTMLファイル形式で出力する場合、画像の幅(もしくは高さ)を表示装置の表示幅(もしくは高さ)に対する割合として設定することで、表示装置の表示幅や表示倍率が変更となった場合でも、そのときの表示幅(もしくは高さ)に合わせて自動調整させることが可能となる。
【0122】
上記のように表示装置の表示幅(横書きの場合)に対する割合として画像の幅を設定する方法の例として、たとえば、imgタグの呼び出し時にfigクラスに属するもののみimgタグのサイズ属性として下記のようにパーセンテージを追加する、
<img class=”fig” src=”〜〜”width=”90%”/> ・・・(8)
もしくはCSS形式でfigクラスのスタイルシートとして下記を追加する。
.fig{width:90%;} ・・・(9)
等の方法がある。上記(8)又は(9)の方法はいずれも、表示幅に対して90%のサイズが図又は表の幅として設定され、表示領域が変更された際には自動で変更後の表示幅の90%を図又は表の幅として再設定する。(8)は、上記のサイズ属性の設定を追加したimgタグのみに適用される、すなわち個別に適用されるのに対し、(9)は、figクラスを割り当てた図表を一括で設定する点で異なる。もちろん、上記以外の公知の方法を利用することも可能である。
【0123】
<8−2.図表の表示の別の例>
上記(7−1)、(7−3)では、段落の最後又は最初に図表を表示する方法を開示したが、それらとは別に、図表を本文と同じファイル上に混在して表示せずに、画像へのリンク一覧(先頭の段落から順に図表を並べる)を別途作成し、そのリンク一覧からユーザが所望したときに選択した画像を個別に表示できるようにしてもよい。
【0124】
例えば、
図32の(a)及び(b)に示すように、画像形成装置100にて生成された参照リスト及び抽出した(切り出した)各要素の画像を受信する表示装置400において、コンテンツを表示するコンテンツ表示領域401とユーザ操作を受け付ける操作領域402とを個別に備え、操作領域402に、本文と画像リンク一覧との表示を切り替える操作機能を実行する手段を備えることで、ユーザが所望するときに、コンテンツ表示領域に表示する内容を本文と図表とで切り替えるようにすることができる。
【0125】
また、
図33及び34のように、表示装置400において、コンテンツ表示領域401と操作領域402とを個別に備え、操作領域402に、リンク一覧の先頭から順に各画像へのリンクを表示し、選択できるように構成してもよい。リンクの表示の方法は、例えば、
図33のように符号(
図1、
図2、・・・等順序を認識できるものが望ましい)や、画像のサムネイル等を利用することができる。リンクを選択すると、選択したリンクに対応する図表を表示する。図表の表示方法は、例えば、コンテンツ表示領域401に表示する方法のほかに、
図35に示すように、コンテンツ表示領域401に重畳して図表表示領域403を生成し、図表表示領域403に該当する図表を表示する、いわゆるポップアップ形式を採用してもよい。
【0126】
上記のようにコンテンツ表示領域401と操作領域402とを備える場合、操作領域402は、コンテンツ表示領域401と必ずしも分離されている必要は無く、コンテンツ表示領域401に重畳して表示してもよく、また、操作領域402は常時表示せずに表示の命令が入力された場合にのみ画面上に表示するようにしてもよい。表示の命令の入力方法は、たとえば、表示装置400が備えるタッチパネルのうち表示領域に該当する範囲において、一定時間以上、タッチ開始時点でのタッチ座標から一定距離以上離れることなくタッチパネルをタッチした状態を継続する(いわゆる長押し)等が挙げられる。
【0127】
なお、上記の方法自体は、図表の順序や対応する段落との関連付けの精度を向上するものでは無いが、図表の表示位置を固定せず、「(ほぼ)本文の順序通りに並んだ図表の一覧」からユーザ自身が選択して閲覧することで、対応する段落との関連付けが困難な複雑なレイアウトの文章を読み進める上での違和感を解消させることができる。
【0128】
〔実施の形態2:画像読取装置〕
実施の形態1では、本発明に係る変換処理装置を画像形成装置が有する画像処理装置に適用した構成について説明したが、これに限るものではない。そこで、本実施の形態では、本発明に係る変換処理装置を変換処理部として、フラットベッドスキャナ等の画像読取装置が有する画像処理装置に適用した例について説明する。
【0129】
なお、実施の形態1の説明に用いた図面に記載されている部材と同じ機能を有する部材については、以下の説明においても同じ符号を付記する。また、それらの各部材の詳細な説明はここでは繰り返さない。
【0130】
図30は、実施の形態2に係る画像処理装置1aを備える画像読取装置(情報処理装置)200の構成を示すブロック図である。
図30に示すように、画像読取装置200は、画像処理装置1a、画像入力装置2、送信装置4、記憶部5、及び操作パネル6を備えている。画像処理装置1aは、A/D変換部11、シェーディング補正部12、原稿種別判別部13、入力階調補正部14、領域分離処理部15、圧縮処理部21、及び変換処理部(変換処理装置)22を備えている。当該変換処理部22にて、実施の形態1にて説明したのと同様に、参照リストが生成される。
【0131】
画像読取装置200で実行される各種処理は、画像読取装置200に備えられる図示しない制御部(CPU(Central Processing Unit)あるいはDSP(Digital Signal Processor)等のプロセッサを含むコンピュータ)により制御される。
【0132】
本実施の形態では、画像読取装置200は、スキャナに限定されることはなく、例えば、デジタルスチルカメラ、書画カメラ、あるいは、カメラを搭載した電子機器類(例えば、携帯電話、スマートフォン、タブレット端末等)であってもよい。
【0133】
〔実施の形態3:ネットワークを経由した変換処理装置〕
上記では、本発明に係る変換処理装置を、画像形成装置100あるいは画像読取装置200が有する画像処理装置1、1aに適用する例を示したが、これに限るものではない。本発明に係る変換処理装置を、例えばサーバ装置に適用してもよい。この場合のサーバ装置の構成の一例は、画像形成装置あるいは画像読取装置により画像読取及び各種画像処理が施された文書画像をネットワークを介して受信する受信装置と、実施の形態1にて説明した変換処理部22での処理を実行する変換処理装置と、当該変換処理装置から出力されたファイル(文書画像及び参照リスト)をネットワークを介して送信する送信装置と、を備えたサーバ装置(情報処理装置)である。
【0134】
このようにサーバ装置を構成することにより、画像形成装置あるいは画像読取装置にて画像読取及び各種画像処理が施された文書画像を、ネットワークを経由して受信して、上記の変換処理部22での処理を実行する変換処理装置により参照リストを生成し(フォーマット変換を適用し)、出力されたファイルをユーザの端末装置(例えば、スマートフォンやタブレット端末等)に送信する、という使い方が可能となる。また、このサーバ装置により、既に設置された画像形成装置あるいは画像読取装置を交換することなく、フォーマット変換機能を利用することが可能となる。また、フォーマット変換後のファイルをサーバ装置に記憶しておくことで、ユーザが望むときに変換後のファイルを受信して閲覧することも可能となる。
【0135】
なお、上記サーバ装置の受信装置が受信する文書画像は、画像形成装置や画像読取装置等にて生成された文書画像である必要は無い。例えばWordファイルやPDFファイル等のように、構造化された文書ファイルを画像化したものを文書画像として受信してもよい。
【0136】
〔実施の形態4:記録媒体・プログラム〕
上記で説明した画像処理装置1,1a,1b(特に、変換処理部22,22a)やサーバ装置(特に、変換処理装置)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
【0137】
後者の場合、画像処理装置1,1a,1bやサーバ装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラム及び各種データがコンピュータ(又はCPU)で読み取り可能に記録されたROM(Read Only Memory)又は記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)等を備えている。そして、コンピュータ(又はCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0138】
なお、上記した画像処理装置1,1a,1b及び画像処理方法は、カラーの画像データを扱う構成としたが、これに限るものではなく、白黒の画像データを扱う構成であってもよい。
【0139】
本発明は上述した各実施の形態に限定されるものではなく、種々の変更が可能である。すなわち、本発明の要旨を逸脱しない範囲内において適宜変更した技術的手段を組み合わせて得られる実施の形態についても本発明の技術的範囲に含まれる。
【0140】
〔まとめ〕
本発明の態様1に係る変換処理装置(変換処理部22)は、文書を画像化した文書画像の再構成を行う変換処理装置において、前記文書画像から文字、図、及び表をそれぞれ抽出し、前記文書画像における各行を文字から成る文字列行と図又は表から成る図表行とに分類し、かつ、前記文書画像における文書の記述方向を決定する行解析手段(行解析処理部31)と、前記文書のレイアウトに基づき、前記文字列行及び図表行の順序付けを行うレイアウト解析手段(レイアウト解析処理部35)と、前記文字列行及び図表行の順序付けと前記記述方向とに従って、前記文書画像に含まれる各文字、図、及び/又は表の順序を記述した参照リストを生成する参照リスト生成手段(再配置処理部36)と、を備える。
【0141】
上記構成によると、文書画像から個々の文字、図、及び表をそれぞれ抽出し、文書画像における各行を文字列行と図表行とに分類し、文書の記述方向を決定し、文書のレイアウトに基づき、文字列行及び図表行の順序付けを行う。そして、この順序付けと記述方向とに従って、文書画像に含まれる各文字、図、及び/又は表の順序を記述した参照リストを生成する。
【0142】
この参照リストは、文字列行及び図表行の順序付けと文書の記述方向とに従ったものであり、リフロー型のファイルとして変換するための情報である。参照リストとして、文書画像をリフロー型表示が可能なファイル形式に変換したものを生成することで、処理量を減らして、あらゆる表示装置の表示領域(表示画面)にそれぞれ適したレイアウト配置が可能となる。参照リストを用いることで、表示装置では、文書画像の文書の記述方向に垂直な方向のスクロール操作のみでの表示を実現することが可能となる。
【0143】
また、参照リストを、文書構造を列記したテキストデータとして参照リストを生成することで、閲覧用途でなく文書構造の解析用途とすることができる。加えて、出力されたテキスト形式の参照リストから更に所望のファイルフォーマットに変換することで、別のファイルフォーマットで出力したい場合に最初から処理をやり直さなくてもよくなる。
【0144】
本発明の態様2に係る変換処理装置は、態様1において、さらに、前記文字列行及び図表行それぞれについて、行の配置に基づいて連続する行同士を統合した行ブロックを生成することで、前記文字列行及び図表行を当該行ブロックに分類する行ブロック解析手段(行ブロック解析処理部34)を備え、前記レイアウト解析手段は、前記行ブロックの配置に基づいて、前記行ブロックを段組及び当該段組を構成するカラムに分類し、前記段組、カラム、行ブロック、文字列行及び図表行の配置を基に、前記文書全体における前記文字列行及び図表行の順序付けを行うと共に、前記文字列行の繋がりに基づいて前記文字列行及び図表行を段落に分類し、段落毎に前記文字列行及び図表行の順序付けを行い、前記参照リスト生成手段は、前記段落毎の前記文字列行及び図表行の順序付けと前記記述方向とに従って、前記参照リストを生成する。
【0145】
上記構成によると、文字列行及び図表行を、行ブロック、段組、カラムに分類し、段組、カラム、行ブロック、文字列行及び図表行の配置を基に、文書全体における前記文字列行及び図表行の順序付けを行い、さらに、文字列行の繋がりに基づいて文字列行及び図表行を段落に分類し、段落毎に文字列行及び図表行の順序付けを行い、この段落毎の前記文字列行及び図表行の順序付けと前記記述方向とに従って、参照リストを生成する。段落を定義することで、文書画像に行の折り返しがあっても、1つの段落内では改行をしないようにするほか、各段落に従属する図又は表の配置を、その段落の先頭や末尾にまとめて表示する等の修正をすることで、文字列と文字列の間に図又は表が挟まれていても、同一段落内とみなされていれば、そのまま図又は表を挟まずに配置するよう修正することにより、文章の連続性及び可読性を向上することができる。
【0146】
本発明の態様3に係る変換処理装置は、上記態様2において、前記レイアウト解析手段は、前記段落毎に、前記文字列行と前記図表行とを分けて順序付けを行う。
【0147】
上記構成によると、段落毎に文字列行と図表行とを分けて順序付けを行うことで、図又は表の挿入により、文章が不自然に分離されるのを避けることができる。
【0148】
本発明の態様4に係る変換処理装置は、上記態様2又は3において、前記レイアウト解析手段は、前記文字列行より、注目行とその前後に隣接する文字列行である隣接行とを抽出し、前記注目行及び前記隣接行の位置関係に基づいて、前記注目行と当該注目行の前の隣接行との間で改行されているか否かを判定し、改行されている場合には、前記注目行を段落開始行に設定する段落解析手段(段落解析処理部39)を備える。
【0149】
上記構成によると、上記のように注目行と当該注目行の前の隣接行との間で改行されているか否かを判定し、改行位置を基準に段落の範囲を定義することができる。よって、途中で図表が挟まれていても適切に改行位置を判定し、図表の位置を段落内で調整することが可能となる。
【0150】
本発明の態様5に係る変換処理装置は、上記態様1から4の何れか1つにおいて、前記参照リスト生成手段は、前記参照リストとして、前記文書画像をリフロー型表示が可能なファイル形式に変換したものを生成する。
【0151】
上記構成によると、参照リストとして、文書画像をリフロー型表示が可能なファイル形式に変換したものを生成することで、電子書籍に適したファイル形式での記述を行うことができる。よって、変換機能の提供が可能となる。そのため、参照リストを使用する表示装置にてリフロー型表示を行うことができ、ユーザは少ない処理ステップ数で簡単に閲覧できるようになる。
【0152】
本発明の態様6に係る変換処理装置は、上記態様1から5の何れか1つにおいて、前記行解析手段は、前記文書画像から個々の文字を抽出する際、行頭に配置されることが禁止された記号を、前記記述方向における1つ前の文字と統合した状態、かつ、行末に配置されることが禁止された記号を、前記記述方向における1つ後の文字に統合した状態で抽出する。
【0153】
上記構成により、行頭に配置されることが禁止された記号をその1つ前の文字と統合することで、行頭禁則の記号(句読点や終わりの括弧等)が行頭に来たり、行末に配置されることが禁止された記号をその1つ後の文字と統合することで、行末禁則の記号(始まりの括弧等)が行末に来たりすることを防ぐことができる。
【0154】
本発明の態様7に係る変換処理装置は、上記態様1から6の何れか1つにおいて、前記行解析手段は、前記文書画像が複数ページから構成されていると、当該複数ページの文書画像から分類される文字列行の少なくとも一部を用いて前記記述方向を決定し、当該決定した記述方向を前記複数ページに対して設定する。
【0155】
複数ページにまたがる文書画像において、挿絵やグラフ、写真等がページの大部分を占めてページ単位での記述方向の決定が困難となる場合がある。しかし、上記構成によると、ページ単位でなく、入力された文書画像の全ページにわたって解析を行う。そのため、上記のような判定の難しいページに対しても記述方向の決定(設定)が可能となる。ここで、「一部」とは、例えば、「特に文字数の多いページTOP3」、「表紙と最終ページを除いたページ」等であってもよい。このような場合、本文らしさを考慮した限定的な解析が可能となる。
【0156】
本発明の態様8に係る変換処理装置は、前記態様2において、前記行ブロック解析手段は、前記文書画像に前記記述方向と直交する方向の文字列行が存在する場合は、当該直交する方向の文字列行の行ブロックを図表行の行ブロックに置き換える。
【0157】
上記構成によると、ある方向(記述方向)に記述された文章中に、その方向と直交する方向に記述された文章が混在することを防ぐことができる。
【0158】
本発明の態様9に係る情報処理装置は、上記態様1から8の何れか1つに記載の変換処理装置と、上記生成された参照リストを送信する送信装置と、を備える。
【0159】
上記情報処理装置は、例えば、画像形成装置、画像読取装置、サーバ装置等であってもよい。また、画像読取装置は、スキャナ、デジタルスチルカメラ、書画カメラ、あるいは、カメラを搭載した電子機器類(例えば、携帯電話、スマートフォン、タブレット端末等)等であってもよい。上記情報処理装置が、例えば、画像形成装置である場合、読み込まれた画像データに変換処理を施して画像データを再構成し、アドレスを指定して再構成された画像データを受信側装置(例えば、タブレット端末等)に送信することにより、受信側装置にて、一方向(文書の記述方向と直交する方向)のスクロールのみで画像を閲覧することができる。
【0160】
なお、上記変換処理装置は、コンピュータによって実現してもよい。この場合には、コンピュータを上記各手段として動作させることにより上記変換処理装置をコンピュータにて実現させるプログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。