説明

画像処理装置およびプログラム

【課題】 文字認識結果と元画像とのずれを低減することができる画像処理装置を提供する。
【解決手段】 画像処理装置は、文字描画位置情報および文字サイズ情報を含む文字データまたは文字列データを用いて、仮想描画空間に候補文字または候補文字列を描画する仮想描画処理部404と、仮想描画空間に描画された候補文字または候補文字列と、文書画像中の文字または文字列を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部405と、比較処理部405が、ずれおよび相違が許容範囲外であると判定した場合に、文字データまたは文字列データの文字描画位置情報および文字サイズ情報を変更する描画情報補正部406とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スキャナ装置や撮像装置などの画像入力装置で読み取った、あるいは撮像した文書画像をOCR(Optical Character Reader)処理した結果と元画像であるその文書画像中の文字とのずれを低減させる画像処理装置およびプログラムに関する。
【背景技術】
【0002】
近年、文書や画像をOCR処理した結果を利用して、Word(登録商標)、Excel(登録商標)、Powerpoint(登録商標)等のアプリケーションファイルに変換することにより、原稿を再利用(一部を修正して利用)するという用途が増えてきている。OCR処理とは、手書き文字や印字された文字を光学的に読み取り、前もって記憶されたパターンとの照合により文字を特定し、文字データを入力する処理や、スキャナで読み取った画像から文字を認識して文書に変換する処理である。
【0003】
アプリケーションファイル以外のPDF文書を作成する場合にも、画像上に透明のText(OCR処理した結果)を貼り付けることにより、文字列による文書検索を可能にしたり、図1に示すように、検索ヒットしたText部分をハイライト表示させることにより、検索結果を見やすくしている。
【0004】
また、OCR処理の結果を確認したり、編集したりする場合に、元の画像上にOCR処理した結果の文字を目立つ色で表示させることにより、OCR認識結果の確認や誤認識部分の判別を行い易くしている。
【0005】
このようなOCR認識結果の確認や誤認識部分の判別を行いやすくするということへの活用を図るためには、OCR文字認識精度だけではなく、認識結果の文字を元の画像上に正しくレイアウトする必要がある。しかしながら、従来においては、正しくレイアウトする上で以下のような阻害要因があった。
【0006】
1つは、フォントの種類、文字の種類の判別である。例えば、全角文字と半角文字の判別、CenturyフォントとMSゴシックフォントの判別などである。これらが正しく判別できなければ、OCR文字認識が正しくても、画像上に重ね合わせ表示した場合に、図2(a)に示すように、ずれを生じて違和感が生じる。しかしながら、現在の技術では、これらを正しく判別することは困難である。これは、英字などとは異なり、日本語や中国語では出現文字数が多いからである。
【0007】
2つ目は、フォントサイズ、文字展開位置の判別である。例えば、文字を収納する仮想枠200に対する文字位置がずれる大文字と小文字の判別、片方に偏った字面の文字と偏りのない文字の判別である。フォントサイズを誤って判断すると、画像上に精度良く重ねることが困難になる。また、フォントサイズとともに文字の描画開始位置を誤ると、図2(b)に示すように、異様にずれた結果となる。これらの誤判断を招く要因としては、以下のものがある。
【0008】
図3を参照して説明する。和文フォントの場合、1つには、図3(a)に示すように、字体によって、文字を収納する仮想枠で囲まれた領域である仮想ボディ300と、仮想ボディ300内に実際にデザインされている文字の大きさである字面301に差があることである。仮想ボディ300および字面301は、略正方形で表される領域で示すことができるため、図3(a)の符号a、bで表される一辺の比として、その差を算出することができる。2つ目には、大きな字面の文字である「あ」に対して「ぁ」などの小さな字面の文字が存在することである。3つ目には、「。」といった片方に偏った字面の文字が存在することである。欧文フォントの場合には、図3(b)に示すように、ミーンライン(小文字の上端から下端までの高さを示すエックスハイトの上部に引いた線)を超える文字(大文字など)とミーンラインを超えない文字(小文字など)が存在し、また、アゼンダ(大文字の最上部に引いた線であるキャップラインを超える文字)が存在し、ディゼンダ(大文字の最下部に引いた線であるベースラインより下にはみ出す文字)が存在し、さらには、「W」や「1」などセット(字幅)に違いがあることである。
【0009】
従来のOCR処理するための画像認識装置は、文字画像から、フォントサイズ、フォントの種類、スタイル等の文字属性を認識し、これらの文字属性を含めて文字コードデータを出力することにより、原稿レイアウトの維持を図っている。
【0010】
しかしながら、従来の画像認識装置では、文字画像から認識することができるフォントの種類は限定されており、すべてのフォントを識別することは現実的ではない。また、フォントの種類によって文字幅や文字高さが異なっており、原稿を読み取ることによって入力された画像データ中の文字画像から文字コードを認識して得られた文字コードデータを特定の出力フォントで出力した場合、原稿における文字の配置と同じ配置で文字コードデータを出力することができない場合が多い。これでは、印刷された用紙上で文字と写真が重なったり、文字同士が重なったり、1頁の原稿を読み取ったにもかかわらず、2頁の用紙に印刷されてしまうという問題が生じる。
【0011】
そこで、入力された画像データ中の文字画像から文字コードを認識して得られた文字コードデータをある特定のフォントで配置した場合でも、元のレイアウトを適切に維持しつつ、しかも、文字コードデータを他の文字コードデータや図形画像と重なることなく同一頁内に配置することができる画像認識装置が提案されている(特許文献1参照)。この装置では、文字画像、図形画像のいずれをも含まない所定量の未使用部分が存在するとき、文字領域変更部によって、文字コードデータが配置される文字領域をその未使用部分を含めた領域まで拡大させる。これにより、文字コードデータを他の文字コードデータや図形画像と重なることなく同一頁内に配置することができる。
【0012】
他の阻害要因としては、文字展開・描画の単位の問題がある。この単位には、変換先文書フォーマットの仕様や特定、変換後の利用目的に伴い、次のような展開・描画の単位がある。1つには、文字領域単位で描画するというブロック単位がある。上記のWord(登録商標)やExcel(登録商標)などの文書フォーマットは基本的にこの方式を採用している。このブロック単位は、文字サイズや行間・文字間などの設定が適切でないと行の折り返し部分が元の原稿と一致しなくなるケースが生じるという問題がある。
【0013】
1行単位で描画するという行単位がある。行の折り返しは、元の画像と一致する。英文などを検索利用する場合には、スペースなどで単語が区切られていたり、その反対に、単語中に誤ってスペースなどの区切りが入らないようにこの方式を採用すると好ましい。しかしながら、1行中に異なるサイズの文字が含まれる場合には対応できないという問題がある。
【0014】
他には、1単語単位で描画するという単語単位がある。英単語などは文字間にスペースなどが入ると検索ヒットしなくなる場合があるので、日本語文中の英単語などはこの単語単位で描画すると好ましい場合がある。
【0015】
さらに他には、1文字ずつ描画するという1文字単位がある。例えば、PDFフォーマットなどがこの方式を採用している。レイアウト再現性の観点からは、この1文字単位が最も好ましい。しかしながら、検索などその後の利用方法や文書フォーマットの制限から単語単位や行単位にせざるを得ない状況が生じるという問題がある。
【0016】
OCR処理では、読み取った画像データに基づいて原稿に記載された文字を認識する処理を実行するが、この処理を実行する際、読み取った原稿画像データから文字単位のデータを取り出す「文字切り出し」を正確に行うことが、高い認識精度を得るために不可欠とされている。
【0017】
文字切り出し処理では、切り出した部分に対する確からしさを、図形情報を用いて一般化した基準により評価し、高い順に決定される切り出し候補を対象にして文字認識を行い、認識結果によって再切り出しが必要な部分を指示するフィードバックを行っている。
【0018】
この処理では、一般化した標準基準により決定した候補への処理を繰り返すこととなり、処理回数が増加するという問題がある。このため、高精度な文字切り出しを可能にする装置および方法が提案されている(特許文献2参照)。この装置および方法では、処理対象として入力された文字配列を有する文書画像から文字単位を含むと見なせる文字候補領域を切り出し、その切り出された文字を辞書に格納した文字画像特徴と照合し、照合結果にもとづき文字認識を行っている。また、認識された文字配列を対象にして文字の外接矩形における隣接矩形距離と隣接矩形の矩形中心線距離をそれぞれ算出し、その算出した文字ピッチから文字配列における文字の配置の特徴を判定し、平均値から大きく相違する不規則な文字配置ピッチが生じた箇所を文字切り出し誤りとして検出し、この誤り箇所に再切り出し、再認識処理を実行し、元の認識結果を合わせて最尤解を求めるようにしている。
【特許文献1】特開2001−319240号公報
【特許文献2】特開2004−46723号公報
【発明の開示】
【発明が解決しようとする課題】
【0019】
従来のOCR技術では、ブロック単位、行単位、単語単位、1文字単位といった文字展開・描画の単位に関係なく、フォントの種類、文字の種別、フォントサイズ、文字の展開位置を正確に判別することはできなかった。このため、画像上に正確に重ね合わせることは困難で、文字のずれを生じさせていた。
【0020】
そこで、このような文字のずれを極力少なくすることができる画像処理装置の提供、および文字のずれを低減させる処理を実行させるプログラムの提供が望まれている。
【課題を解決するための手段】
【0021】
本発明は、これまでのOCRエンジンの開発者から見るとナンセンスな、OCR認識した文字と、元の画像を重ね合わせるとぴったり重なるはずいう発想に基づきなされたものである。その1つは、フォント情報を利用して、実際に文字を展開した結果、または文字の展開結果を予想して位置ずれ量を算出し、補正する機能を備えることである。もう1つは、フォント情報を使用しなくても、文字の高さおよび幅から、フォントサイズ、高さ方向位置、幅方向位置を算出し、それを基に位置ずれ量を算出し、補正する機能を備えることである。
【0022】
すなわち、本発明によれば、文書画像内の文字または文字列中の文字を抽出し、抽出した前記文字または文字列を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を実行する画像処理装置であって、
文字描画位置情報および文字サイズ情報を含む前記文字データまたは文字列データを用いて、仮想描画空間に前記候補文字または候補文字列を描画する仮想描画処理部と、
前記仮想描画空間に描画された前記候補文字または候補文字列と、前記文書画像中の前記文字または文字列を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、ずれおよび相違が前記許容範囲外であると判定した場合に、前記文字データまたは文字列データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置が提供される。
【0023】
前記仮想描画処理部は、単語単位または行単位で前記候補文字列を描画し、前記比較処理部は、描画された前記候補文字列全体の幅および高さを算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否かを判定し、前記比較処理部が、前記高さの相違が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字サイズ情報を変更し、前記仮想描画処理部に、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅の相違が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字描画位置情報に含まれる前記候補文字列の文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報に基づき描画処理を実行させる。
【0024】
前記仮想描画処理部は、文字列が折り返されて少なくとも2行からなるブロック単位で前記候補文字列を描画し、前記比較処理部は、描画された前記候補文字列全体の幅、高さおよび折り返し位置を算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否か、および折り返し位置が相違するか否かを判定し、前記比較処理部が、前記高さの相違が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字サイズ情報を変更し、前記仮想描画処理部に、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅の相違が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報に基づき描画処理を実行させ、前記折り返し位置が相違すると判定した場合には、前記描画情報補正部が、前記文字サイズ情報および前記文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報および前記文字サイズ情報に基づき描画処理を実行させる。
【0025】
前記仮想描画処理部は、行単位またはブロック単位で前記候補文字列を描画し、前記比較処理部は、前記候補文字列中の文字または単語の先頭文字に位置ずれが生じているか否かを判定し、前記比較処理部が、位置ずれを生じていると判定した場合、前記描画情報補正部が、単語間のスペース数またはスペースの全角/半角を変更する。
【0026】
前記文字描画位置情報および前記文字サイズ情報を記憶する情報記憶部をさらに含み、前記比較処理部が、前記情報記憶部から前記文字描画位置情報および前記文字サイズ情報を読み出し、前記文書画像中の前記文字または文字列とのずれおよび文字サイズの相違が前記許容範囲内であるか否かを判定する。
【0027】
本発明によれば、文字を収納する仮想枠に対して字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部と、
前記候補文字が前記特徴量記憶部に記憶されている場合に、前記文書画像中の前記文字の文字描画位置情報および文字サイズ情報と、前記特徴量とを比較し、ずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、ずれおよび相違が前記許容範囲外であると判定した場合に、前記文字データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置を提供することもできる。
【0028】
また、本発明によれば、前記文字列データの候補文字列中に、予め設定される標準値より小さい文字が含まれるか否かを判定する文字判定部と、
前記文字判定部が、前記候補文字列中に前記標準値より小さい文字が含まれないと判定した場合に、前記候補文字列中のすべての文字の高さの平均値(H1)と、すべての文字の上端位置の平均値(T1)とを算出し、前記標準値より小さい文字が含まれると判定した場合に、前記候補文字列中のすべての文字の高さの平均値を算出し、その算出した平均値より小さい高さを有する文字を除いた平均値(H2)と上端位置の平均値(T2)とを算出して、H1またはH2から文字サイズ、T1またはT2から高さ方向の描画位置を特定し、前記候補文字列中の文字幅の平均値(W1)を算出し、W1より幅が広い文字については左端を幅方向の描画開始位置として特定し、W1より幅が狭い文字については前記候補文字列中のすべての文字の文字幅の平均値(W2)を計算し、前記左端からW2/2のオフセットをとった位置を幅方向の描画開始位置として特定し、特定された前記文字サイズ、前記高さ方向の描画位置、および前記幅方向の描画開始位置を基に、前記文書画像中の前記文字列を構成する画素成分の配置と比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、ずれおよび相違が前記許容範囲外であると判定した場合に、前記文字列データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置を提供することもできる。
【0029】
さらに、文字を収納する仮想枠に対して字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部を含み、
前記候補文字列中の候補文字が前記特徴量記憶部に記憶されている場合に、前記比較処理部が、1単語または1行中の各文字の前記仮想枠における幅方向の文字中心を特定し、各文字中心の間隔を計算し、前記間隔が均等間隔である場合には文字ピッチを前記間隔に適合させ、均等間隔でない場合には、文字種、文字サイズに応じて予め設定されるプロポーショナルフォントを用いて前記1単語または1行の文字列全体の幅を算出し、前記文書画像中の前記文字列の幅との相違する割合である差分量を算出し、前記描画情報補正部が、前記差分量に応じて前記文字描画位置情報の文字間隔および前記文字サイズ情報を変更することができる。
【0030】
前記候補文字列は、文字列が折り返されて少なくとも2行からなるブロック単位で処理される候補文字列であり、前記均等間隔である場合には、前記描画情報補正部が、折り返し位置がずれないように、文字間隔または文字ピッチを変更し、文字間隔が均等でない場合には、前記比較処理部が、1行単位に分割し、1行ごとに前記プロポーショナルフォントを用いて前記差分量を算出し、前記描画情報補正部が、前記差分量に応じて前記文字間隔または文字ピッチおよび前記文字サイズ情報を変更する。
【0031】
また、本発明によれば、複数の前記候補文字が特定された場合、文字描画位置情報および文字サイズ情報を含む複数の前記文字データを用いて、仮想描画空間に複数の前記候補文字を描画する仮想描画処理部と、
前記仮想描画空間に描画された複数の前記候補文字と、前記文書画像中の前記文字を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かをそれぞれ判定し、ずれおよび相違が前記許容範囲内であると判定した場合に、各前記候補文字と前記文字の相違する割合を差分値として算出する比較処理部と、
前記差分値が最も小さい文字データを処理結果として出力する出力処理部とを含む、画像処理装置を提供することもできる。
【0032】
前記複数の候補文字が、同じ文字の全角文字と半角文字とである場合、前記比較処理部が、前記全角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記半角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記候補文字判定部が、2つの前記差分値のうち小さいほうを処理結果として判定する。
【0033】
前記画像処理装置は、前記差分値が閾値を超える場合、文字の切り出し位置を変更することにより、前記文字列の分割、若しくは前記文字の統合、または前記文字列の統合を行い、分割された文字列、若しくは統合された文字、または統合された文字列を抽出し、抽出した前記文字または文字列を予め記憶された文字パターンと照合することにより候補文字または候補文字列として特定し、前記候補文字の文字データまたは前記候補文字列の文字列データを出力し、前記差分値が最も小さくなる前記切り出し位置を、文字の切り出し処理に適用することができる。
【0034】
前記複数の候補文字が、異なる種類のフォントからなる文字である場合、前記比較処理部が、前記複数の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値をそれぞれ算出し、前記候補文字判定部が、前記差分値のうち小さいものを処理結果として判定することができる。
【0035】
本発明によれば、上記各部における処理を画像処理装置に実行させるための該画像処理装置により可読なプログラムを提供することもできる。
【発明の効果】
【0036】
本発明によれば、実際に文字を展開した結果、または文字展開結果を想定してずれ量を補正し、文字サイズ、レイアウトの精度を向上させることができる。
【0037】
また、本発明によれば、画像の画像成分とOCR結果文字を重ねて展開した結果の画素を比較して差分値を算出することで、この差分値によりOCR結果の精度を向上させることができる。
【発明を実施するための最良の形態】
【0038】
本発明を、図面を参照して詳細に説明するが、本発明は図面に示される実施形態に限定されるものではない。図4は、画像処理装置の第1実施形態を示したブロック図である。図4に示す画像処理装置は、領域識別処理部400と、行切り出し処理部401と、文字切り出し処理部402と、OCR処理部403と、仮想描画処理部404と、比較処理部405と、描画情報補正部406と、出力処理部407とを含んで構成されている。
【0039】
画像処理装置としては、文書画像内の文字または文字列を抽出し、抽出した文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、候補文字の文字データまたは文字列データを出力する処理を実行することができる装置であれば、パーソナルコンピュータや、スキャナ機能や印刷機能などを有する複合機などを用いることができる。例えば、オペレーティングシステム(OS)としてwindows(登録商標)を備えるパーソナルコンピュータとすることができる。なお、これらの装置には、プロセッサと、上記処理をプロセッサに実行させるためのプログラムを記憶するメモリとが含まれる。
【0040】
文字を含む文書画像は、スキャナ装置や撮像装置によって読み取られ、画像処理装置に入力または記憶される。領域識別処理部400は、これらスキャナ装置や撮像装置によって読み取られ、あるいは撮像された文書画像の各領域を識別することにより、文字領域(文字ブロック)の位置を抽出する。文字領域の位置は、例えば、文書画像のサイズおよび予め設定される基準点からの座標位置等により決定することができる。領域識別処理部400は、文字領域に含まれる文字と、その文字領域の位置とを対応させて保持することができる。
【0041】
行切り出し処理部401は、文字領域の行方向を判別し、行単位に文字を切り出す処理を実行する。ここで、文字を切り出すとは、読み取った文書画像データから文字単位のデータを取り出すことをいい、高い認識精度を得るためには不可欠な処理である。文字切り出し処理部402は、1行中の1文字を切り出す処理を実行する。これら切り出す処理は、これまで知られたいかなる方法を用いて実行することができる。例えば、複数の文字ピッチを仮定し、その中から最も妥当性の高いものを文字ピッチとして採用し、文字切り出しに使用する方法とすることができる。
【0042】
OCR処理部403は、切り出された文字を、予め記憶された文字パターンと照合することにより候補文字として特定し、候補文字の文字データを出力する処理を実行する。候補文字に限らず、候補文字を1つずつ特定して、候補文字列の文字列データを出力することもできる。文字の照合には、単語辞書や住所辞書などの辞書データベースを用いることができる。OCR処理の詳細については、ここでは省略する。
【0043】
OCR処理された文字データまたは文字列データは、文字描画位置情報および文字サイズ情報を含む。文字描画位置情報は、その文字を描画する際の、高さ方向の描画位置や幅方向の描画位置に関する情報を含む。例えば、仮想枠における高さ方向および幅方向の描画位置である。文字列の場合には、文字間隔や行間隔などの情報を含むことができる。文字サイズ情報は、フォントサイズに関する情報を含む。この文字サイズ情報には、仮想ボディ、字面に関する情報を含むことができる。仮想描画処理部404は、OCR処理部403から得られる文字データまたは文字列データを用いて、文字を仮に描画するための仮想描画空間に、候補文字または候補文字列を仮想描画する。仮想描画空間または領域としては、具体的には、windows(登録商標)におけるデバイスコンテキストとすることができる。このデバイスコンテキストは、ディスプレイデバイスやプリンタデバイス等の表示デバイスを仮想化するために導入されたもので、windows(登録商標)アプリケーションは、特定のデバイスを意識することなく、このデバイスコンテキストに対して描画を行うことができる。
【0044】
仮想描画処理部404は、1文字単位のほか、単語単位、行単位、ブロック単位で文字列を描画することができる。
【0045】
比較処理部405は、仮想描画空間に描画された候補文字または候補文字列と、文書画像中の文字または文字列を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する。例えば、それぞれを重ね合わせて描画することで、そのずれや文字サイズの相違を判定することができる。
【0046】
描画情報補正部406は、比較処理部405が、ずれおよび相違が許容範囲外であると判定した場合に、文字データまたは文字列データの文字描画位置情報および文字サイズ情報を変更する。具体的には、文書画像中の文字または文字列に許容範囲内に収まるように、文字描画位置の高さ方向あるいは幅方向の設定値、文字間隔の設定値、文字サイズの設定値などを変更する。
【0047】
単語単位または行単位で処理する場合には、比較処理部405は、描画された候補文字列全体の幅および高さを算出し、文書画像中の文字列の幅および高さの相違が許容範囲内であるか否かを判定することができる。また、ブロック単位で処理する場合には、描画された候補文字列全体の幅、高さおよび折り返し位置を算出し、文書画像中の文字列の幅および高さとの相違が許容範囲内であるか否か、および折り返し位置と相違するか否かを判定することができる。本願において、幅とは、行方向への長さであり、高さとは、行方向に対し垂直な、列方向への長さである。紙面上の文字を見て、行方向の左側の端部が左端、右側の端部が右端、その左端から右端までの長さが文字の幅である。紙面上の文字を見て、列方向の上側の端部が上端、下側の端部が下端、その上端から下端までの長さが文字の高さである。文字列の幅は、その文字列の最も左側にある文字の左端から、最も右側にある文字の右端までの長さであり、高さは、最も上側に延びている文字の上端から、最も下側に延びている文字の下端までの長さである。
【0048】
描画情報補正部406は、比較処理部405が、高さの相違が許容範囲外であると判定した場合、描画情報補正部406は、文字サイズ情報を変更し、仮想描画処理部404に、変更した文字サイズ情報に基づき描画処理を実行させる。また、幅の相違が許容範囲外であると判定した場合には、文字描画位置情報に含まれる候補文字列の文字間隔を変更し、仮想描画処理部404に、変更した文字描画位置情報に基づき描画処理を実行させる。具体的には、高さが低い場合には、フォントサイズを、例えば9ポイントから10ポイントに大きくするように、文字サイズ情報を変更する。ブロック単位で処理する場合に、折り返し位置が相違すると判定されたとき、描画情報補正部406は、文字サイズ情報および文字間隔を、元画像である文書画像中の文字または文字列を構成する画素成分の配置と許容範囲内に収まるように変更する。例えば、以下で詳細に説明する差分値に対し、設定値を設け、その差分値がその設定値以下か以上かを判定することにより、許容範囲内か否かを判定することができる。ちなみに、差分値が設定値以下であれば、許容範囲内である。
【0049】
比較処理部405は、候補文字列中の文字または単語の先頭文字に位置ずれが生じているか否かを判定することができる。比較処理部405が位置ずれを生じていると判定した場合、描画情報補正部406は、単語間のスペース数、スペースの全角を半角に、またはスペースの半角を全角に変更し補正することができる。
【0050】
出力処理部407は、仮想描画処理部404で仮想描画し、比較処理部405で、OCR処理した結果と、元画像とを比較し、比較結果が許容範囲外である場合に、描画情報補正部406で補正し、再度、仮想描画処理部404でその補正された情報を用いて仮想描画し、比較処理部405で比較し、許容範囲内であることを確認した後、その補正された後の文字データまたは文字列データを処理結果として出力する。したがって、許容範囲外であれば、描画情報補正部406により補正された後、再度、仮想描画処理部404および比較処理部405で仮想描画および比較が行われ、許容範囲内となるまで繰り返される。
【0051】
図示しないが、第2実施形態では、上記文字描画位置情報および文字サイズ情報を記憶する情報記憶部を含む構成を採用することができる。この場合、比較処理部405が、情報記憶部から文字描画位置情報および文字サイズ情報を読み出し、文書画像中の文字または文字列とのずれおよび文字サイズの相違が許容範囲内であるか否かを判定する。この第2実施形態では、文字の描画結果を、仮想描画処理部404による仮想描画によって求めるのではなく、情報記憶部から直接、アセンダ、ディセンダ、ベースラインといった情報を取得することができ、この情報を基に、文字の描画位置および文字サイズを補正することができる。
【0052】
文字描画位置情報および文字サイズ情報は、例えば、実際に使用するフォントファイルから取得することができ、OSのAPI機能を利用してフォント展開結果を取得することもできる。これらの情報は、単語辞書や住所辞書などの辞書データベースを用いて取得することができる。
【0053】
図5に示す第3実施形態では、図4に示す仮想描画処理部404に代えて、図3に示す文字を収納する仮想枠に対して、図2に示すような字面に偏りがある文字の、偏り率、若しくは仮想枠における上下左右空間量、またはその両方を含む特徴量をその文字とともに記憶する特徴量記憶部500と、特徴量記憶部500とOCR処理部403とから各情報を取得する情報取得部501とを含んで構成することができる。
【0054】
特徴量記憶部500は、仮想的なフォント情報を保持するもので、小文字の「l」のように左右に空きがあるものや、「ッ」のように下側に偏っているものや、「、」や「。」のように左側に偏っているものを、実際の展開時にずれを生じやすい文字としてその情報を記憶している。特徴量記憶部500は、例えば、文字とその情報とを関連付けてテーブルとして記憶することができる。
【0055】
情報取得部501は、OCR処理部403から取得した候補文字の文字データまたは候補文字列の文字列データを基に、特徴量記憶部500にその候補文字が記憶されているかどうかを確認し、記憶されている場合には読み出し、取得する。比較処理部405は、情報取得部501が取得した情報を基に、文書画像中の文字の文字描画位置情報および文字サイズ情報と、取得した特徴量とを比較し、ずれおよび文字サイズの相違が許容範囲内であるか否かを判定する。
【0056】
例えば、一般的に小文字は大文字の半分の大きさしかないので、OCR処理部403で得られた文字サイズ情報の約2倍の大きさのフォントサイズにしなければならない。小文字の「c」は、大文字の「C」と同じフォントサイズであるが、画素サイズから文字サイズを割り出すと、小文字の「c」は半分のサイズと認識されてしまう。したがって、描画情報補正部406は、文字サイズ情報を2倍に変更し、補正する。また、一般的に小文字は、上側に空白が存在するので、展開位置、すなわち文字描画位置情報も下側にずれないように補正する。同様に、左右のどちらかに偏りまたは空白がある文字の場合、それを考慮して、展開位置を補正する。
【0057】
第4実施形態の画像処理装置は、情報記憶部からの情報を取得することなく、また、仮想描画することなく、ずれおよび文字サイズの相違が許容範囲内であるか否かを判定し、許容範囲外である場合に補正することができる。この場合の構成では、文字列データの候補文字列中に、予め設定される標準値より小さい文字が含まれるか否かを判定する文字判定部を含む。すなわち、図4に示す構成で、仮想描画処理部404に代えて、文字判定部を備えるものとされる。
【0058】
標準値は、文字の種別によって変えることができ、標準値の文字としては、かな文字であれば、大かなである「あ」、「い」、「う」、「え」、「お」、…が挙げられる。カナ文字であれば、大カナである「ア」、「イ」、「ウ」、「エ」、「オ」、…が挙げられる。また、英字であれば、大文字の「A」、「B」、「C」、…が挙げられる。漢字については、大部分の漢字とされる。
【0059】
これに対し、標準値を超えない、すなわち標準値より小さい文字としては、かな文字であれば、小かなである「ぁ」、「ぃ」、「ぅ」、「ぇ」、「ぉ」、…が挙げられる。カナ文字であれば、小カナである「ァ」、「ィ」、「ゥ」、「ェ」、「ォ」、…が挙げられる。また、英字では、小文字の「a」、「b」、「c」、…が挙げられ、その他、漢字の一部の「一」、「宀」、…や、記号「!」、「“」、「#」、…などが挙げられる。
【0060】
文字判定部は、候補文字列中に、上記の標準値より小さい文字が含まれるか否かを判定する。含まれない場合、上記の標準値の文字のみから構成されており、比較処理部405は、候補文字列中のすべての文字の高さの平均値(H1)と、すべての文字の上端位置の平均値(T1)とを算出する。また、標準値より小さい文字が含まれる場合、候補文字列中のすべての文字の高さの平均値を算出し、その算出した平均値より小さい高さを有する文字を除いた平均値(H2)と上端位置の平均値(T2)とを算出する。このようにして得られたH1またはH2から文字サイズを特定し、T1またはT2から高さ方向の描画位置を特定する。標準値の文字のみから構成されていれば、候補文字列のすべての文字のフォントサイズおよび高さ方向の描画位置は同じであることから、平均値を用いることで、フォントサイズおよび高さ方向の描画位置を算出することができる。また、標準値より小さい文字を含む場合には、すべての文字の高さの平均値を算出し、その算出した平均値より小さい高さを有する文字を除き、文字ごとのサイズのばらつきを小さくした上で、フォントサイズおよび高さ方向の描画位置を算出する。これらは、1行中の文字の最大高さ、または左右の文字の高さからフォントサイズおよび高さ方向の描画位置を算出するものである。
【0061】
幅方向の描画位置は、候補文字列中の文字幅の平均値(W1)を算出し、W1より幅が広い文字については左端を幅方向の描画開始位置として特定する。これに対し、W1より幅が狭い文字については、候補文字列中のすべての文字の文字幅の平均値(W2)を計算し、左端からW2/2のオフセットをとった位置(左端からW2の半分の長さほど右方向に移動した位置)を幅方向の描画開始位置として特定する。
【0062】
比較処理部405は、特定した文字サイズ、高さ方向の描画位置、および幅方向の描画開始位置から得られる候補文字列と、文書画像中の文字列を構成する画素成分の配置とを比較し、描画位置のずれおよび文字サイズの相違が許容範囲内であるか否かを判定する。比較処理部405が、ずれおよび相違が許容範囲外であると判定した場合に、描画情報補正部406が、文字列データの文字描画位置情報および文字サイズ情報を変更し、補正を行う。なお、情報記憶部からの情報を取得することなく、また、仮想描画することなく、ずれおよび文字サイズの相違が許容範囲内であるか否かを判定し、補正を行う、この第4実施形態の装置では、正確な文字描画位置情報および文字サイズ情報であるフォント情報を用いないため、折り返し位置の正確な予測は不可能である。したがって、折り返しの影響がでないように、ブロック単位で処理する場合には、行単位に変更して処理する必要がある。
【0063】
上記の特徴量記憶部を採用し、候補文字列中の候補文字が特徴量記憶部に記憶されている場合に、比較処理部405が、1単語または1行中の各文字の枠における幅方向の文字中心を特定し、各文字中心の間隔を計算し、その間隔が均等間隔である場合には、文字ピッチをその間隔に適合させることができる。その間隔が均等間隔でない場合には、文字種、文字サイズに応じて予め設定されるプロポーショナルフォント(文字ごとに異なった幅をもつフォント)を用いて1単語または1行の文字列全体の幅を算出し、文書画像中の文字列の幅との相違する割合である差分量(ずれ量)を算出する。この差分量の算出を受けて、描画情報補正部406が、差分量に応じて文字描画位置情報の文字間隔および文字サイズ情報を変更し補正する。
【0064】
プロポーショナルフォントの文字幅の平均値は、文字の種別、文字サイズごとに予め測定しておき、プロポーショナル補正テーブルとして記憶しておくことができる。このようにすることで、この補正テーブルを用い、単語単位または行単位の文字列全体の展開幅を算出し、元画像である文書画像中の文字列の幅との差分量から文字間隔を決定し、文字間隔の設定値を変更することができる。図3に示すように、仮想ボディ300と字面301との間には多少の余裕がある。例えば、文字同士がくっつくと、ボディ同士が重なり合い、文字間隔が負になる場合もありうる。しかしながら、字面が重なり完全に文字同士がくっつかなければよく、文字間隔が負になる場合には、文字サイズを小さくすることで、文字同士の重なりを抑制することができる。
【0065】
上記候補文字列がブロック単位で処理されるものであり、上記間隔が均等間隔である場合には、描画情報補正部406は、折り返し位置がずれないように、文字間隔または文字ピッチを変更し、文字間隔が均等でない場合には、比較処理部405が、1行単位に分割し、1行ごとにプロポーショナルフォントを用いて差分量を算出し、描画情報補正部406が、差分量に応じて文字間隔または文字ピッチおよび文字サイズ情報を変更し補正する。
【0066】
図6は、第5実施形態を示したブロック図である。この構成では、複数の文字データまたは文字列データが描画情報補正部406から出力されるが、その中で最も好適なものを判定する候補文字判定部600を備えている。他の構成は、図4に示される構成と同様である。したがって、仮想描画処理部404が候補文字を仮想描画し、比較処理部405が、ずれおよび文字サイズの相違が許容範囲内であるか否かを判定し、候補文字と元画像の文字との相違する割合を差分値として算出する。この差分値が小さくなるように、文字描画位置情報および文字サイズ情報の各設定値を変更することにより、文字データまたは文字列データを補正する。
【0067】
このように補正されると、元画像の文字または文字列と概ね重なるような配置・サイズになる。補正後のデータは、再び、仮想描画処理部404へ送られ、仮想描画される。このデータは1つに限られるものではなく、複数存在することが好ましい。したがって、複数のデータが仮想描画される。比較処理部405は、仮想描画されたこれら複数の候補文字と、元画像の文字を構成する画素成分の配置を比較し、字面自体の差分量を算出する。この差分量が許容範囲内であるか否かを判定する。許容範囲内にある候補文字が複数存在する場合でも、候補文字によって差分量は異なっており、最も近似するものが最も差分量が小さくなる。このため、候補文字判定部600は、最も差分量が小さくなる文字データまたは文字列データを処理結果として判定する。この処理結果は、出力処理部407から出力される。
【0068】
上記の複数の候補文字が、同じ文字の全角文字と半角文字とである場合には、比較処理部405が、全角文字の候補文字と元画像の文字を構成する画素成分の配置を比較して差分値を算出し、同様に、半角文字の候補文字とその画素成分の配置を比較して差分値を算出し、候補文字判定部600が、それら2つの差分値のうち小さいほうを処理結果として判定することができる。
【0069】
差分値に閾値を設け、差分値が閾値を超える場合、文字の切り出し位置を変更することにより、文字列の分割、文字の統合、文字列の統合を行い、分割された文字列、統合された文字、統合された文字列を抽出し、抽出した文字または文字列を予め記憶された文字パターンと照合することにより候補文字として特定し、候補文字の文字データまたは文字列データを出力することができる。このようにして、差分値が最も小さくなる切り出し位置を、文字の切り出し処理に適用することができる。差分値が閾値を超える場合には、文字切り出しに失敗したと判断することができ、文字切り出しを再処理することができる。これにより、どの切り出しが最も差分値が小さくなるか判定し、OCR処理の精度を向上させることができる。
【0070】
また、上記の複数の候補文字が、異なる種類のフォントからなる文字である場合には、比較処理部405が、複数の候補文字と元画像の文字を構成する画素成分の配置を比較して差分値をそれぞれ算出し、候補文字判定部600が、差分値のうち小さいものを処理結果として判定する。この処理結果は、出力処理部407から出力される。これにより、差分値から文字の種別を特定することができる。既存のフォント識別機能がある場合には、差分値情報を識別の判断基準の1つに加えることができる。
【0071】
次に、図7〜図9を参照して、OCR処理して得られた結果を基に、その結果と元画像の文字のサイズ・描画位置などの差分値(ずれ量)を算出し、補正する処理について詳細に説明する。まず、仮想描画領域に描画し、差分値(ずれ量)を算出し、補正する処理を、図7を参照して説明する。
【0072】
文字の描画・展開には4種類の方法がある。1文字単位ごとに描画する方法と、単語単位ごとに描画する方法と、行単位ごとに描画する方法と、ブロック単位ごとに描画する方法である。これらは、出力処理部407から出力される出力ファイルのフォーマット仕様、および利用目的や利用方法によって左右される。例えば、Word(登録商標)やExcel(登録商標)などのアプリケーションフォーマットに出力する場合は、基本的には、文字はブロック単位で出力される。用途が再利用目的、例えば、画像をアプリケーションフォーマットに変換して文書内容を編集し新しい文書を作成する場合、そのままブロック単位で出力したほうが文章の編集が容易となる。しかしながら、レイアウト再現性・文字配置の再現性を重視する場合には、文章の折り返し位置のずれを解消するためには、あえて文字ブロックを行単位または1文字単位で出力したほうが良い場合がある。これは、アプリケーションの文字ブロック描画仕様が不明な場合や行間・文字間の調整ができないフォーマットの場合に有効な手段となる。また、PDFなどのアプリケーションフォーマットは、レイアウト再現性を重視するため、基本的に1文字単位の描画となっているフォーマットも存在する。
【0073】
検索用途の場合には、以下のように状況が変化する。例えば、PDFに1文字単位で出力した場合には、全文検索のための全文Textデータを取り出した際に、文字の間に余計なスペースが挿入される場合がある。検索エンジンの特性が日本語ならば余計なスペースを無視して検索ヒットするが、英語の場合には、英単語としてヒットしないような場合には、英文字の場合だけ単語単位で出力すべき場合が生じる。すなわち、日本語文中に英単語が含まれる場合には、日本語は1文字ずつ貼り付け、英単語は単語単位で貼り付けるというようになる。このように、文字の描画・展開の単位は、出力フォーマット、利用目的などによって変化する。ここでは、そのときの条件や目的に応じて最適な方法が選択されるものとする。
【0074】
S700で処理を開始し、文字ブロック(文字領域)の位置を、領域識別によって抽出する(S701)。文字領域の行方向を判別し、行単位で切り出す(S702)。さらに、1行中を1文字単位で切り出す(S703)。その後、OCR処理を実行する(S704)。このOCR処理の結果として、候補文字の文字描画位置情報および文字サイズ情報を取得する(S705)。これらの情報を基に、仮想描画空間に候補文字を描画する(S706)。描画結果と元画像の文字の画素成分の配置を比較する(S707)。ずれおよび文字サイズの相違が許容範囲内であるか否かを判定する(S708)。ずれおよび相違が許容範囲外である場合、補正が必要であり、ずれ量を算出し、許容範囲内に収まるように、文字描画位置および文字サイズの設定値を変更し補正する(S709)。
【0075】
1文字単位の場合、例えば、S707で描画された文字の大きさを判定し、文字の大きさが元画像の文字の大きさよりも小さければ、S709で文字サイズを1ポイント大きくし、S706に戻り、再描画し、S707およびS708で比較および判定を行う。同様に、描画位置に高さ方向にずれを生じている場合は、そのずれ量分をS709において補正し、S706に戻り、再描画し、S707およびS708で比較および判定を行う。文字の大きさおよび描画位置のずれが許容範囲内に収まったところで、S716へ進み、文字サイズおよび描画位置を確定し、ここではメモリ等の記憶部に保存する。
【0076】
処理が単語単位、1行単位、ブロック単位である場合、描画単位がいずれの単位であるか判定する(S710)。単語単位であれば、文字列の幅の差から文字間隔の設定値を変更し補正する(S711)。その後S706へ戻り、再描画が行われる。1行単位であれば、文字列の幅の差から文字間隔の設定値を変更し補正する(S712)。ブロック単位であれば、折り返し位置の相違から文字サイズおよび文字間隔の設定値を変更し補正して、行間およびレイアウトを調整する(S713)。1行単位およびブロック単位の場合、単語の先頭位置にずれがあり、スペースによる補正が必要か否か判定する(S714)。補正が必要ない場合、S706へ戻り、変更された各設定値を用いて仮想描画空間に再描画を行う。スペースによる補正が必要な場合、スペース量を調整する(S715)。その調整後、S706へ戻り、再描画を行う。S708で、ずれおよび相違が許容範囲内であり、補正が不要な場合、その処理結果を出力処理部407に送り、出力ファイルに保存し(S716)、処理を終了する(S717)。
【0077】
この処理では、単語単位の場合、1文字単位と同様、まず、S708で1文字の大きさを判定し、S709で文字サイズを調整するとともに、S711で描画の先頭位置のずれを補正する。これで、基本的には、1文字目は許容範囲内に収まることになる。2文字目以降は、S711で文字間隔を調整することにより行う。文字間隔が調整できない場合、単語領域全体でセンタリングを行い、単語単位の大きさが近似する文字サイズを選択する。この場合、1文字単位のずれより、単語全体の配置を重視する。文字ごとにサイズのばらつきが大きい場合には、平均の文字サイズを採用するか、文字間隔のずれを重視してサイズを決定する。別の方法として、候補文字や文字の種別、文字の切り出しを見直す処理を実行する。
【0078】
行単位の場合、単語単位と同様の処理であるが、S714、S715のスペースの調整による補正が行われる。行全体のバランスを重視して文字サイズや文字間隔を調整するが、文字ごと、または単語ごとのずれが生じる場合には、その間に新たなスペース文字を挿入する、既存のスペースを除去する、既存の全角スペースを半角スペースに変換するなどして調整する。
【0079】
ブロック単位の場合、行単位の処理に追加して、S713で折り返し位置の調整および行間や行レイアウト(右詰め、左詰め、センタリングなど)の調整が行われる。特に重要なものが折り返し位置の調整である。折り返し位置が1文字異なるだけで、これまでの文字位置の重ね合わせ位置調整が無駄になるからである。これは、アプリケーションフォーマットに変換した場合に実際の描画と、仮想描画の仕様に相違がある場合にも誤差を生じることになるため、注意が必要である。実際には、充分に評価した上で仮想描画内容を調整するか、描画単位を行単位、単語単位、文字単位などに変更することで対応することができる。
【0080】
以上のような、補正を、文字サイズ、文字位置の情報を更新しながら繰り返し実行し、ずれ量が許容範囲内になればその結果を出力する。
【0081】
図8は、文字描画位置情報および文字サイズ情報を情報記憶部に記憶しておき、それを直接参照することで、仮想描画処理を実行することなく、差分値を算出し、補正する処理を示した図である。S800〜S805は、図7に示すS700〜S705と同様である。S805で取得された候補文字に基づき情報記憶部を参照する(S806)。候補文字が情報記憶部に記憶されているか否か判定する(S807)。記憶されていない場合には、補正の必要性がないため、S808へ進み、出力ファイルに保存し、処理を終了する(S809)。記憶されている場合には、補正の必要性があるため、ボディに対する字面の文字高さの比から文字サイズを変更し補正する(S810)。また、高さ方向の偏りから、高さ方向の描画位置を変更し補正する(S811)。さらに、幅方向の偏りから、幅方向の描画位置を変更し補正する(S812)。この処理は、仮想描画を行わない代わりに、特徴的な文字の描画位置情報および文字サイズ情報のみを予め記憶しておき、この情報を用いて簡易的な補正を行うものである。なお、偏りは、偏り率、仮想枠における上下左右空間量を含む特徴量から得ることができる。
【0082】
図9は、図7に示す処理と同様であるが、許容範囲内の候補文字が複数ある場合に、その中から候補文字を判定する処理が追加されたフローを示した図である。したがって、S900〜S915の処理は、図7に示すS700〜S715の処理と同様である。この処理は、OCR機能を補助またはOCR結果を検証することにより結果的にOCR精度を高めるためのものである。
【0083】
図9に示す処理では、S908で、複数の候補文字が、許容範囲内であると判定され、補正の必要性がないと判定された場合に、それら複数の候補文字の中から差分値の最も小さいものを判定する(S916)。また、差分値から全角か半角かを判定する(S917)。さらに、CenturyフォントやMSゴシックフォントといったフォントの種別を判別する(S918)。そしてさらに、文字切り出しを再判定する(S919)。文字切り出しの変更が必要な場合、切り出し位置を変更し、S903へ戻り、文字切り出し処理を実行する。S916〜S919の処理で最も好適な候補文字が決定されたところで、処理を終了する(S920)。
【0084】
S916〜S919の処理では、複数の候補文字から、OCR処理の確信度以外に、S916で、差分値情報を基にOCR処理した結果を特定する。S919では、差分値が閾値を超える場合に、文字切り出しに失敗したと判断し、文字切り出しの再処理を実行する。既存のフォント識別機能がある場合には、差分値情報を識別の判断基準の1つに加えることができる。特に、文字切り出しの再処理は、OCRの前段階、すなわちS903まで戻って再処理し、どの切り出しが最も差分値が小さくなるか判定することができるため、OCR処理の精度を向上させることができる。
【0085】
これまで本発明を図面に示した実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。図7〜図9に示す処理は、各部によって行うことができるが、プログラムとして構成し、プロセッサに実行させることにより、その処理を実行することもできる。また、このプログラムは、画像処理装置に実装されるメモリやHDDに格納することもできるし、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、メモリカード等の記録媒体に格納し、記録媒体として提供することもできる。
【図面の簡単な説明】
【0086】
【図1】文字列をハイライト表示させた画面を示した図。
【図2】文字のずれを例示した図。
【図3】フォントを例示した図。
【図4】画像処理装置の第1実施形態を例示した図。
【図5】画像処理装置の第3実施形態を例示した図。
【図6】画像処理装置の第5実施形態を例示した図。
【図7】OCR処理して得られた結果を基に、その結果と元画像の文字のサイズ・描画位置などの差分値を算出し、補正する処理の第1実施形態を示した図。
【図8】OCR処理して得られた結果を基に、その結果と元画像の文字のサイズ・描画位置などの差分値を算出し、補正する処理の第2実施形態を示した図。
【図9】OCR処理して得られた結果を基に、その結果と元画像の文字のサイズ・描画位置などの差分値を算出し、補正する処理の第3実施形態を示した図。
【符号の説明】
【0087】
200…仮想枠、300…仮想ボディ、301…字面、400…領域識別処理部、401…行切り出し処理部、402…文字切り出し処理部、403…OCR処理部、404…仮想描画処理部、405…比較処理部、406…描画情報補正部、407…出力処理部、500…特徴量記憶部、501…情報取得部、600…候補文字判定部

【特許請求の範囲】
【請求項1】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を実行する画像処理装置であって、
文字描画位置情報および文字サイズ情報を含む前記文字データまたは文字列データを用いて、仮想描画空間に前記候補文字または候補文字列を描画する仮想描画処理部と、
前記仮想描画空間に描画された前記候補文字または候補文字列と、前記文書画像中の前記文字または文字列を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、前記許容範囲外であると判定した場合に、前記文字データまたは文字列データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置。
【請求項2】
前記仮想描画処理部は、単語単位または行単位で前記候補文字列を描画し、前記比較処理部は、描画された前記候補文字列全体の幅および高さを算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否かを判定し、前記比較処理部が、前記高さが前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字サイズ情報を変更し、前記仮想描画処理部に、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字描画位置情報に含まれる前記候補文字列の文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報に基づき描画処理を実行させる、請求項1に記載の画像処理装置。
【請求項3】
前記仮想描画処理部は、文字列が折り返されて少なくとも2行からなるブロック単位で前記候補文字列を描画し、前記比較処理部は、描画された前記候補文字列全体の幅、高さおよび折り返し位置を算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否か、および折り返し位置が相違するか否かを判定し、前記比較処理部が、前記高さが前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字サイズ情報を変更し、前記仮想描画処理部に、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報に基づき描画処理を実行させ、前記折り返し位置が相違すると判定した場合には、前記描画情報補正部が、前記文字サイズ情報および前記文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報および前記文字サイズ情報に基づき描画処理を実行させる、請求項2に記載の画像処理装置。
【請求項4】
前記仮想描画処理部は、行単位またはブロック単位で前記候補文字列を描画し、前記比較処理部は、前記候補文字列中の文字または単語の先頭文字に位置ずれが生じているか否かを判定し、前記比較処理部が、位置ずれを生じていると判定した場合、前記描画情報補正部が、単語間のスペース数またはスペースの全角/半角を変更する、請求項2または3に記載の画像処理装置。
【請求項5】
前記文字描画位置情報および前記文字サイズ情報を記憶する情報記憶部をさらに含み、前記比較処理部が、前記情報記憶部から前記文字描画位置情報および前記文字サイズ情報を読み出し、前記文書画像中の前記文字または文字列とのずれおよび文字サイズの相違が前記許容範囲内であるか否かを判定する、請求項1〜4のいずれか1項に記載の画像処理装置。
【請求項6】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を実行する画像処理装置であって、
文字を収納する仮想枠に対して字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部と、
前記候補文字が前記特徴量記憶部に記憶されている場合に、前記文書画像中の前記文字の文字描画位置情報および文字サイズ情報と、前記特徴量とを比較し、ずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、ずれおよび相違が前記許容範囲外であると判定した場合に、前記文字データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置。
【請求項7】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を実行する画像処理装置であって、
前記文字列データの候補文字列中に、予め設定される標準値より小さい文字が含まれるか否かを判定する文字判定部と、
前記文字判定部が、前記候補文字列中に前記標準値より小さい文字が含まれないと判定した場合に、前記候補文字列中のすべての文字の高さの平均値(H1)と、すべての文字の上端位置の平均値(T1)とを算出し、前記標準値より小さい文字が含まれると判定した場合に、前記候補文字列中のすべての文字の高さの平均値を算出し、その算出した平均値より小さい高さを有する文字を除いた平均値(H2)と上端位置の平均値(T2)とを算出して、H1またはH2から文字サイズ、T1またはT2から高さ方向の描画位置を特定し、前記候補文字列中の文字幅の平均値(W1)を算出し、W1より幅が広い文字については左端を幅方向の描画開始位置として特定し、W1より幅が狭い文字については前記候補文字列中のすべての文字の文字幅の平均値(W2)を計算し、前記左端からW2/2のオフセットをとった位置を幅方向の描画開始位置として特定し、特定された前記文字サイズ、前記高さ方向の描画位置、および前記幅方向の描画開始位置を基に、前記文書画像中の前記文字列を構成する画素成分の配置と比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、ずれおよび相違が前記許容範囲外であると判定した場合に、前記文字列データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置。
【請求項8】
文字を収納する仮想枠に対して字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部を含み、
前記候補文字列中の候補文字が前記特徴量記憶部に記憶されている場合に、前記比較処理部が、1単語または1行中の各文字の前記仮想枠における幅方向の文字中心を特定し、各文字中心の間隔を計算し、前記間隔が均等間隔である場合には文字ピッチを前記間隔に適合させ、均等間隔でない場合には、文字種、文字サイズに応じて予め設定されるプロポーショナルフォントを用いて前記1単語または1行の文字列全体の幅を算出し、前記文書画像中の前記文字列の幅との相違する割合である差分量を算出し、前記描画情報補正部が、前記差分量に応じて前記文字描画位置情報の文字間隔および前記文字サイズ情報を変更する、請求項7に記載の画像処理装置。
【請求項9】
前記候補文字列は、文字列が折り返されて少なくとも2行からなるブロック単位で処理される候補文字列であり、前記均等間隔である場合には、前記描画情報補正部が、折り返し位置がずれないように、文字間隔または文字ピッチを変更し、文字間隔が均等でない場合には、前記比較処理部が、1行単位に分割し、1行ごとに前記プロポーショナルフォントを用いて前記差分量を算出し、前記描画情報補正部が、前記差分量に応じて前記文字間隔または文字ピッチおよび前記文字サイズ情報を変更する、請求項8に記載の画像処理装置。
【請求項10】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を実行する画像処理装置であって、
複数の前記候補文字が特定された場合、文字描画位置情報および文字サイズ情報を含む複数の前記文字データを用いて、仮想描画空間に複数の前記候補文字を描画する仮想描画処理部と、
前記仮想描画空間に描画された複数の前記候補文字と、前記文書画像中の前記文字を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かをそれぞれ判定し、ずれおよび相違が前記許容範囲内であると判定した場合に、各前記候補文字と前記文字との相違する割合を差分値として算出する比較処理部と、
前記差分値が最も小さい文字データを処理結果として判定する候補文字判定部とを含む、画像処理装置。
【請求項11】
前記複数の候補文字が、同じ文字の全角文字と半角文字とである場合、前記比較処理部が、前記全角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記半角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記候補文字判定部が、2つの前記差分値のうち小さいほうを処理結果として判定する、請求項10に記載の画像処理装置。
【請求項12】
前記画像処理装置は、前記差分値が閾値を超える場合、文字の切り出し位置を変更することにより、前記文字列の分割、若しくは前記文字の統合、または前記文字列の統合を行い、分割された文字列、若しくは統合された文字、または統合された文字列を抽出し、抽出した前記文字または文字列を予め記憶された文字パターンと照合することにより候補文字または候補文字列として特定し、前記候補文字の文字データまたは前記候補文字列の文字列データを出力し、前記差分値が最も小さくなる前記切り出し位置を、文字の切り出し処理に適用する、請求項10または11に記載の画像処理装置。
【請求項13】
前記複数の候補文字が、異なる種類のフォントからなる文字である場合、前記比較処理部が、前記複数の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値をそれぞれ算出し、前記候補文字判定部が、前記差分値のうち小さいものを処理結果として判定する、請求項10〜12のいずれか1項に記載の画像処理装置。
【請求項14】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を画像処理装置に実行させるための該画像処理装置により可読なプログラムであって、
文字描画位置情報および文字サイズ情報を含む前記文字データまたは文字列データを用いて、仮想描画空間に前記候補文字または候補文字列を描画するステップと、
前記仮想描画空間に描画された前記候補文字または候補文字列と、前記文書画像中の前記文字または文字列を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定するステップと、
前記判定するステップで、ずれおよび相違が前記許容範囲外であると判定された場合に、前記文字データまたは文字列データの前記文字描画位置情報および文字サイズ情報を変更するステップとを実行させる、プログラム。
【請求項15】
前記描画するステップでは、単語単位または行単位で前記候補文字列を描画し、前記判定するステップでは、描画された前記候補文字列全体の幅および高さを算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否かを判定し、前記判定するステップで前記高さの相違が前記許容範囲外であると判定された場合には、前記変更するステップで前記文字サイズ情報を変更し、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅の相違が前記許容範囲外であると判定された場合には、前記文字描画位置情報に含まれる前記候補文字列の文字間隔を変更し、変更した前記文字描画位置情報に基づき描画処理を実行させる、請求項14に記載のプログラム。
【請求項16】
前記描画するステップでは、文字列が折り返されて少なくとも2行からなるブロック単位で前記候補文字列を描画し、前記判定するステップでは、描画された前記候補文字列全体の幅、高さおよび折り返し位置を算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否かを判定し、および折り返し位置と相違するか否かを判定し、前記判定するステップで前記高さの相違が前記許容範囲外であると判定された場合には、前記変更するステップで前記文字サイズ情報を変更し、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅の相違が前記許容範囲外であると判定された場合には、前記文字間隔を変更し、変更した前記文字描画位置情報に基づき描画処理を実行させ、前記折り返し位置が相違すると判定された場合には、前記文字サイズ情報および前記文字間隔を変更し、変更した前記文字描画位置情報および前記文字サイズ情報に基づき描画処理を実行させる、請求項15に記載のプログラム。
【請求項17】
前記描画するステップでは、行単位またはブロック単位で前記候補文字列を描画し、前記判定するステップでは、前記候補文字列中の文字または単語の先頭文字に位置ずれが生じているか否かを判定し、前記判定するステップで位置ずれを生じていると判定された場合、前記変更するステップで、単語間のスペース数またはスペースの全角/半角を変更する、請求項15または16に記載のプログラム。
【請求項18】
前記画像処理装置は、前記文字描画位置情報および前記文字サイズ情報を記憶する情報記憶部を含み、
前記判定するステップでは、前記情報記憶部から前記文字描画位置情報および前記文字サイズ情報を読み出し、前記文書画像中の前記文字または文字列とのずれおよび文字サイズの相違が前記許容範囲内であるか否かを判定する、請求項14〜17のいずれか1項に記載のプログラム。
【請求項19】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を画像処理装置に実行させるための該画像処理装置により可読なプログラムであって、前記画像処理装置は、文字を収納する仮想枠内において字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部を含み、
前記候補文字が前記特徴量記憶部に記憶されている場合に、前記文書画像中の前記文字の文字描画位置情報および文字サイズ情報と、前記特徴量とを比較し、ずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定するステップと、
ずれおよび相違が前記許容範囲外であると判定された場合に、前記文字データの前記文字描画位置情報および文字サイズ情報を変更するステップとを実行させる、プログラム。
【請求項20】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を画像処理装置に実行させるための該画像処理装置により可読なプログラムであって、
前記文字列データの候補文字列中に、予め設定される標準値より小さい文字が含まれるか否かを判定するステップと、
前記候補文字列中に前記標準値より小さい文字が含まれないと判定した場合に、前記候補文字列中のすべての文字の高さの平均値(H1)と、すべての文字の上端位置の平均値(T1)とを算出し、前記標準値より小さい文字が含まれると判定した場合に、前記候補文字列中のすべての文字の高さの平均値を算出し、その算出した平均値より小さい高さを有する文字を除いた平均値(H2)と上端位置の平均値(T2)とを算出して、H1またはH2から文字サイズ、T1またはT2から高さ方向の描画位置を特定し、前記候補文字列中の文字幅の平均値(W1)を算出し、W1より幅が広い文字については左端を幅方向の描画開始位置として特定し、W1より幅が狭い文字については前記候補文字列中のすべての文字の文字幅の平均値(W2)を計算し、前記左端からW2/2のオフセットをとった位置を幅方向の描画開始位置として特定し、特定された前記文字サイズ、前記高さ方向の描画位置、および前記幅方向の描画開始位置を基に、前記文書画像中の前記文字列を構成する画素成分の配置と比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定するステップと、
ずれおよび相違が前記許容範囲外であると判定された場合に、前記文字列データの前記文字描画位置情報および文字サイズ情報を変更するステップとを実行させる、プログラム。
【請求項21】
前記画像処理装置は、文字を収納する仮想枠に対して字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部を含み、
前記候補文字列中の候補文字が前記特徴量記憶部に記憶されている場合に、前記配置を比較して判定するステップにおいて、1単語または1行中の各文字の前記枠における幅方向の文字中心を特定し、各文字中心の間隔を計算し、前記間隔が均等間隔である場合には文字ピッチを前記間隔に適合させ、均等間隔でない場合には、文字種、文字サイズに応じて予め設定されるプロポーショナルフォントを用いて前記1単語または1行の文字列全体の幅を算出し、前記文書画像中の前記文字列の幅との相違する割合である差分量を算出し、前記変更するステップで、前記前記差分量に応じて前記文字描画位置情報の文字間隔および前記文字サイズ情報を変更する、請求項20に記載のプログラム。
【請求項22】
前記候補文字列は、文字列が折り返されて少なくとも2行からなるブロック単位で処理される候補文字列であり、前記均等間隔である場合には、前記変更するステップにおいて、折り返し位置がずれないように、文字間隔または文字ピッチを変更し、文字間隔が均等でない場合には、前記配置を比較して判定するステップにおいて、1行単位に分割し、1行ごとに前記プロポーショナルフォントを用いて前記差分量を算出し、前記変更するステップで、前記差分量に応じて前記文字間隔または文字ピッチおよび前記文字サイズ情報を変更する、請求項21に記載のプログラム。
【請求項23】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を画像処理装置に実行させるための該画像処理装置により可読なプログラムであって、
複数の前記候補文字が特定された場合において、文字描画位置情報および文字サイズ情報を含む複数の前記文字データを用いて、仮想描画空間に複数の前記候補文字を描画するステップと、
前記仮想描画空間に描画された複数の前記候補文字と、前記文書画像中の前記文字を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲にあるか否かをそれぞれ判定し、ずれおよび相違が前記許容範囲内であると判定した場合に、各前記候補文字と前記文字との相違する割合を差分値として算出するステップと、
前記差分値が最も小さい文字データを処理結果として判定するステップとを実行させる、プログラム。
【請求項24】
前記複数の候補文字が、同じ文字の全角文字と半角文字とである場合、前記算出するステップでは、前記全角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記半角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記判定するステップでは、2つの前記差分値のうち小さいほうを処理結果として判定する、請求項23に記載のプログラム。
【請求項25】
前記差分値が閾値を超える場合、文字の切り出し位置を変更することにより、前記文字列の分割、若しくは前記文字の統合、または前記文字列の統合を行い、分割された文字列、若しくは統合された文字、または統合された文字列を抽出するステップと、
抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力するステップとを前記画像処理装置に実行させ、
前記差分値が最も小さくなる前記切り出し位置を、文字の切り出し処理に適用する、請求項23または24に記載のプログラム。
【請求項26】
前記複数の候補文字が、異なる種類のフォントからなる文字である場合、前記算出するステップでは、前記複数の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値をそれぞれ算出し、前記判定するステップでは、前記差分値のうち小さいものを処理結果として判定する、請求項23〜25のいずれか1項に記載のプログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate