(58)【調査した分野】(Int.Cl.,DB名)
前記結合セル候補が複数の前記仮セルを含む場合、当該複数の仮セルのうち、隣り合う2つの前記仮セル間の境界を、所定の判定基準により、分離または結合して、前記結合セル候補を、矩形で構成される仮セルの集合である少なくとも1つのセルブロックに分類する第2分類処理部
を備えることを特徴とする請求項1に記載の変換処理装置。
【発明を実施するための形態】
【0025】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。本発明による実施形態では、文書画像情報から、Wordなど各種オフィス用文書ファイル情報への変換(文書構造化)を行う際に、検出されたラインや文字などの情報から表のセル構造を解析し、より自然にセル同士の結合または分離を行う。
【0026】
〔実施の形態1:画像形成装置〕
以下の説明では、本発明に係る変換処理装置が変換処理部30として画像処理装置1の一部を成し、また、その画像処理装置1が画像形成装置100の一部を成す形態を例示する。
図1は、実施の形態1に係る画像形成装置100(情報処理装置)の機能的構成を示すブロック図である。画像形成装置100は、たとえば、コピー機能及びスキャナ機能等を有するデジタル複合機である。画像形成装置100は、画像処理装置1、画像入力装置2、画像出力装置3、送信装置4、操作パネル5、及び記憶部6を備えている。
【0027】
操作パネル5は、画像入力装置2、画像処理装置1、画像出力装置3及び送信装置4に接続されている。操作パネル5は、ユーザが画像形成装置100の動作モードを設定するための設定ボタン及びテンキー等の操作部(不図示)と、液晶ディスプレイ等で構成される表示部(不図示)とを備える。
【0028】
画像形成装置100で実行される各種処理は、不図示の制御部(CPU(Central Processing Unit)あるいはDSP(Digital Signal Processor)等のプロセッサを含むコンピュータ)が制御する。画像形成装置100の制御部は、不図示のネットワークカード及びLANケーブルを介して、ネットワークに接続されたコンピュータ及び他のデジタル複合機等とデータ通信を行う。
【0029】
以下、画像形成装置100の各部について詳述する。画像入力装置2は、原稿から画像を光学的に読み取る。画像入力装置2は、たとえば、CCD(Charge Coupled Device)を有するカラースキャナよりなり、原稿からの反射光像を、CCDを用いてRGB(R:赤,G:緑,B:青)のアナログ信号として読み取り、画像処理装置1へ出力する。画像入力装置2は、スキャナでなくてもよく、たとえば、デジタルカメラ等であってもよい。
【0030】
画像処理装置1は、画像入力装置2が読み取った画像データに処理を施し、処理を施した画像データを保存、あるいは、送信するために圧縮ファイルを生成する。画像処理装置1は、画像入力装置2から入力されたRGBのアナログ信号に対して、A/D変換部10、シェーディング補正部11、原稿種別判別部12、入力階調補正部13、及び領域分離処理部14により、各後述する画像処理を実行することによって、RGBのデジタル信号(以下、RGB信号という)からなる画像データを生成する。
【0031】
また、画像処理装置1は、領域分離処理部14が出力したRGB信号に対して色補正部15、黒生成下地除去部16、空間フィルタ処理部17、出力階調補正部18、及び階調再現処理部19により、各後述する画像処理を実行することによって、CMYK(C:シアン,M:マゼンタ,Y:イエロー,K:ブラック)のデジタル信号からなる画像データを生成して、ストリームとして画像出力装置3へ出力する。なお、画像出力装置3へ出力される前に、画像データが、記憶部6に一旦記憶されてもよい。記憶部6は、たとえば、不揮発性の記憶装置(たとえば、ハードディスク)である。
【0032】
画像出力装置3は、画像処理装置1が生成した画像データに基づいて画像を出力する。画像出力装置3は、画像処理装置1から入力された画像データに基づいて、熱転写、電子写真、又はインクジェット等の方式により、記録シート(たとえば、記録用紙等)上にカラー画像を形成(印刷)して出力する。なお、画像出力装置3はカラー画像を出力する構成に限られるものではなく、たとえば、記録シート上にモノクローム画像を形成して出力する構成であってもよい。この場合、画像処理装置1により、カラー画像の画像データがモノクローム画像の画像データに変換されてから画像出力装置3へ出力される。
【0033】
更にまた、画像処理装置1において、領域分離処理部14が出力したRGB信号に対して圧縮処理部20が、画像圧縮処理を実行することによって、圧縮されたカラー画像の画像データを有する圧縮ファイルを生成し、送信装置4へ出力する。なお、送信装置4へ出力される前に、圧縮ファイルが記憶部6に一旦記憶されてもよい。
【0034】
画像処理装置1の変換処理部30は、操作パネル5においてフォーマット変換モードが選択されている場合、領域分離処理部14が出力したRGB信号に対してフォーマット変換処理を実行する。このフォーマット変換処理により、変換処理部30は、後述のように、カラー画像が有する文書レイアウトを解析して文書構造ツリーを生成し、この文書構造ツリーを操作パネル5においてユーザが選択したフォーマットに変換して、送信装置4へ出力する。なお、変換処理部30は、本発明に係る変換処理装置として機能する機能部でもある。また、送信装置4へ出力される前に、変換されたファイルが記憶部6に一旦記憶されてもよい。
【0035】
送信装置4は、画像処理装置1が生成した圧縮ファイルを外部へ送信する。送信装置4は、図示しない公衆回線網、LAN(Local Area Network)又はインターネット等の通信ネットワークに接続可能であり、ファクシミリ又は電子メール等の通信方法により、通信ネットワークを介して外部へ圧縮ファイルを送信する。たとえば、操作パネル5において「scan to e-mail」モードが選択されている場合、ネットワークカード、モデム等を用いてなる送信装置4は、圧縮ファイルを電子メールに添付し、設定された送信先へ送信する。
【0036】
なお、ファクシミリ送信を行う場合は、画像形成装置100の制御部が、モデム等を用いてなる送信装置4により、相手先との通信手続きを行い、送信可能な状態が確保されたときに、圧縮ファイルに対して圧縮形式の変更等の必要な処理を施してから、相手先に通信回線を介して順次送信する。
また、ファクシミリを受信する場合、画像形成装置100の制御部は、送信装置4により、通信手続きを行いながら、相手先から送信されてくる圧縮ファイルを受信して、画像処理装置1に入力する。
【0037】
画像処理装置1では、受信した圧縮ファイルに対し、不図示の圧縮/伸張処理部で伸張処理が施される。圧縮ファイルを伸張することによって得られた画像データには、必要に応じて、不図示の処理部で回転処理及び/又は解像度変換処理等が施され、また、出力階調補正部18で出力階調補正が施され、階調再現処理部19で階調再現処理が施される。各種画像処理が施された画像データは、画像出力装置3へ出力され、画像出力装置3により、記録シート上に画像が形成される。
【0038】
以下では、画像処理装置1の構成について、画像処理装置における画像処理及びフォーマット変換処理を詳述しながら説明する。A/D変換部10は、画像入力装置2から画像処理装置1へ入力されたRGBのアナログ信号を受け付け、RGBのアナログ信号をRGBのデジタル信号(即ちRGB信号)へ変換し、変換したRGB信号をシェーディング補正部11へ出力する。
【0039】
シェーディング補正部11は、A/D変換部10から入力されたRGB信号に対して、画像入力装置2の照明系、結像系及び撮像系で生じる各種の歪みを取り除く処理を行う。次いで、シェーディング補正部11は、歪みを取り除いたRGB信号を原稿種別判別部12へ出力する。原稿種別判別部12では、シェーディング補正部11から入力されたRGBの反射率信号をRGB各色の濃度を示す濃度信号に変換し、文字、印刷写真、又は写真(連続階調写真)等の原稿のモードを判別する原稿種別判別処理が実行される。原稿種別判別処理を、ユーザが操作パネル5を用いてマニュアル設定する場合、原稿種別判別部12は、シェーディング補正部11から入力されたRGB信号をそのまま後段の入力階調補正部13に出力する。原稿種別判別処理の処理結果は、後段の画像処理に反映される。
【0040】
入力階調補正部13は、RGB信号に対して、カラーバランスの調整、下地濃度の除去、及びコントラストの調整等の画質調整処理を行う。入力階調補正部13は、次に、処理を行ったRGB信号を領域分離処理部14へ出力する。領域分離処理部14は、入力階調補正部13から入力されたRGB信号が表す画像中の各画素を、文字領域、網点領域、又は写真領域のいずれかに分離する。また、領域分離処理部14は、分離結果に基づき、各画素がいずれの領域に属しているかを示す領域識別信号を、黒生成下地除去部16、空間フィルタ処理部17、階調再現処理部19、及び圧縮処理部20へ出力する。更に、領域分離処理部14は、入力階調補正部13から入力されたRGB信号を、そのまま後段の色補正部15及び圧縮処理部20へ出力する。
【0041】
色補正部15は、領域分離処理部14から入力されたRGB信号をCMYのデジタル信号(以下、CMY信号という)へ変換し、色再現の忠実化実現のために、不要吸収成分を含むCMY色材の分光特性に基づいた色濁りをCMY信号から取り除く処理を行う。次いで、色補正部15は、色補正後のCMY信号を黒生成下地除去部16へ出力する。黒生成下地除去部16は、色補正部15から入力されたCMY信号に基づき、CMY信号から黒色(K)信号を生成する黒生成処理と、CMY信号から黒生成処理で得たK信号を差し引いて新たなCMY信号を生成する処理とを行う。この結果、CMY3色のデジタル信号は、CMYK4色のデジタル信号(以下、CMYK信号という)に変換される。次いで、黒生成下地除去部16は、CMY信号を変換したCMYK信号を空間フィルタ処理部17へ出力する。
【0042】
黒生成処理の一例としては、一般に、スケルトン・ブラックによる黒生成を行う方法が用いられる。この方法では、スケルトン・カーブの入出力特性をy=f(x)、入力されるデータをC,M,Y、出力されるデータをC',M',Y',K'、UCR(Under Color Removal)率をα(0<α<1)とすると、黒生成下地除去処理は、下記の式(1)〜式(4)で表わされる。
【0047】
ここで、UCR率α(0<α<1)とは、CMYが重なっている部分をKに置き換えてCMYをどの程度削減するかを示すものである。式(1)は、CMYの各信号強度の内の最も小さい信号強度に応じてK信号が生成されることを示している。
【0048】
空間フィルタ処理部17は、黒生成下地除去部16から入力されたCMYK信号の画像データに対して、領域分離処理部14から入力された領域識別信号に基づいてデジタルフィルタによる空間フィルタ処理を行い、空間周波数特性を補正することによって、画像のぼやけ又は粒状性劣化を改善する。たとえば、領域分離処理部14により文字に分離された領域に対しては、空間フィルタ処理部17は、文字の再現性を高めるために、高周波成分の強調量が大きいフィルタを用いて空間フィルタ処理を行う。また、領域分離処理部14により網点に分離された領域に対しては、空間フィルタ処理部17は、入力網点成分を除去するためのローパス・フィルタ処理を行う。
【0049】
次いで、空間フィルタ処理部17は、処理後のCMYK信号を出力階調補正部18へ出力する。出力階調補正部18は、空間フィルタ処理部17から入力されたCMYK信号に対して、画像出力装置3の特性に基づく出力階調補正処理を行い、出力階調補正処理後のCMYK信号を階調再現処理部19へ出力する。階調再現処理部19は、出力階調補正部18から入力されたCMYK信号に対して、領域分離処理部14から入力された領域識別信号に基づいて、中間調処理を行う。たとえば、領域分離処理部14により文字に分離された領域に対しては、階調再現処理部19は、高域周波成分の再現に適した高解像度のスクリーンによる二値化又は多値化の処理を行う。また、領域分離処理部14により網点に分離された領域に対しては、階調再現処理部19は、階調再現性を重視したスクリーンでの二値化又は多値化の処理を行う。次いで、階調再現処理部19は、処理後の画像データを画像出力装置3へ出力する。
【0050】
圧縮処理部20は、領域分離処理部14から入力された領域識別信号と、RGB信号からなる画像データとに基づき、圧縮ファイルを生成する。圧縮処理部20に入力される画像データは、マトリクス状に配置されている複数の画素で構成されている。この画像データは、前景レイヤと背景レイヤとに分離され、前景レイヤが更に二値画像に変換され、各二値画像がたとえばMMR(Modified Modified READ)で可逆圧縮され、背景レイヤがたとえば、JPEG(Joint Photographic Experts Group)で非可逆圧縮される。最後に、可逆圧縮された二値画像及び非可逆圧縮された背景レイヤと、これらを伸張してカラー画像の画像データとなすための伸張情報とが一つのファイルにまとめられる。このファイルが圧縮ファイルである。また、この伸張情報としては、圧縮形式を示す情報、及びインデックス・カラー・テーブル等が用いられる。画素毎に生成された領域識別信号の圧縮は、たとえば、可逆圧縮方法であるMMR方式、MR(Modified READ)方式に基づいて行われる。圧縮された画像データ(圧縮画像)は、一旦記憶部6に格納され、たとえば、操作パネル5において、「scan to e-mail」モードが選択されている場合、送信装置4から、電子メールに添付されて、設定された送信先に送信される。
【0051】
(変換処理部の全体構成)
変換処理部30は、入力された文書画像の情報(以下、入力画像の情報ともいう)に対してフォーマット変換処理を実行する。変換処理部30の詳細について、以下で説明する。
図2は、変換処理部30の構成を示すブロック図である。変換処理部30は、文書構成要素検出部31と、表領域抽出処理部32、表構造化処理部33及びファイル記述部34を備える。また、文書構成要素検出部31は、文字抽出処理部311、図領域抽出処理部312、ライン抽出処理部313を備え、入力画像から、表と、表に重畳される文書構成要素、たとえば、文字、文字列、図、写真などを検出する。
【0052】
文字抽出処理部311は、入力画像に含まれる文字画像を抽出し、その文字画像が示す文字の情報をOCR等により解析する。また、文字抽出処理部311は、各文字の並び方から、1つ以上の文字で構成される文字列を定義する(ここでは、1文字のものも文字列に含むこととする)。更に、文字抽出処理部311は、抽出された文字のサイズや文字の色などの属性を取得する。
【0053】
図領域抽出処理部312は、入力画像に含まれる図や写真などの領域を抽出し、各領域の情報を取得する。図領域の情報として、少なくとも各図領域を囲む矩形の左上位置及びサイズ(幅、高さ)を含む。ライン抽出処理部313は、入力画像に含まれるラインを抽出し、各ラインの情報を取得する。ラインの情報は、少なくともラインの検出された位置(座標)や方向、長さ、幅及び色を含む。
【0054】
表領域抽出処理部32は、ライン抽出処理部313で抽出されたラインの情報から、互いに交差する水平方向のラインと垂直方向のラインからなる集合を表領域であるかどうかを判定する。表構造化処理部33は、抽出された表領域において、表領域に含まれるラインや、表領域と重複する位置で抽出された文字や図などの文書構成要素を用いて表構造を解析し、表を構造化するための情報(表構造化情報)を取得する。ファイル記述部34は、表構造の情報や文字、図などの文書構成要素、また表に含まれないライン等の情報から、入力画像と同様のレイアウトの文書構造となるように、指定されたファイル形式の記述方法に従ってファイルを記述する。
【0055】
文字抽出処理部311、図領域抽出処理部312及びライン抽出処理部313は、特に前記の順序に従って実行する必要は無く、順序を入れ替えて、もしくは並列して実行することができる。また、文字抽出処理部311、図領域抽出処理部312、ライン抽出処理部313及び表領域抽出処理部32は、公知の技術を利用することができる。
【0056】
文字抽出処理部311は、公知のOCR技術により文字及び文字列の抽出を行うことができる。文字列の抽出手法としては、たとえば、表から文字列を抽出する手法(特願2014−174348に記載の技術)を利用することができる。当該手法では、まず、文字抽出処理部311が、OCRにより抽出した文字の文字矩形(外接矩形)を求める。文字抽出処理部311が、求めた各矩形に対し、近傍の矩形同士の距離を算出し、近い矩形同士を同じ文字列のグループとして統合する。このとき、近傍の矩形サイズと比較して、あまりにもサイズが違い過ぎており、かつ、近傍に似たような矩形が存在しない矩形については、非文字矩形として除去する。文字抽出処理部311は、各文字列グループの水平方向のサイズ、垂直方向のサイズを検出し、長い方を文字列の方向として設定する。水平方向のサイズと垂直方向のサイズが同じくらいの場合は、方向が判定できないので、文字列方向不定として設定する。文字抽出処理部311は、同じ方向の近傍文字列でサイズが近いもの、または文字列の開始位置や終了位置が近いもの同士でグループ分けを行って文字列領域とする。なお、文字抽出処理部311による、文字の抽出及び文字列の抽出は、ライン抽出処理部313の処理の前に行っても、後に行ってもよい。
【0057】
図領域抽出処理部312は、たとえば、参考文献1(特開2009−194740号公報)で挙げられる方法により図領域を特定することができる。参考文献1に記載の方法では、入力された画像の所定領域毎に画素値の出現頻度(即ち、ヒストグラム)を求めた場合に、図領域の一つである写真領域上の各画素では濃度変化が広範囲に及ぶヒストグラムが得られることを利用して、ヒストグラムのエントロピー(平均情報量)を算出し、エントロピーが高い領域を抽出することで精度よく写真領域を抽出することが可能となる。
【0058】
ライン抽出処理部313及び表領域抽出処理部32は、たとえば、参考文献2(特許第5153857号公報)で挙げられる方法によりライン及び表領域を抽出することができる。参考文献2に記載の方法では、文書画像データからラインとなる可能性のある候補画素を抽出し、前記候補画素が水平方向もしくは垂直方向に所定画素数以上連続する場合に、前記連続する候補画素の集合をラインとして抽出する。前記抽出された水平方向及び垂直方向のラインの位置関係から、各ラインが表を構成する罫線であるか単一のラインであるかを判定し、同一の表を構成するラインの集合について、それら全てを囲む最小外接矩形を表領域として抽出する。参考文献2に記載の方法では、ラインを構成する画素(ライン画素)を文書画像中から抽出しているため、ライン画素の画素値の平均値をラインの色として算出することも可能である。また、上記ライン画素の方向と直交する方向(水平方向のラインであれば垂直方向)に並ぶ画素数からラインの太さを算出することができ、たとえば、垂直方向に連続するライン画素の平均値をラインの太さとして算出することも可能である。
【0059】
また、よく知られた方法により、点線や破線を検出することが可能であり、当該方法と、参考文献2に記載の方法と組み合わせることで、実線以外の線種のラインを検出することも可能である。たとえば、参考文献3(特開平7−230525号公報)の方法では、二値化された文書画像から、注目する罫線方向(水平または垂直方向)に連結する黒画素を抽出し、それぞれの連結画素を全て内包する矩形を抽出したとき、その大きさが所定の閾値以下である場合に点線要素とし、更に点線要素同士の間隔が所定閾値内である場合にそれらの点線要素同士を統合した矩形を、点線の罫線として検出することができる。
【0060】
また、参考文献4(特開平4−68477号公報)では、二値化された文書画像から黒画素の連結を追跡することで輪郭ベクトルを抽出する。そのうち実線の直線もしくは曲線を構成するものを除いた輪郭ベクトルで囲まれた領域の長軸及び短軸の長さの関係から破線候補としての領域を抽出し、得られた破線候補の相互関係を調べることで、同一の破線を構成する破線領域を抽出することができる。
【0061】
なお、変換したいオフィス文書ファイルの種類によって、ファイル記述部34が実行するファイルの記述方法(変換方法)は異なる。たとえば、Office Open XML(OOXML)の規格に準拠するオフィススイート(オフィス業務用ソフトウェアのセット)では、XML(Extensible Markup Language)で記述された文書群と、写真やイラストレーション、図形などのバイナリデータを圧縮により1つのファイルとして統合したものをオフィス文書ファイルとして使用する。これに対して、異なる種類のソフトウェア(たとえば、文書作成ソフトウェアとプレゼンテーションソフトウェア)の間ではファイルの記述方法は異なり、また、OOXMLと、異なる規格の文書形式(たとえば、OpenDocument Format)では、同じ種類のソフトウェアであってもファイルの記述方法は異なる。
【0062】
従って、あらゆるファイル形式に容易に対応できるようにするため、表構造化処理部33では、特定のファイル形式に限定されない表構造化情報を取得するようにし、ファイル記述部34において、前記表構造化情報を用いて、指定されたファイル形式に合わせて表を構造化するようにする。このようにすることで、ユーザが、変換処理部30の機能を有する変換処理装置を利用する際に、あるファイル形式で変換した結果を見た後に、異なるファイル形式に変換する場合も、表構造化処理部33を最初から実行しなくても、既に得られている表構造化情報を再使用して容易に変換することが可能となる。表構造化処理部33については後述する。
【0063】
前記の通り、ファイル記述部34は、指定されたファイル形式によって記述方法が異なるが、ファイル構造が公開されているファイル形式については、既に得られている表構造化情報や文書構成要素の情報等を用いて公知の方法により記述することができる。本実施形態では一例を述べるに留め、具体的な方法については省略する。
【0064】
(表構造化処理部)
図3は、表構造化処理部33(表構造化処理装置)の構成を示すブロック図である。表構造化処理部33は、分割処理部331と、第1分類処理部332と、第2分類処理部333と、及び表構造記述部334とを備える。また、以下においても、上記と同様、文書を構成する個々の文字、図、写真等を文書構成要素という。
【0065】
分割処理部331は、ライン抽出処理部313によって入力画像から検出されたラインから水平方向の基準線及び垂直方向の基準線を選択し、2本の隣り合う水平方向の基準線と、2本の隣り合う垂直方向の基準線からなる四角形をそれぞれ仮セルとして定義する。第1分類処理部332は、分割処理部331で定義された仮セルを、入力画像から検出された文書構成要素の情報をもとに、少なくとも1つ以上の仮セルからなる四角形の集合である結合セル候補として分類する。
【0066】
第2分類処理部333は、第1分類処理部332で分類された結合セル候補ごとに、入力画像から検出された文書構成要素の情報をもとに、予め定められる判定基準に従って、結合セル候補に含まれる仮セルを、最も適切とされるセルブロックとして分類する。セルブロックは少なくとも1つ以上の仮セルからなる四角形の集合である。表構造記述部334は、第2分類処理部333で分類されたセルブロックの属性、及び予め検出されている文書構成要素の情報から、表構造を解析し、後段の変換処理において表を再構成するために参照すべき情報を記述する。以下では、表構造化処理部33の各処理部について詳述する。
【0067】
(分割処理部)
分割処理部331は、ライン抽出処理部313によって入力画像から検出された水平方向のライン及び垂直方向のラインから、各方向の基準線を選択する基準線選択処理と、2つの方向の基準線で囲まれる四角形を仮セルとして定義する仮セル定義処理とを行う。なお、以下では、
図4に示すような表画像400から、水平方向のライン及び垂直方向のラインが検出されている場合を例に挙げて説明する。
【0068】
[基準線選択処理]
分割処理部331による基準線選択処理は、水平方向のラインから水平方向の基準線を選択し、垂直方向のラインから垂直方向の基準線を選択する。具体的には、各方向のラインの延長線を基準線とし、一部または全部重複する基準線同士、もしくは所定距離以内に集合する基準線同士を1本の基準線として統合する。前記所定距離は特に指定は無いが、たとえば、2本の基準線間の距離が10画素以内にあるとき、2本の基準線は所定距離以内に集合するものとみなすようにしてもよい。
【0069】
[基準線選択の例]
図5は、4本の検出された水平方向のラインがある場合における基準線の定義の例である。
図5(a)のように水平ライン601〜604が抽出されている場合、
図5(b)のように各水平ラインの基準線611〜614が延長線として与えられる。
図5(b)において、水平ライン601の延長線(基準線611)は右上りの斜め縞模様の範囲として与えられ、水平ライン602の延長線(基準線612)は左上りの斜め縞模様の範囲として与えられ、水平ライン603及び水平ライン604の延長線(基準線613及び基準線614)はドット模様の範囲として与えられる。なお、基準線611の右上りの斜め縞模様と基準線612の左上りの斜め縞模様の重複する格子模様の範囲は、水平ライン601の延長線の範囲であり、かつ水平ライン602の延長線の範囲でもあることを意味する。また、水平ライン603と水平ライン604は、延長線が全部重複している。
図5の例の場合、まず、基準線611と基準線612は一部重複しているため、同一の基準線として統合する(以下、当該基準線を基準線611’という)。また、基準線613と基準線614は全部重複しているため、同一の基準線として統合する(以下、当該基準線を基準線613’という)。基準線611’と基準線613’の距離を、基準線611’の下端から基準線613’の上端までの距離(画素数)とすると、前記距離が所定距離以上である場合、基準線611’と基準線613’は独立した基準線とし、前記距離が所定距離以内である場合、基準線611’と基準線613’を同一の基準線として統合する。
【0070】
この基準線選択の処理により、列(行)として幅の狭い場合に、その列(行)を構成する平行する基準線同士を統合することで、たとえば2本のラインを二重線としてみなしたり、また事前のライン検出の精度が不足して1本のラインが2本の基準線に分かれてしまう場合でも1本の基準線として修正できるようにしたりすることが可能となる。特に、傾いた原稿のスキュー補正が十分でない場合、水平(または垂直)のラインが途切れて検出され、それらのラインが同一の延長線上に無い場合もある。それらを統合せずに別の基準線として扱うと、本来1行(1列)であるはずの部分が複数の行(列)に分かれるケースもあり、上記の構成により、所定距離以下の基準線同士を統合することは多少のズレやラインの途切れを許容する点でも有意な効果を奏する。
【0071】
[仮セル定義処理]
図6は、分割処理部331による仮セル定義処理における処理の概要を示す図である。
図6に示す破線は、
図4の表画像400から検出されている水平方向のライン及び垂直方向のラインをそれぞれ延長して得られた基準線である。仮セル定義処理は、隣り合う2本の水平方向の基準線及び隣り合う2本の垂直方向の基準線により構成されるそれぞれの四角形を仮セルとして定義する。仮セルにはそれぞれ異なるセルID(Identification)が割り当てられ、各セルの属性情報などを格納したセル情報リストと関連付けられる。セルIDは、たとえば、
図6に示すように、表の左上の仮セルを1として左から右へ、また上から下へ大きくなるように割り当てる。
【0072】
[四辺の罫線の定義]
また、仮セル定義処理では、各仮セルにおいて、四辺の罫線を定義する。ライン抽出処理部313によって検出されたラインが、2つの隣り合う仮セル間の境界と一部もしくは全部重複する場合、その境界における罫線の有無を判定する。仮セル間の境界における罫線の有無の判定方法として、たとえば、境界の辺の長さに対して、その境界と重複するラインの長さとの比率が所定値(たとえば、0.5程度の値)以上である場合、その境界の辺には、そのラインに応じた情報を持つ罫線を持つとして定義する。ラインに応じた情報として、たとえば、ラインの太さが挙げられる。ラインの太さは、検出されたラインの長さ方向と直交する方向の幅から算出することができる。また、ラインを構成する画素の色(画素値)から、罫線の色を定義してもよいし、ライン抽出処理部313において、ラインの線種を予め判定している場合、その線種の情報を罫線の情報として関連付けて記憶させてもよい。この仮セル定義処理により、ラインが一部または全部が辺と重複している場合に、罫線とみなすことで、複雑な形状のセルにおける罫線情報の設定を容易に行うことができる。
【0073】
[仮セル単位の属性]
分割処理部331の処理として、各仮セルの属性を示す情報を取得する処理を追加してもよい。たとえば、仮セルの範囲に含まれる画素であって、検出されたライン及び検出された文字列や図を囲む範囲を除いた画素である背景画素における画素値の平均値を仮セルの背景色を示す値として算出してもよい。文書構成要素(文字列や図)を囲む範囲は、各文書構成要素を囲む最小矩形の内側としてもよいし、その最小矩形に若干のマージンを持たせた範囲としてもよい。また、ラインの有無に拘わらず、境界から所定画素(たとえば、2画素程度)を背景画素から除くようにしてもよい。なお、背景色を示す値は後段で定義されるセルブロック単位で保持するため、必ずしも分割処理部331で算出する必要は無いが、予め仮セル単位で算出し、後段の第2分類処理部333におけるセルブロック単位での算出の際に利用してもよい。また、第2分類処理部333において、仮セル単位の背景色を示す値を使用して仮セル間の結合の判定を行うようにすることも可能である。
【0074】
(第1分類処理部)
第1分類処理部332は、分割処理部331で定義された仮セル上に、入力画像から検出された文書構成要素を、検出時の情報(大きさ、位置)に従って重ね合わせる文書構成要素重畳処理と、重ね合わせられた文書構成要素を含む最小の四角形を構成する仮セルの集合である結合セル候補を抽出する結合セル候補抽出処理と、抽出された結合セル候補のうち、互いに一部または全部が重複する結合セル候補の組が存在する場合に、それらの結合セル候補を1つに結合する結合セル候補更新処理とを行う。
【0075】
[文書構成要素重畳処理]
図7は、文書構成要素重畳処理の例を示す図である。文書構成要素重畳処理は、検出された文書構成要素401〜409を、その大きさや位置に従って仮セル上に重ね合わせる(
図7における文書構成要素401〜409の例は、全て文字列であり、以下、文字列401〜409ともいう)。文書構成要素401〜409が複数の文字を並べた文字列である場合、個々の文字を個別に重ね合わせるのでなく、文字列を1つの単位として重ね合わせる。
【0076】
[結合セル候補抽出処理]
図8は、結合セル候補抽出処理の例を示す図である。結合セル候補抽出処理は、各文書構成要素401〜409を囲む最小の四角形を構成する仮セルの集合を探し、この集合を結合セル候補411〜419とする。全ての文書構成要素401〜409を重ね合わせた段階で、いずれの結合セル候補にも含まれない仮セルが存在する場合、
図10に示すように、その仮セルを単独で結合セル候補431〜450として定義する。
【0077】
[結合セル候補更新処理]
図8に示すように、文書構成要素401〜409毎に結合セル候補を設定すると、たとえば、文書構成要素404,405に対応する結合セル候補414,415、または、文書構成要素407,408,409に対応する結合セル候補417,418,419のように、互いに一部または全部が重複する場合も起こり得る。結合セル候補更新処理では、互いに重複する結合セル候補の組、たとえば、結合セル候補414,415の組や、結合セル候補417,418,419の組を抽出し、各々の結合セル候補の組において、組ごとの結合セル候補を全て含む最小の四角形を構成する仮セルの集合を探し、この集合を新たに結合セル候補として更新する。更新する際に、結合セル候補更新処理において、更新される前の個々の結合セル候補は破棄される。なお、結合セル候補が、ほかの異なる結合セル候補と重複しない場合、その結合セル候補はそのまま維持される。
【0078】
図9は、
図8のように設定された結合セル候補411〜419に対して、結合セル候補更新処理を適用した結果を示す図である。
図9には、互いに重複する結合セル候補414,415の集合を全て含む最小の四辺形となる結合セル候補420と、互いに重複する結合セル候補417,418,419の集合を全て含む最小の四角形となる結合セル候補421とが示されている。また、
図10は、
図9のように設定された結合セル候補について、結合セル候補更新処理により、仮セルを最新の結合セル候補411〜413,416,420,421,431〜450に分類し直した結果を示す図である。
【0079】
上記の結合セル候補抽出処理及び結合セル候補更新処理により、重複する結合セル候補同士を、その範囲だけでなく矩形の条件を維持したまま統合することができる。それにより、いずれの初期結合セル候補にも属していなかった空の仮セルを矩形の一部として統合した新たな結合セル候補の一部として分類することができ、文字等と重複していた仮セルの範囲のみによってセルの結合を行う必要が無くなり、より自然な形状の結合セルを作りだすことができる。また、最後に残った空の仮セルを単独で結合セル候補とすることで、見掛け上結合しなくても問題のないような仮セル同士の結合の判定ステップを省略することができる。
【0080】
(第2分類処理部)
第2分類処理部333は、第1分類処理部332で設定された結合セル候補、たとえば、結合セル候補411〜413,416,420,421,431〜450(以下、任意の一つまたは複数の結合セル候補を示す場合、または、いずれか1つの代表する結合セル候補を示す場合、結合セル候補410という)から、予め定められる所定の判定基準に従って仮セル間の結合の妥当性を評価する。そして、第2分類処理部333は、評価結果に基づいて、結合セル候補410の各々を1つ以上のセルブロックとして再分類する。以下では、第2分類処理部333が実行する処理内容について詳述する。
【0081】
所定の判定基準は、複数の仮セルからなる結合セル候補410において、2つの隣り合う仮セル同士を結合することの適切さを判定するために予め決められた基準である。2つの隣り合う仮セル間を結合した場合、及び結合しなかった(分離した)場合のペナルティを算出し、全ての隣り合う2つの仮セル間におけるペナルティの総和が最も小さくなるような仮セルの集合の組合せを選択し、この仮セルの集合それぞれを1つのセルブロックとして定義する。ペナルティについては後述する。
【0082】
また、所定の判定基準には、複数の隣り合うセル間において、結合してはいけない、または、分離してはいけないパターンが存在する。これを禁止パターンと呼び、少なくとも以下の2つが挙げられる。
(禁止パターン1)隣り合う2つの仮セル間の境界を示す辺において罫線が指定されている(すなわち罫線で隔てられている)場合、この2つのセル間を結合してはいけない。
(禁止パターン2)結合セル候補に含まれる仮セルにおいて、結合関係にある仮セル同士の集合が四角形以外の形状となってはいけない。
【0083】
図11は、禁止パターン1に該当する仮セル同士の関係を説明する結合セル候補410aの一例を示す図である。結合セル候補410aは、3行×4列からなり、仮セル501,502を含む、12個の仮セルを含んでいる。たとえば仮セル501と仮セル502は、境界が罫線で隔てられており禁止パターン1に該当するため、この2つの仮セルを結合するようなセルブロックの分類パターンは禁止とされる。
【0084】
禁止パターン1により、罫線をまたいだ2つの仮セル間を同一のセルブロックとして分類しないことで、検出されたラインが罫線として再現され易くなる。すなわち、セルを結合してしまうと、その罫線が存在した境界が消失してしまい、セルの罫線として示すことができず、ラインオブジェクトとして上から重ね合わせる必要性が生じるが、禁止パターン1により、このような境界の消失を防ぐことができる。
【0085】
図12は、禁止パターン2に該当する仮セル同士の関係を説明する図である。
図12(a),(b),(c)の破線は、表構造における基準線を示し、破線に囲まれた四角形は仮セルを示す。なお、
図12(a),(b),(c)の破線部分にはラインが検出されていないものとする。すなわち、
図12は、四辺に罫線が引かれていない仮セルが水平方向及び垂直方向に2つずつ並んでいる様子を示している。
図12(a)は、4つの仮セルの境界における結合もしくは分離の選択を未だ行っていない状態を示し、
図12(b)及び
図12(c)は、仮セルの境界の一部(図中では実線が引かれ、その上に×が付されている境界503,504,505)において分離が選択されている状態を示す。
図12(a)の4つの仮セルは、その境界に罫線がないため禁止パターン1には該当しないが、たとえば、
図12(b)及び
図12(c)のように一部の境界503,504,505で分離を選択し、その他の境界で結合を選択すると、必ず四角形でないセルブロックが発生し、禁止パターン2に該当するため、
図12(b)及び
図12(c)のようなセルブロックの分類パターンは禁止とされる。なお、
図12(b)及び
図12(c)は、
図12(a)の4つの仮セル間における禁止パターン2に該当する組合せの一例であり、
図12(a)の4つの仮セル間における禁止パターン2に該当する組合せは他にも存在するが、ここでは省略する。
【0086】
第2分類処理部333は、前記の禁止パターン1、禁止パターン2に該当するような結合及び分離の組合せを除いた全ての組合せについて、ペナルティの総和を算出し、ペナルティの総和が最小となるような組合せを選択する。そして、第2分類処理部333は、結合の関係にある隣り合う仮セル同士を同一のセルブロックに分類することで、結合セル候補410を1つ以上のセルブロックに分類する。これを各結合セル候補410について独立して実行し、全ての結合セル候補410に対してこの処理を適用することで、表を構成する全ての仮セルは、それぞれいずれか1つのセルブロックのみに分類されることとなる。なお、結合セル候補410が単一の仮セルで構成される場合は、分離ペナルティの算出を行わず、この仮セルをそのままセルブロックとして定義する。
【0087】
なお、禁止パターンとして、前記の2つに加えて他の禁止パターンを定義することで、事前にペナルティの算出対象となる組合せを減らすことができる。他の禁止パターンは、どのようなパターンでもよく、たとえば、結合の関係にある仮セル同士の集合の中に、文字の並ぶ方向(文字列方向)が異なる文字列が混在するような場合、これを禁止パターンとするようにしてもよい。この場合、1つのセルブロックには同一の文字列方向の文字列のみが含まれるようにすることができる。
【0088】
以下、ペナルティについて詳述する。ペナルティは、結合セル候補410の各々に含まれる仮セル同士の境界について結合または分離を選択して、結合セル候補410を構成する仮セルをセルブロックとして再分類した場合に発生する不自然さを数値化した評価値である。ペナルティが大きくなるほど、セルブロックの分類結果が不自然であることを示す。各境界において、分離を選択することで発生する不自然さを数値化したものをその境界の分離ペナルティと呼ぶ。分離ペナルティの算出方法は特に決まりはなく、自由に設定できる。算出方法の例をいくつか挙げる。
【0089】
[第2分類処理部における分離ペナルティの算出手法例]
たとえば、文字列や図などの文字構成要素が境界上にまたがって配置される場合、これらの境界を分離すると、文字構成要素が複数のセルブロックに分かれてしまい、不自然になりがちである。そこで、たとえば文字列の場合、境界によって切り離される文字の数に応じた分離ペナルティを設定することで、不自然さを数値化することができる。前記のような分離ペナルティの算出方法の例として、その境界により切り離される文字数に係数(たとえば、10程度の値)を乗じた値を与える方法が挙げられる。なお、前記切り離される文字数は、分離によって分かれた前方の文字列の文字数もしくは後方の文字列の文字数のうち小さい方とする。また、文字列の場合、境界上にまたがっている文字数を基準として分離ペナルティを与えてもよい。たとえば、境界にまたがっている文字数に係数(たとえば、5程度の値)を乗じた値を与える方法が挙げられる。
【0090】
また、写真やイラストレーション、図形など(以下、これらを総称してグラフィックと)の場合、境界により左右(上下)に切り離されたグラフィックの面積のうち小さい方の面積に係数(たとえば、0.5程度の値)を乗じた値を与えてもよいし、単純に境界をまたぐグラフィックの数に係数(たとえば、5程度の値)を乗じた値を与えてもよい。なお、グラフィックは、文字に比べて、セルに含まれる情報として配置されるのでなく、見掛け上セルに含まれているだけで、実際には表領域の上に独立して貼り付けられているだけのケースが多い。そのため、グラフィックをまたぐ場合の分離ペナルティの算出は省略してもよいし、文字(列)が境界をまたぐ場合に比べて、グラフィックが境界をまたぐ場合の分離ペナルティは小さな値として算出されるようにしてもよい。
【0091】
上述した分離ペナルティの算出方法は一例であり、異なる算出方法を用いてもよい。また、複数の算出方法を組み合わせても構わない。各結合セル候補において、含まれる全ての境界における結合もしくは分離の組合せが指定されると、分離を選択された境界における分離ペナルティの総和を算出し、それを結合セル候補の全体にわたるペナルティとしてもよい。
【0092】
[第2分類処理部における分離ペナルティによるセルの結合/分離の具体例]
図13は、3列×3段の仮セルからなる結合セル候補410b上に文字列を配置した場合の例を示す図である。なお、左から順にA列、B列、C列と呼び、また上から順に1段、2段、3段と呼ぶ。またx列、y段の仮セルを仮セルxyと呼び、仮セルxyと仮セルxy’との間の境界を境界xy−xy’、仮セルxyと仮セルx’yとの間の境界を境界xy−x’yと呼ぶ。
図13の例の場合、境界C1−C2,C2−C3,B2−C2及びB3−C3は罫線で隔てられているおり、禁止パターン1に従って結合不可能となるため、結合または分離の選択は、境界A1−A2,B1−B2,A2−A3,B2−B3,A1−B1,B1−C1,A2−B2及びA3−B3の8カ所について考えることとなる。
【0093】
なお、単純に全ての境界で結合、または分離の選択をした場合の組合せは2
8=256通りであるが、たとえば、
図12(b)で示したように、境界A1−B1を分離するが、境界A1−A2、B1−B2及びA2−B2を結合する、という組合せは、四角形の形状として分割することができず、禁止パターン2に該当するため選択できないので、実際には256通りよりも少なくなる。
【0094】
図13の例において、境界Lを分離とした場合に、切り離される文字列の文字数の小さい方の文字数をN
1、また境界L上にまたがっている文字数をN
2として、境界Lにおける分離ペナルティS(L)をたとえば次式(5)のように設定することができる。
【0096】
但し、k
1及びk
2は所定の係数であり、どのような結合(または分離)方法を好むかによって自由に設定できる。k
1を大きくすることで(たとえば、k
1=10、k
2=1)、横書き(縦書き)の文字列が左右(上下)に分割されることを抑えることを優先し、k
2を大きくすることで(たとえば、k
1=1、k
2=10)、文字が多く配置されている境界で結合することが選択されやすくなるため、その文字が抽出された位置とできるだけ近い位置に配置し易くなる。
【0097】
たとえば、
図13の境界A1−B1の場合、文字列506についてみると、「分離ペナルティを算出する方法の」のうち、境界A1−B1上には「テ」の1文字があり、切り離された文字列の小さい方は「分離ペナル」の5文字となる。また、文字列507についてみると、「具体例を示す図です。」のうち、境界A1−B1上には、「す」の1文字があり、切り離された文字列の小さい方は、「図です。」の4文字となる。また、文字列508についてみると、「分離ペナルティを算出」のうち、境界A1−B1上には、「テ」の1文字があり、切り離された文字列の小さい方は「ィを算出」の4文字となる。これを合計すると、N
1=13、N
2=3となる。k
1=10、k
2=1の場合、S(A1−B1)=133となり、k
1=1、k
2=10の場合、S(A1−B1)=43となる。同様に、他の7箇所の境界についても分離ペナルティを算出し、禁止パターンに該当しない組み合わせにおいて分離ペナルティの総和をとると、前者(k
1=10、k
2=1)の場合、
図14のように符号521で示される境界A1−A2と符号522で示される境界B1−B2とを分離とし、残りを結合とする組み合わせのときに分離ペナルティの総和は、最小値10となる。これに対して、後者(k
1=1、k
2=10)の場合、
図15のように符号523で示される境界B1−C1のみを分離とし、残りを結合とする組み合わせのときに分離ペナルティの総和は、最小値12となる。
【0098】
所定の判断基準として、上記の分離ペナルティを適用することにより、結合あり、または、なし(分離)の選択の組合せからペナルティを算出し、それが最小となるような組合せに従うことで、折り返しが発生する行の数を減らす事、すなわち文字列方向に並ぶ仮セルの結合を優先するか、元の文書画像上で検出された位置からのズレを減らす事、すなわち行方向に並ぶ仮セルの結合を優先するかを調整することが可能となる。
【0099】
[第2分類処理部における結合ペナルティの算出手法例]
前記では、各境界について分離を選択した場合の不自然さを数値化した分離ペナルティについて説明した。これに対して、境界を結合することで不自然さが発生する場合もある。
図16は、境界を結合することにより不自然さが発生する場合の例を示す図である。
図16に示される結合セル候補410cでは、横書きの文字列901,902,903が水平方向に並んで配置されており、境界910X及び境界910Yにおいて分離を選択しても文字列901,902,903において不自然さが発生することはない。これに対して、境界910X及び境界910Yの一方または双方において結合を選択した場合、内容が連続しない文字列、たとえば、境界910Xを結合した場合、文字列901と文字列902が1つのセルブロックに含まれることになり、文書画像が示すレイアウトの通りに文字列を配置することが難しくなる。そのため、境界910X及び境界910Yは結合しない方が望ましい場合もある。
【0100】
そこで、結合を選択した場合の不自然さを数値化した結合ペナルティを算出するようにして、各結合セル候補において、含まれる全ての境界における結合もしくは分離の組合せが指定されると、結合を選択された境界における結合ペナルティの和と、分離を選択された境界における分離ペナルティの和とを加算した値をその結合セル候補の全体にわたるペナルティとしてもよい。これにより、分離ペナルティのみでは結合が多くなりがちの場合に、結合ペナルティも算出することで、段組のような特殊なレイアウトなど本来分離しておいた方が良いような境界を残すことが可能となる。結合ペナルティの算出方法は特に決まりはなく、自由に設定できる。算出方法の例を以下に挙げる。
【0101】
(結合ペナルティの算出方法例1)
たとえば、上述した
図16のように、複数の文字列901,902,903が、文字列方向に仮セルの境界を挟んで(つまり境界をまたがずに)並んで配置されている場合、その境界で結合を選択するとレイアウトとして不自然となり易い。そこで、結合により生成されるセルブロックの内部において、含まれる文字列同士の位置の関係から、不自然さを数値化する方法が挙げられる。具体的には、
図17に示すように、2つの文字列905、906が存在する場合、文字列905を囲む最小矩形の範囲を左上(P1,Q1),右下(P2,Q2)とする。このとき、セルブロック間において文字列905の方向成分の範囲(横書きならX成分がP1からP2の範囲、縦書きならY成分がQ1からQ2の範囲)が重複せず、文字列905の方向と直交する方向(行方向)の成分の範囲(横書きならY成分がQ1からQ2の範囲、縦書きならX成分がP1からP2の範囲)が一部または全部重複する他の文字列(
図17の例では、文字列906)を抽出し、その2つの文字列の間に含まれる境界の数をカウントする。前記の文字列の組について全てカウントし、その総和に所定係数(たとえば、2程度の値)を乗じた値を与える方法が挙げられる。
【0102】
(結合ペナルティの算出方法例2:背景色の比較)
また、分割処理部331において仮セル単位で背景色を示す値を算出している場合、隣り合う2つの仮セルの間で、背景色を示す値の差が所定条件を満たす場合、セル背景色の異なる仮セル同士である可能性が高いとして、結合ペナルティを大きく設定するようにすることができる。そうすることで、背景色の大きく異なるセル同士を結合することを防ぐことが可能となる。前記所定条件はどのような条件でもよい。たとえば、背景色を示す値がR,G,Bがそれぞれ0から255までの整数で表現される場合、一方の仮セルにおけるR成分、G成分及びB成分をそれぞれR1,G1,B1、もう一方の仮セルにおけるR成分、G成分及びB成分をそれぞれR2,G2,B2とする。このとき、前記所定条件として次式(6)を満たすかどうかを判定する方法が挙げられる。
【0104】
なお、max{A,B,C}はA,B,Cのうち最も大きな値を選択する関数であり、|x|はxの絶対値を表わす。またTHは閾値を表わし、たとえばTH=16とするとき、式(6)は、各成分の差分絶対値のうち最も大きなものがTH=16より大きい場合に所定条件を満たすとすることができる。
【0105】
なお、同一の結合セル候補において、
図16のように、同じ文字列方向の文字列が、文字列方向と同じ方向に並んで配置されることは珍しく、こうしたレイアウトの文章は、印刷される前の文書ファイルでも各セルに文字データとして格納されているのではなく、テキストオブジェクトなどによってセル上に重ね合わせて配置されている可能性も大きい。そのため、前記のような方法による結合ペナルティは算出しないか、または分離ペナルティよりも小さく設定し、極力結合を優先するようにすることが望ましい。ただし、
図16の先頭のタイトル行の文字列904のように、一部の文字列904だけが複数の仮セルをまたいでいるようなケースにおいて、できるだけ細分化しておくことで、後からセルの結合を解除する手間を減らしたい場合は、結合ペナルティを大きく設定してもよい。
【0106】
(表構造記述部)
表構造記述部334は、第2分類処理部333までに得られた表構造の情報や、表を構成する各セルブロックの情報、及び各セルブロックに含まれる文書構成要素の情報を収集または取得して集積された各種情報を用いて、後段の変換処理において所望のファイル形式に合わせて表を再構成するために参照すべき情報として記述する。以下では表構造記述部334が実行する処理内容について詳述する。
【0107】
上述したように、後段のファイル記述部34において、指定されたファイル形式に合わせて表を容易に構造化できるようにするために、表構造記述部334では、特定のファイル形式に依らない表構造化情報を取得する。特定のファイル形式に依らない表構造情報として、少なくとも以下の情報を表ごとに取得する。
【0108】
(1)表が配置されるページ番号、またそのページにおける座標,
(2)表全体の幅及び高さ,
(3)表の列数及び行数、また各列の幅及び各行の高さ,
(4)各セルブロックの結合情報,
(5)各セルブロックに格納される文書構成要素の情報.
【0109】
表領域として抽出された範囲の左上座標を、その表のページにおける座標とし、表領域の横幅及び高さを、それぞれ表全体の幅及び高さとして取得することができる。また、表の水平方向の基準線の本数をLH、垂直方向の基準線をLVとすると、表の列数はLV−1,行数はLH−1で与えられる。また各列の幅(各行の高さ)は、その列(行)を構成する2本の垂直方向(水平方向)の基準線間の距離から与えられる。基準線間の距離は、各基準線の中心を通る直線同士の距離とするのが望ましい。
図18は、太さの異なる罫線が同一の基準線を持つ場合において行の高さを算出する例を示す図である。水平方向の罫線701を上端、水平方向の罫線702及び罫線703を下端とする。罫線702と罫線703は太さが異なる。罫線701の基準線と、罫線702及び罫線703が共有する基準線とをそれぞれその中心を通る直線であらわすと、図中の点線(基準線の中心線711及び基準線の中心線712)となる。
図18に示す行の高さは、基準線の中心線711と基準線の中心線712との距離として算出する。
【0110】
(各セルブロックの結合情報)
各セルブロックの結合情報は、セルブロックの親となる仮セル(親セル)のID(親ID)と、親セルの位置と、セルブロックを構成する仮セルの結合数から成る。親セルは、セルブロックに含まれる仮セルのセルIDのうち最小のもの(すなわち、左上の仮セルのセルID)を選択する。また、親セルの位置は、親セルとなる仮セルが、属している表のうち何列目、また何行目に位置するかを取得する。またセルブロックを構成する仮セルの結合数は、セルブロック内の水平方向に並ぶ仮セルの数(水平結合数)と、垂直方向に並ぶ仮セルの数(垂直結合数)を取得する。
【0111】
たとえば、
図19に示す例の場合、セルブロック801には、仮セルIDが1,2,3の仮セルが含まれているため、親IDは1であり、セルIDが1の親セルの位置は1列目かつ1行目、水平結合数は3、垂直結合数は1である。また、セルブロック804には仮セルIDが4,5,7,8の仮セルが含まれているため、親IDは4であり、セルIDが4の親セルの位置は1列目かつ2行目、水平結合数は2、垂直結合数は2である。
【0112】
(各セルブロックに格納される文書構成要素の情報)
各セルブロック810に格納される文書構成要素の情報として、各のセルブロック810に含まれる文書構成要素を順に並べて格納する。たとえば、横書きの文字列において、複数の文書構成要素が水平方向に並ぶ場合にその文書構成要素同士を1行とみなし、先頭の行から行の文書構成要素を順に格納し、行の末尾の文書構成要素の格納が終わると次の行に移り、セルブロック810に含まれる全ての行について格納が終了するまで繰り返す。たとえば、
図20において、セルブロック801では、文字列401、グラフィック1000、文字列402を1つの行とみなし、続いて、文字列403を1つの行として、その順番に格納する。なお、
図20のセルブロック802のように、文字列405と文字列405の間が空いている場合、その間の長さの大きさに応じて、空白文字(スペース)を文字列404の後に追加し、その後に文字列405を格納するようにしてもよい。たとえば、文字列404と文字列405の間がS画素空いており、文字列404の行の高さ(文字の高さ)がH画素である場合、floor(S÷H)文字分の空白文字を追加してもよい。ここで、floor(x)は、xを超えない最大の整数である。なお、各セルブロック810の文書構成要素の方向は、文字列を含む場合はその文字列の方向に従い、文字列を含まない場合は予め指定された初期値として横書きであるとする。
【0113】
(複数のセルブロックにまたがる文書構成要素の格納先)
分離された境界上に位置する文書構成要素、すなわち複数のセルブロック810にまたがって位置する文書構成要素がどのセルブロック810に格納されるかの判定方法は特に決まりは無く、自由に設定することができる。たとえば、分離が選択された境界上に文字列がまたがっている場合、その境界線の方向と文字列の方向が同じであれば、その文字列を囲む最小矩形と、各セルブロック810との重複する面積を算出し、算出した面積が最も大きなセルブロック810を文字列が格納されるセルブロック810として選択するようにしてもよい。たとえば、
図13のような表構造において
図14のように分離を行うと、
図13の文字列のうち上から3行目の文字列508は、{A1,B1,C1}で構成されるセルブロック(セルブロックA1:C1)と、{A2,B2,A3,B3}で構成されるセルブロックの2つのセルブロック(セルブロックA2:B3)にまたがるようになるが、前記文字列508は、セルブロックA1:C1で構成されるセルブロックと重複する面積の方が、セルブロックA2:B3よりも大きくなるため、セルブロックA1:C1を格納先として設定することになる。
【0114】
また、境界線と文字列の方向が直交する場合、(ルールA)前記文字列がまたがっている複数のセルブロック810のうち1つに、前記文字列を格納するようにしてもよいし、(ルールB)前記文字列を複数の部分文字列に分割して、複数のセルブロック810のうち一部または全部に、それぞれ異なる部分文字列を格納するようにしてもよい。
【0115】
前者(ルールA)の場合、境界線と文字列の方向が同じ場合の例と同様に重複する面積の大きいセルブロックに格納するようにしてもよい(ルールA−1)。
また、前記文字列を、構成する文字単位に分割してその文字を囲む最小矩形(最小文字矩形)を与え、セルブロック810毎に、一部または全部重複する最小文字矩形の数をカウントし、その数が最も多いセルブロック810を、前記文字列の格納先として判定してもよい(ルールA−2)。
【0116】
また、後者(ルールB)の場合、同様に前記文字列を構成する文字毎に最小文字矩形を与え、各最小文字矩形と重複する面積が最も大きいセルブロック810を、その文字の格納先として判定し、文字列の先頭の文字から順に格納先のセルブロック810を読み込み、格納先のセルブロックが同一の連続する文字を部分文字列として切り出すことで、部分文字列単位で格納先を設定する方法(ルールB−1)が挙げられる。
【0117】
たとえば、
図13のような表構造において、
図15のように分離を行うと、
図13の文字列のうち上から1行目の文字列506は、{A1,B1,A2,B2,A3,B3}で構成されるセルブロック(セルブロックA1:B3)と、{C1}で構成されるセルブロックの2つのセルブロック(セルブロックC1)にまたがるようになる。前記文字列506を(ルールA−1)に従って格納先を設定する場合、前記文字列506は、セルブロックA1:B3と重複する面積の方が、セルブロックC1と重複する面積よりも大きくなるため、セルブロックA1:B3を格納先として設定することになる。(ルールA−2)に従って格納先を設定する場合も、前記文字列506は、セルブロックA1:B3と重複する文字の数が13個、セルブロックC1と重複する文字の数が3個となるため(ここでは「方」の文字は双方のセルブロックでカウントされるものとしている)、セルブロックA1:B3を格納先として設定することになる。これに対して、(ルールB−1)に従って格納先を設定する場合、前記文字列は、重複する面積の大きさから、「分」から「る」までの12文字はセルブロックA1:B3、「方」から「の」の3文字はセルブロックC1を格納先として選択し、前記文字列を、「分」から「る」までの12文字と、「方」から「の」の3文字の2つの部分文字列に分割してそれぞれ格納する。なお、文字列を複数の部分文字列に分割する場合、文字列に与えられていた属性は部分文字列に継承される。
【0118】
表ごとに取得する表構造情報として、上記(1)〜(5)に加えて、セルブロックの属性を取得することができる。
各セルブロック801,804,806,809の属性は、少なくとも各セルブロック801,804,806,809を構成する四辺の罫線の情報を含む。前記罫線の情報は、各セルブロック801,804,806,809を構成する仮セルの四辺の罫線の情報から取得することができる。たとえば、セルブロック804の上辺の罫線は、セルブロック804を構成する仮セル(セルID4,5,7,8)のうち、上端に位置する仮セル(セルID4,5)の上辺の罫線の情報が全て同じ場合にその情報をセルブロック(セルID4,5)の上辺の罫線の情報として与え、1つでも異なる情報が含まれる場合はセルブロック804の上辺の罫線の情報を「不定」として与える。たとえば、セルブロック806,809のように、上端に位置する仮セルが1個の場合は、その仮セルの上辺の情報をそのままセルブロック806,809の上辺の情報として与える。前記の方法を、左辺、右辺、下辺についても同様に行う。
【0119】
また、各セルブロック801,804,806,809(以下、任意の一つまたは複数のセルブロックを示す場合、または、いずれか1つの代表するセルブロックを示す場合、セルブロック810という)の属性として、たとえば、セルブロック810の背景色を示す値を算出することができる。セルブロックの背景色を示す値は、各セルブロック810を構成する仮セルの範囲に含まれ、かつ検出されたラインと、検出された文字列や図を囲む範囲を除いた背景画素における画素値の平均値として算出してもよい。なお、分割処理部において仮セル単位での背景色を示す値を算出している場合、表構造記述部334では、以下のように次式(7)に基づいて背景色を示す値μ
Bを算出するようにしてもよい。
【0121】
但し、式(7)において、Nはセルブロックに含まれる仮セルの個数、μ
jはセルブロックに含まれるj番目の仮セルについて算出された背景色を示す値、n
jはセルブロックに含まれるj番目の仮セルの背景画素の画素数を示すものである。また、背景色はスカラー値もしくはベクトル値で表わされ、たとえば、文書画像がグレースケール画像である場合、背景色はグレースケール値を示すスカラー値で表わされ、RGB画像である場合、背景色は、R成分、G成分及びB成分の3成分からなるベクトル値で表わされる。
【0122】
また、各セルブロック810に格納される文書構成要素の情報として、前記の情報に加えて、セルブロック810の文書構成要素の配置方法の情報を与えることができる。文書構成要素の配置方法は、文字列の方向を第1方向、行の方向を第2方向とする場合、第1方向に関する配置方法を行毎に設定し、第2方向に関する配置方法をセルブロック810毎に設定することができる。第1方向に関する配置方法は、たとえば、横書きの場合、各行がセルの左端に詰めて表示されるか(左詰めまたは左揃え)、セルの水平方向の中心になるように表示されるか(中央揃え)、または右端に詰めて表示されるか(右詰めまたは右揃え)が挙げられる。第2方向に関する配置方法は、たとえば、横書きの場合、文書構成要素がセルの上端に詰めて表示されるか(上詰めまたは上揃え)、セルの垂直方向の中心になるように表示されるか(上下中央揃え)、または下端に詰めて表示されるか(下詰めまたは下揃え)が挙げられる。なお、第1方向に関する配置方法は行単位でなく、セルブロックに含まれる全ての行で同一の配置方法として設定されるようにしてもよい。全ての行で同一の配置方法として設定する場合、全ての行、すなわち文書構成要素を囲む最小の矩形(最小矩形)を1つの行とみなして判定処理を行う。
【0123】
これらの配置方法の判定方法に特に決まりはなく、よく知られた方法を用いることができる。簡単な方法として、セルブロック810の重心を始点とし、行または最小矩形の重心を終点とする変位ベクトルを算出し、前記変位ベクトルの水平成分が閾値TH1から閾値TH2の間にある場合に中央揃え、閾値TH1より小さい場合に左揃え、閾値TH2より大きい場合に右揃えとする。また、前記変位ベクトルの垂直成分が閾値TH3から閾値TH4の間にある場合に上下中央揃え、閾値TH3より小さい場合に上揃え、閾値TH4より大きい場合に下揃えとする方法がある。閾値TH1,TH2は、それぞれ中央揃えとして判定するための下限値及び上限値を示す閾値であり、たとえば各セルブロックの横幅をWとするとき、TH1=−0.1W、TH2=0.1Wとすることで、行または最小矩形の重心が、セルブロックの重心から水平方向に±10%の範囲に収まっている場合に中央揃えとして許容するようにすることができる。また、閾値TH3,TH4は、それぞれ上下中央揃えとして判定するための下限値及び上限値を示す閾値であり、たとえば各セルブロックの高さをHとするとき、TH3=−0.1H、TH4=0.1Hとすることで、最小矩形の重心が、セルブロックの重心から垂直方向に±10%の範囲に収まっている場合に上下中央揃えとして許容するようにすることができる。
【0124】
これらの表構造情報の具体的な記述方法について特に決まりは無く、たとえば、
図21のようにツリー形状に参照できるように記述しておくと、XML形式のファイルフォーマットへの変換が容易になる。また、属性の種別ごとに別途リストなどを記述しておき、そのリストで指定されたIDを参照して情報を取得するようにすることで、同一の属性を何度も繰り返し記述することを避けることができる。たとえば、検出されたラインの情報を
図22のようにリストとして記述し、各ラインにID(ラインID)を割り振っておき、
図21のように記述されたツリー形状の表構造情報において、各セルブロック810の罫線の情報としてラインIDを記述することで、同一のラインを共有する複数のセルブロック間で同一の情報を何度も繰り返して記述する必要が無くなる。記述の順序は特に決まりは無いが、記述の対象となるセルブロックの順序は、親IDの小さい順とし、表の左上から順に情報が記述されるようにすることが望ましい。なお、もちろん、
図21及び
図22に示された項目以外にも記述する情報を増やしてもよい。
【0125】
(ファイル記述部(一例))
ファイル記述部34は、前段までに抽出された文字や図などの文書構成要素の情報、ラインの情報及び表構造情報を用いて、指定されたファイル形式への変換を行う。上述の通り、ファイル形式によって記述方法が異なり、各ファイル形式が準拠する規格の仕様書等に従って記述される。たとえば、Microsoft(登録商標)社が提供する文書作成ソフトウェアである「Microsoft Word 2010」(左記において、Microsoftは登録商標)、またはその後継バージョン(以降、単純にWordと表記する)のファイル形式(docx)が採用するファイルフォーマットであるOOXMLは、ECMA−376、及びISO/IEC 29500として標準化されており、それらの仕様書に記載されたフォーマットに従って記述することでWordのファイルとして構造化することができる。ECMA−376として標準化されたフォーマットは、下記の参考文献5として公開されており、参考文献5に記載のフォーマットに従って記述する。以下では、文書画像中の特に表の構造化に係る部分の処理例を挙げ、詳細の記述方法については省略する。
「参考文献5:ECMA-376, 4th Edition Office Open XML File Formats、[平成27年9月21日検索]、インターネット(URL http://www.ecma-international.org/publications/standards/Ecma-376.htm)」
【0126】
図23は、Wordファイルのファイル構造(一部)の一例を示すツリー図である。Wordファイルでは、
図23に示すような一連のフォルダ及びファイルをZIP圧縮し、ファイル拡張子をdocxに置き換えることで1つのファイルとしている。
図23の1行目の/word/フォルダ以下に、文書を構造化するためのデータを記述したファイルや、文書画像中から抽出されたグラフィックを画像として保存した画像ファイルなどを格納する。たとえば、document.xmlファイルは、ドキュメント本文を構成する文字(列)やグラフィック、表などのオブジェクトを、その情報に従って、WordProcessingMLと呼ばれるマークアップ言語を用いて記述される。たとえば表は、
図24に示すように、<w:tbl>を開始宣言、</w:tbl>を終了宣言とするタグの間に記述された情報(以下、この情報を記述1という)に従って、表を構造化する。記述1は、表全体にわたるプロパティなどの情報(以下、この情報を記述2という)と、各行を構造化するための情報(以下、この情報を記述3という)に分かれる。
【0127】
記述3は<w:tr>から</w:tr>の間に記述され、先頭の行から順に行数分反復する。記述3は、更に、行全体にわたるプロパティなどの情報(以下、この情報を記述4という)と、各セルを構造化するための情報(以下、この情報を記述5という)に分かれる。記述5は、<w:tc>から</w:tc>の間に記述され、先頭(左端)から順に列数分反復する。記述5は、更に、セルに関するプロパティなどの情報(以下、この情報を記述6という)と、各セルに格納される文書構成要素の集合である段落を構造化するための情報(以下、この情報を記述7という)に分かれる。記述7の<w:p>から</w:p>の間に記述される内容は1つの段落を示す。記述7は、更に、各段落に関するプロパティなどの情報(以下、この情報を記述8という)と、格納される文書構成要素を構造化するための情報(以下、この情報を記述9という)に分かれる。
【0128】
記述9の<w:r>から</w:r>の間に記述される内容は1つのランを示す。ラン毎に、プロパティなどの情報(以下、この情報を記述10という)と文書構成要素を示すデータの情報(以下、この情報を記述11という)を記述するため、プロパティなどの情報を共有する文書構成要素毎にランに分類する。すなわち、文字列の場合でも、文字色やサイズなどのプロパティが異なる場合はランを分ける。なお、
図24において、記述11にあたる<w:t>から</w:t>の間の情報は文字(列)データを記述するものであり、画像を格納する場合は<w:drawing>から</w:drawing>の間に、格納する画像に関する情報を記述する。なお、画像ファイルは
図23の/word/mediaフォルダに格納され、/word/_rels/document.xml.relsにおいてファイル名と関連づけられたIDをdocument.xmlファイル内で参照することにより、対応するグラフィックを文書ファイル中に貼り付けることができる。
図23の各ファイルの詳細、及び具体的な各ファイルの記述方法については参考文献5などのフォーマット仕様書を参照されたい。
【0129】
なお、各種属性において算出過程を省略するなどにより適切な値が設定されていない場合は、その属性に関するプロパティの記述などを省略し、各種アプリケーションで設定される初期値を使用するようにしてもよい。たとえば、文字色の算出を省略した場合、黒色など予め決められた色を初期値として使うことができる。なお、セルブロックの四辺の罫線について、前述の通り「不定」として与えられている場合、そのセルの辺の罫線情報は設定しない。また、各行において、行を構成する全ての仮セルの上辺もしくは下辺の罫線が、同一のラインにより構成されている場合、セル単位でなく、行単位(
図24では記述4にあたる)で上辺もしくは下辺の罫線の情報を一括して設定するようにしてもよい。
【0130】
上記の実施の形態1の構成により、セルの結合、または、分離の判定を、四辺の罫線の有無だけでなく、文字列の位置も利用して段階的に行うため、文字列などの配置も考慮した表の再構成が可能となる。また、結合セル候補410及びセルブロック810はともに、四角形となることを前提としているため、オフィス用電子ファイルとして変換する際に1つの結合されたセルとして構造化することが容易となる。したがって、文書構成要素の配置を考慮してセルの結合関係を判定し、各文書構成要素が最も適切にセルに割り当てられ、最終的に結合されたセルが矩形となるようにセル同士の結合を行うことが可能となる。
【0131】
また、上記の実施の形態1の構成により、表構造記述部334とファイル記述部34とを分けて備えることで、一旦情報を取得しておき、所望のファイル形式への変換は取得しておいた情報を参照して変換処理を行うといった方法をとることが可能となるため、ファイル形式を変更したい場合に毎回情報の取得からやり直す必要はないという利点がある。
また、上記の実施の形態1において、横書きの文字列を対象として構成及び処理の説明を行ったが、本発明の構成は、当該実施の形態に限られず、縦書きの文字列にも適用することが可能である。
【0132】
また、上記の実施の形態1の構成では、表画像として、たとえば、表計算のソフトウェアによって作成された文書を、画像として読み取ったものを前提としているが、本発明の構成は、当該実施の形態に限られない。たとえば、電子黒板等の上に表と、表枠に書き込まれる数字や文字等と、が手書きで書き込まれた場合に、手書きの数字や文字と、表枠の罫線を分離して検出し、さらに罫線のうち水平方向と垂直方向の罫線を検出することで、実施の形態1のように表を再構成する表構造情報を抽出することが可能となる。
【0133】
(変形例1)
上記の実施の形態1では、文書構成要素として、文字や、文字を複数並べて成る文字列、図、及び写真を含む場合について説明したが、図や写真については、表の各セルに格納されるのではなく、表オブジェクトの上に、グラフィックオブジェクトとして重ねて貼り付けられることも多い。したがって、上記の実施形態において、文書構成要素を文字と、文字を複数並べて成る文字列に限定して表構造情報を生成し、ファイル記述部では、表構造を記述して得られる表オブジェクトの上から重ね合わせる形で、予め検出されたグラフィックを貼りつけるようにしてもよい。
【0134】
(変形例2)
また、上記の実施の形態1では、第1分類処理部332で得られた全ての結合セル候補410に対して、第2分類処理部333ではペナルティを算出してセルブロック810を選択する方法を説明した。当該方法において、結合セル候補410に含まれる仮セル同士の間の境界全てについて、結合もしくは分離の選択の組合せのうち禁止パターンを除いた組合せ全てを考慮すると、場合によっては処理に膨大な時間がかかることもある。そこで、上記の実施形態において、事前に結合セル候補410を構成する仮セル全てを単一のセルブロック810として結合してもよいかどうかの判定処理を追加し、前記判定を満たす場合、以降のペナルティ算出を省略して、結合セル候補410に含まれる全ての仮セルをそのまま単一のセルブロックに分類するようにしてもよい。
【0135】
事前の判定処理は、たとえば、結合セル候補410を構成する全ての仮セルのうち、隣り合う2つの仮セル間のいずれの境界においても罫線が設定されていない場合(すなわち前述した禁止パターン1に該当する境界が存在しない場合)、結合セル候補410を構成する全ての仮セルを、単一のセルブロックとして分類する。これにより、罫線に関する禁止パターン1の判定基準を満たす場合、ペナルティによる結合または分離の選択を省略して全部結合してしまうことを許容することで、判定処理数を減らすことが可能となる。なお、事前の判定処理は、上記に限らず別の判定を行ってもよいし、複数の判定を組み合わせてもよい。
【0136】
(変形例3)
上記の実施の形態1では、たとえば、
図13に示すような結合セル候補410bが存在した場合、第2分類処理部333は、分離ペナルティを用いて、仮セルの境界上に重畳している文字列(たとえば、文字列506、または文字列508)を分割して、結合セル候補410bの内部が矩形によって分けられるようにする。
図13の例では、文字列506は、1つの文章を構成する文字列であり、文章の内容に沿った正しい文字列の抽出が行われている。これに対して、たとえば、
図7の例において、文字列401(文字列その1)と文字列402(文字列その2)が、1つの文字列として抽出されているような場合、抽出した文字列が表の罫線によって分断されているため、本来、当該文字列は、2つの文字列401と文字列402として抽出されるべきであり、そうしておくことで、第2分類処理部333における分離ペナルティの処理数を削減することができる。
【0137】
文章のレイアウトによっては、文章の内容として、連続していないと思われる2つの文字列が、文字抽出処理部311によって、意図せず1つの文字列として抽出される場合もある。このような文字列は、予め分けておくのが望ましく、それにより、第2分類処理部333による分離ペナルティの処理を削減することが可能となる。以下に、このような、本来予め分けられて抽出されるべき文字列を分離する手法について説明する。
【0138】
図25は、「文字列その1」という文字列が、文字抽出処理部311によって1つの文字列201によって検出され、また、ライン抽出処理部313によって、文字列201と重なるライン251が検出された例である。このような場合、第1分類処理部332において、文字列201を、ライン251において分離し、2つの文字列201−aと文字列201−bに分ける処理を行う。
図25のように文字列201が横書きの場合は、これを分離する垂直方向のライン251が検出された場合に、分離が行われるが、縦書きの文字列の場合、これを分離する水平方向のラインが検出された場合に分離が行われる。なお、文字列とラインの角度は、必ずしも直角(90度)でなくてもよく、ほぼ直角であってもよい。
【0139】
図26は、文字抽出処理部311によって、2つの仮セル281,282にまたがって存在する文字列202が検出され、仮セル281,282の間の境界261に表の罫線としてのラインが存在しない場合の例である。この場合、第1分類処理部332は、文字列202を構成する複数の文字の情報を参照し、たとえば、以下の条件のいずれかを満たす場合、仮セル281,282の間に罫線が存在しない場合であっても、その境界261を基準に文字列202を2つに分離する。
【0140】
「条件1:境界上にまたがる文字が存在しない場合」
たとえば、文字列202に含まれる各文字において、
図27に示すように、文字221,222,225のように各文字を含む最小矩形が境界261と交差しない場合、文字列202を2つの文字列に分離する。また、たとえば、文字223のように、文字を含む最小矩形が、境界261と交差するが、垂直方向の境界261の場合、左端、または右端から所定範囲(たとえば、各文字の最小矩形の横幅の5%程度の範囲)以内で交差する場合、2つの文字列を構成すると判定して、文字列202を2つの文字列に分離する。なお、この例では、文字224については、境界261と所定範囲を超えて交差するため、文字列202が、文字224を含むようなとき、第1分類処理部332は、文字列202を分離しない。
【0141】
「条件2:境界を挟む文字の文字間隔が広い場合」
たとえば、第1分類処理部332は、文字列202に含まれる全ての隣り合う2つの文字の組について、その文字間の距離をそれぞれ算出する。文字間の距離は、たとえば、文字を含む最小矩形同士の距離として算出する。算出した文字の組のうち境界261を挟む文字、すなわち「に」と「ま」の文字の間隔である文字間距離L1を
図28に示すように選択する。また、第1分類処理部332は、その他の組の距離の平均値か、または、その他の組の距離の最大値を文字間距離L2として選択する。そして、第1分類処理部332は、文字間距離L1が、文字間距離L2に比べて所定倍率以上大きい場合、境界261を挟んで文字列202を2つに分離する。なお、所定倍率としては、その他の組の距離の平均値をL2とする場合、たとえば、1.5倍程度の値、その他の組の距離の最大値をL2とする場合、たとえば、1.2倍程度の値を適用することができる。
【0142】
なお、条件としては、他の条件であってもよく、たとえば、条件1に加えて、以下のような条件を組み合わせてもよい。
図29(a),(b)に示すように、境界262,263のそれぞれに文字列203,204がまたがっている場合、文字列203,204をそれぞれ境界262,263の左側と右側とに分離する。分離することにより、
図30に示すように、文字列203は、部分文字列203−a,203−bに、文字列204は、部分文字列204−a,204−bにそれぞれ分けられる。このとき、左側の部分文字列と、右側の部分文字列との行方向のずれ量と、所定の基準値を比較して、たとえば、ずれ量が、所定の基準値以上の場合に、第1分類処理部332は、文字列203,204を分離する。
【0143】
図30(a),(b)に示す文字列203と文字列204については、第1分類処理部332が、たとえば、部分文字列203−aと部分文字列203−b、及び部分文字列204−aと部分文字列204−bのそれぞれの部分文字列を含む最小矩形を特定し、特定した最小矩形の上辺と下辺の真中を通る中心線を求める。
図31(a),(b)に示すように、部分文字列203−a,203−bについては、中心線231−a,231−bとして求め、部分文字列204−a,204−bについては、中心線232−a,232−bとして求める。そして、それぞれの中心線231−a,231−b,232−a,232−bが、縦方向のY軸と交差する位置を各々の部分文字列203−a,203−b,204−a,204−bの基準位置y1,y2,y3,y4として算出する。そして、第1分類処理部332は、y1とy2の差、及びy3とy4の差の絶対値を、それぞれ部分文字列203−a,203−b間の距離、部分文字列204−a,204−bの間の距離として求める。第1分類処理部332は、求めた距離と、所定基準値とを比較して、求めた距離が所定基準値以上の場合に、一方の部分文字列と他方の部分文字列が別の文字列であると判定して、文字列の分離を行う。たとえば、所定基準値が、y1とy2の差の絶対値よりも大きく、y3とy4の差の絶対値よりも小さい場合、文字列203については部分文字列203−aと部分文字列203−bの距離が、所定基準値より小さいため、第1分類処理部332は、文字列203については分離しない。これに対して、文字列204については、部分文字列204−aと部分文字列204−bの距離が、所定基準値より大きいため、第1分類処理部332は、文字列204については部分文字列204−aと部分文字列204−bに分離する。
なお、所定基準値としては、たとえば、距離の算出元の2つの部分文字列の最小矩形の高さの小さい方を所定倍(たとえば、0.25程度の値)の値としてもよい。また、部分文字列の間の距離を算出する際に、上辺と下辺の中心線ではなく、たとえば、英語等の場合、下辺を用いてもよい。
【0144】
また、他の条件の別の例として、
図32(a)に示すような、原稿を読み取る際に、原稿の傾きにより、左から右にかけて傾いている文字列205の場合、まず、第1分類処理部332は、
図32(b)に示すように、文字列205を境界264で2つの部分文字列205−aと部分文字列205−bに分離する。次に、第1分類処理部332は、各部分文字列205−a,205−bのいずれか一方の文字列方向線を求める。ここでは、部分文字列205−aの文字列方向線232を求めたとする。第1分類処理部332は、求めた文字列方向線232を文字列方向に延長した場合、他方の部分文字列205−bと十分重複するか否かを判定する。判定の結果、十分重複しない場合、ずれ量が大きいとして、2つの部分文字列205−a,205−bを分離し、十分重複する場合に分離しないというようにすることもできる。
【0145】
具体的には、まず、第1分類処理部332は、
図33(a)のように部分文字列205−aの先頭文字228と末尾文字229のそれぞれの最小矩形の重心2点を通る文字列方向線232を求める。なお、部分文字列が1文字の場合、横書きなら重心を通る水平ライン、縦書きなら重心を通る垂直ラインを用いるようにする。第1分類処理部332は、求めた文字列方向線232を延長して、他方の部分文字列205−bの領域に延長する。このとき、部分文字列205−bを含む最小矩形の左右の辺と交差し、さらに、上辺と下辺の中間に位置する水平ライン(中心線)とも交差する場合、すなわち
図33(b)に示す交点241,242,243という交点が得られる場合は、第1分類処理部332は、十分に重複すると判定して、部分文字列205−aと部分文字列205−bを分離しない。これに対して、交点241,242,243のいずれかが得られない場合、第1分類処理部332は、十分に重複しないと判定して、部分文字列205−aと部分文字列205−bとに分離する。このようにすることで、原稿の傾きにより、文字列が傾いている場合、部分文字列とした2つの文字列の傾きが同様であれば、2つの部分文字列は1つの文章を構成するものとして分離しないようにすることができる。
【0146】
上記の変形例3のように、文字列を予め不自然でない範囲で分離しておくことで、第2分類処理部333による分離ペナルティを用いた、分離の処理を軽減することが可能となる。
なお、変形例1,2,3を含む実施の形態1、及び以下に記載する実施の形態2,3,4において、予め定める数値以上か否かの判定は、一例であり、予め定める数値の大きさによっては、予め定める数値を超えるか否かの判定であってもよく、また、予め定める数値以下か否かの判定についても、予め定める数値の大きさによっては、予め定める数値未満か否かの判定であってもよい。
【0147】
〔実施の形態2:画像読取装置〕
上記の実施の形態1では、本発明に係る変換処理装置を変換処理部30として画像形成装置100が有する画像処理装置1に適用した構成について説明したが、本発明の構成は、これに限るものではない。実施の形態2では、本発明に係る変換処理装置を変換処理部30として、フラットベッドスキャナ等の画像読取装置100aが有する画像処理装置1aに適用した例について説明する。なお、実施の形態1の説明に用いた図面に記載されている部材と同じ機能を有する部材については、以下の説明においても同じ符号を付記する。また、それらの各部材の詳細な説明はここでは繰り返さない。
【0148】
図34は、実施の形態2に係る画像処理装置1aを備える画像読取装置100a(情報処理装置)の構成を示すブロック図である。
図34に示すように、画像読取装置100aは、画像処理装置1a、画像入力装置2、送信装置4、記憶部6、及び操作パネル5を備えている。画像処理装置1aは、A/D変換部10、シェーディング補正部11、原稿種別判別部12、入力階調補正部13、領域分離処理部14、圧縮処理部20、及び変換処理部30(変換処理装置)を備えている。当該変換処理部30により、実施の形態1において説明したのと同様に、指定されたファイル形式に変換されたファイルが出力される。画像読取装置100aで実行される各種処理は、画像読取装置100aに備えられる図示しない制御部(CPU(Central Processing Unit)あるいはDSP(Digital Signal Processor)等のプロセッサを含むコンピュータ)により制御される。実施の形態2では、画像読取装置100aは、スキャナに限定されることはなく、たとえば、デジタルスチルカメラ、書画カメラ、あるいは、カメラを搭載した電子機器類(たとえば、携帯電話、スマートフォン、タブレット端末等)であってもよい。
【0149】
〔実施の形態3:ネットワークを経由した変換処理装置〕
実施の形態1及び2において、本発明に係る変換処理装置を変換処理部30として、画像形成装置100、または画像読取装置100aが有する画像処理装置1、1aに適用する例を示したが、本発明の構成は、これに限るものではない。本発明に係る変換処理装置を、たとえばサーバ装置に適用してもよい。この場合のサーバ装置の構成の一例は、画像形成装置100、または画像読取装置100aにより画像読取及び各種画像処理が施された文書画像をネットワークを介して受信する受信装置と、実施の形態1において説明した変換処理部30での処理を実行する変換処理装置と、当該変換処理装置が備えるファイル記述部34から出力された文書ファイルを、ネットワークを介して送信する送信装置と、を備えたサーバ装置(情報処理装置)である。このようにサーバ装置を構成することにより、画像形成装置100、または画像読取装置100aにより画像読取及び各種画像処理が施された文書画像を、ネットワークを経由して受信して、前記の変換処理部30での処理を実行する変換処理装置により文書ファイルを作成し、出力されたファイルをユーザの端末装置(たとえば、パーソナルコンピュータやタブレット端末等)に送信する、という使い方が可能となる。また、このサーバ装置により、既に設置された画像形成装置100、または画像読取装置100aを交換することなく、フォーマット変換機能を利用することが可能となる。
【0150】
また、前記変換処理装置を、ファイル記述部34を除いて構成し、文書を構造化するための各種情報を作成し、ネットワークを介して送信するようにしてもよい。この場合、ファイル記述部34が実行する処理手段を、前記各種情報を受信した前記端末装置側が実行することで、文書の構造化に必要な各種情報の取得を何度も繰り返すことなく、所望のファイルへの変換をスムーズに実行することができるので、操作ミスにより誤ったファイル形式を指定してしまった場合や、指定したファイル形式の変換結果に満足できない場合などに、異なるファイル形式に変換し直すことが容易となる。
【0151】
〔実施の形態4:記録媒体・プログラム〕
実施の形態1、2、3における画像処理装置1、1a(特に、変換処理部30)やサーバ装置(特に、変換処理装置)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。後者の場合、画像処理装置1、1aやサーバ装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、前記プログラム及び各種データがコンピュータ(又はCPU)で読み取り可能に記録されたROM(Read Only Memory)又は記憶装置(これらを「記録媒体」と称する)、前記プログラムを展開するRAM(Random Access Memory)等を備えている。そして、コンピュータ(又はCPU)が前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、たとえば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して前記コンピュータに供給されてもよい。なお、本発明は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。なお、前記した画像処理装置1、1a及び画像処理方法は、カラーの画像データを扱う構成としたが、これに限るものではなく、白黒の画像データを扱う構成であってもよい。
【0152】
本発明は上述した各実施の形態に限定されるものではなく、種々の変更が可能である。すなわち、本発明の要旨を逸脱しない範囲内において適宜変更した技術的手段を組み合わせて得られる実施の形態についても本発明の技術的範囲に含まれる。