説明

単語間空白検出装置、単語間空白検出方法及び単語間空白検出用コンピュータプログラム

【課題】隣接する単語間に空白が含まれる言語の文字列に使用されているフォントが未知の場合でも、単語間の空白を検出できる単語間空白検出装置を提供する。
【解決手段】単語間空白検出装置1は、媒体上に表された複数の単語を含む文字列を表す画像から、文字ごとに外接する文字領域を検出する文字領域検出部21と、判別分析により、互いに隣接する文字領域間の間隔の第1の分布及び文字領域の重心間距離の第2の分布をそれぞれ二分割したときの第1及び第2の分離度を求め、第1の分離度と第2の分離度とを比較することで文字列の表記に用いられているフォントを判定するフォント判定部23と、判定されたフォントに従って単語間の空白を検出するための閾値を設定する閾値決定部24と、文字領域間の間隔または重心間の距離が閾値以上である場合、対応する二つの文字の間に単語間の空白を検出する空白検出部25とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、媒体に表された文字列を撮影した画像から、その文字列に含まれる複数の単語間の空白を検出する単語間空白検出装置、単語間空白検出方法及び単語間空白検出用コンピュータプログラムに関する。
【背景技術】
【0002】
近年、光学文字認識(Optical Character Recognition, OCR)と呼ばれる、紙などの媒体に表された文字列を撮影したり、画面に表示された文字列をキャプチャしたりして得た画像を解析することによってその文字列を認識し、電子データ化する技術が利用されている。特に、媒体上に表された文字列が、英語のように単語単位に空白で区切られている場合には、OCRを利用した装置は、読み取られた文字列を正しく表現するために、単語の区切りごとに空白を表す文字コードを挿入する。そのため、画像内の隣接する二つの文字間の空白と、隣接する二つの単語間の空白とが区別されなければならない。そこで、画像内の単語間の空白を認識し、読み取った英文中に挿入する技術が提案されている(例えば、特許文献1を参照)。特許文献1に開示された技術は、入力英文の各行について、文字間隔の分布から空白サイズ候補を取り出し、各候補についてそのサイズ以上の文字間隔を空白としたときの単語長の分布が英文について調べた単語長分布に最も近くなるような候補を空白サイズとする。
【0003】
しかし、文字列に含まれる各文字のフォントが、いわゆる等ピッチフォント(固定ピッチフォントとも呼ばれる)である場合、単語間の間隔が、特定の二つの文字間の間隔とほぼ等しいことがある。例えば、文字'l'と文字'i'とが一つの単語内で隣接している場合における、文字間の間隔は、隣接する二つの単語のうちの前の単語の最後の文字が'g'であり、後の単語の先頭の文字が'm'である場合における単語間の間隔とほぼ等しい。そのため、上記の公知技術では、単語間の空白が正確に認識されないおそれがあった。
【0004】
一方、英文書を認識する際に前後の文字の組合せによって異なる文字間スペースを補正することにより、単語間スペースを検出する技術が提案されている(例えば、特許文献2を参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平5−67237号公報
【特許文献2】特開平5−6459号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献2に開示された技術では、英文書で利用されているフォントが既知でなければ、文字間スペースを補正するための補正係数を正確に決定することができない。例えば、等ピッチフォントとプロポーショナルフォントとでは、文字のサイズが同一であったとしても、文字間の間隔が異なるためである。しかし、認識対象となる文字列に利用されているフォントは、一般に、OCRを利用してその文字列を認識する装置にとって未知である。そのため、特許文献2に開示された技術にOCRを用いた装置に適用しても、その装置は、単語間の空白を正確に検出できないおそれがあった。
【0007】
そこで、本明細書は、隣接する単語間に空白が含まれる言語の文字列に使用されているフォントが未知の場合でも、単語間の空白を検出できる単語間空白検出装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
一つの実施形態によれば、単語間空白検出装置が提供される。この単語間空白検出装置は、媒体上に表された複数の単語を含む文字列を画像として取得する画像取得部と、画像から、文字列に含まれる文字ごとに、その文字に外接する文字領域を検出する文字領域検出部と、文字列に含まれる、互いに隣接する二つの文字の組ごとに、その二つの文字についての文字領域間の間隔及びその二つの文字についての文字領域の重心間の距離をそれぞれ求めることにより、文字領域間の間隔についての第1の分布と、重心間の距離についての第2の分布とを求める間隔分布算出部と、文字領域間の間隔に基づく判別分析により第1の分布を二つのサブ分布に分割したときの第1の分離度と、重心間の距離に基づく判別分析により第2の分布を二つのサブ分布に分割したときの第2の分離度とを求め、第1の分離度が第2の分離度より大きい場合に文字列の表記に用いられているフォントをプロポーショナルフォントと判定し、一方、第1の分離度が第2の分離度以下である場合に文字列の表記に用いられているフォントを等ピッチフォントと判定するフォント判定部と、判定されたフォントに従って、単語間の空白を検出するための閾値を設定する閾値決定部と、互いに隣接する二つの文字の組のうち、文字領域間の間隔または重心間の距離が閾値以上である組に含まれる二つの文字間に単語間の空白を検出する空白検出部とを有する。
【0009】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を制限するものではないことを理解されたい。
【発明の効果】
【0010】
ここに開示される単語間空白検出装置は、隣接する単語間に空白が含まれる言語の文字列に使用されているフォントが未知の場合でも、単語間の空白を検出できる。
【図面の簡単な説明】
【0011】
【図1】一つの実施形態による単語間空白検出装置の概略構成図である。
【図2】処理部の機能を示すブロック図である。
【図3】一文字領域の一例を示す図である。
【図4】水平方向に隣接する二つの文字についての文字領域間隔と重心間隔の一例を示す図である。
【図5】(a)は、等ピッチフォントで表記された文字列の一例を表す。(b)は、(a)に示された文字列についての文字領域間隔のヒストグラムを表す。(c)は、(a)に示された文字列についての重心間隔のヒストグラムを表す。
【図6】(a)は、プロポーショナルフォントで表記された文字列の一例を表す。(b)は、(a)に示された文字列についての文字領域間隔のヒストグラムを表す。(c)は、(a)に示された文字列についての重心間隔のヒストグラムを表す。
【図7】単語間空白検出処理の動作フローチャートである。
【発明を実施するための形態】
【0012】
以下、図を参照しつつ、一つの実施形態による、単語間空白検出装置について説明する。上記のように、文字列に使用されているフォントが等ピッチフォントである場合、同一単語内の隣接する二つの文字間の間隔と、隣接する二つの単語間の空白の幅、すなわちその二つの単語のうちの前の単語の最後の文字と後の単語の最初の文字との間隔はほぼ等しいことがある。特に、文字列を撮影するカメラの解像度が低い場合には、文字間の間隔に相当する画素数と単語間の空白に相当する画素数との差が小さくなるので、文字間の間隔と単語間の空白を区別することがより困難になる。しかし、文字列が等ピッチフォントで表記されている場合、前の単語の最後の文字の外接矩形の重心と後の単語の最初の文字の外接矩形の重心との間隔は、一般に、単語内の隣接する二つの文字のそれぞれの外接矩形の重心間の間隔よりも広い。一方、文字列に使用されているフォントがプロポーショナルフォントである場合、前の単語の最後の文字の外接矩形と後の単語の最初の文字の外接矩形との間隔は、一般に、単語内の隣接する二つの文字のそれぞれの外接矩形間の間隔よりも広い。
【0013】
そこで、この単語間空白検出装置は、紙などの媒体上に表された複数の単語を含む文字列を撮影した画像、あるいは、媒体である画面に表示された文字列をキャプチャして得た画像から、その文字列に含まれる個々の文字の外接矩形である一文字領域を検出する。この単語間空白検出装置は、隣接する二つの一文字領域間の間隔(以下、文字領域間隔と呼ぶ)の分布と、隣接する二つの一文字領域の重心間の距離(以下、重心間隔と呼ぶ)の分布とを求める。そしてこの単語間空白検出装置は、文字領域間隔の分布と重心間隔の分布とに基づいて、文字列に使用されているフォントを判定し、フォントに応じて、文字領域間隔または重心間隔に対する単語間の空白の最小値に対応する空白閾値を決定する。
【0014】
なお、以下の説明では、処理対象となる文字列は、英語の文字列であるとする。しかし、処理対象となる文字列は、隣接する二つの単語が空白で区切られる言語で表された文字列であればよい。また便宜上、輝度値が大きい画素を明るい画素、輝度値が小さい画素を暗い画素と定義する。
【0015】
図1は、一つの実施形態による単語間空白検出装置の概略構成図である。単語間空白検出装置1は、画像取得部11と、出力部12と、記憶部13と、記憶媒体アクセス装置14と、処理部15とを有する。さらに単語間空白検出装置1は、複数の操作ボタンといった入力装置と、電子データ化された文字列を表示する液晶ディスプレイなどの表示装置を有してもよい。処理部15は、画像取得部11、出力部12、記憶部13及び記憶媒体アクセス装置14と、例えば、バスを介して接続される。
【0016】
画像取得部11は、例えば、媒体に表された文字列を撮影するデジタルカメラ、あるいはスキャナを有する。そして画像取得部11は、その文字列が写った画像を生成し、その画像を処理部15へ出力する。
【0017】
あるいは、画像取得部11は、単語間空白検出装置1を、デジタルカメラまたはカメラ付き携帯電話などの画像入力装置(図示せず)と接続するための通信インターフェース及びその制御回路を有してもよい。そのような通信インターフェースは、例えば、Universal Serial Bus(ユニバーサル・シリアル・バス、USB)またはSmall Computer System Interface(スカジー、SCSI)などの通信規格に従ったインターフェースとすることができる。
あるいは画像取得部11は、イーサネット(登録商標)などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有してもよい。
この場合には、画像取得部11は、画像入力装置または通信ネットワークに接続された他の機器から、文字列を撮影することにより、あるいは文字列が表された画面をキャプチャすることにより得られた画像を取得し、その画像を処理部15へ渡す。
【0018】
出力部12は、例えば、単語間空白検出装置1を他の機器と接続するための通信インターフェース及びその制御回路を有する。そのような通信インターフェースは、USBまたはSCSIなどの通信規格に従ったインターフェース、あるいはイーサネット(登録商標)などの通信規格に従った通信ネットワークに接続するためのインターフェースとすることができる。
出力部12は、画像に写った文字列を処理部15が認識することにより生成された、電子データ化された文字列を処理部15から受け取り、その電子データ化された文字列を他の機器へ出力する。
【0019】
記憶部13は、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。そして記憶部13は、処理部15上で実行されるコンピュータプログラム、及び単語間空白を検出するために用いられる各種の情報を記憶する。また記憶部13は、処理対象となる文字列が写った画像を記憶してもよい。
【0020】
記憶媒体アクセス装置14は、例えば、磁気ディスク、半導体メモリカード及び光記憶媒体といった記憶媒体16にアクセスする装置である。記憶媒体アクセス装置14は、例えば、記憶媒体16に記憶された処理部15上で実行されるコンピュータプログラムを読み込み、処理部15に渡す。また記憶媒体アクセス装置14は、処理部15により生成された、電子データ化された文字列を記憶媒体16に書き込んでもよい。
【0021】
処理部15は、1個または複数個のプロセッサ及びその周辺回路を有する。そして処理部15は、複数の単語を含む文字列が写った画像から、その文字列に含まれる各文字を認識し、各文字に対応する文字コードを文字列の先頭から順に並べることで電子データ化された文字列を生成する。さらに処理部15は、単語間の空白を検出し、電子データ化された文字列において、検出された空白を挟む二つの文字にそれぞれ対応する文字コードの間に、空白を表す文字コードを挿入する。
【0022】
図2は、処理部15の機能を示すブロック図である。処理部15は、文字領域検出部21と、ヒストグラム生成部22と、フォント判定部23と、閾値決定部24と、空白検出部25とを有する。処理部15が有するこれらの各部は、例えば、処理部15が有するプロセッサ上で実行されるコンピュータプログラムによって実装される機能モジュールである。あるいは、処理部15が有するこれらの各部は、それぞれ別個の回路により形成されてもよい。
【0023】
文字領域検出部21は、画像上に写った文字列に含まれる文字ごとに、その文字の外接矩形である一文字領域を求める。さらに文字領域検出部21は、個々の一文字領域に含まれる文字を認識する。
【0024】
一般に、紙などの媒体上では、文字の輝度値と背景の紙の輝度値では値が大きく異なる。即ち、明るい背景上に文字が暗く表現され、暗い背景上には文字が明るく表現される。そのため、画像上でも、文字が写っている画素の輝度値は、文字が写っていない画素の輝度値よりも低い、または、高い。そこで文字領域検出部21は、例えば、文字の方が背景よりも暗い場合には、画像の各画素のうち、2値化閾値未満の輝度値を持つ画素を、文字が写っている文字画素とし、2値化閾値以上の輝度値を持つ画素を文字が写っていない背景画素とする2値化画像を生成する。また、文字の方が背景よりも明るい場合には、文字領域検出部21は、画像の各画素のうち、2値化閾値以上の輝度値を持つ画素を、文字が写っている文字画素とし、2値化閾値未満の輝度値を持つ画素を文字が写っていない背景画素とする2値化画像を生成する。2値化閾値は、例えば、画像全体の平均輝度値、あるいは中央値とすることができる。あるいは、2値化閾値は、例えば、いわゆる大津の2値化方法に従って、画像全体の輝度値の分布に対して判別分析法を適用することにより、その分布を二つの分布に区分するように決定されてもよい。さらにまた、2値化閾値は、画像を、複数の領域、例えば、縦4×横4個の領域に分割し、各領域について設定されてもよい。この場合、個々の領域のサイズは、複数の文字を含むことが好ましい。また個々の領域の2値化閾値は、その領域の平均輝度値または中央値とすることができる。さらに、画像がRGB表色系で表されたカラー画像である場合、文字領域検出部21は、例えば、各画素の値をHLS表色系に変換することで、各画素の輝度値を求め、その輝度値に基づいて画像を上記のように2値化すればよい。
2値化画像において、文字画素の輝度値は、例えば、'0'に設定され、一方、背景画素の輝度値は、例えば、'255'に設定される。
【0025】
次に、文字領域検出部21は、2値化画像に基づいて、文字列の行ごとの区切り位置を求める。そこで文字領域検出部21は、2値化画像において、水平方向のラインごとに、文字画素に相当する輝度値を持つ画素の合計を求めることにより、文字画素の数を集計する。そして文字領域検出部21は、文字画素の数が極小値かつ、所定の閾値以下となるラインを、文字列の行の区切りとする。なお、所定の閾値は、例えば、画像の水平方向の画素数の1/1000〜1/100に設定される。あるいは、所定の閾値は、例えば、ラインごとの文字画素の数の平均値の1/100〜1/20に設定されてもよい。
【0026】
また、文字列を撮影するカメラと、その文字列との位置関係によっては、文字列の行方向と、画像の水平方向とが一致しないことがある。そこで、文字領域検出部21は、例えば、2値化画像を、所定角度(例えば、5度)ずつ、アフィン変換によって回転し、回転した2値化画像において水平方向のラインごとに文字画素の数を集計してもよい。この場合、文字領域検出部21は、文字画素の数が極小値かつ、所定の閾値以下となるラインの数が最も多いときの回転角の2値化画像を用いて、以下の処理を実行してもよい。
【0027】
文字領域検出部21は、2値化画像を、垂直方向に隣接する二つの行の区切りで挟まれた領域ごとに分割し、その分割された画像を一つの行を表す行画像とする。
文字領域検出部21は、行画像ごとに、連結している文字画素を一つの集合とするラベリング処理を行うことにより、個々の文字に相当する文字画素の集合を求める。また、例えば、文字'i'または'j'のように、一つの文字が、行画像の垂直方向に分離した複数の文字画素の集合を含むことがある。そこで文字領域検出部21は、個々の文字画素の集合ごとに、水平方向についてその集合の両端及び長さを求める。そして文字領域検出部21は、注目する二つの集合の水平方向の位置が、何れか一方の集合の長さの所定割合以上にわたって他方の集合と重なっている場合、その二つの集合を一つの文字を表すものとして統合する。所定割合は、例えば、40%〜60%とすることができる。
【0028】
文字領域検出部21は、文字ごとに、その文字についての文字画素の集合の外接矩形を、その文字の外接矩形、すなわち一文字領域として求める。この実施形態では、一文字領域の左辺及び右辺は、行方向に対して垂直となり、一文字領域の上辺及び底辺は、行方向に平行となるように、一文字領域は設定される。
【0029】
次に、文字領域検出部21は、文字列の先頭から英文表記の文字順に、各一文字領域に含まれる文字を認識する。なお、文字列の先頭は、例えば、画像上の一番上の行画像に含まれる、最も左側の一文字領域とすることができる。
【0030】
文字領域検出部21は、例えば、一文字領域ごとに、その一文字領域に含まれる文字を表す特徴量ベクトルを求める。文字領域検出部21は、先ず、一文字領域ごとに、縦N×横M個の小領域に分割する。なお、N、Mは、それぞれ2以上の整数であり、個々の小領域のサイズは、例えば、文字の線幅よりも広く、かつ、文字を形成する1以上の線成分のうちの一つのみが含まれる大きさであることが好ましい。
【0031】
文字領域検出部21は、個々の小領域ごとに、文字に含まれる線成分の方向を求める。そして文字領域検出部21は、線成分の方向ごとに、小領域の数を集計して、線成分の方向ごとの小領域の数をそれぞれ一つの要素とする特徴量ベクトルを求める。線成分の方向は、例えば、水平方向、垂直方向、右上がり方向及び右下がり方向の何れかに分類される。文字領域検出部21は、さらに、二つの線成分がT字状、あるいは十字状に交差している小領域の数を、特徴量ベクトルに含まれる一つの要素として求めてもよい。
文字領域検出部21は、線成分の方向を求めるために、例えば、小領域ごとに、文字画素について細線化処理を行うことで、文字の線成分を細線化する。その後、文字領域検出部21は、線成分の分岐点を含まない小領域について、細線化された線成分の二つの端点の座標を比較することで線成分の方向を求めればよい。
【0032】
図3は、一文字領域の一例を示す図である。この例では、文字'F'が表された一つの一文字領域300は、縦3×横3個の小領域301〜309に分割されている。そして4個の小領域302、303、305及び306は、水平方向の線成分を含み、1個の小領域307が垂直方向の線成分を含む。そのため、特徴量ベクトルV=(v1,v2,v3,v4)の各要素v1〜v4が、それぞれ、水平方向、垂直方向、右上がり方向及び右下がり方向の小領域の数であれば、一文字領域300についての特徴量ベクトルVは、(4,1,0,0)となる。
【0033】
文字領域検出部21は、文字ごとに予め準備され、記憶部13に記憶されている、基準特徴量ベクトルと、一文字領域から求められた特徴量ベクトル間の距離を求める。本実施形態では、英文で利用される各種の文字、例えば、アルファベット、アラビア数字及び'!'などの記号に対応する基準特徴量ベクトルが準備される。また距離は、例えば、ユークリッド距離、あるいはマンハッタン距離とすることができる。
文字領域検出部21は、距離が最小となる基準特徴量ベクトルに対応する文字を、一文字領域に含まれる文字として認識する。そして文字領域検出部21は、例えば、その認識した文字に対応する文字コードを、予め記憶部13に記憶された、基準特徴量ベクトルと文字コードとの関係を表す参照テーブルを参照することによって特定する。
【0034】
文字領域検出部21は、文字列の先頭から順に認識した文字の文字コードを連結することで、電子データ化された文字列を生成し、記憶部13に記憶する。この時点では、この電子データ化された文字列には、単語間の空白を表す文字コードが挿入されていない。
【0035】
ヒストグラム生成部22は、間隔分布算出部の一例であり、文字列の綴り方向、すなわち、水平方向に隣接する二つの文字の組ごとに、一文字領域間の間隔を求めて、文字列の先頭から順にその間隔を記憶部13に記憶する。そしてヒストグラム生成部22は、一文字領域間の間隔ごとの頻度分布を表すヒストグラムを生成する。
また、ヒストグラム生成部22は、水平方向に隣接する二つの文字の組ごとに、一文字領域の重心間の距離をそれぞれ求めて、文字列の先頭から順にその重心間隔を記憶部13に記憶する。そしてヒストグラム生成部22は、重心間隔ごとの頻度分布を表すヒストグラムを生成する。なお、以下では、上記の二つのヒストグラムを区別するために、文字領域間隔のヒストグラムを領域間隔ヒストグラムと呼び、重心間隔のヒストグラムを重心間隔ヒストグラムと呼ぶ。
ヒストグラム生成部22は、領域間隔ヒストグラムと重心間隔ヒストグラムとを、フォント判定部23に渡す。
【0036】
図4は、水平方向に隣接する二つの文字についての文字領域間隔と重心間隔の一例を示す図である。図4に示されるように、文字領域間隔Δdは、左側の一文字領域400の右端と右側の一文字領域401の左端間の距離を表す。一方、重心間隔Δgは、一文字領域400の重心gaと、一文字領域401の重心gb間の水平方向の距離を表す。なお、本実施形態では、一文字領域は矩形であるため、重心gaの水平座標は、一文字領域400の左端と右端の中点となる。同様に、重心gbの水平座標は、一文字領域401の左端と右端の中点となる。
【0037】
図5(a)は、等ピッチフォントで表記された文字列500の一例を表す。図5(b)は、文字列500についての文字領域間隔のヒストグラムを表す。図5(b)において、横軸は画素数を表し、縦軸は頻度を表す。図5(b)における各棒グラフ510は、文字領域間隔についての画素数に対する頻度を表す。例えば、2画素の文字領域間隔についての頻度は3であり、5画素の文字領域間隔についての頻度は4である。図5(b)に示されるように、文字領域間隔は連続的に分布しているので、単語間の空白の幅に相当する画素数と、単語内の隣接する一文字領域の間隔に相当する画素数とを明確に区別することは困難である。
【0038】
一方、図5(c)は、文字列500についての重心間隔のヒストグラムを表す。図5(c)において、横軸は画素数を表し、縦軸は頻度を表す。図5(c)における各棒グラフのうち、棒グラフ521、522は、単語内の隣接する文字についての重心間隔の頻度を表し、一方、棒グラフ523は、隣接する二つの単語のうちの前の単語の最後の文字についての一文字領域の重心と、後の単語の最初の文字についての一文字領域の重心との間隔の頻度を表す。図5(c)に示されるように、単語内の隣接文字間の重心間隔の分布と、単語間の空白を挟んだ二つの文字の重心間隔の分布とは明確に分離している。そのため、例えば、隣接する二つの一文字領域の重心間隔が三角形524で示される閾値よりも大きい場合に、その二つの一文字領域の間には単語を区切るための空白があると推定される。
このように、単語間空白検出装置1は、文字列が等ピッチフォントで表記されていれば、隣接する二つの一文字領域の重心間隔に基づいて、その二つの一文字領域間に空白が有るか否かを正確に判定できる。
【0039】
図6(a)は、プロポーショナルフォントで表記された文字列600の一例を表す。図6(b)は、文字列600についての文字領域間隔のヒストグラムを表す。図6(b)において、横軸は画素数を表し、縦軸は頻度を表す。図6(b)における各棒グラフは、文字領域間隔についての画素数に対する頻度を表す。特に、棒グラフ611、612は、隣接する二つの単語のうちの前の単語の最後の文字についての一文字領域と、後の単語の最初の文字についての一文字領域との間隔の頻度を表す。一方、その他の棒グラフは、単語内の隣接する文字についての文字領域間隔の頻度を表す。図6(b)に示されるように、単語内の隣接文字間の文字領域間隔の分布と、単語間の空白を挟んだ二つの文字間の文字領域間隔の分布とは明確に分離している。そのため、例えば、隣接する二つの一文字領域の間隔が三角形613で示される閾値よりも大きい場合に、その二つの一文字領域の間には空白があると推定される。
【0040】
一方、図6(c)は、文字列600についての重心間隔のヒストグラムを表す。図6(c)において、横軸は画素数を表し、縦軸は頻度を表す。図6(c)における各棒グラフ620は、重心間隔についての画素数に対する頻度を表す。図6(c)に示されるように、重心間隔は連続的に分布しているので、単語間の空白の幅に相当する画素数と、単語内の隣接する一文字領域の間隔に相当する画素数とを明確に区別することは困難である。
このように、単語間空白検出装置1は、文字列がプロポーショナルフォントで表記されていれば、隣接する二つの文字の文字領域間隔に基づいて、その二つの一文字領域間に空白が有るか否かを正確に判定できる。
【0041】
上記のように、文字列が等ピッチフォントで表記されていれば、重心間隔の分布は、単語内の隣接する二つの文字間の重心間隔に相当するサブ分布と、単語間の空白を挟んだ二つの文字間の重心間隔に相当するサブ分布とに分離できる。一方、文字列がプロポーショナルフォントで表記されていれば、文字領域間隔の分布は、単語内の隣接する二つの文字間の文字領域間隔に相当するサブ分布と、単語間の空白を挟んだ二つの文字間の文字領域間隔に相当するサブ分布とに分離できる。
【0042】
そこで、フォント判定部23は、領域間隔ヒストグラム及び重心間隔ヒストグラムのそれぞれを、文字領域間隔または重心間隔に基づく判別分析により二つのサブ分布に分離したときの分離度を求める。フォント判定部23は、例えば、次式に従って、領域間隔ヒストグラムについての分離度Sdと、重心間隔ヒストグラムについての分離度Sgを算出する。
【数1】

ここで、ηn1は、領域間隔ヒストグラムを、小さい方から順にn1個の文字領域間隔を含む第1のサブ分布D1と、それ以外の文字領域間隔を含む第2のサブ分布D2に分離したときの二つのサブ分布の相関比を表す。そしてzi1(i=1,2,..,n1)は、サブ分布D1に含まれる、個々の文字領域間隔(画素数単位)を表し、zi2(i=1,2,..,n2)は、サブ分布D2に含まれる、個々の文字領域間隔(画素数単位)を表す。ただし、n1とn2の和は、領域間隔ヒストグラムに含まれる文字領域間隔の総数ntと等しい。またzak(k=1,2)は、サブ分布D1に含まれる文字領域間隔の平均値及びサブ分布D2に含まれる文字領域間隔の平均値を表す。そしてzaは、領域間隔ヒストグラム全体についての文字領域間隔の平均値を表す。関数max(ηn1)は、n1を2〜nt-1の範囲で変更したときのηn1の最大値を出力する関数である。
【0043】
同様に、γm1は、重心間隔ヒストグラムを、小さい方から順にm1個の重心間隔を含む第1のサブ分布G1と、それ以外の重心間隔を含む第2のサブ分布G2に分離したときの二つのサブ分布の相関比を表す。そしてwi1(i=1,2,..,m1)は、サブ分布G1に含まれる、個々の重心間隔(画素数単位)を表し、wi2(i=1,2,..,m2)は、サブ分布G2に含まれる、個々の重心間隔(画素数単位)を表す。ただし、m1とm2の和は、重心間隔ヒストグラムに含まれる重心間隔の総数mtと等しい。またwak(k=1,2)は、サブ分布G1に含まれる重心間隔の平均値及びサブ分布G2に含まれる重心間隔の平均値を表す。そしてwaは、重心間隔ヒストグラム全体についての重心間隔の平均値を表す。関数max(γm1)は、m1を2〜mt-1の範囲で変更したときのγm1の最大値を出力する関数である。
【0044】
フォント判定部23は、領域間隔ヒストグラムについて求めた分離度Sdが、重心間隔ヒストグラムについて求めた分離度Sgよりも大きければ、文字列の表記に用いられているフォントをプロポーショナルフォントと判定する。逆に、分離度Sdが分離度Sg以下であれば、フォント判定部23は、文字列の表記に用いられているフォントを等ピッチフォントと判定する。
【0045】
フォント判定部23は、フォントの判定結果を閾値決定部24へ通知する。またフォント判定部23は、文字列の表記に用いられているフォントをプロポーショナルフォントと判定した場合、分離度Sdに対応する、領域間隔ヒストグラム中で小さい方から順に(n1+1)番目の文字領域間隔を閾値決定部24に通知する。なお、(n1+1)番目の文字領域間隔は、相関比ηn1が最大となるときの二つのサブ分布間の境界の文字領域間隔に相当する。
一方、フォント判定部23は、文字列の表記に用いられているフォントを等ピッチフォントと判定した場合、分離度Sgに対応する、重心間隔ヒストグラム中で小さい方から順に(m1+1)番目の重心間隔を閾値決定部24に通知する。なお、(m1+1)番目の重心間隔は、相関比γm1が最大となるときの二つのサブ分布間の境界の重心間隔に相当する。
【0046】
閾値決定部24は、単語間の空白を検出するために用いられる空白閾値を決定する。空白閾値は、例えば、単語間の空白を挟んだ二つの文字間の間隔の最小値に相当する画素数に設定される。さらに閾値決定部24は、単語間の空白を検出するために、文字領域間隔及び重心間隔の何れか一方を選択する。
本実施形態では、文字列の表記に用いられているフォントがプロポーショナルフォントと判定された場合、閾値決定部24は、分離度Sdに対応する、領域間隔ヒストグラム中で小さい方から順に(n1+1)番目の文字領域間隔を空白閾値とする。そして閾値決定部24は文字領域間隔を選択する。あるいは、閾値決定部24は、相関比ηn1が最大となるときの、サブ分布D1及びD2の平均値及び分散をそれぞれ求めてもよい。そして閾値決定部24は、サブ分布D1の平均値から空白閾値までのマハラノビス距離と、サブ分布D2の平均値から空白閾値までのマハラノビス距離とが等しくなるように、空白閾値を決定してもよい。
【0047】
一方、文字列の表記に用いられているフォントが等ピッチフォントと判定された場合、閾値決定部24は、分離度Sgに対応する、重心間隔ヒストグラム中で小さい方から順に(m1+1)番目の重心間隔を空白閾値とする。そして閾値決定部24は重心間隔を選択する。あるいは、閾値決定部24は、相関比γm1が最大となるときの、サブ分布G1及びG2の平均値及び分散をそれぞれ求めてもよい。そして閾値決定部24は、サブ分布G1の平均値から空白閾値までのマハラノビス距離と、サブ分布G2の平均値から空白閾値までのマハラノビス距離とが等しくなるように、空白閾値を決定してもよい。
【0048】
閾値決定部24は、空白閾値を空白検出部25に通知する。また閾値決定部24は、文字領域間隔と重心間隔のうちの選択した方を空白検出部25に通知する。
【0049】
空白検出部25は、互いに隣接する二つの文字の組ごとに、文字領域間隔と重心間隔のうちの選択された方の間隔と空白閾値を比較することにより、単語間の空白を検出する。そこで空白検出部25は、文字列の先頭から文字列の最後まで順に、互いに隣接する二つの文字の組ごとに、記憶部13に記憶された、文字領域間隔と重心間隔のうちの選択された方の間隔を空白閾値と比較する。空白検出部25は、その間隔が空白閾値以上であれば、その組に含まれる二つの文字の間に単語間の空白を検出する。そして空白検出部25は、電子データ化された文字列において、その二つの文字に対応するそれぞれの文字コードの間に、空白を表す文字コードを挿入する。
空白検出部25は、文字列の最後まで、単語間の空白の検出を終えると、単語間の空白に対応する文字コードが挿入された電子データ化された文字列を記憶部13に記憶し、またはその電子データ化された文字列を出力部12を介して他の機器へ出力する。
【0050】
図7は、処理部15により実行される単語間空白検出処理のフローチャートである。
処理部15は、媒体に表された文字列を撮影した画像を画像取得部11から取得する(ステップS101)。
処理部15の文字領域検出部21は、その画像に写っている文字列に含まれる各文字の外接矩形をそれぞれ一文字領域として検出する(ステップS102)。さらに文字領域検出部21は、一文字領域のそれぞれに含まれる文字を認識する(ステップS103)。そして文字領域検出部21は、認識した文字に対応する文字コードを特定して、文字列の先頭から順にその文字コードを並べることで電子データ化された文字列を生成する(ステップS104)。
【0051】
処理部15のヒストグラム生成部22は、水平方向に隣接する二つの文字の組ごとに、文字領域間隔及び重心間隔を求め、領域間隔ヒストグラム及び重心間隔ヒストグラムを生成する(ステップS105)。処理部15のフォント判定部23は、判別分析により、領域間隔ヒストグラムを二つのサブ分布に分離したときの分離度Sd及び重心間隔ヒストグラムを二つのサブ分布に分離したときの分離度Sgを算出する(ステップS106)。そしてフォント判定部23は、分離度Sdが分離度Sgよりも大きいか否か判定する(ステップS107)。
【0052】
分離度Sdが分離度Sgよりも大きい場合(ステップS107−Yes)、フォント判定部23は、文字列に用いられているフォントをプロポーショナルフォントと判定する(ステップS108)。そして処理部15の閾値決定部24は、分離度Sdに対応する、領域間隔ヒストグラムの二つのサブ分布の境界に相当する文字領域間隔を空白閾値とする(ステップS109)。
【0053】
一方、分離度Sdが分離度Sg以下である場合(ステップS107−No)、フォント判定部23は、文字列に用いられているフォントを等ピッチフォントと判定する(ステップS110)。そして閾値決定部24は、分離度Sgに対応する、重心間隔ヒストグラムの二つのサブ分布の境界に相当する重心間隔を空白閾値とする(ステップS111)。
【0054】
ステップS109またはS111の後、処理部15の空白検出部25は、文字列の先頭から順に、互いに隣接する二つの文字の組ごとに、文字領域間隔と重心間隔のうちの選択された方の間隔を空白閾値と比較する。そして空白検出部25は、その間隔が空白閾値以上となる二つの文字の間に単語間の空白を検出する(ステップS112)。空白検出部25は、電子データ化された文字列において、単語間の空白が検出された文字の組に対応するそれぞれの文字コードの間に、空白を表す文字コードを挿入する。
その後、処理部15は、単語間空白検出処理を終了する。
【0055】
以上に説明してきたように、この単語間空白検出装置は、文字列の表記に利用されているフォントに応じて分布の特性が異なる文字領域間隔の分布及び重心間隔の分布に基づいて、そのフォントを判定する。そしてこの単語間空白検出装置は、フォントに応じて、文字領域間隔と重心間隔のうち、単語内の隣接文字間の間隔と隣接単語間の空白との区別がつき易い方の間隔に基づいて単語間の空白を検出するので、正確に単語間の空白を検出できる。
【0056】
なお、本発明は上記の実施形態に限定されるものではない。一つの変形例によれば、処理部は、文字列の表記に用いられているフォントが等ピッチフォントまたはプロポーショナルフォントの何れと判定しても、文字領域間隔と重心間隔のうちの何れか一方のみを用いて、単語間の空白を検出してもよい。
【0057】
この変形例において、例えば、単語間の空白を検出するために文字領域間隔が用いられるとする。フォント判定部によって文字列の表記に等ピッチフォントが使用されていると判定された場合には、閾値決定部は、例えば、特開平5−6459号公報に開示されているように、文字領域間隔を補正し、補正後の文字領域間隔の分布に基づいて空白閾値を決定する。この場合、閾値決定部は、隣接する二つの一文字領域の組ごとに、その組に含まれる二つの文字の組合せごとに予め定められ、記憶部に記憶された補正係数を、その二つの一文字領域間の文字領域間隔に乗じることで、文字領域間隔を補正する。二つの文字の組合せのそれぞれに対する補正係数は、例えば、特開平5−6459号公報に開示されている値とすることができる。そして閾値決定部は、補正された文字領域間隔の分布について、フォント判定部と同様に、(1)式に従ってその分布を二つのサブ分布に分離したときの分離度Sdを求める。そして閾値決定部は、分離度Sdに対応する二つのサブ分布間の境界に相当する間隔を空白閾値とする。空白検出部は、文字列の先頭から順に、隣接する二つの文字の組ごとに、対応する補正された文字領域間隔と空白閾値とを比較する。そして空白検出部は、補正された文字領域間隔が空白閾値以上となる場合に、その補正された文字領域間隔に対応する二つの文字コードの間に、空白を表す文字コードを挿入すればよい。
【0058】
一方、フォント判定部によって文字列の表記にプロポーショナルフォントが使用されていると判定された場合には、閾値決定部及び空白検出部は、上記の実施形態と同様に、補正されていない文字領域間隔に基づいて、空白閾値を決定し、単語間の空白を検出できる。
単語間の空白の検出に重心間隔が用いられる場合には、閾値決定部は、文字列の表記にプロポーショナルフォントが用いられていると判定されると、二つの文字についての重心間隔にその二つの文字の組に対応する補正係数を乗じて、重心間隔を補正すればよい。
【0059】
また、他の変形例によれば、文字領域検出部は、各一文字領域に含まれる文字の候補を複数検出してもよい。例えば、文字領域検出部は、一文字領域から求められた特徴量ベクトルとの距離が近い方から順に複数個、例えば、3個の基準特徴量ベクトルを選択し、選択された基準特徴量ベクトルに対応する文字を、その一文字領域に含まれる文字の候補とする。
そして処理部は、単語間の空白が検出された後に、その空白で区切られた一文字領域の集合ごとに、文字の候補を組み合わせた単語候補を求める。そして処理部は、単語候補のそれぞれについて、記憶部に予め記憶された単語辞書に登録された複数の単語のそれぞれとの一致度を求め、一致度が最大となる単語候補を、一文字領域の集合に含まれる単語として選択する。一致度は、例えば、単語候補に含まれる文字の総数に対する、単語候補に含まれる文字と単語辞書に登録された単語に含まれる文字とが一致した数の比とすることができる。
【0060】
さらに、上記の実施形態による単語間空白検出装置の処理部が有する各機能をコンピュータに実現させるコンピュータプログラムは、コンピュータによって読み取り可能な記憶媒体、例えば、半導体メモリ、光記憶媒体または磁気記憶媒体に記録された形で提供されてもよい。
【0061】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【0062】
1 単語間空白検出装置
11 画像取得部
12 出力部
13 記憶部
14 記憶媒体アクセス装置
15 処理部
16 記憶媒体
21 文字領域検出部
22 ヒストグラム生成部
23 フォント判定部
24 閾値決定部
25 空白検出部

【特許請求の範囲】
【請求項1】
媒体上に表された複数の単語を含む文字列を画像として取得する画像取得部と、
前記画像から、前記文字列に含まれる文字ごとに、当該文字に外接する文字領域を検出する文字領域検出部と、
前記文字列に含まれる、互いに隣接する二つの文字の組ごとに、当該二つの文字についての前記文字領域間の間隔及び当該二つの文字についての前記文字領域の重心間の距離をそれぞれ求めることにより、前記文字領域間の間隔についての第1の分布と、前記重心間の距離についての第2の分布とを求める間隔分布算出部と、
前記文字領域間の間隔に基づく判別分析により前記第1の分布を二つのサブ分布に分割したときの第1の分離度と、前記重心間の距離に基づく判別分析により前記第2の分布を二つのサブ分布に分割したときの第2の分離度とを求め、前記第1の分離度が前記第2の分離度より大きい場合に前記文字列の表記に用いられているフォントをプロポーショナルフォントと判定し、一方、前記第1の分離度が前記第2の分離度以下である場合に前記文字列の表記に用いられているフォントを等ピッチフォントと判定するフォント判定部と、
前記判定されたフォントに従って、単語間の空白を検出するための閾値を設定する閾値決定部と、
前記組のうち、前記文字領域間の間隔または前記重心間の距離が前記閾値以上である組に含まれる二つの文字間に単語間の空白を検出する空白検出部と、
を有する単語間空白検出装置。
【請求項2】
前記閾値決定部は、前記文字列の表記に用いられているフォントがプロポーショナルフォントであると判定された場合、前記閾値を前記第1の分布に従って決定し、一方、前記文字列の表記に用いられているフォントが等ピッチフォントであると判定された場合、前記閾値を前記第2の分布に従って決定し、
前記空白検出部は、前記文字列の表記に用いられているフォントがプロポーショナルフォントであると判定された場合、前記組のうち、前記文字領域間の間隔が前記閾値以上である組に含まれる二つの文字間に単語間の空白を検出し、一方、前記文字列の表記に用いられているフォントが等ピッチフォントであると判定された場合、前記組のうち、前記重心間の距離が前記閾値以上である組に含まれる二つの文字間に単語間の空白を検出する、請求項1に記載の単語間空白検出装置。
【請求項3】
前記閾値決定部は、前記文字列の表記に用いられているフォントがプロポーショナルフォントであると判定された場合、前記第1の分布についての前記第1の分離度に対応する二つのサブ分布間の境界に相当する前記文字領域間の間隔を前記閾値とする、請求項2に記載の単語間空白検出装置。
【請求項4】
前記閾値決定部は、前記文字列の表記に用いられているフォントが等ピッチフォントであると判定された場合、前記第2の分布についての前記第2の分離度に対応する二つのサブ分布間の境界に相当する前記重心間の距離を前記閾値とする、請求項2または3に記載の単語間空白検出装置。
【請求項5】
前記閾値決定部は、前記文字列の表記に用いられているフォントが等ピッチフォントであると判定された場合、前記組ごとに、当該組に含まれる二つの文字の組み合せに応じた補正係数を当該二つの文字の文字領域間の間隔に乗じて補正間隔を求めることにより当該補正間隔の分布を求め、当該補正間隔の分布を判別分析によって二つのサブ分布に分割したときの該二つのサブ分布間の境界に相当する補正間隔を前記閾値として設定し、
前記空白検出部は、前記組のうち、前記補正間隔が前記閾値以上である組に含まれる二つの文字間に単語間の空白を検出する、請求項1に記載の単語間空白検出装置。
【請求項6】
媒体上に表された複数の単語を含む文字列を画像として取得し、
前記画像から、前記文字列に含まれる文字ごとに、当該文字に外接する文字領域を検出し、
前記文字列に含まれる、互いに隣接する二つの文字の組ごとに、当該二つの文字についての前記文字領域間の間隔及び当該二つの文字についての前記文字領域の重心間の距離をそれぞれ求めることにより、前記文字領域間の間隔についての第1の分布と、前記重心間の距離についての第2の分布とを求め、
前記文字領域間の間隔に基づく判別分析により前記第1の分布を二つのサブ分布に分割したときの第1の分離度と、前記重心間の距離に基づく判別分析により前記第2の分布を二つのサブ分布に分割したときの第2の分離度とを求め、
前記第1の分離度が前記第2の分離度より大きい場合に前記文字列の表記に用いられているフォントをプロポーショナルフォントと判定し、一方、前記第1の分離度が前記第2の分離度以下である場合に前記文字列の表記に用いられているフォントを等ピッチフォントと判定し、
前記判定されたフォントに従って、単語間の空白を検出するための閾値を設定し、
前記組のうち、前記文字領域間の間隔または前記重心間の距離が前記閾値以上である組に含まれる二つの文字間に単語間の空白を検出する、
ことを含む単語間空白検出方法。
【請求項7】
媒体上に表された複数の単語を含む文字列を表す画像から、前記文字列に含まれる文字ごとに、当該文字に外接する文字領域を検出し、
前記文字列に含まれる、互いに隣接する二つの文字の組ごとに、当該二つの文字についての前記文字領域間の間隔及び当該二つの文字についての前記文字領域の重心間の距離をそれぞれ求めることにより、前記文字領域間の間隔についての第1の分布と、前記重心間の距離についての第2の分布とを求め、
前記文字領域間の間隔に基づく判別分析により前記第1の分布を二つのサブ分布に分割したときの第1の分離度と、前記重心間の距離に基づく判別分析により前記第2の分布を二つのサブ分布に分割したときの第2の分離度とを求め、
前記第1の分離度が前記第2の分離度より大きい場合に前記文字列の表記に用いられているフォントをプロポーショナルフォントと判定し、一方、前記第1の分離度が前記第2の分離度以下である場合に前記文字列の表記に用いられているフォントを等ピッチフォントと判定し、
前記判定されたフォントに従って、単語間の空白を検出するための閾値を設定し、
前記組のうち、前記文字領域間の間隔または前記重心間の距離が前記閾値以上である組に含まれる二つの文字間に単語間の空白を検出する、
ことをコンピュータに実行させる単語間空白検出用コンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate