(57)【要約】【課題】  文字認識結果と元画像とのずれを低減することができる画像処理装置を提供する。【解決手段】  画像処理装置は、文字描画位置情報および文字サイズ情報を含む文字データまたは文字列データを用いて、仮想描画空間に候補文字または候補文字列を描画する仮想描画処理部４０４と、仮想描画空間に描画された候補文字または候補文字列と、文書画像中の文字または文字列を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部４０５と、比較処理部４０５が、ずれおよび相違が許容範囲外であると判定した場合に、文字データまたは文字列データの文字描画位置情報および文字サイズ情報を変更する描画情報補正部４０６とを含む。【選択図】  図４
2008059527.tif 000002
【特許請求の範囲】
【請求項１】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を実行する画像処理装置であって、
文字描画位置情報および文字サイズ情報を含む前記文字データまたは文字列データを用いて、仮想描画空間に前記候補文字または候補文字列を描画する仮想描画処理部と、
前記仮想描画空間に描画された前記候補文字または候補文字列と、前記文書画像中の前記文字または文字列を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、前記許容範囲外であると判定した場合に、前記文字データまたは文字列データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置。
【請求項２】
前記仮想描画処理部は、単語単位または行単位で前記候補文字列を描画し、前記比較処理部は、描画された前記候補文字列全体の幅および高さを算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否かを判定し、前記比較処理部が、前記高さが前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字サイズ情報を変更し、前記仮想描画処理部に、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字描画位置情報に含まれる前記候補文字列の文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報に基づき描画処理を実行させる、請求項１に記載の画像処理装置。
【請求項３】
前記仮想描画処理部は、文字列が折り返されて少なくとも２行からなるブロック単位で前記候補文字列を描画し、前記比較処理部は、描画された前記候補文字列全体の幅、高さおよび折り返し位置を算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否か、および折り返し位置が相違するか否かを判定し、前記比較処理部が、前記高さが前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字サイズ情報を変更し、前記仮想描画処理部に、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報に基づき描画処理を実行させ、前記折り返し位置が相違すると判定した場合には、前記描画情報補正部が、前記文字サイズ情報および前記文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報および前記文字サイズ情報に基づき描画処理を実行させる、請求項２に記載の画像処理装置。
【請求項４】
前記仮想描画処理部は、行単位またはブロック単位で前記候補文字列を描画し、前記比較処理部は、前記候補文字列中の文字または単語の先頭文字に位置ずれが生じているか否かを判定し、前記比較処理部が、位置ずれを生じていると判定した場合、前記描画情報補正部が、単語間のスペース数またはスペースの全角／半角を変更する、請求項２または３に記載の画像処理装置。
【請求項５】
前記文字描画位置情報および前記文字サイズ情報を記憶する情報記憶部をさらに含み、前記比較処理部が、前記情報記憶部から前記文字描画位置情報および前記文字サイズ情報を読み出し、前記文書画像中の前記文字または文字列とのずれおよび文字サイズの相違が前記許容範囲内であるか否かを判定する、請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を実行する画像処理装置であって、
文字を収納する仮想枠に対して字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部と、
前記候補文字が前記特徴量記憶部に記憶されている場合に、前記文書画像中の前記文字の文字描画位置情報および文字サイズ情報と、前記特徴量とを比較し、ずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、ずれおよび相違が前記許容範囲外であると判定した場合に、前記文字データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置。
【請求項７】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を実行する画像処理装置であって、
前記文字列データの候補文字列中に、予め設定される標準値より小さい文字が含まれるか否かを判定する文字判定部と、
前記文字判定部が、前記候補文字列中に前記標準値より小さい文字が含まれないと判定した場合に、前記候補文字列中のすべての文字の高さの平均値（Ｈ１）と、すべての文字の上端位置の平均値（Ｔ１）とを算出し、前記標準値より小さい文字が含まれると判定した場合に、前記候補文字列中のすべての文字の高さの平均値を算出し、その算出した平均値より小さい高さを有する文字を除いた平均値（Ｈ２）と上端位置の平均値（Ｔ２）とを算出して、Ｈ１またはＨ２から文字サイズ、Ｔ１またはＴ２から高さ方向の描画位置を特定し、前記候補文字列中の文字幅の平均値（Ｗ１）を算出し、Ｗ１より幅が広い文字については左端を幅方向の描画開始位置として特定し、Ｗ１より幅が狭い文字については前記候補文字列中のすべての文字の文字幅の平均値（Ｗ２）を計算し、前記左端からＷ２／２のオフセットをとった位置を幅方向の描画開始位置として特定し、特定された前記文字サイズ、前記高さ方向の描画位置、および前記幅方向の描画開始位置を基に、前記文書画像中の前記文字列を構成する画素成分の配置と比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、ずれおよび相違が前記許容範囲外であると判定した場合に、前記文字列データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置。
【請求項８】
文字を収納する仮想枠に対して字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部を含み、
前記候補文字列中の候補文字が前記特徴量記憶部に記憶されている場合に、前記比較処理部が、１単語または１行中の各文字の前記仮想枠における幅方向の文字中心を特定し、各文字中心の間隔を計算し、前記間隔が均等間隔である場合には文字ピッチを前記間隔に適合させ、均等間隔でない場合には、文字種、文字サイズに応じて予め設定されるプロポーショナルフォントを用いて前記１単語または１行の文字列全体の幅を算出し、前記文書画像中の前記文字列の幅との相違する割合である差分量を算出し、前記描画情報補正部が、前記差分量に応じて前記文字描画位置情報の文字間隔および前記文字サイズ情報を変更する、請求項７に記載の画像処理装置。
【請求項９】
前記候補文字列は、文字列が折り返されて少なくとも２行からなるブロック単位で処理される候補文字列であり、前記均等間隔である場合には、前記描画情報補正部が、折り返し位置がずれないように、文字間隔または文字ピッチを変更し、文字間隔が均等でない場合には、前記比較処理部が、１行単位に分割し、１行ごとに前記プロポーショナルフォントを用いて前記差分量を算出し、前記描画情報補正部が、前記差分量に応じて前記文字間隔または文字ピッチおよび前記文字サイズ情報を変更する、請求項８に記載の画像処理装置。
【請求項１０】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を実行する画像処理装置であって、
複数の前記候補文字が特定された場合、文字描画位置情報および文字サイズ情報を含む複数の前記文字データを用いて、仮想描画空間に複数の前記候補文字を描画する仮想描画処理部と、
前記仮想描画空間に描画された複数の前記候補文字と、前記文書画像中の前記文字を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かをそれぞれ判定し、ずれおよび相違が前記許容範囲内であると判定した場合に、各前記候補文字と前記文字との相違する割合を差分値として算出する比較処理部と、
前記差分値が最も小さい文字データを処理結果として判定する候補文字判定部とを含む、画像処理装置。
【請求項１１】
前記複数の候補文字が、同じ文字の全角文字と半角文字とである場合、前記比較処理部が、前記全角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記半角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記候補文字判定部が、２つの前記差分値のうち小さいほうを処理結果として判定する、請求項１０に記載の画像処理装置。
【請求項１２】
前記画像処理装置は、前記差分値が閾値を超える場合、文字の切り出し位置を変更することにより、前記文字列の分割、若しくは前記文字の統合、または前記文字列の統合を行い、分割された文字列、若しくは統合された文字、または統合された文字列を抽出し、抽出した前記文字または文字列を予め記憶された文字パターンと照合することにより候補文字または候補文字列として特定し、前記候補文字の文字データまたは前記候補文字列の文字列データを出力し、前記差分値が最も小さくなる前記切り出し位置を、文字の切り出し処理に適用する、請求項１０または１１に記載の画像処理装置。
【請求項１３】
前記複数の候補文字が、異なる種類のフォントからなる文字である場合、前記比較処理部が、前記複数の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値をそれぞれ算出し、前記候補文字判定部が、前記差分値のうち小さいものを処理結果として判定する、請求項１０〜１２のいずれか１項に記載の画像処理装置。
【請求項１４】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を画像処理装置に実行させるための該画像処理装置により可読なプログラムであって、
文字描画位置情報および文字サイズ情報を含む前記文字データまたは文字列データを用いて、仮想描画空間に前記候補文字または候補文字列を描画するステップと、
前記仮想描画空間に描画された前記候補文字または候補文字列と、前記文書画像中の前記文字または文字列を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定するステップと、
前記判定するステップで、ずれおよび相違が前記許容範囲外であると判定された場合に、前記文字データまたは文字列データの前記文字描画位置情報および文字サイズ情報を変更するステップとを実行させる、プログラム。
【請求項１５】
前記描画するステップでは、単語単位または行単位で前記候補文字列を描画し、前記判定するステップでは、描画された前記候補文字列全体の幅および高さを算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否かを判定し、前記判定するステップで前記高さの相違が前記許容範囲外であると判定された場合には、前記変更するステップで前記文字サイズ情報を変更し、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅の相違が前記許容範囲外であると判定された場合には、前記文字描画位置情報に含まれる前記候補文字列の文字間隔を変更し、変更した前記文字描画位置情報に基づき描画処理を実行させる、請求項１４に記載のプログラム。
【請求項１６】
前記描画するステップでは、文字列が折り返されて少なくとも２行からなるブロック単位で前記候補文字列を描画し、前記判定するステップでは、描画された前記候補文字列全体の幅、高さおよび折り返し位置を算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否かを判定し、および折り返し位置と相違するか否かを判定し、前記判定するステップで前記高さの相違が前記許容範囲外であると判定された場合には、前記変更するステップで前記文字サイズ情報を変更し、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅の相違が前記許容範囲外であると判定された場合には、前記文字間隔を変更し、変更した前記文字描画位置情報に基づき描画処理を実行させ、前記折り返し位置が相違すると判定された場合には、前記文字サイズ情報および前記文字間隔を変更し、変更した前記文字描画位置情報および前記文字サイズ情報に基づき描画処理を実行させる、請求項１５に記載のプログラム。
【請求項１７】
前記描画するステップでは、行単位またはブロック単位で前記候補文字列を描画し、前記判定するステップでは、前記候補文字列中の文字または単語の先頭文字に位置ずれが生じているか否かを判定し、前記判定するステップで位置ずれを生じていると判定された場合、前記変更するステップで、単語間のスペース数またはスペースの全角／半角を変更する、請求項１５または１６に記載のプログラム。
【請求項１８】
前記画像処理装置は、前記文字描画位置情報および前記文字サイズ情報を記憶する情報記憶部を含み、
前記判定するステップでは、前記情報記憶部から前記文字描画位置情報および前記文字サイズ情報を読み出し、前記文書画像中の前記文字または文字列とのずれおよび文字サイズの相違が前記許容範囲内であるか否かを判定する、請求項１４〜１７のいずれか１項に記載のプログラム。
【請求項１９】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を画像処理装置に実行させるための該画像処理装置により可読なプログラムであって、前記画像処理装置は、文字を収納する仮想枠内において字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部を含み、
前記候補文字が前記特徴量記憶部に記憶されている場合に、前記文書画像中の前記文字の文字描画位置情報および文字サイズ情報と、前記特徴量とを比較し、ずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定するステップと、
ずれおよび相違が前記許容範囲外であると判定された場合に、前記文字データの前記文字描画位置情報および文字サイズ情報を変更するステップとを実行させる、プログラム。
【請求項２０】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を画像処理装置に実行させるための該画像処理装置により可読なプログラムであって、
前記文字列データの候補文字列中に、予め設定される標準値より小さい文字が含まれるか否かを判定するステップと、
前記候補文字列中に前記標準値より小さい文字が含まれないと判定した場合に、前記候補文字列中のすべての文字の高さの平均値（Ｈ１）と、すべての文字の上端位置の平均値（Ｔ１）とを算出し、前記標準値より小さい文字が含まれると判定した場合に、前記候補文字列中のすべての文字の高さの平均値を算出し、その算出した平均値より小さい高さを有する文字を除いた平均値（Ｈ２）と上端位置の平均値（Ｔ２）とを算出して、Ｈ１またはＨ２から文字サイズ、Ｔ１またはＴ２から高さ方向の描画位置を特定し、前記候補文字列中の文字幅の平均値（Ｗ１）を算出し、Ｗ１より幅が広い文字については左端を幅方向の描画開始位置として特定し、Ｗ１より幅が狭い文字については前記候補文字列中のすべての文字の文字幅の平均値（Ｗ２）を計算し、前記左端からＷ２／２のオフセットをとった位置を幅方向の描画開始位置として特定し、特定された前記文字サイズ、前記高さ方向の描画位置、および前記幅方向の描画開始位置を基に、前記文書画像中の前記文字列を構成する画素成分の配置と比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定するステップと、
ずれおよび相違が前記許容範囲外であると判定された場合に、前記文字列データの前記文字描画位置情報および文字サイズ情報を変更するステップとを実行させる、プログラム。
【請求項２１】
前記画像処理装置は、文字を収納する仮想枠に対して字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部を含み、
前記候補文字列中の候補文字が前記特徴量記憶部に記憶されている場合に、前記配置を比較して判定するステップにおいて、１単語または１行中の各文字の前記枠における幅方向の文字中心を特定し、各文字中心の間隔を計算し、前記間隔が均等間隔である場合には文字ピッチを前記間隔に適合させ、均等間隔でない場合には、文字種、文字サイズに応じて予め設定されるプロポーショナルフォントを用いて前記１単語または１行の文字列全体の幅を算出し、前記文書画像中の前記文字列の幅との相違する割合である差分量を算出し、前記変更するステップで、前記前記差分量に応じて前記文字描画位置情報の文字間隔および前記文字サイズ情報を変更する、請求項２０に記載のプログラム。
【請求項２２】
前記候補文字列は、文字列が折り返されて少なくとも２行からなるブロック単位で処理される候補文字列であり、前記均等間隔である場合には、前記変更するステップにおいて、折り返し位置がずれないように、文字間隔または文字ピッチを変更し、文字間隔が均等でない場合には、前記配置を比較して判定するステップにおいて、１行単位に分割し、１行ごとに前記プロポーショナルフォントを用いて前記差分量を算出し、前記変更するステップで、前記差分量に応じて前記文字間隔または文字ピッチおよび前記文字サイズ情報を変更する、請求項２１に記載のプログラム。
【請求項２３】
文書画像内の文字または文字列を抽出し、抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を画像処理装置に実行させるための該画像処理装置により可読なプログラムであって、
複数の前記候補文字が特定された場合において、文字描画位置情報および文字サイズ情報を含む複数の前記文字データを用いて、仮想描画空間に複数の前記候補文字を描画するステップと、
前記仮想描画空間に描画された複数の前記候補文字と、前記文書画像中の前記文字を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲にあるか否かをそれぞれ判定し、ずれおよび相違が前記許容範囲内であると判定した場合に、各前記候補文字と前記文字との相違する割合を差分値として算出するステップと、
前記差分値が最も小さい文字データを処理結果として判定するステップとを実行させる、プログラム。
【請求項２４】
前記複数の候補文字が、同じ文字の全角文字と半角文字とである場合、前記算出するステップでは、前記全角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記半角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記判定するステップでは、２つの前記差分値のうち小さいほうを処理結果として判定する、請求項２３に記載のプログラム。
【請求項２５】
前記差分値が閾値を超える場合、文字の切り出し位置を変更することにより、前記文字列の分割、若しくは前記文字の統合、または前記文字列の統合を行い、分割された文字列、若しくは統合された文字、または統合された文字列を抽出するステップと、
抽出した前記文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力するステップとを前記画像処理装置に実行させ、
前記差分値が最も小さくなる前記切り出し位置を、文字の切り出し処理に適用する、請求項２３または２４に記載のプログラム。
【請求項２６】
前記複数の候補文字が、異なる種類のフォントからなる文字である場合、前記算出するステップでは、前記複数の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値をそれぞれ算出し、前記判定するステップでは、前記差分値のうち小さいものを処理結果として判定する、請求項２３〜２５のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナ装置や撮像装置などの画像入力装置で読み取った、あるいは撮像した文書画像をＯＣＲ（Optical Character Reader）処理した結果と元画像であるその文書画像中の文字とのずれを低減させる画像処理装置およびプログラムに関する。
【背景技術】
【０００２】
近年、文書や画像をＯＣＲ処理した結果を利用して、Ｗｏｒｄ（登録商標）、Ｅｘｃｅｌ（登録商標）、Ｐｏｗｅｒｐｏｉｎｔ（登録商標）等のアプリケーションファイルに変換することにより、原稿を再利用（一部を修正して利用）するという用途が増えてきている。ＯＣＲ処理とは、手書き文字や印字された文字を光学的に読み取り、前もって記憶されたパターンとの照合により文字を特定し、文字データを入力する処理や、スキャナで読み取った画像から文字を認識して文書に変換する処理である。
【０００３】
アプリケーションファイル以外のＰＤＦ文書を作成する場合にも、画像上に透明のＴｅｘｔ（ＯＣＲ処理した結果）を貼り付けることにより、文字列による文書検索を可能にしたり、図１に示すように、検索ヒットしたＴｅｘｔ部分をハイライト表示させることにより、検索結果を見やすくしている。
【０００４】
また、ＯＣＲ処理の結果を確認したり、編集したりする場合に、元の画像上にＯＣＲ処理した結果の文字を目立つ色で表示させることにより、ＯＣＲ認識結果の確認や誤認識部分の判別を行い易くしている。
【０００５】
このようなＯＣＲ認識結果の確認や誤認識部分の判別を行いやすくするということへの活用を図るためには、ＯＣＲ文字認識精度だけではなく、認識結果の文字を元の画像上に正しくレイアウトする必要がある。しかしながら、従来においては、正しくレイアウトする上で以下のような阻害要因があった。
【０００６】
１つは、フォントの種類、文字の種類の判別である。例えば、全角文字と半角文字の判別、ＣｅｎｔｕｒｙフォントとＭＳゴシックフォントの判別などである。これらが正しく判別できなければ、ＯＣＲ文字認識が正しくても、画像上に重ね合わせ表示した場合に、図２（ａ）に示すように、ずれを生じて違和感が生じる。しかしながら、現在の技術では、これらを正しく判別することは困難である。これは、英字などとは異なり、日本語や中国語では出現文字数が多いからである。
【０００７】
２つ目は、フォントサイズ、文字展開位置の判別である。例えば、文字を収納する仮想枠２００に対する文字位置がずれる大文字と小文字の判別、片方に偏った字面の文字と偏りのない文字の判別である。フォントサイズを誤って判断すると、画像上に精度良く重ねることが困難になる。また、フォントサイズとともに文字の描画開始位置を誤ると、図２（ｂ）に示すように、異様にずれた結果となる。これらの誤判断を招く要因としては、以下のものがある。
【０００８】
図３を参照して説明する。和文フォントの場合、１つには、図３（ａ）に示すように、字体によって、文字を収納する仮想枠で囲まれた領域である仮想ボディ３００と、仮想ボディ３００内に実際にデザインされている文字の大きさである字面３０１に差があることである。仮想ボディ３００および字面３０１は、略正方形で表される領域で示すことができるため、図３（ａ）の符号ａ、ｂで表される一辺の比として、その差を算出することができる。２つ目には、大きな字面の文字である「あ」に対して「ぁ」などの小さな字面の文字が存在することである。３つ目には、「。」といった片方に偏った字面の文字が存在することである。欧文フォントの場合には、図３（ｂ）に示すように、ミーンライン（小文字の上端から下端までの高さを示すエックスハイトの上部に引いた線）を超える文字（大文字など）とミーンラインを超えない文字（小文字など）が存在し、また、アゼンダ（大文字の最上部に引いた線であるキャップラインを超える文字）が存在し、ディゼンダ（大文字の最下部に引いた線であるベースラインより下にはみ出す文字）が存在し、さらには、「W」や「1」などセット（字幅）に違いがあることである。
【０００９】
従来のＯＣＲ処理するための画像認識装置は、文字画像から、フォントサイズ、フォントの種類、スタイル等の文字属性を認識し、これらの文字属性を含めて文字コードデータを出力することにより、原稿レイアウトの維持を図っている。
【００１０】
しかしながら、従来の画像認識装置では、文字画像から認識することができるフォントの種類は限定されており、すべてのフォントを識別することは現実的ではない。また、フォントの種類によって文字幅や文字高さが異なっており、原稿を読み取ることによって入力された画像データ中の文字画像から文字コードを認識して得られた文字コードデータを特定の出力フォントで出力した場合、原稿における文字の配置と同じ配置で文字コードデータを出力することができない場合が多い。これでは、印刷された用紙上で文字と写真が重なったり、文字同士が重なったり、１頁の原稿を読み取ったにもかかわらず、２頁の用紙に印刷されてしまうという問題が生じる。
【００１１】
そこで、入力された画像データ中の文字画像から文字コードを認識して得られた文字コードデータをある特定のフォントで配置した場合でも、元のレイアウトを適切に維持しつつ、しかも、文字コードデータを他の文字コードデータや図形画像と重なることなく同一頁内に配置することができる画像認識装置が提案されている（特許文献１参照）。この装置では、文字画像、図形画像のいずれをも含まない所定量の未使用部分が存在するとき、文字領域変更部によって、文字コードデータが配置される文字領域をその未使用部分を含めた領域まで拡大させる。これにより、文字コードデータを他の文字コードデータや図形画像と重なることなく同一頁内に配置することができる。
【００１２】
他の阻害要因としては、文字展開・描画の単位の問題がある。この単位には、変換先文書フォーマットの仕様や特定、変換後の利用目的に伴い、次のような展開・描画の単位がある。１つには、文字領域単位で描画するというブロック単位がある。上記のＷｏｒｄ（登録商標）やＥｘｃｅｌ（登録商標）などの文書フォーマットは基本的にこの方式を採用している。このブロック単位は、文字サイズや行間・文字間などの設定が適切でないと行の折り返し部分が元の原稿と一致しなくなるケースが生じるという問題がある。
【００１３】
１行単位で描画するという行単位がある。行の折り返しは、元の画像と一致する。英文などを検索利用する場合には、スペースなどで単語が区切られていたり、その反対に、単語中に誤ってスペースなどの区切りが入らないようにこの方式を採用すると好ましい。しかしながら、１行中に異なるサイズの文字が含まれる場合には対応できないという問題がある。
【００１４】
他には、１単語単位で描画するという単語単位がある。英単語などは文字間にスペースなどが入ると検索ヒットしなくなる場合があるので、日本語文中の英単語などはこの単語単位で描画すると好ましい場合がある。
【００１５】
さらに他には、１文字ずつ描画するという１文字単位がある。例えば、ＰＤＦフォーマットなどがこの方式を採用している。レイアウト再現性の観点からは、この１文字単位が最も好ましい。しかしながら、検索などその後の利用方法や文書フォーマットの制限から単語単位や行単位にせざるを得ない状況が生じるという問題がある。
【００１６】
ＯＣＲ処理では、読み取った画像データに基づいて原稿に記載された文字を認識する処理を実行するが、この処理を実行する際、読み取った原稿画像データから文字単位のデータを取り出す「文字切り出し」を正確に行うことが、高い認識精度を得るために不可欠とされている。
【００１７】
文字切り出し処理では、切り出した部分に対する確からしさを、図形情報を用いて一般化した基準により評価し、高い順に決定される切り出し候補を対象にして文字認識を行い、認識結果によって再切り出しが必要な部分を指示するフィードバックを行っている。
【００１８】
この処理では、一般化した標準基準により決定した候補への処理を繰り返すこととなり、処理回数が増加するという問題がある。このため、高精度な文字切り出しを可能にする装置および方法が提案されている（特許文献２参照）。この装置および方法では、処理対象として入力された文字配列を有する文書画像から文字単位を含むと見なせる文字候補領域を切り出し、その切り出された文字を辞書に格納した文字画像特徴と照合し、照合結果にもとづき文字認識を行っている。また、認識された文字配列を対象にして文字の外接矩形における隣接矩形距離と隣接矩形の矩形中心線距離をそれぞれ算出し、その算出した文字ピッチから文字配列における文字の配置の特徴を判定し、平均値から大きく相違する不規則な文字配置ピッチが生じた箇所を文字切り出し誤りとして検出し、この誤り箇所に再切り出し、再認識処理を実行し、元の認識結果を合わせて最尤解を求めるようにしている。
【特許文献１】特開２００１−３１９２４０号公報
【特許文献２】特開２００４−４６７２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
従来のＯＣＲ技術では、ブロック単位、行単位、単語単位、１文字単位といった文字展開・描画の単位に関係なく、フォントの種類、文字の種別、フォントサイズ、文字の展開位置を正確に判別することはできなかった。このため、画像上に正確に重ね合わせることは困難で、文字のずれを生じさせていた。
【００２０】
そこで、このような文字のずれを極力少なくすることができる画像処理装置の提供、および文字のずれを低減させる処理を実行させるプログラムの提供が望まれている。
【課題を解決するための手段】
【００２１】
本発明は、これまでのＯＣＲエンジンの開発者から見るとナンセンスな、ＯＣＲ認識した文字と、元の画像を重ね合わせるとぴったり重なるはずいう発想に基づきなされたものである。その１つは、フォント情報を利用して、実際に文字を展開した結果、または文字の展開結果を予想して位置ずれ量を算出し、補正する機能を備えることである。もう１つは、フォント情報を使用しなくても、文字の高さおよび幅から、フォントサイズ、高さ方向位置、幅方向位置を算出し、それを基に位置ずれ量を算出し、補正する機能を備えることである。
【００２２】
すなわち、本発明によれば、文書画像内の文字または文字列中の文字を抽出し、抽出した前記文字または文字列を予め記憶された文字パターンと照合することにより候補文字として特定し、前記候補文字の文字データまたは文字列データを出力する処理を実行する画像処理装置であって、
文字描画位置情報および文字サイズ情報を含む前記文字データまたは文字列データを用いて、仮想描画空間に前記候補文字または候補文字列を描画する仮想描画処理部と、
前記仮想描画空間に描画された前記候補文字または候補文字列と、前記文書画像中の前記文字または文字列を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、ずれおよび相違が前記許容範囲外であると判定した場合に、前記文字データまたは文字列データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置が提供される。
【００２３】
前記仮想描画処理部は、単語単位または行単位で前記候補文字列を描画し、前記比較処理部は、描画された前記候補文字列全体の幅および高さを算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否かを判定し、前記比較処理部が、前記高さの相違が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字サイズ情報を変更し、前記仮想描画処理部に、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅の相違が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字描画位置情報に含まれる前記候補文字列の文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報に基づき描画処理を実行させる。
【００２４】
前記仮想描画処理部は、文字列が折り返されて少なくとも２行からなるブロック単位で前記候補文字列を描画し、前記比較処理部は、描画された前記候補文字列全体の幅、高さおよび折り返し位置を算出し、前記文書画像内の前記文字列の幅および高さとの相違が前記許容範囲内であるか否か、および折り返し位置が相違するか否かを判定し、前記比較処理部が、前記高さの相違が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字サイズ情報を変更し、前記仮想描画処理部に、変更した前記文字サイズ情報に基づき描画処理を実行させ、前記幅の相違が前記許容範囲外であると判定した場合には、前記描画情報補正部が、前記文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報に基づき描画処理を実行させ、前記折り返し位置が相違すると判定した場合には、前記描画情報補正部が、前記文字サイズ情報および前記文字間隔を変更し、前記仮想描画処理部に、変更した前記文字描画位置情報および前記文字サイズ情報に基づき描画処理を実行させる。
【００２５】
前記仮想描画処理部は、行単位またはブロック単位で前記候補文字列を描画し、前記比較処理部は、前記候補文字列中の文字または単語の先頭文字に位置ずれが生じているか否かを判定し、前記比較処理部が、位置ずれを生じていると判定した場合、前記描画情報補正部が、単語間のスペース数またはスペースの全角／半角を変更する。
【００２６】
前記文字描画位置情報および前記文字サイズ情報を記憶する情報記憶部をさらに含み、前記比較処理部が、前記情報記憶部から前記文字描画位置情報および前記文字サイズ情報を読み出し、前記文書画像中の前記文字または文字列とのずれおよび文字サイズの相違が前記許容範囲内であるか否かを判定する。
【００２７】
本発明によれば、文字を収納する仮想枠に対して字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部と、
前記候補文字が前記特徴量記憶部に記憶されている場合に、前記文書画像中の前記文字の文字描画位置情報および文字サイズ情報と、前記特徴量とを比較し、ずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、ずれおよび相違が前記許容範囲外であると判定した場合に、前記文字データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置を提供することもできる。
【００２８】
また、本発明によれば、前記文字列データの候補文字列中に、予め設定される標準値より小さい文字が含まれるか否かを判定する文字判定部と、
前記文字判定部が、前記候補文字列中に前記標準値より小さい文字が含まれないと判定した場合に、前記候補文字列中のすべての文字の高さの平均値（Ｈ１）と、すべての文字の上端位置の平均値（Ｔ１）とを算出し、前記標準値より小さい文字が含まれると判定した場合に、前記候補文字列中のすべての文字の高さの平均値を算出し、その算出した平均値より小さい高さを有する文字を除いた平均値（Ｈ２）と上端位置の平均値（Ｔ２）とを算出して、Ｈ１またはＨ２から文字サイズ、Ｔ１またはＴ２から高さ方向の描画位置を特定し、前記候補文字列中の文字幅の平均値（Ｗ１）を算出し、Ｗ１より幅が広い文字については左端を幅方向の描画開始位置として特定し、Ｗ１より幅が狭い文字については前記候補文字列中のすべての文字の文字幅の平均値（Ｗ２）を計算し、前記左端からＷ２／２のオフセットをとった位置を幅方向の描画開始位置として特定し、特定された前記文字サイズ、前記高さ方向の描画位置、および前記幅方向の描画開始位置を基に、前記文書画像中の前記文字列を構成する画素成分の配置と比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する比較処理部と、
前記比較処理部が、ずれおよび相違が前記許容範囲外であると判定した場合に、前記文字列データの前記文字描画位置情報および文字サイズ情報を変更する描画情報補正部とを含む、画像処理装置を提供することもできる。
【００２９】
さらに、文字を収納する仮想枠に対して字面に偏りがある文字の、偏り率、若しくは前記仮想枠における上下左右空間量、またはその両方を含む特徴量を、該文字とともに記憶する特徴量記憶部を含み、
前記候補文字列中の候補文字が前記特徴量記憶部に記憶されている場合に、前記比較処理部が、１単語または１行中の各文字の前記仮想枠における幅方向の文字中心を特定し、各文字中心の間隔を計算し、前記間隔が均等間隔である場合には文字ピッチを前記間隔に適合させ、均等間隔でない場合には、文字種、文字サイズに応じて予め設定されるプロポーショナルフォントを用いて前記１単語または１行の文字列全体の幅を算出し、前記文書画像中の前記文字列の幅との相違する割合である差分量を算出し、前記描画情報補正部が、前記差分量に応じて前記文字描画位置情報の文字間隔および前記文字サイズ情報を変更することができる。
【００３０】
前記候補文字列は、文字列が折り返されて少なくとも２行からなるブロック単位で処理される候補文字列であり、前記均等間隔である場合には、前記描画情報補正部が、折り返し位置がずれないように、文字間隔または文字ピッチを変更し、文字間隔が均等でない場合には、前記比較処理部が、１行単位に分割し、１行ごとに前記プロポーショナルフォントを用いて前記差分量を算出し、前記描画情報補正部が、前記差分量に応じて前記文字間隔または文字ピッチおよび前記文字サイズ情報を変更する。
【００３１】
また、本発明によれば、複数の前記候補文字が特定された場合、文字描画位置情報および文字サイズ情報を含む複数の前記文字データを用いて、仮想描画空間に複数の前記候補文字を描画する仮想描画処理部と、
前記仮想描画空間に描画された複数の前記候補文字と、前記文書画像中の前記文字を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かをそれぞれ判定し、ずれおよび相違が前記許容範囲内であると判定した場合に、各前記候補文字と前記文字の相違する割合を差分値として算出する比較処理部と、
前記差分値が最も小さい文字データを処理結果として出力する出力処理部とを含む、画像処理装置を提供することもできる。
【００３２】
前記複数の候補文字が、同じ文字の全角文字と半角文字とである場合、前記比較処理部が、前記全角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記半角文字の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値を算出し、前記候補文字判定部が、２つの前記差分値のうち小さいほうを処理結果として判定する。
【００３３】
前記画像処理装置は、前記差分値が閾値を超える場合、文字の切り出し位置を変更することにより、前記文字列の分割、若しくは前記文字の統合、または前記文字列の統合を行い、分割された文字列、若しくは統合された文字、または統合された文字列を抽出し、抽出した前記文字または文字列を予め記憶された文字パターンと照合することにより候補文字または候補文字列として特定し、前記候補文字の文字データまたは前記候補文字列の文字列データを出力し、前記差分値が最も小さくなる前記切り出し位置を、文字の切り出し処理に適用することができる。
【００３４】
前記複数の候補文字が、異なる種類のフォントからなる文字である場合、前記比較処理部が、前記複数の候補文字と前記文書画像中の前記文字を構成する画素成分の配置を比較して前記差分値をそれぞれ算出し、前記候補文字判定部が、前記差分値のうち小さいものを処理結果として判定することができる。
【００３５】
本発明によれば、上記各部における処理を画像処理装置に実行させるための該画像処理装置により可読なプログラムを提供することもできる。
【発明の効果】
【００３６】
本発明によれば、実際に文字を展開した結果、または文字展開結果を想定してずれ量を補正し、文字サイズ、レイアウトの精度を向上させることができる。
【００３７】
また、本発明によれば、画像の画像成分とＯＣＲ結果文字を重ねて展開した結果の画素を比較して差分値を算出することで、この差分値によりＯＣＲ結果の精度を向上させることができる。
【発明を実施するための最良の形態】
【００３８】
本発明を、図面を参照して詳細に説明するが、本発明は図面に示される実施形態に限定されるものではない。図４は、画像処理装置の第１実施形態を示したブロック図である。図４に示す画像処理装置は、領域識別処理部４００と、行切り出し処理部４０１と、文字切り出し処理部４０２と、ＯＣＲ処理部４０３と、仮想描画処理部４０４と、比較処理部４０５と、描画情報補正部４０６と、出力処理部４０７とを含んで構成されている。
【００３９】
画像処理装置としては、文書画像内の文字または文字列を抽出し、抽出した文字または文字列中の文字を予め記憶された文字パターンと照合することにより候補文字として特定し、候補文字の文字データまたは文字列データを出力する処理を実行することができる装置であれば、パーソナルコンピュータや、スキャナ機能や印刷機能などを有する複合機などを用いることができる。例えば、オペレーティングシステム（ＯＳ）としてｗｉｎｄｏｗｓ（登録商標）を備えるパーソナルコンピュータとすることができる。なお、これらの装置には、プロセッサと、上記処理をプロセッサに実行させるためのプログラムを記憶するメモリとが含まれる。
【００４０】
文字を含む文書画像は、スキャナ装置や撮像装置によって読み取られ、画像処理装置に入力または記憶される。領域識別処理部４００は、これらスキャナ装置や撮像装置によって読み取られ、あるいは撮像された文書画像の各領域を識別することにより、文字領域（文字ブロック）の位置を抽出する。文字領域の位置は、例えば、文書画像のサイズおよび予め設定される基準点からの座標位置等により決定することができる。領域識別処理部４００は、文字領域に含まれる文字と、その文字領域の位置とを対応させて保持することができる。
【００４１】
行切り出し処理部４０１は、文字領域の行方向を判別し、行単位に文字を切り出す処理を実行する。ここで、文字を切り出すとは、読み取った文書画像データから文字単位のデータを取り出すことをいい、高い認識精度を得るためには不可欠な処理である。文字切り出し処理部４０２は、１行中の１文字を切り出す処理を実行する。これら切り出す処理は、これまで知られたいかなる方法を用いて実行することができる。例えば、複数の文字ピッチを仮定し、その中から最も妥当性の高いものを文字ピッチとして採用し、文字切り出しに使用する方法とすることができる。
【００４２】
ＯＣＲ処理部４０３は、切り出された文字を、予め記憶された文字パターンと照合することにより候補文字として特定し、候補文字の文字データを出力する処理を実行する。候補文字に限らず、候補文字を１つずつ特定して、候補文字列の文字列データを出力することもできる。文字の照合には、単語辞書や住所辞書などの辞書データベースを用いることができる。ＯＣＲ処理の詳細については、ここでは省略する。
【００４３】
ＯＣＲ処理された文字データまたは文字列データは、文字描画位置情報および文字サイズ情報を含む。文字描画位置情報は、その文字を描画する際の、高さ方向の描画位置や幅方向の描画位置に関する情報を含む。例えば、仮想枠における高さ方向および幅方向の描画位置である。文字列の場合には、文字間隔や行間隔などの情報を含むことができる。文字サイズ情報は、フォントサイズに関する情報を含む。この文字サイズ情報には、仮想ボディ、字面に関する情報を含むことができる。仮想描画処理部４０４は、ＯＣＲ処理部４０３から得られる文字データまたは文字列データを用いて、文字を仮に描画するための仮想描画空間に、候補文字または候補文字列を仮想描画する。仮想描画空間または領域としては、具体的には、ｗｉｎｄｏｗｓ（登録商標）におけるデバイスコンテキストとすることができる。このデバイスコンテキストは、ディスプレイデバイスやプリンタデバイス等の表示デバイスを仮想化するために導入されたもので、ｗｉｎｄｏｗｓ（登録商標）アプリケーションは、特定のデバイスを意識することなく、このデバイスコンテキストに対して描画を行うことができる。
【００４４】
仮想描画処理部４０４は、１文字単位のほか、単語単位、行単位、ブロック単位で文字列を描画することができる。
【００４５】
比較処理部４０５は、仮想描画空間に描画された候補文字または候補文字列と、文書画像中の文字または文字列を構成する画素成分の配置を比較し、描画位置のずれおよび文字サイズの相違が予め設定される許容範囲内であるか否かを判定する。例えば、それぞれを重ね合わせて描画することで、そのずれや文字サイズの相違を判定することができる。
【００４６】
描画情報補正部４０６は、比較処理部４０５が、ずれおよび相違が許容範囲外であると判定した場合に、文字データまたは文字列データの文字描画位置情報および文字サイズ情報を変更する。具体的には、文書画像中の文字または文字列に許容範囲内に収まるように、文字描画位置の高さ方向あるいは幅方向の設定値、文字間隔の設定値、文字サイズの設定値などを変更する。
【００４７】
単語単位または行単位で処理する場合には、比較処理部４０５は、描画された候補文字列全体の幅および高さを算出し、文書画像中の文字列の幅および高さの相違が許容範囲内であるか否かを判定することができる。また、ブロック単位で処理する場合には、描画された候補文字列全体の幅、高さおよび折り返し位置を算出し、文書画像中の文字列の幅および高さとの相違が許容範囲内であるか否か、および折り返し位置と相違するか否かを判定することができる。本願において、幅とは、行方向への長さであり、高さとは、行方向に対し垂直な、列方向への長さである。紙面上の文字を見て、行方向の左側の端部が左端、右側の端部が右端、その左端から右端までの長さが文字の幅である。紙面上の文字を見て、列方向の上側の端部が上端、下側の端部が下端、その上端から下端までの長さが文字の高さである。文字列の幅は、その文字列の最も左側にある文字の左端から、最も右側にある文字の右端までの長さであり、高さは、最も上側に延びている文字の上端から、最も下側に延びている文字の下端までの長さである。
【００４８】
描画情報補正部４０６は、比較処理部４０５が、高さの相違が許容範囲外であると判定した場合、描画情報補正部４０６は、文字サイズ情報を変更し、仮想描画処理部４０４に、変更した文字サイズ情報に基づき描画処理を実行させる。また、幅の相違が許容範囲外であると判定した場合には、文字描画位置情報に含まれる候補文字列の文字間隔を変更し、仮想描画処理部４０４に、変更した文字描画位置情報に基づき描画処理を実行させる。具体的には、高さが低い場合には、フォントサイズを、例えば９ポイントから１０ポイントに大きくするように、文字サイズ情報を変更する。ブロック単位で処理する場合に、折り返し位置が相違すると判定されたとき、描画情報補正部４０６は、文字サイズ情報および文字間隔を、元画像である文書画像中の文字または文字列を構成する画素成分の配置と許容範囲内に収まるように変更する。例えば、以下で詳細に説明する差分値に対し、設定値を設け、その差分値がその設定値以下か以上かを判定することにより、許容範囲内か否かを判定することができる。ちなみに、差分値が設定値以下であれば、許容範囲内である。
【００４９】
比較処理部４０５は、候補文字列中の文字または単語の先頭文字に位置ずれが生じているか否かを判定することができる。比較処理部４０５が位置ずれを生じていると判定した場合、描画情報補正部４０６は、単語間のスペース数、スペースの全角を半角に、またはスペースの半角を全角に変更し補正することができる。
【００５０】
出力処理部４０７は、仮想描画処理部４０４で仮想描画し、比較処理部４０５で、ＯＣＲ処理した結果と、元画像とを比較し、比較結果が許容範囲外である場合に、描画情報補正部４０６で補正し、再度、仮想描画処理部４０４でその補正された情報を用いて仮想描画し、比較処理部４０５で比較し、許容範囲内であることを確認した後、その補正された後の文字データまたは文字列データを処理結果として出力する。したがって、許容範囲外であれば、描画情報補正部４０６により補正された後、再度、仮想描画処理部４０４および比較処理部４０５で仮想描画および比較が行われ、許容範囲内となるまで繰り返される。
【００５１】
図示しないが、第２実施形態では、上記文字描画位置情報および文字サイズ情報を記憶する情報記憶部を含む構成を採用することができる。この場合、比較処理部４０５が、情報記憶部から文字描画位置情報および文字サイズ情報を読み出し、文書画像中の文字または文字列とのずれおよび文字サイズの相違が許容範囲内であるか否かを判定する。この第２実施形態では、文字の描画結果を、仮想描画処理部４０４による仮想描画によって求めるのではなく、情報記憶部から直接、アセンダ、ディセンダ、ベースラインといった情報を取得することができ、この情報を基に、文字の描画位置および文字サイズを補正することができる。
【００５２】
文字描画位置情報および文字サイズ情報は、例えば、実際に使用するフォントファイルから取得することができ、ＯＳのＡＰＩ機能を利用してフォント展開結果を取得することもできる。これらの情報は、単語辞書や住所辞書などの辞書データベースを用いて取得することができる。
【００５３】
図５に示す第３実施形態では、図４に示す仮想描画処理部４０４に代えて、図３に示す文字を収納する仮想枠に対して、図２に示すような字面に偏りがある文字の、偏り率、若しくは仮想枠における上下左右空間量、またはその両方を含む特徴量をその文字とともに記憶する特徴量記憶部５００と、特徴量記憶部５００とＯＣＲ処理部４０３とから各情報を取得する情報取得部５０１とを含んで構成することができる。
【００５４】
特徴量記憶部５００は、仮想的なフォント情報を保持するもので、小文字の「ｌ」のように左右に空きがあるものや、「ッ」のように下側に偏っているものや、「、」や「。」のように左側に偏っているものを、実際の展開時にずれを生じやすい文字としてその情報を記憶している。特徴量記憶部５００は、例えば、文字とその情報とを関連付けてテーブルとして記憶することができる。
【００５５】
情報取得部５０１は、ＯＣＲ処理部４０３から取得した候補文字の文字データまたは候補文字列の文字列データを基に、特徴量記憶部５００にその候補文字が記憶されているかどうかを確認し、記憶されている場合には読み出し、取得する。比較処理部４０５は、情報取得部５０１が取得した情報を基に、文書画像中の文字の文字描画位置情報および文字サイズ情報と、取得した特徴量とを比較し、ずれおよび文字サイズの相違が許容範囲内であるか否かを判定する。
【００５６】
例えば、一般的に小文字は大文字の半分の大きさしかないので、ＯＣＲ処理部４０３で得られた文字サイズ情報の約２倍の大きさのフォントサイズにしなければならない。小文字の「ｃ」は、大文字の「Ｃ」と同じフォントサイズであるが、画素サイズから文字サイズを割り出すと、小文字の「ｃ」は半分のサイズと認識されてしまう。したがって、描画情報補正部４０６は、文字サイズ情報を２倍に変更し、補正する。また、一般的に小文字は、上側に空白が存在するので、展開位置、すなわち文字描画位置情報も下側にずれないように補正する。同様に、左右のどちらかに偏りまたは空白がある文字の場合、それを考慮して、展開位置を補正する。
【００５７】
第４実施形態の画像処理装置は、情報記憶部からの情報を取得することなく、また、仮想描画することなく、ずれおよび文字サイズの相違が許容範囲内であるか否かを判定し、許容範囲外である場合に補正することができる。この場合の構成では、文字列データの候補文字列中に、予め設定される標準値より小さい文字が含まれるか否かを判定する文字判定部を含む。すなわち、図４に示す構成で、仮想描画処理部４０４に代えて、文字判定部を備えるものとされる。
【００５８】
標準値は、文字の種別によって変えることができ、標準値の文字としては、かな文字であれば、大かなである「あ」、「い」、「う」、「え」、「お」、…が挙げられる。カナ文字であれば、大カナである「ア」、「イ」、「ウ」、「エ」、「オ」、…が挙げられる。また、英字であれば、大文字の「Ａ」、「Ｂ」、「Ｃ」、…が挙げられる。漢字については、大部分の漢字とされる。
【００５９】
これに対し、標準値を超えない、すなわち標準値より小さい文字としては、かな文字であれば、小かなである「ぁ」、「ぃ」、「ぅ」、「ぇ」、「ぉ」、…が挙げられる。カナ文字であれば、小カナである「ァ」、「ィ」、「ゥ」、「ェ」、「ォ」、…が挙げられる。また、英字では、小文字の「ａ」、「ｂ」、「ｃ」、…が挙げられ、その他、漢字の一部の「一」、「宀」、…や、記号「！」、「“」、「＃」、…などが挙げられる。
【００６０】
文字判定部は、候補文字列中に、上記の標準値より小さい文字が含まれるか否かを判定する。含まれない場合、上記の標準値の文字のみから構成されており、比較処理部４０５は、候補文字列中のすべての文字の高さの平均値（Ｈ１）と、すべての文字の上端位置の平均値（Ｔ１）とを算出する。また、標準値より小さい文字が含まれる場合、候補文字列中のすべての文字の高さの平均値を算出し、その算出した平均値より小さい高さを有する文字を除いた平均値（Ｈ２）と上端位置の平均値（Ｔ２）とを算出する。このようにして得られたＨ１またはＨ２から文字サイズを特定し、Ｔ１またはＴ２から高さ方向の描画位置を特定する。標準値の文字のみから構成されていれば、候補文字列のすべての文字のフォントサイズおよび高さ方向の描画位置は同じであることから、平均値を用いることで、フォントサイズおよび高さ方向の描画位置を算出することができる。また、標準値より小さい文字を含む場合には、すべての文字の高さの平均値を算出し、その算出した平均値より小さい高さを有する文字を除き、文字ごとのサイズのばらつきを小さくした上で、フォントサイズおよび高さ方向の描画位置を算出する。これらは、１行中の文字の最大高さ、または左右の文字の高さからフォントサイズおよび高さ方向の描画位置を算出するものである。
【００６１】
幅方向の描画位置は、候補文字列中の文字幅の平均値（Ｗ１）を算出し、Ｗ１より幅が広い文字については左端を幅方向の描画開始位置として特定する。これに対し、Ｗ１より幅が狭い文字については、候補文字列中のすべての文字の文字幅の平均値（Ｗ２）を計算し、左端からＷ２／２のオフセットをとった位置（左端からＷ２の半分の長さほど右方向に移動した位置）を幅方向の描画開始位置として特定する。
【００６２】
比較処理部４０５は、特定した文字サイズ、高さ方向の描画位置、および幅方向の描画開始位置から得られる候補文字列と、文書画像中の文字列を構成する画素成分の配置とを比較し、描画位置のずれおよび文字サイズの相違が許容範囲内であるか否かを判定する。比較処理部４０５が、ずれおよび相違が許容範囲外であると判定した場合に、描画情報補正部４０６が、文字列データの文字描画位置情報および文字サイズ情報を変更し、補正を行う。なお、情報記憶部からの情報を取得することなく、また、仮想描画することなく、ずれおよび文字サイズの相違が許容範囲内であるか否かを判定し、補正を行う、この第４実施形態の装置では、正確な文字描画位置情報および文字サイズ情報であるフォント情報を用いないため、折り返し位置の正確な予測は不可能である。したがって、折り返しの影響がでないように、ブロック単位で処理する場合には、行単位に変更して処理する必要がある。
【００６３】
上記の特徴量記憶部を採用し、候補文字列中の候補文字が特徴量記憶部に記憶されている場合に、比較処理部４０５が、１単語または１行中の各文字の枠における幅方向の文字中心を特定し、各文字中心の間隔を計算し、その間隔が均等間隔である場合には、文字ピッチをその間隔に適合させることができる。その間隔が均等間隔でない場合には、文字種、文字サイズに応じて予め設定されるプロポーショナルフォント（文字ごとに異なった幅をもつフォント）を用いて１単語または１行の文字列全体の幅を算出し、文書画像中の文字列の幅との相違する割合である差分量（ずれ量）を算出する。この差分量の算出を受けて、描画情報補正部４０６が、差分量に応じて文字描画位置情報の文字間隔および文字サイズ情報を変更し補正する。
【００６４】
プロポーショナルフォントの文字幅の平均値は、文字の種別、文字サイズごとに予め測定しておき、プロポーショナル補正テーブルとして記憶しておくことができる。このようにすることで、この補正テーブルを用い、単語単位または行単位の文字列全体の展開幅を算出し、元画像である文書画像中の文字列の幅との差分量から文字間隔を決定し、文字間隔の設定値を変更することができる。図３に示すように、仮想ボディ３００と字面３０１との間には多少の余裕がある。例えば、文字同士がくっつくと、ボディ同士が重なり合い、文字間隔が負になる場合もありうる。しかしながら、字面が重なり完全に文字同士がくっつかなければよく、文字間隔が負になる場合には、文字サイズを小さくすることで、文字同士の重なりを抑制することができる。
【００６５】
上記候補文字列がブロック単位で処理されるものであり、上記間隔が均等間隔である場合には、描画情報補正部４０６は、折り返し位置がずれないように、文字間隔または文字ピッチを変更し、文字間隔が均等でない場合には、比較処理部４０５が、１行単位に分割し、１行ごとにプロポーショナルフォントを用いて差分量を算出し、描画情報補正部４０６が、差分量に応じて文字間隔または文字ピッチおよび文字サイズ情報を変更し補正する。
【００６６】
図６は、第５実施形態を示したブロック図である。この構成では、複数の文字データまたは文字列データが描画情報補正部４０６から出力されるが、その中で最も好適なものを判定する候補文字判定部６００を備えている。他の構成は、図４に示される構成と同様である。したがって、仮想描画処理部４０４が候補文字を仮想描画し、比較処理部４０５が、ずれおよび文字サイズの相違が許容範囲内であるか否かを判定し、候補文字と元画像の文字との相違する割合を差分値として算出する。この差分値が小さくなるように、文字描画位置情報および文字サイズ情報の各設定値を変更することにより、文字データまたは文字列データを補正する。
【００６７】
このように補正されると、元画像の文字または文字列と概ね重なるような配置・サイズになる。補正後のデータは、再び、仮想描画処理部４０４へ送られ、仮想描画される。このデータは１つに限られるものではなく、複数存在することが好ましい。したがって、複数のデータが仮想描画される。比較処理部４０５は、仮想描画されたこれら複数の候補文字と、元画像の文字を構成する画素成分の配置を比較し、字面自体の差分量を算出する。この差分量が許容範囲内であるか否かを判定する。許容範囲内にある候補文字が複数存在する場合でも、候補文字によって差分量は異なっており、最も近似するものが最も差分量が小さくなる。このため、候補文字判定部６００は、最も差分量が小さくなる文字データまたは文字列データを処理結果として判定する。この処理結果は、出力処理部４０７から出力される。
【００６８】
上記の複数の候補文字が、同じ文字の全角文字と半角文字とである場合には、比較処理部４０５が、全角文字の候補文字と元画像の文字を構成する画素成分の配置を比較して差分値を算出し、同様に、半角文字の候補文字とその画素成分の配置を比較して差分値を算出し、候補文字判定部６００が、それら２つの差分値のうち小さいほうを処理結果として判定することができる。
【００６９】
差分値に閾値を設け、差分値が閾値を超える場合、文字の切り出し位置を変更することにより、文字列の分割、文字の統合、文字列の統合を行い、分割された文字列、統合された文字、統合された文字列を抽出し、抽出した文字または文字列を予め記憶された文字パターンと照合することにより候補文字として特定し、候補文字の文字データまたは文字列データを出力することができる。このようにして、差分値が最も小さくなる切り出し位置を、文字の切り出し処理に適用することができる。差分値が閾値を超える場合には、文字切り出しに失敗したと判断することができ、文字切り出しを再処理することができる。これにより、どの切り出しが最も差分値が小さくなるか判定し、ＯＣＲ処理の精度を向上させることができる。
【００７０】
また、上記の複数の候補文字が、異なる種類のフォントからなる文字である場合には、比較処理部４０５が、複数の候補文字と元画像の文字を構成する画素成分の配置を比較して差分値をそれぞれ算出し、候補文字判定部６００が、差分値のうち小さいものを処理結果として判定する。この処理結果は、出力処理部４０７から出力される。これにより、差分値から文字の種別を特定することができる。既存のフォント識別機能がある場合には、差分値情報を識別の判断基準の１つに加えることができる。
【００７１】
次に、図７〜図９を参照して、ＯＣＲ処理して得られた結果を基に、その結果と元画像の文字のサイズ・描画位置などの差分値（ずれ量）を算出し、補正する処理について詳細に説明する。まず、仮想描画領域に描画し、差分値（ずれ量）を算出し、補正する処理を、図７を参照して説明する。
【００７２】
文字の描画・展開には４種類の方法がある。１文字単位ごとに描画する方法と、単語単位ごとに描画する方法と、行単位ごとに描画する方法と、ブロック単位ごとに描画する方法である。これらは、出力処理部４０７から出力される出力ファイルのフォーマット仕様、および利用目的や利用方法によって左右される。例えば、Ｗｏｒｄ（登録商標）やＥｘｃｅｌ（登録商標）などのアプリケーションフォーマットに出力する場合は、基本的には、文字はブロック単位で出力される。用途が再利用目的、例えば、画像をアプリケーションフォーマットに変換して文書内容を編集し新しい文書を作成する場合、そのままブロック単位で出力したほうが文章の編集が容易となる。しかしながら、レイアウト再現性・文字配置の再現性を重視する場合には、文章の折り返し位置のずれを解消するためには、あえて文字ブロックを行単位または１文字単位で出力したほうが良い場合がある。これは、アプリケーションの文字ブロック描画仕様が不明な場合や行間・文字間の調整ができないフォーマットの場合に有効な手段となる。また、ＰＤＦなどのアプリケーションフォーマットは、レイアウト再現性を重視するため、基本的に１文字単位の描画となっているフォーマットも存在する。
【００７３】
検索用途の場合には、以下のように状況が変化する。例えば、ＰＤＦに１文字単位で出力した場合には、全文検索のための全文Ｔｅｘｔデータを取り出した際に、文字の間に余計なスペースが挿入される場合がある。検索エンジンの特性が日本語ならば余計なスペースを無視して検索ヒットするが、英語の場合には、英単語としてヒットしないような場合には、英文字の場合だけ単語単位で出力すべき場合が生じる。すなわち、日本語文中に英単語が含まれる場合には、日本語は１文字ずつ貼り付け、英単語は単語単位で貼り付けるというようになる。このように、文字の描画・展開の単位は、出力フォーマット、利用目的などによって変化する。ここでは、そのときの条件や目的に応じて最適な方法が選択されるものとする。
【００７４】
Ｓ７００で処理を開始し、文字ブロック（文字領域）の位置を、領域識別によって抽出する（Ｓ７０１）。文字領域の行方向を判別し、行単位で切り出す（Ｓ７０２）。さらに、１行中を１文字単位で切り出す（Ｓ７０３）。その後、ＯＣＲ処理を実行する（Ｓ７０４）。このＯＣＲ処理の結果として、候補文字の文字描画位置情報および文字サイズ情報を取得する（Ｓ７０５）。これらの情報を基に、仮想描画空間に候補文字を描画する（Ｓ７０６）。描画結果と元画像の文字の画素成分の配置を比較する（Ｓ７０７）。ずれおよび文字サイズの相違が許容範囲内であるか否かを判定する（Ｓ７０８）。ずれおよび相違が許容範囲外である場合、補正が必要であり、ずれ量を算出し、許容範囲内に収まるように、文字描画位置および文字サイズの設定値を変更し補正する（Ｓ７０９）。
【００７５】
１文字単位の場合、例えば、Ｓ７０７で描画された文字の大きさを判定し、文字の大きさが元画像の文字の大きさよりも小さければ、Ｓ７０９で文字サイズを１ポイント大きくし、Ｓ７０６に戻り、再描画し、Ｓ７０７およびＳ７０８で比較および判定を行う。同様に、描画位置に高さ方向にずれを生じている場合は、そのずれ量分をＳ７０９において補正し、Ｓ７０６に戻り、再描画し、Ｓ７０７およびＳ７０８で比較および判定を行う。文字の大きさおよび描画位置のずれが許容範囲内に収まったところで、Ｓ７１６へ進み、文字サイズおよび描画位置を確定し、ここではメモリ等の記憶部に保存する。
【００７６】
処理が単語単位、１行単位、ブロック単位である場合、描画単位がいずれの単位であるか判定する（Ｓ７１０）。単語単位であれば、文字列の幅の差から文字間隔の設定値を変更し補正する（Ｓ７１１）。その後Ｓ７０６へ戻り、再描画が行われる。１行単位であれば、文字列の幅の差から文字間隔の設定値を変更し補正する（Ｓ７１２）。ブロック単位であれば、折り返し位置の相違から文字サイズおよび文字間隔の設定値を変更し補正して、行間およびレイアウトを調整する（Ｓ７１３）。１行単位およびブロック単位の場合、単語の先頭位置にずれがあり、スペースによる補正が必要か否か判定する（Ｓ７１４）。補正が必要ない場合、Ｓ７０６へ戻り、変更された各設定値を用いて仮想描画空間に再描画を行う。スペースによる補正が必要な場合、スペース量を調整する（Ｓ７１５）。その調整後、Ｓ７０６へ戻り、再描画を行う。Ｓ７０８で、ずれおよび相違が許容範囲内であり、補正が不要な場合、その処理結果を出力処理部４０７に送り、出力ファイルに保存し（Ｓ７１６）、処理を終了する（Ｓ７１７）。
【００７７】
この処理では、単語単位の場合、１文字単位と同様、まず、Ｓ７０８で１文字の大きさを判定し、Ｓ７０９で文字サイズを調整するとともに、Ｓ７１１で描画の先頭位置のずれを補正する。これで、基本的には、１文字目は許容範囲内に収まることになる。２文字目以降は、Ｓ７１１で文字間隔を調整することにより行う。文字間隔が調整できない場合、単語領域全体でセンタリングを行い、単語単位の大きさが近似する文字サイズを選択する。この場合、１文字単位のずれより、単語全体の配置を重視する。文字ごとにサイズのばらつきが大きい場合には、平均の文字サイズを採用するか、文字間隔のずれを重視してサイズを決定する。別の方法として、候補文字や文字の種別、文字の切り出しを見直す処理を実行する。
【００７８】
行単位の場合、単語単位と同様の処理であるが、Ｓ７１４、Ｓ７１５のスペースの調整による補正が行われる。行全体のバランスを重視して文字サイズや文字間隔を調整するが、文字ごと、または単語ごとのずれが生じる場合には、その間に新たなスペース文字を挿入する、既存のスペースを除去する、既存の全角スペースを半角スペースに変換するなどして調整する。
【００７９】
ブロック単位の場合、行単位の処理に追加して、Ｓ７１３で折り返し位置の調整および行間や行レイアウト（右詰め、左詰め、センタリングなど）の調整が行われる。特に重要なものが折り返し位置の調整である。折り返し位置が１文字異なるだけで、これまでの文字位置の重ね合わせ位置調整が無駄になるからである。これは、アプリケーションフォーマットに変換した場合に実際の描画と、仮想描画の仕様に相違がある場合にも誤差を生じることになるため、注意が必要である。実際には、充分に評価した上で仮想描画内容を調整するか、描画単位を行単位、単語単位、文字単位などに変更することで対応することができる。
【００８０】
以上のような、補正を、文字サイズ、文字位置の情報を更新しながら繰り返し実行し、ずれ量が許容範囲内になればその結果を出力する。
【００８１】
図８は、文字描画位置情報および文字サイズ情報を情報記憶部に記憶しておき、それを直接参照することで、仮想描画処理を実行することなく、差分値を算出し、補正する処理を示した図である。Ｓ８００〜Ｓ８０５は、図７に示すＳ７００〜Ｓ７０５と同様である。Ｓ８０５で取得された候補文字に基づき情報記憶部を参照する（Ｓ８０６）。候補文字が情報記憶部に記憶されているか否か判定する（Ｓ８０７）。記憶されていない場合には、補正の必要性がないため、Ｓ８０８へ進み、出力ファイルに保存し、処理を終了する（Ｓ８０９）。記憶されている場合には、補正の必要性があるため、ボディに対する字面の文字高さの比から文字サイズを変更し補正する（Ｓ８１０）。また、高さ方向の偏りから、高さ方向の描画位置を変更し補正する（Ｓ８１１）。さらに、幅方向の偏りから、幅方向の描画位置を変更し補正する（Ｓ８１２）。この処理は、仮想描画を行わない代わりに、特徴的な文字の描画位置情報および文字サイズ情報のみを予め記憶しておき、この情報を用いて簡易的な補正を行うものである。なお、偏りは、偏り率、仮想枠における上下左右空間量を含む特徴量から得ることができる。
【００８２】
図９は、図７に示す処理と同様であるが、許容範囲内の候補文字が複数ある場合に、その中から候補文字を判定する処理が追加されたフローを示した図である。したがって、Ｓ９００〜Ｓ９１５の処理は、図７に示すＳ７００〜Ｓ７１５の処理と同様である。この処理は、ＯＣＲ機能を補助またはＯＣＲ結果を検証することにより結果的にＯＣＲ精度を高めるためのものである。
【００８３】
図９に示す処理では、Ｓ９０８で、複数の候補文字が、許容範囲内であると判定され、補正の必要性がないと判定された場合に、それら複数の候補文字の中から差分値の最も小さいものを判定する（Ｓ９１６）。また、差分値から全角か半角かを判定する（Ｓ９１７）。さらに、ＣｅｎｔｕｒｙフォントやＭＳゴシックフォントといったフォントの種別を判別する（Ｓ９１８）。そしてさらに、文字切り出しを再判定する（Ｓ９１９）。文字切り出しの変更が必要な場合、切り出し位置を変更し、Ｓ９０３へ戻り、文字切り出し処理を実行する。Ｓ９１６〜Ｓ９１９の処理で最も好適な候補文字が決定されたところで、処理を終了する（Ｓ９２０）。
【００８４】
Ｓ９１６〜Ｓ９１９の処理では、複数の候補文字から、ＯＣＲ処理の確信度以外に、Ｓ９１６で、差分値情報を基にＯＣＲ処理した結果を特定する。Ｓ９１９では、差分値が閾値を超える場合に、文字切り出しに失敗したと判断し、文字切り出しの再処理を実行する。既存のフォント識別機能がある場合には、差分値情報を識別の判断基準の１つに加えることができる。特に、文字切り出しの再処理は、ＯＣＲの前段階、すなわちＳ９０３まで戻って再処理し、どの切り出しが最も差分値が小さくなるか判定することができるため、ＯＣＲ処理の精度を向上させることができる。
【００８５】
これまで本発明を図面に示した実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。図７〜図９に示す処理は、各部によって行うことができるが、プログラムとして構成し、プロセッサに実行させることにより、その処理を実行することもできる。また、このプログラムは、画像処理装置に実装されるメモリやＨＤＤに格納することもできるし、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、メモリカード等の記録媒体に格納し、記録媒体として提供することもできる。
【図面の簡単な説明】
【００８６】
【図１】文字列をハイライト表示させた画面を示した図。
【図２】文字のずれを例示した図。
【図３】フォントを例示した図。
【図４】画像処理装置の第１実施形態を例示した図。
【図５】画像処理装置の第３実施形態を例示した図。
【図６】画像処理装置の第５実施形態を例示した図。
【図７】ＯＣＲ処理して得られた結果を基に、その結果と元画像の文字のサイズ・描画位置などの差分値を算出し、補正する処理の第１実施形態を示した図。
【図８】ＯＣＲ処理して得られた結果を基に、その結果と元画像の文字のサイズ・描画位置などの差分値を算出し、補正する処理の第２実施形態を示した図。
【図９】ＯＣＲ処理して得られた結果を基に、その結果と元画像の文字のサイズ・描画位置などの差分値を算出し、補正する処理の第３実施形態を示した図。
【符号の説明】
【００８７】
２００…仮想枠、３００…仮想ボディ、３０１…字面、４００…領域識別処理部、４０１…行切り出し処理部、４０２…文字切り出し処理部、４０３…ＯＣＲ処理部、４０４…仮想描画処理部、４０５…比較処理部、４０６…描画情報補正部、４０７…出力処理部、５００…特徴量記憶部、５０１…情報取得部、６００…候補文字判定部
【図１】
2008059527.tif 000003
【図２】
2008059527.tif 000004
【図３】
2008059527.tif 000005
【図４】
2008059527.tif 000006
【図５】
2008059527.tif 000007
【図６】
2008059527.tif 000008
【図７】
2008059527.tif 000009
【図８】
2008059527.tif 000010
【図９】
2008059527.tif 000011