(57)【特許請求の範囲】
【請求項１】
一文字を含むと判断された画素群であって、二値化された画素より構成される画素群に含まれる画素のうち注目する画素を一つずつ選択し、前記画素群に含まれる画素についての統計処理をする統計処理ステップを備え、
前記統計処理ステップでは、現在注目されている画素を中心とした縦ａ画素×横ｂ画素の領域にあるａ×ｂ画素から前記注目している画素と他の任意のｃ画素とを含む（１＋ｃ）画素を選択するａ×ｂ−１Ｃｃ通りの組合せから他の画素を中心とした場合とパターンが重複するｄ通りの組合せを除いたａ×ｂ−１Ｃｃ−ｄ通りの組合せを第一の次元とし、現在注目されている画素を含む（１＋ｃ）画素の取りうる値の２（１＋ｃ）通りの組合せから全画素の値が同一である２通りの組合せを除いた２（１＋ｃ）−２通りの組合せを第二の次元とする（ａ×ｂ−１Ｃｃ−ｄ）×（２（１＋ｃ）−２）の二次元配列を設け、前記画素群に含まれる各画素が該当する前記二次元配列の要素の値を１だけ増加させることを前記画素群に含まれる全ての画素について行うことにより、前記画素群に対応した二次元配列の要素の値の分布を求め、
更に、
前記画素群に対して得られた前記二次元配列の要素の値の分布に最も近い前記二次元配列の要素の値の分布を有する文字が前記画素群に含まれる文字であると判断する判断ステップを備えることを特徴とする文字認識方法。
【請求項２】
請求項１に記載の文字認識方法において、
前記画素群に含まれる画素の値を各垂直方向の位置毎に水平方向に加算して得られる値の垂直方向分布を得る垂直方向分布算出ステップと、
前記画素群に含まれる画素の値を各水平方向の位置毎に垂直方向に加算して得られる値の水平方向分布を得る水平方向分布算出ステップと、
を更に備え、
前記判断ステップでは、前記画素群に対して得られた前記二次元配列の要素の値の分布、前記垂直分布及び前記水平分布と各候補文字の前記二次元配列の要素の値の分布、前記垂直分布及び前記水平分布との間の距離に基づいて、前記画素群に含まれる文字を判断することを特徴とする文字認識方法。
【請求項３】
請求項１又は２に記載の文字認識方法において、
文字認識を各文字毎に行うことにより得られる文字列の候補は予め定められた複数の文字列に制限されており、
逐次各文字毎に文字認識をしている途中で、予め定められた複数の文字列のうちの何れの文字列にも含まれない文字列の一部が得られた場合にはエラー終了するエラー終了ステップを更に備えることを特徴とする文字認識方法。
【請求項４】
請求項１乃至３の何れか１項に記載の文字認識方法において、
ａ＝３、ｂ＝３、ｃ＝２、ｄ＝８であることを特徴とする文字認識方法。
【請求項５】
一文字を含むと判断された画素群であって、二値化された画素より構成される画素群に含まれる画素のうち注目する画素を一つずつ選択し、前記画素群に含まれる画素についての統計処理をする統計処理手段を備え、
前記統計処理手段では、現在注目されている画素を中心とした縦ａ画素×横ｂ画素の領域にあるａ×ｂ画素から前記注目している画素と他の任意のｃ画素とを含む（１＋ｃ）画素を選択するａ×ｂ−１Ｃｃ通りの組合せから他の画素を中心とした場合とパターンが重複するｄ通りの組合せを除いたａ×ｂ−１Ｃｃ−ｄ通りの組合せを第一の次元とし、現在注目されている画素を含む（１＋ｃ）画素の取りうる値の２（１＋ｃ）通りの組合せから全画素の値が同一である２通りの組合せを除いた２（１＋ｃ）−２通りの組合せを第二の次元とする（ａ×ｂ−１Ｃｃ−ｄ）×（２（１＋ｃ）−２）の二次元配列を設け、前記画素群に含まれる各画素が該当する前記二次元配列の要素の値を１だけ増加させることを前記画素群に含まれる全ての画素について行うことにより、前記画素群に対応した二次元配列の要素の値の分布を求め、
更に、
前記画素群に対して得られた前記二次元配列の要素の値の分布に最も近い前記二次元配列の要素の値の分布を有する文字が前記画素群に含まれる文字であると判断する判断手段を備えることを特徴とする文字認識装置。
【請求項６】
請求項５に記載の文字認識装置において、
前記画素群に含まれる画素の値を各垂直方向の位置毎に水平方向に加算して得られる値の垂直方向分布を得る垂直方向分布算出手段と、
前記画素群に含まれる画素の値を各水平方向の位置毎に垂直方向に加算して得られる値の水平方向分布を得る水平方向分布算出手段と、
を更に備え、
前記判断手段は、、前記画素群に対して得られた前記二次元配列の要素の値の分布、前記垂直分布及び前記水平分布と各候補文字の前記二次元配列の要素の値の分布、前記垂直分布及び前記水平分布との間の距離に基づいて、前記画素群に含まれる文字を判断することを特徴とする文字認識装置。
【請求項７】
請求項５又は６に記載の文字認識装置において、
文字認識を各文字毎に行うことにより得られる文字列の候補は予め定められた複数の文字列に制限されており、
逐次各文字毎に文字認識をしている途中で、予め定められた複数の文字列のうちの何れの文字列にも含まれない文字列の一部が得られた場合にはエラー終了するエラー終了手段を更に備えることを特徴とする文字認識装置。
【請求項８】
請求項５乃至７の何れか１項に記載の文字認識装置において、
ａ＝３、ｂ＝３、ｃ＝２、ｄ＝８であることを特徴とする文字認識装置。
【請求項９】
請求項１乃至４の何れか１項に記載の文字認識方法をコンピュータに実行させるための文字認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に含まれる文字を認識するための文字認識方法、文字認識装置及び文字認識プログラムに関する。
【背景技術】
【０００２】
汎用的な光学機器、例えばカメラ付き携帯電話のような、ごく身近にあり、かつどこででも画像を撮影できるという環境が整い、これらを用いて文字認識を行うというニーズが出てきた。また携帯電話の特徴として、画面表示・演算・ネットワーク機能などがあり、それらを利用するソフトウェアを独自に組み込むこともできるという特徴があることから、文字認識の結果を用いて、撮影後直ちにネットワーク接続等のアクションを起こすことが可能となる。
【０００３】
一方で、これらの機器の既存手法と比較した短所として、
・画像の撮影品質が良くない（ゆがみがあり、解像度が低い）
・画像の撮影品質が機種により大きく異なる
・撮影環境がまばらであり、撮影倍率、光源、撮影の向きを一定にできず、手ぶれ補正がない、もしくは不十分である
が挙げられ、スキャナ等で画像を取り込むことに比べ、認識が大変難しいことがわかる。
【特許文献１】特開２００３−２５６４２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般的に画像の状態が悪いほど、文字を認識することが困難になり、また文字を認識するために必要となる計算量も多くなる。
【０００５】
携帯電話機を用いた文字認識の従来手法としては、携帯電話機で撮影した画像を携帯電話機からサーバに送信し、携帯電話機よりも演算力の高いサーバで文字認識を行う方法があるが、認識に適した画像はサイズが大きくなる傾向があり、そのため送信時間が長く、通信費も嵩む。また、携帯電話で文字認識を行う方法では、サーバに比べ計算能力が低いため、速度を優先した場合には精度が、精度を優先した場合には速度が著しく低下するという課題がある。
【０００６】
そこで、本発明は、状態の悪い画像に対しても、少ない計算量かつ高い精度で文字を認識することができ、さらにサーバに送信するべきデータ量を少なくできる文字認識方法、文字認識装置及び文字認識プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明によれば、一文字を含むと判断された画素群であって、二値化された画素より構成される画素群に含まれる画素のうち注目する画素を一つずつ選択し、前記画素群に含まれる画素についての統計処理をする統計処理ステップを備え、前記統計処理ステップでは、現在注目されている画素を中心とした縦ａ画素×横ｂ画素の領域にあるａ×ｂ画素から前記注目している画素と他の任意のｃ画素とを含む（１＋ｃ）画素を選択するａ×ｂ−１Ｃｃ通りの組合せから他の画素を中心とした場合とパターンが重複するｄ通りの組合せを除いたａ×ｂ−１Ｃｃ−ｄ通りの組合せを第一の次元とし、現在注目されている画素を含む（１＋ｃ）画素の取りうる値の２（１＋ｃ）通りの組合せから全画素の値が同一である２通りの組合せを除いた２（１＋ｃ）−２通りの組合せを第二の次元とする（ａ×ｂ−１Ｃｃ−ｄ）×（２（１＋ｃ）−２）の二次元配列を設け、前記画素群に含まれる各画素が該当する前記二次元配列の要素の値を１だけ増加させることを前記画素群に含まれる全ての画素について行うことにより、前記画素群に対応した二次元配列の要素の値の分布を求め、更に、前記画素群に対して得られた前記二次元配列の要素の値の分布に最も近い前記二次元配列の要素の値の分布を有する文字が前記画素群に含まれる文字であると判断する判断ステップと、を備えることを特徴とする文字認識方法が提供される。
【０００８】
また、本発明によれば、一文字を含むと判断された画素群であって、二値化された画素より構成される画素群に含まれる画素のうち注目する画素を一つずつ選択し、前記画素群に含まれる画素についての統計処理をする統計処理手段を備え、前記統計処理手段では、現在注目されている画素を中心とした縦ａ画素×横ｂ画素の領域にあるａ×ｂ画素から前記注目している画素と他の任意のｃ画素とを含む（１＋ｃ）画素を選択するａ×ｂ−１Ｃｃ通りの組合せから他の画素を中心とした場合とパターンが重複するｄ通りの組合せを除いたａ×ｂ−１Ｃｃ−ｄ通りの組合せを第一の次元とし、現在注目されている画素を含む（１＋ｃ）画素の取りうる値の２（１＋ｃ）通りの組合せから全画素の値が同一である２通りの組合せを除いた２（１＋ｃ）−２通りの組合せを第二の次元とする（ａ×ｂ−１Ｃｃ−ｄ）×（２（１＋ｃ）−２）の二次元配列を設け、前記画素群に含まれる各画素が該当する前記二次元配列の要素の値を１だけ増加させることを前記画素群に含まれる全ての画素について行うことにより、前記画素群に対応した二次元配列の要素の値の分布を求め、更に、前記画素群に対して得られた前記二次元配列の要素の値の分布に最も近い前記二次元配列の要素の値の分布を有する文字が前記画素群に含まれる文字であると判断する判断手段と、を備えることを特徴とする文字認識装置が提供される。
【０００９】
更に、本発明によれば、上記の文字認識方法をコンピュータに実行させるための文字認識プログラムが提供される。
【発明の効果】
【００１０】
本発明の統計処理ステップにより、二次元配列の要素の値から、少ない計算量かつ高い精度で文字を認識することができ、また二次元配列の要素の値の分布を携帯電話機からサーバに送信し、判断ステップをサーバで行う場合には、携帯電話機からサーバに送信するデータ量を減らすことができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００１２】
本発明での文字認識とは、サーバに登録済みの画像から、撮影画像に最も似た画像を選択し（これを検索と呼ぶ）、その登録画像に書かれている文字を認識結果としており、画像認識の一種といえる。
【００１３】
検索の対象となる文字列は長方形の枠で囲まれているものとする。この枠を認識することで回転角度や、拡大縮小率を判定し、また、枠内にある文字の位置も一定にできる。これによりカメラの回転、対象物との距離、位置が固定でなくても認識可能となるなど、撮影の自由度があがる。スキャナと違い、携帯電話機のように様々な体勢での撮影（被写体との距離、回転の有無、ぶれ等）が考えられる光学機器では、撮影の自由度があることは特に有用である。
【００１４】
検索では、撮影画像と登録画像を解析した結果である画像特徴量を比較して行う。撮影画像と登録画像の画像特徴量の比較結果を距離と呼ぶ。距離が小さいほど、二つの画像は似ていることを表す。よって、距離の値が最小となる画像が検索結果画像となる。何を画像特徴量にするかは、後ほど説明する。
【００１５】
画像特徴量抽出までの工程は、画像から一定の大きさとなる文字列画像を抜き出す前半部分と、画像特徴量を計算する後半部分からなる。
【００１６】
前半部分の文字列画像の抜き出しの説明を行う。
【００１７】
まず、撮影したカラー画像をグレースケール画像に変換する。この変換は、一般的な処理なので、このアルゴリズムについての説明は行わない。
【００１８】
次に、グレースケール画像から枠領域を認識する。枠領域とは、長方形の枠に囲まれた領域のことである。枠の中に文字列が挿入されている。この認識方法は、本発明とは別の発明を利用したものであるため、具体的な認識方法の説明を省略する。
【００１９】
この結果として、４頂点の各ｘ，ｙ座標が得られる。
【００２０】
この座標がきちんと枠領域の最も外側の点、もしくは内側の点が取れるなど、一定の座標が取れるのであれば次の枠を広げる処理は省略できるが、ここでは枠を大まかに認識して、それより少し大きめの範囲を枠領域とする方法をとっている。
【００２１】
枠を広げる処理について、まず頂点の座標をなるべく枠の外側を指すように修正を行う。各点について接する二本の辺を見て、ここから広げる方向を決定する。各辺の頂点方向のベクトルを加えたベクトルの方向に向かって枠を広げていくが、これをｘ，ｙ成分の（＋，０，−）で表す。その変換は、ベクトルごとの（ｘ，ｙ）座標での修正方向のように、先ほどのベクトル方向をｘ，ｙ成分の正負の方向で表す。現在の頂点を（Ｘ，Ｙ）としたとき、ベクトルがｘが＋、ｙが−であれば、ｘ成分について（Ｘ＋１，Ｙ）が枠かどうか調べ、次にｙ成分について（Ｘ，Ｙ−１）を調べる。いずれかが枠の画素だった場合、頂点座標をその座標に移動する。また、この頂点座標について同様のことを座標が動かなくなるまで行う。これを全ての頂点について行う。
【００２２】
最後に、各頂点についてベクトル方向に一定値を加算・減算する。このようにすることで、頂点を結んだ四角形は枠よりも大きくなる。
【００２３】
次に、その枠（頂点）の内側の画像を抜き出す。枠が回転している場合は枠の外側に余白ができる。余白は灰色（ここでは１６０）で塗りつぶす。
【００２４】
この時点で、枠と文字が書かれた黒い部分と、背景である白い部分の切り離しが比較的容易になる。そこで、画像から二値化閾値を判別分析法（大津の方法）等により計算する。この時点では二値化画像に変換は行わず、グレースケール画像のままである。
【００２５】
次に、画像から長方形の形状を認識し、この長方形が何度回転しているか調べる。
【００２６】
回転角度としては０度から９０度までが判明する。０から３６０度ではない理由は、枠の天地がわからないことと、辺の縦横の判断がつかないためである。しかし、通常枠に文字を記入する場合、幅が高さよりも長い。これを全ての検索対象文字列のルールとすることで、辺の長さの比較から縦横が判明し、０度から１８０度の回転は判明する。
【００２７】
回転角度が分かれば、その角度分、画像を逆方向に回転させる。この結果、枠の回転向きが一定になる。ただし、先ほどの理由で上下逆さの可能性は残る。
【００２８】
次に、枠のサイズが所定のサイズになるように画像を拡大又は縮小させる。
【００２９】
画像を拡大又は縮小をした後の枠のサイズは、固定とするか、若しくは複数の候補から選択する。後者の場合には、枠の縦横比の最も近い候補を選択する。注意するべきことは、検索画像のサイズと、登録画像のサイズを同じにする必要があることである。
【００３０】
次に、画像から枠を除去する。このためには、画像の外側の上下左右から数ピクセル取り除く作業を行う。どれだけのピクセルをくりぬくかは、先ほどの拡大縮小で選択したサイズによって決定する。
【００３１】
次に、文字を一文字ずつ切り離す。二値化を行った結果の画像の文字同士の間に１ピクセル以上の空白があるならば、縦軸方向に走査して文字と重なるかどうかのチェックを縦線内の全てのピクセルに対して行い、文字と重なる縦線が連続したならば、連続した縦線全体を一つの文字の領域と認識する、という方法で文字が区切られる。ある区切れの縦線から、その次の縦線までが、一文字の領域となる。
【００３２】
しかし撮影画像によっては、カメラレンズの性能が低いこと、ピントが合っていないこと、手ぶれがあること、撮影対象の文字間隔が狭いことなどを理由として、二値化すると文字が繋がってしまい、上手く区切れないことがある。そこで下記の別の方法により一文字の領域を検出する。
【００３３】
まず、全て縦軸について、それぞれ軸上の画素の最小値を求める。この値を画像の幅の長さの配列に代入する。
【００３４】
この配列は、文字がある部分では値が小さく、文字がない部分では値が大きくなるという特徴を持つ。配列の値を連続してみると、波の頂から次の頂までが一文字にあたる波形と見ることができる。この波形の山（頂）・谷（底）・山（頂）の並びが一つの文字となる。よって、この谷と、山を配列の中から見つけ出すことにより、文字の区切りが判別できる。
【００３５】
まず、谷の見つけ方を説明する。まず、配列の開始点を決める。一文字目の探索であれば、配列の初めを開始点とする。そうでなければ、前の文字の区切りとなる山が開始点になる。この開始点の配列の値を、暫定の最小値として保持する。次に、点の配列の値をこの開始点から順番に値を参照する。配列の値を見て、これが暫定の最小値より小さければ、この値が暫定の最小値になる。しばらく配列参照を進めると、値が大きくなってくる。最小値周辺が文字領域であり、文字領域が終わり文字の切れ目になると、値が大きくなるためである。この配列の値と最小値の差が一定閾値を超えると、文字と、文字区切りの存在を確認したと判定でき、よって、最小値を谷と決定する。この方法であれば文字のない領域の配列を参照した場合にも、最小値との差がほとんど無いため谷が確定できず、文字がこの領域に存在しないとすることができる。
【００３６】
次に、山を探索する。山の探索は、谷の探索のほぼ反対の動作となる。開始点は先ほど見つけた谷の点とする。この値を暫定的な最大値とする。順番に配列を参照していき、最大値を見つける。また、しばらくすると値が急激に小さくなる。これは、最大値周辺が文字の切れ目であり、小さくなるのは文字領域が始まるためである。最大値と、この配列の値との差が一定閾値を超えると、文字と、文字区切りの存在を確認したと判定でき、よって最大値を山と確定する。
【００３７】
以上のような谷と山の探索を交互に行い、その結果から、山から次の山までが一つの文字の領域であると判定できる。
【００３８】
この文字領域には文字の前後に背景も含まれる可能性がある。そこで、先ほどの配列の値が二値化閾値よりも大きい場合には、その領域は背景として文字領域から除く。これにより、左端から右端までが文字領域になる。
【００３９】
文字が区切れた時点で、二値化閾値により二値化を行う。
【００４０】
これまでの処理の結果、一文字だけを画像から抜き出すことが可能である。ここからは、各文字画像に対して画像加工を行う。
【００４１】
文字画像は二値画像だが、文字の輪郭線の切りだしが難しく、二値化閾値で文字と背景を切り分けたところ、輪郭線がガタガタになってしまうことがよくある。これは後に述べる３画素間関係の画像特徴量が撮影ごとにばらつく要因となり、文字検出の精度に悪影響を与える。そのため、境界はなるべくなだらかにしたい。
【００４２】
このための方法として、メディアンフィルタをかけたり、太線化をする。これにより、輪郭線のガタガタがいくらか軽減され、文字検出の精度を上げることができる。
【００４３】
この次に、囲まれた領域の穴埋めを行う。囲まれた領域とは、例えば「０」や「９」といった文字の中の空間のことである。これにより、「６」「９」という輪郭が似通った文字間の画像の違いがはっきりする上、画像特徴量の垂直・水平方向のヒストグラムの値が安定し、精度が向上する。
【００４４】
ここからは、文字認識の後半部分である画像特徴量の取得手法について説明する。画像特徴量は文字ごとに、３画素間関係のヒストグラムと、垂直方向と水平方向のヒストグラムの二種類である。
【００４５】
３画素間関係のヒストグラムについて説明を行う。
【００４６】
画像中のある画素と、その周囲８方向中２画素の合計３画素に注目する。８方向中２画素の取り方は、８Ｃ２の２８通りだが、そのうちの８通りは、隣接する画素を中心にした時と同じ３画素を参照しているため、この重複する８通りを省略した計２０通りを見る（図１参照）。
【００４７】
これら３画素間の値のとりうる組み合わせは２の３乗で８通りだが、３画素全て同じ値となる２パターンを除いた６パターンについて注目する。２パターンを除く理由は、全て背景、及び文字となるパターンをそれぞれを表しており、つまり文字面積に関連性が強いといえる。しかし、文字面積は撮影するたびに大きく変化する。例えば「ｌ」という文字幅は、撮影のたびに一定にならない。仮に、ある撮影での文字幅は４であるとする。これが別の撮影で高さは同じだが文字幅が５になると、同じ対象物を撮影したにも関わらず、文字面積が４：５と大きく異なる。このような面積の違いは頻繁に発生し、これを撮影ごとに一定になるように画像を加工することは困難である。特に画像が回転する場合には一定しない。よって、文字面積に関連する２パターンを除く。
【００４８】
３画素間関係は文字の輪郭の特徴を捉えている。上記の２パターンを除くことにより、３画素間には０と１が含まれることになる。つまり、周囲３×３の画素中にエッジが含まれている。これを３画素の位置関係と関連付けて特徴を記録することで、輪郭の形状と密接に関連するといえる。
【００４９】
これを、画像中の全画素について行う。３画素間の関係の２０パターンをそれぞれ区別し、とりうる値の６パターンも区別する。一文字あたり長さ１２０の配列が３画素間関係の画像特徴量となる。５文字であれば画像特徴量は長さ６００の配列である。文字ごと、全画素についてパターンが表れるたびにカウントしていき、２０×６の配列のヒストグラムを作成する。
【００５０】
画像特徴量抽出を最初から順を追って説明すると、まず文字ごとに分ける。一文字の全画素を走査していく。ある１画素について、３画素間関係２０パターン中の１パターン目の３画素を見る。全てが同じ画素値である場合は無視するが、そうでない場合は対応するヒストグラム配列をカウントする。この時カウントされる配列は１から６番である。２パターン目では、７から１２番の配列となる。これを全２０パターンに行うため、一文字の配列は長さ１２０（＝２０×６）となる。二文字目の配列は１２１−２４０番となる。
【００５１】
一文字に注目した場合の配列のヒストグラムの作り方について図２を参照して説明をする。
【００５２】
一文字の領域に含まれる全ての画素についてステップＳ１０３以降の処理を繰り返す。
【００５３】
ステップＳ１０３では、現在着目している画素を含む３画素の全ての組合せｉについてステップＳ１０５以降の処理を繰り返す。但し、全ての組合せからは、別画素の同一パターンと重複する８個の組合せを除く。従って、この繰り返しは２０回行われる。
【００５４】
ステップＳ１０５では、３画素がなすパターンが６パターン中のどのパターンであるのかを判断する。
【００５５】
３画素のなすパターンがパターン１である場合には、配列Ａ（ｉ、１）の値を１増加させる（ステップＳ１０７）。
【００５６】
３画素のなすパターンがパターン２である場合には、配列Ａ（ｉ、２）の値を１増加させる（ステップＳ１０９）。
【００５７】
３画素のなすパターンがパターン３である場合には、配列Ａ（ｉ、３）の値を１増加させる（ステップＳ１１１）。
【００５８】
３画素のなすパターンがパターン４である場合には、配列Ａ（ｉ、４）の値を１増加させる（ステップＳ１１３）。
【００５９】
３画素のなすパターンがパターン５である場合には、配列Ａ（ｉ、５）の値を１増加させる（ステップＳ１１５）。
【００６０】
３画素のなすパターンがパターン６である場合には、配列Ａ（ｉ、６）の値を１増加させる（ステップＳ１１７）。
【００６１】
以上が一文字に注目した場合の配列のヒストグラムの作り方である。
【００６２】
文字認識の際に比較の基準となる０〜９、Ａ〜Ｚ、ａ〜ｚといった英数字の他、記号等についても、上記と同様な方法により配列のヒストグラムを作成しておく。従って、文字認識しようとする文字のヒストグラムと最も近いヒストグラムを有する文字（０〜９、Ａ〜Ｚ、ａ〜ｚといった英数字の他、記号等のうちの何れかの文字）が文字認識後の文字となる。
【００６３】
この次に垂直方向と水平方向のヒストグラムを作成する。すなわち、文字画像の垂直方向の長さの配列と、水平方方向の長さの配列を用意して、文字である黒の画素があると、それに対応する両方向の配列をカウントしていき、ヒストグラムを二つ作成する。
【００６４】
これにより、文字位置が反映された画像特徴量が取得できる。
【００６５】
またこの他に、文字数と、文字を区切る前の画像の各文字の中心ｘ座標も画像特徴量として取得する。これらは検索精度向上と検索の高速化に役立つ。
【００６６】
検索に関する追記として、登録画像が存在しない場合、答えを出さない機能を実装している。方法としては、登録画像に対する距離について、一文字ごとにある閾値を超えるかどうか確認し、越える文字が存在する場合、たとえ距離が最小となってもこの画像を答えとせず、再撮影とする。
【００６７】
また、もうひとつのチェック機能として、最小値となる距離と、二位となる距離について、
（距離の二位）／（一位の距離）＜Ｄ
のようにある閾値Ｄよりも小さくなる場合、他の画像と間違う可能性が多いため、答えを出力せずに再撮影としている。
【００６８】
また、ヒストグラムの比較は、３画素間関係同様にユークリッド距離を使っている。但し、ユークリッド距離の代わりに、シティブロック距離やマハラノビス距離を使ってもよい。垂直・水平ヒストグラムの距離を一文字ずつ、別個に計算する。登録画像と撮影画像のヒストグラムの距離を求める際に、同じ配列位置のヒストグラムを参照するが、それに加え片側の配列位置を前後一つずつずらした距離も計算する。この３つの距離のうち最小となる値を正式な距離として選択する。これは１ピクセル未満の小さな画像のずれを考慮したものである。
【００６９】
最終的な距離は、全ての文字の、３画素間関係と、垂直ヒストグラムと、水平ヒストグラムの距離の総和を用いている。また、３点間距離、垂直ヒストグラムの距離、水平ヒストグラムの距離のそれぞれに重み付けをしてからそれらの総和をとるようにしてもよい。３画素間関係の距離のみを用いて文字認識を行い、３画素間関係の距離が近い複数の候補が現れた場合に、垂直ヒストグラムと水平ヒストグラムとを用いてもよい。
【００７０】
認識する文字列が、例えば、最初のｎ文字が大文字のアルファベットで、次のｍ文字が数字であるというように限られている場合がある。このような場合、最初の文字から順々に文字認識を行って、ｎより小さいｉ番目の文字で数字が認識されるようであれば、エラー終了するようにしてもよい。
【００７１】
また、検索の際の比較回数を減らすために、後に画像登録の説明の際に出てくる印刷物定義による検索の省略も行う。印刷物定義は同じフォーマットとなる文字の情報が書かれている。例えば、５から１０文字の間で、枠候補１を使っているなどである。画像検索の際には、文字比較、文字位置比較の前に、印刷物定義との比較を行う。文字数と、枠候補を比べ、もしどちらかでも異なれば、この印刷物定義を用いた登録データの中に答えが無いことがわかるため、この印刷物定義を使った登録画像との比較を行わなくてすむ。
【００７２】
次に、画像の登録について説明する。
【００７３】
画像の種類は、印刷に使うデジタル画像を使う方法と、実際の撮影画像を使う方法がある。
【００７４】
登録画像は印刷物により分別される。この印刷物ごとの特徴を前もってＤＢに登録する。登録される特徴としては、最小最大文字数、枠の縦横サイズ、がある。その他にも、印刷物の名称や、それに付随する情報、フォントの種類、文字間隔、文字パターン（アルファベットの大文字小文字から構成させる等）が挙げられる。
【００７５】
画像登録を行う際には、この印刷物の定義を一つ選択して行う。定義の値から、最も縦横比の近い枠候補を選択する。画像特徴量の抽出を行うときには、この枠候補の値を用いて拡大縮小を行う。画像特徴の抽出については、基本的に先ほどの説明と同じであるが、登録するデジタル画像の種類によっては、画像を回転させる必要がなくなり、また枠の位置も枠抽出を行わなくても固定位置から取得できる。これらの情報も、印刷物定義で前もって決めておく。
【００７６】
これらの処理により、画像の文字数が得られるが、これを定義と比較して、違っていれば、画像、もしくは印刷物定義に間違いがあると判明する。これは枠認識を行う場合の、枠の縦横の長さと、印刷物定義の比較などにもいえ、つまり印刷物定義は登録時のエラーチェックとしても使える。
【００７７】
画像登録は、正位置方向と、１８０度回転させた２種類の画像特徴量を登録する。これは、撮影画像の上下の区別がつかないための処置であり、これにより撮影画像の向きに関わらず検索することができる。
【００７８】
サーバに登録しておく画像特徴量のデータとしては、画像を識別する名前と、画像特徴量がある。これを０度と１８０度回転の２種類登録する。また、サービスを提供する場合は、それぞれの登録画像が選択された場合のイベントを指定する。携帯の場合、ＷＥＢにアクセスして、音楽・動画などのデジタルコンテンツにアクセスしたり、メールが送られて来たり、音やバイブレーション機能などの動作を行ったり、新しい連絡先や、スケジュールが生成されたり、また電話をかけることも考えられる。
【００７９】
これまでは概要図に沿って説明してきたが、別の文字認識形態を説明する。
【００８０】
この形態は、画像特徴量を求めるところまでは同じだが、検索も携帯内で行う。ここでは、一文字ごとの画像特徴量を携帯内に持たせる。画像解析結果の画像特徴量の一文字と、携帯内の画像特徴量を比較し、距離が最小の文字を撮影画像の文字列に当てはめる。これを全ての解析結果の文字に対して行い、結果として撮影画像の文字列の認識が完了する。
【００８１】
なお、上述した文字認識方法は、ハードウェア、ソフトウェア又はこれらの組合せにより実現される。
【００８２】
また、上述の説明では、３画素間の関係を画像特徴量としたが、四画素間の関係や更に多くの画素の間の関係を画像特徴量としてもよい。また、注目画素を中心とした３画素×３画素の領域から画像特徴量を算出するための画素を選択する代わりに、５画素×５画素の領域やそれよりも大きい領域から画像特徴量を算出するための画素を選択するようにしてもよい。
【００８３】
また、上述の説明では、携帯電話機を例に挙げているが、これに限定されるものでもない。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施形態による３×３の領域から中央の画素を含む３つの画素を選択する組合せを羅列した図である。
【図２】本発明の実施形態による文字を含む画像の特徴量を求めるための方法を示す図である。
【図１】
0005107100.tif 000002
【図２】
0005107100.tif 000003